muestrear señales de entrada y verificar sus valores VHDL

0

Tengo 2% de señales de input - ID_1,ID_2 que se muestrearon en id_vec .
LEDx_GRNn son output . En este punto, solo uno de a,b,c,d debe ser '1' y los otros '0', que luego deben hacer que solo uno esté encendido y los otros estén apagados.

Por alguna razón, todos los leds están encendidos, así que supongo que hago algo mal.
¿Qué me estoy perdiendo?
ID_1, ID_2 tienen los valores de las constantes.

signal id_vec :std_logic_vector (1 downto 0);
signal flag :std_logic;
signal a:std_logic;
signal b:std_logic;
signal c:std_logic;
signal d :std_logic;

id_vec(0)<=ID_1;
id_vec(1)<=ID_2;

a <='1' when id_vec<="10" else '0';
b <='1' when id_vec<="00" else '0';
c <='1' when id_vec<="01" else '0';
d <='1' when id_vec<="11" else '0';


LED1_GRNn <=  not (a);
LED2_GRNn <=  not (b);
LED3_GRNn <=  not (c);
LED4_GRNn <=  not (d); 
    
pregunta arii

1 respuesta

2

Debe ser = y no < =

a < = '1' cuando id_vec="10" else '0'; b < = '1' cuando id_vec="00" else '0'; c < = '1' cuando id_vec="01" else '0'; d < = '1' cuando id_vec="11" else '0';

Quieres comparar si id es igual a 0 o 1 o 2 o 3. ¿No asignas bien?

Después de EDIT

< = también significa una comparación LESS_THAN_EQUAL que no desea que sea para su caso.

    
respondido por el user3219492

Lea otras preguntas en las etiquetas