Блокирующий оператор присваивание
Обозначается =
и выполняются один за другим в процедурном блоке. Однако исполнение в различных процедурных блоках (например, при задании нескольких блоков initial
) между собой не упорядочено.
Пример
module blocking_assignment_tb;
reg [3:0] data; real r_value;
integer i_value; time T;
initial begin
data = 4'h4;
$monitor("Time [%0t] data = %0d, r_value = %0f, i_value = %0h",
T, data, r_value, i_value);
r_value = 3.14;
i_value = 4;
#2 data = 4'h5;
#3 data = 'd7;
i_value = 10;
i_value = 6;
$finish;
end
always #1 T = $time;
endmodule
Результат исполнения
Time [x] data = 4, r_value = 3.140000, i_value = 4
Time [1] data = 4, r_value = 3.140000, i_value = 4
Time [2] data = 5, r_value = 3.140000, i_value = 4
Time [3] data = 5, r_value = 3.140000, i_value = 4
Time [4] data = 5, r_value = 3.140000, i_value = 4
Time [4] data = 7, r_value = 3.140000, i_value = 6
Last updated