Я читал в другом месте, что этот синтаксис j = j + 1
не разрешен, но возможно ли вообще увеличивать переменные вне выражения цикла цикла for?Можно ли увеличивать целые числа/genvar внутри генерации для цикла
Вот что я изначально хотел сделать. Я не был уверен, как это сделать, потому что я думал, что хочу генерировать модули с параметрами 20, 21, 22, 23, 25, 28, 29, 31
при использовании значений из массива параметров 2d, который индексируется с использованием 0, 1, 2, 3, 4, 5, 6, 7
. Поэтому я подумал, что я просто сделаю один для цикла, а затем добавлю вторую переменную j
, которая начинается с 0
и идет до 7
. Я могу это сделать? Если нет, то что рекомендуется?
genvar i;
integer j = 0;
generate
for (i = 20; i <= 31; i = i + 1) begin : NUM_OF_FF
if (i != 21 && i != 24 && i != 26 && i != 27 && i != 30) begin
lfsr
#(
.num_of_ff(i),
.poly(lsfr_taps[j])
)
random_data_gen_lsfr
(
.clk(sys_clk),
.rst(rst),
.out(lsfr_bits[i])
);
j = j + 1;
end
end
endgenerate
Ответ Роберта ниже - как я это сделаю. Но что касается вашего кода, почему бы не определить j как genvar? В этом случае я не понимаю, почему вы не можете увеличить его. – Ari