Ahora estoy confundido por una pieza de Verilog Codee, su tipo de prueba de las funciones de asignación de bloqueo o no de bloqueo que se combinan con el modelo Delay.
module cl_tb;
reg x,y,z;
initial begin
x = 2;
#4;
y <= #9 x;
x = 1;
#50 $stop;
end
initial begin
$monitor("%0t,%d,%d,%d",$time,x,y,z);
end
always @(x,y)
begin
z = # 2 x+y;
end
endmodule
Por cálculo manual, podría obtener el resultado [Tiempo: valor de X, valor de Y, valor de Z] a continuación: [0: 2, x, x] [2: 2,0,2] [4: 1,0,2] [6: 1,0,1] [13: 1,2,1] [15: 1,2,3]
Sin embargo, el resultado de la simulación es [0,0, x, x]; [4,1, x, x]; [13,1,0, x]; [15,1,0,1];
Que puede ver en el enlace enlace
Me pregunto por qué el always @ (x, y) no se activó en el intervalo de tiempo 2 y 4.
Mejor