A VHDL no le importa el número entero

3

Estoy escribiendo un restablecimiento para un statemachine vhdl que tiene una señal entera, que se inicializa en el segundo estado del statemachine. Sin embargo, para que esté completo (asigne cada señal para evitar los latches), me gustaría asignar un valor don't care a la señal, por lo que la herramienta de síntesis tiene más espacio para la optimización.

¿Hay alguna forma de asignar un valor de no cuidado a una señal del tipo integer ? (Sé que podría convertirlo a signed / unsigned y asignar (others => '-' ) ; sin embargo, parece más natural escribir este código con un entero, ya que esto permite escribir if var=3 ... en lugar de if to_integer(var)=3 ... o if var=to_(un)signed(3, var'Length)... , que se siente incómodo.

De no puedo asignar don't care , ¿cuál es la mejor práctica, asignar el valor, que asignaré en el segundo estado, dejarlo sin asignar u otros? (Iría con la asignación del valor del segundo estado antes)

    
pregunta ted

1 respuesta

3

No hay "no importa" para el entero; Si está modelando lógica digital con X, Z, no importa, etc., numeric_std.signed / unsigned es la forma correcta de hacerlo.

Pero mira el paquete numeric_std con más cuidado; la mayoría de los operadores, incluido = , están sobrecargados con formularios que permiten mezclar [un] con signo y un entero de forma gratuita, por lo que if my_unsigned_var = 3 simplemente funciona ...

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas