采样输入信号并检查它们的值 VHDL
sample input signals and check their values VHDL
我有 2 个 input
信号 - ID_1,ID_2
采样到 id_vec
.
LEDx_GRNn
是 output
。
在这一点上,a,b,c,d
中只有一个应该是'1',其他的应该是'0',这之后应该只让一个发光,其他的不发光。
出于某种原因,所有 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);
你不是这个意思:
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';
这是一个容易犯的错误。
我有 2 个 input
信号 - ID_1,ID_2
采样到 id_vec
.
LEDx_GRNn
是 output
。
在这一点上,a,b,c,d
中只有一个应该是'1',其他的应该是'0',这之后应该只让一个发光,其他的不发光。
出于某种原因,所有 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);
你不是这个意思:
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';
这是一个容易犯的错误。