Я пытаюсь написать этот код:
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 раз. Я надеюсь, что мне не придется делать это в конце. Есть ли другое решение?