《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 通用DDR SDRAM控制器的設(shè)計
通用DDR SDRAM控制器的設(shè)計
劉 瑰 朱鴻宇
摘要: 通用DDR SDRAM控制器的設(shè)計方法,以及一種解決DDR SDRAM所特有讀寫方式難于控制的問題的方法。
Abstract:
Key words :

  摘  要: 通用DDR SDRAM控制器的設(shè)計方法,以及一種解決DDR SDRAM所特有讀寫方式難于控制的問題的方法。
  關(guān)鍵詞: 雙數(shù)據(jù)率SDRAM  數(shù)字鎖相環(huán)  預(yù)充電  突發(fā)讀寫

   SDRAM是具有同步接口的高速動態(tài)隨機訪問存儲器。它由于具有大容量、讀寫速度較快、支持突發(fā)式讀寫及價格低廉而得到了廣泛的應(yīng)用。但是近幾年來,市面上出現(xiàn)了一種從SDRAM技術(shù)發(fā)展而來的DDR(Double Data Rate)SDRAM新型存儲器。該存儲器除了具有SDRAM的所有優(yōu)點外,還由于采用了雙時鐘差分信號等技術(shù),使其在時鐘觸發(fā)沿的上、下沿都能進行數(shù)據(jù)傳輸(傳輸速率是普通SDRAM的2倍),且在價格上也低于SDRAM。在需要大容量存儲器的系統(tǒng)中,如臺式機、工作站、服務(wù)器、高性能圖形適配器等選用DDR SDRAM將是一種很好的選擇。但是DDR SDRAM的控制時序比較復(fù)雜,要想和MCU、DSP等控制器芯片接口就必須利用可編程門陣列(如FPGA)設(shè)計一個DDR SDRAM控制器。但由于它在時鐘的上升沿和下降沿均能讀取數(shù)據(jù),這就使得DDR SDRAM控制器較普通的SDRAM控制器更難于設(shè)計。為此,本文給出了一種通用DDR SDRAM控制器的一般設(shè)計方法,并利用數(shù)字鎖相環(huán)技術(shù)解決了DDR SDRAM特有的讀寫方式難于控制的問題。
1  DDR SDRAM的基本操作和命令
    掌握DDR SDRAM(以下簡稱DDR)的操作是成功設(shè)計一個DDR SDRAM控制器的前提條件。下面是一般的DDR所具備的操作。
  DDR支持的常用命令有:空操作(Nop)、激活操作(Active)、突發(fā)讀(Burst Read)、突發(fā)寫(Burst Write)、自動刷新(Autorefresh)、預(yù)充電(Precharge)、模式寄存器配置(Mode Register Set)等。所有的操作命令都通過信號線RAS_N、CAS_N、WE_N共同控制。其基本操作命令如表1所示。

 

 


  在進行讀、寫操作之前必須激活DDR存儲體。一旦一個存儲體被激活,它就必須在此存儲體的下一個激活命令發(fā)出之前進行預(yù)充電。當(dāng)對一個存儲體讀或?qū)懺L問后,如果下一次要訪問的行和當(dāng)前訪問的行不是同一行,則需要結(jié)束當(dāng)前的存儲體并重新打開它。預(yù)充電就是用來結(jié)束已激活的存儲體的。
  訪問DDR的基本命令是讀和寫操作。當(dāng)讀命令發(fā)出時,地址總線上出現(xiàn)的就是要讀的起始地址,1~3個時鐘周期后要讀的數(shù)據(jù)將會出現(xiàn)在數(shù)據(jù)總線上;當(dāng)寫命令發(fā)出時,起始地址和數(shù)據(jù)就分別出現(xiàn)在地址總線和數(shù)據(jù)總線上。在做讀操作時,數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上的周期數(shù)是由CAS延遲(CAS Latency,CL)決定的。CL依賴于DDR的速度和存儲器時鐘的頻率。一般而言,時鐘頻率越快CL就越大。在BR或者BW命令初始化后,就會進行突發(fā)讀或突發(fā)寫,直到完成當(dāng)前的突發(fā)長度(Burst length,BL)或突發(fā)結(jié)束(Burst Terminate,BT)命令發(fā)出才結(jié)束該操作。DDR存儲器支持突發(fā)的長度為2、4或8個數(shù)據(jù)周期。
  由于DDR是利用電容存儲電荷的原理來保存信息的,而電容會逐漸放電。因此為了保證每個存儲單元數(shù)據(jù)的正確性,DDR SDRAM控制器必須周期性地發(fā)出自動刷新命令,用戶無需干預(yù)。在自動刷新命令發(fā)出之前,所有存儲體都必須經(jīng)過預(yù)充電并已經(jīng)處于空閑狀態(tài)。一旦刷新開始,由于內(nèi)部有地址計數(shù)器,所以不需要外部地址的控制。
  DDR中有模式寄存器,它的各種操作模式是:CAS延遲、地址模式、突發(fā)長度、突發(fā)類型、測試模式等。通過模式寄存器配置(MRS)命令將值寫入到模式寄存器中。
2 DDR SDRAM 控制器的設(shè)計
2.1 DDR SDRAM控制器簡介

  本文討論的DDR SDRAM控制器(簡稱DDR控制器)一方與MCU等控制器接口,另一方與DDR接口。同MCU等控制器的接口主要有地址總線(ADDR)、數(shù)據(jù)總線(DATA)、3位的命令總線(CMD[2:0])以及命令回答(CMDACK)等。地址總線和數(shù)據(jù)總線的位數(shù)取決于DDR的總線位數(shù)。DDR控制器接收從MCU發(fā)來的命令及數(shù)據(jù),對命令進行譯碼,并向DDR發(fā)出相應(yīng)的操作及數(shù)據(jù)。與DDR接口的一方主要是RAS_N、CAS_N、WE_N等控制信號線以及數(shù)據(jù)總線DDRDATA、地址總線DDRADDR等。整個DDR控制器由3個模塊構(gòu)成:控制接口模塊、命令模塊和數(shù)據(jù)通路模塊。控制接口模塊接收從MCU來的命令和相關(guān)存儲器地址,對命令進行譯碼并將請求發(fā)送給命令模塊;命令模塊接收從控制接口模塊譯碼后的命令和地址,產(chǎn)生相應(yīng)的命令給DDR;數(shù)據(jù)通路模塊在讀命令READA和寫命令WRITEA期間處理數(shù)據(jù)交換。DDR控制器總框圖如圖1所示。

2.2 DDR控制器的命令
  DDR控制器共完成8種操作:NOP、READA、WRITEA、REFRESH、PRECHARGE、LOAD_MODE、LOAD_REG1、LOAD_REG2,其控制命令如表2所示。


  這8種操作都是由MCU在命令總線CMD[2:0]上向DDR控制器發(fā)出的,DDR控制器在接收到諸如READA、WRITEA、REFRESH、PRECHARGE、LOAD_MODE等命令時將會向MCU發(fā)回答命令CMDACK。當(dāng)MCU收到CMDACK命令后會在1個時鐘周期后向DDR控制器發(fā)NOP命令。DDR控制器在發(fā)CMDACK命令的同時也會向DDR發(fā)相應(yīng)的操作,也就是將DDR的RAS_N、CAS_N、WE_N置成相應(yīng)的高位或低位。如果命令是READA或WRITEA,則需要重新從數(shù)據(jù)總線上讀出數(shù)據(jù)或?qū)懭霐?shù)據(jù)。各命令的功能如下。 (1)NOP空操作命令。在MCU接收到CMDACK命令后,MCU就會在一個時鐘周期后向DDR控制器發(fā)出NOP命令。
  (2)READA命令是帶有預(yù)充電的突發(fā)讀操作。MCU向DDR控制器發(fā)出READA命令的同時在地址總線ADDR上發(fā)出要讀的地址;DDR控制器接收到后將向DDR發(fā)出激活(Active)命令,并向MCU發(fā)出CMDACK命令;幾個時鐘周期后,要讀的DDR中的突發(fā)數(shù)據(jù)會由DDR控制器通過數(shù)據(jù)總線傳送給MCU。
  (3)WRITEA命令是帶有預(yù)充電的突發(fā)寫操作。其過程和READA的過程類似,也是在DDR控制器接收到MCU發(fā)出的WRITEA命令期間,在地址總線ADDR上接收要寫入的地址,然后DDR控制器向DDR發(fā)出激活(Active)命令,并向MCU發(fā)出CMDACK命令。只是在WRITEA命令有效期間,要寫入DDR的第一個突發(fā)數(shù)據(jù)就已經(jīng)出現(xiàn)在數(shù)據(jù)總線上了。
   (4)REFRESH命令是DDR控制器指示DDR完成自動刷新的命令。
  (5)PRECHARGE命令是控制器指示DDR完成存儲體預(yù)充電的命令。
  (6)LOAD_MODE是用來配置DDR中的模式寄存器的,其值就是在MCU向DDR控制器發(fā)出LOAD_
MODE命令的同時在ADDR總線上傳送的數(shù)值。當(dāng)DDR控制器向DDR發(fā)出模式寄存器配置(MRS)命令時,ADDR總線上的值就會直接映射到DDR的地址總線上。
  (7)LOAD_REG1和LOAD_REG2是配置DDR控制器內(nèi)部2個寄存器的命令。
2.3 DDR控制器的內(nèi)部寄存器
  DDR控制器內(nèi)部有2個16位的配置寄存器:REG1和REG2,其值分別由命令LOAD_REG1和LOAD_REG2命令寫入。
REG1中包含了CAS延遲CL(REG1[1:0])、RAS到CAS延遲的時鐘數(shù)RC(REG[3:2])、REFERSH命令持續(xù)時間的時鐘數(shù)RRD(REG1[7:4])及突發(fā)長度BL(REG1[12:9])。
  REG2是一個16位的寄存器,存儲的是DDR控制器向DDR發(fā)出刷新命令的間隔時間。
2.4 各功能模塊設(shè)計
2.4.1 控制接口模塊
  控制接口模塊包含1個命令譯碼器和1個16位的刷新減計數(shù)器及相應(yīng)的控制電路。命令譯碼器譯碼并寄存從MCU來的命令,將譯碼后的NOP、WRITEA、READA、REFRESH、PRECHARGE和LOAD_MODE等命令及相應(yīng)的地址轉(zhuǎn)送給命令模塊。減計數(shù)器和相應(yīng)的控制電路用來產(chǎn)生刷新命令給命令模塊,其值就是由LOAD_REG2命令寫入到REG2中的值。當(dāng)計數(shù)器減到0時,控制接口模塊就向命令模塊發(fā)REFRESH_REQ并一直保持到命令模塊發(fā)REFRESH_ACK來響應(yīng)該請求。一旦控制接口模塊接收到REFRESH_ACK,減計數(shù)器就會重新寫入REG2中的值。
2.4.2 命令模塊
  命令模塊由1個簡單的仲裁器、命令發(fā)生器及命令時序器組成。它接收從控制接口模塊來的譯碼后的命令,接收刷新控制邏輯發(fā)來的刷新請求命令并產(chǎn)生正確的命令給DDR。仲裁器在控制接口發(fā)來的命令(也就是MCU通過控制接口譯碼后的命令)和刷新控制邏輯發(fā)來的刷新請求命令之間進行仲裁。刷新請求命令的優(yōu)先級高于控制接口來的命令。如果控制接口來的命令和刷新請求命令同時到達,或者同在一個刷新操作期間,則仲裁器就會拖延向MCU發(fā)CMDACK命令的時間直到刷新操作完成。如果刷新命令正在進行操作期間發(fā)出,則要一直等待到操作全部完成。
  在仲裁器收到MCU發(fā)來的命令后,該命令就傳送到命令發(fā)生器,命令時序器即用3個移位寄存器產(chǎn)生正確的命令時序后發(fā)給DDR。1個移位寄存器用來控制激活命令時序,1個用來控制READA和WRITEA命令,1個用來計時操作命令的持續(xù)時間,為仲裁器確定最后的請求操作是否完成。
2.4.3 數(shù)據(jù)通路模塊
  數(shù)據(jù)通路模塊提供了DDR到MCU的數(shù)據(jù)通路。MCU從DDR設(shè)備讀出的數(shù)據(jù)和MCU向DDR設(shè)備寫入的數(shù)據(jù)都要經(jīng)過數(shù)據(jù)通路模塊。在MCU向DDR控制器發(fā)WRITEA命令時,數(shù)據(jù)總線DATA上要寫入DDR的數(shù)據(jù);在MCU向DDR控制器發(fā)READA命令時,數(shù)據(jù)總線DATA則從DDR讀出數(shù)據(jù)。
  數(shù)據(jù)通路模塊在和DDR接口的一方完成了2個轉(zhuǎn)換:一是將DDR過來的數(shù)據(jù)總線寬度翻倍,二是將DDR在時鐘上、下沿送出的數(shù)據(jù)用200MHz的時鐘頻率接收。數(shù)據(jù)通路模塊在和MCU接口的一方也相應(yīng)地做了2個轉(zhuǎn)換:一是將MCU過來的數(shù)據(jù)寬度減半送給DDR,二是將MCU工作在100MHz頻率下的數(shù)據(jù)以200MHz的頻率送給DDR。
  DDR送來的數(shù)據(jù)是在100MHz的時鐘頻率的上升和下降沿被讀出的,而到了數(shù)據(jù)通路模塊則將時鐘頻率倍頻到200MHz,因此只需在時鐘的上升沿讀出數(shù)據(jù)即可。其中的時鐘倍頻可采用數(shù)字鎖相環(huán)技術(shù)將輸入時鐘升頻。某些FPGA內(nèi)部包含了鎖相環(huán)電路(如Altera公司的FLEX10KA系列的FPGA),可以直接調(diào)用。
2.5 初始化過程
  在MCU與DDR之間通信必須通過DDR控制器對DDR進行初始化:置DDR的突發(fā)長度、CL、突發(fā)類型以及操作模式等。在初始化完DDR后,MCU也必須對DDR控制器的2個內(nèi)部寄存器進行設(shè)置,由MCU發(fā)LOAD_REG2和LOAD_REG1命令分別完成。整個DDR和DDR控制器的初始化過程為:(1)完成預(yù)充電PRECHARGE命令。(2)發(fā)LOAD_MODE命令。(3)發(fā)LOAD_REG2命令。(4)發(fā)LOAD_
  REG1命令。
3  結(jié)束語
  本文給出的通用DDR控制器的設(shè)計方法,可以很好地解決DDR在時鐘上升和下降沿都能讀取數(shù)據(jù)而不好控制的問題,而且可以直接利用FPGA內(nèi)部提供的數(shù)字鎖相環(huán)電路,避免了在設(shè)計中增加復(fù)雜的模擬電路。此外,開發(fā)者還可以根據(jù)自己的實際需要對該設(shè)計方法進行修改,以形成自己專用的DDR控制器。
參考文獻
1  DDR SDRAM Specification.http://www.samsung.com,2002.5
2  夏宇聞.復(fù)雜數(shù)字電路與系統(tǒng)的Verilog HDL設(shè)計技術(shù).北京:北京航空航天大學(xué)出版社,1998
3  戴梅萼,史嘉權(quán).微型計算機技術(shù)及應(yīng)用(第二版).北京:清華大學(xué)出版社,1996
4  常青,陳輝煌,孫廣富等.可編程專用集成電路及其應(yīng)用與設(shè)計實踐.北京:國防工業(yè)出版社,1998
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品久久久久天堂| 亚洲国产成人av好男人在线观看| 欧美中文在线视频| 亚洲一区视频| 亚洲桃色在线一区| 这里只有精品丝袜| 这里只有精品视频在线| 99国产精品国产精品久久| 亚洲精品美女久久7777777| 亚洲国产高清aⅴ视频| 久久精品国产99国产精品| 欧美一区国产一区| 欧美中文字幕在线视频| 久久精品一区二区三区不卡| 久久不射中文字幕| 久久精品国产清高在天天线| 久久国产99| 亚洲高清在线播放| 亚洲日本久久| 日韩午夜在线电影| av成人毛片| 亚洲一区欧美一区| 香蕉乱码成人久久天堂爱免费| 午夜亚洲视频| 久久国产夜色精品鲁鲁99| 久久久高清一区二区三区| 久久久亚洲午夜电影| 欧美不卡在线视频| 欧美日韩精品在线观看| 国产精品久久久久久久久| 国产精品一区二区三区免费观看| 国产日韩av在线播放| 国产在线观看精品一区二区三区| 在线观看视频一区二区| 亚洲人精品午夜在线观看| 在线一区日本视频| 香蕉尹人综合在线观看| 亚洲国产三级网| 日韩午夜在线电影| 午夜精品福利视频| 久久人人97超碰国产公开结果| 欧美成人国产一区二区| 国产精品啊啊啊| 国产一区在线视频| 亚洲日本成人| 亚洲欧美日韩国产综合| 亚洲国内欧美| 亚洲一区二区三区视频| 久久国产免费看| 欧美成人一区在线| 国产精品久在线观看| 狠狠爱综合网| 日韩午夜三级在线| 久久精品91| 中文欧美字幕免费| 久久精品国产99国产精品澳门| 欧美α欧美αv大片| 国产精品久久久久久久9999| 狠狠色丁香久久综合频道| 日韩视频免费观看高清在线视频| 亚洲欧美日韩一区在线观看| 亚洲欧洲一区二区在线观看| 亚洲免费影视| 美女黄毛**国产精品啪啪| 欧美视频一二三区| 精品91在线| 亚洲调教视频在线观看| 亚洲激情第一页| 午夜日韩电影| 欧美激情按摩在线| 国产亚洲综合在线| 99视频国产精品免费观看| 久久成年人视频| 亚洲欧美国产毛片在线| 欧美凹凸一区二区三区视频| 国产精品自在线| 99re热这里只有精品视频| 91久久精品国产91久久性色tv| 欧美视频在线观看| 国内成+人亚洲| 亚洲视频在线观看免费| 亚洲精品久久久一区二区三区| 校园春色国产精品| 欧美日韩国产页| 精品二区视频| 午夜精品福利一区二区三区av| 亚洲日韩视频| 卡通动漫国产精品| 国产精品一区一区| 一区二区三区四区国产| 亚洲免费大片| 久久综合电影| 国产一区二区三区久久悠悠色av | 久久精品欧洲| 欧美在线视频免费| 欧美日韩喷水| 亚洲黄色在线视频| 亚洲丰满在线| 久久久精品国产免大香伊| 国产精品欧美日韩一区二区| 亚洲欧洲日产国码二区| 久久精品噜噜噜成人av农村| 久久不射电影网| 国产精品一区二区女厕厕| 日韩午夜在线观看视频| 亚洲毛片在线看| 免费不卡欧美自拍视频| 樱桃国产成人精品视频| 欧美在线一二三四区| 欧美亚洲网站| 国产精品日韩欧美一区| 在线一区免费观看| 亚洲综合二区| 国产精品久久午夜夜伦鲁鲁| 宅男精品导航| 亚洲免费在线视频| 国产精品激情| 亚洲午夜精品一区二区| 亚洲一区久久| 国产精品女主播一区二区三区| 一区二区三区高清视频在线观看| 一本一本久久| 欧美视频一区在线观看| 亚洲午夜电影| 先锋影音一区二区三区| 国产乱码精品一区二区三区av| 亚洲影视九九影院在线观看| 亚洲女女女同性video| 国产精品青草久久| 午夜宅男久久久| 久久久久久久久岛国免费| 国际精品欧美精品| 亚洲国产精品一区二区尤物区 | 国产精品久久网| 亚洲欧美日本另类| 久久久久久一区二区三区| 黄色成人在线免费| 亚洲激情在线观看| 欧美日韩国产成人在线| 中国亚洲黄色| 欧美中文在线免费| 精品二区视频| 一本大道久久a久久综合婷婷 | 国产精品一区免费在线观看| 午夜一区在线| 久久人人超碰| 亚洲国产精品va在看黑人| 夜夜狂射影院欧美极品| 国产精品qvod| 欧美一级久久久| 蜜臀av在线播放一区二区三区| 亚洲人永久免费| 亚洲免费视频成人| 国产一区二区三区在线观看视频 | 久久av二区| 亚洲第一综合天堂另类专| 日韩午夜精品视频| 国产精品福利av| 久久超碰97中文字幕| 欧美久久视频| 亚洲欧美视频在线观看视频| 久久只精品国产| 妖精成人www高清在线观看| 久久99在线观看| 最近中文字幕日韩精品 | av成人免费| 久久精品久久99精品久久| 亚洲成人直播| 亚洲免费在线视频| 伊甸园精品99久久久久久| 一区二区欧美精品| 国产综合久久久久影院| 宅男精品视频| 国产一区二区三区电影在线观看| 亚洲乱码国产乱码精品精天堂| 国产精品视频午夜| 亚洲精品视频中文字幕| 国产精品一区视频网站| 亚洲日本欧美日韩高观看| 国产精品每日更新| 亚洲日本无吗高清不卡| 国产精品久久国产愉拍 | 欧美大秀在线观看| 夜色激情一区二区| 久久精品国产v日韩v亚洲| 欧美特黄a级高清免费大片a级| 亚洲欧美日韩精品久久奇米色影视| 欧美不卡视频一区| 亚洲欧美日韩直播| 欧美日韩免费一区二区三区| 久久精品一区二区国产| 国产精品入口尤物| 亚洲裸体在线观看| 狠狠色综合色区| 午夜亚洲影视| 一本色道久久综合亚洲精品高清| 狂野欧美激情性xxxx欧美| 亚洲欧美日本精品| 国产精品v欧美精品v日本精品动漫 | 亚洲美女网站|