如何从 Verilog 定义宏中选择特定位?

问题描述

我最初有一个“params_list.v”文件,其中列出了多个全局约束

// params_list.v file

localparam
 parameter1   = 18'h00AB,parameter2   = 18'h00CD;

参数用于特定模块,如下所示

// design_main_ORIGINAL.v file

module my_module

`include "params_list.v"

assign reg1 = parameter1[4:0];
assign reg2 = parameter2[4:0];

endmodule

原来的'params_list.v'文件被分成了多个头文件'header1.vh','header2.vh',

其中一个文件的定义如下所示

// header1.vh

`ifndef _header1_vh_
`define _header1_vh_

`define param1 18'h00AB
`define param2 18'h00CD

`endif   

然后使用以下几行将头文件包含在主设计文件 (*.v) 中

// design_main_NEW.v file

`include “header1.vh”
`include “header2.vh”

module module_xyz(

 assign reg1 = param1[4:0];
 assign reg2 = param2[4:0];

);
endmodule

编译时,不断出现以下错误

** 错误:(vlog-13069) C:/my_path/main_module.v(440):“[”附近:语法错误,意外的“[”。

如果您能阐明我可能遗漏的内容,我们将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)