基于FPGA的交通信號燈控制系統(tǒng)
2 系統(tǒng)狀態(tài)分析
對設(shè)計要求進(jìn)行分析可知,主、支干道交通燈變化順序應(yīng)如圖2所示。本文引用地址:http://www.ex-cimer.com/article/190117.htm
狀態(tài)轉(zhuǎn)換如表1所示。
3 系統(tǒng)結(jié)構(gòu)設(shè)計
根據(jù)要求,系統(tǒng)結(jié)構(gòu)圖設(shè)計如圖3所示。時鐘脈沖由分頻器對晶振脈沖進(jìn)行分頻產(chǎn)生。主控制器接收時鐘信號,并據(jù)此進(jìn)行狀態(tài)轉(zhuǎn)換,同時輸出各狀態(tài)的時間。信號燈控制器根據(jù)主控制器產(chǎn)生的狀態(tài)量對主、支干道信號燈進(jìn)行控制。由于主控制器輸出的時間信號為實數(shù)類型,因此還需設(shè)計分位器將其轉(zhuǎn)換為兩組BCD碼分別送至數(shù)碼管顯示。
4 VHDL設(shè)計實現(xiàn)
為便于系統(tǒng)實現(xiàn),采用VHDL語言對各個模塊進(jìn)行設(shè)計。主控制器為一計數(shù)器,輸入信號為秒脈沖,以70為一個周期,計數(shù)到1后,在下一個時鐘信號來到時,計數(shù)器復(fù)位,開始下一輪計數(shù),如此往復(fù)。系統(tǒng)復(fù)位信號reset可使計數(shù)器從任意狀態(tài)復(fù)位至狀態(tài)S0,并重新開始計數(shù)。下面是主控制器的VHDL文件。其中clk和rst是時鐘和復(fù)位信號,state表示當(dāng)前狀態(tài),seg7a、seg7b分別表示主、支干道倒計時時間,temp為內(nèi)置變量。
fpga相關(guān)文章:fpga是什么
評論