【发布时间】:2023-04-11 10:28:02
【问题描述】:
我正在使用生成循环来实例化可参数化数量的模块,并且我想根据循环迭代将一些输入分配给模块。不幸的是,我遇到了综合问题,设计编译器说由于端口宽度不匹配而出现错误。这是我正在尝试做的事情:
genvar k;
generate
for(k = 0; k < `NUM/2; ++k) begin
cmp2 cmps(
.a (arr[k]),
.b (arr[k+1]),
.a_idx (k), //gives errors about port width mismatch
.b_idx (k+1), //but I can't get it to work any other way
.data_out(data[k]),
.idx_out (idx[k])
);
end
endgenerate
我也尝试在循环中使用 localparams 并将 a_idx 和 b_idx 分配给 localparam,但在综合时我仍然遇到相同的错误。
我尝试过类似.a_idx((k)[bit_width-1:0]), 之类的方法,但这也不起作用。
有什么想法吗?
【问题讨论】:
标签: verilog system-verilog synthesis