介紹下用MIG生成的DDR2SDRAM控制器_第1頁(yè)
介紹下用MIG生成的DDR2SDRAM控制器_第2頁(yè)
介紹下用MIG生成的DDR2SDRAM控制器_第3頁(yè)
介紹下用MIG生成的DDR2SDRAM控制器_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MIG2.0是Xilinx內(nèi)嵌在ISE中用來(lái)生成各種IP核的軟件工具,可以用它來(lái)直接生成DDR2控制器設(shè)計(jì)模塊,模塊包含可自由修改的HDL源代碼和約束文件。用戶可以在MIG的GUI圖形界面根據(jù)所選的存儲(chǔ)器件選擇對(duì)應(yīng)模板、總線寬度和速度級(jí)別,并設(shè)置CAS延遲、突發(fā)長(zhǎng)度、引腳分配等關(guān)鍵參數(shù)。如果所選器件與MIG所列模板不相符,可在代碼生成后靈活修改這些代碼。DDR2SDRAM控制器參考設(shè)計(jì)主要包含四個(gè)模塊:Infrastructuremodule(基礎(chǔ)卞II塊卜Data_Pathmodule(數(shù)據(jù)通道模塊卜Controllermodule(控制模塊)和IOBsmodule(輸入輸出接口模塊)。In

2、frastructuremodule產(chǎn)生控制器工作的時(shí)鐘和復(fù)位信號(hào),時(shí)鐘信號(hào)由內(nèi)部的DCM(時(shí)鐘管理單元)對(duì)外部輸入的時(shí)鐘倍頻產(chǎn)生,模塊還包含一個(gè)延遲校準(zhǔn)監(jiān)視器,用來(lái)校準(zhǔn)讀數(shù)據(jù)選通脈沖(DQS)對(duì)讀數(shù)據(jù)(DQ)的延遲,使讀數(shù)據(jù)選通脈沖邊沿正確對(duì)齊DQ有效窗口的中間位置,以便正確鎖存讀數(shù)據(jù)。Data_Pathmodule負(fù)責(zé)傳輸數(shù)據(jù),在寫操作時(shí)將寫數(shù)據(jù)傳送給DDR2SDRAM;在讀操作時(shí)將DDR2發(fā)送過來(lái)的數(shù)據(jù)寄存并同步到系統(tǒng)時(shí)鐘去。Controllermodule負(fù)責(zé)DDR2SDRAM的上電初始化,在初始化后接收用戶的指令并將其譯碼產(chǎn)生讀寫和相關(guān)的控制信號(hào),此外控制器也為其他模塊提供控制信號(hào)以

3、輔助這些模塊完成其功能。控制器所有的輸入/輸出信號(hào)都在IOBsmodule中被接收或者發(fā)送,而所有地址和控制信號(hào)在IOB中都用觸發(fā)器打一拍后再被送出,以最大限度的滿足DDR2SDRAM的建立和保持時(shí)間。用戶接口信號(hào)信號(hào)名稱力向描述reset_inI系統(tǒng)復(fù)位user_input_data31:0I寫數(shù)據(jù),DQS的上升沿傳送寫數(shù)據(jù)的高16位,DQS的下降沿傳送寫數(shù)據(jù)的低16位user_data_mask3:0I寫數(shù)據(jù)的數(shù)據(jù)屏蔽位,高2位負(fù)責(zé)上升沿?cái)?shù)據(jù)的屏蔽,低2位負(fù)責(zé)卜.降沿?cái)?shù)據(jù)的屏蔽user_output_data31:0O讀出數(shù)據(jù)user_data_validI為1時(shí)代表讀出數(shù)據(jù)有效user_

4、input_address22:0I行列地址,行地址在身位,列地址在低位user_bank_address1:0IDDR2SDRAM的bank地址user_command_reg3:0IDDR2控制器的命令寄存器user_cmd_ackI為0代表允許用戶發(fā)出命令init_valI為1代表初始化操作已完成burst_doneO為1時(shí)終止突發(fā)操作rst_dqs_div_inI在讀操作日被置0,由控制器自動(dòng)產(chǎn)生,用戶無(wú)需輸入rst_dqs_div_outO在外部與rst_dqs_div_in連接系統(tǒng)上電后,用戶發(fā)出初始化命令,控制器負(fù)責(zé)對(duì)DDR2進(jìn)行寄存器的配置及其他初始化操作,待初始化完成后,控制

5、器置init_val為1,然后用戶就可以繼續(xù)對(duì)DDR2SDRAM進(jìn)行讀寫等操作。用戶命令user_command_reg3:0描述0000空操作0010初始化命令0100寫命令0110讀命令其他保留在寫DDR2的過程中,用戶將寫命令、要寫入的數(shù)據(jù)和目的地址通過用戶接口傳送給控制器,如圖所示。寫命令在與系統(tǒng)時(shí)鐘有180。相位差的clk180時(shí)鐘的上升沿發(fā)送,控制器在clk180的上升沿置user_cmd_ack為1,通知用戶寫命令已收到。當(dāng)突發(fā)長(zhǎng)度(BL)為4時(shí),每個(gè)目的地址對(duì)應(yīng)4個(gè)寫數(shù)據(jù),每個(gè)時(shí)鐘對(duì)應(yīng)2個(gè)(32位)的寫數(shù)據(jù)。要終止突發(fā)寫操作,需要將burst_done信號(hào)在最后一個(gè)地址發(fā)出后置

6、1,并保證兩個(gè)時(shí)鐘周期有效,控制器在檢測(cè)到burst_done有效后將終止寫操作,并發(fā)出寫后自動(dòng)預(yù)充電命令對(duì)當(dāng)前工作行進(jìn)行預(yù)充電。預(yù)充電結(jié)束后,控制器將usr_cmd_ack置0,告知用戶可以繼續(xù)對(duì)DDR2進(jìn)行讀寫操作。在tDDR2的過程中,用戶將讀命令和目的地址通過用戶接口傳送給控制器,如圖所示。讀命令在時(shí)鐘clk180的上升沿發(fā)送,控制器接收到讀命令后置user_cmd_ack為1,通知用戶讀命令已收到。控制器在采集到讀數(shù)據(jù)后,置user_data_valid信號(hào)為1,告知用戶讀取。要終止突發(fā)讀操作,具體操作與終止突發(fā)寫操作同,在此就不再贅述。需要注意的是rst_dqs_div_in(輸入

7、信號(hào))和rst_dqs_div_out(輸出信號(hào))是參考設(shè)計(jì)額外引出的一根外部環(huán)回信號(hào),rst_dqs_div_out由控制器產(chǎn)生,經(jīng)外部走線延遲后送給rst_dqs_div_in,走線長(zhǎng)度是DQS和CK走線長(zhǎng)度之和,用以補(bǔ)償DQS和CK在PCB走線時(shí)所帶來(lái)的延遲。5月31日使用ISE的MIG工具實(shí)現(xiàn)DDR次存條的控制斷斷續(xù)續(xù)搞了半年的DDR2控制,最近總算可以肯定地說(shuō),卓見成效。于是決定靜下心來(lái)好好的紀(jì)錄下一些心得。先總體的講一下大概的要點(diǎn):1:ddr2的硬件要求很高,針對(duì)由MIG生成的congtroller,所對(duì)應(yīng)的管腳要經(jīng)過初級(jí)程序驗(yàn)證,若隨意分配會(huì)導(dǎo)致以后的約束不能通過。2:user_

8、data_valid信號(hào)相當(dāng)關(guān)鍵,時(shí)刻注意它的波形。3:由于涉及上升沿和下降沿同時(shí)讀取數(shù)據(jù),對(duì)時(shí)鐘的穩(wěn)定性要求很高。4:dqs_delay這個(gè)信號(hào)是用來(lái)讀取數(shù)據(jù)所用的。 該信號(hào)不穩(wěn)定則讀到的數(shù)據(jù)有偏差。 值得注意的是, 若用ISE來(lái)綜合的話,針對(duì)dqs_delay的程序被完全被優(yōu)化,導(dǎo)致程序不能穩(wěn)定運(yùn)行。對(duì)于這個(gè)問題有兩種解決方法:1,用高頻時(shí)鐘對(duì)該信號(hào)進(jìn)行延時(shí);2,通過synplify綜合工具來(lái)綜合。5:由于我所用的是2GByte的內(nèi)存條,所以還有一個(gè)關(guān)鍵問題。就是它同時(shí)有8組dqs信號(hào),每一組的數(shù)據(jù)必須單獨(dú)調(diào)試,每一組的dqs_delay都存在差異。這是一個(gè)令人頭大的事。暫時(shí)先列出這些我遇

9、到過的關(guān)鍵問題。等接下來(lái)有力氣慢慢補(bǔ)全。第一步:根據(jù)所用芯片的參數(shù),用ISE9.2及以上版本生成控制DDR2的IP核;生成IP核后,到相應(yīng)的同名目錄下找到相應(yīng)的VHDL文件,這些VHDL文件將是進(jìn)行各種類型操作的原始材料,所有進(jìn)一步的操作將通過修改相應(yīng)的文件來(lái)實(shí)現(xiàn)。值得一提,用該種方式產(chǎn)生的文件只是對(duì)應(yīng)對(duì)單獨(dú)芯片的控制,若需要對(duì)多個(gè)芯片多個(gè)module的控制,需要另外增加相應(yīng)的控制信號(hào)。第二步:明確所用存儲(chǔ)芯片的數(shù)量及結(jié)構(gòu)。這邊舉一個(gè)2G的DDR2的例子,共由16塊DDR2的芯片組成,分為兩組,每組由8塊芯片并聯(lián)而成,使數(shù)據(jù)寬度變?yōu)?4位,而相應(yīng)的兩組module則由兩根片選信號(hào)線CS1,CS2來(lái)控制。單個(gè)芯片主要參數(shù)為:地址線14位(列地址為0-9,行地址為0-13);bank3位(共8個(gè)bank)。第三步:假設(shè)這里要實(shí)現(xiàn)的目的是對(duì)2個(gè)G的存儲(chǔ)器存滿后,順序讀出。則對(duì)生成的IP核的修改,主要如下:A:把用于仿真的testbench的文件可以搬過來(lái),用于產(chǎn)生命令控制信號(hào),及產(chǎn)生相應(yīng)地址。B:增加數(shù)據(jù)寬度。增加數(shù)據(jù)寬度后,相應(yīng)的DQS信號(hào)變成8個(gè),這里容易產(chǎn)生新的問題。原程序在使用DQS時(shí),對(duì)應(yīng)的dqs_delay子程序被完全綜合掉了,所以需要另外自己做一個(gè)產(chǎn)生時(shí)延的程不,產(chǎn)生新的dqs_d

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論