FPGA與外部存儲設(shè)備的接口實現(xiàn)
其次,是如何控制DRAM的各種狀態(tài)。當設(shè)計FPGA與DRAM的接口時,由于它除了讀寫狀態(tài)外還有較多的其它狀態(tài),所以需要著重設(shè)計好讀寫狀態(tài)與其它狀態(tài)之間的轉(zhuǎn)換控制。為了解決這個問題,本設(shè)計采用了狀態(tài)機來控制這些狀態(tài)之間的關(guān)系,DRAM的狀態(tài)轉(zhuǎn)移圖如圖4所示:
下面給出了圖中各個狀態(tài)所表示的意思:
IDLE 表示存儲器處于空閑狀態(tài);
LMREG 表示加載寄存器狀態(tài);
ACT 表示活動狀態(tài);
AR2 表示自動刷新有效狀態(tài);
AR 表示自動刷新無效狀態(tài);
WRITE STATE 表示讀狀態(tài);
READ STATE 表示寫狀態(tài);
只有當系統(tǒng)時鐘的上升延到來時,才會觸發(fā)這個狀態(tài)機改變一次當前狀態(tài)。
剛開始時,存儲器的初始狀態(tài)為空閑狀態(tài),當有請求來時才會進入下一個狀態(tài),如果沒有請求就一直保持空閑狀態(tài)。虛線表示自動按順序進入下一個狀態(tài)。
最后,是FPGA的設(shè)計要求。一個優(yōu)秀的FPGA設(shè)計不僅要達到系統(tǒng)的基本要求,同時必須滿足可讀性、可重復性和可測性。
可讀性好的FPGA設(shè)計原理圖和硬件描述語言設(shè)計應(yīng)該包含足夠詳細的注釋。每張原理圖之間的關(guān)系及硬件描述模塊間的互聯(lián)關(guān)系的說明固然重要,但是每個模塊本身的說明也是不能忽視的,例如狀態(tài)機的文檔應(yīng)當包括狀態(tài)圖或功能描述。好的文檔也許花不了很多的時間,但是卻可以在調(diào)試﹑測試和維護設(shè)計上節(jié)省大量的時間。
可重復性指FPGA設(shè)計應(yīng)該保證如果不同的人從不同的部位開始,并重新進行布局布線等,應(yīng)該得到同樣的結(jié)果。沒有這個保證,驗證以及其他形式的設(shè)計測試就毫無意義。設(shè)計者顯然不希望在設(shè)計里出現(xiàn)這樣的情況,具有相同的輸入輸出管腳和功能的器件,由于布局布線的差異,導致最后時序不一致。如果在實現(xiàn)的過程中,系統(tǒng)設(shè)計軟件的參數(shù)或選項不一致,就會發(fā)生這種情況。因此FPGA的文檔就應(yīng)該包括必要的信息,即軟件開發(fā)系統(tǒng)的版本號﹑軟件的各個選項及參數(shù)設(shè)計。
可測性是FPGA設(shè)計的最后一個特征。系統(tǒng)級的測試要求設(shè)計者對整個設(shè)計流程及系統(tǒng)架構(gòu)都要很清楚。隨著設(shè)計層次的提高,使得設(shè)計者面對的電路規(guī)模越來越大,功能越來越復雜,相應(yīng)電路的測試也變得越來越困難。在設(shè)計過程中綜合考慮測試的設(shè)計問題并統(tǒng)一實施,將有效地縮短整個產(chǎn)品的開發(fā)時間、減少返工。
結(jié)束語
在開發(fā)過程中由于采用高級硬件編程語言-編程器件的設(shè)計實現(xiàn)過程,大大縮短了開發(fā)周期,增加了硬件設(shè)計的靈活性和可移植性,也避免了專用集成電路設(shè)計的高風險。采用邏輯仿真與后時序仿真相結(jié)合的驗證方法,可以保證設(shè)計的可靠性?;谏鲜鰞?yōu)點,這種開發(fā)方式在中小型集成電路開發(fā)中已得到廣泛應(yīng)用。 隨著工藝技術(shù)的發(fā)展與市場的需要,超大規(guī)模﹑高速﹑低功耗的新型FPGA將會不斷推陳出新?,F(xiàn)在新一代的FPGA甚至集成了中央處理器(CPU)或數(shù)字處理器(DSP)內(nèi)核,在一片F(xiàn)PGA上進行軟硬件協(xié)同設(shè)計,為實現(xiàn)片上可編程系統(tǒng)(SOPC,System On Programmable Chip)提供了強大的硬件支持。
評論