基于FPGA的智能溫度采集控制器
針對溫度采集控制器系統(tǒng)的特點(diǎn),決定采用自上而下的設(shè)計(jì)方法,并將整個(gè)系統(tǒng)分為Control Unit和Data Path來進(jìn)行設(shè)計(jì)(圖1)。這樣實(shí)現(xiàn)有以下優(yōu)點(diǎn):(1)Control Unit在內(nèi)部FSM的控制下,在每一個(gè)State會(huì)有Outputs,控制Data Path中數(shù)據(jù)的傳輸,滿足DS18B20的時(shí)序要求;(2)Data Path則完成了所有的數(shù)據(jù)流傳輸,并實(shí)時(shí)的反饋給Control Unit一些Inputs,從而使其State轉(zhuǎn)換能夠正確完成;(3)如果要有附加的控制流和數(shù)據(jù)流要添加進(jìn)整個(gè)FPGA系統(tǒng),則只要在Control Unit中更改相應(yīng)的State和Data Path中做相應(yīng)修改就可。這樣設(shè)計(jì)出來的系統(tǒng)穩(wěn)定、擴(kuò)展性好。
圖1、智能溫度采集器的系統(tǒng)結(jié)構(gòu)框圖
在設(shè)計(jì)Control Block的時(shí)候一般采取有限狀態(tài)機(jī)(FSM)的方法。FSM分兩大類:米里型(Inputs對輸出邏輯和下一狀態(tài)邏輯有影響)和摩爾型(Inputs只對下一狀態(tài)邏輯有影響)。FSM設(shè)計(jì)中首要的是確定狀態(tài)變量。這是以對設(shè)計(jì)問題的深入了解為基礎(chǔ)的。每一個(gè)狀態(tài)都有可以實(shí)現(xiàn)的進(jìn)入條件,每個(gè)狀態(tài)在所有輸入條件下都有明確的下一狀態(tài),包括下一狀態(tài)和目前狀態(tài)相同的狀態(tài)的情況。顯然,如果下一狀態(tài)只有和目前狀態(tài)相同的狀態(tài)才是可實(shí)現(xiàn)的,那么FSM一旦進(jìn)入這個(gè)狀態(tài)就不會(huì)再改變了,這種“死機(jī)”狀態(tài)當(dāng)然是要避免的。在此系統(tǒng)的 Control Block中的FSM采用摩爾型,設(shè)計(jì)出“下一狀態(tài)邏輯”從而使得“狀態(tài)寄存器”能在每一個(gè)時(shí)鐘沿正確的進(jìn)行狀態(tài)轉(zhuǎn)換,并確定好“輸出邏輯”,在每一個(gè)狀態(tài)都能輸出正確的控制流來對 Data Path中的數(shù)據(jù)流進(jìn)行正確的控制,保證整個(gè)系統(tǒng)能夠正確的工作。
數(shù)據(jù)通道實(shí)現(xiàn)的是數(shù)據(jù)間的運(yùn)算和傳輸。數(shù)據(jù)可能是8/16/32/64位的,一般所有位的運(yùn)算并沒有太大的不同。但是,它又要同時(shí)實(shí)現(xiàn)Control Block中的FSM的功能,其設(shè)計(jì)是要和 Control Block中的FSM的結(jié)構(gòu)一起考慮的。一旦FSM確定了,數(shù)據(jù)通道的計(jì)劃就要著手進(jìn)行。由于數(shù)據(jù)通道的性能決定了整個(gè)系統(tǒng)的性能的高低,所以它又非常的關(guān)鍵。以往通用處理器因?yàn)樯a(chǎn)數(shù)量大,數(shù)據(jù)通道用全定制的方法設(shè)計(jì)比較多,線路和版圖設(shè)計(jì)的精雕細(xì)刻,以求換得低的芯片生產(chǎn)成本和用其他方法難以達(dá)到的性能水平。這種情況在現(xiàn)代的SOC產(chǎn)品里有了很大的改變,因?yàn)镾OC產(chǎn)品的產(chǎn)量一般都比較小,而且設(shè)計(jì)者都希望同一個(gè)處理器核的設(shè)計(jì)能夠用于不同工藝生產(chǎn)的產(chǎn)品。這樣,全定制的設(shè)計(jì)就不合適了。一般來說,數(shù)據(jù)通道是一定形式的流水線,因?yàn)閿?shù)據(jù)的讀取、運(yùn)算和結(jié)果的寫入都在同一個(gè)周期內(nèi)實(shí)現(xiàn),時(shí)鐘頻率就很難提高,所以高性能處理器的數(shù)據(jù)通道現(xiàn)在都采用流水線設(shè)計(jì)。數(shù)據(jù)通道和數(shù)據(jù)寄存器和數(shù)據(jù)存儲(chǔ)器的關(guān)系十分密切,這當(dāng)然是由處理器的結(jié)構(gòu)確定的。在此系統(tǒng)中的 Data Path的數(shù)據(jù)流處理功能并不是非常的復(fù)雜,可以不用采取流水線設(shè)計(jì),并在FSM的控制下進(jìn)行正確的數(shù)據(jù)流傳輸,同時(shí)會(huì)反饋給FSM中的“下一狀態(tài)邏輯”一些Inputs信號來使其能夠進(jìn)行正確的狀態(tài)轉(zhuǎn)換。
評論