如何實(shí)現(xiàn)FPGA到DDR3 SDRAM存儲(chǔ)器的連接
采用90nm工藝制造的DDR3 SDRAM存儲(chǔ)器架構(gòu)支持總線速率為600 Mbps-1.6 Gbps (300-800 MHz)的高帶寬,工作電壓低至1.5V,因此功耗小,存儲(chǔ)密度更可高達(dá)2Gbits。該架構(gòu)無(wú)疑速度更快,容量更大,單位比特的功耗更低,但問題是如何實(shí)現(xiàn)DDR3 SDRAM DIMM與FPGA的接口呢?
關(guān)鍵詞——均衡!
如果沒有將均衡功能直接設(shè)計(jì)到FPGA I/O架構(gòu)中,那么任何設(shè)備連接到DDR3 SDRAM DIMM都將是復(fù)雜的,而且成本還高,需要大量的外部元器件,包括延時(shí)線和相關(guān)的控制。
什么是均衡?為什么如此重要?
為了在支持更高頻率時(shí)提高信號(hào)完整性,JEDEC委員會(huì)定義了一個(gè)fly-by(飛越式)端接方案,該方案采用了時(shí)鐘和命令/地址總線信號(hào)來(lái)改善信號(hào)完整性以支持更高的性能。當(dāng)時(shí)鐘和地址/命令通過DIMM時(shí),fly-by拓?fù)浣Y(jié)構(gòu)通過故意引起每個(gè)DRAM上的時(shí)鐘和數(shù)據(jù)/選通之間的飛行時(shí)間偏移(flight-time skew)來(lái)減小并發(fā)開關(guān)噪聲(SNN),如圖1所示。
飛行時(shí)間偏移可能高達(dá)0.8 tCK,當(dāng)該偏移被擴(kuò)展得足夠?qū)挄r(shí),將不知道數(shù)據(jù)在兩個(gè)時(shí)鐘周期中的哪個(gè)內(nèi)返回。因此,均衡功能可以使控制器通過調(diào)節(jié)每個(gè)字節(jié)通道內(nèi)的時(shí)序來(lái)補(bǔ)償這一偏移。最新的FPGA能夠?yàn)楦鞣N應(yīng)用提供與雙倍數(shù)據(jù)率SDRAM存儲(chǔ)器接口的許多功能。但是,要與最新的DDR3 SDRAM一道使用,還需要更魯棒的均衡方案。
FPGA I/O結(jié)構(gòu)
像Altera Stratix III系列高性能FPGA提供的I/O速度高達(dá)400 MHz (800 Mbps),還具有很高的靈活性,能夠支持現(xiàn)有的和新興的外部存儲(chǔ)器標(biāo)準(zhǔn),如DDR3。
圖1:DDR3 SDRAM DIMM:飛行時(shí)間偏移降低了SSN,數(shù)據(jù)必須被控制器調(diào)高到兩個(gè)時(shí)鐘周期。
讀均衡
在讀取操作中,存儲(chǔ)器控制器必須補(bǔ)償由飛越存儲(chǔ)器拓?fù)湟鸬?、影響讀取周期的延時(shí)。均衡可以被視作為出現(xiàn)在數(shù)據(jù)通道上的比I/O本身延時(shí)還要大的延時(shí)。每個(gè)DQS都要求一個(gè)同步時(shí)鐘位置的獨(dú)立相移(經(jīng)過了工藝、電壓和溫度(PVT)補(bǔ)償)。圖2顯示出同一讀取命令下從DIMM返回的兩個(gè)DQS組。
圖2:I/O單元中的1T、下降沿和均衡寄存器。
一開始,每個(gè)分開的DQS被移相90度,從而捕獲與該組相關(guān)的DQ數(shù)據(jù)。然后用一個(gè)自由運(yùn)行的再同步時(shí)鐘(頻率和相位與DQS相同)將數(shù)據(jù)從捕獲域轉(zhuǎn)移到圖2所示用粉紅色和橙色連線表示的均衡電路中。在這個(gè)階段,每個(gè)DQS組都有一個(gè)獨(dú)立的再同步時(shí)鐘。
接著DQ數(shù)據(jù)被送到1T寄存器。圖2中給出了一個(gè)1T寄存器實(shí)例,在上層通道中需要用這個(gè)1T寄存器對(duì)特定DQS組中的DQ數(shù)據(jù)位進(jìn)行延時(shí)。注意在該例中,下層通道不需要1T寄存器。通過該過程開始對(duì)齊上層和下層通道。任何一個(gè)指定的通道是否需要1T寄存器是自動(dòng)確定的,這是免費(fèi)物理層IP內(nèi)核中校準(zhǔn)方案的一部分功能。
隨后兩個(gè)DQS組被傳送到下降沿寄存器。如果需要的話,還可以在啟動(dòng)時(shí)通過自動(dòng)校準(zhǔn)過程把可選寄存器切換進(jìn)來(lái)或切換出去。最后是將上層和下層通道對(duì)齊到同一再同步時(shí)鐘上,這樣就形成了一個(gè)將完全對(duì)齊的或經(jīng)過均衡的單倍數(shù)據(jù)率(SDR)數(shù)據(jù)傳遞到FPGA結(jié)構(gòu)的源同步接口。
寫均衡
與讀均衡類似,不過方向相反,DQS組在不同的時(shí)刻發(fā)出信號(hào),以便與到達(dá)DIMM上的器件的時(shí)鐘一致,并且必須滿足tDQSS參數(shù)要求的+/- 0.25 tCK??刂破鞅仨毻ㄟ^創(chuàng)建反饋環(huán)路來(lái)調(diào)整DQS與CK的關(guān)系,在此過程中,控制器會(huì)將數(shù)據(jù)寫入DRAM,再通過順序相位進(jìn)行掃描讀回,直到發(fā)現(xiàn)寫入窗的終點(diǎn)。為了更好的建立和保持余量,數(shù)據(jù)應(yīng)該在好窗口的中間點(diǎn)發(fā)出。
其他的FPGA I/O功能創(chuàng)新
高性能的Stratix III FPGA還具有許多創(chuàng)新性的其他I/O功能,可以實(shí)現(xiàn)到各種存儲(chǔ)器接口的簡(jiǎn)單且魯棒性連接,這種功能包括了動(dòng)態(tài)片上端接(OCT)、可變的I/O延時(shí)以及半數(shù)據(jù)率(HDR)等。
動(dòng)態(tài)OCT
并行和串行OCT為讀寫總線提供合適的線路端接和阻抗匹配,因此FPGA周邊不需要外接電阻,從而減少了外接元件成本,節(jié)約了電路板面積,而且降低了布線復(fù)雜度。另外,它還大大降低了功耗,因?yàn)椴⒙?lián)端接在寫操作時(shí)可以有效地被旁路掉。
用于DQ去偏移(deskew)的可變延時(shí)
采用可變的輸入和輸出延時(shí)來(lái)跟蹤長(zhǎng)度失配和電氣去偏移。精細(xì)的輸入和輸出延時(shí)分辨率(即50皮秒步進(jìn))被用于更精細(xì)的DQS間去偏移(獨(dú)立于均衡功能),這種偏移是由電路板長(zhǎng)度失配或FPGA和存儲(chǔ)器件上I/O緩存的變化所引起的,如表1所示。最終,這增加了每個(gè)DQS組的捕獲余量。
表1:分辨率和絕對(duì)值待定特性。
為了將DDR3自動(dòng)去偏移算法成為啟動(dòng)校準(zhǔn)過程的一部分,需要從運(yùn)行時(shí)的FPGA結(jié)構(gòu)實(shí)現(xiàn)延時(shí)單元。也可以利用輸出延時(shí)在輸出通道中插入少量偏移來(lái)有意地減少同時(shí)開關(guān)的I/O數(shù)量。
可靠的捕獲
DQS信號(hào)用作輸入選通信號(hào),它必須移位到一個(gè)最佳位置才能捕獲讀取事務(wù)。移相電路可以將輸入的DQS信號(hào)移相0°, 22.5°, 30°, 36°, 45°, 60°, 67.5°, 72°, 90°, 108°, 120°, 135°, 144°或 180°,具體取決于DLL的頻率模式。移相后的DQS信號(hào)隨后被用作I/O單元各個(gè)輸入寄存器的時(shí)鐘。
延時(shí)鎖定環(huán)路(DLL)在整個(gè)PVT范圍內(nèi)將相位保持在一個(gè)固定位置。DLL模塊的相位比較器用于將兩個(gè)輸入之間的相位差保持在零。實(shí)現(xiàn)的方法是均勻地修正DLL模塊中的特定延時(shí)(10-16)。用于更新DLL中某個(gè)延時(shí)模塊的控制信號(hào)還被發(fā)送到DQS輸入路徑中的時(shí)延模塊。例如,可以利用DLL中的全部16個(gè)延時(shí)單元和DQS相移輸入路徑中的第4個(gè)延時(shí)抽頭來(lái)實(shí)現(xiàn)90°的相移:
或者選擇DLL中的10個(gè)延時(shí)單元和DQS相移輸入路徑中的抽頭4來(lái)實(shí)現(xiàn)36°的相移:
或120°:
該DLL采用頻率基準(zhǔn)為每個(gè)DQS引腳中的延時(shí)鏈動(dòng)態(tài)產(chǎn)生控制信號(hào),并允許它補(bǔ)償PVT的變化。在Stratix III FPGA中有4個(gè)DLL,它們都位于器件的邊角,目的是使每個(gè)DLL能夠覆蓋器件的兩側(cè),從而可以在器件的各個(gè)邊上支持多種DDR3 SDRAM存儲(chǔ)器接口。
跨越高速數(shù)據(jù)率域和設(shè)計(jì)簡(jiǎn)化
DDR捕獲寄存器和HDR寄存器支持?jǐn)?shù)據(jù)從雙倍數(shù)據(jù)率域(數(shù)據(jù)在時(shí)鐘的兩個(gè)邊沿)安全傳送到SDR域(數(shù)據(jù)位于頻率相同的時(shí)鐘的上升沿,但數(shù)據(jù)寬度加倍),再到HDR域(數(shù)據(jù)位于時(shí)鐘的上升沿,數(shù)據(jù)寬度仍是加倍,但時(shí)鐘頻率僅是SDR域的一半),這樣使得內(nèi)部設(shè)計(jì)時(shí)序更容易實(shí)現(xiàn)。
裸片、封裝和數(shù)字信號(hào)完整性改進(jìn)
FPGA裸片和封裝的設(shè)計(jì)必須為高性能的存儲(chǔ)器接口提供更好的信號(hào)完整性(即用戶I/O與地和電源的比例為8:1:1,并具有最佳的信號(hào)返回路徑,如圖3所示)。此外,F(xiàn)PGA應(yīng)該提供動(dòng)態(tài)OCT和可變的偏移率,以便能夠控制信號(hào)的上升和下降時(shí)間以及可編程驅(qū)動(dòng)能力,從而滿足所用標(biāo)準(zhǔn)(即SSTL 1.5 Class II)的要求。
圖3:連接到每個(gè)電源和地的8個(gè)用戶I/O。
本文小結(jié)
高性能Stratix III FPGA可以通過提供高存儲(chǔ)器帶寬、改進(jìn)的時(shí)序余量以及系統(tǒng)設(shè)計(jì)中的靈活性來(lái)彌補(bǔ)高性能DDR3 SDRAM DIMM的不足。由于DDR3在實(shí)際使用中將很快超過DDR2,故提供更低成本、更高性能、更高密度和優(yōu)異的信號(hào)完整性的高端FPGA必須提供與JEDEC兼容的讀寫均衡功能,以便與高性能的DDR3 SDRAM DIMM相接。FPGA與DDR3 SDRAM的有機(jī)整合將能夠滿足目前和下一代通信、網(wǎng)絡(luò)以及數(shù)字信號(hào)處理系統(tǒng)的要求。