📄 display.vhd
字号:
------------------------------------------------------------------------------------ Company: -- Engineer: -- -- Create Date: 16:38:01 03/08/2007 -- Design Name: -- Module Name: display - Behavioral -- Project Name: -- Target Devices: -- Tool versions: -- Description: ---- Dependencies: ---- Revision: -- Revision 0.01 - File Created-- Additional Comments: ------------------------------------------------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity display is
port(clk:in std_logic;
data:in std_logic_vector(15 downto 0);
seg:out std_logic_vector(6 downto 0);
sel:out std_logic_vector(3 downto 0));end display;architecture Behavioral of display is
signal clkDiv : std_logic_vector (12 downto 0);
signal sclk:std_logic_vector(1 downto 0);
signal MUXOUT:std_logic_vector(3 downto 0);begin
--Divide the master clock down to a lower frequency--
CLKDivider: Process (CLK)
begin
if (CLK = '1' and CLK'Event) then
clkDiv <= clkDiv +1;
end if;
end Process;
sclk <= clkDiv(11 downto 10);
--Multiplexer
MUXOUT <=data(15 downto 12) when sclk = "00" else
data(11 downto 8) when sclk = "01" else
data(7 downto 4) when sclk = "10" else
data(3 downto 0) when sclk = "11";
--Seven Segment Decoder--
seg <="1000000" when MUXOUT = "0000" else
"1111001" when MUXOUT = "0001" else
"0100100" when MUXOUT = "0010" else
"0110000" when MUXOUT = "0011" else
"0011001" when MUXOUT = "0100" else
"0010010" when MUXOUT = "0101" else
"0000010" when MUXOUT = "0110" else
"1111000" when MUXOUT = "0111" else
"0000000" when MUXOUT = "1000" else
"0010000" when MUXOUT = "1001" else
"0001000" when MUXOUT = "1010" else
"0000011" when MUXOUT = "1011" else
"1000110" when MUXOUT = "1100" else
"0100001" when MUXOUT = "1101" else
"0000110" when MUXOUT = "1110" else
"0001110" when MUXOUT = "1111" else
"1111111";
--Anode Driver
sel<="0111" when sclk = "00" else
"1011" when sclk = "01" else
"1101" when sclk = "10" else
"1110" when sclk = "11" else
"1111";end Behavioral;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -