Asignación de bloqueo de Verilog

Soy algo nuevo en Verilog. Sé que en un proceso de reloj deberíamos usar asignaciones sin bloqueo, y en un proceso sin reloj, usar asignaciones de bloqueo.

Me encontré con este código cuando estaba leyendo el código de otra persona.

reg iowrb_int,iowrb_met;
reg iordb_int,iordb_met;
always@(*)
begin
  iowrb_int <= iowrb_met;
  iordb_int <= iordb_met;

  iowrb_met <= iowr_bar;
  iordb_met <= iord_bar;
end

¡Realmente no estoy seguro sobre el código anterior! No creo que se esté registrando, ¿correcto? ¿Significaría algo tener un no bloqueo en una instrucción always @ (*)?

¿Hay alguna diferencia en el uso de bloqueo versus no bloqueo en una declaración always @ (*)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta