女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SDRAM同步動態隨機存儲器的操作說明

FPGA之家 ? 來源:FPGA之家 ? 2024-11-05 17:35 ? 次閱讀

SDRAM是做嵌入式系統中,常用是的緩存數據的器件。基本概念如下(注意區分幾個主要常見存儲器之間的差異):

SDRAM(Synchronous Dynamic Random Access Memory),同步動態隨機存儲器。同步是指 Memory工作需要同步時鐘,內部的命令的發送與數據的傳輸都以它為基準;動態是指存儲陣列需要不斷的刷新來保證存儲的數據不丟失,因為SDRAM中存儲數據是通過電容來工作的,大家知道電容在自然放置狀態是會有放電的,如果電放完了,也就意味著SDRAM中的數據丟失了,所以SDRAM需要在電容的電量放完之前進行刷新;隨機是指數據不是線性依次存儲,而是自由指定地址進行數據的讀寫。

1. 注意事項

以下是我在學習過程中總結的一些容易理解錯誤的細節,如果對其中有些概念不太明確,建議先學習基本概念。

1.1 突發長度(Burst Length)

突發傳輸是指:在行地址指定后,只要指定起始列地址與突發長度,內存就會依次地自動對后面相應數量的存儲單元進行讀/寫操作而不再需要控制器連續地提供列地址。

對SDRAM器件的讀和寫是面向突發的,而突發長度(BL)則是可編程的。

突發長度決定了給定讀寫命令可以訪問的最大的列位置的個數。

不管是順序(Sequential)還是交叉(Interleaved)突發類型,其突發長度均可為1,2,4,8或連續。對于順序突發類型,還適用于連續的頁面突發。

連續頁面突發與BURST TERMINATE命令一起使用以產生任意突發長度。

保留狀態不應使用,因為這會導致未知操作或與未來的版本不匹配。
當讀或寫命令提交時,一個等于突發長度的列的塊被有效選擇。所有對該突發的訪問發生在本塊之內,意味著當遇到邊界時,突發會在該塊之內循環(wraps within the block)。當BL=2時,該塊唯一地被A[8:1]所選擇,當BL=4時,A[8:2],BL=8時,A[8:3]。其余的地址位被用于選擇塊內的起始地址。

1.2 自動刷新AS(Auto Refresh)和自刷新SR(Self Refresh)

刷新操作分為兩種:自動刷新(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(靜態內存,無需刷新仍能保留數據)取得成本優勢的同時所付出的代價。

SR則主要用于休眠模式低功耗狀態下的數據保存,這方面最著名的應用就是STR(Suspend to RAM,休眠掛起于內存)。在發出AR命令時,將CKE置于無效狀態,就進入了SR模式,此時不再依靠系統時鐘工作,而是根據內部的時鐘進行刷新操作。在SR期間除了CKE之外的所有外部信號都是無效的(無需外部提供刷新指令),只有重新使CKE有效才能退出自刷新模式并進入正常操作狀態。

2. 操作說明

我們以SDRAM芯片IS42S16320D為例,盡可能詳細的說明一下對其實現操作的方法。相關的Verilog代碼在后面給出。

2.1 時序

時序圖如下圖所示,在操作過程中,每個命令的執行或者數據的讀寫,都要滿足相應的時序要求,一定要仔細
83d8d5fc-90ae-11ef-a511-92fbcf53809c.jpg

為滿足命令鎖存所需的建立時間tCMS和保持時間tCMH,需要對SD_clk采用與clk反向或者分頻機制。
系統時鐘clk為100MHz

2.2 刷新時間

SDRAM內部電容保存數據的最長時間是64ms,而我們一個BANK有8K行,64ms/8k~=7.8us,也就是說為了保證SDRAM內部的數據不被丟失,兩次刷新之間的最大時間間隔為7.8us,所以為了能讓SDRAM有更多的時間進行讀或者寫,并且留夠余量,我們就設定SDRAM刷新的周期為7.7us。

從時序上看,在讀寫過程中如果需要刷新,則先進入PRECHARGE然后進入IDLE,再進行刷新。

因此我們要保證的是 刷新時間+需要等待的時間<=7.8us.
如果是讀,則需要等待的時鐘周期為 激活時間(tRCD)+ CAS Latency (tCL)+ 讀一頁的時間 +預充電的時間(tRP)
如果是寫,則需要等待的時鐘周期為 激活時間(tRCD)+ 寫一頁的時間 + 預充電的時間(tRP)

在實現上,可以采用定時和手動控制刷新兩種方式結合。7.7us的定時計數器不斷地進行,如果沒計時到7.7us,有收到刷新請求信號,那么開始刷新,并且計數器重新計數。這樣就可以實現,每讀/寫一次(讀寫完整時間應該滿足上述要求),手動刷新。如果長期等待,則靠計數器定時刷新。

2.3 頁操作(full page)

一般而言,要實現快速大數據的讀寫,可以采用頁操作,即突發長度設計為full page。
SDRAM在頁操作模式下必須使用突發停止命令停止其操作。這回要發揮頁模式的靈活性和高效性,那么就要做成一個由外部輸入數據控制其一次性操作的字節數,也就是說,外部在讀寫數據前事先控制一個寄存器,往寄存器寫入需要操作的字節數,而進入讀寫操作后,SDRAM控制器根據外部給出的字節數在適當的時候發出突發停止命令,這樣做到了SDRAM的讀寫操作的字節可以在1-256范圍內靈活調整,增強了通用性。

2.4 狀態機

IS42S16320D手冊里面給出的狀態圖,仔細理解每個狀態的流程及跳變條件。
84097e5a-90ae-11ef-a511-92fbcf53809c.jpg

3. 詳細操作

IS42S16320D的操作主要包括上電初始化、空閑、讀、寫、刷新等狀態。

3.1 初始化

芯片在上電之后有一些固定的操作,手冊里面已經明確的說明,如下圖。

8454d878-90ae-11ef-a511-92fbcf53809c.jpg

主要包括以下幾個步驟的操作,圖表里面代表操作引腳的狀態。

上電延遲

851cf722-90ae-11ef-a511-92fbcf53809c.png

上電后,芯片有個100us的延遲(其他RAM一說200us),期間命令指令設置為NOP或者COMMAND INHIBIT。CKE的狀態呢(不管還是一直為高),貌似一直為高才行,因為命令依賴于clk的上升沿,而要使clk有效,必須置高CKE?

預充電

854e40de-90ae-11ef-a511-92fbcf53809c.png

電延遲以后,對所有bank進行預充電。Bank關閉現有工作行,準備打開新行的操作就是預充電(Precharge)。

自動刷新
857498ec-90ae-11ef-a511-92fbcf53809c.png

充電完成后,間隔tRP Command Period (PRE to ACT) 最小15ns,進行第一次自動刷新,再過tRC Command Period (REF to REF / ACT to ACT) 最小60ns,進行第二次自動刷新。

模式寄存器配置
85988284-90ae-11ef-a511-92fbcf53809c.png

第二次自動刷新后,間隔tRC(60ns)再進行模式寄存器設置。注意,具體的模式依賴于A9-A0管腳的高低電平。具體參加下圖。
85b80f28-90ae-11ef-a511-92fbcf53809c.png

初始化完成
85df57d6-90ae-11ef-a511-92fbcf53809c.png

模式寄存器設置完成后,間隔tMRD Mode Register Program Time 14ns后,就可以給ACTIVE命令,即使行地址處于工作狀態。

如下圖所示,為功能仿真完成上電初始化過程。
86a119de-90ae-11ef-a511-92fbcf53809c.png

3.2 行激活

IDLE狀態進入讀寫前,一定要行激活ROW ACTIVE。行激活命令完成之后,需要經過tRCD Active Command To Read / Write Command Delay Time 15 ns才能進行讀或寫。同一bank,不同row,激活需要間隔至少6個周期;不同bank,不同row,激活需要間隔至少2個周期,可以提高速度。
86d0fcee-90ae-11ef-a511-92fbcf53809c.jpg

3.3 寫數據

8702df3e-90ae-11ef-a511-92fbcf53809c.png

寫入的第一個數據與WRITE命令對齊,寫完burs length的長度之后,輸入自動變為高阻,不再接收數據。如果全頁寫入的話,如果不給burst terminate,會從頭開始覆蓋著寫入。
8722f116-90ae-11ef-a511-92fbcf53809c.png

如果采用全頁寫入的方式,當需要PRECHARGE的時候,需要預留tDPL的時間(14 ns,與最后一個數據的上升沿對齊),寫入過程即被中斷,然后在第一定時間(tRP)之后開始刷新。一般來說,write被中斷時,可以拉高DQM以阻斷數據的輸入。采用PRECHARGE中斷寫操作的缺點是需要考慮合適的時間點去配置cmd和address。優點是它可以任何時候去中斷寫操作,不論是固定長度的寫操作還是全頁寫操作。
8745e4be-90ae-11ef-a511-92fbcf53809c.png

注意:在讀或寫的命令中,A10控制是否自動預充電。

3.4 讀數據

87762840-90ae-11ef-a511-92fbcf53809c.png

在連續讀的時候,如果新的命令加入(寫、讀、預充電),發出時刻x必須滿足最后一個期望讀出的數據到來前的CAS Latency-1個周期。
8795d988-90ae-11ef-a511-92fbcf53809c.png

在讀轉寫的過程中,寫命令發出時刻應在最后一個讀出數據所在時刻。但是,在實際系統中,為了避免I/O切換輸入輸出狀態時,出現沖突,所以寫指令會延后一個周期。In a given system design, there may be a possibility that the device driving the input data will go Low-Z before the SDRAM DQs go High-Z. In this case, at least a single-cycle delay should occur between the last read data and the WRITE command.
控制DMQ來避免I/O沖突,在WRITE命令來之前三個周期就要把DMQ拉高。注意DMQ并不會直接抑制輸出,只是抑制內部的buffer,所以當DMQ拉高時,實際上抑制之前buffer的數據還是照樣輸出。在WRITE命令來之前,必須把DMQ再拉低,否則輸入無效。(For example, if DQM was LOW during T4 in Figure RW2, then the WRITEs at T5 and T7 would be valid, while the WRITE at T6 would be invalid.???)
87bba578-90ae-11ef-a511-92fbcf53809c.png

87e5150c-90ae-11ef-a511-92fbcf53809c.png

4. 疑問

周期性刷新的執行過程采用的是:每次在同一bank和同一row中讀寫完成后先預充電,再刷新2次。可不可以只刷新,而不用預充電???

狀態機上,CBR明明自動進入PRECHARGE,這怎么解釋。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21957

    瀏覽量

    614057
  • SDRAM
    +關注

    關注

    7

    文章

    441

    瀏覽量

    56023
  • 存儲器
    +關注

    關注

    38

    文章

    7634

    瀏覽量

    166405
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3665

    瀏覽量

    130900

原文標題:FPGA實戰操作(1) -- SDRAM(操作說明)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    SDRAM芯片引腳說明存儲單元

    SDRAM英文名是:Synchronous Dynamic Random Access Memory,即同步動態隨機存儲器
    發表于 04-04 17:11 ?6974次閱讀
    <b class='flag-5'>SDRAM</b>芯片引腳<b class='flag-5'>說明</b>和<b class='flag-5'>存儲</b>單元

    簡單認識雙倍速率同步動態隨機存取存儲器

    同步動態隨機存取存儲器SDRAM)的工作模式中,以數據讀取速率來分類,有單倍數據速率 (Single Data Rate, SDR) SDRAM、雙倍數據速率(Double Dat
    發表于 11-20 10:58 ?1530次閱讀
    簡單認識雙倍速率<b class='flag-5'>同步</b><b class='flag-5'>動態隨機存取存儲器</b>

    FLASH存儲器與SRAM最主要的區別是什么

    地擦除,而EEPROM可以單個字節擦除。SRAM是靜態隨機存取存儲器。它是一種具有靜止存取功能的內存,不需要刷新電路即能保存它內部存儲的數據。注意:SRAM和SDRAM是不相同的,SDRAM
    發表于 03-02 07:20

    基于DSP的VXI總線動態存儲器設計

    本文主要解決在VXI總線模塊上實現大容量動態存儲器的技術難題,介紹了利用可編程邏輯器件實現數字信號處理(DSP)與同步動態
    發表于 07-15 11:21 ?16次下載

    什么是SDRAM內存

    什么是SDRAM內存   SDRAM是“Synchronous Dynamic random access memory”的縮寫,意思是“同步動態
    發表于 12-17 11:14 ?1004次閱讀

    STM32同步動態隨機存取存儲器SDRAM)的源代碼程序資料免費下載

    本文檔的主要內容詳細介紹的是STM32同步動態隨機存取存儲器SDRAM)的源代碼程序資料免費下載
    發表于 08-31 15:53 ?22次下載

    SDRAM初始化分為6個步驟及SDRAM存儲器布局

    SDRAM同步動態隨機存取存儲器的縮寫。在微控制應用中,微控制通過使用外部存儲控制
    的頭像 發表于 11-23 11:38 ?7891次閱讀
    <b class='flag-5'>SDRAM</b>初始化分為6個步驟及<b class='flag-5'>SDRAM</b><b class='flag-5'>存儲器</b>布局

    SRAM隨機存儲器的特點及結構

    關于SRAM隨機存儲器的特點及結構。 SRAM隨機存儲器的特點 隨機存儲器最大的特點就是可以隨時
    發表于 04-30 15:48 ?3570次閱讀
    SRAM<b class='flag-5'>隨機</b><b class='flag-5'>存儲器</b>的特點及結構

    各種隨機存儲器件之中,SDRAM脫穎而出的優勢是什么

    在現代的通信及基于FPGA的圖像數據處理系統中,經常要用到大容量和高速度的存儲器SDRAM有一個同步接口,在響應控制輸入前會等待一個時鐘信號,這樣就能和計算機的系統總線同步。在各種的
    發表于 12-02 16:36 ?1062次閱讀
    各種<b class='flag-5'>隨機</b><b class='flag-5'>存儲器</b>件之中,<b class='flag-5'>SDRAM</b>脫穎而出的優勢是什么

    如何辨別SRAM是否屬于動態隨機存儲器

    一般計算機系統所使用的隨機存取內存主要包括動態與靜態隨機存取內存兩種,差異在于DRAM需要由存儲器控制電路按一定周期對存儲器刷新,...
    發表于 02-07 12:29 ?1次下載
    如何辨別SRAM是否屬于<b class='flag-5'>動態</b><b class='flag-5'>隨機</b><b class='flag-5'>存儲器</b>

    動態隨機存儲器集成工藝(DRAM)詳解

    在當前計算密集的高性能系統中,動態隨機存儲器(DRAM)和嵌入式動態隨機存取存儲器(embedded-DRAM,eDRAM)是主要的動態快速
    的頭像 發表于 02-08 10:14 ?1.1w次閱讀

    淺析動態隨機存儲器DRAM集成工藝

    在當前計算密集的高性能系統中,動態隨機存儲器(DRAM)和嵌入式動態隨機存取存儲器(embedded-DRAM,eDRAM)是主要的動態快速
    發表于 02-08 10:14 ?1048次閱讀
    淺析<b class='flag-5'>動態</b><b class='flag-5'>隨機</b><b class='flag-5'>存儲器</b>DRAM集成工藝

    SDRAM工作原理 SDRAM布局布線說明

    SDRAM全稱Synchronous Dynamic RAM,同步動態隨機存儲器。首先,它是RAM,即
    發表于 08-08 15:10 ?2775次閱讀
    <b class='flag-5'>SDRAM</b>工作原理 <b class='flag-5'>SDRAM</b>布局布線<b class='flag-5'>說明</b>

    低功耗雙倍速率同步動態隨機存取存儲器介紹

    低功耗雙倍速率同步動態隨機存取存儲器 (Low Power Double Data Rate SDRAM, LPDDR SDRAM)簡稱為 LPDDR,是DDR
    的頭像 發表于 11-21 09:37 ?987次閱讀
    低功耗雙倍速率<b class='flag-5'>同步</b><b class='flag-5'>動態隨機存取存儲器</b>介紹

    SDRAM的特點與應用

    同步動態隨機存儲器(Synchronous Dynamic Random Access Memory,簡稱SDRAM)是一種基于
    的頭像 發表于 07-29 16:56 ?3471次閱讀