¿Cuál es la diferencia entre always @ * y always @ (*) en Verilog-2001?
¿Cuál es la diferencia entre always @ * y always @ (*) en Verilog-2001?
No hay diferencia, significan exactamente lo mismo: inferir mi lista de sensibilidad del contenido del bloque .
Hay lo mismo, pero la mejor sintaxis es usar always_comb
en SystemVerilog.
Es mejor para la síntesis porque tiene restricciones de sintaxis para la síntesis que se detectarán durante la compilación de cualquier herramienta, como un simulador. No tendrá que esperar hasta que intente sintetizar y descubra que su bloque always
no es combinatorio. También es mejor para captar sensibilidades de las llamadas de función.
También es mejor para la simulación porque always_comb garantiza que se ejecutará en el momento 0. Esto se vuelve crítico cuando una de las señales en la lista de sensibilidad resulta ser una constante y las otras señales no se inicializan o tienen eventos ellos de inmediato Por ejemplo
parámetro en = 0; reg o1, o2; datos de registro;
siempre @ (*) o1 = en & datos; always_comb o2 = en & datos;
o1
permanecerá 1'bx hasta que los datos cambien, mientras que o2
irá a 1'b0 en el momento 0.
Lea otras preguntas en las etiquetas verilog