SDRAM:Synchronous Dynamic Random Access Memory,同步動態隨機存儲器,同步是指Memory工作需要同步時鐘,內部的命令的發送與數據的傳輸都以它為基準;動態是指存儲陣列需要不斷的刷新來保證數據不丟失;隨機是指數據不是線性依次存儲,而是自由指定地址進行數據讀寫。
SDRAM在讀寫數據時重點注意以下信號:
(1)CLK:時鐘信號,為輸入信號。SDRAM所有輸入信號的邏輯狀態都需要通過CLK的上升沿采樣確定。
(2)CKE:時鐘使能信號,為輸入信號,高電平有效。CKE信號的用途有兩個:一、關閉時鐘以進入省電模式;二、進入自刷新狀態。CKE無效時,SDRAM內部所有與輸入相關的功能模塊停止工作
(3)CS#:片選信號,為輸入信號,低電平有效。只有當片選信號有效后,SDRAM才能識別控制器發送來的命令。設計時注意上拉
(4)RAS#:行地址選通信號,為輸入信號,低電平有效
(5)CAS#:列地址選通信號,為輸入信號,低電平有效。
(6)WE#:寫使能信號,為輸入信號,低電平有效。
當然還包括bank[…]地址信號,這個需要根據不同的型號來確定,同樣為輸入信號;地址信號A[…],為輸入信號;數據信號DQ[…],為輸入/輸出雙向信號;數據掩碼信號DQM,為輸入輸出雙向信號,方向與數據流方向一致,高電平有效。當其有效時,數據總線上出現的對應數據字節被接收端屏蔽。SDRAM之所以成為DRARM就是因為它要不斷進行刷新(Refresh)才能保留住數據,因此它是DRAM最重要的操作。那么要隔多長時間重復一次刷新,目前公認的標準是,存儲體中電容的數據有效保存期上限是64ms(毫秒,1/1000秒),也就是說每一行刷新的循環周期是64ms。這樣刷新速度就是:行數量/64ms。我們在看內存規格時,經常會看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的標識,這里的4096與8192就代表這個芯片中每個Bank的行數。刷新命令一次對一行有效,發送間隔也是隨總行數而變化,4096行時為15.625μs(微秒,1/1000毫秒),8192行時就為7.8125μs。HY57V561620為8192 refresh cycles / 64ms。
SDRAM是多Bank結構,例如在一個具有兩個Bank的SDRAM的模組中,其中一個Bank在進行預充電期間,另一個Bank卻馬上可以被讀取,這樣當進行一次讀取后,又馬上去讀取已經預充電Bank的數據時,就無需等待而是可以直接讀取了,這也就大大提高了存儲器的訪問速度。
為了實現這個功能,SDRAM需要增加對多個Bank的管理,實現控制其中的Bank進行預充電。在一個具有2個以上Bank的SDRAM中,一般會多一根叫做BAn的引腳,用來實現在多個Bank之間的選擇。
SDRAM具有多種工作模式,內部操作是一個復雜的狀態機。SDRAM器件的引腳分為以下幾類。
(1)控制信號:包括片選、時鐘、時鐘使能、行列地址選擇、讀寫有效及數據有效。
(2)地址信號:時分復用引腳,根據行列地址選擇引腳,控制輸入的地址為行地址或列地址。
(3)數據信號:雙向引腳,受數據有效控制。
SDRAM的所有操作都同步于時鐘。根據時鐘上升沿控制管腳和地址輸入的狀態,可以產生多種輸入命令。
模式寄存器設置命令。
激活命令。
預充命令。
讀命令。
寫命令。
帶預充的讀命令。
帶預充的寫命令。
自動刷新命令。
自我刷新命令。
突發停命令。
空操作命令。
根據輸入命令,SDRAM狀態在內部狀態間轉移。內部狀態包括模式寄存器設置狀態、激活狀態、預充狀態、寫狀態、讀狀態、預充讀狀態、預充寫狀態、自動刷新狀態及自我刷新狀態。
SDRAM支持的操作命令有初始化配置、預充電、行激活、讀操作、寫操作、自動刷新、自刷新等。所有的操作命令通過控制線CS#、RAS#、CAS#、WE#和地址線、體選地址BA輸入。
1、行激活
行激活命令選擇處于空閑狀態存儲體的任意一個行,使之進入準備讀/寫狀態。從體激活到允許輸入讀/寫命令的間隔時鐘節拍數取決于內部特征延時和時鐘頻率。HY57V561620內部有4個體,為了減少器件門數,4個體之間的部分電路是公用的,因此它們不能同時被激活,而且從一個體的激活過渡到另一個體的激活也必須保證有一定的時間間隔。
2、預充電
預充電命令用于對已激活的行進行預充電即結束活動狀態。預充電命令可以作用于單個體,也可以同時作用于所有體(通過所有體預充電命令)。對于觸發寫操作必須保證在寫入預充電命令前寫操作已經完成,并使用DQM禁止繼續寫入數據。預充電結束后回到空閑狀態,也可以再次被激活,此時也可以輸入進入低功耗、自動刷新、自刷新和模式設置等操作命令。
預充電中重寫的操作與刷新操作一樣,只不過預充電不是定期的,而只是在讀操作以后執行的。因為讀取操作會破壞內存中的電荷。因此,內存不但要每64ms刷新一次,而且每次讀操作之后還要刷新一次。
3、自動預充電
如果在觸發讀或觸發寫命令中,A10/AP位置為“1”,在讀寫操作完成后自動附加一個預充電動作。操作行結束活動狀態,但在內部狀態機回到空閑態之前不能給器件發送新的操作命令。
4、觸發讀
觸發讀命令允許某個體中的一行被激活后,連續讀出若干個數據。第一個數據在經過指定的CAS延時節拍后呈現在數據線上,以后每個時鐘節拍都會讀出一個新的數據。觸發讀操作可以被同體或不同體的新的觸發讀/寫命令或同一體的預充電命令及觸發停止命令中止。
5、觸發寫
觸發寫命令與猝發讀命令類似,允許某個體中的一行被激活后,連續寫入若干個數據。第一個寫數據與觸發寫命令同時在數據線上給出,以后每個時鐘節拍給出一個新的數據,輸入緩沖在觸發數據量滿足要求后停止接受數據。觸發寫操作可以被觸發讀/寫命令或DQM數據輸入屏蔽命令和預充電命令或觸發停止命令中止。
6、自動刷新
由于動態存儲器存儲單元存在漏電現象,為了保持每個存儲單元數據的正確性,HY57V561620必須保證在64ms內對所有的存儲單元刷新一遍。一個自動刷新周期只能刷新存儲單元的一個行,每次刷新操作后內部刷新地址計數器自動加“1”。只有在所有體都空閑(因為4個體的對應行同時刷新)并且未處于低功耗模式時才能啟動自動刷新操作,刷新操作執行期間只能輸入空操作,刷新操作執行完畢后所有體都進入空閑狀態。該器件可以每間隔7.8μs執行一次自動刷新命令,也可以在64ms內的某個時間段對所有單元集中刷新一遍。
7、自刷新
自刷新是動態存儲器的另一種刷新方式,通常用于在低功耗模式下保持SDRAM的數據。在自刷新方式下,SDRAM禁止所有的內部時鐘和輸入緩沖(CKE除外)。為了降低功耗,刷新地址和刷新時間全部由器件內部產生。一旦進入自刷新方式只有通過CKE變低才能激活,其他的任何輸入都將不起作用。給出退出自刷新方式命令后必須保持一定節拍的空操作輸入,以保證器件完成從自刷新方式的退出。如果在正常工作期間采用集中式自動刷新方式,則在退出自刷新模式后必須進行一遍(對于HY57V561620來說,8192個)集中的自動刷新操作。
8、時鐘和時鐘屏蔽
時鐘信號是所有操作的同步信號,上升沿有效。時鐘屏蔽信號CKE決定是否把時鐘輸入施加到內部電路。在讀寫操作期間,CKE變低后的下一個節拍凍結輸出狀態和猝發地址,直到CKE變高為止。在所有的體都處于空閑狀態時,CKE變低后的下一個節拍SDRAM進入低功耗模式并一直保持到CKE變高為止。
9、DQM操作
DQM用于屏蔽輸入輸出操作,對于輸出相當于開門信號,對于輸入禁止把總線上的數據寫入存儲單元。對讀操作DQM延遲2個時鐘周期開始起作用,對寫操作則是當拍有效。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602993
發布評論請先 登錄
相關推薦
評論