0
我正在使用一個生成循環來實例化一個可定義數量的模塊,並且我想根據循環迭代爲模塊分配一些輸入。不幸的是,我遇到了設計編譯器說因爲端口寬度不匹配而導致錯誤的綜合問題。這裏的我想要做什麼:verilog生成循環分配給迭代器寬度不匹配
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]),
但這也行不通。
任何想法?