名稱:汽車尾燈控制器Basys3開發(fā)板verilog代碼(代碼在文末下載)
軟件:VIVADO
語言:Verilog
代碼功能:
設計一個汽車尾燈控制器。假設汽車尾部各有3個指示燈(LED),分別代表轉彎、剎車和夜間行駛,控制器功能包括:
(1) 汽車正常行駛時所有指示燈都不亮;
(2) 汽車轉彎右轉彎時,右側的一個指示燈閃爍(間隔1S);
(3) 汽車轉彎左轉彎時,左側的一個指示燈閃爍(間隔1S);
(4) 汽車剎車時,左右兩側的一個指示燈同時亮10秒,同時蜂鳴器發(fā)聲;
(5) 汽車夜間行駛時,左右兩側的一個指示燈同時一直亮。
用按鍵代表汽車的行駛狀態(tài)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Basys3開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 管腳約束文件
4. 程序編譯
5. RTL圖
6. Testbench
7. 仿真圖
部分代碼展示:
////////////////////////////////////////////////////////////////////////////////// //設計一個汽車尾燈控制器。假設汽車尾部各有3個指示燈(LED),分別代表轉彎、剎車和夜間行駛,控制器功能包括: //(1)?汽車正常行駛時所有指示燈都不亮; //(2)?汽車轉彎右轉彎時,右側的一個指示燈閃爍(間隔1S); //(3)?汽車轉彎左轉彎時,左側的一個指示燈閃爍(間隔1S); //(4)?汽車剎車時,左右兩側的一個指示燈同時亮10秒,同時蜂鳴器發(fā)聲; //(5)?汽車夜間行駛時,左右兩側的一個指示燈同時一直亮。 //用按鍵代表汽車的行駛狀態(tài)。 ////////////////////////////////////////////////////////////////////////////////// module?car_LED( input?clk_100M,//100MHz時鐘 input?right_key,////汽車轉彎右轉彎時,右側的一個指示燈閃爍(間隔1S); input?left_key,////汽車轉彎左轉彎時,左側的一個指示燈閃爍(間隔1S); input?brake_key,////汽車剎車時,左右兩側的一個指示燈同時亮10秒,同時蜂鳴器發(fā)聲; 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秒,同時蜂鳴器發(fā)聲; .?beep(beep),//蜂鳴器,高電平蜂鳴器響 .?brake_LED(brake_LED)//剎車燈 ????????);???? ???? endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=299
閱讀全文