名稱:具有四種信號燈的交通燈控制器Verilog代碼Quartus? DE2-115開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
設(shè)計具有四種信號燈的交通燈控制器
設(shè)計任務(wù):
由一條主干道和一條支干道匯合成十字路口,在每個入口處設(shè)置紅、綠、黃、左拐允許。
四盞信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外,左拐燈亮允許車輛向左拐彎。
信號燈變換次序為:主支干道交替通行,主干道每次放行亮5s黃燈讓行駛中的車輛有時間停到禁行線外,左拐放行15s,亮5s黃燈,支干道放行30s,亮5s黃燈,左拐放行15s,亮5s黃燈。各計時電路為倒計時顯示。
任務(wù)分析:
將紅、綠、黃、左拐允許四盞信號燈輸岀到指示燈上顯示,將停放時間結(jié)果輸岀到數(shù)碼管上顯示。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在DE2-115開發(fā)板驗證,DE2-115開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
狀態(tài)圖
5. 管腳分配
6. 仿真圖
整體仿真圖
分頻模塊
狀態(tài)機控制模塊
顯示模塊
部分代碼展示:
//交通燈 module?trafic( input?clk,//50M input?key,//復(fù)位 output?main_red,//主干道紅燈 output?main_green,//主干道綠燈 output?main_yellow,//主干道黃燈 output?main_left,//主干道左轉(zhuǎn)燈 output?branch_red,//支干道紅燈 output?branch_green,//支干道綠燈 output?branch_yellow,//支干道黃燈 output?branch_left,//支干道左轉(zhuǎn)燈 output?[7:0]?HEX0,//數(shù)碼管0 output?[7:0]?HEX1,//數(shù)碼管1 output?[7:0]?HEX2,//數(shù)碼管2 output?[7:0]?HEX3//數(shù)碼管3 ); wire?clk_1Hz; wire?[7:0]?main_cnt; wire?[7:0]?branch_cnt; //分頻模塊 div?i_div( .?clk(clk),//時鐘 .?clk_1Hz(clk_1Hz)//1Hz ); //狀態(tài)機控制模塊 state_machine?i_state_machine( .?clk_1Hz(clk_1Hz),//1Hz .?key(key), .?main_red(main_red), .?main_green(main_green), .?main_yellow(main_yellow), .?main_left(main_left), .?branch_red(branch_red), .?branch_green(branch_green), .?branch_yellow(branch_yellow), .?branch_left(branch_left), .?main_cnt(main_cnt), .?branch_cnt(branch_cnt) );
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=568