Uso correcto de std_ulogic como índice

0

¿Cuál es la forma correcta de usar STD_ULOGIC como un rango en VHDL sin error de simulación, si la señal para la indexación podría no estar definida? (Razón: me parece más claro ver una señal como actualmente no definida, en lugar de que esté predeterminada)

Me encontré con un error de simulación (índice fuera de rango) con el siguiente código:

SUBTYPE RANGE_R IS STD_ULOGIC RANGE '0' TO '1';
TYPE ARRAY_T IS ARRAY (RANGE_R) OF INTEGER;
SIGNAL choice : STD_ULOGIC;
SIGNAL mux_in : ARRAY_T;
...
some_integer_signal <= mux_in(choice);

La razón es que la elección es (en simulación) 'X' indefinida para un ciclo delta, por lo tanto, estoy tratando de acceder a un índice en mux_in que no existe. Si bien puedo solucionar este problema con el bit, ¿hay alguna forma adecuada de escribir esto sin obtener un error de simulación que detenga la simulación (modelsim 10.4c)?

    
pregunta ted

0 respuestas

Lea otras preguntas en las etiquetas