




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【紫光同創(chuàng)國產FPGA教程】【第十章】DDR3讀寫測試實驗
原創(chuàng)聲明:本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權歸本公司所有,如需轉載,需授權并注明出處()。適用于板卡型號:PGL22G/PGL12G1.實驗簡介本實驗為后續(xù)使用DDR3內存的實驗做鋪墊,通過循環(huán)讀寫DDR3內存,了解其工作原理和DDR3控制器的寫法,由于DDR3控制復雜,控制器的編寫難度高,這里筆者介紹采用第三方的DDR3IP控制器情況下的應用,是后續(xù)音頻、視頻等需要用到DDR3實驗的基礎。2.實驗原理DDRSDRAM全稱為DoubleDataRateSDRAM,中文名為“雙倍數據流SDRAM”。DDRSDRAM在原有的SDRAM的基礎上改進而來。也正因為如此,DDR能夠憑借著轉產成本優(yōu)勢來打敗昔日的對手RDRAM,成為當今的主流。本文只著重講DDR的原理和DDRSDRAM相對于傳統(tǒng)SDRAM(又稱SDRSDRAM)的不同。(一)DDR的基本原理有很多文章都在探討DDR的原理,但似乎也不得要領,甚至還帶出一些錯誤的觀點。首先我們看看一張DDR正規(guī)的時序圖。從中可以發(fā)現(xiàn)它多了兩個信號:CLK#與DQS,CLK#與正常CLK時鐘相位相反,形成差分時鐘信號。而數據的傳輸在CLK與CLK#的交叉點進行,可見在CLK的上升與下降沿(此時正好是CLK#的上升沿)都有數據被觸發(fā),從而實現(xiàn)DDR。在此,我們可以說通過差分信號達到了DDR的目的,甚至講CLK#幫助了第二個數據的觸發(fā),但這只是對表面現(xiàn)象的簡單描述,從嚴格的定義上講并不能這么說。之所以能實現(xiàn)DDR,還要從其內部的改進說起。DDR內存芯片的內部結構圖這是一顆128Mbit的內存芯片,從圖中可以看出來,白色區(qū)域內與SDRAM的結構基本相同,但請注意灰色區(qū)域,這是與SDRAM的不同之處。首先就是內部的L-Bank規(guī)格。SDRAM中L-Bank存儲單元的容量與芯片位寬相同,但在DDRSDRAM中并不是這樣,存儲單元的容量是芯片位寬的一倍,所以在此不能再套用講解SDRAM時“芯片位寬=存儲單元容量”的公式了。也因此,真正的行、列地址數量也與同規(guī)格SDRAM不一樣了?,F(xiàn)在大家基本明白DDRSDRAM的工作原理了吧,這種內部存儲單元容量(也可以稱為芯片內部總線位寬)=2×芯片位寬(也可稱為芯片I/O總線位寬)的設計,就是所謂的兩位預?。?-bitPrefetch),有的公司則貼切的稱之為2-nPrefetch(n代表芯片位寬)。(二)DDRSDRAM與SDRAM的不同DDRSDRAM與SDRAM的不同主要體現(xiàn)在以下幾個方面。DDRSDRAM與SDRAM的主要不同對比表DDRSDRAM與SDRAM一樣,在開機時也要進行MRS,不過由于操作功能的增多,DDRSDRAM在MRS之前還多了一EMRS階段(ExtendedModeRegisterSet,擴展模式寄存器設置),這個擴展模式寄存器控制著DLL的有效/禁止、輸出驅動強度、QFC有效/無效等。由于EMRS與MRS的操作方法與SDRAM的MRS大同小異,在此就不再列出具體的模式表了,有興趣的話可查看相關的DDR內存資料。下面我們就著重說說DDRSDRAM的新設計與新功能。1、差分時鐘差分時鐘(參見上文“DDRSDRAM讀操作時序圖”)是DDR的一個必要設計,但CK#的作用,并不能理解為第二個觸發(fā)時鐘(你可以在講述DDR原理時簡單地這么比喻),而是起到觸發(fā)時鐘校準的作用。由于數據是在CK的上下沿觸發(fā),造成傳輸周期縮短了一半,因此必須要保證傳輸周期的穩(wěn)定以確保數據的正確傳輸,這就要求CK的上下沿間距要有精確的控制。但因為溫度、電阻性能的改變等原因,CK上下沿間距可能發(fā)生變化,此時與其反相的CK#就起到糾正的作用(CK上升快下降慢,CK#則是上升慢下降快)。而由于上下沿觸發(fā)的原因,也使CL=1.5和2.5成為可能,并容易實現(xiàn)。與CK反相的CK#保證了觸發(fā)時機的準確性。2、數據選取脈沖(DQS)總結DQS:它是雙向信號;讀內存時,由內存產生,DQS的沿和數據的沿對齊;寫入內存時,由外部產生,DQS的中間對應數據的沿,即此時DQS的沿對應數據最穩(wěn)定的中間時刻。DQS是DDRSDRAM中的重要功能,它的功能主要用來在一個時鐘周期內準確的區(qū)分出每個傳輸周期,并便于接收方準確接收數據。每一顆芯片都有一個DQS信號線,它是雙向的,在寫入時它用來傳送由北橋發(fā)來的DQS信號,讀取時,則由芯片生成DQS向北橋發(fā)送。完全可以說,它就是數據的同步信號。在讀取時,DQS與數據信號同時生成(也是在CK與CK#的交叉點)。而DDR內存中的CL也就是從CAS發(fā)出到DQS生成的間隔,數據真正出現(xiàn)在數據I/O總線上相對于DQS觸發(fā)的時間間隔被稱為tAC。注意,這與SDRAM中的tAC的不同。實際上,DQS生成時,芯片內部的預取已經完畢了,tAC是指上文結構圖中灰色部分的數據輸出時間,由于預取的原因,實際的數據傳出可能會提前于DQS發(fā)生(數據提前于DQS傳出)。由于是并行傳輸,DDR內存對tAC也有一定的要求,對于DDR266,tAC的允許范圍是±0.75ns,對于DDR333,則是±0.7ns,有關它們的時序圖示見前文,其中CL里包含了一段DQS的導入期。前文已經說了DQS是為了保證接收方的選擇數據,DQS在讀取時與數據同步傳輸,那么接收時也是以DQS的上下沿為準嗎?不,如果以DQS的上下沿區(qū)分數據周期的危險很大。由于芯片有預取的操作,所以輸出時的同步很難控制,只能限制在一定的時間范圍內,數據在各I/O端口的出現(xiàn)時間可能有快有慢,會與DQS有一定的間隔,這也就是為什么要有一個tAC規(guī)定的原因。而在接收方,一切必須保證同步接收,不能有tAC之類的偏差。這樣在寫入時,芯片不再自己生成DQS,而以發(fā)送方傳來的DQS為基準,并相應延后一定的時間,在DQS的中部為數據周期的選取分割點(在讀取時分割點就是上下沿),從這里分隔開兩個傳輸周期。這樣做的好處是,由于各數據信號都會有一個邏輯電平保持周期,即使發(fā)送時不同步,在DQS上下沿時都處于保持周期中,此時數據接收觸發(fā)的準確性無疑是最高的。在寫入時,以DQS的高/低電平期中部為數據周期分割點,而不是上/下沿,但數據的接收觸發(fā)仍為DQS的上/下沿。3、寫入延遲在上面的DQS寫入時序圖中,可以發(fā)現(xiàn)寫入延遲已經不是0了,在發(fā)出寫入命令后,DQS與寫入數據要等一段時間才會送達。這個周期被稱為DQS相對于寫入命令的延遲時間(tDQSS,WRITECommandtothefirstcorrespondingrisingedgeofDQS),對于這個時間大家應該很好理解了。為什么要有這樣的延遲設計呢?原因也在于同步,畢竟一個時鐘周期兩次傳送,需要很高的控制精度,它必須要等接收方做好充分的準備才行。tDQSS是DDR內存寫入操作的一個重要參數,太短的話恐怕接受有誤,太長則會造成總線空閑。tDQSS最短不能小于0.75個時鐘周期,最長不能超過1.25個時鐘周期。有人可能會說,如果這樣,DQS不就與芯片內的時鐘不同步了嗎?對,正常情況下,tDQSS是一個時鐘周期,但寫入時接受方的時鐘只用來控制命令信號的同步,而數據的接受則完全依靠DQS進行同步,所以DQS與時鐘不同步也無所謂。不過,tDQSS產生了一個不利影響——讀后寫操作延遲的增加,如果CL=2.5,還要在tDQSS基礎上加入半個時鐘周期,因為命令都要在CK的上升沿發(fā)出。當CL=2.5時,讀后寫的延遲將為tDQSS+0.5個時鐘周期(圖中BL=2)另外,DDR內存的數據真正寫入由于要經過更多步驟的處理,所以寫回時間(tWR)也明顯延長,一般在3個時鐘周期左右,而在DDR-Ⅱ規(guī)范中更是將tWR列為模式寄存器的一項,可見它的重要性。4、突發(fā)長度與寫入掩碼在DDRSDRAM中,突發(fā)長度只有2、4、8三種選擇,沒有了隨機存取的操作(突發(fā)長度為1)和全頁式突發(fā)。這是為什么呢?因為L-Bank一次就存取兩倍于芯片位寬的數據,所以芯片至少也要進行兩次傳輸才可以,否則內部多出來的數據怎么處理?而全頁式突發(fā)事實證明在PC內存中是很難用得上的,所以被取消也不希奇。但是,突發(fā)長度的定義也與SDRAM的不一樣了(見本章節(jié)最前那幅DDR簡示圖),它不再指所連續(xù)尋址的存儲單元數量,而是指連續(xù)的傳輸周期數,每次是一個芯片位寬的數據。對于突發(fā)寫入,如果其中有不想存入的數據,仍可以運用DM信號進行屏蔽。DM信號和數據信號同時發(fā)出,接收方在DQS的上升與下降沿來判斷DM的狀態(tài),如果DM為高電平,那么之前從DQS中部選取的數據就被屏蔽了。有人可能會覺得,DM是輸入信號,意味著芯片不能發(fā)出DM信號給北橋作為屏蔽讀取數據的參考。其實,該讀哪個數據也是由北橋芯片決定的,所以芯片也無需參與北橋的工作,哪個數據是有用的就留給北橋自己去選吧。5、延遲鎖定回路(DLL)DDRSDRAM對時鐘的精確性有著很高的要求,而DDRSDRAM有兩個時鐘,一個是外部的總線時鐘,一個是內部的工作時鐘,在理論上DDRSDRAM這兩個時鐘應該是同步的,但由于種種原因,如溫度、電壓波動而產生延遲使兩者很難同步,更何況時鐘頻率本身也有不穩(wěn)定的情況(SDRAM也內部時鐘,不過因為它的工作/傳輸頻率較低,所以內外同步問題并不突出)。DDRSDRAM的tAC就是因為內部時鐘與外部時鐘有偏差而引起的,它很可能造成因數據不同步而產生錯誤的惡果。實際上,不同步就是一種正/負延遲,如果延遲不可避免,那么若是設定一個延遲值,如一個時鐘周期,那么內外時鐘的上升與下降沿還是同步的。鑒于外部時鐘周期也不會絕對統(tǒng)一,所以需要根據外部時鐘動態(tài)修正內部時鐘的延遲來實現(xiàn)與外部時鐘的同步,這就是DLL的任務。DLL不同于主板上的PLL,它不涉及頻率與電壓轉換,而是生成一個延遲量給內部時鐘。目前DLL有兩種實現(xiàn)方法,一個是時鐘頻率測量法(CFM,ClockFrequencyMeasurement),一個是時鐘比較法(CC,ClockComparator)。CFM是測量外部時鐘的頻率周期,然后以此周期為延遲值控制內部時鐘,這樣內外時鐘正好就相差了一個時鐘周期,從而實現(xiàn)同步。DLL就這樣反復測量反復控制延遲值,使內部時鐘與外部時鐘保持同步。CFM式DLL工作示意圖CC的方法則是比較內外部時鐘的長短,如果內部時鐘周期短了,就將所少的延遲加到下一個內部時鐘周期里,然后再與外部時鐘做比較,若是內部時鐘周期長了,就將多出的延遲從下一個內部時鐘中刨除,如此往復,最終使內外時鐘同步。CC式DLL工作示意圖CFM與CC各有優(yōu)缺點,CFM的校正速度快,僅用兩個時鐘周期,但容易受到噪音干擾,并且如果測量失誤,則內部的延遲就永遠錯下去了。CC的優(yōu)點則是更穩(wěn)定可靠,如果比較失敗,延遲受影響的只是一個數據(而且不會太嚴重),不會涉及到后面的延遲修正,但它的修正時間要比CFM長。DLL功能在DDRSDRAM中可以被禁止,但僅限于除錯與評估操作,正常工作狀態(tài)是自動有效的。3.硬件介紹開發(fā)板上使用了1個MicronDDR3的顆粒MT41J128M16HA,總線寬度16bit,DDR3芯片的容量為2Gb。開發(fā)板板上對DDR3的地址線和控制線都做了端接電阻上拉到VTT電壓,保證信號的質量。在PCB的設計上,完全遵照XILINX的DDR3設計規(guī)范,嚴格保證等長設計和阻抗控制。在進行DDR3硬件設計時,F(xiàn)PGA的DDR3管腳分配是要求的,而不能隨意分配。如果用戶自己實在不清楚怎么連接,那就請完全參考我們的原理圖來設計。在PCB的設計上,考慮高速信號的數據傳輸的可靠性,走線上嚴格保證等長設計和阻抗控制。開發(fā)板DDR部分的原理圖如下:開發(fā)板DDR34.程序設計4.1添加DDR控制器1)首先在PDS環(huán)境里新建一個項目,取名為ddr_test。點擊菜單中的Tools下拉菜單下打開IPCompiler。2)在彈出的界面下選擇菜單欄File下的Update;3)點擊彈出界面中的選擇“+”,然后添加DDR3IP(ipsl_hmic_h_v1_1.iar),單擊Open后再單擊Update,再把界面關閉即可。4)可以看到左側已經添加了新的IP“l(fā)ogosHMIC_H”,在右側取名ddr3_core后單擊Customize。5)在彈出的界面中Step1:BasicOptions中,DDR3的位置選擇Left(BANKL1+BANKL2),其它默認,DDR3設置6)在Step2:MemoryOptions中,核對器件的型號,其它默認;7)Step3:InterfaceOptions和Step4:Interfacesummary中保持默認,并單擊Generate開始;8)然后在彈出的提示框中選擇Yes,完成后關閉窗口;9)完成后關閉這個工程,雙擊打開剛才用IPCompiler創(chuàng)建DDR3的example的工程,測試程序位于剛才工程的如下位置;10)接下來對DDR3進行管腳約束,分配完成后進行綜合布線后產生bit文件。4.2測試程序說明本工程為基于DDR3硬核的單地址單步讀寫(讀-寫-讀-寫-讀循環(huán))用例。用例中每次寫入一個地址的數據,每次讀出一個地址的數據。通過在AXI接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圓和扇形(教學設計)-2024-2025學年六年級上冊數學冀教版
- 2025年中國枕頭市場評估分析及發(fā)展前景調研戰(zhàn)略研究報告
- 新型儲能制造業(yè)的市場需求分析
- 2025年度礦山勞務承包合同(含安全生產條款)
- 地方高校轉型的背景與意義
- 2025年度生態(tài)農業(yè)園租地協(xié)議書合同
- 肩離斷機械假肢行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 16獎勵一下自己(教學設計)-部編版道德與法治二年級下冊
- 汽車銷售居間合同委托書
- 習作:續(xù)寫故事 (教學設計)-2024-2025學年統(tǒng)編版語文三年級上冊
- 關于投資協(xié)議書范本5篇
- 《反電信網絡詐騙法》知識考試題庫150題(含答案)
- 2025年上海市各區(qū)初三一模語文試卷(打包16套無答案)
- 2025年度新能源汽車充電站運營權轉讓合同樣本4篇
- 2024 原發(fā)性肝癌診療指南 更新要點課件
- 2025年春運出行預測報告-高德地圖
- 《圓柱與圓錐-圓柱的表面積》(說課稿)-2023-2024學年六年級下冊數學人教版
- 第5課 隋唐時期的民族交往與交融 課件(23張) 2024-2025學年統(tǒng)編版七年級歷史下冊
- 【8語期末】蕪湖市2024-2025學年八年級上學期期末考試語文試題
- 2024年江蘇農牧科技職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 統(tǒng)編版五年級語文下冊1古詩三首《四時田園雜興(其三十一)》課件
評論
0/150
提交評論