0
如何截断genvar变量的宽度?举例来说,如果我有:Verilog,截断genvar宽度大小
parameter LENGTH = 8;
genvar i;
for(i = 0; i < LENGTH; i = i + 2) begin
somemodule #(WIDTH($clog2(LENGTH))
)
tmp (.a(i)
,.b(i+1)
,.c(output)
);
end
endgenerate
当我的ModelSim仿真,我会得到口尺寸不匹配连接尺寸。我知道问题在于genvar的宽度是32位,而我的模块的宽度是变化的。
我试图
genvar [$clog2(LENGTH)-1:0] i;
和
.a(i[$clog2(LENGTH)-1:0])
但他们不是语法正确。
我该如何解决这个问题?