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

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

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

【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第十章】DDR3讀寫測(cè)試實(shí)驗(yàn)

FPGA技術(shù)專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-05 13:27 ? 次閱讀

原創(chuàng)聲明:

本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處(alinx.com)。

適用于板卡型號(hào):

PGL22G/PGL12G

1. 實(shí)驗(yàn)簡(jiǎn)介

本實(shí)驗(yàn)為后續(xù)使用DDR3內(nèi)存的實(shí)驗(yàn)做鋪墊,通過循環(huán)讀寫DDR3內(nèi)存,了解其工作原理和DDR3控制器的寫法,由于DDR3控制復(fù)雜,控制器的編寫難度高,這里筆者介紹采用第三方的DDR3 IP控制器情況下的應(yīng)用,是后續(xù)音頻、視頻等需要用到DDR3實(shí)驗(yàn)的基礎(chǔ)。

2. 實(shí)驗(yàn)原理

DDR SDRAM全稱為Double Data Rate SDRAM,中文名為“雙倍數(shù)據(jù)流SDRAM”。DDR SDRAM在原有的SDRAM的基礎(chǔ)上改進(jìn)而來。也正因?yàn)槿绱?,DDR能夠憑借著轉(zhuǎn)產(chǎn)成本優(yōu)勢(shì)來打敗昔日的對(duì)手RDRAM,成為當(dāng)今的主流。本文只著重講DDR的原理和DDR SDRAM相對(duì)于傳統(tǒng)SDRAM(又稱SDR SDRAM)的不同。

(一) DDR的基本原理

有很多文章都在探討DDR的原理,但似乎也不得要領(lǐng),甚至還帶出一些錯(cuò)誤的觀點(diǎn)。首先我們看看一張DDR正規(guī)的時(shí)序圖。

pIYBAGAY4smAMWsUAACPlHSC9pk323.jpg

從中可以發(fā)現(xiàn)它多了兩個(gè)信號(hào): CLK#與DQS,CLK#與正常CLK時(shí)鐘相位相反,形成差分時(shí)鐘信號(hào)。而數(shù)據(jù)的傳輸在CLK與CLK#的交叉點(diǎn)進(jìn)行,可見在CLK的上升與下降沿(此時(shí)正好是CLK#的上升沿)都有數(shù)據(jù)被觸發(fā),從而實(shí)現(xiàn)DDR。在此,我們可以說通過差分信號(hào)達(dá)到了DDR的目的,甚至講CLK#幫助了第二個(gè)數(shù)據(jù)的觸發(fā),但這只是對(duì)表面現(xiàn)象的簡(jiǎn)單描述,從嚴(yán)格的定義上講并不能這么說。之所以能實(shí)現(xiàn)DDR,還要從其內(nèi)部的改進(jìn)說起。

o4YBAGAY4smARZP4AAC-70PEbQM042.jpg

DDR內(nèi)存芯片的內(nèi)部結(jié)構(gòu)圖

這是一顆128Mbit的內(nèi)存芯片,從圖中可以看出來,白色區(qū)域內(nèi)與SDRAM的結(jié)構(gòu)基本相同,但請(qǐng)注意灰色區(qū)域,這是與SDRAM的不同之處。首先就是內(nèi)部的L-Bank規(guī)格。SDRAM中L-Bank 存儲(chǔ)單元的容量與芯片位寬相同,但在DDR SDRAM中并不是這樣,存儲(chǔ)單元的容量是芯片位寬的一倍,所以在此不能再套用講解SDRAM時(shí) “芯片位寬=存儲(chǔ)單元容量” 的公式了。也因此,真正的行、列地址數(shù)量也與同規(guī)格SDRAM不一樣了。

以本芯片為例,在讀取時(shí),L-Bank在內(nèi)部時(shí)鐘信號(hào)的觸發(fā)下一次傳送8bit的數(shù)據(jù)給讀取鎖存器,再分成兩路4bit數(shù)據(jù)傳給復(fù)用器,由后者將它們合并為一路4bit數(shù)據(jù)流,然后由發(fā)送器在DQS的控制下在外部時(shí)鐘上升與下降沿分兩次傳輸4bit的數(shù)據(jù)給北橋。這樣,如果時(shí)鐘頻率為100MHz,那么在I/O端口處,由于是上下沿觸發(fā),那么就是傳輸頻率就是200MHz。

現(xiàn)在大家基本明白DDR SDRAM的工作原理了吧,這種內(nèi)部存儲(chǔ)單元容量(也可以稱為芯片內(nèi)部總線位寬)=2×芯片位寬(也可稱為芯片I/O總線位寬)的設(shè)計(jì),就是所謂的兩位預(yù)?。?-bit Prefetch),有的公司則貼切的稱之為2-n Prefetch(n代表芯片位寬)。

(二) DDR SDRAM與SDRAM的不同

DDR SDRAM與SDRAM的不同主要體現(xiàn)在以下幾個(gè)方面。

DDR SDRAM與SDRAM的主要不同對(duì)比表

pIYBAGAY4sqAYOl9AAF3v0neHXw313.jpgo4YBAGAY4sqAfoanAACCFYFD_3I030.jpg

DDR SDRAM與SDRAM一樣,在開機(jī)時(shí)也要進(jìn)行MRS,不過由于操作功能的增多,DDR SDRAM在MRS之前還多了一EMRS階段(Extended Mode Register Set,擴(kuò)展模式寄存器設(shè)置),這個(gè)擴(kuò)展模式寄存器控制著DLL的有效/禁止、輸出驅(qū)動(dòng)強(qiáng)度、QFC 有效/無效等。

pIYBAGAY4suAb9HrAADCGnoIsP4723.jpg

由于EMRS與MRS的操作方法與SDRAM的MRS大同小異,在此就不再列出具體的模式表了,有興趣的話可查看相關(guān)的DDR內(nèi)存資料。下面我們就著重說說DDR SDRAM的新設(shè)計(jì)與新功能。

o4YBAGAY4suAHf-WAACk2sX9isI282.jpg

1、 差分時(shí)鐘

差分時(shí)鐘(參見上文“DDR SDRAM讀操作時(shí)序圖”)是DDR的一個(gè)必要設(shè)計(jì),但CK#的作用,并不能理解為第二個(gè)觸發(fā)時(shí)鐘(你可以在講述DDR原理時(shí)簡(jiǎn)單地這么比喻),而是起到觸發(fā)時(shí)鐘校準(zhǔn)的作用。由于數(shù)據(jù)是在CK的上下沿觸發(fā),造成傳輸周期縮短了一半,因此必須要保證傳輸周期的穩(wěn)定以確保數(shù)據(jù)的正確傳輸,這就要求CK的上下沿間距要有精確的控制。但因?yàn)闇囟取?a target="_blank">電阻性能的改變等原因,CK上下沿間距可能發(fā)生變化,此時(shí)與其反相的CK#就起到糾正的作用(CK上升快下降慢,CK# 則是上升慢下降快)。而由于上下沿觸發(fā)的原因,也使CL=1.5和2.5成為可能,并容易實(shí)現(xiàn)。與CK反相的CK#保證了觸發(fā)時(shí)機(jī)的準(zhǔn)確性。

pIYBAGAY4syAanSzAADXq4N5vb8994.jpg

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

總結(jié)DQS:它是雙向信號(hào);讀內(nèi)存時(shí),由內(nèi)存產(chǎn)生,DQS的沿和數(shù)據(jù)的沿對(duì)齊;寫入內(nèi)存時(shí),由外部產(chǎn)生,DQS的中間對(duì)應(yīng)數(shù)據(jù)的沿,即此時(shí)DQS的沿對(duì)應(yīng)數(shù)據(jù)最穩(wěn)定的中間時(shí)刻。

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

在讀取時(shí),DQS與數(shù)據(jù)信號(hào)同時(shí)生成(也是在CK與 CK#的交叉點(diǎn))。而DDR內(nèi)存中的CL也就是從CAS發(fā)出到DQS生成的間隔,數(shù)據(jù)真正出現(xiàn)在數(shù)據(jù)I/O總線上相對(duì)于DQS觸發(fā)的時(shí)間間隔被稱為 tAC。注意,這與SDRAM中的tAC的不同。實(shí)際上,DQS生成時(shí),芯片內(nèi)部的預(yù)取已經(jīng)完畢了,tAC是指上文結(jié)構(gòu)圖中灰色部分的數(shù)據(jù)輸出時(shí)間,由于預(yù)取的原因,實(shí)際的數(shù)據(jù)傳出可能會(huì)提前于DQS發(fā)生(數(shù)據(jù)提前于DQS傳出)。由于是并行傳輸,DDR內(nèi)存對(duì)tAC也有一定的要求,對(duì)于 DDR266,tAC的允許范圍是±0.75ns,對(duì)于DDR333,則是±0.7ns,有關(guān)它們的時(shí)序圖示見前文,其中CL里包含了一段DQS的導(dǎo)入期。

前文已經(jīng)說了DQS是為了保證接收方的選擇數(shù)據(jù), 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ù)信號(hào)都會(huì)有一個(gè)邏輯電平保持周期,即使發(fā)送時(shí)不同步,在DQS上下沿時(shí)都處于保持周期中,此時(shí)數(shù)據(jù)接收觸發(fā)的準(zhǔn)確性無疑是最高的。在寫入時(shí),以DQS的高/低電平期中部為數(shù)據(jù)周期分割點(diǎn),而不是上/下沿,但數(shù)據(jù)的接收觸發(fā)仍為DQS的上/下沿。

o4YBAGAY4s2ABB1EAACr_zqEES8240.jpg

3、 寫入延遲

在上面的DQS寫入時(shí)序圖中,可以發(fā)現(xiàn)寫入延遲已經(jīng)不是0了,在發(fā)出寫入命令后,DQS與寫入數(shù)據(jù)要等一段時(shí)間才會(huì)送達(dá)。這個(gè)周期被稱為DQS相對(duì)于寫入命令的延遲時(shí)間(tDQSS, WRITE Command to the first corresponding rising edge of DQS),對(duì)于這個(gè)時(shí)間大家應(yīng)該很好理解了。

為什么要有這樣的延遲設(shè)計(jì)呢?原因也在于同步,畢竟一個(gè)時(shí)鐘周期兩次傳送,需要很高的控制精度,它必須要等接收方做好充分的準(zhǔn)備才行。tDQSS是DDR內(nèi)存寫入操作的一個(gè)重要參數(shù),太短的話恐怕接受有誤,太長(zhǎng)則會(huì)造成總線空閑。tDQSS最短不能小于0.75個(gè)時(shí)鐘周期,最長(zhǎng)不能超過1.25個(gè)時(shí)鐘周期。有人可能會(huì)說,如果這樣,DQS不就與芯片內(nèi)的時(shí)鐘不同步了嗎?對(duì),正常情況下,tDQSS是一個(gè)時(shí)鐘周期,但寫入時(shí)接受方的時(shí)鐘只用來控制命令信號(hào)的同步,而數(shù)據(jù)的接受則完全依靠DQS進(jìn)行同步,所以 DQS與時(shí)鐘不同步也無所謂。不過,tDQSS產(chǎn)生了一個(gè)不利影響——讀后寫操作延遲的增加,如果CL=2.5,還要在tDQSS基礎(chǔ)上加入半個(gè)時(shí)鐘周期,因?yàn)槊疃家贑K的上升沿發(fā)出。

o4YBAGAY4s2AdS83AACxLf2TPLA018.jpg

當(dāng)CL=2.5時(shí),讀后寫的延遲將為tDQSS+0.5個(gè)時(shí)鐘周期(圖中BL=2)

另外,DDR內(nèi)存的數(shù)據(jù)真正寫入由于要經(jīng)過更多步驟的處理,所以寫回時(shí)間(tWR)也明顯延長(zhǎng),一般在3個(gè)時(shí)鐘周期左右,而在DDR-Ⅱ規(guī)范中更是將tWR列為模式寄存器的一項(xiàng),可見它的重要性。

pIYBAGAY4s2AWCvjAADIBErY2fA266.jpg

4、 突發(fā)長(zhǎng)度與寫入掩碼

在DDR SDRAM中,突發(fā)長(zhǎng)度只有2、4、8三種選擇,沒有了隨機(jī)存取的操作(突發(fā)長(zhǎng)度為1)和全頁式突發(fā)。這是為什么呢?因?yàn)長(zhǎng)-Bank一次就存取兩倍于芯片位寬的數(shù)據(jù),所以芯片至少也要進(jìn)行兩次傳輸才可以,否則內(nèi)部多出來的數(shù)據(jù)怎么處理?而全頁式突發(fā)事實(shí)證明在PC內(nèi)存中是很難用得上的,所以被取消也不希奇。

但是,突發(fā)長(zhǎng)度的定義也與SDRAM的不一樣了(見本章節(jié)最前那幅DDR簡(jiǎn)示圖),它不再指所連續(xù)尋址的存儲(chǔ)單元數(shù)量,而是指連續(xù)的傳輸周期數(shù),每次是一個(gè)芯片位寬的數(shù)據(jù)。對(duì)于突發(fā)寫入,如果其中有不想存入的數(shù)據(jù),仍可以運(yùn)用DM信號(hào)進(jìn)行屏蔽。DM信號(hào)和數(shù)據(jù)信號(hào)同時(shí)發(fā)出,接收方在DQS的上升與下降沿來判斷DM的狀態(tài),如果DM為高電平,那么之前從DQS 中部選取的數(shù)據(jù)就被屏蔽了。有人可能會(huì)覺得,DM是輸入信號(hào),意味著芯片不能發(fā)出DM信號(hào)給北橋作為屏蔽讀取數(shù)據(jù)的參考。其實(shí),該讀哪個(gè)數(shù)據(jù)也是由北橋芯片決定的,所以芯片也無需參與北橋的工作,哪個(gè)數(shù)據(jù)是有用的就留給北橋自己去選吧。

5、 延遲鎖定回路(DLL)

DDR SDRAM對(duì)時(shí)鐘的精確性有著很高的要求,而DDR SDRAM有兩個(gè)時(shí)鐘,一個(gè)是外部的總線時(shí)鐘,一個(gè)是內(nèi)部的工作時(shí)鐘,在理論上DDR SDRAM這兩個(gè)時(shí)鐘應(yīng)該是同步的,但由于種種原因,如溫度、電壓波動(dòng)而產(chǎn)生延遲使兩者很難同步,更何況時(shí)鐘頻率本身也有不穩(wěn)定的情況(SDRAM也內(nèi)部時(shí)鐘,不過因?yàn)樗墓ぷ?傳輸頻率較低,所以內(nèi)外同步問題并不突出)。DDR SDRAM的tAC就是因?yàn)閮?nèi)部時(shí)鐘與外部時(shí)鐘有偏差而引起的,它很可能造成因數(shù)據(jù)不同步而產(chǎn)生錯(cuò)誤的惡果。實(shí)際上,不同步就是一種正/負(fù)延遲,如果延遲不可避免,那么若是設(shè)定一個(gè)延遲值,如一個(gè)時(shí)鐘周期,那么內(nèi)外時(shí)鐘的上升與下降沿還是同步的。鑒于外部時(shí)鐘周期也不會(huì)絕對(duì)統(tǒng)一,所以需要根據(jù)外部時(shí)鐘動(dòng)態(tài)修正內(nèi)部時(shí)鐘的延遲來實(shí)現(xiàn)與外部時(shí)鐘的同步,這就是DLL的任務(wù)。

DLL不同于主板上的PLL,它不涉及頻率與電壓轉(zhuǎn)換,而是生成一個(gè)延遲量給內(nèi)部時(shí)鐘。目前DLL有兩種實(shí)現(xiàn)方法,一個(gè)是時(shí)鐘頻率測(cè)量法(CFM,Clock Frequency Measurement),一個(gè)是時(shí)鐘比較法(CC,Clock Comparator)。

CFM是測(cè)量外部時(shí)鐘的頻率周期,然后以此周期為延遲值控制內(nèi)部時(shí)鐘,這樣內(nèi)外時(shí)鐘正好就相差了一個(gè)時(shí)鐘周期,從而實(shí)現(xiàn)同步。DLL就這樣反復(fù)測(cè)量反復(fù)控制延遲值,使內(nèi)部時(shí)鐘與外部時(shí)鐘保持同步。

o4YBAGAY4s6ALfi4AABTh7A6WzE545.jpg

CFM式DLL工作示意圖

CC的方法則是比較內(nèi)外部時(shí)鐘的長(zhǎng)短,如果內(nèi)部時(shí)鐘周期短了,就將所少的延遲加到下一個(gè)內(nèi)部時(shí)鐘周期里,然后再與外部時(shí)鐘做比較,若是內(nèi)部時(shí)鐘周期長(zhǎng)了,就將多出的延遲從下一個(gè)內(nèi)部時(shí)鐘中刨除,如此往復(fù),最終使內(nèi)外時(shí)鐘同步。

pIYBAGAY4s6AJUoUAABeHh-KZ1o656.jpg

CC式DLL工作示意圖

CFM與CC各有優(yōu)缺點(diǎn),CFM的校正速度快,僅用兩個(gè)時(shí)鐘周期,但容易受到噪音干擾,并且如果測(cè)量失誤,則內(nèi)部的延遲就永遠(yuǎn)錯(cuò)下去了。CC的優(yōu)點(diǎn)則是更穩(wěn)定可靠,如果比較失敗,延遲受影響的只是一個(gè)數(shù)據(jù)(而且不會(huì)太嚴(yán)重),不會(huì)涉及到后面的延遲修正,但它的修正時(shí)間要比CFM長(zhǎng)。DLL功能在DDR SDRAM中可以被禁止,但僅限于除錯(cuò)與評(píng)估操作,正常工作狀態(tài)是自動(dòng)有效的。

o4YBAGAY4s-Aaq_SAADsek5qdz0845.jpg

3. 硬件介紹

開發(fā)板上使用了1個(gè)Micron DDR3的顆粒MT41J128M16HA, 總線寬度16bit,DDR3芯片的容量為2Gb。開發(fā)板板上對(duì)DDR3的地址線和控制線都做了端接電阻上拉到VTT電壓, 保證信號(hào)的質(zhì)量。在PCB的設(shè)計(jì)上, 完全遵照XILINX的DDR3設(shè)計(jì)規(guī)范, 嚴(yán)格保證等長(zhǎng)設(shè)計(jì)和阻抗控制。在進(jìn)行DDR3硬件設(shè)計(jì)時(shí),FPGA的DDR3管腳分配是要求的,而不能隨意分配。如果用戶自己實(shí)在不清楚怎么連接,那就請(qǐng)完全參考我們的原理圖來設(shè)計(jì)。

在PCB的設(shè)計(jì)上, 考慮高速信號(hào)的數(shù)據(jù)傳輸?shù)目煽啃? 走線上嚴(yán)格保證等長(zhǎng)設(shè)計(jì)和阻抗控制。開發(fā)板DDR部分的原理圖如下:

pIYBAGAY4s-ARdW4AAEX98xVQ08921.jpg

開發(fā)板DDR3

4. 程序設(shè)計(jì)

4.1 添加DDR控制器

1)首先在PDS環(huán)境里新建一個(gè)項(xiàng)目,取名為ddr_test。點(diǎn)擊菜單中的Tools下拉菜單下打開IP Compiler。

o4YBAGAY4tCAQF5vAACHhEqhEbM627.jpg

2)在彈出的界面下選擇菜單欄File下的Update;

pIYBAGAY4tGAM649AABpOFMuXK8614.jpg

3)點(diǎn)擊彈出界面中的選擇“+”, 然后添加DDR3 IP(ipsl_hmic_h_v1_1.iar),單擊Open后再單擊Update,再把界面關(guān)閉即可。

o4YBAGAY4tKAQTnFAABN66ckxGg733.jpg

4)可以看到左側(cè)已經(jīng)添加了新的IP“l(fā)ogos HMIC_H”,在右側(cè)取名ddr3_core后單擊Customize。

pIYBAGAY4tKAfFUlAAAeZcBM_fk044.jpg

5)在彈出的界面中Step1:BasicOptions中,DDR3的位置選擇Left (BANK L1+BANK L2),其它默認(rèn),

o4YBAGAY4tOAOzO2AAD-1diFuno291.jpg

DDR3設(shè)置

6)在Step2:Memory Options中,核對(duì)器件的型號(hào),其它默認(rèn);

pIYBAGAY4tOATIvvAABXZgD8sDY766.jpg

7)Step3:Interface Options和Step4:Interface summary中保持默認(rèn),并單擊Generate開始;

o4YBAGAY4tSAQsYYAAATnJKAkEY729.jpg

8)然后在彈出的提示框中選擇Yes,完成后關(guān)閉窗口;

pIYBAGAY4tWAeYJaAACI1OkdgiA359.jpg

9)完成后關(guān)閉這個(gè)工程,雙擊打開剛才用IP Compiler創(chuàng)建DDR3的example的工程,測(cè)試程序位于剛才工程的如下位置;

o4YBAGAY4taAQY3MAACsBvZf9GE652.jpg

10)接下來對(duì)DDR3進(jìn)行管腳約束,分配完成后進(jìn)行綜合布線后產(chǎn)生bit文件。

4.2 測(cè)試程序說明

本工程為基于 DDR3 硬核的單地址單步讀寫(讀-寫-讀-寫-讀循環(huán))用例。 用例中每次寫入一個(gè)地址的數(shù)據(jù),每次讀出一個(gè)地址的數(shù)據(jù)。 通過在 AXI 接口的 write 通道寫入數(shù)據(jù),在 AXI 接口的 read通道接收數(shù)據(jù)進(jìn)行數(shù)據(jù)比對(duì),若錯(cuò)誤, 輸出error。

本工程目錄結(jié)構(gòu)如下所示:

ipsl_hmemc_top_test

test_main_ctrl

test_wr_ctrl_128bit

test_rd_ctrl_128bit

ddr3_core

(1) ipsl_hmemc_top_test

頂層模塊,在該模塊中調(diào)用了test_main_ctrl、test_wr_ctrl_128bit、test_rd_ctrl_128bit、ddr3_core。

(2) test_main_ctrl

該模塊負(fù)責(zé)將用戶指令和模式轉(zhuǎn)化為內(nèi)部控制信號(hào),控制 test_wr_ctrl 模塊和 test_rd_ctrl 模塊的運(yùn)行狀態(tài)。

(3) test_wr_ctrl

該模塊根據(jù) test_main_ctrl 發(fā)出的控制信號(hào)將由 PRBS 產(chǎn)生的數(shù)據(jù)、地址按照 AXI4 時(shí)序發(fā)送到總線上。

(4) test_rd_ctrl

該模塊實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的讀出,并進(jìn)行校驗(yàn)判斷。

(5) ddr3_core

該模塊為 DDR3 硬核控制器模塊。

測(cè)試文件如圖所示:

5. 實(shí)驗(yàn)現(xiàn)象

把程序生成.sbit文件下載到FPGA中,檢查核心板上的LED1是否點(diǎn)亮, 如果點(diǎn)亮,則err_flag信號(hào)為低,說明DDR3的讀寫數(shù)據(jù)正確,如果一直熄滅,說明DDR3讀寫數(shù)據(jù)錯(cuò)誤,同時(shí)底板上的LED1、LED2、LED3熄滅,LED4閃爍。

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603420
  • DDR3
    +關(guān)注

    關(guān)注

    2

    文章

    276

    瀏覽量

    42275
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    712

    瀏覽量

    65344
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3025

    瀏覽量

    74056
  • 紫光同創(chuàng)
    +關(guān)注

    關(guān)注

    5

    文章

    85

    瀏覽量

    27508
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    國(guó)產(chǎn)FPGA介紹-紫光同創(chuàng)

    紫光同創(chuàng)紫光集團(tuán)旗下紫光國(guó)微的子公司,成立于2013年,有余年可編程邏輯器件研發(fā)經(jīng)歷,布局覆蓋高中低端
    發(fā)表于 01-24 10:45

    【PDF】C++ GUI Programming with Qt 4 中文版(第一第十章)目錄版

    C++ GUI Programming with Qt 4 中文版(第一第十章)目錄版附件:
    發(fā)表于 02-28 15:46

    自己編的信號(hào)與系統(tǒng)(西安電子科大版)第十章課后答案...

    分享 一下 自己編寫的信號(hào)與系統(tǒng)(西安電子科大版)的第十章課后習(xí)題的Matlab程序。
    發(fā)表于 11-21 13:06

    《從算法設(shè)計(jì)到硬線邏輯的實(shí)現(xiàn)》中第十章練習(xí)6-在Verilog H...

    在做夏宇聞教材《從算法設(shè)計(jì)到硬線邏輯的實(shí)現(xiàn)》中第十章練習(xí)6-在Verilog HDL中使用函數(shù)按原文編譯總是出錯(cuò),將[3:0]中的3改為大于3的值就沒錯(cuò)了,如[4:0].為什么呢?
    發(fā)表于 11-06 14:14

    明德?lián)P視頻分享點(diǎn)撥FPGA課程--第十章 ?GVIM的使用

    第十章GVIM的使用1. GVIM使用2http://yunpan.cn/cjZTiDA9pY56x訪問密碼 c359
    發(fā)表于 11-10 08:59

    《測(cè)控電路》習(xí)題完整參考答案(第十章

    《測(cè)控電路》習(xí)題完整參考答案(第十章).pdf
    發(fā)表于 05-07 11:43

    紫光同創(chuàng)FPGA入門指導(dǎo):DDR3 讀寫——紫光盤古系列50K開發(fā)板實(shí)驗(yàn)教程

    數(shù)據(jù)速率 800Mbps 一、實(shí)驗(yàn)要求 生成 DDR3 IP 官方例程,實(shí)現(xiàn) DDR3讀寫控制,了解其工作原理和用戶接口。 二、DDR3
    發(fā)表于 05-19 14:28

    紫光同創(chuàng)FPGA入門指導(dǎo):DDR3 讀寫——紫光盤古系列50K開發(fā)板實(shí)驗(yàn)教程

    一、實(shí)驗(yàn)要求 生成 DDR3 IP 官方例程,實(shí)現(xiàn) DDR3讀寫控制,了解其工作原理和用戶接口。 二、DDR3 控制器簡(jiǎn)介 PGL50H
    發(fā)表于 05-31 17:45

    HCIE復(fù)習(xí)資料第十章 特性

    HCIE復(fù)習(xí)資料第十章 特性,HCIE全套復(fù)習(xí)資料
    發(fā)表于 05-10 17:22 ?0次下載

    《測(cè)控電路》習(xí)題完整參考答案(第十章

    《測(cè)控電路》習(xí)題完整參考答案(第十章
    發(fā)表于 02-14 17:01 ?0次下載

    ddr3讀寫分離方法有哪些?

    DDR3是目前DDR的主流產(chǎn)品,DDR3讀寫分離作為DDR最基本也是最常用的部分,本文主要闡述DDR3
    的頭像 發(fā)表于 11-06 13:44 ?8861次閱讀
    <b class='flag-5'>ddr3</b>的<b class='flag-5'>讀寫</b>分離方法有哪些?

    基于FPGADDR3多端口讀寫存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)

    為了解決視頻圖形顯示系統(tǒng)中多個(gè)端口訪問DDR3的數(shù)據(jù)存儲(chǔ)沖突,設(shè)計(jì)并實(shí)現(xiàn)了基于FPGADDR3存儲(chǔ)管理系統(tǒng)。DDR3存儲(chǔ)器控制模塊使用MIG生成D
    發(fā)表于 11-18 18:51 ?7138次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>讀寫</b>存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)

    基于AXI總線的DDR3讀寫測(cè)試

    本文開源一個(gè)FPGA項(xiàng)目:基于AXI總線的DDR3讀寫。之前的一篇文章介紹了DDR3簡(jiǎn)單用戶接口的讀寫方式:《
    的頭像 發(fā)表于 09-01 16:20 ?4564次閱讀
    基于AXI總線的<b class='flag-5'>DDR3</b><b class='flag-5'>讀寫</b><b class='flag-5'>測(cè)試</b>

    基于FPGADDR3讀寫測(cè)試

    本文介紹一個(gè)FPGA開源項(xiàng)目:DDR3讀寫。該工程基于MIG控制器IP核對(duì)FPGA DDR3實(shí)現(xiàn)讀寫
    的頭像 發(fā)表于 09-01 16:23 ?1668次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>DDR3</b><b class='flag-5'>讀寫</b><b class='flag-5'>測(cè)試</b>

    闡述DDR3讀寫分離的方法

    DDR3是2007年推出的,預(yù)計(jì)2022年DDR3的市場(chǎng)份額將降至8%或以下。但原理都是一樣的,DDR3讀寫分離作為DDR最基本也是最常用
    的頭像 發(fā)表于 10-18 16:03 ?1079次閱讀
    闡述<b class='flag-5'>DDR3</b><b class='flag-5'>讀寫</b>分離的方法