名称:交通灯设计Verilog代码VIVADO PYNQ-Z2开发板(文末获取)
软件:VIVADO
语言:Verilog
代码功能:
交通灯设计(最后3秒闪烁)
交通灯分为主路和支路,两条路均为:红灯33秒,绿灯30秒,黄灯3秒。
主路为红灯时支路为绿灯和黄灯,
支路为红灯时主路为绿灯和黄灯。
且红灯最后3秒会闪烁,绿灯最后3秒也会闪烁,黄灯不闪烁。
本代码已在PYNQ-Z2开发板验证,PYNQ-Z2开发板如下,其他开发板可以修改管脚适配:
1. 功能描述
交通灯分为主路和支路,两条路均为:红灯33秒,绿灯30秒,黄灯3秒。主路为红灯时支路为绿灯和黄灯,支路为红灯时主路为绿灯和黄灯。且红灯最后3秒会闪烁,绿灯最后3秒也会闪烁,黄灯不闪烁。
2. 系统框图
交通灯模块
3. 流程图
4. 仿真图
部分代码展示:
/* 红->绿 绿->黄 黄->红 1、红--计时main_red_times------------------------绿--计时main_green_times---main_yellow_times黄灯---------------红 2、绿--计时branch_green_times---branch_yellow_times黄灯--------------------红--计时branch_reg_times-------------------绿 */ //设路口A为主路,路口B为支路 module traffic_light( input clk,//时钟 //led 1亮0灭 output [2:0]main_LED,//主路灯 output [2:0]branch_LED//支路灯 ); wire clk_1Hz; wire main_red_led;//主路灯 wire main_green_led;//主路灯 wire main_yellow_led;//主路灯 wire branch_red_led;//支路灯 wire branch_green_led;//支路灯 wire branch_yellow_led;//支路灯 //led 1亮0灭 assign main_LED[0]=main_red_led;//主路灯 assign main_LED[1]=main_green_led;//主路灯 assign main_LED[2]=main_yellow_led ;//主路灯 assign branch_LED[0]=branch_red_led;//支路灯 assign branch_LED[1]=branch_green_led;//支路灯 assign branch_LED[2]=branch_yellow_led ;//支路灯 //分频模块 div div100 ( . clk(clk), . clk_out(clk_1Hz) ); /// //交通灯控制模块 led led( . clk_1Hz(clk_1Hz), . main_red(main_red_led),//主路灯 . main_green(main_green_led),//主路灯 . main_yellow(main_yellow_led),//主路灯 . branch_red(branch_red_led),//支路灯 . branch_green(branch_green_led),//支路灯 . branch_yellow(branch_yellow_led)//支路灯 ); endmodule
源代码
扫描文章末尾的公众号二维码