SDRAM操作原理分析


芯片原理圖

引腳原理圖

指令

    通過對上面指令的總結,簡化出要用到的指令如下:

指令

常量名

CKE

CSn

RAS

CASn

WEn

備注

空操作

NOP

1

0

1

1

1

 

行激活

ACTIVE

1

0

0

1

1

 

讀操作

READ

1

0

1

0

1

 

寫操作

WRITE

1

0

1

0

0

 

預充電

PR

1

0

0

1

0

 

自刷新

AR

1

0

0

0

1

 

設置寄存器

LMR

1

0

0

0

0

 

突發停止

BURST_STOP

1

0

1

1

0

1

 

芯片配置

操作模式SDRAM內部有三種操作模式:單一的讀寫、突發讀寫、頁讀寫(突發讀寫全頁)

突發傳輸模式:一般情況下都采用順序讀寫操作;

CAS潛伏期:即發出讀指令之后,經過多少個時鍾周期才可以讀取數據,而在寫數據中是沒有這個概念的。

突發長度:突發就是連續讀寫的操作,如果沒有突發操作,對SDRAM內部連續地址進行讀寫則要發送指令和地址,然后讀取或寫入數據,循環操作,有了突發操作后,就可以制定突發長度,發送讀寫的起始地址然后對SDRAM進行連續的讀寫,突發的長度可以設置,突發全頁就是連續操作一行,就是256個存儲單元。

初始化時序圖

初始化操作過程如下:

  1. 上電等待 200us
  2. 發送 PR 命令
  3. 滿足 tRP 時間要求至少 20ns
  4. 發送 AR AutoRefresh )命令
  5. 滿足 tRFC tRPC 又名 tRCC )時間要求至少 63ns
  6. 發送 AR AutoRefresh )命令
  7. 滿足 tRFC tRPC 又名 tRCC )時間要求至少 63ns
  8. 發送 LMR LodeModeRegister )命令和相關配置信息
  9. 滿足 tMRD 時間要求至少 1 個時鍾

 

定時自動刷新

存儲體中電容的數據有效保存期上限是64ms,也就是說每一行刷新的循環周期是64ms。這樣刷新速度就是:行數量/64ms 。我們在看內存規格時,經常會看到4096 Refresh Cycles/64ms 8192 Refresh Cycles/64ms的標識,這里的40968192就代表這個芯片中每個L-Bank的行數。刷新命令一次對一行有效,發送間隔也是隨總行數而變化,4096行時為15.625 μs8192行時就為7.8125 μs

刷新操作分為兩種:Auto Refresh,簡稱ARSelf Refresh,簡稱SR。不論是何種刷新方式,都不需要外部提供行地址信息,因為這是一個內部的自動操作。對於ARSDRAM內部有一個行地址生成器(也稱刷新計數器)用來自動的依次生成行地址。由於刷新是針對一行中的所有存儲體進行,所以無需列尋址,或者說CAS RAS 之前有效。所以,AR又稱CBRCAS Before RAS,列提前於行定位)式刷新。由於刷新涉及到所有L-Bank,因此在刷新過程中,所有L-Bank都停止工作,而每次刷新所占用的時間為9個時鍾周期(PC133 標准),之后就可進入正常的工作狀態,也就是說在這9個時鍾期間內,所有工作指令只能等待而無法執行。64ms之后則再次對同一行進行刷新,如此周而復始進行循環刷新。顯然,刷新操作肯定會對SDRAM 的性能造成影響,但這是沒辦法的事情,也是DRAM 相對於SRAM (靜態內存,無需刷新仍能保留數據)取得成本優勢的同時所付出的代價。

操作過程如下:

  1. 先發送 Precharge 命令,命 SDRAM 釋放所有資源庫。
  2. 相關操作需要消耗時間 tRP-20ns
  3. 發送 AutoRefresh 命令,命 SDRAM 刷新內部邏輯的內容。
  4. 相關操作需要消耗時間 tRFC-63ns
  5. 發送 AutoRefresh 命令,命 SDRAM 刷新內部邏輯的內容。
  6. 相關操作需要消耗時間 tRFC-63ns

寫操作

    SDRAM的寫操作有兩種模式,如下

Write with Autopre-charge:每當一次性的寫發生以后,SDRAM自動釋放相關的資源庫,以方便下一次的寫操作。相反則需要手動進行釋放,一般采用Write with Autopre-charge

兩者的區別就是A10的電平高低。

操作過程如下:

  1. 發送 Active 命令,發送庫( Bank )和行( Row )地址信息。
  2. 滿足 tRCD 時間要求,至少 20ns
  3. 發送 Write 命令、庫( Bank )和列( Column )地址; A10 拉高代表 With Auto Precharge
  4. 同時寫入的一字數據。這時候 DQM 必須拉低。
  5. 滿足 tWR tDPL )時間要求,至少 2 個時鍾。
  6. 滿足 tRP 時間要求,至少 20ns

經過時間tWRtDPL)以后,一字數據就成功被寫入。隨后SDRAM開始執行Auto Precharge的操作,釋放當前相關的資源庫。最后經過tRP以后(Auto Precharge的操作完成)。

 

讀操作

  1. 發送 Active 命令、行( Row )和庫( Bank )地址。
  2. 滿足時間要求 tRCD-20ns
  3. 發送 Read 命令、列( Column )和庫( Bank )地址, DQM 拉低,拉高 A10 一個時鍾,表示讀操作后自動釋放資源庫( WithAutoPrecharge )。
  4. 滿足 CAS Latency 時間要求
  5. CAS Latency 滿足之后,接下來滿足時間要求 tAC-6ns tRP-20ns ,然后讀取數據。

 

大西瓜FPGA-->https://daxiguafpga.taobao.com

博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!

每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM