Опитвам се да напиша този код:
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 пъти. Надявам се накрая да не се налага да правя това. Има ли друго решение?