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

📄 traffic_control.vhd

📁 假设某个十字路口是由一条主干道和一条次干道汇合而成
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY traffic_control IS
PORT(CLK:IN STD_LOGIC;
     M1,M2,M3,M4,M5:IN STD_LOGIC;
     N1,N2,N3,N4,N5:OUT STD_LOGIC;
      MR,BR:OUT STD_LOGIC;
     MY,BY:OUT STD_LOGIC;
     MG,BG:OUT STD_LOGIC
     );
END traffic_control;
ARCHITECTURE BEHAVE OF traffic_control IS
 TYPE STATE_SPACE IS (S0,S1,S2,S3);
 SIGNAL STATE:STATE_SPACE;
BEGIN
   PROCESS(CLK)
  BEGIN
   IF(CLK'EVENT AND CLK='1')THEN
     CASE STATE IS
      WHEN S0=>IF  M4='1' AND M5='0' THEN
         STATE<=S1;
        END IF;
      WHEN S1=>IF  M1='1'AND M5='1'  THEN
         STATE<=S2;
         END IF;
       WHEN S2=>IF M2='1' AND M3='0' THEN
         STATE<=S3;
         END IF;
       WHEN S3=>IF M1='1' AND M3='1' THEN
         STATE<=S0;
         END IF;
      END CASE;
     END IF;
    END PROCESS;
   N1<='1' WHEN  STATE=S1 OR STATE=S3 ELSE '0';
   N2<='1' WHEN  STATE=S2  ELSE '0';
   N3<='1' WHEN  STATE=S2 OR STATE=S3 ELSE '0';
   N4<='1' WHEN  STATE=S0  ELSE '0';
   N5<='1' WHEN  STATE=S0 OR STATE=S1 ELSE '0';
   MR<='1' WHEN STATE=S2 OR STATE=S3 ELSE '0';
   MY<='1' WHEN STATE=S1 ELSE '0';
   MG<='1' WHEN STATE=S0 ELSE '0';
   BR<='1' WHEN STATE=S0 OR STATE=S1 ELSE '0';
   BY<='1' WHEN STATE=S3 ELSE '0';
   BG<='1' WHEN STATE=S2 ELSE '0';
   END BEHAVE;

⌨️ 快捷键说明

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