Xilinx FPGA 提供可簡(jiǎn)化接口設(shè)計(jì)的 I/O 模塊和邏輯資源。盡管如此,,這些 I/O 模塊以及額外的邏輯仍需設(shè)計(jì)人員在源 RTL 代碼中配置,、驗(yàn)證、執(zhí)行,,并正確連接到系統(tǒng)的其余部分,,然后仔細(xì)仿真并在硬件中進(jìn)行驗(yàn)證。
本文介紹了存儲(chǔ)器接口設(shè)計(jì)的性能要求,、設(shè)計(jì)難題以及 Xilinx 的解決方案,,從使用 Spartan-3 系列 FPGA 的低成本實(shí)現(xiàn)到使用 Virtex-5 FPGA 的最高帶寬接口,無(wú)所不包,。
性能要求和 Xilinx 解決方案
20 世紀(jì) 90 年代后期,,存儲(chǔ)器接口從單倍數(shù)據(jù)速率 SDRAM 發(fā)展為雙倍數(shù)據(jù)速率 (DDR) SDRAM,而如今的 DDR2 SDRAM 運(yùn)行速率已達(dá)每引腳 667 Mbps 或更高,。
應(yīng)用通??煞譃閮深悾?br />
● 低成本應(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。
帶寬是與每引腳數(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ǔ)器接口和控制器:讀寫(xiě)數(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)。
在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ī)制,。
寫(xiě)數(shù)據(jù)命令和時(shí)序由寫(xiě)數(shù)據(jù)接口生成并控制,。寫(xiě)數(shù)據(jù)接口使用輸入/輸出模塊(IOB)觸發(fā)器和DCM的90度、180度和270度輸出端以與命令和數(shù)據(jù)位剛好對(duì)齊的方式發(fā)送DQS選通脈沖,。
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è),。
可以使用存儲(chǔ)器接口生成器 (MIG)軟件工具輕松定制Spartan-3系列存儲(chǔ)器接口設(shè)計(jì),使其符合應(yīng)用,。