中心議題:
- 存儲(chǔ)器接口設(shè)計(jì)的性能要求
- 存儲(chǔ)器接口設(shè)計(jì)的設(shè)計(jì)難題
- 使用 Spartan-3 FPGA 的存儲(chǔ)器接口
解決方案:
- Xilinx 解決方案
- Spartan-3 系列FPGA與 Xilinx 軟件工具結(jié)合
Xilinx FPGA 提供可簡(jiǎn)化接口設(shè)計(jì)的 I/O 模塊和邏輯資源。盡管如此,這些 I/O 模塊以及額外的邏輯仍需設(shè)計(jì)人員在源 RTL 代碼中配置、驗(yàn)證、執(zhí)行,并正確連接到系統(tǒng)的其余部分,然后仔細(xì)仿真并在硬件中進(jìn)行驗(yàn)證?! ?br />
本文介紹了存儲(chǔ)器接口設(shè)計(jì)的性能要求、設(shè)計(jì)難題以及 Xilinx 的解決方案,從使用 Spartan-3 系列 FPGA 的低成本實(shí)現(xiàn)到使用 Virtex-5 FPGA 的最高帶寬接口,無(wú)所不包?! ?br />
性能要求和 Xilinx 解決方案
20 世紀(jì) 90 年代后期,存儲(chǔ)器接口從單倍數(shù)據(jù)速率 SDRAM 發(fā)展為雙倍數(shù)據(jù)速率 (DDR) SDRAM,而如今的 DDR2 SDRAM 運(yùn)行速率已達(dá)每引腳 667 Mbps 或更高。
應(yīng)用通常可分為兩類:
● 低成本應(yīng)用,器件成本最重要
● 高性能應(yīng)用,獲得最高帶寬最重要
運(yùn)行速率低于每引腳 400 Mbps 的 DDR SDRAM 和低端 DDR2 SDRAM 已能滿足大多數(shù)低成本系統(tǒng)存儲(chǔ)器的帶寬需求。對(duì)于這類應(yīng)用,Xilinx 提供了 Spartan-3 系列 FPGA:Spartan-3、3E、3A 和3AN 器件。
對(duì)于將存儲(chǔ)器接口帶寬推至極限的應(yīng)用,如每引腳 667 Mbps 的 DDR2 SDRAM,Xilinx 提供了 Virtex-5 FPGA?! ?br />
帶寬是與每引腳數(shù)據(jù)速率和數(shù)據(jù)總線寬度相關(guān)的一個(gè)因素。Spartan-3 系列和 Virtex-5 FPGA 均提供了不同選項(xiàng),從數(shù)據(jù)總線寬度小于 72 位的較小的低成本系統(tǒng),到寬度達(dá) 576 位的較大的 Virtex-5 封裝(圖 1)。
這些速度下的較寬總線使芯片對(duì)芯片接口的實(shí)現(xiàn)更為困難,因?yàn)橐蟮姆庋b更大,電源到信號(hào)和地面到信號(hào)比更佳。Virtex-5 FPGA 的開(kāi)發(fā)使用了先進(jìn)的稀疏鋸齒形 (SparseChevron) 封裝技術(shù),能提供優(yōu)良的信號(hào)到電源和地面到引腳比。每個(gè) I/O 引腳周圍都有足夠的電源和接地引腳和板,以確保良好的屏蔽,使由同步交換輸出 (SSO) 所造成的串?dāng)_噪音降到最低。
使用 Spartan-3 FPGA 的存儲(chǔ)器接口
對(duì)于每引腳 400Mbps低成本應(yīng)用,Spartan-3 系列FPGA與 Xilinx 軟件工具結(jié)合即可提供易于實(shí)現(xiàn)且經(jīng)濟(jì)的解決方案。
在一個(gè)基于FPGA的設(shè)計(jì)中,三個(gè)基本構(gòu)建模塊組成一個(gè)存儲(chǔ)器接口和控制器:讀寫數(shù)據(jù)接口、存儲(chǔ)器控制器狀態(tài)機(jī),以及將存儲(chǔ)器接口設(shè)計(jì)橋接到 FPGA 設(shè)計(jì)其余部分的用戶接口。這些模塊在架構(gòu)中實(shí)現(xiàn)由數(shù)字控制管理器 (DCM) 的輸出信號(hào)對(duì)其進(jìn)行時(shí)鐘驅(qū)動(dòng),在 Spartan-3 系列實(shí)現(xiàn)中,數(shù)字控制管理器還對(duì)查找表 (LUT) 延遲校準(zhǔn)監(jiān)視器(可確保正確設(shè)置讀數(shù)據(jù)采集時(shí)序的邏輯塊)進(jìn)行驅(qū)動(dòng)?! ?br />
在Spartan-3系列實(shí)現(xiàn)中,使用可配置邏輯塊 (CLB) 中的LUT實(shí)現(xiàn)讀數(shù)據(jù)采集。在讀事務(wù)過(guò)程中,DDR2 SDRAM器件將讀數(shù)據(jù)選通脈沖 (DQS) 及相關(guān)數(shù)據(jù)按照與讀數(shù)據(jù) (DQ) 邊沿對(duì)齊的方式發(fā)送給FPGA。在源同步接口中采集DQ是一項(xiàng)頗具挑戰(zhàn)性的任務(wù),因?yàn)閿?shù)據(jù)在非自由運(yùn)行DQS選通脈沖的每個(gè)邊沿上都會(huì)改變。讀數(shù)據(jù)采集的實(shí)現(xiàn)使用了一種基于 LUT 的 tap 延遲機(jī)制?! ?br />
寫數(shù)據(jù)命令和時(shí)序由寫數(shù)據(jù)接口生成并控制。寫數(shù)據(jù)接口使用輸入/輸出模塊(IOB)觸發(fā)器和DCM的90度、180度和270度輸出端以與命令和數(shù)據(jù)位剛好對(duì)齊的方式發(fā)送DQS選通脈沖?! ?br />
DDR2 SDRAM 存儲(chǔ)器接口的實(shí)現(xiàn)已在硬件中全面經(jīng)過(guò)驗(yàn)證。設(shè)計(jì)是在使用了 16 位寬 DDR2 SDRAM 存儲(chǔ)器器件和 XC3S700A-FG484 器件的 Spartan-3A 入門套件板中實(shí)現(xiàn)的。此參考設(shè)計(jì)僅利用了 Spartan-3A FPGA 可用資源的一小部分:13% 的 IOB、9% 的邏輯 Slice、16% 的全局緩沖器 (BUFG) 多路復(fù)用器 (MUX) 和八個(gè) DCM 中的一個(gè)?! ?br />
可以使用存儲(chǔ)器接口生成器 (MIG)軟件工具輕松定制Spartan-3系列存儲(chǔ)器接口設(shè)計(jì),使其符合應(yīng)用。