cnt15.vhd

来自「这是本人在Max plus2环境下用VHDL语言编的交通灯控制程序。做EDA课程」· VHDL 代码 · 共 52 行

VHD
52
字号
LIBRARY IEEE;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CNT15 IS
PORT(SB,SM,CLK,EN15:IN STD_LOGIC;
         DOUT15M,DOUT15B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY CNT15;

ARCHITECTURE one OF CNT15 IS
 SIGNAL CNT5B:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN 

U1:PROCESS(SB,SM,CLK,EN15) IS
 BEGIN 
  IF SB='0' OR SM='0' THEN 
  CNT5B<=CNT5B-CNT5B-1;
ELSIF(CLK'EVENT AND CLK='1') THEN 
   IF EN15='1' THEN 
     CNT5B<=CNT5B+1;
  ELSIF EN15='0' THEN
  CNT5B<=CNT5B-CNT5B-1;
END IF;
END IF;
END PROCESS U1; 


U2:PROCESS(CNT5B) IS
BEGIN 
CASE CNT5B IS 
WHEN "0000"=>DOUT15B<="00010101";DOUT15M<="00100000";
WHEN "0001"=>DOUT15B<="00010100";DOUT15M<="00011001";
WHEN "0010"=>DOUT15B<="00010011";DOUT15M<="00011000";
WHEN "0011"=>DOUT15B<="00010010";DOUT15M<="00010111";
WHEN "0100"=>DOUT15B<="00010001";DOUT15M<="00010110";
WHEN "0101"=>DOUT15B<="00010000";DOUT15M<="00010101";
WHEN "0110"=>DOUT15B<="00001001";DOUT15M<="00010100";
WHEN "0111"=>DOUT15B<="00001000";DOUT15M<="00010011";
WHEN "1000"=>DOUT15B<="00000111";DOUT15M<="00010010";
WHEN "1001"=>DOUT15B<="00000110";DOUT15M<="00010001";
WHEN "1010"=>DOUT15B<="00000101";DOUT15M<="00010000";
WHEN "1011"=>DOUT15B<="00000100";DOUT15M<="00001001";
WHEN "1100"=>DOUT15B<="00000011";DOUT15M<="00001000";
WHEN "1101"=>DOUT15B<="00000010";DOUT15M<="00000111";
WHEN "1110"=>DOUT15B<="00000001";DOUT15M<="00000101";
WHEN OTHERS=>DOUT15B<="00000000";DOUT15M<="00000000";
END CASE;
END PROCESS U2;
END ARCHITECTURE one;



⌨️ 快捷键说明

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