我正在尝试编写此代码:
for (i = 0; i <= CONST - 1'b1; i = i + 1'b1)
begin : loop_inst
if (i < 3)
begin
if (changed[i] & !done_q[i])
begin
writedata[3-i] = en[i];
writedata[2-i:0] = readdata[2-i:0];
writedata[15:4-i] = readdata[15:4-i];
end
end
else
...
基本上,我尝试写入 ( en
) 的位的位置会根据我正在与之交谈的地址而变化,具体取决于i
. 此代码不可合成,因为i
它不是常数。
有没有其他解决方法?我知道的唯一解决方法是写出这三个语句 CONST 次。我希望我最终不必这样做。还有其他解决方案吗?