名称:汽车尾灯控制器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
1199