【发布时间】:2017-02-07 09:26:18
【问题描述】:
我已经搜索了网络,但找不到我的问题的答案。我正在尝试在 systemverilog 中使用双变量宏。
在一个文件中,我声明了以下宏:
`define TX_TOP_PATH(first_idx,second_idx) aaa.F[first_idx].bbb.S[second_idx].ccc
在第二个文件中(在一个模块中),我尝试使用这个宏来生成嵌套的 for 循环。例如:
wire if[15:0];
generate
for (first_idx = 1; first_idx< 4; first_idx++)
begin : first_loop
for (second_idx = 0; second_idx < 4; second_idx++)
begin : second_loop
assign if[4*first_idx + second_idx].clk = `TX_TOP_PATH(first_idx,second_idx).clk;
end
end
endgenerate
但是当我这样做时,我得到了错误 - CUVFGS: "Invalid for-generate index"。
当我尝试将宏定义放在括号中时,如下所示:
`define TX_TOP_PATH(first_idx,second_idx) (aaa.F[first_idx].bbb.S[second_idx].ccc)
我收到错误 - EXPSMC:“需要分号 (';')”
有什么想法吗?
利亚夫
【问题讨论】:
标签: macros system-verilog