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

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

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

3天內不再提示

零基礎學FPGA - SDRAM(理論篇)

電子工程師 ? 來源:至芯科技 ? 作者:至芯科技 ? 2021-03-25 17:08 ? 次閱讀

一、從結構說起:

1、P-bank

SDRAM,也即我們的內存,我們的電腦手機等設備都離不開我們的內存。一個設備運行速度的快慢,內存起到關鍵性的作用,就像我們的電腦,開機之后一般都是把一些應用程序加載到內存里運行,因為RAM的讀寫速度要遠遠大于ROM,而我們的SDRAM,即同步動態隨機存儲器,就是通過不斷地刷新,充電,防止電容電量的丟失,從而保留住數據。與CPU交換數據,根據CPU位寬的不同,要相應選擇不同的SDRAM芯片,SDRAM芯片的位寬不等,我們用的這片SDRAM是16位位寬,假設我們的CPU是64位的,那么我們要想與之匹配,就必須用到4片這樣的SDRAM,才能構成64位的位寬,那么由這4片SDRAM 構成的芯片集合,我們稱之為物理bank,即P-bank,CPU通過控制SDRAM的片選信號,控制相應的芯片

2、L-bank

再往芯片里面看,每一片SDRAM里面,有幾個存儲陣列,我們開發板上的都是4個存儲陣列,這樣的存儲陣列,我們稱它為邏輯bank,即L-bank。每個存儲陣列里面有2^12行,2^8列,我們可以通過控制SDRAM的地址線,來選中相應的行與列,進而確定一個存儲單元,每個存儲單元里面就是我們的數據了,我們的芯片是16位的,所以我們的存儲單元也就是16位的。

這樣一來,CPU通過片選信號選中一片SDRAM,然后訪問某一個L-bank,通過行列地址確定某一個存儲單元,將存儲單元里的數據讀出來送到CPU。這樣看來,芯片的位寬就是我們的存儲單元的位寬,若是一同選中所有SDRAM芯片,那么輸出的也就是16X4=64位的CPU位寬了。

3、芯片容量 與 內存容量

我們來算一下SDRAM的芯片容量,一片SDRAM芯片假設有4個L-bank,2^12行,2^8列,那么它就含有4 x 2^12 x 2^8個存儲單元,又因為每個存儲單元里面有16位數據,因此,我們的芯片容量為 4 x 2^12 x 2^8 x 16 = 64Mbit = 16MB,如果是一個P-bank里面是4片SDRAM的話,那么我們的內存容量就是4 x 16 = 64MB

我們再算一下,假如我們的SDRAM的芯片位寬是8位的但是芯片容量不變,即芯片位寬是8位,芯片容量是16MB,那么,要想與64位的CPU匹配,我們需要8片SDRAM,那么我們的內存容量就是8 x 16 = 128MB,由此可見,在芯片容量相同的情況下,位寬越小,內存容量越大。這就說明了,為什么我們的臺式電腦要用位寬小的芯片,因為臺式電腦空間大,位寬越小,用的芯片越多,內存也就越大,相反,我們的手機就必須用大位寬的芯片,從而節約空間,但是付出了內存容量小的代價,這也說明了為什么我們的手機或者筆記本電腦不如臺式機運行速度快的原因,在內存方面差了一大截

下面是我用畫圖做的一個框架,幫助大家理解

3d1ff2ac-8c67-11eb-8b86-12bb97331649.jpg

二、工作原理其實不難

這部分我們就按照代碼的順序開始講起

1、初始化

40506362-8c67-11eb-8b86-12bb97331649.jpg

初始化開始,SDRAM需要經過一個200us的穩定延時,這部分在代碼部分直接做一個計數器就好了,下面來講一下預充電

預充電

官方解釋是 L-Bank關閉現有工作行,準備打開新行的操作就是預充電。也就是說,我們發送了一個行地址,有發送了一個列地址,找到了相應的存儲單元之后,如果我們想訪問另一個地址,而這個地址不在這一行內,那么我們就需要先將這一工作行關閉,這個過程就是預充電,然而剛開始我們還沒有發送行列地址,只是先做一下初始化,以后等我們要發送行列地址的時候,為了手動設置預充電麻煩,我們可以告訴SDRAM在每次尋址完之后自動進行預充電即可

自刷新

我們之所以叫DRAM,就是因為它是動態的,就是每隔一段時間進行一次刷新,確保那些沒有被讀寫過的數據不會以為時間長導致電容漏電,從而導致數據丟失,因此,每隔一段時間要對存儲單元進行一次自刷新,由于存儲體中電容的數據有效保存期上限是64ms,因此,我們需要每64ms對所有的存儲體進行一次刷新,又因為我們有2^12= 4096行,那么我們來算一下,每刷新一行所要的時間是64ms/4096 = 15us 也就是說,我們每15us需要發送一個自刷新命令

模式寄存器配置

40997f70-8c67-11eb-8b86-12bb97331649.jpg

模式寄存器的配置主要還是用于后面的讀寫操作的,我們先看上面,是地址總線,首先大家不要被他迷惑,我們的地址總線是12位的,行列共用,他前面的兩位bank地址不屬于地址總線范圍,只是在配置的時候需要用到那兩位,所以會將其加進來,下面來一一解釋。

關于操作模式 : 操作模式可以分為突發讀,突發寫,單一寫等,突發讀就是我們在發送了行列地址后,找到了我們要的存儲單元地址,對它進行讀,如果設置了突發讀的話,那么我們在讀取第一個數據之后,如果想讀取這個存儲單元后面的一個存儲單元的數據的話,就不必再次發送行列地址了,他會自動的讀取接下來的數據,至于讀幾個存儲單元,就涉及到突發長度,一般是2,4,8,全頁的方式,全頁就是將這一行上的數據一連串的全部讀出或寫入,同時還涉及到突發傳輸方式,分為順序和交錯傳輸,順序傳輸就是依次讀后面的幾個存儲單元,交錯傳輸就是隔一個讀一個。

關于潛伏期 : 潛伏期就是我們發送了行列地址后,數據并不是馬上到達數據總線,而是要經過一段潛伏期,一般為2到3個時鐘周期,注意潛伏期不是延遲,潛伏期是發送列地址后數據已經有效,只是還沒有達到一定的高度,或者說是信號不夠強,要經過一定的放大才能輸出,所以說潛伏期不是延遲

2、工作狀態

初始化結束以后,SDRAM就可以正常工作了,這個時候,如果收到讀寫信號,并且收到地址,那么SDRAM就會進行相應的尋址,并將數據作相應處理。

讀狀態

上面說了,SDRAM的地址是行列共用,也就是說行地址和列地址共用那條12位的地址線,假設某個時間我們要讀一個數據,那么就先要發送12位地址線,就是行地址,當然也要接著發送的是P-bank的地址,但是這個時候還沒有發送讀信號,讀信號要和列地址一起發送,我們稱這個狀態為行有效(RAS)

發送完行地址之后,就要發送列地址,但是不能馬上發送,要經過一定的延時,這個延時我們叫做行有效到列有效的延時,即Trcd

經過Trcd之后,我們需要發送列地址,即列有效(CAS),這樣我們就確定了我們邏輯單元所在的位置了,在發送列地址的同時,給SDRAM發送讀命令。有人會問,既然地址線是行列共用,那么12位的地址線,列地址才占8位,其他的怎么用?沒錯,列地址是只占了8位,還有第8到11位地址線沒用,這個時候我們就將其補零就好了,湊夠12位地址發送給SDRAM,但是我們有一位地址很重要就是A10位,A10位置1的話,那么我們每次進行完一次讀寫,SDRAM就會自動預充電,因此,我們一般把地址總線的第8到11位賦值0100,然后與列地址合并,再發給SDRAM。

40cb85ec-8c67-11eb-8b86-12bb97331649.jpg

發送完列地址后,也就是讀命令后,就要進入潛伏期Tcl,剛剛說了,數據在潛伏期里,要經過一定的放大驅動,達到一定的高度之后才會被輸出,這個放大的過程是在一個叫做S-AMP的通道里完成的,每一個存儲體都對應一個S-AMP通道 ,因此從數據I/O總線上有數據輸出之前的一個時鐘上升沿開始,數據即已傳向S-AMP,也就是說此時數據已經被觸發,經過一定的驅動時間最終傳向數據總線進行輸出,這段時間稱之為tAC

在后面的時序分析中,我們會用到這個參數,即數據在SDRAM芯片中的傳輸時間Tco,數據輸出到SDRAM數據總線上以后會有一個保持時間Toh,也是我們以后做時序分析要用到的參數,這兩個參數告訴我們,數據從有效前的一個時鐘周期開始算起,最大要經過Tac時間才會輸出到數據總線,最慢需要Toh時間因此,在后面的時序分析中我們要計算,數據在SDRAM芯片的傳輸時間 Toh 《 Tco 《 Tac

4106b720-8c67-11eb-8b86-12bb97331649.jpg

寫狀態

寫狀態跟讀狀態有一點不同,就是寫狀態沒有潛伏期,即行有效之后,等待Trcd后發送寫命令和列地址,數據直接會寫到數據總線上,也就是說,寫數據是零延時的,但是,即使寫數據是零延時的,但是數據要進入SDRAM的存儲體還是需要時間的,這個時間叫做寫回延時Twr,試想,如果SDRAM工作在寫回延時狀態,突然來了一個預充電,那么數據是不是就不能正確的被寫入了,因此,寫回延時不能和預充電同時進行。

4161caf2-8c67-11eb-8b86-12bb97331649.jpg

三、參數總結

好了,說了這么多,是不是感覺SDRAM的操作并不難,那么我們就來總結一下之前出現的一些參數吧,這些參數的消化,能夠幫我們更好的理解SDRAM的工作原理

1、RAS : 行有效

2、Trcd : 行地址到列地址的延時時間,單位是周期數,一般為2到3個時鐘周期

3、CAS : 列有效,同時發送讀寫命令

4、 Tcl : 潛伏期,發生在讀狀態,數據有效到出現在數據總線上的延時,單位為周期數

5、 Tac : 數據從存儲單元里出來之后,已經進入S-AMP通道進行驅動與放大,到出現在數據總線上的時間

6、 Toh : 數據出現在數據總線上,并保持一段時間

7、 Trp : 在發出預充電命令之后,要經過一段時間才能允許發送RAS行有效命令打開新的工作行

8 、Twr :寫狀態時的寫回延時,寫入的數據進入SDRAM存儲單元的時間

編輯:jq

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

    關注

    1643

    文章

    21967

    瀏覽量

    614178
  • SDRAM
    +關注

    關注

    7

    文章

    441

    瀏覽量

    56034
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一技在手,醫療無憂!零基礎轉行高薪醫療維修工程師

    ,剩下的就看個人能力了,對醫療器械維修感興趣但迷茫的可聯系我們,幫你解決疑難問題,帶你入門醫療維修行業! 一技在手,醫療無憂!零基礎轉行高薪醫療維修工程師!” “缺口40萬+,月薪過萬!搶占醫療行業
    發表于 05-15 10:22

    【「零基礎開發AI Agent」閱讀體驗】+讀《零基礎開發AI Agent》掌握扣子平臺開發智能體方法

    收到發燒友網站寄來的《零基礎開發AI Agent》這本書已經有好些天了,這段時間有幸拜讀了一下全書,掌握了一個開發智能體的方法。 該書充分從零基礎入手,先闡述了Agent是什么,它的基本概念和知識
    發表于 05-14 19:51

    【「零基礎開發AI Agent」閱讀體驗】+ 入門學習

    很高興又有機會學習ai技術,這次試讀的是「零基礎開發AI Agent」,作者葉濤、管鍇、張心雨。 大模型的普及是近三年來的一件大事,萬物皆可大模型已成為趨勢。作為大模型開發應用中重要組成部分,提示詞
    發表于 05-02 09:26

    【「零基礎開發AI Agent」閱讀體驗】+初品Agent

    期待中的《零基礎開發AI Agent——手把手教你用扣子做智能體》終于寄到了,該書由葉濤、 管鍇、張心雨完成,并由電子工業出版社出版發行。 全書分為三個部分,即入門、工具及實踐
    發表于 04-22 11:51

    開始電源

    開始電源···內部開始電源---------內部 (寫這篇文的著眼點就在“從
    發表于 04-07 15:30

    零基礎學習一階RC低通濾波器(從原理到實踐)

    *附件:零基礎學習一階RC低通濾波器(從原理到實踐).docx
    發表于 03-26 14:35

    Vivado Tcl零基礎入門與案例實戰【高亞軍編著】

    Vivado Tcl零基礎入門與案例實戰-高亞軍編寫
    發表于 01-14 11:13

    零基礎開發小安派-Eyes-S1【進階】——初識 LVGL 并搭建最小工程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學習小安派: 1、零基礎開發小安派-Eyes-S1【入門
    的頭像 發表于 01-06 16:14 ?623次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1【進階<b class='flag-5'>篇</b>】——初識 LVGL 并搭建最小工程

    零基礎開發小安派-Eyes-S1 外設——DAC

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學習小安派: 1、零基礎開發小安派-Eyes-S1【入門
    的頭像 發表于 12-27 10:55 ?1145次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1 外設<b class='flag-5'>篇</b>——DAC

    零基礎開發小安派-Eyes-S1外設——I2S

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學習小安派: 1、零基礎開發小安派-Eyes-S1【入門
    的頭像 發表于 12-13 18:02 ?1506次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1外設<b class='flag-5'>篇</b>——I2S

    零基礎開發小安派-Eyes-S1【外設】——FLASH

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學習小安派: 1、零基礎開發小安派-Eyes-S1【入門】—
    的頭像 發表于 12-05 14:31 ?653次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1【外設<b class='flag-5'>篇</b>】——FLASH

    零基礎入門PCB工程師

    各位前輩大家好,零基礎入門PCB工程師,有什么學習資料推薦嗎?
    發表于 11-27 16:54

    零基礎開發小安派-Eyes-S1 外設 ——I2C

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學習小安派: 1、零基礎開發小安派-Eyes-S1【入門】—
    的頭像 發表于 11-27 16:39 ?728次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1 外設<b class='flag-5'>篇</b> ——I2C

    零基礎開發小安派-Eyes-S1【外設】——PWM

    小安派-Eyes-S1【入門】——初識小安派-Eyes-S12、零基礎開發小安派-Eyes-S1【入門】——安裝VMware與Ubuntu3、入門
    的頭像 發表于 11-06 16:10 ?427次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1【外設<b class='flag-5'>篇</b>】——PWM

    零基礎開發小安派-Eyes-S1外設——GPIO 輸入輸出

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學習小安派: 1、零基礎開發小安派-Eyes-S1【入門
    的頭像 發表于 10-25 13:50 ?1384次閱讀
    <b class='flag-5'>零基</b>礎開發小安派-Eyes-S1外設<b class='flag-5'>篇</b>——GPIO 輸入輸出