利用Xilinx FPGA和存儲器接口生成器簡(jiǎn)化存儲器接口
控制器設計和集成
創(chuàng )建存儲器控制器是一項極其復雜、精細的任務(wù),FPGA 設計人員要解決面臨的一道道難題,就需要 FPGA 隨附的工具提供更新水平的集成支持。
為設計的完整性起見(jiàn),對包括存儲器控制器狀態(tài)機在內的所有構建模塊加以集成,十分必要??刂破鳡顟B(tài)機因存儲器架構和系統參數的不同而異。狀態(tài)機編碼也可以很復雜,它是多個(gè)變量的函數,例如:
架構(DDR、DDR2、QDR II、RLDRAM 等)
組 (bank) 數(存儲器器件之外或之內)
數據總線(xiàn)寬度
存儲器器件的寬度和深度
組和行存取算法
最后,數據與 DQS 比 (DQ/DQS) 這類(lèi)參數會(huì )進(jìn)一步增加設計的復雜性??刂破鳡顟B(tài)機必須按正確順序發(fā)出命令,同時(shí)還要考慮存儲器器件的時(shí)序要求。
使用 MIG 軟件工具可生成完整的設計。該工具作為 CORE Generator 參考設計和知識產(chǎn)權套件的一部分,可從 Xilinx 免費獲取。MIG 設計流程(圖9)與傳統 FPGA 的設計流程非常相似。MIG 工具的優(yōu)點(diǎn)是不必再為物理層接口或存儲器控制器從頭生成RTL 代碼。

MIG 圖形用戶(hù)界面 (GUI) 可用于設置系統和存儲器參數(圖10)。例如,選定 FPGA器件、封裝方式和速度級別之后,設計人員可選擇存儲器架構,并挑選實(shí)際存儲器器件或 DIMM。同是這一個(gè) GUI,還可用于選擇總線(xiàn)寬度和時(shí)鐘頻率。同時(shí),對于某些FPGA 器件,它還提供擁有多于一個(gè)控制器的選項,以適應多個(gè)存儲器總線(xiàn)接口的要求。另外一些選項可提供對時(shí)鐘控制方法、CAS 延遲、突發(fā)長(cháng)度和引腳分配的控制。

用不了一分鐘,MIG 工具即可生成 RTL 和 UCF 文件,前者是 HDL 代碼文件,后者是約束文件。這些文件是用一個(gè)經(jīng)過(guò)硬件驗證的參考設計庫生成的,并根據用戶(hù)輸入進(jìn)行了修改。
設計人員享有完全的靈活性,可進(jìn)一步修改 RTL 代碼。與提供“黑匣子”實(shí)現方法的其他解決方案不同,此設計中的代碼未加密,設計人員完全可以對設計進(jìn)行任意修改和進(jìn)一步定制。輸出文件按模塊分類(lèi),這些模塊被應用于此設計的不同構建模塊:用戶(hù)界面、物理層、控制器狀態(tài)機等等。因此,設計人員可選擇對控制組存取算法的狀態(tài)機進(jìn)行自定義。由 MIG 工具生成的 Virtex-4 和 Virtex-5 DDR2 的組存取算法彼此不同。Virtex-5 設計采用一種最近最少使用 (LRU) 算法,使多達四組中的一行總是打開(kāi),以縮減因打開(kāi)/ 關(guān)閉行而造成的開(kāi)銷(xiāo)。如果需要在一個(gè)新組中打開(kāi)一行,控制器會(huì )關(guān)閉最近最少使用組中的行,并在新組中打開(kāi)一行。而在 Virtex-4 控制器實(shí)現中,任何時(shí)候只有單個(gè)組有一個(gè)打開(kāi)的行。每個(gè)應用都可能需要有自己的存取算法來(lái)最大化吞吐量,設計人員可通過(guò)改變 RTL 代碼來(lái)修改算法,以更加適合其應用的訪(fǎng)問(wèn)模式。
修改可選代碼之后,設計人員可再次進(jìn)行仿真,以驗證整體設計的功能。MIG 工具還可生成具有存儲器校驗功能的可綜合測試平臺。該測試平臺是一個(gè)設計示例,用于Xilinx 基礎設計的功能仿真和硬件驗證。測試平臺向存儲控制器發(fā)出一系列寫(xiě)和讀回命令。它還可以用作模板,來(lái)生成自定義的測試平臺。
設計的最后階段是把 MIG 文件導入 ISE 項目,將它們與其余 FPGA 設計文件合并,然后進(jìn)行綜合、布局和布線(xiàn),必要時(shí)還運行其他時(shí)序仿真,并最終進(jìn)行硬件驗證。MIG軟件工具還會(huì )生成一個(gè)批處理文件,包括相應的綜合、映射以及布局和布線(xiàn)選項,以幫助優(yōu)化生成最終的 bit 文件。
高性能系統設計
實(shí)現高性能存儲器接口遠遠不止實(shí)現 FPGA 片上設計,它需要解決一系列芯片到芯片的難題,例如對信號完整性的要求和電路板設計方面的挑戰。
信號完整性的挑戰在于控制串擾、地彈、振鈴、噪聲容限、阻抗匹配和去耦合,從而確??煽康男盘栍行Т翱?。Virtex-4 和 Virtex-5 FPGA 所采用的列式架構能使 I/O、時(shí)鐘、電源和接地引腳部署在芯片的任何位置,而不光是沿著(zhù)外圍排列。此架構緩解了與 I/O 和陣列依賴(lài)性、電源和接地分布、硬 IP 擴展有關(guān)的問(wèn)題。此外,Virtex-4 和Virtex-5 FPGA 中所使用的稀疏鋸齒形封裝技術(shù)能對整個(gè)封裝中的電源和接地引腳進(jìn)行均勻分配。這些封裝提供了更好的抗串擾能力,使高性能設計中的信號完整性得以改善。圖11 所示為 Virtex-5 FPGA 封裝管腳。圓點(diǎn)表示電源和接地引腳,叉號表示用戶(hù)可用的引腳;在這樣的布局中,I/O 信號由足夠的電源和接地引腳環(huán)繞,能確保有效屏蔽 SSO 噪音。

對于高性能存儲器系統來(lái)說(shuō),增加數據速率并不總能滿(mǎn)足需求;要達到希望的帶寬,就需要有更寬的數據總線(xiàn)。今天,144 或 288 位的接口已經(jīng)隨處可見(jiàn)。多位同時(shí)切換可導致信號完整性問(wèn)題。對 SSO 的限制由器件供應商標明,它代表器件中用戶(hù)可為每組同時(shí)使用的信號引腳的數量。憑借稀疏鋸齒形封裝技術(shù)良好的 SSO 噪音屏蔽優(yōu)勢和同質(zhì)的 I/O 結構,寬數據總線(xiàn)接口完全可能實(shí)現。
評論