<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 利用Xilinx FPGA和存儲器接口生成器簡(jiǎn)化存儲器接口

利用Xilinx FPGA和存儲器接口生成器簡(jiǎn)化存儲器接口

作者: 時(shí)間:2012-10-09 來(lái)源:網(wǎng)絡(luò ) 收藏

低成本

今天,并不是所有的系統都在追求的性能極限。當低成本是主要的決定因素,而且存儲器的比特率達到每引腳 333 Mb/s 已經(jīng)足夠時(shí),Spartan-3 系列 配之以 軟件工具,就能提供一個(gè)易于實(shí)現、低成本的解決方案。

基于 設計的和控制器由三個(gè)基本構建模塊組成:讀寫(xiě)數據接口、存儲器控制器狀態(tài)機,以及將存儲器接口設計橋接到 設計的其余部分的用戶(hù)界面(圖3)。這些模塊都在 FPGA 資源中實(shí)現,并由數字時(shí)鐘管理器 (DCM) 的輸出作為時(shí)鐘來(lái)驅動(dòng)。在 Spartan-3 系列實(shí)現中,DCM 也驅動(dòng)查找表 (LUT) 延遲校準監視器(一個(gè)確保讀數據采集具有正確時(shí)序的邏輯塊)。延遲校準電路用來(lái)選擇基于 LUT 的延遲單元的數量,這些延遲單元則用于針對讀數據對選通脈沖線(xiàn) (DQS) 加以延遲。延遲校準電路計算出與 DQS 延遲電路相同的一個(gè)電路的延遲。校準時(shí)會(huì )考慮所有延遲因素,包括所有組件和布線(xiàn)延遲。

用戶(hù)界面是一種握手型的界面。用戶(hù)發(fā)出一條讀或寫(xiě)命令,如果是寫(xiě)命令的話(huà)還包括地址和數據,而用戶(hù)界面邏輯以 User_cmd-ack 信號回應,于是下一條命令又可發(fā)出。

在 Spartan-3 系列實(shí)現中,使用可配置邏輯塊 (CLB) 中的 LUT 來(lái)實(shí)現讀數據采集。在讀事務(wù)過(guò)程中,DDR 或 DDR2 SDRAM 器件將讀數據選通脈沖 (DQS) 及相關(guān)數據按照與讀數據 (DQ) 邊沿對齊的方式發(fā)送給 FPGA。在高頻率運行的源同步接口中采集讀數據是一項頗具挑戰性的任務(wù), 因為數據在非自由運行 DQS 的每個(gè)邊沿上都會(huì )改變。讀數據采集的實(shí)現使用了一種基于 LUT 的 tap 延遲機制。DQS 時(shí)鐘信號被適量延遲,使其放置后在讀數據有效窗口中具有足夠的余量,以在 FPGA 內被采集。

讀數據的采集是在基于 LUT 的雙端口分布式 RAM 中完成的(見(jiàn)圖4)。LUT RAM 被配置成一對 FIFO,每個(gè)數據位都被輸入到上升邊沿 (FIFO 0) 和下降邊沿 (FIFO 1)的FIFO 中,如圖4 所示。這些深度為 16 個(gè)輸入的 FIFO 異步運行,具有獨立的讀寫(xiě)端口。

來(lái)自存儲器的讀數據寫(xiě)到經(jīng)過(guò)延遲的 DQS 上升邊沿的 FIFO_0 中,并寫(xiě)到經(jīng)過(guò)延遲的DQS 下降邊沿的 FIFO_1 中。將讀數據從 DQS 時(shí)鐘域傳輸到存儲器控制器時(shí)鐘域就是通過(guò)這些異步 FIFO 完成的。在存儲器控制器的時(shí)鐘域中,可以從 FIFO_0 和FIFO_1 同時(shí)讀出數據。FIFO 的讀指針在 FPGA 的內部時(shí)鐘域中生成。寫(xiě)使能信號(FIFO_0 WE 和 FIFO1_WE)的生成通過(guò) DQS 和一個(gè)外部回送(亦即歸一化)信號完成。外部歸一化信號作為輸出傳送至輸入/ 輸出模塊 (IOB),然后通過(guò)輸入緩沖器作為輸入取出。這種技術(shù)可補償 FPGA 與存儲器器件之間的 IOB、器件和跡線(xiàn)延遲。從FPGA 輸入管腳發(fā)出的歸一化信號在進(jìn)入 LUT 延遲電路之前使用與 DQS 相似的布線(xiàn)

資源,以與布線(xiàn)延遲相匹配。環(huán)路之跡線(xiàn)延遲應為發(fā)送給存儲器的時(shí)鐘和 DQS 之跡線(xiàn)

延遲的總和(圖4)。

寫(xiě)數據命令和時(shí)序由寫(xiě)數據接口生成并控制。寫(xiě)數據接口使用 IOB 觸發(fā)器和 DCM 的90 度、180 度和 270 度輸出,發(fā)送按照 DDR 和 DDR2 SDRAM 的時(shí)序要求與命令位和數據位正確對齊的 DQS。

用于 Spartan-3 系列 FPGA 的一種 DDR 和 DDR2 SDRAM 存儲器接口實(shí)現已通過(guò)硬件進(jìn)行了充分驗證。一個(gè)利用 Spartan-3A 入門(mén)套件的低成本 DDR2 SDRAM 參考設計示例已完成。此設計為板上 16 位寬 DDR2SDRAM 存儲器器件而開(kāi)發(fā),并使用了XC3S700A-FG484。此參考設計僅利用了 Spartan-3A FPGA 器件可用資源的一小部分:13% 的 IOB、9% 的邏輯 Slice、16% 的 BUFG MUX 和八個(gè) DCM 中的一個(gè)。這一實(shí)現為其余部分 FPGA 設計所需的其他功能留下了可用資源。

使用存儲器接口 (MIG) 軟件工具(本白皮書(shū)后面的部分有說(shuō)明),設計人員可以很容易地定制 Spartan-3 系列的存儲器接口設計,以適合自己的應用。

高性能存儲器接口

隨著(zhù)數據速率的提高,滿(mǎn)足接口時(shí)序方面的要求變得愈益困難了。與寫(xiě)入存儲器相比,從存儲器中讀數據時(shí),存儲器接口時(shí)鐘控制方面的要求通常更難滿(mǎn)足。追求更高數據速率的趨勢使得設計人員面臨巨大挑戰,因為數據有效窗口(此為數據周期內的一段時(shí)間,其間可獲得可靠的讀數據)比數據周期本身縮小得快。造成這種情況的原因是,影響有效數據窗口尺寸大小的系統和器件性能參數具有種種不確定性,它們縮小的速率與數據周期不同。

如果比較一下運行速度為 400 Mb/s 的 DDR SDRAM 數據有效窗口和運行速度為 667

Mb/s 的 DDR2 存儲器技術(shù),這種情況就一目了然了。數據周期為 2.5 ns 的 DDR 器件擁有 0.7 ns 的數據有效窗口,而數據周期為 1.5 ns 的 DDR2 器件僅有 0.14 ns 的數據有效窗口(圖5)。

顯然,數據有效窗口的加速減損給 FPGA 設計人員帶來(lái)了一堆全新的設計挑戰,要創(chuàng )建和維護可靠的存儲器接口性能,就得采用更有效的方法。



關(guān)鍵詞: Xilinx FPGA 存儲器接口 生成器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>