私はこのコードを書き込もうとしています:
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
は定数ではないため、このコードは合成できません。
これに対する他の回避策はありますか?私が知っている唯一の回避策は、これら3つのステートメントをCONST回書き出すことです。私は最終的にそれをする必要がないことを望んでいます。他に解決策はありますか?