Estaba leyendo esta página http://www.asic-world.com/verilog/verilog_one_day3.html cuando me encontré con lo siguiente:
Normalmente tenemos que reiniciar los flip-flops, por lo tanto, cada vez que el reloj realiza la transición de 0 a 1 (posedge), verificamos si se reafirma el reinicio (reinicio sincrónico), luego continuamos con la lógica normal. Si miramos de cerca, vemos que en el caso de la lógica combinacional teníamos "=" para la asignación, y para el bloque secuencial teníamos el operador "<=". Bueno, "=" es una tarea de bloqueo y "<=" es una tarea sin bloqueo. "=" ejecuta código secuencialmente dentro de un inicio / fin, mientras que el no bloqueo "<=" se ejecuta en paralelo.
Estaba bastante seguro de que las tareas sin bloqueo eran secuenciales mientras que las tareas de bloqueo eran paralelas. Después de todo, puede hacer asignaciones de bloqueo con instrucciones de asignación fuera de los bloques siempre, y todos se ejecutan en paralelo. ¿Es esto un error o el comportamiento es diferente dentro de un bloque siempre? Y, si el comportamiento ES diferente dentro de un bloque siempre, ¿se pueden realizar asignaciones sin bloqueo fuera de un bloque siempre?