利用Virtex-5 器件實(shí)現(xiàn)QDR II SRAM 接口
本應(yīng)用指南說(shuō)明了利用 Virtex-5 器件實(shí)現(xiàn) 4 字突發(fā)四倍數(shù)據(jù)速率 (Quad Data Rate, QDR II)SRAM 接口及其時(shí)序的詳細(xì)信息。此可綜合的參考設(shè)計(jì)利用 Virtex-5 系列獨(dú)有的 I/O 和時(shí)鐘控制功能,實(shí)現(xiàn)了 300 MHz (600 Mb/s) 的性能水平,使每個(gè) 36 位存儲(chǔ)器接口的總流量達(dá)到 43.2Gb/s。
此設(shè)計(jì)在最大限度降低資源使用量的同時(shí)還大幅簡(jiǎn)化了在 FPGA 內(nèi)采集讀數(shù)據(jù)的任務(wù)。此方案提供了一個(gè)簡(jiǎn)單的用戶(hù)接口,可通過(guò)利用一個(gè)或多個(gè) QDR II 接口簡(jiǎn)便地集成到一個(gè)完整的FPGA 設(shè)計(jì)中。
簡(jiǎn)介
QDR SRAM 器件為滿(mǎn)足更高的帶寬存儲(chǔ)要求而開(kāi)發(fā),以網(wǎng)絡(luò)和電信應(yīng)用為目標(biāo)?;?QDR 架構(gòu)具有獨(dú)立的讀、寫(xiě)數(shù)據(jù)通路,便于同時(shí)操作。每個(gè)時(shí)鐘周期內(nèi),兩個(gè)通路均使用雙倍數(shù)據(jù)速率 (DDR) 傳輸發(fā)送兩個(gè)字,一個(gè)在時(shí)鐘上升沿發(fā)送,一個(gè)在時(shí)鐘下降沿發(fā)送。結(jié)果,在每個(gè)時(shí)鐘周期內(nèi)會(huì)傳輸四個(gè)總線寬度的數(shù)據(jù)(兩個(gè)讀和兩個(gè)寫(xiě)),這就是四倍數(shù)據(jù)速率的由來(lái)。
QDR I 和 QDR II 的規(guī)范由 QDR 聯(lián)盟(Cypress、IDT、NEC、Samsung 和 Renesas)共同定義和開(kāi)發(fā)。有關(guān) QDR 規(guī)范、QDR 聯(lián)盟和 QDR 存儲(chǔ)器產(chǎn)品的其他信息,請(qǐng)參考第 16 頁(yè)上的“參考”。
QDR 存儲(chǔ)器器件以 2 字突發(fā)和 4 字突發(fā)架構(gòu)提供。針對(duì)每個(gè)讀或?qū)懻?qǐng)求,2 字突發(fā)器件傳輸兩個(gè)字。DDR 地址總線用于在前半個(gè)時(shí)鐘周期允許讀請(qǐng)求,在后半個(gè)時(shí)鐘周期允許寫(xiě)請(qǐng)求。與之相反,4 字突發(fā)器件針對(duì)每個(gè)讀或?qū)懻?qǐng)求傳輸四個(gè)字,這樣便只需要一個(gè)單倍數(shù)據(jù)速率 (SDR)地址總線,就能最大程度地利用數(shù)據(jù)帶寬。讀、寫(xiě)操作請(qǐng)求必須在交替的時(shí)鐘周期(即不重疊的時(shí)鐘周期)內(nèi)進(jìn)行,以分享地址總線。
本應(yīng)用指南所討論的參考設(shè)計(jì)針對(duì)的是 4 字突發(fā) QDR II SRAM 器件。QDR II 架構(gòu)的獨(dú)特性能之一是源同步回送時(shí)鐘 (CQ) 輸出,它與器件輸入時(shí)鐘 (K) 頻率相同,與通過(guò)讀通路輸出 (Q) 傳輸?shù)臄?shù)據(jù)邊沿對(duì)齊。CQ 時(shí)鐘輸出使用 QDR II 存儲(chǔ)器器件內(nèi)的延遲鎖定環(huán) (DLL) 電路被重新安排,使其與 Q 數(shù)據(jù)輸出對(duì)齊。對(duì)于在遠(yuǎn)端器件上進(jìn)行的讀數(shù)據(jù)采集操作,此種時(shí)鐘傳輸(亦稱(chēng)源同步)接口方法允許較大的時(shí)序余量。
第 2 頁(yè)圖1 的時(shí)序圖表示 4 字突發(fā) QDR II 存儲(chǔ)器接口上的并發(fā)讀/ 寫(xiě)操作。QDR II 存儲(chǔ)器的所有輸入與輸入時(shí)鐘(K 和 K)同步,傳輸給存儲(chǔ)器時(shí),數(shù)據(jù)中心通常與輸入時(shí)鐘 K 及 K 邊沿對(duì)齊。
注: 低有效的讀控制 (R) 和寫(xiě)控制 (W) 引腳在時(shí)鐘周期內(nèi)交替出現(xiàn),以實(shí)現(xiàn)單獨(dú) SDR 地址總線 (SA) 的共享。
寫(xiě)總線數(shù)據(jù)輸入 (D) 值在 DDR 模式下被發(fā)送到存儲(chǔ)器,開(kāi)始于寫(xiě)控制引腳激活后的下一個(gè)K時(shí)鐘上升沿。讀總線數(shù)據(jù)輸出 (Q) 值在 DDR 模式下從存儲(chǔ)器中發(fā)送,并與 CQ 和 CQ 源同步回送時(shí)鐘輸出邊沿對(duì)齊。在 CQ 時(shí)鐘輸出的上升沿(緊隨 K 輸入時(shí)鐘的下一個(gè)上升沿之后),讀總線中的第一個(gè)字開(kāi)始發(fā)送。
在從數(shù)據(jù)輸入 (D) 字中選擇要寫(xiě)入存儲(chǔ)器的特定字節(jié)時(shí),QDR II 存儲(chǔ)器還可使用低有效的字節(jié)寫(xiě) (BW) 使能引腳。為清晰起見(jiàn),圖1 中省略了這些信號(hào)。
圖1 的時(shí)序圖表示 2 字突發(fā) QDR II 存儲(chǔ)器接口上的并發(fā)讀/ 寫(xiě)操作。在時(shí)鐘的前半個(gè)周期,DDR 地址總線允許讀地址被傳輸給存儲(chǔ)器;在時(shí)鐘的后半個(gè)周期,DDR 地址總線允許寫(xiě)地址出現(xiàn)于其中。因此,低有效的讀控制 (/R) 和寫(xiě)控制 (/W) 引腳可在同一時(shí)鐘周期內(nèi)設(shè)定。
兩個(gè)寫(xiě)總線數(shù)據(jù)輸入 (D) 值在 DDR 模式下被發(fā)送到存儲(chǔ)器,開(kāi)始于寫(xiě)地址有效前的那個(gè) K 時(shí)鐘上升沿。讀總線數(shù)據(jù)輸出 (Q) 值在 DDR 模式下從存儲(chǔ)器中發(fā)送,并與 CQ 和 /CQ 源同步回送時(shí)鐘輸出邊沿對(duì)齊。在 /CQ 時(shí)鐘輸出的上升沿(緊隨 /K 輸入時(shí)鐘的下一個(gè)上升沿之后),讀總線中的第一個(gè)字開(kāi)始發(fā)送。
設(shè)計(jì)概述
圖2 為 Virtex-5 QDR II 參考設(shè)計(jì)的高層次框圖,表明了 QDR II 存儲(chǔ)器器件的外部連接以及用于發(fā)送讀/ 寫(xiě)命令的 FPGA 內(nèi)部資源接口。
在圖2 中,QDR II 器件的 C 和 C 引腳均被設(shè)定為 High。
如第 4 頁(yè)圖3 所示,Virtex-5 QDR II 參考設(shè)計(jì)由以下四個(gè)主要部分組成:
用戶(hù)接口
物理接口
讀/ 寫(xiě)狀態(tài)機(jī)
延遲校準(zhǔn)狀態(tài)機(jī)
此用戶(hù)接口使用完全基于 SDR 信號(hào)的簡(jiǎn)單協(xié)議創(chuàng)建讀/ 寫(xiě)請(qǐng)求。此模塊主要由 FIFO16 基元構(gòu)成,用于在讀/ 寫(xiě)操作執(zhí)行前后存儲(chǔ)相應(yīng)的地址和數(shù)據(jù)值。有關(guān)用戶(hù)接口時(shí)序協(xié)議的詳情,請(qǐng)參閱第 5 頁(yè)“用戶(hù)接口”。
讀/ 寫(xiě)狀態(tài)機(jī)主要負(fù)責(zé)監(jiān)控用戶(hù)接口模塊內(nèi) FIFO 的狀態(tài),調(diào)整用戶(hù)接口和物理接口間的數(shù)據(jù)流,并向外部存儲(chǔ)器器件發(fā)送實(shí)際讀/ 寫(xiě)命令。此狀態(tài)機(jī)確保讀/ 寫(xiě)操作按照 QDR II 存儲(chǔ)器規(guī)范的要求,以并發(fā)方式在最短延遲內(nèi)完成。
物理接口負(fù)責(zé)生成正確的時(shí)序關(guān)系和 DDR 信號(hào),以便以符合其命令協(xié)議和時(shí)序要求的方式與外部存儲(chǔ)器器件通信。
延遲校準(zhǔn)狀態(tài)機(jī)是物理層中一個(gè)不可分割的組成部分,大大簡(jiǎn)化了在 FPGA 內(nèi)采集讀數(shù)據(jù)的任務(wù),同時(shí)又可實(shí)現(xiàn)最佳性能。Virtex-5 器件的每個(gè)輸入引腳都包含一個(gè)可動(dòng)態(tài)調(diào)整的可編程延遲元件 (IDELAY),用于控制 5 ns 窗口中輸入通路上的延遲時(shí)間。延遲校準(zhǔn)狀態(tài)機(jī)利用此獨(dú)特功能調(diào)整從存儲(chǔ)器器件返回的讀數(shù)據(jù)的時(shí)序,因此它無(wú)需任何復(fù)雜的數(shù)據(jù)采集技術(shù)即可直接與全局 FPGA 系統(tǒng)時(shí)鐘 (USER_CLK0) 實(shí)現(xiàn)同步。
第 5 頁(yè)表1 總結(jié)了 Virtex-5 QDR II 參考設(shè)計(jì)的規(guī)范,包括性能目標(biāo)和器件應(yīng)用細(xì)節(jié)。
實(shí)現(xiàn)詳情
實(shí)現(xiàn)QDR II 參考設(shè)計(jì)的目的是利用 Virtex-5 系列的獨(dú)特功能。I/O、時(shí)鐘控制和存儲(chǔ)元件技術(shù)方面的發(fā)展使此設(shè)計(jì)的高性能和全承包操作得以實(shí)現(xiàn)。以下部分對(duì)此設(shè)計(jì)的實(shí)現(xiàn)給出進(jìn)一步的詳細(xì)說(shuō)明。
用戶(hù)接口
用戶(hù)接口模塊利用六個(gè) FIFO16 模塊來(lái)存儲(chǔ)讀/ 寫(xiě)操作的地址和數(shù)據(jù)值。三個(gè) FIFO16 模塊用于寫(xiě)命令,一個(gè)用于存儲(chǔ)寫(xiě)地址 (USER_AD_WR) 和字節(jié)寫(xiě)使能 (USER_BW_n) 信號(hào),另外兩個(gè)用于存儲(chǔ)要寫(xiě)入存儲(chǔ)器的 Low (USER_DWL) 和 High (USER_DWH) 36 位數(shù)據(jù)字。讀命令也使用三個(gè) FIFO16 模塊,一個(gè)用于存儲(chǔ)讀地址 (USER_AD_RD),另兩個(gè)用于存儲(chǔ)由于執(zhí)行讀而從存儲(chǔ)器中返回的 Low (USER_QRL) 和 High (USER_QRH) 36 位數(shù)據(jù)字。
第 6 頁(yè)圖4 表示使用 4 字突發(fā)參考設(shè)計(jì)時(shí),向用戶(hù)接口發(fā)送讀/ 寫(xiě)請(qǐng)求所需的時(shí)序協(xié)議。如前所述,此接口使用了所有已與主 FPGA 設(shè)計(jì)系統(tǒng)時(shí)鐘 (USER_CLK0) 同步的 SDR 信號(hào)。
寫(xiě)請(qǐng)求在 USER_CLK0 上升沿期間通過(guò)低有效的 USER_W_n 信號(hào)創(chuàng)建。此 18 位寫(xiě)地址(USER_AD_WR) 必須在此同一時(shí)鐘邊沿傳輸。此時(shí),要寫(xiě)入存儲(chǔ)器的第一個(gè)和第二個(gè) 36 位數(shù)據(jù)字也會(huì)分別傳輸給 36 位 USER_DWL 和 USER_DWH 輸入總線。4 字突發(fā)的第三個(gè)字和第四個(gè)字會(huì)在下一個(gè) USER_CLK0 上升沿分別傳輸給 USER_DWL 和 USER_DWH。
讀請(qǐng)求在 USER_CLK0 上升沿期間通過(guò)低有效的 USER_R_n 信號(hào)創(chuàng)建。此 18 位讀地址(USER_AD_RD) 必須在此同一時(shí)鐘邊沿傳輸。執(zhí)行讀命令后,4 字突發(fā)值存儲(chǔ)于讀數(shù)據(jù) FIFO中。在 USER_CLK0 上升沿,一個(gè)低有效的 USER_QEN_n 信號(hào)會(huì)檢索這些值并將其傳輸至 36位 USER_QRL 和 USER_QRH 輸出。第一和第二個(gè)字在首個(gè)周期中傳輸,此時(shí)的USER_QEN_n 設(shè)置為 Low,緊接著是第三和第四個(gè)字在隨后一個(gè)周期中傳輸,此時(shí)的USER_QEN_n 也設(shè)置為 Low。
與 QDR II 存儲(chǔ)器本身不同,用戶(hù)接口在同一時(shí)鐘周期接受讀、寫(xiě)請(qǐng)求(如圖4 所示的第三個(gè)周期)。讀/ 寫(xiě)狀態(tài)機(jī)管理向外部存儲(chǔ)器器件所發(fā)送的讀與寫(xiě)請(qǐng)求的交替,使用戶(hù)接口免于承擔(dān)這項(xiàng)職責(zé)。
用戶(hù)接口還提供了一批用于指示讀/ 寫(xiě) FIFO 狀態(tài)的信號(hào),在圖4 中未顯示。高有效的
USER_WR_FULL 輸出表明寫(xiě) FIFO 已滿(mǎn)。此情況表明,寫(xiě)請(qǐng)求隊(duì)列縮減之前將不再接受任何寫(xiě)請(qǐng)求。USER_WR_FULL 為 High 時(shí)創(chuàng)建的任何寫(xiě)請(qǐng)求都將被直接忽略。類(lèi)似情況適用于讀請(qǐng)求的 USER_RD_FULL 信號(hào)。
高有效的 USER_QR_EMPTY 輸出表明不再有讀數(shù)據(jù)值存儲(chǔ)在讀數(shù)據(jù) FIFO 中。在此情況下從USER_QRL 和 USER_QRH 總線讀值的嘗試將被忽略。此情況會(huì)一直持續(xù),直到執(zhí)行其他讀命令并且有相關(guān)數(shù)據(jù)值存入讀數(shù)據(jù) FIFO。
讀/ 寫(xiě)狀態(tài)機(jī)
第 8 頁(yè)圖5 為 4 字突發(fā)讀/ 寫(xiě)狀態(tài)機(jī)的狀態(tài)圖。此狀態(tài)機(jī)負(fù)責(zé)調(diào)節(jié)用戶(hù)接口和物理接口之間的數(shù)據(jù)流。它根據(jù)保存在用戶(hù)接口 FIFO 中的請(qǐng)求向外部存儲(chǔ)器器件發(fā)送讀/ 寫(xiě)命令。
USER_RESET 每次都會(huì)將狀態(tài)機(jī)恢復(fù)到 INIT 狀態(tài),此時(shí)存儲(chǔ)器暫停運(yùn)行,直到延遲校準(zhǔn)狀態(tài)機(jī)完成所有 QDR_Q 輸入的 IDELAY 模塊上的延遲調(diào)整,使讀通路數(shù)據(jù)與 FPGA 系統(tǒng)時(shí)鐘(USER_CLK0) 中心對(duì)齊。校準(zhǔn)操作完成的信號(hào)是一個(gè)高有效的 DLY_CAL_DONE 輸入,該輸入將讀/ 寫(xiě)狀態(tài)機(jī)轉(zhuǎn)換到空閑狀態(tài),以等候來(lái)自用戶(hù)接口的讀/ 寫(xiě)請(qǐng)求。
在空閑狀態(tài),寫(xiě)命令首先假設(shè)向存儲(chǔ)器寫(xiě)數(shù)據(jù)必須始終發(fā)生在任何有效讀數(shù)據(jù)出現(xiàn)之前。當(dāng)沒(méi)有待處理的讀或?qū)懻?qǐng)求時(shí),此狀態(tài)機(jī)將在空閑狀態(tài)下循環(huán)運(yùn)行。
用戶(hù)接口 FIFO 中的待處理寫(xiě)請(qǐng)求會(huì)使?fàn)顟B(tài)機(jī)轉(zhuǎn)入寫(xiě)狀態(tài),在此狀態(tài)下,寫(xiě)命令通過(guò)內(nèi)部的WR_INIT_n 選通脈沖發(fā)送。此選通脈沖從 FIFO 中取出寫(xiě)地址和數(shù)據(jù)值,并使外部 QDR_W_n寫(xiě)控制選通脈沖進(jìn)入存儲(chǔ)器器件。
如果包含待處理讀請(qǐng)求,此狀態(tài)機(jī)會(huì)隨之轉(zhuǎn)入讀狀態(tài),此時(shí)內(nèi)部 RD_INIT_n 選通脈沖被激活。RD_INIT_n 選通脈沖從 FIFO 中取出讀地址,并向存儲(chǔ)器器件發(fā)送一個(gè)外部 QDR_R_n 選通脈沖。作為此處理過(guò)程的結(jié)果之一,對(duì)讀數(shù)據(jù) FIFO 中的返回值也將進(jìn)行采集。
讀/ 寫(xiě)狀態(tài)機(jī)持續(xù)監(jiān)控用戶(hù)接口 FIFO 狀態(tài)信號(hào),以確定是否存在待處理讀/ 寫(xiě)請(qǐng)求。連續(xù)不斷的并發(fā)讀/ 寫(xiě)請(qǐng)求流將導(dǎo)致?tīng)顟B(tài)機(jī)只在讀狀態(tài)和寫(xiě)狀態(tài)之間轉(zhuǎn)換,以確保正確無(wú)誤地將請(qǐng)求交替發(fā)送到外部存儲(chǔ)器。一串只寫(xiě)請(qǐng)求將導(dǎo)致空閑狀態(tài)和寫(xiě)狀態(tài)輪流出現(xiàn),同樣,一串讀請(qǐng)求也會(huì)在空閑狀態(tài)和讀狀態(tài)間轉(zhuǎn)換。
物理接口
Virtex-5 QDR II 參考設(shè)計(jì)的物理接口為讀/ 寫(xiě)命令與外部存儲(chǔ)器器件之間的通信生成實(shí)際的I/O 信號(hào)和時(shí)序關(guān)系,包括 DDR 數(shù)據(jù)信號(hào)。它提供必要的時(shí)序余量及為滿(mǎn)足整體設(shè)計(jì)性能規(guī)范所需的 I/O 信號(hào)標(biāo)準(zhǔn)。QDR II 設(shè)計(jì)的所有 I/O 信號(hào)都使用 HSTL-I 發(fā)送。此部分詳細(xì)介紹物理接口的每個(gè)部件。
時(shí)鐘控制機(jī)制
此 QDR II 設(shè)計(jì)使用的是所有 Virtex-5 I/O 模塊中都有的輸出 DDR (ODDR) 基元。這些內(nèi)置DDR 寄存器功能極大地簡(jiǎn)化了以下任務(wù):生成準(zhǔn)確的時(shí)鐘、地址和數(shù)據(jù),以及與 QDR II 存儲(chǔ)器器件通信的控制信號(hào)。IDDR 和 ODDR 基元都有多種運(yùn)行模式,可分別確定采集或傳輸?shù)腄DR 數(shù)據(jù)以怎樣的方式出現(xiàn)在 FPGA 內(nèi)部資源和 I/O 引腳中。
QDR II 設(shè)計(jì)中的時(shí)鐘控制機(jī)制(第 9 頁(yè)圖6)使用反沿 (opposite-edge) 模式的 ODDR 寄存器來(lái)為存儲(chǔ)器器件生成 QDR_K 和 QDR_K_n 時(shí)鐘。因?yàn)闀r(shí)鐘信號(hào)的時(shí)序與 QDR II 地址、數(shù)據(jù)和控制信號(hào)幾乎相同,此時(shí)鐘傳輸機(jī)制會(huì)有效地從時(shí)序余量因素中刪除 FPGA 的 clock-to-out參數(shù)。因此,就 clock-to-out 參數(shù)而言,所有外部傳輸信號(hào)都得以“匹配”。
寫(xiě)通路
QDR II 存儲(chǔ)器的寫(xiě)通路包括執(zhí)行寫(xiě)操作所必需的地址、數(shù)據(jù)和控制信號(hào)。寫(xiě)地址
(QDR_AD_WR)、控制選通脈沖 (QDR_W_n) 和字節(jié)寫(xiě)使能 (QDR_BW_n) 信號(hào)都使用 SDR 格式。不過(guò),寫(xiě)數(shù)據(jù)值 (QDR_D) 利用 DDR 信號(hào)在規(guī)定的時(shí)鐘周期實(shí)現(xiàn)所需的 2 字或 4 字突發(fā)。
所有這些寫(xiě)通路信號(hào)在傳輸時(shí)都必須與 QDR_K 和 QDR_K_n 時(shí)鐘邊沿中心對(duì)齊。因此,這些信號(hào)的輸出寄存器與 USER_CLK270 時(shí)鐘同步。信號(hào)以同樣的頻率運(yùn)行,但對(duì)于 USER_CLK0則會(huì)出現(xiàn) 270°(時(shí)鐘周期的 75%)的相差。這能確保對(duì)輸入 QDR_K 和 QDR_K_n 時(shí)鐘邊沿而言,存儲(chǔ)器器件有足夠的建立與保持余量。
第 10 頁(yè)圖7 說(shuō)明了如何使用 USER_CLK270 和 ODDR 寄存器為 QDR_D 寫(xiě)數(shù)據(jù)通路生成所需的 DDR 信號(hào)。ODDR 寄存器配置為同沿 (same-edge) 模式,允許在 USER_CLK270 的同一上升沿從 FPGA 架構(gòu)中同時(shí)采集兩個(gè) 36 位數(shù)據(jù)字(FIFO_DWL 和 FIFO_DWH)。FIFO_DWL 值在此上升沿后立即發(fā)送到 QDR_D 寫(xiě)數(shù)據(jù)總線,隨后,F(xiàn)IFO_DWH 值在 USER_CLK270 的下一個(gè)下降沿從 ODDR 模塊發(fā)送。對(duì)此過(guò)程加以重復(fù),以生成一個(gè) 4 字寫(xiě)數(shù)據(jù)突發(fā)。
使用 I/O 模塊中的單個(gè)觸發(fā)器以類(lèi)似的方式生成讀/ 寫(xiě)地址、字節(jié)寫(xiě)使能和讀/ 寫(xiě)控制選通脈沖,以創(chuàng)建與 USER_CLK270 同步的 SDR 信號(hào)。
讀數(shù)據(jù)通路
基于 CQ 的數(shù)據(jù)采集機(jī)制可以實(shí)現(xiàn)以極高的時(shí)鐘速率從存儲(chǔ)器中采集讀數(shù)據(jù)。此數(shù)據(jù)采集機(jī)制使用在每個(gè) I/O 中都提供的 ISERDES 功能。輸入時(shí)鐘 (CQ) 和數(shù)據(jù) (Q) 經(jīng)延遲后與 ISERDES 模塊中的系統(tǒng)時(shí)鐘 (CLK0) 保持同步。
讀數(shù)據(jù)通路包括兩個(gè)階段:讀數(shù)據(jù)采集和讀數(shù)據(jù)重新采集。兩個(gè)階段均在各個(gè) Virtex-5 I/O 的內(nèi)置 ISERDES 中實(shí)現(xiàn)。途經(jīng) BUFIO 的 CQ 信號(hào)將采集 ISERDES 模塊內(nèi)首組寄存器中的輸入讀數(shù)據(jù) (Q)。第二組寄存器用來(lái)將 CQ 域中的數(shù)據(jù)傳輸至系統(tǒng)時(shí)鐘域。
ISERDES 具有三種時(shí)鐘輸入:CLK、OCLK 和 CLKDIV。讀數(shù)據(jù) (Q) 在 CLK (CQ) 域經(jīng)采集完成后,通過(guò) OCLK 和 CLKDIV 傳輸至系統(tǒng)時(shí)鐘(圖8):
CLK:布線通過(guò) BUFIO 的讀時(shí)鐘 (CQ) 提供 CLK 時(shí)鐘輸入。
OCLK 和 CLKDIV:這些時(shí)鐘負(fù)責(zé)對(duì)輸入數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換。由于數(shù)據(jù)以與接口速度相同的頻率進(jìn)行傳輸,系統(tǒng)時(shí)鐘 (CLK_0) 提供針對(duì) OCLK 和 CLKDIV 的輸入。
在ISERDES 中采集到的數(shù)據(jù)可以被寫(xiě)入 Virtex-5 FPGA 中的內(nèi)置 FIFO36 模塊。
基于 CQ 的數(shù)據(jù)采集機(jī)制要求將讀時(shí)鐘(CQ 和 CQ)置于 clock-capable I/O (CCIO) 中,時(shí)鐘從這些位置可以訪問(wèn)各組 (bank) 內(nèi)可用的 BUFIO。
對(duì)于 x36 寬的 QDR II SRAM 接口,CQ_P 和 CQ_N 均用來(lái)采集讀數(shù)據(jù)(第 11 頁(yè)圖9)。一個(gè)Virtex-5 器件中的每個(gè)組都包含 40 個(gè) I/O,因此一個(gè) x36 接口的讀數(shù)據(jù)需要置于兩個(gè)組中。
CQ_P 用來(lái)采集一個(gè)組中的首組字節(jié),而 CQ_N 用來(lái)采集相鄰組中剩余的數(shù)據(jù)字節(jié)。CQ_P 和CQ_N 均需置于相應(yīng)組中 CCIO 的 P 側(cè)。
延遲校準(zhǔn)
延遲校準(zhǔn)邏輯負(fù)責(zé)提供讀數(shù)據(jù) (Q) 和時(shí)鐘 (CQ) 所需要的延遲,以便將采集到的數(shù)據(jù)與 FPGA時(shí)鐘中心對(duì)齊。當(dāng)來(lái)自 IDELAYCTRL 的 IDELAY_READY 信號(hào)設(shè)定為 High,且存儲(chǔ)器初始化所需的時(shí)鐘周期得到滿(mǎn)足時(shí),延遲校準(zhǔn)狀態(tài)機(jī)就會(huì)啟動(dòng)。校準(zhǔn)過(guò)程包含單次寫(xiě),隨后向同一位置連續(xù)進(jìn)行讀,直到找到 Q 和 CQ 信號(hào)正好需要的延遲值。讀校準(zhǔn)開(kāi)始后,校準(zhǔn)狀態(tài)機(jī)會(huì)執(zhí)行以下步驟:
1. 增加 CQ 和 Q 上的 tap 延遲值。如果在某個(gè) tap 值上初次獲取了有效數(shù)據(jù),則此 tap 值標(biāo)志著數(shù)據(jù)有效窗口的開(kāi)端。
2. 繼續(xù)增加 CQ 和 Q 的 tap 延遲值,直到達(dá)到有效窗口的終端。
3. 將 CQ 置于此有效窗口的中央。降低 tap 值,直到 CQ 被固定于數(shù)據(jù)有效窗口的中央。
4. 對(duì)于 CQ 和 FPGA 時(shí)鐘,數(shù)據(jù)總線 (Q) 將置于中央。重新設(shè)置 Q 的 tap 值,即可針對(duì) CQ和系統(tǒng)時(shí)鐘 (CLK0) 得出 Q 的有效窗口。對(duì)于 CQ 和 FPGA 時(shí)鐘,數(shù)據(jù)信號(hào) (Q) 將置于中央。
當(dāng)所有 Q 信號(hào)圍繞 CQ 固定后,延遲校準(zhǔn)過(guò)程就結(jié)束了,并繼之以讀使能校準(zhǔn)。
讀使能邏輯對(duì)向存儲(chǔ)器發(fā)送的讀命令進(jìn)行校準(zhǔn),為已采集到并寫(xiě)入讀數(shù)據(jù) FIFO 的數(shù)據(jù)生成寫(xiě)使能。校準(zhǔn)邏輯使用 SRL16 構(gòu)建而成,有助于確定讀命令信號(hào)所需寄存器級(jí)數(shù)的數(shù)量,以生成正確的寫(xiě)使能信號(hào)。
板設(shè)計(jì)中的考慮因素
盡管 Virtex-5 系列產(chǎn)品提供了許多與 I/O 和時(shí)鐘控制相關(guān)的高級(jí)功能,大大簡(jiǎn)化了存儲(chǔ)器接口設(shè)計(jì),但為了使接口可靠而高效,仍需注意基本的電路板設(shè)計(jì)標(biāo)準(zhǔn)。
需特別強(qiáng)調(diào)的是,讀和寫(xiě)通路接口的源同步特性要求接口時(shí)鐘、數(shù)據(jù)及控制信號(hào)具有相匹配的電路板布線長(zhǎng)度。
例如,QDR II 器件輸入信號(hào)(QDR_K、QDR_K_n、QDR_W_n、QDR_R_n、QDR_SA、QDR_BW_n 和 QDR_D)的布線長(zhǎng)度必須完全匹配,以將控制、地址及數(shù)據(jù)線接至具備充足建立與保持余量的存儲(chǔ)器器件。物理接口的實(shí)現(xiàn)可確保這些信號(hào)在離開(kāi) FPGA 器件輸出時(shí)與QDR_K 和 QDR_K_n 時(shí)鐘邊沿中心對(duì)齊。電路板布線必須確保這種關(guān)聯(lián)狀態(tài)能持續(xù)到存儲(chǔ)器器件輸入。
同樣,QDR II 器件輸出信號(hào)(QDR_Q、QDR_CQ)必須具備完全匹配的布線長(zhǎng)度,以使這些信號(hào)在 Virtex-5 器件的輸入端實(shí)現(xiàn)邊沿對(duì)齊。要實(shí)現(xiàn)直接時(shí)鐘控制讀數(shù)據(jù)采集方法,這一點(diǎn)非常關(guān)鍵。所有合理的板設(shè)計(jì)工具都可以在可接受的容錯(cuò)范圍內(nèi)輕松滿(mǎn)足這些布線長(zhǎng)度。
時(shí)序分析
本 Virtex-5 QDR II 參考設(shè)計(jì)利用該器件的獨(dú)特 I/O 和時(shí)鐘控制功能,可最大限度地提高性能與時(shí)序余量,同時(shí)大大降低對(duì)詳細(xì)布局和管腳分配分析的需求。
本部分針對(duì)地址/ 控制通路、寫(xiě)數(shù)據(jù)通路及讀(或采集)數(shù)據(jù)通路給出一個(gè)時(shí)序分析示例。
地址/ 控制通路
先前已討論過(guò),讀/ 寫(xiě)地址總線、字節(jié)寫(xiě)使能信號(hào)和讀/ 寫(xiě)控制選通脈沖都與USER_CLK270時(shí)鐘保持同步。這可以確保,對(duì)于來(lái)自 USER_CLK0 的輸入 QDR_K 和 QDR_K_n 時(shí)鐘邊沿,這些 SDR 信號(hào)具備對(duì)存儲(chǔ)器器件的有充足的建立與保持余量。
表2 根據(jù)用一個(gè) Virtex-5 器件實(shí)現(xiàn)的 300 MHz 4 字突發(fā) QDR II 存儲(chǔ)器器件接口,顯示針對(duì)這些信號(hào)的一個(gè)時(shí)序分析示例。
寫(xiě)數(shù)據(jù)通路
寫(xiě)數(shù)據(jù) (QDR_D) 也與 USER_CLK270 保持同步。不過(guò),寫(xiě)數(shù)據(jù)字作為 DDR 進(jìn)行發(fā)送,因此在QDR_K 和 QDR_K_n 上升沿均需具備充足的建立與保持余量。相應(yīng)地,表3 所示寫(xiě)通路的時(shí)序分析包括了存儲(chǔ)器時(shí)鐘的最大占空比失真,并基于 300 MHz 4 字突發(fā) QDR II 存儲(chǔ)器器件及速度級(jí)別為 -11 的 Virtex-5 器件。
讀數(shù)據(jù)通路(數(shù)據(jù)采集)
讀數(shù)據(jù)通路 (QDR_Q) 值直接被采集至 SERDES 內(nèi)的 USER_CLK0 時(shí)鐘域。表4 顯示讀數(shù)據(jù)采集的時(shí)序分析。
結(jié)論
本應(yīng)用指南說(shuō)明了利用 Virtex-5 器件實(shí)現(xiàn) 4 字突發(fā) QDR II SRAM 接口及其時(shí)序的詳細(xì)信息。
數(shù)據(jù)采集機(jī)制的應(yīng)用大大簡(jiǎn)化了在 FPGA 內(nèi)采集讀數(shù)據(jù)的任務(wù),且為當(dāng)前及下一代 QDR IISRAM 存儲(chǔ)器器件提供了高效、強(qiáng)大、可擴(kuò)展的存儲(chǔ)器接口解決方案。
此 QDRII 參考設(shè)計(jì)可從 Xilinx 網(wǎng)站下載:http://www.xilinx.com/cn/bvdocs/appnotes/xapp853.zip
參考
QDR 聯(lián)盟:
http://www.qdrsram.com
QDR II SRAM 存儲(chǔ)器器件供應(yīng)商
Cypress 半導(dǎo)體: http://www.cypress.com/
Renesas 科技: http://www.renesas.com/
IDT 公司: http://www.idt.com/
Samsung 半導(dǎo)體: http://www.samsung.com/
NEC 公司: http://www.ic.nec.co.jp/memory/index_e.html/
如欲了解更多賽靈思技術(shù)文檔,請(qǐng)?jiān)L問(wèn)http://china.xilinx.com/china/documentation/
評(píng)論