利用有限狀態(tài)機的交通燈控制系統(tǒng)設計與仿真
將編譯后的程序進行仿真,得到交通燈控制與倒計時模塊仿真波形圖如圖3所示。由仿真波形可以看出,交通燈按St0→*St1→St2→St3 →St0順序進行狀態(tài)循環(huán)。light按主路紅、主路黃、主路綠、支路紅、支路黃、支路綠的順序排列。如在St0狀態(tài)下,light的值為“001100 ”,當hold緊急情況信號為高電平時,主路、支路均亮紅燈,并且停止倒計時。當rst復位信號為高電平時,恢復到初態(tài)。本文引用地址:http://www.biyoush.com/article/160987.htm
3 頂層文件的設計及仿真
將分頻模塊和顯示控制模塊均分別用VHDL進行編程、仿真,檢查其功能正確性,并包裝元件入庫建立元件符號。在上述3個模塊設計完成之后,按照圖1所示電路結構,用原理圖輸入方式進行連接,構成交通燈控制系統(tǒng)的頂層文件,并在Quartus II平臺上進行編譯、仿真,引腳鎖定,得到仿真波形如圖4所示,圖中信號light、a(b)、dec7sa(dec7sb)分別用二進制、十進制、十六進制表示。
從仿真波形中可以看出:當復位信號rst=1有效時,電路復位,此時light復位為“001100”狀態(tài),置a方向和b方向計數器為最大值24和29;當rst=0無效,緊急信號hold=1有效時,light為“100100”表示兩路紅燈均亮的狀態(tài);當rst=0,hold=0時,恢復電路原來的light為“001100”狀態(tài),a和b進行倒計時計數。7段顯示譯碼器a方向的dec7sa和b方向的dec7sb分別顯示計數器a和b的數值,如當a計數到21時,dec7sa的高位2和低位1的0gfedcba=01011011B(5B)和00000110 B(06),即5806,同理當b計數到26時,dec7sb的值為5B7D,所以交通燈控制系統(tǒng)的仿真結果完全正確。
最后將頂層文件下載到可編程邏輯器件EP1C12Q240C8中,經測試,交通燈控制系統(tǒng)正常工作,完全符合設計要求。
4 結束語
有限狀態(tài)機及其設計技術是數字系統(tǒng)中實現高效率、高可靠性邏輯控制的重要途徑。在交通燈控制系統(tǒng)設計中,通過對控制功能的分析和實際狀態(tài)的選擇,把交通燈的控制歸納為4種工作狀態(tài),并建立狀態(tài)轉移關系,較為準確、直觀的反映了實際需求。在用VHDL語言設計實現交通燈控制系統(tǒng)時,既有傳統(tǒng)的基于邏輯單元構建的整體組成結構方式,也有利用純軟件編程實現的邏輯模塊。設計方法靈活、實現簡單、性能穩(wěn)定的特點。
以上有限狀態(tài)機的設計方法具有通用性,對于較為復雜的有限狀態(tài)機可采用多個進程,分別完成任意復雜組合邏輯和時序邏輯,包括進程間狀態(tài)值的傳遞以及狀態(tài)轉換值的輸出,對類似含有邏輯控制功能的系統(tǒng),通過自頂向下設計、分步實現,是切實可行的方法。
評論