我正在尝试编写此代码:
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
...
Run Code Online (Sandbox Code Playgroud)
基本上,我试图写入(en)的位的位置根据我正在谈论的地址而变化,具体取决于i.此代码不可合成,因为i它不是常量.
还有其他解决方法吗?我知道的唯一解决方法是写出CONST时间的这三个语句.我希望我最终不必那样做.还有其他解决方案吗?