張哲 郭昭利 段品凡 曾健 王彥博 朱志剛
摘要:為實現智能交通控制燈的功能,以FPGA應用設計為基礎,使用Verilog HDL 語言編寫并且使用Quartus Ⅱ進行仿真。本設計包含主控模塊、電源模塊、時鐘模塊、LED顯示模塊,實現設計功能且驗收效果良好。
關鍵詞:FPGA;Verilog;Quartus;Ⅱgfdg
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)10-0204-02
開放科學(資源服務)標識碼(OSID):
在當下,人們生活水平的提高,越來越多的人擁有車輛,交通事故成為社會難題,在這樣的背景下,智能交通燈應運而生。
1 原理
1.1 FPGA簡介
FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它于80年代中期Xilinx推出,是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。FPGA是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。FPGA以并行運算為主,以硬件描述語言來實現;相比于PC或單片機(無論是馮諾依曼結構還是哈佛結構)的順序操作有很大區別,FPGA開發需要從頂層設計、模塊分層、邏輯實現、軟硬件調試等多方面著手。
1.2 Verilog 語言簡介
Verilog HDL是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數字系統建模。被建模的數字系統對象的復雜性可以介于簡單的門和完整的電子數字系統之間。數字系統能夠按層次描述,并可在相同描述中顯式地進行時序建模。
2 總體設計
本設計總體框圖如下:
3 詳細設計
3.1 設計要求
交通控制燈的東西方向用R1、Y1、G1示意,南北方向用R2、Y2、G2示意,時鐘周期CLK為1秒。本設計分為6種狀態,狀態0:R2、G1亮,其他滅,持續20秒;狀態1:R2亮,G1閃爍,其他滅,持續5秒;狀態2:R2、Y1亮,其他滅,持續5秒;狀態3:G2、R1亮,其他滅,持續20秒;狀態4:R1亮,G2閃爍,其他滅,持續5秒;狀態5:Y2、R1亮,其他滅,持續5秒;后返回狀態1。
3.2 設計原理
開始,由時鐘輸入端輸入頻率為50MHZ的系統時鐘脈沖,后經分頻器得到周期為1秒的系統時鐘CLK,再將CLK送給主控模塊,由主控模塊內部程序處理,劃分6種狀態,最后由LED顯示電路顯示。
3.3 軟件流程圖
本設計要求各個干道都有紅綠黃三色的指示燈控制,并實現其交替閃爍,其中東西干道用R1、Y1、G1表示,南北干道用R2、Y2、G2表示,具體控制圖如下:
4 仿真
主控設計是整個的核心,其具體仿真如下:
上圖CPA為分頻器輸出1秒的時鐘脈沖,CPB在5個時鐘脈沖后置1,并累加一次。此時執行狀態0:R2、G1為1,其他為0,持續4個CPB脈沖;當CPB第5個脈沖來臨時,執行狀態1:R2為1,G1閃爍,其他為0,持續1個CPB脈沖;當CPB第6個脈沖來到,執行狀態2:R2、Y1為1,其他為0,持續1個CPB脈沖;當CPB第7個脈沖來到,執行狀態3:G2、R1為1,其他為0,持續4個CPB脈沖;當CPB第11個脈沖來到時,執行狀態4:R1為1,G2閃爍,其他為0,持續1個CPB脈沖;當CPB第12個脈沖來臨時,執行狀態5:Y2、R1為1,其他為0,持續1個CPB脈沖,后返回狀態1重復執行。
5 驗收
根據設計要求各個干道都用紅綠黃三色指示燈,其中東西方向用R1、Y1、G1示意,南北方向用R2、Y2、G2示意驗收表及顯示結果如下:
6 總結
本設計采用Verilog HDL 語言編寫,進行分層設計,實現紅綠黃三種指示燈的交替點亮。除了掌握了本次設計,也對QuartusII軟件的操作更加熟練。在實驗的進行當中,也遇到了很多問題,通過與同學探討和請教老師,最終成功做出實驗,并加深了對交通燈原理和設計思路的認知。通過本次的學習進一步加深了對電子產品設計的了解。同時也掌握了做課程設計的一般流程,為以后的設計積累了經驗。
參考文獻:
[1] 陳賾,鄒道勝,朱如琪.CPLD/FPGA與ASIC設計實踐教程[M].2版.科學出版社出版,2010.
【通聯編輯:唐一東】