芯片原理圖
引腳原理圖
指令
通過對上面指令的總結,簡化出要用到的指令如下:
指令 |
常量名 |
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個存儲單元。
初始化時序圖
初始化操作過程如下:
-
上電等待 200us
-
發送 PR 命令
-
滿足 tRP 時間要求至少 20ns
-
發送 AR ( AutoRefresh )命令
-
滿足 tRFC ( tRPC 又名 tRCC )時間要求至少 63ns
-
發送 AR ( AutoRefresh )命令
-
滿足 tRFC ( tRPC 又名 tRCC )時間要求至少 63ns
-
發送 LMR ( LodeModeRegister )命令和相關配置信息
-
滿足 tMRD 時間要求至少 1 個時鍾
定時自動刷新
存儲體中電容的數據有效保存期上限是64ms,也就是說每一行刷新的循環周期是64ms。這樣刷新速度就是:行數量/64ms 。我們在看內存規格時,經常會看到4096 Refresh Cycles/64ms 或8192 Refresh Cycles/64ms的標識,這里的4096與8192就代表這個芯片中每個L-Bank的行數。刷新命令一次對一行有效,發送間隔也是隨總行數而變化,4096行時為15.625 μs,8192行時就為7.8125 μs。
刷新操作分為兩種:Auto Refresh,簡稱AR與Self Refresh,簡稱SR。不論是何種刷新方式,都不需要外部提供行地址信息,因為這是一個內部的自動操作。對於AR,SDRAM內部有一個行地址生成器(也稱刷新計數器)用來自動的依次生成行地址。由於刷新是針對一行中的所有存儲體進行,所以無需列尋址,或者說CAS 在RAS 之前有效。所以,AR又稱CBR(CAS Before RAS,列提前於行定位)式刷新。由於刷新涉及到所有L-Bank,因此在刷新過程中,所有L-Bank都停止工作,而每次刷新所占用的時間為9個時鍾周期(PC133 標准),之后就可進入正常的工作狀態,也就是說在這9個時鍾期間內,所有工作指令只能等待而無法執行。64ms之后則再次對同一行進行刷新,如此周而復始進行循環刷新。顯然,刷新操作肯定會對SDRAM 的性能造成影響,但這是沒辦法的事情,也是DRAM 相對於SRAM (靜態內存,無需刷新仍能保留數據)取得成本優勢的同時所付出的代價。
操作過程如下:
-
先發送 Precharge 命令,命 SDRAM 釋放所有資源庫。
-
相關操作需要消耗時間 tRP-20ns 。
-
發送 AutoRefresh 命令,命 SDRAM 刷新內部邏輯的內容。
-
相關操作需要消耗時間 tRFC-63ns 、
-
發送 AutoRefresh 命令,命 SDRAM 刷新內部邏輯的內容。
-
相關操作需要消耗時間 tRFC-63ns 。
寫操作
SDRAM的寫操作有兩種模式,如下
Write with Autopre-charge:每當一次性的寫發生以后,SDRAM自動釋放相關的資源庫,以方便下一次的寫操作。相反則需要手動進行釋放,一般采用Write with Autopre-charge。
兩者的區別就是A10的電平高低。
操作過程如下:
-
發送 Active 命令,發送庫( Bank )和行( Row )地址信息。
-
滿足 tRCD 時間要求,至少 20ns 。
-
發送 Write 命令、庫( Bank )和列( Column )地址; A10 拉高代表 With Auto Precharge ;
-
同時寫入的一字數據。這時候 DQM 必須拉低。
-
滿足 tWR ( tDPL )時間要求,至少 2 個時鍾。
-
滿足 tRP 時間要求,至少 20ns 。
經過時間tWR(tDPL)以后,一字數據就成功被寫入。隨后SDRAM開始執行Auto Precharge的操作,釋放當前相關的資源庫。最后經過tRP以后(Auto Precharge的操作完成)。
讀操作
-
發送 Active 命令、行( Row )和庫( Bank )地址。
-
滿足時間要求 tRCD-20ns 。
-
發送 Read 命令、列( Column )和庫( Bank )地址, DQM 拉低,拉高 A10 一個時鍾,表示讀操作后自動釋放資源庫( WithAutoPrecharge )。
-
滿足 CAS Latency 時間要求
-
CAS Latency 滿足之后,接下來滿足時間要求 tAC-6ns 、 tRP-20ns ,然后讀取數據。
大西瓜FPGA-->https://daxiguafpga.taobao.com
博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!
每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。