交通灯 FPGA 设计 Verilog Vivado

名称:交通灯 FPGA 设计 Verilog Vivado

软件:Vivado

语言:Verilog

功能介绍

本工程实现一个十字路口交通灯控制系统,使用 Verilog 编写并在 Vivado 工程环境下组织。系统面向东西方向和南北方向分别输出红灯、黄灯、绿灯控制信号,可模拟常见路口的信号灯轮换过程。 顶层模块 traffic_light_top 以 1KHz 时钟作为输入,复位信号为低电平有效。工程内部通过分频模块产生多个时间节拍,再由交通灯控制模块根据节拍驱动各方向灯色变化,使交通灯状态能够按照固定时序运行。 输出端口覆盖 east、west、south、north 四个方向,每个方向均包含 red、yellow、green 三路灯色信号。这样的端口定义清晰,便于阅读、仿真观察,也方便在后续硬件扩展时连接到 LED 指示灯或其他显示电路。

运行环境

开发语言:Verilog 开发软件:Vivado 工程形式:Vivado 工程,包含顶层源码、控制模块、分频模块、Testbench、仿真运行文件及设计文档。

设计思路

本设计将十字路口交通灯控制功能拆分为时钟分频和交通灯状态控制两部分。顶层模块接收 1KHz 时钟与低电平复位信号,内部产生 0.2 秒、1 秒、5 秒等节拍信号,再将这些节拍送入交通灯控制模块,用于实现不同灯色阶段的时序切换。 东西方向和南北方向分别输出红、黄、绿三色控制信号,并且每个方向都给出独立端口,便于后续连接 LED、数码显示或其他外设扩展。通过统一的控制模块协调东西、南北两个通行方向,避免两个方向同时放行,符合基础路口交通灯实验的设计目标。 工程包含 Testbench,可在 Vivado 中进行行为仿真。设计文档中整理了程序文件、编译结果、RTL 图、Testbench、整体仿真图、分频模块和控制模块等内容,适合用于 FPGA 课程实验、数字逻辑课程设计以及 Verilog 时序控制类项目参考。

模块结构

工程主要模块包括: 1. traffic_light_top:顶层模块,连接时钟分频模块和交通灯控制模块,对外提供四个方向的红黄绿灯输出。 2. clk_divider:时钟分频模块,由 1KHz 输入时钟产生 0.2 秒、1 秒、5 秒节拍信号。 3. traffic_ctrl:交通灯控制模块,根据分频节拍完成东西方向、南北方向交通灯状态切换。 4. traffic_light_tb:仿真测试文件,用于 Vivado 行为仿真验证。

演示视频

提供交通灯工程演示视频,可用于查看工程运行展示效果和交通灯状态变化过程。

仿真图/仿真说明/设计文档图片

设计文档包含工程文件、程序文件、程序编译、RTL 图、Testbench、整体仿真图、分频模块和控制模块等内容。工程中包含 Vivado 行为仿真相关文件,可用于查看交通灯控制逻辑在仿真环境下的时序变化。

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image1.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image10.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image2.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image3.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image4.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image5.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image6.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image7.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image8.png

交通灯 FPGA 设计 Verilog Vivado 设计文档图片 image9.png

部分代码

以下展示顶层模块 traffic_light_top 的部分代码,完整源码请下载压缩包查看。

module traffic_light_top (
    input  wire clk,    // 1KHz
    input  wire rst_n,  // 低电平复位
    //东西方向
    output wire east_red,
    output wire east_yellow,
    output wire east_green,
    output wire west_red,
    output wire west_yellow,
    output wire west_green,
    //南北方向
    output wire south_red,
    output wire south_yellow,
    output wire south_green,
    output wire north_red,
    output wire north_yellow,
    output wire north_green
);

    // 分频脉冲信号
    wire tick_0p2s;
    wire tick_1s;
    wire tick_5s;

    // 例化分频模块
    clk_divider u_clk_divider (
        .clk       (clk),
        .rst_n     (rst_n),
        .tick_0p2s (tick_0p2s),
        .tick_1s   (tick_1s),
        .tick_5s   (tick_5s)
    );

    // 例化交通灯控制模块
    traffic_ctrl u_traffic_ctrl (
        .clk        (clk),
        .rst_n      (rst_n),
        .tick_0p2s  (tick_0p2s),
        .tick_1s    (tick_1s),
        .tick_5s    (tick_5s),
        .east_red   (east_red),
        .east_yellow(east_yellow),
        .east_green (east_green),
        .west_red   (west_red),
        .west_yellow(west_yellow),
        .west_green (west_green),
        .south_red  (south_red),
        .south_yellow(south_yellow),
        .south_green(south_green),
        .north_red  (north_red),
        .north_yellow(north_yellow),
        .north_green(north_green)
    );

endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 交通灯 FPGA 设计 Verilog Vivado

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

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