traffic_control.vhd

来自「四字路口交通灯管理器的设计(含波形输出)」· VHDL 代码 · 共 54 行

VHD
54
字号
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY traffic_control IS
   PORT(
       clk         :IN STD_LOGIC;
       c1,c2,c3    :OUT STD_LOGIC;
       w1,w2,w3    :IN STD_LOGIC;
       r1,r2       :OUT STD_LOGIC;
       y1,y2       :OUT STD_LOGIC;
       g1,g2       :OUT STD_LOGIC;
       reset       :IN STD_LOGIC);
   END traffic_control;

   ARCHITECTURE a OF traffic_control IS
      TYPE STATE_SPACE IS(S0,S1,S2,S3);
      SIGNAL state:STATE_SPACE;
      BEGIN
        PROCESS(clk)
        BEGIN
          IF reset='1' THEN
               state<=S0;
          ELSIF(clk 'EVENT AND clk='1')THEN
                CASE state IS
                   WHEN S0=>
                           IF w1='1'THEN
                                state<=S1;
                           END IF;
                   WHEN S1=>
                           IF W2='1'THEN
                                state<=S2;
                           END IF;
                   WHEN S2=>
                           IF w3='1'THEN
                                state<=S3;
                           END IF;
                   WHEN S3=>
                           IF W2='1'THEN
                                state<=S0;
                           END IF;
                END CASE;
          END IF;
        END PROCESS;
        c1<='1'   WHEN state=S0 ELSE '0';
        c2<='1'   WHEN state=S1 OR state=S3 ELSE '0';
        c3<='1'   WHEN state=S2 ELSE '0';
        r1<='1'   WHEN state=S1 OR state=S0 ELSE '0';
        y1<='1'   WHEN state=S3 ELSE '0';
        g1<='1'   WHEN state=S2 ELSE '0';
        r2<='1'   WHEN state=S2 OR state=S3 ELSE '0';
        y2<='1'   WHEN state=S1 ELSE '0';
        g2<='1'   WHEN state=S0 ELSE '0';
   END a;

⌨️ 快捷键说明

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