摘要:在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工具進行了綜合、仿真。仿真結(jié)果顯示設(shè)計出的電路可以實現(xiàn)參數(shù)化配置并具有良好的性能。
1 引 言
目前業(yè)界在使用存儲器控制器時,通常采用 IP 核供應(yīng)商提供的針對具體型號存儲器IP 核[1]。這種IP 核的使用雖然可以實現(xiàn)快速設(shè)計的目的,但是控制器占用資源較大,不能根 據(jù)應(yīng)用而改變,只能通過命令來實現(xiàn)靈活使用,當(dāng)大量使用時需要支付高昂的IP 核使用費。 隨著DDR SDRAM 的使用的日益廣泛,設(shè)計專用的存儲器控制器電路成為了必然。實現(xiàn)高 速存儲器控制器的設(shè)計的關(guān)鍵就是存儲器數(shù)據(jù)通道的設(shè)計。本文首先對存儲器控制器電路進 行了功能劃分,建立了讀寫時序模型,對高速數(shù)字電路設(shè)計中應(yīng)該注意的問題進行了闡述, 根據(jù)讀寫時序模型設(shè)計設(shè)一種高速的存儲器數(shù)據(jù)通道,最后對結(jié)果進行了分析。
2 DDR SDRAM 控制器的整體結(jié)構(gòu)
存儲器控制器的功能是監(jiān)督控制數(shù)據(jù)從存儲器輸入/輸出數(shù)據(jù),并對數(shù)據(jù)的完整性進行 分析檢測?刂破饔闪鶄模塊構(gòu)成:即命令接口模塊、命令生成模塊、刷新控制模塊、初始 化模塊、控制模塊、數(shù)據(jù)通道。其中控制模塊包含一個狀態(tài)機,用于控制系統(tǒng)的命令發(fā)送、 數(shù)據(jù)傳遞等操作;數(shù)據(jù)通道為DDR 與主機之間提供數(shù)據(jù)接口,在讀寫命令發(fā)出后處理數(shù)據(jù)。 讀寫操作不同之處在于寫操作時DDR 控制器需要產(chǎn)生數(shù)據(jù)選通信號DQS。在寫操作時, DQS 在數(shù)據(jù)的中間變化,并且存儲器發(fā)送和接收數(shù)據(jù)速率是其他部分的兩倍,這就要求數(shù) 據(jù)通道中有異步電路的存在,所以速數(shù)據(jù)通道決定了整個存儲系統(tǒng)的運行效率。
3 DDR 讀寫時序建模
存儲器操作主要包括預(yù)充電、刷新、行激活、讀寫等,各個操作之間相互配合使用。直 接使用數(shù)據(jù)通道的操作是讀寫操作。下面利用時序邏輯方程[2]來對讀寫時序進行分析。
3.1 時序邏輯方程的概念
數(shù)據(jù)通道是一個時序電路,而一般的邏輯方程無法表示時序的關(guān)系,可以借用數(shù)字信號處理離散時間信號的表示方法來建模。系統(tǒng)使用統(tǒng)一的時鐘,時序方程用CK(n)表達式如下:
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ù)總線。
(1) 讀時序建模
DDR SDRAM 控制器進行讀操作時,主機對存儲器控制器發(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)部要進行時鐘域的轉(zhuǎn)換,并且根據(jù)CL(CAS Latency)的不同,需要將數(shù)據(jù)的輸出調(diào)整到時鐘的上升沿對齊,因此數(shù)據(jù)的輸出存在延遲。設(shè)這個延遲為DL。
(2) 寫時序建模
DDR SDRAM 控制器進行寫操作時,主機對存儲器控制器發(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 和主機之間提供了數(shù)據(jù)接口。DATAOUT 為數(shù)據(jù)通道向主機發(fā)送數(shù)據(jù)端口,DATAIN 為主機向數(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ā)器(有時是三個)進行同步串聯(lián)。
(2) 門延遲
對一個具有M 級的邏輯鏈,近似可以得到通過整個鏈的總延時:
公式(11)中,ti 表示每部分的延時,取決于門的類型(即非門,與非門,等等)和它 的尺寸,以及在鏈中到下一個門的鏈路上的延遲。整個鏈的總延遲的大小決定了電路能夠運 行的速率,在設(shè)計高速數(shù)字電路時,要盡量減少兩寄存器中間組合邏輯的大小。
來源:維庫開發(fā)網(wǎng)