用VHDL对输入信号进行采样并检查其值
我有2个用VHDL对输入信号进行采样并检查其值,vhdl,Vhdl,我有2个input信号-ID\u 1,ID\u 2,它们被采样到ID\u vec LEDx\u GRNn是输出。 此时,a、b、c、d中只有一个应该是“1”,其他的应该是“0”,之后应该只打开一个led,关闭其他led 由于某些原因,所有的指示灯都亮着,所以我猜我做错了什么。 我错过了什么? ID_1、ID_2具有常量值 signal id_vec :std_logic_vector (1 downto 0); signal flag :std_logic; signal a:std_logic
input
信号-ID\u 1,ID\u 2
,它们被采样到ID\u vec
LEDx\u GRNn
是输出
。
此时,a、b、c、d
中只有一个应该是“1”,其他的应该是“0”,之后应该只打开一个led,关闭其他led
由于某些原因,所有的指示灯都亮着,所以我猜我做错了什么。我错过了什么?
ID_1、ID_2具有常量值
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);
signal id_vec:std_logic_vector(1到0);
信号标志:标准逻辑;
信号a:std_逻辑;
信号b:标准逻辑;
信号c:标准逻辑;
信号d:std_逻辑;
id_vec(0)你不是这个意思:
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';
-- ^
-- |
-- an easy mistake to make
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';
a