應用VHDL語言設計數字系統,大部分設計工作可在計算機上完成,進而縮短系統開發時間,提高工作效率。下面介紹基于VHDL設計交通燈控制器的一種方案,并給出源程式和仿真結果。
1 系統功能與要求
交通燈控制器控制兩個主幹道交叉路口的交通,路口車輛多,直行信号、左轉彎信号分開顯示,a,b兩個主幹道的通行時間相等,其中訓示直行的綠燈亮30s,訓示左轉彎的綠燈亮12s,綠燈變至紅燈時,黃燈亮3s,以便于車輛能停在停車線内,紅燈信号的最後3s相應的黃燈也同時亮,以便提示駕駛人員準備起步。在兩個主幹道路口都配備傳感器用來檢測有無車輛通行。當兩個主幹道都有車輛時,自動處于主幹道a綠燈,主幹道b紅燈的狀态,然後輪流切換通行。當主幹道a無車輛時,自動處于主幹道b綠燈,主幹道a紅燈的狀态;反之亦然,以提高通行效率。
2 設計與仿真
根據交通燈控制器的功能與要求,将其總體電路分為分頻器、信号控制器兩個子產品。外部脈沖振蕩器的頻率選為32768kHz,經分頻器分頻得1Hz的信号,1Hz信号用做信号控制器的計數脈沖,用VHDL設計組成交通燈控制器的分頻器、信号控制器兩個子產品,在QuartusⅡ開發平台上,分别編譯兩個子產品的VHDL程式,然後用原理圖輸入法形成圖1所示的總體框圖。
圖1 交通燈控器制總體框圖
其中信号控制器的VHDL程式如下:
其中,Sa,Sb分别是a,b路口傳感器的信号,aR,aY,aG,aLR,aLY,aLG分别代表控制主幹道a的直行紅燈、黃燈、綠燈,左轉彎紅燈、黃燈、綠燈的信号;bR,bY,bG,bLR,bLY,bLG分别代表控制主幹道b的直行紅燈、黃燈、綠燈,左轉彎紅燈、黃燈、綠燈的信号;aPR,aPG,bPR,bPG是人行道信号,en1是使能信号。en1=0時a,b兩路口紅燈同時亮,便于處理特殊情況。用QuartusⅡ對程式編譯、仿真,得到的仿真波形如圖2所示,經程式下載下傳、實驗驗證,系統功能符合要求。
圖2 信号控制器的仿真波形
基于VHDL設計交通燈控制器,外圍電路少、功耗低、可靠性高,便于系統功能的修改,設計效率高。