📄 seg7_dsp.vhd
字号:
-- ********************************************
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
--*********************************************
ENTITY Seg7_Dsp is
PORT(
CP : IN STD_LOGIC; -- CLOCK
SEGOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -- SEG7 Display O/P
SELOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -- Select SEG7 O/P
NUMOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) -- Number Display Signal
);
END Seg7_Dsp;
--*********************************************
ARCHITECTURE a OF Seg7_Dsp IS
SIGNAL NUM : STD_LOGIC_VECTOR( 3 DOWNTO 0); -- Number Display Signal
SIGNAL SEG : STD_LOGIC_VECTOR( 6 DOWNTO 0); -- SEG7 Display Signal
SIGNAL SEL : STD_LOGIC_VECTOR( 5 DOWNTO 0); -- Select SEG7 Signal
BEGIN
Connection : Block
Begin
SELOUT <= SEL; -- Seg7 Disp Selection
SEGOUT(6 DOWNTO 0) <= SEG; -- Seven Segment Display
SEGOUT(7) <= '1';
NUMOUT <= NUM;
End Block Connection;
Free_Counter : Block -- 计数器 -- 产生扫描信号
Signal Q : STD_LOGIC_VECTOR(24 DOWNTO 0);
Signal S : STD_LOGIC_VECTOR(2 DOWNTO 0);
Begin
PROCESS (CP) -- 计数器计数
Begin
IF CP'Event AND CP='1' then
Q <= Q+1;
END IF;
END PROCESS;
NUM <= Q(24 DOWNTO 21); --about 1 Hz
S <= Q(15 DOWNTO 13); --about 245 Hz
--NUM <= Q(6 DOWNTO 3);
--S <= Q(1 DOWNTO 0);
--扫描信号
SEL <= "111110" WHEN S=0 ELSE
"111101" WHEN S=1 ELSE
"111011" WHEN S=2 ELSE
"110111" WHEN S=3 ELSE
"101111" WHEN S=4 ELSE
"011111" WHEN S=5 ELSE
"111111";
End Block Free_Counter;
SEVEN_SEGMENT : Block -- Binary Code -> Segment 7 Code
Begin
--gfedcba
SEG <= "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
"1110001" WHEN NUM = 15 ELSE
"0000000";
End Block SEVEN_SEGMENT;
END a;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -