El modelado de lógica secuencial y combinacional dentro del mismo siempre bloquea una buena práctica o se recomienda codificarlos en bloques separados.
always @(a or b)
y = a ^ b;
always @(posedge clk or negedge rst_n)
if (!rst_n) q <= 1'b0;
else
q <= y;
O haciendo esto:
always @(posedge clk or negedge rst_n)
if (!rst_n) q <= 1'b0;
else
q <= a ^ b;
Sé que ambos darían como resultado la misma funcionalidad.
Pero también se dice que mezclar asignaciones de bloqueo y no bloqueo en el mismo bloque siempre es un estilo de codificación deficiente. ¿No utilizamos el bloqueo para la lógica combinacional y el no bloqueo para la lógica secuencial?
-
El modelado de lógica secuencial y combinacional dentro de la misma siempre bloquea una buena práctica.
-
La mezcla de asignaciones de bloqueo y no bloqueo en el mismo bloque siempre es un estilo de codificación deficiente.
Entonces, en ese caso, las afirmaciones anteriores son contradictorias, ¿no?