Можно ли сгенерировать несколько операторов всегда, используя для l oop в Verilog
В качестве примера. Допустим, мы хотим создать 4-битный Ripple / Asynchronous Counter.
Мы можем сделать это следующим образом
always @(posedge MainClock)
begin
Q[0] = ~Q[0];
end
always @(posedge Q[0])
begin
Q[1] = ~Q[1];
end
always @(posedge Q[1])
begin
Q[2] = ~Q[2];
end
always @(posedge Q[2])
begin
Q[3] = ~Q[3];
end
Возможно ли сделать что-то подобное вместо этого:
always @(posedge MainClock)
begin
Q[0] = ~Q[0];
end
for (i = 1; i <= 3; i = i+1)
begin
always @(posedge Q[i-1])
begin
Q[i] = ~Q[i];
end
end
Я точно знаю, что первые методы работают, потому что я их проверял. Второй метод не работает, я его протестировал. Есть ли другой способ сделать это?