📄 d_bcd.vhd
字号:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity d_BCD is
port(cs_sw8 :in std_logic;
p_sw1,p_sw2,p_sw3,p_sw4 :in std_logic;
LED1_out :out std_logic_vector(6 downto 0);
LED2_out :out std_logic_vector(6 downto 0);
LED3_out :out std_logic_vector(6 downto 0)
);
end d_BCD;
architecture Behavioral of d_BCD is
signal com :std_logic_vector(3 downto 0);
begin
com<=p_sw4 & p_sw3 & p_sw2 & p_sw1;
process(com,cs_sw8)
begin
if(cs_sw8='0')then
case com is --fgedcba
when "0000"=>LED1_out<="0100000"; --fgedcba 0
when "0001"=>LED1_out<="1111001"; --1
when "0010"=>LED1_out<="1000100"; --2
when "0011"=>LED1_out<="1010000"; --3
when "0100"=>LED1_out<="0011001"; --4
when "0101"=>LED1_out<="0010010"; --5
when "0110"=>LED1_out<="0000010"; --6
when "0111"=>LED1_out<="1111000"; --7
when "1000"=>LED1_out<="0000000"; --8
when "1001"=>LED1_out<="0010000"; --9
when others=>LED1_out<="1111111";
end case;
end if;
if(cs_sw8='1')then
case com is
when others=>LED1_out<="1111111";
end case;
end if;
--led2
if(cs_sw8='0')then
case com is --fgedcba
when "0000"=>LED2_out<="0100000"; --fgedcba 0
when "0001"=>LED2_out<="1111001"; --1
when "0010"=>LED2_out<="1000100"; --2
when "0011"=>LED2_out<="1010000"; --3
when "0100"=>LED2_out<="0011001"; --4
when "0101"=>LED2_out<="0010010"; --5
when "0110"=>LED2_out<="0000010"; --6
when "0111"=>LED2_out<="1111000"; --7
when "1000"=>LED2_out<="0000000"; --8
when "1001"=>LED2_out<="0010000"; --9
when others=>LED2_out<="1111111";
end case;
end if;
if(cs_sw8='1')then
case com is
when others=>LED2_out<="1111111";
end case;
end if;
--led3
if(cs_sw8='0')then
case com is --fgedcba
when "0000"=>LED3_out<="0100000"; --fgedcba 0
when "0001"=>LED3_out<="1111001"; --1
when "0010"=>LED3_out<="1000100"; --2
when "0011"=>LED3_out<="1010000"; --3
when "0100"=>LED3_out<="0011001"; --4
when "0101"=>LED3_out<="0010010"; --5
when "0110"=>LED3_out<="0000010"; --6
when "0111"=>LED3_out<="1111000"; --7
when "1000"=>LED3_out<="0000000"; --8
when "1001"=>LED3_out<="0010000"; --9
when others=>LED3_out<="1111111";
end case;
end if;
if(cs_sw8='1')then
case com is
when others=>LED3_out<="1111111";
end case;
end if;
end process;
end Behavioral;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -