cnt25s.vhd

来自「交通灯控制系统VHDL源码」· VHDL 代码 · 共 56 行

VHD
56
字号
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT25S IS
  PORT(SB,SM,CLK,EN25:IN STD_LOGIC;
       DOUT25M,DOUT25B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY CNT25S;

ARCHITECTURE ART OF CNT25S IS
  SIGNAL CNT5B:STD_LOGIC_VECTOR(4 DOWNTO 0);
  BEGIN
  PROCESS(SB,SM,CLK,EN25) IS
    BEGIN
    IF SB='0' THEN CNT5B<=CNT5B-CNT5B-1;
      ELSIF SM='0' THEN CNT5B<=CNT5B-CNT5B-1;
      ELSIF(CLK'EVENT AND CLK='1') THEN
          IF EN25='1'THEN CNT5B<=CNT5B+1;
            ELSIF EN25='0' THEN CNT5B<=CNT5B-CNT5B-1;
           END IF;
     END IF;
  END PROCESS;
  PROCESS(CNT5B) IS
    BEGIN
    CASE CNT5B IS
    WHEN "00000"=>DOUT25B<="00100101";DOUT25M<="00110000";
    WHEN "00001"=>DOUT25B<="00100100";DOUT25M<="00101001";
    WHEN "00010"=>DOUT25B<="00100011";DOUT25M<="00101000";
    WHEN "00011"=>DOUT25B<="00100010";DOUT25M<="00100111";
    WHEN "00100"=>DOUT25B<="00100001";DOUT25M<="00100110";
    WHEN "00101"=>DOUT25B<="00100000";DOUT25M<="00100101";
    WHEN "00110"=>DOUT25B<="00011001";DOUT25M<="00100100";
    WHEN "00111"=>DOUT25B<="00011000";DOUT25M<="00100011";
    WHEN "01000"=>DOUT25B<="00010111";DOUT25M<="00100010";
    WHEN "01001"=>DOUT25B<="00010110";DOUT25M<="00100001";
    WHEN "01010"=>DOUT25B<="00010101";DOUT25M<="00100000";
    WHEN "01011"=>DOUT25B<="00010100";DOUT25M<="00011001";
    WHEN "01100"=>DOUT25B<="00010011";DOUT25M<="00011000";
    WHEN "01101"=>DOUT25B<="00010010";DOUT25M<="00010111";
    WHEN "01110"=>DOUT25B<="00010001";DOUT25M<="00010110";
    WHEN "01111"=>DOUT25B<="00010000";DOUT25M<="00010101";
    WHEN "10000"=>DOUT25B<="00001001";DOUT25M<="00010100";
    WHEN "10001"=>DOUT25B<="00001000";DOUT25M<="00010011";
    WHEN "10010"=>DOUT25B<="00000111";DOUT25M<="00010010";
    WHEN "10011"=>DOUT25B<="00000110";DOUT25M<="00010001";
    WHEN "10100"=>DOUT25B<="00000101";DOUT25M<="00010000";
    WHEN "10101"=>DOUT25B<="00000100";DOUT25M<="00001001";
    WHEN "10110"=>DOUT25B<="00000011";DOUT25M<="00001000";
    WHEN "10111"=>DOUT25B<="00000010";DOUT25M<="00000111";
    WHEN "11000"=>DOUT25B<="00000001";DOUT25M<="00000110";
    WHEN OTHERS=>DOUT25B<="00000000";DOUT25M<="00000000";
    END CASE;
  END PROCESS;
END ARCHITECTURE ART;

⌨️ 快捷键说明

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