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