郭昭利 張哲 曾健 王彥博 段品凡 王穎
摘要:為實現智能交通控制燈的功能,以FPGA應用設計為基礎,使用Verilog HDL 語言編寫并且使用Quartus Ⅱ進行仿真。本設計包含主控模塊、電源模塊、時鐘模塊、LED顯示模塊,實現設計功能且驗收效果良好。
關鍵詞:FPGA;Verilog;Quartus Ⅱ
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)06-0252-01
在當今社會上,車流量的高速增長,加重了交通安全事故的發生,人、車、路三者之間的協調關系成為交通部門首要難題。而一個智能控制的交通燈能有效地控制車流量,減少交通事故的發生。
1 原理
1.1 FPGA簡介
FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它于80年代中期Xilinx推出,是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。FPGA是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。FPGA以并行運算為主,以硬件描述語言來實現;相比于PC或單片機(無論是馮諾依曼結構還是哈佛結構)的順序操作有很大區別,FPGA開發需要從頂層設計、模塊分層、邏輯實現、軟硬件調試等多方面著手。
1.2 主控模塊介紹
主控模塊使用Verilog HDL 語言編寫,并用Quartus Ⅱ仿真,模擬交通十字路口的紅綠燈使用情況。
2 總體設計
3 仿真
主控模塊為整個設計的核心,其仿真圖如下:
上圖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重復執行。
4 驗收
根據設計要求交通控制系統的各個干道都有紅綠黃三色指示燈,并實現其交替閃爍,其中東西方向干道用R1、Y1、G1示意,南北方向干道用R2、Y2、G2示意驗收表如下:
5 總結
本設計采用Verilog HDL 語言編寫,進行分層設計,實現紅綠黃三種指示燈的交替點亮。通過本次的學習我進一步加深了對電子產品設計的了解。并能夠較為熟練地對QuartusII軟件進行操作。在編寫程序的過程中,雖然遇到了很多問題,但通過與同學探討和請教老師,最終成功地把問題都解決了,并加深了對交通燈原理和設計思路的認知。同時也掌握了做課程設計的一般流程,為以后的設計積累了一定的經驗。總之,通過本次的設計,較系統地了解EDA技術,收獲頗大,對軟件編程、調試排錯及相關儀器設備的使用等方面得到較全面的鍛煉與提高。
參考文獻:
[1] 陳賾,鄒道勝,朱如琪.CPLD/FPGA與ASIC設計實踐教程[M].2版.北京:科學出版社,2010.
[2] 蔣小燕,俞偉鈞,張立臣.EDA技術及VHDL[M].南京:東南大學出版社,2008.
[3] 吳延海.EDA技術及應用[M].陜西:西安電子科技大學出版社,2012.
【通聯編輯:唐一東】