📄 display.vhd
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity display is
port(disclk:in std_logic;
num1:in std_logic_vector(3 downto 0);
num2:in std_logic_vector(3 downto 0);
num3:in std_logic_vector(3 downto 0);
num4:in std_logic_vector(3 downto 0);
num5:in std_logic_vector(3 downto 0);
num6:in std_logic_vector(3 downto 0);
num7:in std_logic_vector(3 downto 0);
num8:in std_logic_vector(3 downto 0);
led_a:out std_logic;
led_b:out std_logic;
led_c:out std_logic;
led_d:out std_logic;
led_e:out std_logic;
led_f:out std_logic;
led_g:out std_logic;
led_sa:out std_logic;
led_sb:out std_logic;
led_sc:out std_logic);
end display;
architecture behav of display is
signal q:std_logic_vector(5 downto 0);
signal sel:std_logic_vector(2 downto 0);
signal s:std_logic_vector(2 downto 0);
signal num:std_logic_vector(3 downto 0);
signal led:std_logic_vector(6 downto 0);
begin
s<=q(5 downto 3);
led_sa<=sel(0);
led_sb<=sel(1);
led_sc<=sel(2);
led_a<=led(0);
led_b<=led(1);
led_c<=led(2);
led_d<=led(3);
led_e<=led(4);
led_f<=led(5);
led_g<=led(6);
process(disclk)
begin
if(disclk'event and disclk ='1')then
if(q="111111")then
q<="000000";
else
q<=q+'1';
end if;
end if;
end process;
process(num1,num2,num3,num4,num5,num6,num7,num8,sel,disclk)
begin
if(disclk'event and disclk ='1')then
if s="000" then
num<=num1;
sel<="000";
elsif s="001" then
num<=num2;
sel<="001";
elsif s="010" then
num<=num3;
sel<="010";
elsif s="011" then
num<=num4;
sel<="011";
elsif s="100" then
num<=num5;
sel<="100";
elsif s="101" then
num<=num6;
sel<="101";
elsif s="110" then
num<=num7;
sel<="110";
else
num<=num8;
sel<="111";
end if;
end if;
end process;
led<="0111111" when num=0 else
"0000110" when num=1 else
"1011011" when num=2 else
"1001111" when num=3 else
"1100110" when num=4 else
"1101101" when num=5 else
"1111101" when num=6 else
"0000111" when num=7 else
"1111111" when num=8 else
"1101111" when num=9 else
"1110111" when num=10 else
"1111100" when num=11 else
"0111001" when num=12 else
"1011110" when num=13 else
"1111001" when num=14 else
"1000000" when num=15 else
"0000000";
end behav;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -