Diferencia entre @ * y @ (*) en Verilog

4

¿Cuál es la diferencia entre always @ * y always @ (*) en Verilog-2001?

    
pregunta 8A52

2 respuestas

10

No hay diferencia, significan exactamente lo mismo: inferir mi lista de sensibilidad del contenido del bloque .

    
respondido por el Tim
1

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.

    
respondido por el dave_59

Lea otras preguntas en las etiquetas