名称:交通灯 设计Verilog代码Quartus DE2-115开发板
软件:Quartus
语言:Verilog
代码功能:
题目1:FPGA实现交通灯
基本功能:30秒绿灯倒计时+30秒红灯倒计时,倒计时最后5秒时计时每半秒闪烁一次。红灯亮起时,设计行人通行指示灯。
要求:必须用到状态机。
要有功能介绍, 设计思路 ,模块结构,代码,效果展示
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. RTL图
状态图
6. Testbench
7. 仿真图
整体仿真图
分频模块
分频产生2Hz闪烁信号和1Hz脉冲信号
控制模块
通过倒计时控制状态跳转和红绿灯控制
显示模块
两个数码管分别显示十位和个位倒计时
部分代码展示:
/* 30秒绿灯倒计时+30秒红灯倒计时,倒计时最后5秒时计时每半秒闪烁一次。红灯亮起时,设计行人通行指示灯。 */ module traffic_light( input clk,//50Mhz output led_red, //红灯 output led_green,//绿灯 output people_led,//行人 output [7:0] HEX0,//(主干道)数码管0 output [7:0] HEX1//(主干道)数码管1 ); wire red; wire clk_1Hz; wire clk_2Hz; wire [7:0] time_cnt;//倒计时 //绿灯 assign led_red=red; assign people_led=red; //分频模块 div div100 ( . clk(clk), . clk_1Hz_out(clk_1Hz),//分频到1Hz . clk_2Hz_out(clk_2Hz)//分频到2Hz ); led i_led( . clk(clk),//50Mhz . clk_1Hz(clk_1Hz),//到1Hz . clk_2Hz(clk_2Hz),//到2Hz . time_cnt(time_cnt),//倒计时 . led_red(red), //红灯 . led_green(led_green)//绿灯 );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1221
阅读全文
611