Quartus交通灯控制器VHDL代码仿真

名称:Quartus交通灯控制器VHDL代码仿真

软件:Quartus

语言:VHDL

代码功能:交通灯20230607220908.jpg


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:


设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

Bdf

Vhd

3. 程序编译

4. RTL图

5. 仿真图

图中,设置d1为15,d2为10,d3为5.即路口1绿灯为15秒,黄灯为5秒;路口2绿灯为10秒,黄灯为5秒。

图中R1,G1,Y1分别表示路口1的红、绿、黄灯。

图中R2,G2,Y2分别表示路口2的红、绿、黄灯。

可以看出,实现了路口1绿灯为15秒,黄灯为5秒;路口2绿灯为10秒,黄灯为5秒的功能



部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--LED控制模块
ENTITY RGY_led IS
   PORT (
      clk    : IN STD_LOGIC;
  state     : IN STD_LOGIC_VECTOR(2 DOWNTO 0);--状态机
      R1       : OUT STD_LOGIC;--红绿灯信号
      G1       : OUT STD_LOGIC;--红绿灯信号
      Y1       : OUT STD_LOGIC;--红绿灯信号
      R2       : OUT STD_LOGIC;--红绿灯信号
      G2       : OUT STD_LOGIC;--红绿灯信号
      Y2       : OUT STD_LOGIC--红绿灯信号
   );
END RGY_led;
ARCHITECTURE behave OF RGY_led IS
   SIGNAL R1_temp : STD_LOGIC:='0';
   SIGNAL G1_temp : STD_LOGIC:='0';
   SIGNAL Y1_temp : STD_LOGIC:='0';
   SIGNAL R2_temp : STD_LOGIC:='0';
   SIGNAL G2_temp : STD_LOGIC:='0';
   SIGNAL Y2_temp : STD_LOGIC:='0';
BEGIN
   R1 <= R1_temp;--红
   G1 <= G1_temp;--绿
   Y1 <= Y1_temp;--黄
   R2 <= R2_temp;--红
   G2 <= G2_temp;--绿
   Y2 <= Y2_temp;--黄
   
 
   --控制东西方向交通灯
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         IF (state = "001") THEN
            G1_temp <= '1';
         ELSE
            G1_temp <= '0';
         END IF;
         IF (state = "010") THEN
            Y1_temp <= '1';
         ELSE
            Y1_temp <= '0';
         END IF;
         IF (state = "011" OR state = "100") THEN
            R1_temp <= '1';
         ELSE
            R1_temp <= '0';
         END IF;
      END IF;
   END PROCESS;
   
   --控制南北方向交通灯
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         IF (state = "011") THEN
            G2_temp <= '1';
         ELSE
            G2_temp <= '0';
         END IF;
         IF (state = "100" ) THEN
            Y2_temp <= '1';
         ELSE
            Y2_temp <= '0';
         END IF;
         IF (state = "001" OR state = "010") THEN
            R2_temp <= '1';
         ELSE
            R2_temp <= '0';
         END IF;
      END IF;
   END PROCESS;
   
 
END behave;



代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » Quartus交通灯控制器VHDL代码仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员