evita los metavalues para los puertos de entrada en la simulación VHDL

0

En mi diseño VHDL tengo entidades con definiciones de puerto similares a esta:

entity dummy is
  port( cpl : cplxRecord_t )
end entity

type cplxRecord_t is record
   r1 : anotherRecord_t;
   vec: unsigned;
   lin: std_logic;
   ...
end record

en la arquitectura utilizo algunas funciones estándar para unsigned , p. ej. %código%. Estos se quejan durante el inicio de simulación to_integer(cpl.vec) . Me gustaría eliminar la causa de estas advertencias. Hasta ahora, mi única idea es asignar un valor predeterminado a ese puerto. Sin embargo, tener que definir cada elemento parece una mala solución, lo que hace que sea un dolor de cabeza de mantenimiento cuando se agregan o eliminan elementos del registro. ¿Hay alguna manera de inicializar el puerto con todos los '0' (cero)?

P: ¿Cómo prevengo las advertencias de Metavalue detected. Returning ... , causadas por puertos no firmados que no están inicializados Metavalue detected durante la carga de diseño y procesados por U ?

P.S .: Estoy usando modelsim. Y esta fuente hace que sea difícil diferenciar entre la letra o y el cero. O0o

    
pregunta ted

1 respuesta

1

Estoy bastante seguro de que tiene que asignar todo el registro. En el pasado, he creado constantes de inicialización para mis registros que alivian este problema.

Como solución alternativa (al menos en Modelsim, probablemente Aldec también) puede usar una pequeña función TCL para comenzar la simulación. Esta función puede deshabilitar esas advertencias, ejecutar 1 ps, luego volver a habilitar las advertencias y ejecutar el resto de la simulación.

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas