名稱:汽車尾燈控制Verilog(代碼在文末付費下載)
軟件:Quartus
語言:Verilog
要求:
設(shè)計一個汽車尾燈控制器。假設(shè)汽車尾部各有2個指示燈(LED),分別代表轉(zhuǎn)彎、剎車,控制器功能包括:
(1) 汽車正常行駛時所有指示燈都不亮;
(2) 汽車轉(zhuǎn)彎右轉(zhuǎn)彎時,右側(cè)的一個指示燈閃爍(間隔1S);
(3) 汽車轉(zhuǎn)彎左轉(zhuǎn)彎時,左側(cè)的一個指示燈閃爍(間隔1S);
(4) 汽車剎車時,左右兩側(cè)的一個指示燈同時亮10秒;
用按鍵代表汽車的行駛狀態(tài)。
演示視頻:
部分代碼展示
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// //設(shè)計一個汽車尾燈控制器。假設(shè)汽車尾部各有2個指示燈(LED),分別代表轉(zhuǎn)彎、剎車,控制器功能包括: //(1)?汽車正常行駛時所有指示燈都不亮; //(2)?汽車轉(zhuǎn)彎右轉(zhuǎn)彎時,右側(cè)的一個指示燈閃爍(間隔1S); //(3)?汽車轉(zhuǎn)彎左轉(zhuǎn)彎時,左側(cè)的一個指示燈閃爍(間隔1S); //(4)?汽車剎車時,左右兩側(cè)的一個指示燈同時亮10秒; //用按鍵代表汽車的行駛狀態(tài)。 module?car_LED( input?clk_in,//50MHz時鐘 input?right_key,////汽車轉(zhuǎn)彎右轉(zhuǎn)彎時,右側(cè)的一個指示燈閃爍(間隔1S); input?left_key,////汽車轉(zhuǎn)彎左轉(zhuǎn)彎時,左側(cè)的一個指示燈閃爍(間隔1S); input?brake_key,////汽車剎車時,左右兩側(cè)的一個指示燈同時亮10秒; output?right_LED,//右轉(zhuǎn)燈 output?left_LED,//左轉(zhuǎn)燈 output?[1:0]?brake_LED//剎車燈 ????); wire?clk_1Hz; assign?right_LED=(right_key==0)?clk_1Hz:0;//汽車轉(zhuǎn)彎右轉(zhuǎn)彎時,右側(cè)的一個指示燈閃爍(間隔1S); assign?left_LED?=(left_key==0)?clk_1Hz:0;//汽車轉(zhuǎn)彎左轉(zhuǎn)彎時,左側(cè)的一個指示燈閃爍(間隔1S); //分頻到1Hz時鐘,用于控制1s間隔閃爍 fenping?i_fenping( .?clk_in(clk_in), .?clk_1Hz(clk_1Hz)//輸出1Hz,占空比50% ????); ???? //剎車控制模塊 brake_ctrl?i_brake_ctrl( .?clk_in(clk_in),//50MHz時鐘 .?clk_1Hz(clk_1Hz),//輸出1Hz,占空比50% .?brake_key(brake_key),////汽車剎車時,左右兩側(cè)的一個指示燈同時亮10秒 .?brake_LED(brake_LED)//剎車燈 ????????);???? ???? endmodule
設(shè)計文檔(文檔點擊可下載):
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. Testebnch
6. 仿真圖
本代碼已在開發(fā)板驗證,板子資料:
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=174