⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 show.vhd

📁 采用VHDL语言写了一个函数发生器的程序。内含有各个模块
💻 VHD
字号:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity show is
    Port (   clk3200 :in std_logic;
	        reset :in std_logic;
	          show_th,show_hu,show_ten,show_one: in std_logic_vector(3 downto 0);
	          led_data:out std_logic_vector(6 downto 0);
	          w1,w2,w3,w4:out std_logic);
end show;

architecture Behavioral of show is
type state is (thousand,hundred,ten,one);
signal current:state;

signal clkout:std_logic;
begin




show:process(clk3200)

begin
if reset='0' then
current<=thousand;
w1<='1';w2<='1';w3<='1';w4<='1';

elsif rising_edge(clk3200) then
case current is

when thousand =>w1<='0';w2<='1';w3<='1';w4<='1';
                 case show_th is
				
                     when "0000"=>led_data<="0000001";
                     when "0001"=>led_data<="1001111";
                     when "0010"=>led_data<="0010010";
                     when "0011"=>led_data<="0000110";
                     when "0100"=>led_data<="1001100";
                     when "0101"=>led_data<="0100100";
                     when "0110"=>led_data<="0100000";
                     when "0111"=>led_data<="0001111";
                     when "1000"=>led_data<="0000000";
                     when "1001"=>led_data<="0000100";
                     when others=>null;
                  end case;
                 current<=hundred;
when hundred =>w2<='0';w1<='1';w3<='1';w4<='1';
                 case show_hu is
				
                     when "0000"=>led_data<="0000001";
                     when "0001"=>led_data<="1001111";
                     when "0010"=>led_data<="0010010";
                     when "0011"=>led_data<="0000110";
                     when "0100"=>led_data<="1001100";
                     when "0101"=>led_data<="0100100";
                     when "0110"=>led_data<="0100000";
                     when "0111"=>led_data<="0001111";
                     when "1000"=>led_data<="0000000";
                     when "1001"=>led_data<="0000100";
                     when others=>null;
                  end case;
                 current<=ten;

when ten =>w3<='0';w1<='1';w2<='1';w4<='1';
                 case show_ten is
				
                     when "0000"=>led_data<="0000001";
                     when "0001"=>led_data<="1001111";
                     when "0010"=>led_data<="0010010";
                     when "0011"=>led_data<="0000110";
                     when "0100"=>led_data<="1001100";
                     when "0101"=>led_data<="0100100";
                     when "0110"=>led_data<="0100000";
                     when "0111"=>led_data<="0001111";
                     when "1000"=>led_data<="0000000";
                     when "1001"=>led_data<="0000100";
                     when others=>null;
                  end case;
                 current<=one;

when one =>w4<='0';w1<='1';w2<='1';w3<='1';
                 case show_one is
				
                     when "0000"=>led_data<="0000001";
                     when "0001"=>led_data<="1001111";
                     when "0010"=>led_data<="0010010";
                     when "0011"=>led_data<="0000110";
                     when "0100"=>led_data<="1001100";
                     when "0101"=>led_data<="0100100";
                     when "0110"=>led_data<="0100000";
                     when "0111"=>led_data<="0001111";
                     when "1000"=>led_data<="0000000";
                     when "1001"=>led_data<="0000100";
                     when others=>null;
                  end case;
                 current<=thousand;

when others=>null;

end case;
end if;

end process;
end Behavioral;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -