999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Nios Ⅱ的DDR SDRAM控制器的相關技術研究與實現

2007-12-31 00:00:00劉景寧李開君
計算機應用研究 2007年12期

摘要:在介紹DDR SDRAM工作原理的基礎上,提出了一種DDR SDRAM控制器的實現方法。先說明采用SOPC的技術控制DDR工作的方式,并主要解決DDR存儲控制器的高頻穩定工作的關鍵問題,再通過軟件仿真和硬件下載測試的方式進行驗證。

關鍵詞:Nios Ⅱ; DDR SDRAM控制器; 重同步; 相移

中圖分類號:TP332.3文獻標志碼:A

文章編號:1001-3695(2007)12-0241-03

0引言

DDR SDRAM采用雙數據率技術[1],支持在時鐘的上升沿和下降沿分別采樣數據,從而有效提高了數據傳輸率,其帶寬最大可以達到SDRAM的兩倍。在嵌入式系統領域,隨著處理算法越來越復雜,處理速度越來越快,DDR SDRAM (簡稱DDR)的快速和大容量的優點在很大程度上彌補了片內存儲器容量不足和SDR SDARM速率不夠的缺陷。課題組正在研究的嵌入式光纖通道控制器作為OBS(object-based storage,對象存儲)控制器的主要組成部分,是基于Nios Ⅱ軟核處理器并配有各種必要外圍組件的可編程片上系統。其結構框圖如圖1所示。FC(fiber channel,光纖通道)控制器硬件邏輯部分完成FC1層編碼解碼,以及FC2層中關于幀的收發、緩沖區流量控制功能。固件部分完成FC2層的關于幀的形成與解析,幀、序列、交換的管理,FC3的鏈路服務和FC4層應用部分的全部功能。將硬件邏輯部分自定義成用戶外設,FC接口定義為Nios Ⅱ系統中的一個外圍組件,其位置如圖1左上方所示。對象存儲控制器通過千兆以太網接口接收到來自于IP網絡的基于對象的SCSI的命令或數據后,將其轉換為基于塊的SCSI的命令或數據,提交給FC接口發送到存儲區域網絡中;對象存儲控制器通過FC接口接收到來自于存儲區域網絡的基于塊的SCSI的命令或數據后,會將其轉換為于對象的SCSI的命令或數據,提交給千兆以太網接口發送到IP網絡中去。

基于塊和基于對象的命令或數據之間的復雜轉換執行算法需要系統內存DDR具有大容量和高頻率的性能,以提高整個系統的處理能力。一般嵌入式系統的DDR只能在133 MHz的時鐘頻率下穩定工作,這在一定程度上影響了整個系統的處理速度。因此,200 MHz高頻的DDR在系統中的作用也就變得相當重要。如何使數據的采樣時鐘在上升沿和下降沿分別采樣數據后,經過一系列延時仍能夠滿足DDR時序要求,并能精確地控制DDR的數據采樣,使系統正常穩定工作呢?解決DDR控制器各個時鐘的協同工作就是問題的關鍵所在,這也是DDR控制器較普通的SDRAM控制器更難以設計的地方。本文在Altera公司的FPGA芯片上完成DDR控制器的設計,解決了微處理器與DDR之間的接口問題,而同級別的Xilinx公司的Virtex-Ⅱ型FPGA目前還不能提供166 MHz的解決方案。

1DDR的工作原理簡介

圖2是DDR控制器的工作框圖。DDR控制器由四個模塊構成,即控制接口模塊、命令模塊、數據通路模塊和時序模塊。控制接口模塊從主機接收命令和地址,它在時鐘驅動下,譯碼并將其請求發送給命令模塊;命令模塊從控制接口模塊接收到命令和譯碼地址后將會生成適當的控制信號(RAS_N、WE_N等)送到DDR中,同時向控制模塊發響應信息;數據通道模塊為DDR與CPU之間提供數據接口,它會在讀寫命令出現時處理數據。讀寫操作的不同之處是寫操作時DDR控制器需要產生數據選通信號DQS。這幾個模塊能正常協調工作的關鍵是時序模塊要能夠準確地給出它們需要的時鐘。因此時序模塊的優化設計顯得尤為重要。

2DDR SDRAM控制器的高頻硬件實現

2.1SOPC相關技術

片上可編程系統SOPC是Altera公司提出的一種靈活、高效的片上系統設計方案[3]。它將Nios Ⅱ處理器、存儲器、I/O等系統設計需要的器件集成到一個可編程邏輯器件上,構成一個可編程的SOC。Nios Ⅱ處理器是Altera公司設計的一款基于FPGA的32位RISC嵌入式軟核處理器,具有32位指令集、數據通路及地址空間[4]。Nios Ⅱ系統采用Altera公司設計的一套Avalon總線交換結構[5],即總線上的所有信號均與系統時鐘同步,地址、數據和控制信號使用獨立的端口。基于Avalon總線的主設備與從屬設備的交互采用從端仲裁技術,即在多個主設備試圖訪問同一個從屬設備時,由從設備決定哪個主設備獲得訪問權,無須暫停CPU而允許多個主設備控制器真正地同步操作,如DMA。可利用SOPC的這些技術優勢,搭建可以正常運行在200 MHz頻率下的DDR的硬件系統。

2.2DDR控制器時序模塊的優化

嵌入式光纖通道控制器在Altera公司的Stratix GX開發板[6]上實現。開發板的核心芯片是EP1SGX40GF1020C5,是一款帶有串行收發器的高端芯片。開發板上配有的DDR存儲器是Micron公司的Unbuffered DIMM型的存儲器。其主要性能參數是容量256 MB,最高工作頻率200 MHz(數據速率400 Mbps)。DDR控制器硬件實現的示意圖如圖3所示。

圖3左邊的PLL(phase-locked loop,鎖相環)模塊部分,向DDR控制器系統和反饋模塊提供時鐘;右邊部分是帶有DDR控制器的Nios Ⅱ系統,主要功能是給外部DDR存儲器提供時鐘信號、控制信號和數據讀寫采樣信號。

Stratix系列的芯片需要自行設計一個DLL(delay-locked loop)延遲鎖相環參考時鐘dqs_ref_clk來驅動反饋電路,才能使DDR控制器正常工作,如圖3的DLL模塊部分。因為在Nios Ⅱ系統中有一個stratix_dll_control的反饋信號。該信號可以讓DLL的參考時鐘在輸出6 bit的dqs_delay指令到存儲器時時鐘惟一。

開發板上面提供的系統時鐘是33.33 MHz。如果直接提供給Stratix GX芯片使用,是不能滿足高頻DDR工作的時鐘要求的。為了讓DDR工作在200 MHz的頻率下,需要有能夠提供200 MHz時鐘輸出的穩定時鐘源。在Stratix GX芯片的內部資源中, PLL鎖相環能完成提供各種時鐘的功能。它提供幾種輸出時鐘,分別用做Nios Ⅱ處理器的工作時鐘C0,用來提供給寫數據的write_clk控制信號的時鐘C1;用做resynch_clk的時鐘C2,給clk_ddr和dll_dqsref模塊輸入的時鐘C3。時鐘C0和DDR時鐘C3均與時鐘源同步,只需進行倍頻處理就可以滿足要求。

如圖3中PLL的C1是一個相位為-90°的時鐘。因為DDR是在FPGA芯片之外的存儲器,它與FPGA芯片之間存在PCB布線,在信號傳輸路徑上有一定的延時[7]。DDR的輸入差分時鐘CLK_N(P)由FPGA產生。當FPGA寫DDR時,在接口處要與差分時鐘CLK_N(P)的上升沿對齊,并且第一個數據采樣信號data strobe(DQS)的上升沿要對準第一個DQ和data mask(DM)的中間,即DQ和DM輸出需要提前DQS輸出90°的相移。

C2時鐘是一個比較復雜的時鐘,它的復雜主要是因為輸入的要求。如何將在一次采樣數據DQ的基礎上再采樣的數據DQS同步到系統的時鐘域達到采樣時序的要求?如何補償由于數據采樣造成的延時則成為DDR控制器接口正常工作的關鍵。為此,需要有重同步(resynchronization)時鐘信號來控制它。Resynch_clk作為重同步的輸入時鐘如圖4所示。因為從FPGA中鎖相環開始,信號在FPGA片內經過的不確定數的寄存器延時和片外PCB布線延時、DDR內讀寫數據時的延時等,造成了DDR的數據信號DQS和DQ到達FPGA輸入管腳的時間具有的不確定性。影響這個時間的因素有tPD(clock to pin)、tPD (clock trace)、tDQSCK、tD(DQS trace)、tPD(routing)、tPD(capture)、tCAS、tCQ (capture)和t(clock duty cycle)等。這些因素與時鐘的占空比(duty cycle)相加,就會得到有效數據到達重同步寄存器輸入端的時間相對于系統時鐘的相位關系,稱這個時間為RTD(round-trip delay,回程延時)。圖4中經過DIMM存儲器插槽返回到resynch_clk處的曲線表示RTD的部分[8]。計算公式為

T_RTD=tPD(pin)+tPD(C_trace)+tDQSCK+

tPD(DQStrace)+tPD(routing)+tPD(capture)+tCQ(capture)+

t(72phaseshift)+t(dutycycle)(1)

RTD隨著板的布線延時和板內部芯片的延時改變而改變。考慮到各種因素有最大值、最小值的情況,RTD也會有最小RTD和最大RTD的有效數據的重疊區域。這樣就會得到一個安全的SRW(safe resynch window,重同步窗口)。其計算表達式為

tmin_SRW=tmaxRTD+tCAS+tSU(2)

tmax_SRW=tminRTD+T(CAS+1)-tH(3)

從時刻0開始到達最小的tmin_SRW所需要的半周期的個數稱為numcycle。當半周期數為偶數時,最接近的SRW是時鐘沿在下降沿處;當半周期數為奇數時,最接近的SRW在時鐘沿上升沿處。計算相移的重同步時鐘按照下面公式:

tmin_phase_shift=tmin_SRW-tPLL_c_skew-

(numcycle-1)tCK/2(4)

tmax_phase_shift=tmin_SRW+tPLL_c_skew+

(numcycle-1)tCK/2(5)

其中:tCK是DDR的時鐘周期T,即5 ns;PLL的偏移時間是150 ps。參考開發板和DDR控制器的數據手冊,對式(5),當計算出來的時間值大于一個時鐘周期時,要對這個值進行周期T取余運算,使得式(4)和(5)的值在一個周期之內。這樣計算出來的t_phase_shift 也是一個關于安全窗口的區間值,為2.79~2.90 ns。為了保證系統更可靠、穩定,取重同步窗口的中間值2.845 ns。固定周期下,用相移方式表示補償時鐘resynch_clk與系統時鐘的關系就非常方便,它對應的圓周相位是2.845×360°/5=204.84°。時鐘C2的相位為205°。

3結果分析

全編譯之前和編譯調試過程中,優化設置包括:a)在分析綜合時,選擇速度優先而不是面積優化,即不是兩者權衡。b)在布局布線里面,選擇標準布線。軟件自動布線后,可以得到最好的布線效果,保證物理資源的在路線上面更優化。3)選擇Quartus Ⅱ中“時序最優化建議”的關于fmax的部分化,選定其中的“正確設置”選項部分,它的作用是在編譯后對錯誤的時鐘路徑進行修改。上面幾種方式均提高整個系統的工作頻率。

經過靜態時序仿真和動態仿真后,查看編譯報告知,使用的邏輯單元LE 5 056個,利用率12%。部分時序仿真結果如圖5所示。報告中顯示的最低頻率為200.28 MHz,最高頻率時鐘可以達到218.24 MHz,時序仿真完全達到要求。可以下載到開發板上進行軟件調試。

軟件調試實現部分算法思想是,按照SOPC中自動分配給外設的地址空間,對輸入地址進行匹配判斷;因為Avalon總線支持數據總線方式、地址總線方式、位、字節和半字的數據傳輸方式。將DDR內的數據按照上面的方式讀到系統片內存儲器中進行讀寫比較。軟件測試流程圖如圖6所示。

軟件測試:

a)下載編譯好的SOF文件到目標硬件。在建立IDE工程時,選擇描述這個工程系統器件屬性的TPF文件。

b)在Nios IDE環境下編寫C程序然后進行編譯。

c)測試DDR在高頻環境下的讀寫功能,將DDR存儲器上面的數據按照規定的方式讀到片內RAM分析比較。因此設置工程的properties的選項時,要將只讀數據段,讀寫數據段、堆、棧的空間均設置到片內RAM上面,以免操作系統分配內存空間時不會分配到DDR上面,保護DDR存儲器上面的數據信息不被破壞。這個步驟也是軟件能調通的重要一步。

軟件編譯完成后,運行的結果可以在Nios IDE的控制臺上面顯示出來,調試結果如下:

Memory Test Main Menu

a: Test RAM

q: Exit

Select Choice(a~q): [Followed by 〈enter〉] a

Base address to start memory test: (i.e. 0x800000)

>0x00000000

End Address:

>0x0fffffff

Testing RAM from 0x0 to 0xFFFFFFF

-Data bus test passed

-Address bus test passed

-Byte and half-word access test passed

-Testing each bit in memory device… passed

Memory at 0x0 Okay

Press enter to continue…

在合理的DDR尋址范圍內,輸入起始、結束地址。軟件部分將按照圖6的軟件流程對其進行測試。從調試結果可以看出,在搭建的DDR硬件控制系統下,軟件操作上按照數據總線、地址總線、位、字、半字的方式讀寫都是成功的。整個硬件和軟件設計符合設計要求。

4結束語

本文闡述了DDR在基于Nios Ⅱ的FC控制器嵌入式系統中的應用,介紹了SOPC相關技術,并重點闡述DDR的工作原理和如何優化控制器時序。利用Altera公司的FPGA進行實際的軟硬件測試。實際結果完全滿足要求,可以將其技術應用到OBS存儲系統中,也可按照本文提出的方法,應用到其他嵌入式系統中。

參考文獻:

[1]Micron. 184-PIN unbuffered DDR SDRAM DIMM[EB /OL].[2005-10].http://www.micron.com/modules.

[2]ANSI X3.230 fribre channel: franing and signaling[S]. New York: America National Standards Institute, 2003.

[3]Altera. Quartus Ⅱ handbook 5.0[EB/OL].[2005-05].http://www.altera.com.cn/ literature/ lit-qts.jsp.

[4]Altera. Nios Ⅱ software developer’s handbook[EB/OL].[2005-10].http://www.altera.com.cn/ literature/lit-nio2.jsp.

[5]Altera. Avalon bus specification reference manual[EB/OL].[2003-02].http://www.altera.com/literature/manual/mnl_avalon_spec.pdf.

[6]Altera. Stratix GX development board datasheet[M].[S.l.]:[s.n.], 2003:60-78.

[7]Altera. DDR DDR2 SDRAM controller compiler user guide[EB/OL].[2005-12].http://www.altera.com/literature/ug/ug_ddr_sdram.pdf.

[8]Altera. Interfacing DDR SDRAM with stratix stratix GX devices[EB/OL].[2005-12].http://www.altera.com.cn/literature/an/an342.pdf.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 在线视频精品一区| 国产精品久久精品| 综合色在线| 黄色免费在线网址| 麻豆国产在线观看一区二区 | 97精品久久久大香线焦| 国产成人成人一区二区| 国产69精品久久久久妇女| 喷潮白浆直流在线播放| 亚洲中文在线看视频一区| 香蕉eeww99国产在线观看| 亚洲视频欧美不卡| 亚洲狼网站狼狼鲁亚洲下载| 国产AV无码专区亚洲A∨毛片| 亚洲国产成人麻豆精品| 中文字幕中文字字幕码一二区| 日本三区视频| 广东一级毛片| 欧美在线观看不卡| 精品国产中文一级毛片在线看| 亚洲婷婷丁香| 激情午夜婷婷| 国产精品人人做人人爽人人添| 国内精自线i品一区202| 色欲不卡无码一区二区| 日本黄色a视频| 久久亚洲高清国产| 日韩激情成人| 91久久偷偷做嫩草影院| 亚洲综合精品香蕉久久网| www.国产福利| 99re66精品视频在线观看| 国产精品冒白浆免费视频| 精品国产香蕉在线播出| 香蕉视频在线精品| 久久不卡精品| 国产人人射| 欧美a在线看| 美女无遮挡拍拍拍免费视频| 91青青视频| 免费人成视网站在线不卡| 91精品国产一区| 嫩草国产在线| 国产精品太粉嫩高中在线观看| 国产一区二区三区夜色| P尤物久久99国产综合精品| 日韩在线观看网站| 午夜免费视频网站| 久久无码av三级| 国产又色又刺激高潮免费看| 真实国产乱子伦视频| 白浆免费视频国产精品视频 | 99久久99这里只有免费的精品| 在线免费观看a视频| 久久久久夜色精品波多野结衣| 国产网站免费观看| 91麻豆精品视频| 亚洲精品少妇熟女| 午夜综合网| 99尹人香蕉国产免费天天拍| 欧美天堂在线| 亚洲一区二区无码视频| 中文字幕丝袜一区二区| 在线免费无码视频| 自拍偷拍欧美日韩| 亚洲女同欧美在线| 好久久免费视频高清| 国产资源站| 亚洲乱码在线视频| 狠狠色香婷婷久久亚洲精品| 狠狠操夜夜爽| 偷拍久久网| 最新国产麻豆aⅴ精品无| 久久久受www免费人成| 国产三级国产精品国产普男人 | 成年人久久黄色网站| 久久久无码人妻精品无码| 欧美特黄一级大黄录像| 中文字幕自拍偷拍| 爽爽影院十八禁在线观看| 少妇精品在线| 国产精品自在在线午夜区app|