¿Por qué deberíamos evitar incluir la asignación de bloqueo y desbloqueo en el mismo bloque siempre?

0

Casi todos los libros y blogs de verilog sugieren que no se incluyan las tareas de bloqueo y desbloqueo en el mismo bloque siempre.

Pero a veces también veo un código que tiene un código de bloqueo y desbloqueo en el mismo bloque, aún puede funcionar bien en el simulador.

Entonces, ¿cuál es la razón profunda de por qué no usarlos simultáneamente? ¿Qué problema potencial podría ser causado?

    
pregunta fgg1991

1 respuesta

2

La razón estándar es que puede llevar a diferencias en el comportamiento entre la simulación (que hará las asignaciones de bloqueo de una manera secuencial de 'bloqueo' adecuada) y la síntesis (que no hará las asignaciones de bloqueo en bloques síncronos de la forma que pueda esperanza).

Por supuesto, esas diferencias pueden no importar, y el diseño puede funcionar cuando se sintetiza de todos modos, pero realmente no quiere que haya ninguna diferencia funcional entre la síntesis y la simulación.

    
respondido por el user1844

Lea otras preguntas en las etiquetas