<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Xilinx 和FPGA的DDR2 SDRAM存儲(chǔ)器接口控制器的設(shè)計(jì)

          基于Xilinx 和FPGA的DDR2 SDRAM存儲(chǔ)器接口控制器的設(shè)計(jì)

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

            本白皮書(shū)討論各種所面臨的挑戰(zhàn)和 的解決方案,同時(shí)也說(shuō)明如何使用 軟件工具和經(jīng)過(guò)硬件驗(yàn)證的參考來(lái)為您自己的應(yīng)用(從低成本的 DDR 應(yīng)用到像 667 Mb/s 這樣的更高性能)完整的存

          本文引用地址:http://www.ex-cimer.com/article/151612.htm

            儲(chǔ)器解決方案。

            接口趨勢(shì)和 解決方案

            20 世紀(jì) 90 年代后期,接口從單倍數(shù)據(jù)速率 (SDR) 發(fā)展到了雙倍數(shù)據(jù)速率 (DDR) SDRAM,而今天的 SDRAM 運(yùn)行速率已經(jīng)達(dá)到每引腳 667 Mb/s或更高。當(dāng)今的趨勢(shì)顯示,這些數(shù)據(jù)速率可能每四年增加一倍,到 2010 年,隨著DDR3 SDRAM 的出現(xiàn),很可能超過(guò)每引腳 1.2 Gb/s。見(jiàn)圖1。

            


            應(yīng)用通常可分為兩類:一類是低成本應(yīng)用,降低器件成本為主要目的;另一類是高性能應(yīng)用,首要目標(biāo)是謀求高帶寬。

            運(yùn)行速率低于每引腳 400 Mb/s 的 DDR SDRAM 和低端 SDRAM 已能滿足大多數(shù)低成本系統(tǒng)存儲(chǔ)器的帶寬需求。對(duì)于這類應(yīng)用,Xilinx 提供了 Spartan-3 系列,其中包括 Spartan-3、Spartan-3E 和 Spartan-3A 器件。

            高性能應(yīng)用把每引腳 533 和 667 Mb/s 的 DDR2 SDRAM 這樣的存儲(chǔ)器接口帶寬推到了極限;對(duì)于這類應(yīng)用,Xilinx 推出了 Virtex-4 和 Virtex-5 ,能夠充分滿足今天大多數(shù)系統(tǒng)的最高帶寬需求。

            帶寬是與每引腳數(shù)據(jù)速率和數(shù)據(jù)總線寬度相關(guān)的一個(gè)因素。Spartan-3 系列、Virtex-4、Virtex-5 提供不同的選項(xiàng),從數(shù)據(jù)總線寬度小于 72 位的較小的低成本統(tǒng),到576 位寬的更大的 Virtex-5 封裝(見(jiàn)圖2)。

            

            高于 400 Mb/s 速率的更寬總線使得芯片到芯片的接口愈益難以開(kāi)發(fā),因?yàn)樾枰蟮姆庋b、更好的電源和接地-信號(hào)比率。Virtex-4 和 Virtex-5 FPGA 的開(kāi)發(fā)使用了先進(jìn)的稀疏鋸齒形 (Sparse Chevron) 封裝技術(shù),能提供優(yōu)良的信號(hào)-電源和接地引腳比率。每個(gè) I/O 引腳周圍都有足夠的電源和接地引腳和板,以確保良好的屏蔽,使由同步交換輸出 (SSO) 所造成的串?dāng)_噪音降到最低。

            低成本存儲(chǔ)器接口

            今天,并不是所有的系統(tǒng)都在追求存儲(chǔ)器接口的性能極限。當(dāng)?shù)统杀臼侵饕臎Q定因素,而且存儲(chǔ)器的比特率達(dá)到每引腳 333 Mb/s 已經(jīng)足夠時(shí),Spartan-3 系列 FPGA配之以 Xilinx 軟件工具,就能提供一個(gè)易于實(shí)現(xiàn)、低成本的解決方案。

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

            

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

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

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

            

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

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

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

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

            高性能存儲(chǔ)器接口

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

            如果比較一下運(yùn)行速度為 400 Mb/s 的 DDR SDRAM 數(shù)據(jù)有效窗口和運(yùn)行速度為 667Mb/s 的 DDR2 存儲(chǔ)器技術(shù),這種情況就一目了然了。數(shù)據(jù)周期為 2.5 ns 的 DDR 器件擁有 0.7 ns 的數(shù)據(jù)有效窗口,而數(shù)據(jù)周期為 1.5 ns 的 DDR2 器件僅有 0.14 ns 的數(shù)據(jù)有效窗口(圖5)。

            

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

            正如 Spartan-3 系列 FPGA 中所實(shí)現(xiàn)的那樣,使用讀數(shù)據(jù) DQS 可以把讀數(shù)據(jù)采集到可配置邏輯塊 (CLB) 中,但是使用 LUT 把 DQS 或時(shí)鐘與數(shù)據(jù)有效窗口中心對(duì)齊時(shí),所用的延遲 tap 卻很粗糙。CLB 中實(shí)現(xiàn)的延遲 tap 具有大約幾百微微秒 (ps) 的分辨率,然而,對(duì)于超過(guò) 400 Mb/s 的數(shù)據(jù)速率的讀取采集時(shí)序,所需的分辨率要比基于CLB 的 tap 高一個(gè)數(shù)量級(jí)。Virtex-4 和 Virtex-5 FPGA 采用 I/O 模塊中的專用延遲和時(shí)鐘資源(稱為 ChipSync? 技術(shù))來(lái)解決這一難題。內(nèi)置到每個(gè) I/O 中的 ChipSync模塊都含有一串延遲單元(tap 延遲),在 Virtex-4 中稱為 IDELAY,而在 Virtex-5FPGA 中稱為 IODELAY,其分辨率為 75 ps (見(jiàn)圖6)。

            

            此實(shí)現(xiàn)的架構(gòu)基于幾個(gè)構(gòu)建模塊。用戶界面負(fù)責(zé)把存儲(chǔ)器控制器和物理層接口橋接到其余 FPGA 設(shè)計(jì),它使用 FIFO 架構(gòu)(圖7)。FIFO 有三套:命令/ 地址 FIFO、寫(xiě)FIFO、讀 FIFO。這些 FIFO 保存著命令、地址、寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)。主要的控制器模塊控制讀、寫(xiě)和刷新操作。其他兩個(gè)邏輯模塊執(zhí)行讀操作的時(shí)鐘-數(shù)據(jù)中心對(duì)齊:初始化控制器和校準(zhǔn)邏輯。

            


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();