17.08.2013 Views

使用Spartan-3A FPGA 實現低成本DDR2接口使用Spartan-3A ... - Xilinx

使用Spartan-3A FPGA 實現低成本DDR2接口使用Spartan-3A ... - Xilinx

使用Spartan-3A FPGA 實現低成本DDR2接口使用Spartan-3A ... - Xilinx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

元件的數量,以便為在 <strong>FPGA</strong> 內部採集數<br />

據而正確對齊讀數據選通脈衝 (DQS)。<br />

在讀取事務過程中,DDR2 SDRAM 器件<br />

將 DQS 和相關數據發送到與 DQ 對齊邊沿<br />

的 <strong>FPGA</strong>。採集 DQ 是一項艱巨任務,因為<br />

非自由型 DQS 的每個沿上都有數據在變<br />

化。<br />

DQ 採集通過可配置邏輯塊 (CLB) 中的<br />

LUT 實現。DQ 採集的實現使用了一種基<br />

於 LUT 的 tap 延遲機制。DQS 時鐘信號經<br />

過延遲,以提供足夠的時序余量。DQ 採<br />

集是在基於 LUT 的雙端口 RAM 中實現的<br />

DQ<br />

FIFO 0<br />

FIFO_0_WE<br />

FIFO 1 User Data<br />

FIFO_1_WE<br />

IOB Delayed DQS CLB<br />

(圖 2)。LUT RAM 配置成一對 FIFO,每個<br />

數據位都輸入到上昇沿 (FIFO_0) 和下降沿<br />

(FIFO_1) 的 FIFO 中。這些厚度為 16 個入口<br />

的 FIFO 是異步的,具有獨立的讀寫端口。<br />

從 DQS 時鐘域到存儲器控制器時鐘域<br />

的 DQ 傳輸就是通過這些異步 FIFO 完成<br />

的。在存儲器控制器的時鐘域中,可以從<br />

FIFO_0 和 FIFO_1 同時讀出數據。FIFO 的讀<br />

指針是在 <strong>FPGA</strong> 的內部時鐘域中生成的。<br />

寫使能信號(FIFO_0 WE 和 FIFO1_WE)的<br />

生成是通過 DQS 和一個外部環回或歸一化<br />

信號完成的。<br />

外部歸一化信號作為輸出送至輸入/輸<br />

出模塊 (IOB),然後再作為輸入送至輸入緩<br />

衝器。這種技術可補償 <strong>FPGA</strong> 與存儲器器<br />

件之間的 IOB、器件和跡線延遲。<br />

寫數據接口生成並控制寫數據命令和<br />

時序。寫數據接口使用 IOB 觸發器和 DCM<br />

的 90 度、180 度和 270 度輸出,發送一個<br />

按照 DDR 和 DDR2 SDRAM 的時序要求與命<br />

令位和數據位正確對齊的 DQS。<br />

此設計的其他方面包括整體控制器狀<br />

態機的邏輯生成和用戶界面。為便於設計<br />

人員使用整個解決方案,<strong>Xilinx</strong> 開發了存儲<br />

器接口生成器 (MIG) 工具。<br />

控制器的設計<br />

以及與 MIG 軟件工具的集成<br />

為了使您的設計完善,集成包括存儲<br />

Spartan-3<br />

Generation<br />

FIFO_0_WE<br />

FIFO_1_WE<br />

器控制器狀態機在內的所有構建模塊至關<br />

重要。控制器狀態機因存儲器架構和系<br />

統參數不同而異。狀態機代碼也可以很複<br />

雜,它可能是多個變量的函數,例如:<br />

• 架構(DDR、DDR2)<br />

• 組數(存儲器器件的外部或內部)<br />

• 數據總線寬度<br />

• 存儲器器件的寬度和厚度<br />

• 組和行存取算法<br />

最後,數據與選通脈衝比 (DQ/DQS) 這<br />

類參數會進一步加大設計的複雜性。控<br />

CLK<br />

Data/DQS<br />

Address<br />

Normalization<br />

Signal<br />

DDR2<br />

SDRAM<br />

制 器 狀 態 機<br />

必 須 按 正 確<br />

順 序 發 出 命<br />

令 , 同 時 還<br />

要 考 慮 存 儲<br />

器 器 件 的 時<br />

序要求。<br />

使用 MIG<br />

軟 件 工 具 可<br />

生 成 完 整 的<br />

設計。該工具作為參考設計和知識產權作<br />

品中的 ISE TM 軟件 CORE Generator TM 套件的<br />

一部分,可從 <strong>Xilinx</strong> 免費獲取。MIG 的設計<br />

流程與傳統 <strong>FPGA</strong> 的設計流程非常相似。<br />

對設計人員的好處是,有了這個軟件工<br />

具,就不必再為物理層接口或存儲器控制<br />

器從頭生成 RTL 代碼。<br />

要設置系統和存儲器參數,可使用 MIG<br />

的圖形用戶界面 (GUI)。例如,選定 <strong>FPGA</strong><br />

器件、封裝方式和速度級別之後,可以選<br />

擇存儲器架構,甚至還可以挑選實際的<br />

<strong>Xilinx</strong> <strong>FPGA</strong> Spartan-3 <strong>FPGA</strong> Spartan-3E <strong>FPGA</strong> Spartan-<strong>3A</strong> <strong>FPGA</strong><br />

開發板 SL361 入門套件 3E 入門套件 <strong>3A</strong><br />

支持的存儲器接口 DDR DDR DDR2<br />

存儲器器件或 DIMM(雙列直插存儲器模<br />

塊)。同是這一個 GUI,還可用來選擇總<br />

線寬度和時鐘頻率。另外一些選項可提供<br />

對 CAS(列訪問 DQS)延遲、突發長度和<br />

引腳分配的控制。<br />

用不了一分鐘,MIG 工具即可生成 RTL<br />

和 UCF 文件(分別是 HDL 代碼和約束文<br />

件)。這些文件是用一個經過硬件驗證的<br />

參考設計庫生成的,所用的參考設計根據<br />

您的輸入進行了修改。輸出文件按模塊分<br />

類,適用於此設計的不同構建模塊,如用<br />

戶界面、物理層和控制器狀態機。<br />

錶 1 – 存儲器接口的低成本開發板<br />

技 術 專 欄<br />

您還享有完全的靈活性,可進一步修<br />

改 RTL 代碼。與提供“黑匣子”實現方法<br />

的其他解決方案不同,此設計中的代碼沒<br />

有加密,從而提供了對設計進行修改和進<br />

一步定制的完全靈活性。修改任何可選代<br />

碼之後,都可再次進行仿真,以驗證整體<br />

設計的功能。<br />

MIG 工具還可生成具有存儲器校驗功<br />

能的可綜合測試平台。該測試平台是一個<br />

設計示例,用於 <strong>Xilinx</strong> 參考設計的功能仿<br />

真和硬件驗證,它可以向存儲器控制器發<br />

出一系列寫命令和讀回命令。您還可將其<br />

用作模板,生成自己的定制測試平台。<br />

設計的最後階段是導入 ISE 項目中的<br />

MIG 文件,將其與 <strong>FPGA</strong> 設計的其余文件合<br />

併(然後進行綜合、佈局和布線),必要<br />

時還會運行其他時序仿真,並進行硬件驗<br />

證。MIG 軟件工具生成一個批處理文件,<br />

其中有相應的綜合、映射、佈局和布線選<br />

項,以幫助您優化生成最終的位文件。<br />

硬件驗證和開發板<br />

參考設計的硬件驗證是確保解決方案<br />

嚴密可靠的最終重要步驟。<br />

<strong>Xilinx</strong> 對在硬件中實現 Spartan-<strong>3A</strong> <strong>FPGA</strong><br />

的 DDR2 SDRAM 存儲器接口進行了全面驗<br />

證。我們用低成本的 Spartan-<strong>3A</strong> 入門套件<br />

板實現了 DDR2 SDRAM 設計,在設計中使<br />

用了板上16 位寬的 DDR2 SDRAM 存儲器器<br />

件和 XC3S700A-FG484 <strong>FPGA</strong>。此參考設計僅<br />

使用了 Spartan-<strong>3A</strong> 器件可用資源的一小部<br />

分:IOB 的 13%、邏輯 Slice 的 9%、BUFG<br />

MUX 的 16% 和八個 DCM 之一。本實現方<br />

法為其他功能留下了大量資源。<br />

<strong>Xilinx</strong> 驗證了各種 Spartan-3 <strong>FPGA</strong> 系<br />

列的存儲器接口設計。錶 1 所示為各種<br />

Spartan-3 <strong>FPGA</strong> 系列開發板的硬件驗證存儲<br />

器接口。<br />

結論<br />

使用低成本 Spartan-3 <strong>FPGA</strong> 系列、存儲<br />

器接口生成器 (MIG) 工具和 <strong>Xilinx</strong> 開發板,<br />

可加快存儲器接口和控制器的設計。<br />

有關存儲器接口解決方案的進一步信息<br />

和詳情,請訪問 www.xilinx.com/cn/memory。<br />

2007年夏季刊 13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!