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