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