У меня следующий код verilog. Я не могу найти ответ, каков эффект использования posedge
в середине цикла или после a <= x;b<=ri
. Я думаю, что always begin
выполняется всегда, и после этого функция будет заблокирована на posedge clk
(после строки integer d
). Когда clock
поднимется, будет выполнена следующая строка (а именно r <= 0
).
Если это так, то следующие posedge clk
(после <= x ; b <= ri
и c = ri
) будут выполняться на одном и том же фронте тактовой частоты или требуют другого фронта тактовой частоты, и какова причина использования posedge
в середине кода, а не в начале?
always
begin :two
real c;
integer d;
@(posedge clk)
r <= 0;
if (k)
begin
a <= x; b <= ri;
@(posedge clk);
begin :loop
forever
begin
c = ri;
@(posedge clk);
d = $rtoi(c*4);
if (abs(b-c) > abs(a-b)) disable loop;
r <= $rtoi(j*4);
end
end
d = 3*d; k <= 1’b0; r <= d + 1;
end