• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于FPGA的交通灯控制器设计VHDL代码ISE仿真

07/31 09:28
488
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24052QJ30N59.doc

共1个文件

名称:基于FPGA的交通灯控制器设计VHDL代码ISE仿真

软件:ISE

语言:VHDL

代码功能:

交通灯控制器设计要求

1.控制对象为单个十字路口的南北向交通灯,具体包含一个左转箭头灯(可以显示红色,绿色)和一个圆形指示灯(可以显示红色,绿色,以及黄色);

2.圆形指示灯:当接收到东西向左转箭头灯的左转完成信号(外界输入)后,经过3次黄灯闪烁(一秒闪烁一次)后由原本的红灯跳转为绿灯,绿灯维持24秒,经过3次黄灯闪烁跳转回红灯,并输出一个左转允许信号;

3.左转箭头灯:当接收到圆形指示灯的左转允许信号后,由红色跳转为绿色,维持15秒后跳转回红色,并输出一个左转完成信号;

4.设置一个交通管制按钮,该按钮按下后,所有信号灯亮起红色;

5.需要分别完成以下两个模块的VHDL设计并分别进行仿真测试:圆灯控制器和箭头灯控制器;

6.按照合理逻辑将上述两个模块进行连接,必要时适当添加周边电路,完成整体的VHDL设计,再进行仿真测试。

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. Testbench

5. 仿真图

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
--顶层模块
ENTITY light IS
   PORT (
      clk           : IN STD_LOGIC;--时钟
      rst_p         : IN STD_LOGIC;--复位,高电平有效
      traffic_control  : IN STD_LOGIC;--交通管制信号输入
      EW_left     : IN STD_LOGIC;--东西向左转完成输入
      round_red     : OUT STD_LOGIC;--圆灯红色
      round_yellow  : OUT STD_LOGIC;--圆灯黄色
      round_green   : OUT STD_LOGIC;--圆灯绿色
      arrow_red         : OUT STD_LOGIC;--箭头红灯
      arrow_green       : OUT STD_LOGIC;--箭头绿灯
  arrow_left_done   : OUT STD_LOGIC--南北方向输出左转完成信号
   );
END light;
ARCHITECTURE RTL OF light IS
--圆灯控制器
COMPONENT Round_controller IS
   PORT (
      clk           : IN STD_LOGIC;--时钟
      rst_p         : IN STD_LOGIC;--复位,高电平有效
      traffic_control  : IN STD_LOGIC;--交通管制信号输入
      EW_left     : IN STD_LOGIC;--东西向左转完成输入
  left_allow  : OUT STD_LOGIC;--输出左转允许信号
      round_red     : OUT STD_LOGIC;--圆灯红色
      round_yellow  : OUT STD_LOGIC;--圆灯黄色
      round_green   : OUT STD_LOGIC--圆灯绿色
   );
END COMPONENT;
--箭头灯控制模块 
COMPONENT Arrow_controller IS
   PORT (
      clk           : IN STD_LOGIC;--时钟
      rst_p         : IN STD_LOGIC;--复位
  traffic_control  : IN STD_LOGIC;--交通管制信号输入
      arrow_allow  : IN STD_LOGIC;--圆灯左转允许
      arrow_red         : OUT STD_LOGIC;--箭头红灯
      arrow_green       : OUT STD_LOGIC;--箭头绿灯
  arrow_left_done   : OUT STD_LOGIC--南北方向输出左转完成信号
   );
END COMPONENT;
SIGNAL left_allow  : STD_LOGIC;--圆灯左转允许
BEGIN
--圆灯控制器
U1: Round_controller
   PORT MAP(
      clk           => clk,--时钟
      rst_p         => rst_p,--复位,高电平有效
      traffic_control  => traffic_control,--交通管制信号输入
      EW_left     => EW_left,--东西向左转完成输入
  left_allow  => left_allow,--输出左转允许信号
      round_red   => round_red,--圆灯红色
      round_yellow  => round_yellow,--圆灯黄色
      round_green   => round_green--圆灯绿色
   );
   
--箭头灯控制模块 
U2: Arrow_controller
   PORT MAP(
      clk           => clk,--时钟
      rst_p         => rst_p,--复位
  traffic_control  => traffic_control,--交通管制信号输入
      arrow_allow  => left_allow,--圆灯左转允许
      arrow_red       => arrow_red,--箭头红灯
      arrow_green   => arrow_green,--箭头绿灯
  arrow_left_done   =>arrow_left_done--南北方向输出左转完成信号
   );
   
END RTL;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=803

  • 2-24052QJ30N59.doc
    下载

相关推荐