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