名称:汽车尾灯控制器Basys3开发板verilog代码(代码在文末下载)
软件:VIVADO
语言:Verilog
代码功能:
设计一个汽车尾灯控制器。假设汽车尾部各有3个指示灯(LED),分别代表转弯、刹车和夜间行驶,控制器功能包括:
(1) 汽车正常行驶时所有指示灯都不亮;
(2) 汽车转弯右转弯时,右侧的一个指示灯闪烁(间隔1S);
(3) 汽车转弯左转弯时,左侧的一个指示灯闪烁(间隔1S);
(4) 汽车刹车时,左右两侧的一个指示灯同时亮10秒,同时蜂鸣器发声;
(5) 汽车夜间行驶时,左右两侧的一个指示灯同时一直亮。
用按键代表汽车的行驶状态。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚约束文件
4. 程序编译
5. RTL图
6. Testbench
7. 仿真图
部分代码展示:
////////////////////////////////////////////////////////////////////////////////// //设计一个汽车尾灯控制器。假设汽车尾部各有3个指示灯(LED),分别代表转弯、刹车和夜间行驶,控制器功能包括: //(1)?汽车正常行驶时所有指示灯都不亮; //(2)?汽车转弯右转弯时,右侧的一个指示灯闪烁(间隔1S); //(3)?汽车转弯左转弯时,左侧的一个指示灯闪烁(间隔1S); //(4)?汽车刹车时,左右两侧的一个指示灯同时亮10秒,同时蜂鸣器发声; //(5)?汽车夜间行驶时,左右两侧的一个指示灯同时一直亮。 //用按键代表汽车的行驶状态。 ////////////////////////////////////////////////////////////////////////////////// module?car_LED( input?clk_100M,//100MHz时钟 input?right_key,////汽车转弯右转弯时,右侧的一个指示灯闪烁(间隔1S); input?left_key,////汽车转弯左转弯时,左侧的一个指示灯闪烁(间隔1S); input?brake_key,////汽车刹车时,左右两侧的一个指示灯同时亮10秒,同时蜂鸣器发声; input?night_SW,//汽车夜间行驶时,左右两侧的一个指示灯同时一直亮。 output?beep,//蜂鸣器,高电平蜂鸣器响 output?[1:0]?night_LED,//夜间灯 output?right_LED,//右转灯 output?left_LED,//左转灯 output?[1:0]?brake_LED//刹车灯 ????); wire?clk_1Hz; //汽车夜间行驶时,左右两侧的一个指示灯同时一直亮。 assign?night_LED[0]=night_SW; assign?night_LED[1]=night_SW; assign?right_LED=(right_key)?clk_1Hz:0;//汽车转弯右转弯时,右侧的一个指示灯闪烁(间隔1S); assign?left_LED?=(left_key)?clk_1Hz:0;//汽车转弯左转弯时,左侧的一个指示灯闪烁(间隔1S); //分频到1Hz时钟,用于控制1s间隔闪烁 fenping?i_fenping( .?clk_100M(clk_100M), .?clk_1Hz(clk_1Hz)//输出1Hz,占空比50% ????); ???? //刹车控制模块 brake_ctrl?i_brake_ctrl( .?clk_100M(clk_100M),//100MHz时钟 .?clk_1Hz(clk_1Hz),//输出1Hz,占空比50% .?brake_key(brake_key),////汽车刹车时,左右两侧的一个指示灯同时亮10秒,同时蜂鸣器发声; .?beep(beep),//蜂鸣器,高电平蜂鸣器响 .?brake_LED(brake_LED)//刹车灯 ????????);???? ???? endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=299
1191