一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-21 17:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、DDR3簡介

DDR3全稱double-data-rate 3 synchronous dynamic RAM,即第三代雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器。所謂同步,是指DDR3數(shù)據(jù)的讀取寫入是按時(shí)鐘同步的;所謂動(dòng)態(tài),是指DDR3中的數(shù)據(jù)掉電無法保存,且需要周期性的刷新,才能保持?jǐn)?shù)據(jù);所謂隨機(jī)存取,即可以隨機(jī)操作任一地址的數(shù)據(jù);所謂double-data-rate,即時(shí)鐘的上升沿和下降沿都發(fā)生數(shù)據(jù)傳輸。

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

圖1. DDR3結(jié)構(gòu)

二、地址的概念及容量計(jì)算

2.1地址的概念

DDR3的內(nèi)部是一個(gè)存儲(chǔ)陣列,將數(shù)據(jù)“填”進(jìn)去,你可以它想象成一張表格。和表格的檢索原理一樣,先指定一個(gè)行(Row),再指定一個(gè)列(Column),我們就可以準(zhǔn)確地找到所需要的單元格,這就是內(nèi)存芯片尋址的基本原理。對于內(nèi)存,這個(gè)單元格可稱為存儲(chǔ)單元,那么這個(gè)表格(存儲(chǔ)陣列)就是邏輯 Bank(Logical Bank,下面簡稱Bank)。

DDR3內(nèi)部Bank示意圖,這是一個(gè)MXN的陣列,B代表Bank地址編號,C代表列地址編號,R代表行地址編號。如果尋址命令是B1、R3、C4,就能確定地址是圖中紅格的位置目前DDR3內(nèi)存芯片基本上都是8個(gè)Bank設(shè)計(jì),也就是說一共有8個(gè)這樣的“表格”。尋址的流程也就是先指定Bank地址,再指定行地址,然后指列地址最終的確尋址單元。

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

圖2. DDR3地址

目前DDR3系統(tǒng)而言,還存在物理Bank的概念,這是對內(nèi)存子系統(tǒng)的一個(gè)相關(guān)術(shù)語,并不針對內(nèi)存芯片。內(nèi)存為了保證CPU正常工作,必須一次傳輸完CPU 在一個(gè)傳輸周期內(nèi)所需要的數(shù)據(jù)。而CPU在一個(gè)傳輸周期能接受的數(shù)據(jù)容量就是CPU數(shù)據(jù)總線的位寬,單位是bit(位)??刂苾?nèi)存與CPU之間數(shù)據(jù)交換的北橋芯片也因此將內(nèi)存總線的數(shù)據(jù)位寬等同于CPU數(shù)據(jù)總線的位寬,這個(gè)位寬就稱為物理Bank(Physical Bank,有的資料稱之為Rank)的位寬。目前這個(gè)位寬基本為64bit。

2.2 DDR3容量計(jì)算

上一節(jié)我們已經(jīng)說過bank、row、column的概念,容量就要據(jù)此來計(jì)算:

假設(shè):

bank地址線位寬為3,及bank數(shù)目為 2^3=8;

行地址線位寬位13,及A0…A12;

列地址線位寬為10,及A0…A9;

有 2^3 * 2^13 * 2^10 = 2^26 =67108864b= 64Mb

再加上數(shù)據(jù)線,則容量為 64Mb x 16 = 128M Byte = =1G bit

三、重要給概念理解

3.1 行選通周期

在實(shí)際工作中,Bank地址與相應(yīng)的行地址是同時(shí)發(fā)出的,此時(shí)這個(gè)命令稱之為“行激活”(Row Active)。在此之后,將發(fā)送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個(gè)命令也是同時(shí)發(fā)出的,所以一般都會(huì)以“讀/寫命令”來表示列尋址。根據(jù)相關(guān)的標(biāo)準(zhǔn),從行有效到讀/寫命令發(fā)出之間的間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲,RAS就是行地址選通脈沖,CAS就是列地址選通脈沖),我們可以理解為行選通周期。tRCD是DDR的一個(gè)重要時(shí)序參數(shù),廣義的tRCD以時(shí)鐘周期(tCK,Clock Time)數(shù)為單位,比如tRCD=3,就代表延遲周期為兩個(gè)時(shí)鐘周期,具體到確切的時(shí)間,則要根據(jù)時(shí)鐘頻率而定,時(shí)鐘頻率100M,tRCD=3,代表30ns的延遲。

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

圖3. 行選通周期tRCD

3.2 列地址脈沖選通潛伏期

相關(guān)的列地址被選中之后,將會(huì)觸發(fā)數(shù)據(jù)傳輸,但從存儲(chǔ)單元中輸出到真正出現(xiàn)在內(nèi)存芯片的 I/O 接口之間還需要一定的時(shí)間(數(shù)據(jù)觸發(fā)本身就有延遲,而且還需要進(jìn)行信號放大),這段時(shí)間就是非常著名的 CL(CAS Latency,列地址脈沖選通潛伏期)。CL 的數(shù)值與 tRCD 一樣,以時(shí)鐘周期數(shù)表示。如 DDR3-800,時(shí)鐘頻率為 100MHz,時(shí)鐘周期為 10ns,如果 CL=2 就意味著 20ns 的潛伏期。

注:CL只是針對讀取操作。

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

圖4. CL的概念(CL=2,tAC=1)

注意:delay與Latency雖然都有“延遲”的意思,但本質(zhì)上是不同的

Delay :事情要在這個(gè)時(shí)間之后開始

Latency:事情已經(jīng)發(fā)生,但是還不夠穩(wěn)定需要一個(gè)穩(wěn)定時(shí)間

3.3 突發(fā)傳輸?shù)母拍?/p>

目前內(nèi)存的讀寫基本都是連續(xù)的,因?yàn)榕cCPU交換的數(shù)據(jù)量以一個(gè)Cache Line(即CPU內(nèi)Cache的存儲(chǔ)單位)的容量為準(zhǔn),一般為64字節(jié)。而現(xiàn)有的Rank位寬為8字節(jié)(64bit),那么就要一次連續(xù)傳輸8次,這就涉及到我們也經(jīng)常能遇到的突發(fā)傳輸?shù)母拍?。突發(fā)(Burst)是指在同一行中相鄰的存儲(chǔ)單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞剑B續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長度(Burst Lengths,簡稱BL)。

在進(jìn)行突發(fā)傳輸時(shí),只要指定起始列地址與突發(fā)長度,內(nèi)存就會(huì)依次地自動(dòng)對后面相應(yīng)數(shù)量的存儲(chǔ)單元進(jìn)行讀/寫操作而不再需要控制器連續(xù)地提供列地址。這樣,除了第一筆數(shù)據(jù)的傳輸需要若干個(gè)周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個(gè)數(shù)據(jù)只需一個(gè)周期的即可獲得。

連續(xù)讀取模式:只要指定起始列地址與突發(fā)長度,后續(xù)的尋址與數(shù)據(jù)的讀取自動(dòng)進(jìn)行,而只要控制好兩段突發(fā)讀取命令的間隔周期(與BL相同)即可做到連續(xù)的突發(fā)傳輸。

在 DDR SDRAM 中,突發(fā)長度只有 2、4、8 三種選擇,沒有了隨機(jī)存取的操作(突發(fā)長度為 1)和全頁式突發(fā)。這是為什么呢?因?yàn)?L-Bank一次就存取兩倍于芯片 位寬的數(shù)據(jù),所以芯片至少也要進(jìn)行兩次傳輸才可以,否則內(nèi)部多出來的數(shù)據(jù)怎么處理?但是,突發(fā)長度的定義也與 SDRAM 的不一樣了,它不再指所連續(xù)尋址的存儲(chǔ)單元數(shù)量,而是指連續(xù)的傳輸周期數(shù),每次是一個(gè)芯片位寬的數(shù)據(jù)。

上面是別人的解釋,筆者結(jié)合自己的理解和代碼實(shí)現(xiàn)中再解釋一下:

突發(fā)傳輸是為了提高傳輸效率,這涉及到預(yù)取的概念;DDR3突發(fā)長度BL=8,在t1時(shí)刻我們發(fā)起讀命令,給出地址addr1,那么因?yàn)槭峭话l(fā)傳輸,所以實(shí)際我們將讀出addr1以及它之后地址,總共8個(gè)地址,也就讀出了8個(gè)數(shù)據(jù);那么t2時(shí)刻,我們繼續(xù)讀數(shù),給出的地址addr=addr1+8;結(jié)合下圖更容易理解:

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

圖5. 突發(fā)傳輸

注:

t1 ,t2 / t3,t4時(shí)刻不一定連續(xù);要看ddr是否準(zhǔn)備好,具體到代碼就是app_rdy 并不是一直為高;

3.4 掩碼

掩碼簡單解釋下,就是屏蔽掉我們傳輸不需要的數(shù)據(jù);掩碼每一位bit對應(yīng)ddr數(shù)據(jù)的1個(gè)字節(jié);當(dāng)掩碼為0,數(shù)據(jù)有效;當(dāng)掩碼為1,數(shù)據(jù)屏蔽;

一般不使用,傳輸數(shù)據(jù)全部有效,掩碼直接置0:(掩碼位寬根據(jù)數(shù)據(jù)位寬而定)

assign app_wdf_mask = 64'b0;

3.5 數(shù)據(jù)選取脈沖(DQS)

DQS 是DDR中的重要功能,它的功能主要用來在一個(gè)時(shí)鐘周期內(nèi)準(zhǔn)確的區(qū)分出每個(gè)傳輸周期,并便于接收方準(zhǔn)確接收數(shù)據(jù)。每一顆芯片都有一個(gè)DQS信號線,它是雙向的,在寫入時(shí)它用來傳送由北橋發(fā)來的DQS信號,讀取時(shí),則由芯片生成DQS向北橋發(fā)送。完全可以說,它就是數(shù)據(jù)的同步信號。

在讀取時(shí),DQS與數(shù)據(jù)信號同時(shí)生成(也是在CK與CK#的交叉點(diǎn))。而DDR內(nèi)存中的CL也就是從CAS發(fā)出到DQS生成的間隔,DQS生成時(shí),芯片內(nèi)部的預(yù)取已經(jīng)完畢了,由于預(yù)取的原因,實(shí)際的數(shù)據(jù)傳出可能會(huì)提前于DQS發(fā)生(數(shù)據(jù)提前于DQS傳出)。由于是并行傳輸,DDR內(nèi)存對tAC也有一定的要求,對于DDR266,tAC的允許范圍是±0.75ns,對于DDR333,則是±0.7ns,有關(guān)它們的時(shí)序圖示見前文,其中CL里包含了一段DQS 的導(dǎo)入期。

DQS 在讀取時(shí)與數(shù)據(jù)同步傳輸,那么接收時(shí)也是以DQS的上下沿為準(zhǔn)嗎?不,如果以DQS的上下沿區(qū)分?jǐn)?shù)據(jù)周期的危險(xiǎn)很大。由于芯片有預(yù)取的操作,所以輸出時(shí)的同步很難控制,只能限制在一定的時(shí)間范圍內(nèi),數(shù)據(jù)在各I/O端口的出現(xiàn)時(shí)間可能有快有慢,會(huì)與DQS有一定的間隔,這也就是為什么要有一個(gè)tAC規(guī)定的原因。而在接收方,一切必須保證同步接收,不能有tAC之類的偏差。這樣在寫入時(shí),芯片不再自己生成DQS,而以發(fā)送方傳來的DQS為基準(zhǔn),并相應(yīng)延后一定的時(shí)間,在DQS的中部為數(shù)據(jù)周期的選取分割點(diǎn)(在讀取時(shí)分割點(diǎn)就是上下沿),從這里分隔開兩個(gè)傳輸周期。這樣做的好處是,由于各數(shù)據(jù)信號都會(huì)有一個(gè)邏輯電平保持周期,即使發(fā)送時(shí)不同步,在DQS上下沿時(shí)都處于保持周期中,此時(shí)數(shù)據(jù)接收觸發(fā)的準(zhǔn)確性無疑是最高的。

在寫入時(shí),以DQS的高/低電平期中部為數(shù)據(jù)周期分割點(diǎn),而不是上/下沿,但數(shù)據(jù)的接收觸發(fā)仍為DQS的上/下沿。

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(一)

四、參考資料

如果我們只是拿來用ddr搬磚,那么它就簡單,知道IP怎么使用就好,但是要想知其所以然,理論知識(shí)是必備的,這也是我們初學(xué)者所欠缺的東西,慢慢修煉吧!

參考資料①,里面所有信號都有解釋,感興趣的和想提升的可以仔細(xì)研究:

DDR基礎(chǔ)詳解

參考資料②,超詳細(xì)DDR3底層原理介紹,大佬首選

深入淺出DDR系列(一)--DDR原理篇

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22033

    瀏覽量

    617770
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7647

    瀏覽量

    167166
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2184

    瀏覽量

    125157
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    【RK3568+PG2L50H開發(fā)板實(shí)驗(yàn)例程】FPGA部分 | DDR3 讀寫實(shí)驗(yàn)例程

    的總線寬度共為 16bit。DDR3 SDRAM 的最高數(shù)據(jù)速率 1066Mbps。 2.1. DDR3 控制器簡介 PG2L50H 為用戶提供套完整的 DDR memory 控制
    發(fā)表于 07-10 10:46

    在Vivado調(diào)用MIG產(chǎn)生DDR3的問題解析

    下面是調(diào)用的DDR3模塊的,模塊的倒數(shù)第二行是,模塊的時(shí)鐘輸入,時(shí)鐘源來自PLL產(chǎn)生的系統(tǒng)時(shí)鐘的倍頻。
    的頭像 發(fā)表于 05-03 10:21 ?553次閱讀
    在Vivado調(diào)用MIG產(chǎn)生<b class='flag-5'>DDR3</b>的問題解析

    TPS51116 完整的DDR、DDR2、DDR3、DDR3L、LPDDR3DDR4 電源解決方案同步降壓控制器數(shù)據(jù)手冊

    TPS51116為 DDR/SSTL-2、DDR2/SSTL-18、DDR3/SSTL-15、DDR3L、LPDDR3
    的頭像 發(fā)表于 04-29 16:38 ?370次閱讀
    TPS51116 完整的<b class='flag-5'>DDR</b>、<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>、<b class='flag-5'>DDR3</b>L、LPDDR<b class='flag-5'>3</b> 和 <b class='flag-5'>DDR</b>4 電源解決方案同步降壓控制器數(shù)據(jù)手冊

    DDR模塊的PCB設(shè)計(jì)要點(diǎn)

    在高速PCB設(shè)計(jì)中,DDR模塊是絕對繞不過去的關(guān)。無論你用的是DDR、DDR2還是DDR3,只要設(shè)計(jì)不規(guī)范,后果就是——信號反射、時(shí)序混亂
    的頭像 發(fā)表于 04-29 13:51 ?1098次閱讀
    <b class='flag-5'>DDR</b>模塊的PCB設(shè)計(jì)要點(diǎn)

    TPS51216-EP 增強(qiáng)型產(chǎn)品 完整的 DDR2、DDR3DDR3L 內(nèi)存電源解決方案 同步降壓控制器數(shù)據(jù)手冊

    TPS51216-EP 以最低的總成本和最小的空間為 DDR2、DDR3DDR3L 內(nèi)存系統(tǒng)提供完整的電源。它將同步降壓穩(wěn)壓控制器 (VDDQ) 與 2A 灌/拉跟蹤 LDO (VTT) 和緩
    的頭像 發(fā)表于 04-26 11:12 ?295次閱讀
    TPS51216-EP 增強(qiáng)型產(chǎn)品 完整的 <b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b> 和 <b class='flag-5'>DDR3</b>L 內(nèi)存電源解決方案 同步降壓控制器數(shù)據(jù)手冊

    DDR3 SDRAM配置教程

    DDR3 SDRAM(Double-Data-Rate ThreeSynchronous Dynamic Random Access Memory)是DDR SDRAM的第三代產(chǎn)品,相較于DDR2,
    的頭像 發(fā)表于 04-10 09:42 ?2930次閱讀
    <b class='flag-5'>DDR3</b> SDRAM配置教程

    燦芯半導(dǎo)體推出DDR3/4和LPDDR3/4 Combo IP

    燦芯半導(dǎo)體(上海)股份有限公司(燦芯股份,688691)宣布推出基于28HKD 0.9V/2.5V 平臺(tái)DDR3/4, LPDDR3/4 Combo IP。該IP具備廣泛的協(xié)議兼容性,支持D
    的頭像 發(fā)表于 03-21 16:20 ?461次閱讀

    DDR內(nèi)存控制器的架構(gòu)解析

    DDR內(nèi)存控制器是個(gè)高度集成的組件,支持多種DDR內(nèi)存類型(DDR2、DDR3、DDR3L、L
    的頭像 發(fā)表于 03-05 13:47 ?1678次閱讀
    <b class='flag-5'>DDR</b>內(nèi)存控制器的架構(gòu)解析

    三大內(nèi)存原廠或?qū)⒂?025年停產(chǎn)DDR3/DDR4

    ,DDR5內(nèi)存已成為市場主流,并逐步取代DDR4內(nèi)存。值得注意的是,消費(fèi)級平臺(tái)已不再支持DDR4,這使得DDR4內(nèi)存開始加速向
    的頭像 發(fā)表于 02-19 11:11 ?1594次閱讀

    基于Xilinx ZYNQ7000 FPGA嵌入開發(fā)實(shí)戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《基于Xilinx ZYNQ7000 FPGA嵌入開發(fā)實(shí)戰(zhàn)指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-10 15:31 ?37次下載

    DDR3、DDR4、DDR5的性能對比

    DDR3、DDR4、DDR5是計(jì)算機(jī)內(nèi)存類型的不同階段,分別代表第三代、第四代和第五代雙倍數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)。以下是它們之間的性能對比: 、速度與帶寬
    的頭像 發(fā)表于 11-29 15:08 ?1w次閱讀

    如何選擇DDR內(nèi)存條 DDR3DDR4內(nèi)存區(qū)別

    隨著技術(shù)的不斷進(jìn)步,計(jì)算機(jī)內(nèi)存技術(shù)也在不斷發(fā)展。DDR(Double Data Rate)內(nèi)存條作為計(jì)算機(jī)的重要組成部分,其性能直接影響到電腦的運(yùn)行速度和穩(wěn)定性。DDR3DDR4是目前市場上最常
    的頭像 發(fā)表于 11-20 14:24 ?5990次閱讀

    【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】+01.開箱(zmj)

    推出的MYC-J7A100T核心板及開發(fā)板是基于Xilinx Artix-7系列XC7A100T的開發(fā)平臺(tái),FPGA工業(yè)芯,兼容國產(chǎn)PG2L100H: XC7A100T-2FGG484I具有高度
    發(fā)表于 11-12 15:45

    Xilinx 7系列FPGA PCIe Gen3的應(yīng)用接口及特性

    Xilinx7系列FPGA集成了新代PCI Express集成塊,支持8.0Gb/s數(shù)據(jù)速率的PCI Express 3.0。本文介紹了7系列FPGA PCIe Gen
    的頭像 發(fā)表于 11-05 15:45 ?3075次閱讀
    <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b> PCIe Gen<b class='flag-5'>3</b>的應(yīng)用接口及特性

    DDR3寄存器和PLL數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《DDR3寄存器和PLL數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 11:06 ?2次下載
    <b class='flag-5'>DDR3</b>寄存器和PLL數(shù)據(jù)表