DDR SDRAM控制器數(shù)據(jù)通道的設(shè)計與實(shí)現(xiàn)
出處:木頭東瓜 發(fā)布于:2009-12-01 11:25:41
摘要:在DDR SDRAM控制器的設(shè)計中,數(shù)據(jù)通道的設(shè)計是提高數(shù)據(jù)傳輸率的關(guān)鍵。本文按照J(rèn)ESD79E標(biāo)準(zhǔn),討論了DDR SDRAM控制器結(jié)構(gòu),分析了DDR SDRAM的讀寫過程,給出了控制器的讀寫時序方程,利用此方程設(shè)計出了一種高速數(shù)據(jù)通道。對設(shè)計高速數(shù)據(jù)通道用EDA工具進(jìn)行了綜合、仿真。仿真結(jié)果顯示設(shè)計出的電路可以實(shí)現(xiàn)參數(shù)化配置并具有良好的性能。
1 引 言
目前業(yè)界在使用存儲器控制器時,通常采用 IP 核供應(yīng)商提供的針對具體型號存儲器IP 核[1]。這種IP 核的使用雖然可以實(shí)現(xiàn)快速設(shè)計的目的,但是控制器占用資源較大,不能根 據(jù)應(yīng)用而改變,只能通過命令來實(shí)現(xiàn)靈活使用,當(dāng)大量使用時需要支付高昂的IP 核使用費(fèi)。 隨著DDR SDRAM 的使用的日益廣泛,設(shè)計專用的存儲器控制器電路成為了必然。實(shí)現(xiàn)高 速存儲器控制器的設(shè)計的關(guān)鍵就是存儲器數(shù)據(jù)通道的設(shè)計。本文首先對存儲器控制器電路進(jìn) 行了功能劃分,建立了讀寫時序模型,對高速數(shù)字電路設(shè)計中應(yīng)該注意的問題進(jìn)行了闡述, 根據(jù)讀寫時序模型設(shè)計設(shè)一種高速的存儲器數(shù)據(jù)通道,對結(jié)果進(jìn)行了分析。
2 DDR SDRAM 控制器的整體結(jié)構(gòu)
存儲器控制器的功能是監(jiān)督控制數(shù)據(jù)從存儲器輸入/輸出數(shù)據(jù),并對數(shù)據(jù)的完整性進(jìn)行 分析檢測??刂破饔闪鶄€模塊構(gòu)成:即命令接口模塊、命令生成模塊、刷新控制模塊、初始 化模塊、控制模塊、數(shù)據(jù)通道。其中控制模塊包含一個狀態(tài)機(jī),用于控制系統(tǒng)的命令發(fā)送、 數(shù)據(jù)傳遞等操作;數(shù)據(jù)通道為DDR 與主機(jī)之間提供數(shù)據(jù)接口,在讀寫命令發(fā)出后處理數(shù)據(jù)。 讀寫操作不同之處在于寫操作時DDR 控制器需要產(chǎn)生數(shù)據(jù)選通信號DQS。在寫操作時, DQS 在數(shù)據(jù)的中間變化,并且存儲器發(fā)送和接收數(shù)據(jù)速率是其他部分的兩倍,這就要求數(shù) 據(jù)通道中有異步電路的存在,所以速數(shù)據(jù)通道決定了整個存儲系統(tǒng)的運(yùn)行效率。
3 DDR 讀寫時序建模
存儲器操作主要包括預(yù)充電、刷新、行激活、讀寫等,各個操作之間相互配合使用。直 接使用數(shù)據(jù)通道的操作是讀寫操作。下面利用時序邏輯方程[2]來對讀寫時序進(jìn)行分析。
3.1 時序邏輯方程的概念
數(shù)據(jù)通道是一個時序電路,而一般的邏輯方程無法表示時序的關(guān)系,可以借用數(shù)字信號處理離散時間信號的表示方法來建模。系統(tǒng)使用統(tǒng)一的時鐘,時序方程用CK(n)表達(dá)式如下:

k 表示時鐘的上升沿,相應(yīng)的k+0.5 就表示時鐘的下降沿;CK(n)表示一個從0 開始的 值為單位1 地階躍信號。CK(n-1)表示時鐘推后一個時鐘周期,CK(n-n0)-CK(n-n1)表示從第 n0 個時鐘上升沿開始到第n1 個時鐘上升沿結(jié)束的一個矩形信號。
3.2 讀寫時序建模
讀寫時序建模就是對讀寫命令與數(shù)據(jù)流動之間關(guān)系建立時序模型。DQ 是存儲器與控制 器之間的雙向數(shù)據(jù)總線。
?。?) 讀時序建模
DDR SDRAM 控制器進(jìn)行讀操作時,主機(jī)對存儲器控制器發(fā)出讀命令;控制器采樣到 該命令后按照時序分別給存儲器行激活、讀(列)命令,按照初始化時設(shè)置的延遲時間等待 數(shù)據(jù)輸出;等待指定時間以后,數(shù)據(jù)出現(xiàn)在DQ 總線上;再經(jīng)過特定的傳輸路徑,數(shù)據(jù)通過 DATAOUT 輸出。讀操作過程的時序方程如下(BL:突發(fā)長度,可選2、4、8;tRCD:行選 到列選延遲;tCAS:讀數(shù)據(jù)命令到數(shù)據(jù)有效延遲):

由于在DDR 數(shù)據(jù)通道內(nèi)部要進(jìn)行時鐘域的轉(zhuǎn)換,并且根據(jù)CL(CAS Latency)的不同,需要將數(shù)據(jù)的輸出調(diào)整到時鐘的上升沿對齊,因此數(shù)據(jù)的輸出存在延遲。設(shè)這個延遲為DL。

(2) 寫時序建模
DDR SDRAM 控制器進(jìn)行寫操作時,主機(jī)對存儲器控制器發(fā)出寫命令,同時輸出數(shù)據(jù) 和地址;控制器采樣到該命令和數(shù)據(jù),按照時序分別給存儲器行激活、寫(列)命令;再經(jīng) 過一個特定的周期,數(shù)據(jù)出現(xiàn)在DQ 總線上。寫過程的時序方程如下:

有效的寫入數(shù)據(jù)是在控制器寫命令發(fā)出后1±0.25 個系統(tǒng)時鐘的時刻后出現(xiàn)在DQ 端。

4 高速數(shù)據(jù)通道模塊設(shè)計
數(shù)據(jù)通道模塊為 DDR SDRAM 和主機(jī)之間提供了數(shù)據(jù)接口。DATAOUT 為數(shù)據(jù)通道向主機(jī)發(fā)送數(shù)據(jù)端口,DATAIN 為主機(jī)向數(shù)據(jù)通道寫入數(shù)據(jù)端口。
4.1 高速數(shù)據(jù)通道電路設(shè)計中應(yīng)注意的問題
(1) 亞穩(wěn)態(tài)特性
數(shù)據(jù)通道是個多時鐘系統(tǒng),這就要求數(shù)據(jù)正確地從一個時鐘域傳輸?shù)搅硪粋€時鐘域。不 同時鐘域信號傳輸首先遇到的是亞穩(wěn)態(tài)產(chǎn)生同步失敗問題。當(dāng)數(shù)據(jù)和時鐘邊沿非常接近時, 由于觸發(fā)器都會有建立和保持時間的要求,在這個時間窗口內(nèi),任何輸入信號的變化都可能 導(dǎo)致輸出的亞穩(wěn)態(tài)。解決辦法是將兩個(或多個)觸發(fā)器串聯(lián),用同一個時鐘驅(qū)動。N 個觸 發(fā)器發(fā)生錯誤的概率是PN,其中P 是一個觸發(fā)器發(fā)生亞穩(wěn)態(tài)錯誤的概率,標(biāo)準(zhǔn)的方法是采 用至少兩個觸發(fā)器(有時是三個)進(jìn)行同步串聯(lián)。
?。?) 門延遲
對一個具有M 級的邏輯鏈,近似可以得到通過整個鏈的總延時:

公式(11)中,ti 表示每部分的延時,取決于門的類型(即非門,與非門,等等)和它 的尺寸,以及在鏈中到下一個門的鏈路上的延遲。整個鏈的總延遲的大小決定了電路能夠運(yùn) 行的速率,在設(shè)計高速數(shù)字電路時,要盡量減少兩寄存器中間組合邏輯的大小。
?。?) 級數(shù)的優(yōu)化
當(dāng)設(shè)計中出現(xiàn)長線時,由于線上寄生電容的存在,電路中的建立、保持時間增加,導(dǎo)致 總的邏輯路徑延遲過大。在設(shè)計時可以增加路徑傳輸級數(shù),通過插入反相器來得到較小的路 徑延遲,但要注意,由于添加的反相器使電路的寄生延遲增加反而會抵消一些性能。
(4) 分支情況
當(dāng)一個邏輯門驅(qū)動兩個或更多的門時,數(shù)據(jù)路徑出現(xiàn)分支,要驅(qū)動多個負(fù)載,僅使用一 個驅(qū)動能力大的門不能解決問題,通常采用驅(qū)動樹的結(jié)構(gòu)是將連線分成幾段較短的長度,并 且提供尺寸合理的緩沖器。時序電路里,可以采用多個寄存器構(gòu)成一個驅(qū)動器樹的方法,但 要注意,信號的時序關(guān)系非常重要。
4.2 讀數(shù)據(jù)通道設(shè)計
系統(tǒng)時鐘經(jīng)過數(shù)字 PLL 倍頻生成局部時鐘CLKX2。存儲器按照經(jīng)過的局部時鐘CLKX2 發(fā)出數(shù)據(jù),數(shù)據(jù)經(jīng)過讀數(shù)據(jù)通道傳遞到DATAIN 端,主機(jī)按照系統(tǒng)時鐘CLK 接收數(shù)據(jù),數(shù) 據(jù)的發(fā)送頻率降為原來的一半,位寬提高一倍。由于CL 的不同,存儲器可能從時鐘的下降 沿輸出數(shù)據(jù),這就需要根據(jù)具體的CL 值調(diào)整數(shù)據(jù)的相位,使數(shù)據(jù)都是在時鐘延的上升沿輸 出。由讀時序方程,數(shù)據(jù)通道需要根據(jù)tCAS 調(diào)整電路結(jié)構(gòu),從而使DL 取到合適的值。
在 DDR SDRAM 中,根據(jù)不同器件,不同的頻率,CL 有2.0、2.5、3.0 三種不同的取 值,這就涉及到數(shù)據(jù)通道中要進(jìn)行數(shù)據(jù)相位調(diào)整。表1 是對SC_CL 的設(shè)置,SC_CL 是對控 制器內(nèi)部的一個標(biāo)志寄存器。用SC_CL[0]來控制通道內(nèi)部的相位轉(zhuǎn)換。

數(shù)據(jù)通道的接收端各需要兩個觸發(fā)器來消除亞穩(wěn)態(tài),觸發(fā)器工作在頻率為2f0,要占用 一個系統(tǒng)時鐘。由于內(nèi)部有一個轉(zhuǎn)換電路,發(fā)送端同樣也要兩個觸發(fā)器來輸出數(shù)據(jù),此時觸 發(fā)器工作頻率為f0,這又需要占用兩個系統(tǒng)時鐘。中間的轉(zhuǎn)換電路在一個時鐘內(nèi)完成相位調(diào) 整和數(shù)據(jù)拼接。根據(jù)SC_CL[0]的值來對輸出數(shù)據(jù)的相位進(jìn)行調(diào)整。如圖1 為讀數(shù)據(jù)通道原 理圖。數(shù)據(jù)經(jīng)過數(shù)據(jù)通道后延遲為CL+DL,分別為6、6、7,這正好與SC_CL[1]的值對應(yīng) 起來,主機(jī)可以通過SC_CL[1]的取值來確定接收數(shù)據(jù)的時間。

4.3 寫數(shù)據(jù)通道設(shè)計
控制器按照系統(tǒng)時鐘接在 DATAOUT 端接收數(shù)據(jù),經(jīng)過數(shù)據(jù)通道,按照局部時鐘CLKX2 發(fā)送數(shù)據(jù)到DQ,數(shù)據(jù)的發(fā)送頻率升為原來的一倍,位寬降為原來的一半。數(shù)據(jù)和數(shù)據(jù)掩模 DM 也必須同時給出,DM 的流入流出過程與數(shù)據(jù)的過程類似,可參考類似數(shù)據(jù)流通過程的 設(shè)計。存儲器接收數(shù)據(jù)是參考數(shù)據(jù)選通信號DQS,DQS 與輸入存儲器的數(shù)據(jù)有90°的相位差,選用T 觸發(fā)器進(jìn)行設(shè)計。DQM 與DQS 的設(shè)計類似。
控制器收到主機(jī)的命令后,需要發(fā)出一個 OE 使能信號,此信號用來產(chǎn)生恰當(dāng)?shù)腄QS, 并將數(shù)據(jù)總線DQ 導(dǎo)通。由于OE 要驅(qū)動多個負(fù)載,采用驅(qū)動器樹的結(jié)構(gòu)進(jìn)行設(shè)計,這需要 對OE 的發(fā)出時間進(jìn)行相應(yīng)的配置。例如主機(jī)在n 時刻發(fā)出寫命令,tRCD=3,則n+1 時刻發(fā) 出激活命令,激活一個行,n+2 時刻發(fā)出OE 使能,n+3 時刻發(fā)出寫命令給DDR SDRAM, n±4.25 時刻在數(shù)據(jù)出現(xiàn)在數(shù)據(jù)線DQ 上,而DQS 的上升沿跳變出現(xiàn)在個數(shù)據(jù)的穩(wěn) 定值期間,然后從此開始以2f0 的速率變化。
與讀數(shù)據(jù)通道類似,數(shù)據(jù)在進(jìn)入寫數(shù)據(jù)通道的前后,兩邊各需要兩個觸發(fā)器來消除亞穩(wěn) 態(tài)問題,并且要盡量減少組合邏輯。圖2 是寫數(shù)據(jù)通道的RTL 電路原理圖。

5 結(jié)果分析
本設(shè)計采用 ModelSim6.1F 仿真工具進(jìn)行了功能仿真;用QuartusⅡ7.1 軟件進(jìn)行綜合、 時序分析、布局布線;用ModelSim 進(jìn)行后仿真,仿真結(jié)果正確。選用Cyclone III FPGA Starter Kit 開發(fā)板對本文提出的電路進(jìn)行調(diào)試。調(diào)試結(jié)果顯示,本文提出的電路可以穩(wěn)定工作,設(shè) 計滿足JESD79E 標(biāo)準(zhǔn)的要求,可以用于實(shí)際應(yīng)用中。
Altera 公司在文獻(xiàn)[3]中提供了一個數(shù)據(jù)通道的參考設(shè)計,并將此參考設(shè)計與本文提出的 電路用QuartusⅡ軟件進(jìn)行綜合。選用CYCLONE III 系列的EP3C25F324C6 器件作為應(yīng)用器 件。表2 給出了綜合表,其中Altera Data-path 為Altera 公司的參考設(shè)計電路,My Data-path 為本文提出的電路。從表2 可以看出,本文提出的電路比Altera 公司給出的參考設(shè)計電路在 面積上不占優(yōu)勢,但在速度方面優(yōu)勢明顯。

6 結(jié)束語
本文根據(jù) JESD79E 標(biāo)準(zhǔn)的描述,對存儲器控制器進(jìn)行了模塊劃分,找出與控制器數(shù)據(jù) 通道相關(guān)的操作,然后以時鐘為坐標(biāo),建立信號的時序模型,列出讀寫時序方程,按照 時序和電路特性的要求設(shè)計出了讀寫數(shù)據(jù)通道電路。從結(jié)果分析可以看出,設(shè)計出的電路有著很高的性能,而且可以參數(shù)化配置,可以作為一個IP 用于DDR SDRAM 控制器的設(shè)計當(dāng) 中。下一步將以此為基礎(chǔ),聯(lián)系項目組正在研究的環(huán)網(wǎng)NoC 結(jié)構(gòu),開發(fā)出應(yīng)用于此結(jié)構(gòu)的 DDR SDRAM 存儲器控制IP 核。
本文作者創(chuàng)新點(diǎn):根據(jù) DDR SDRAM 數(shù)據(jù)存取的特點(diǎn),提出了一種新的高速數(shù)據(jù)通道 電路,在讀數(shù)據(jù)時中可實(shí)現(xiàn)參數(shù)化配置。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52









