SDRAM学习笔记
SDRAM学习资料
SDRAM學習資料目錄目錄一、DRAM構造及動作原理 (3)二、SDRAM整體結構 (8)三、SDRAM的信號 (9)四、SDRAM命令 (11)五、SDRAM存取動作 (15)六、SDRAM寫入動作 (16)一、DRAM構造及動作原理1.1 DRAM的定義及特點.1.1.1 定義. DRAM(Dynamic Random Access Memory)動態隨機存取記憶體.1.1.2 DRAM特點.a. 記憶單元(memory cell)較小,包括一個電晶體和一個電容器.構造簡單,易於提高集成度.b. 記憶具有揮發性,超過一段時間未做存取(Acess) 動作時記憶內容會消失,必須以一定周期執行記憶內容的更新(refresh).c. 揮發性:存儲于電容器內的電荷每次讀取後由於電荷移動而消失電荷內容,為破壞性讀出.因此,在資料讀出後將同一資料回寫,不過,在DRAM內部會自動執行此回寫動作.1.2 DRAM 記憶單元構造及工作原理.1.2.1 DRAM 記憶單元(cell)的構造. 如圖1-1所示.圖1-1 DRAM CellDRAM 記憶單元(memory cell)的構成如圖1-1所示.爲1Tr-1C 結構. FET 作爲存取(Access)用開關.電容器負責記憶資料. 圖1-2中左側爲FET 部分,右側爲電容器.氧化膜形成電容器的電介質,Poly silicon形成電容器的電極,二者構成電容器.圖1-2 DRAM Cell 構造1.2.2 DRAM 記憶單元的基本工作原理.由電容器內有無存儲電荷來判定資料的有無,即”0”和”1”.電容器一端接地,另一端連接至FET 的泄極.讀取資料時連接於FET 閘極上的word line 令FET ON,令電容器接通資料線,此時電荷在電容器及資料線中移動,通過判斷資料線電壓的變化判定資料的有無(”0”或”1”).Poly Silicon氧化膜閘極1.2.3 漏電流. Memory cell儲存電荷時,電容器兩端的電壓加在FET上形成逆向偏壓狀態,因而會有漏電流存在,此漏電流導致電容器放電,因此必須定期補充電荷以使記憶單元的狀態恢復原狀,稱之爲更新(Refresh).N+:加入五族元素,產生電子,剩餘電子狀態.圖1-2 DRAM Cell之漏電流1.3 DRAM的內部電路.1.3.1 DRAM內部構造DRAM內有記憶單元選擇用Word Line ,各記憶單元連接Data Line,此Data Line經由列選擇開關連接共通Data Line,此外經由預充電開關(Pre-Charge Switch)連接至預充電電源.預充電電源的電壓爲DRAM電源電壓(VDD)的一半左右. 感測放大器(Sense Amplifier)作用為判定data line的I/O狀態,並放大data line電壓.圖1-3 DRAM之基本構造1.4 DRAM記憶單元讀取動作基本原理資料寫入: 待data line之狀態確定後令FET ON即可向電容器充放電完成寫入動作.資料讀取: 因資料讀取首先需要驅動共通data line,但記憶用電容的電容量太小,不足以驅動data line,故需按照以下步驟進行.圖1-4 DRAM讀出動作(Pre-charge)a. Data line的預充電. (爲從DRAM讀出資料的準備動作.)Pre-charge SW關閉,將Data Line連接預充電電源,將Data Line的電壓設置爲預充電電壓,此時電荷儲存於寄生電容內,故當進行後面的動作時,即使Pre-charge SW關閉,電壓仍然可保持爲預充電電壓.此過程稱爲預充電.b. 資料取出及放大.預充電動作完畢後, Pre-charge SW關閉,然後選擇Word Line,當FET ON時被選中的記憶單元的電容器與與寄生電容器並聯,於是資料的1/0令預充電電壓起伏變化,因變化量不大,故利用感測放大器加以放大.感測放大器以預充電電壓爲基準,從輸入電壓的起伏做判定而輸出H/L位元准資料.如圖1-5所示.圖1-5 DRAM讀出動作(資料之取出及放大)c. 感測放大器的連接及輸出.感測放大器的輸出端受本身之輸出電壓驅動,形成”自我保持電路”,且感測放大器的輸出連接至Data Line,能充分驅動Data Line.此時,共通Data Line開關閉合,共通Data Line被驅動,資料送到外部介面.由於此時Word Line被選擇,FET處於ON狀態,DRAM Cell的電容器與Data Line連接,電容器恢復初期狀態(保持資料讀取前後的一致).如圖1-6所示.圖1-6 DRAM讀出動作(Sense Amp.之連接與資料輸出)二、SDRAM整體結構2-1. SDRAM整體結構如圖2-1所示.Memory Array(bank):基本存儲單元所在,如圖2-2所示2-2 Memory bank結構Memory bank組成: Memory Array, Sense Amp., Row& Column decoder Memory Array容量= row*column*bitSDRAM容量=bank*(row*column*bit)Mode Register:狀態寄存器,用來切換SDRAM的狀態(Mode),以位址設定.I/O Buffer:輸入/輸出數據緩存.Row & column address buffer:行/列地址緩存control logic& timing generator:控止邏輯及時序發生器.三、SDRAM的信號A0-A12(地址Address):將地址分為行地址和列地址2次輸入SDRAM.行地址輸入時使用A0-A12,列地址輸入時使用A0-A8,此時A9-A12為無效.A10還可作為命令輸入腳,後面會詳細介紹.BA0,BA1(Bank Address): Array各Bank可獨立動作,如右真值表所示:可將一個行地址輸入其中一個Bank,再將另一個行地址輸入另外一個Bank,再回到最初的Bank輸入列地址對其進行讀取動作.CLK(Clock):時控信號輸入,所有信號輸入輸出均與這個時控信號的上波波緣同步動作./CS(Chip Select):此腳輸入信號為高時,所有其他信號無效,但內部動作(Bank Activated及Burst動作)照常執行.輸入為低時,輸入控制信號及位址均為有效./RAS,/CAS,/WE由這三條信號線的組合來指示各種操作(Operation),後面詳細說明.DQMU/DQML(DQ Mask High/Low)輸入為高時,無法進行資料讀取動作,輸入為低時資料讀取照常進行. DQMU控制高八位DQ8-DQ15,DQML控制低八位DQ0-DQ7DQ0-DQ15(Data資料)資料輸入輸出,以8bit為單位輸入出.四、SDRAM命令在SDRAM中,以各條狀態線(Control Line)的狀態的組合代表命令,經由這一組信號線發送命令給SDRAM.SDRAM命令表如下如4-1所示.圖4-1 SDRAM Command Table下面詳細介紹各條命令:4-1. Mode Register Set(MRS)此命令寫入四個信息:OPCODE,LMODE,BT,BL如下圖所示:圖4-2 Mode Register bit配置(PSC)A7一直為0OPCODE: BA1,BA0,A12, A11, A10, A9, A8一般會用來設置OPCODE,OPCODE用來設定寫入方式.寫入方式分為兩種:Burst Read and Burst Write(寫入是採取連串資料轉送方式Burst Transfer,開始地址為開始寫入列地址Command Address),連串轉送的數目由Burst Length指定;Burst Read and Signal Write寫入時僅寫入一word 資料.圖4-3 OPCODE配置對PSC,從圖4-2看到,僅採用Burst Read and Burst Write方式.LMODE: 由A4—A6設定CAS LatencyBT:用以指定Burst Sequence,分為Sequential(Liner) Burst或Interleave Burst.做Burst 轉送時,主控方(Host)秩序將開始地址通知SDRAM即可,以後地址由SDRAM 自動產生.圖4-4 Burst SequenceBL: 由A0-A2設置Burst所傳送的Word數.如圖4-2所示.4-2. Auto Refresh (REF)若欲使SDRAM執行RER,必須令SDRAM內所有的Bank的狀態為IDLE,在存取Access進行中不能下達Auto Refresh指令.SDRAM內部自動產生更新地址(Refresh Address)及Bank Address. Auto Refresh只能執行一個位地址的更新,因此必須按照Data Sheet在指定期間發行指定次數的Auto Refresh Command(自動更新命令). 在Auto Refresh後會自動執行’預充電’,所以不用發出預充電命令,在更新完畢後自動回到IDLE狀態.4-3. Self Refresh開始(SELF)/結束(SELFX)在DRAM內部自動執行Refresh動作,以命令指示Self Refresh的開始/結束. 4-4. 啟動及行地址閂鎖(ACTV)此命令指定所要存取資料的Bank Address(BA n) 及行地址(Row Address)AX0-AX12.Bank Address所指定的Bank被驅動(Active),行地址(Row Address)被閂鎖.(以AX n表示行地址,以AY n表示列地址.AX n為A n Pin所指定的地址.4-5. Data Read(READ)及Auto Precharge的Data Read(READ-A)由BA n所指定的Bank的列地址(AY0-AY8)開始進入Data Read動作.由A10Pin 的狀態選擇是否在Burst Read後自動做Pre-charge(預充電).A10為高則在Burst Read後自動執行Pre-charge動作,A10為低時,不執行Pre-charge動作,主控方(Host,即DRAM Controller)必須另外下達Pre-charge命令.4-6. Data Write(WRITE)及Auto Precharge的Data Write(Write-A)從BA n所指定的Bank的列地址AY0-AY8開始進入Data Write動作,資料從DQ n Pin輸入,同時發行WRITE命令.在做Burst Write時,此地址為Start Address(開始地址),將Burst長度的資料取入SDRAM內,在做Signal Write(單次寫入)的場合,對此地址寫入一次資料就結束寫入動作.A10的狀態同樣決定在寫動作完畢後是否做Pre-charge.4-7. 指定Bank,Pre-charge(PRE)令SDRAM執行BA n Pin所指定的Bank的Pre-charge.4-8. Power Down狀態突入/復原當SDRAM處于IDLE狀態時,發行Power Down狀態突入命令時,輸入初級電路被切離而進入低功耗狀態,如欲令其從此狀態恢復必須發行還原命令,還原後SDRAM變成IDLE狀態.4-9. 輸入無效(DESL)不接受輸入的命令,不過內部狀態被保留.4-10. No-operation(NOP)SDRAM接受此命令,但此命令並非執行命令,SDRAM的狀態保持不變.五、SDRAM存取動作如圖5-1,為SDRAM資料讀出的一個例子,所有動作都以時鍾信號(Clock)的上升緣為時間的基準.圖5-1 SDRAM的Read動作5-1. ROW Address(行地址)與Bank號碼的指定.由於SDRAM處于IDLEZ狀態,所以利用/RAS,/CAS,/WE,/CS發出ACTV命令,同時分別將行地址A0-A12及BA0/BA1輸入到指定行地址及Bank號碼,啟動所指定的Bank,移轉至Row Active狀態,隨後等待Trcd期間後即可接受下一命令,Trcd在承認書中有規定.5-2. 列地址指定及讀出命令的發行.經過Trcd過,與時鐘信號的上升波緣同步,將Read command,列地址及所要讀取的Bank編號輸入SDRAM,在讀出動作時,可連續讀出Mode Register設定的Burst長度份的資料.5-3. CAS Lantency待機發出Read命令後,經過Mode Register所設定的CAS Latency Clock數後資料輸出.圖5-1所示為CAS Latency=3時的動作情形.5-4. 資料取入經過CAS Latency時間後,Mode Register所指定的Burst Length份的資料連續出來,將此資料如入,圖5-1所示為BL=4的動作情形.資料輸出結束後DRAM 的輸出緩衝器自動變為高阻抗狀態.六、SDRAM寫入動作圖6-1所示為一個SDRAM寫入動作的例子.圖6-1 SDRAM寫入動作6-1. 行地址及Bank寫入動作發送ACTV命令給處于IDLE狀態的SDRAM,同時發送行地址和Bank號碼輸入SDRAM,即可接受下面的寫入命令的狀態6-2. 寫入命令的發送.發送ACTV命令後,等待Trcd時間後變成可接受下一個命令的狀態,接著將列地址及所要寫入的資料輸入SDRAM,同時發送Write命令,和Read不同的是,不用在意Latency,可將命令和資料同時發送給SDRAM.6-3. 資料連續寫入執行Burst Write時,隨後連續輸入資料,只要將Mode Register的Burst Length 所指定的規模(size)的資料送給SDRAM,在DRAM內部自動更新要寫入的地址,執行Burst Write動作,圖中所示的為BL=4時的動作情況.。
sdram读取原理 -回复
sdram读取原理-回复SDRAM(同步动态随机存取存储器)是一种在计算机系统中广泛使用的主存(也称为内存)技术。
它采用了一种同步的方式来读取和写入数据,使得它比传统的DRAM(动态随机存取存储器)更快速和可靠。
在本文中,我们将一步一步地讲解SDRAM的读取原理及其关键步骤。
第一步:读取请求首先,当计算机系统需要从SDRAM中读取数据时,它会发送读取请求。
这个请求包含了要读取的数据的地址和其他相关的控制信息。
读取请求通常是由处理器或其他外部设备发出的。
第二步:行地址选址当SDRAM接收到读取请求时,它会先将请求中的地址进行处理,以确定行地址。
SDRAM将地址分为两个部分:行地址和列地址。
行地址表示内存中的行,而列地址则表示行中的某个具体单元。
这种划分使得SDRAM内部排列的存储单元更加有序,有助于提高访问速度。
第三步:行预充电在进行行地址选址后,SDRAM会将所选中的行中的存储单元进行预充电。
预充电是一种将存储单元中的电荷恢复到某种初始状态的过程。
它可以确保存储单元在读取数据之前处于一种准备好的状态,以提高读取速度和准确性。
第四步:列地址选择在行预充电完成后,SDRAM会根据读取请求中的列地址选择相应的存储单元。
通过将列地址应用于预充电行中的存储单元,SDRAM可以准确地定位到要读取的数据。
第五步:数据读取当SDRAM确定了要读取的存储单元后,它会将存储单元中的数据放大并通过一条数据线将其输出。
这个数据线会将数据传输回主设备(如处理器)或其他需要的设备。
在传输数据之前,SDRAM会对数据进行一定的处理,以确保数据的准确性和完整性。
第六步:访问延迟在数据读取完成后,SDRAM需要一定的时间来重新准备好进行下一次读取或写入操作。
这个时间通常称为访问延迟。
在访问延迟期间,SDRAM 无法对其他读取请求作出响应。
访问延迟的长短取决于SDRAM本身的性能和系统中其他因素的影响。
第七步:重复操作在完成一次读取操作后,如果计算机系统需要继续从SDRAM中读取数据,它将重复以上步骤。
SDRAM原理和时序
SDRAM原理和时序SDRAM(Synchronous Dynamic Random Access Memory)是一种同步动态随机访问存储器,主要用于计算机系统中,以存储数据和指令。
本文将从原理和时序两个方面对SDRAM进行详细的解析和教程。
一、原理1.寻址:SDRAM采用地址总线将存储单元进行编号,通过地址总线可以访问存储器中特定的单元。
SDRAM的地址空间通常是2的幂次方大小,即N=2^k,其中k为地址总线的位数。
2.读写操作:SDRAM的读写操作是通过数据总线进行的。
写操作可以将数据写入特定的存储单元,而读操作可以将存储单元中的数据读取到CPU或其他外部设备。
3.预充电:SDRAM中的每个存储单元都是由一个电容和一个开关组成。
在进行读写操作之前,需要对存储单元进行预充电操作,以确保电荷的准确读取和写入。
4.刷新:SDRAM是一种动态存储器,存储单元中的电荷会逐渐漏失。
为了保持数据的有效性,SDRAM需要进行定期的刷新操作,即将所有存储单元的数据重新写入并恢复电荷。
二、时序1.读时序:SDRAM的读操作包括行选通、列选通和数据输出三个过程。
首先,通过地址总线选通特定的行(行选通),然后选通特定的列(列选通),最后将存储单元中的数据通过数据总线输出。
读操作的时序需要考虑地址选通和数据输出之间的延迟。
2.写时序:SDRAM的写操作包括行选通、列选通和数据输入三个过程。
首先,通过地址总线选通特定的行(行选通),然后选通特定的列(列选通),最后将数据通过数据总线输入到特定的存储单元中。
写操作的时序需要考虑地址选通和数据输入之间的延迟。
时序的设计和调整对于SDRAM的稳定性和性能非常重要。
不同的SDRAM芯片可能有不同的时序参数需要设置和优化。
三、教程以下是使用SDRAM的一般步骤:1.确认SDRAM的规格和时序参数,包括容量、位宽、频率等,并根据需要准备好相应的电路板和接口。
2.将SDRAM芯片焊接到电路板上,确保正确连接电源和信号线。
关于SDRAM的一点总结
5,预充电过程,当选择同一BANK的不同行的时候就要进行预充电操作,一般为2个时钟周期。
6, 刷新过程分两种,一种是自动刷新还有一种是自刷新。提高SDRAM效率必须要尽量减少以上提到的各种时间造成数据的延迟。
2,CL,读取潜伏期,读取过程中当CAS到达后并不能马上将数据输出到IO总线上,而是要经过一定的时间,这个时间就是CL,它是由于信号要经过放大等处理造成的,它的数值可以在MRS中改变,单位是芯片时钟周期。
3, 写入操作是没有任何延迟的,在CAS发出后数据就可以发出SDRAM
4,利用设置BL可以连续传送一组数据而不需要给出相应的地址只要给出第一个数据的地址就可以或写操作,CAS有效,RAS无效,地址线上为列地址,WE信号决定了究竟是读还是写操作。
SDRAM中的一些重要知识:
1,tRCD,RAS到CAS的延迟,也就是说当行有效后不能在下一个时钟周期就进行读写操作,而是要等待一定的时间,这个时间就是tRCD,一般为2个或3个时钟周期。
关于SDRAM的一点总结
SDRAM工作过程:
1,上电稳定后经过8个刷新周期,进入模式寄存器设置(MRS),确定芯片的工作模式,CL,BL,突发传输方式。
2,行有效,同时进行了片选和BANK选择工作。CS RAS有效 CAS WE无效,地址线和BA上选择相应的BANK和行(有些文档中将这两种都归为地址线,BA为地址的最高位)。
SDRAM配置笔记
嵌入式cpu的处理能力愈来愈强,系统资源使用也愈来愈多,很多嵌入式系统不得不采用sdram来扩展存储空间,甚至ddr都已经走入嵌入式系统。
工作中常常要经历更换sdram芯片,重新配置时序,物理参数或者是重新选择新的sdram,下面就是我工作中选择更换sdram的自认为要留作笔记的资料。
1 .要先读CPU的sdram控制器参数,要选用SDRAM芯片的容量是否被sdram 控制器支持。
2 .注意SDRAM的BANK 个数,一般都是4个bank 2根BA地址线引出。
3. 注意行列地址线的数目,SDRAM都是行列地址控制方式,并且行列地址线是复用的。
比如:32MB : 13根行地址9根列地址(HY57V561620)8MB: 12根行地址8根列地址(K4S641632)4.芯片数据总线的宽度,一般有4bit,8bit,16bit 嵌入式系统里单芯片16bit 的比较常用,使用2片就可以组合成32bit宽存储系统。
5. 芯片的工作速度,比如133Mhz(7.5ns),100Mhz(10ns),48Mhz(20ns) ,必须要确认芯片能够支持的时钟速度,很重要的, 100Mhz的跑到133肯定是不行的。
6. 刷新计数器计算,很多时候我们可能不知道该怎么去计算刷新计数器数据,其实很简单的。
由于SDRAM的特殊结构(一个晶体管一个存储电荷的电容),SDRAM控制器必须不停的去刷新SDRAM的这个存储电荷的电容器,当然我们不希望不停的去刷新它,我们可以在电容上的电荷要开始泄露掉之前刷新一次就可以了,这个时间是多少呢?一般是64ms,就是每个电容我们必须在64ms内刷新一次,当然你也可以1us刷新一次,那么系统就什么也别干了就只是刷新电容玩了。
有了最小刷新限制时间,刷新计数器的值就好算了,sdram是按行刷新的,如果是13根行地址线也就是8192行比如(HY57V561620) ,就是说我们必须在64ms内把8192行刷新一遍,那么刷新一行就是64ms/8192 = 7.8125us. 如果设置Sdram时钟是100mhz (周期是0.01us)刷新计数器的值= 7.8125 / 0.01 = 781可以看出计算公式就是: (64ms/行数) / 时钟周期7. 呵呵,两种SDRAM上面的参数如果是相同那么就可以相互代换了。
SDRAM控制器应用笔记
an-071205-xsasdramcntl应用笔记翻译稿译者:郑立强联系E-mail :zedis@QQ 1599882166日期:2014年3月21日-----------------------------------------------------------------------------------------XESS公司SDRAM控制器应用笔记概述该应用笔记描述了如何在非流水线和流水线模式下使用XSA板上的SDRAM控制器。
SDRAM控制器特性XSA板SDRAM控制器核可以在主机侧接受简单的读写请求并在SDRAM侧生成需要的时序波形。
在流水线使能后,SDRAM一行内的读和写操作可以在每一个时钟周期内调度。
控制器也可以管理必须的数据保持的刷新操作,也会启动SDRAM自刷新模式,保证数据有效,即使是控制器停止操作时候。
SDRAM控制器接口通用参数几个通用参数影响SDRAM控制器的使用:FREQ:该参数设置输入系统主时钟CLK_DIV : 该参数设置对于主时钟的分频,分频后的时钟用于SDRAM控制和clk1x输出。
阶梯式的频率用于决定时序控制器操作的时钟的宽度,同时阶梯式频率必须在25MHz或以上以保证用DLLs和SDRAM同步操作产生阶梯式时钟。
对于低于25MHz的频率,控制不能用DLL代替调整clocking,控制器和外部SDRAM会在相反的边沿触发。
这种情况下,时钟不需要分频,保持与主时钟频率相同。
有效的CLK_DIV值可以是1.0,1.5,2.0,2.5,3.0,4.0,5.0,8.0,16.0.PIPE_EN:该参数使能流水线操作。
MULTIPLE_ACTIVE_ROWS : 设置这个布尔行的参数为true使能用于跟踪SDRAM每一个块上活动行的电路。
设置为false禁止该电路,只有当前操作的块上的活动行是被记录的。
MAX_NOP: 该参数设置在SDRAM控制器代替了外部进入自刷新模式的SDRAM的,没有读写操作的连续的时钟周期数目。
sdram原理(一)
sdram原理(一)SDRAM原理什么是SDRAM?SDRAM是随机存取存储器(Synchronous Dynamic Random Access Memory)的缩写,是一种常见的计算机内存。
它是一种同步存储器,具有高速读写的特性,广泛用于个人电脑、服务器、网络设备等计算机系统中。
SDRAM的工作原理SDRAM的原理相对复杂,下面将从浅入深地解释SDRAM的工作原理。
时钟信号和同步SDRAM的工作是通过时钟信号进行同步的。
在SDRAM中,时钟信号控制数据的读写和传输。
读写操作必须与时钟信号的上升沿或下降沿对齐,以确保数据传输的正确性。
存储单元和存储电容SDRAM的存储单元是由一对MOSFET(金属-氧化物-半导体场效应晶体管)和一个电容器组成。
MOSFET用于控制数据的读写操作,而电容器则用于存储数据。
存储电荷和刷新SDRAM中的电容器存储的是电荷,而不是电压。
电荷会随时间逐渐泄漏,因此需要定期刷新以保持数据的有效性。
刷新操作通过向每个存储单元施加一个恒定电压来完成。
行地址和列地址SDRAM的存储区域被划分为多个行和多个列。
行地址用于选择行,列地址用于选择列。
通过控制行地址和列地址,可以实现对特定数据的读写操作。
预充电和读取在进行读取操作之前,需要对存储单元进行预充电操作。
预充电操作将电容器的电压调整到正确的工作电压,以便进行下一次的读写操作。
CAS(列地址选择)延迟CAS延迟是SDRAM中的一个重要概念。
它表示在进行读取操作时,需要等待的时间,以确保数据的正确传输。
CAS延迟的数值决定了SDRAM的读取速度和性能。
总结SDRAM作为一种常见的计算机内存,具有高速读写和大容量的优势。
它的工作原理涉及时钟信号、存储单元、存储电容、刷新、行地址和列地址、预充电、CAS延迟等多个方面。
了解SDRAM的工作原理有助于我们更好地理解计算机系统中内存的工作方式和性能表现。
深入了解内存(SRAM、DRAM、SDRAM)
深入了解内存(SRAM、DRAM、SDRAM)目录第一章 RAM的基本原理1.1 寻址原理概述1.2 从“线”到“矩阵”1.3 DRAM 基本存储单元结构第二章 SRAM的基本原理2.1 SRAM芯片的引脚定义2.2 SRAM芯片的读写操作概述第三章 DRAM的基本原理3.1 多路寻址技术3.2 DRAM的读取过程和各种延时3.3 DRAM的刷新3.4 快页模式DRAM3.5 扩展数据输出DRAM第四章 SDRAM的基本原理4.1 SDRAM芯片的引脚定义4.2 SDRAM芯片的初始化和模式寄存器的设置4.3 SDRAM的指令例表4.4 SDRAM的读取过程分析4.5 SDRAM 的CAS 延迟4.6 SDRAM的写入过程分析第一章 RAM的基本原理● 1.1 寻址原理概述RAM 主要的作用就是存储代码和数据供CPU 在需要的时候调用。
但是这些数据并不是像用袋子盛米那么简单,更像是图书馆中用有格子的书架存放书籍一样,不但要放进去还要能够在需要的时候准确的调用出来,虽然都是书但是每本书是不同的。
对于RAM 等存储器来说也是一样的,虽然存储的都是代表0 和1 的代码,但是不同的组合就是不同的数据。
让我们重新回到书和书架上来,如果有一个书架上有10 行和10 列格子(每行和每列都有0-9 的编号),有100 本书要存放在里面,那么我们使用一个行的编号加一个列的编号就能确定某一本书的位置。
如果已知这本书的编号87,那么我们首先锁定第8 行,然后找到第7 列就能准确的找到这本书了。
在RAM 存储器中也是利用了相似的原理。
现在让我们回到RAM 存储器上,对于RAM 存储器而言数据总线是用来传入数据或者传出数据的。
因为存储器中的存储空间是如果前面提到的存放图书的书架一样通过一定的规则定义的,所以我们可以通过这个规则来把数据存放到存储器上相应的位置,而进行这种定位的工作就要依靠地址总线来实现了。
对于CPU 来说,RAM 就象是一条长长的有很多空格的细线,每个空格都有一个唯一的地址与之相对应。
SDRAM原理与操作时序(全)
SDRAM的原理和时序一、 SDRAM内存模组与基本结构我们平时看到的SDRAM都是以模组形式出现,为什么要做成这种形式呢?这首先要接触到两个概念:物理Bank与芯片位宽。
1、物理Bank传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。
而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit (位)。
当时控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,而这个位宽就称之为物理Bank(Physical Bank,下文简称P-Bank)的位宽。
所以,那时的内存必须要组织成P-Bank来与CPU打交道。
资格稍老的玩家应该还记得Pentium刚上市时,需要两条72pin的SIMM才能启动,因为一条72pin -SIMM只能提供32bit 的位宽,不能满足Pentium的64bit数据总线的需要。
直到168pin-SDRAM DIMM上市后,才可以使用一条内存开机。
不过要强调一点,P-Bank是SDRAM及以前传统内存家族的特有概念,RDRAM 中将以通道(Channel)取代,而对于像Intel E7500那样的并发式多通道DDR系统,传统的P-Bank概念也不适用。
2、芯片位宽上文已经讲到SDRAM内存系统必须要组成一个P-Bank的位宽,才能使CPU正常工作,那么这个P-Bank位宽怎么得到呢?这就涉及到了内存芯片的结构。
每个内存芯片也有自己的位宽,即每个传输周期能提供的数据量。
理论上,完全可以做出一个位宽为64bit的芯片来满足P-Ban k的需要,但这对技术的要求很高,在成本和实用性方面也都处于劣势。
所以芯片的位宽一般都较小。
台式机市场所用的SDRAM芯片位宽最高也就是16bit,常见的则是8bit。
这样,为了组成P-Bank所需的位宽,就需要多颗芯片并联工作。
对于16bi t芯片,需要4颗(4×16bit=64bit)。
SDRAM原理和时序
SDRAM原理和时序一、SDRAM的原理SDRAM是一种同步存储器,其原理基于DRAM(Dynamic Random Access Memory)的基本操作,但引入了同步时钟信号来协调存储器控制器和CPU之间的数据传输。
SDRAM通过列地址和行地址来定位存储单元,通过同步时钟信号以及清除和预充电周期来确保数据的正确传输。
1.内部构造SDRAM包含了存储芯片、存储地址、数据输入输出接口和控制信号接口等部分。
存储芯片是由存储单元阵列构成,每个存储单元由一个存储电容和一个访问存储单元所需的传输线性组成。
存储地址用于唯一标识每个存储单元,数据输入输出接口用于与CPU进行数据交互,而控制信号接口用于控制SDRAM的操作。
2.读写操作对于读操作,首先需要发送预充电命令,该命令将存储芯片的每个存储单元的存储电容放电,以确保数据的准确读取。
然后,通过行地址和列地址来确定要读取的存储单元,并将数据传输到数据输出接口,最后通过数据输出接口传输给CPU。
对于写操作,首先需要发送预充电命令,然后通过行地址和列地址确定要写入的存储单元。
将数据从CPU传输到数据输入接口,最后将数据写入所选的存储单元。
3.刷新操作由于DRAM存储电容会逐渐失去电荷,因此需要定期进行刷新操作,以确保数据的稳定存储。
刷新操作通常通过发送刷新命令来执行,将所有行依次预充电,然后再次写入存储电容相同数据。
二、SDRAM的时序1. 刷新周期(t_ref)刷新周期是指SDRAM进行刷新操作的时间间隔,通常为64ms。
刷新周期内需要完成所有的刷新操作。
2. 行预充电周期(t_rp)行预充电周期是指从发送预充电命令到可以进一步读取或写入数据之间的时间间隔。
在这个周期内,DRAM的存储单元将被预充电。
3. 行激活周期(t_ras)行激活周期是指发送行激活命令到可以读取或写入数据之间的时间间隔。
在这个周期内,DRAM将被激活,并将所选行的数据传输到I/O线上。
SDRAM知识详解
3. SDRAM芯片容量 =MxW (M:存储单元总数;W:每个存储单元的容量,即芯片位宽) 存储单元总数M=行数(R)x 列数(C)不一样
3.SDRAM芯片结构:
三.SRAM基本操作与内部工作时序
1.芯片初始化 SDRAM逻辑控制单元中有模式寄存器(MR),开机需对其进行初始化操作。
4.数据输出/读 a: CL(CAS Latency) CAS潜伏期:从CAS与读取命令发出到第一笔数据输出的这 段时间。单位:时钟周期。 b: CAS响应时间快于RAS:一个位宽为n bit 的芯片,行地址要选通n x c(列数为 c)个存储体,而列地址只需选通n个存储体。 c: CL的产生原因: 1)存储体中晶体管的反应时间使数据和CAS在同一上升沿触发,至少延后一个 时钟周期; 2)tAC (Access time from clock)时钟触发后的访问时间:(由于存储电容小,故 信号需经S-AMP放大来保证被识别(事前还要进行电压比较来进行逻辑电平判断) 从数据I/O总线上有数据输出之前的一个时钟上升沿开始,数据已传向S-AMP,数 据已经被触发,经过一定的驱动时间最终向数据I/O总线传输(小于一个时钟周 期)。
8.突发长度 突发(Burst )是指在同一行中相邻的存储单元连续进行数据传输的方式,连续 传输所涉及到存储单元(列)的数量就是突发长度( Burst Lengths,简称BL )。 1)BL设置: 目前可 用的选项是 1、2、4、8、全页(Full Page ),常见 的设定是4 和 8。 Full Page (全页)突发传输是指L-Bank 里的一行中所有存储 单元从头到尾进行连续传输。 2)突发传输技术,只要指定起始列地址与突 发长度,内存就会依 次地自动对后 面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。 3)优点:提高传输效率(第一笔数据须 tRCD+CL,其后每个数据只需一个周期)
SDRAM—DDR-DDR2学习笔记
在说明初始化之前先了解一下SDRAM的一些基础知识吧.SDRAM (Synchronous Dynamic Random Access Memory),同步动态随机存储器。
同步是指其时钟频率与CPU的前端总线的系统时间频率相同,并且他的内部命令的发送与数据的传输都是以这个时钟为基准的,动态是指存储阵列需要不断的刷新才能保证数据的不丢失。
随机是指数据不是线性存储的,是可以自由指定地址进行数据读写。
位宽:是指内存一次数据传输的数据量就是位宽,以位为单位。
SDRAM的内部结构:SDRAM相当于一个excel,一个工作溥中有几个工作表,每个工作表里有行列。
SDRAM中的一个bank就相当于excel中的一个工作表, SDRAM中的行(Column)与列(Row)相当于工作于中的行与列,我们对内存的读写就是根据bank 号Column 、Row来准确的找到所需要的单元格(存储阵列)。
由于技术、成本等原因,不可能只做一个全容量的Bank,而且最重要的是,由于SDRAM的工作原理限制,单一的Bank将会造成非常严重的寻址冲突,大大降低了内存的效率,所以把SDRAM内部分割成多个Bank,较早以前是2个,目前市面上大多都是4个Bank的,SDRAM容量的计算。
SDRAM容量= 单元格的总数(地址总数)X 位宽单元格的总数= Bank数X Column数X ROW数如果要以字节为单位的话,刚需要将SDRAM容量(bit) / 8(bit)型号为:HY57V641620E的为64Mbit (8M字节)位宽为16bit 的SDRAM,内部结构为4个Bank,Column数为8(CA0-CA7),Row数为12(RA0- RA11),SDRAM的行地址线和列地址线是分时复用的,即地址要分两次送出,先送出行地址,再送出列地址。
这样,可以大幅度减少地址线的数目。
计算方法为:每个bank的容量为: 2 Row 次方X 2 的Column X 16(bit) = 256 X4096 X 16 /1024 = 16384 bit = 16 Mb it = 2 M字节,再乘以bank 数就是64 Mbit (8M字节了),更简单的方法是行列加起了相当于20根地址线,所以每个bank能访问的地址空间是2 的20次方= 1048576 bit = 1M字节,但由于第次传输的数据位宽是16位,所以每个bank的空量是16 Mbit ,总共有4个ban k ,所以就有64Bbit的容量,换成字节单位就是8M字节。
零基础学FPGA (二十三) SDR SDRAM(架构篇)
零基础学FPGA (二十三)SDR SDRAM(架构篇)今日我们来讲的是SDRAM的架构以及设计,这也是小墨第一次接触架构,也谈不上给大家讲,就是把我理解的当做一个笔记共享给大家,有什么错误也请乐观指正,究竟我也是没有教师教,也是自己试探的,难免有些不合理的地方。
一、SDRAM 工作部分1、上电初始化我们先来看第一部分,上电初始化。
上电初始化我们知道,上电之后我们需要等待200us的稳定期,这段时光我们可以用一个定时器来计数,这没什么问题,然后进入的是预充电部分,这个时候,预充电的时候,sdram_cmd模块会检测此时的初始化状态机的状态,若处于预充电状态,那么sdram_cmd模块向SDRAM发指令,详细指令sdram的datasheet 里面有,发的是一个precharge,即预充电,发完指令之后,需要等待一段时光,来确保这个指令被SDRAM捕捉,这等待的时光,特权教师用的方式我觉得很好用一个宏定义,当计数器计数到相应的时光后,预充电完成参数置位即end_trp 置位,下面的使用也是一样,即当时始化状态机进入预充电状态i_pre时,计数器开启,开头计数,计数完成,也就是预充电结束的时候,计数器复位,这个复位的控制,可以用case语句来检测初始化状态机的状态,在相应的状态赋予相应的复位与置位接下来是8个自刷新,操作和预充电一样到了模式寄存器的配置阶段,我们需要选定L_bank,以及SDRAM工作模式的配置,当sdram_cmd模块检测到初始化状态机到达模式寄存器配置阶段时,我们的给SDRAM的sdram_bank端口赋相应的值,并且设置地址当时始化结束的时候,标记位init_done置位,告知工作状态机,初始化状态机已经结束,进入工作状态。
下面是我用word做的上电初始化的状态转移图2、自刷新初始化结束之后,SDRAM为了防止数据走失,要举行自刷新,上一篇文章已经讲过了,刷新2^12行需要64ms,也就是每15us刷新一行,也就是我们需要每15us发送一次自刷新哀求给SDRAM工作状态机,状态机一旦检测到自刷新哀求信号,就告知sdram工作模块,然后工作模块就向SDRAM发送自刷新指令,即CMD_A_PEF下面是自刷新的状态转移图3、读写状态初始化结束以后,SDRAM就处于工作状态,每15us举行一次自刷新,这个时候,假如想要读或写数据的话,即向工作状态机sdram_work_FSM 发送读写哀求,假如是读哀求,那么工作状态机进入行有效状态,也即激活状态w_active,此时,sdram_cmd模块会发送行有效指令,即CMD_ACTIVEA同时,我们需要将我们的12位行地址送给我们的sdram地址总线sdram_addr,然后便是一个等待时光段,TRCD,这个时光段里我们是不需要做什么工作的,只需等待TRCD结束TRCD结束的时候,工作状态机进入读状态,此时,我们需要发送列地址选中我们的存储单元,并告知sdram_cmd模块发送读指令,这个过程是读指令和列地址同时发送的。
DDRSDRAM基本原理详细介绍
DDRSDRAM基本原理详细介绍DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) 是一种采用双倍数据传输速率的同步动态随机访问存储器。
DDR SDRAM采用了同步时钟技术和双倍数据传输速率,以提高数据传输效率和性能。
DDR SDRAM在计算机系统中广泛应用,是现代计算机存储器的主要类型之一DDRSDRAM的基本原理是在内部和外部时钟信号的同步驱动下,传输数据时双倍数据传输速率。
这种双倍数据传输速率的原理使DDRSDRAM比传统的SDRAM具有更高的数据传输速率和更高的带宽。
DDRSDRAM的内部存储单元结构复杂,可以同时读取和写入数据,以实现更高效的数据传输速率。
1.同步时钟技术:DDRSDRAM采用同步时钟技术,内部操作和外部时钟信号同步,以确保数据传输的准确性和稳定性。
通过同步时钟技术,DDRSDRAM可以根据外部时钟信号的频率来调整数据传输速率,使数据传输更加高效。
2.双倍数据传输速率:DDRSDRAM在传输数据时采用双倍数据传输速率,即在每个时钟周期内传输两倍的数据。
通过这种方式,DDRSDRAM可以实现更高的数据传输速率和更高的带宽,提高系统的性能和响应速度。
3.内部存储单元结构:DDRSDRAM的内部存储单元结构复杂,包括存储单元、地址线、数据线、控制器等部分。
在读取和写入数据时,DDRSDRAM可以同时进行多个操作,实现并行处理,以提高数据传输速率和性能。
4.数据预取技术:DDRSDRAM具有数据预取技术,即在访问内存时会自动预先读取相邻地址的数据,并将预读取的数据存储在缓存中。
这样在下一次访问时可以直接从缓存中读取数据,减少延迟时间,提高数据访问速度。
DDRSDRAM的优势在于高速数据传输、高带宽、低能耗等特点,使其成为现代计算机存储器的主要选择。
DDRSDRAM广泛应用于个人电脑、服务器、工作站等计算机系统中,提供了快速、稳定的数据存储和访问功能。
DDR2学习小结
DDR2 SDRAM 学习小结介绍:DDR2 SDRAM的存储空间相对DDR SDRAM有所增加,DDR SDRAM单片最大容量为1Gbit,Bank数目是4,而DDR2 SDRAM单片最大容量为2Gbit,Bank数目达到了8。
DDR SDRAM的Bank 数目最少是2,而DDR2 SDRAM的Bank数目最少是4。
DDR2 分为4、8、16位引入的几个新的技术,使得整体性能提升,读写速率提升,功耗降低,信号完整性更好。
DDR2 SDRAM中的时序参数介绍:tMR D:设定命令的命令周期:必须满足完成扩展模式寄存器的写操作tRCD:激活命令(ACT)到发出读/写的时间,必须满足一个最小的时间间隔,如果没有满足比如应用了Posted CAS读操作时,必须附加一个附加延迟值(AL)tRAS:簇激活时间,即一个簇(bank)激活到簇操作完成并开始预充电的时间tRP:预充电时间即是簇预冲电开始并完成充电可以执行下一次激活的时间tRC:同一个簇的两个成功的簇激活命令的时间间隔tRRD:不同簇激活命令之间的最小时间间隔是tCAS:读指令发出到第一个数据输出。
RL(读延迟)=AL(附加延迟)+CL(CAS延迟)WL(写延迟)=RL-1tWR:从完成突发写操作到下一次的簇预充电命令被称做写恢复时间(WR)一、上电与初始化1、上电初始化过程1)对于上电和初始化来说,下列时序是必须的。
供电且保持CKE 低于0.2*VDDQ ,ODT 要处于低电平状态(所有的其余脚可以都没有定义.) 电源上升沿不可以有任何翻转,上升沿时间不能大于200mS;并且要求在电压上升沿过程中满足, VDD>VDDL>VDDQ且VDD-VDDQ<0.3 volts.- VDD, VDDL和VDDQ必须由同一个电源芯片供电, 并且- VTT 最大只能到0.95 V, 并且- Vref 要时刻等于VDDQ/2.,紧跟VDDQ变化。
DDR-SDRAM-基础知识学习
Chip 0
Chip 1
Row 0 Col 1
Cont’d
Rank 0
Chip 7
...
...
<0:7> <8:15> <56:63>
0x40
8B 8B
0x00
64B cache block
Data <0:63>
14
A 64B cache block takes 8 I/O cycles to transfer. During the process, 8 columns are read sequentially.
Read Access Step3 – Restore
Cont’d
2021/3/28
21
DRAM ACCESS FLOW
Read Access Step4 – Pre-charge
Cont’d
2021/3/28
22
DRAM ACCESS FLOW
Sense Amplifier Voltage Waveform – Read Flow
Downside of DRAM Refresh
Power Consume Performance degradation Refresh rate limits DRAM capacity scaling
Cont’d
32
DRAM BASIC COMMANDS
More about DRAM Refresh
2021/3/28
DRAM BASIC KNOWLEDGE
SUMMARY
1
Hulin Cao –源自2021/3/28DRAM BASIC KNOWLEDGE
SDRAM学习笔记(一)
SDRAM学习笔记(⼀)前⾯⼏篇博客已经讲到了关于0V7725的相关驱动问题,那么OV7725驱动成功之后,设定OV7725输出RGB565格式,那么对于640x480x16,那么若是选⽤FIFO,应该设置为位宽16bit,存储深度为30万,但是这样是不现实的。
所以采⽤存储深度更⼤的SDRAM来实现数据的缓存。
要么对于SDRAM的学习资料,笔者列举以下⼏篇⽂档供⼤家学习。
当然还有之前各位⼤神写的博客,都可以进⾏参考,这⾥不⼀⼀列举。
本篇博客先整体介绍SDRAM,以及SDRAM的重要知识点。
1.基础知识SDRAM(synchronous dynamic random access memory),同步动态随机存储器。
同步也就是与CPU前端总线的系统时钟频率相同,并且内部命令的发送与数据的传输都是以它为基准。
动态是SDRAM是电容阵列,需要不断的充放电,不断刷新数据保证数据不丢失,所以SDRAM有个重要参数,就是刷新频率。
我们可以把SDRAM想象成⼀个表格,若要写⼊某⼀个单元,则需指定⾏地址和列地址,如下图21.1所⽰,整个由⾏列组成的块,称之为L-Bank,⼤部分的SDRAM都是基于4个L-Bank设计的,也就是有4张这样的表格。
寻址流程,先是指定L-Bank的地址,再进⾏指定⾏地址,然后再指定列地址寻址单元,其中每个单元可以放置8/16/32位的数据。
笔者常⽤的是hynix(海思)的SDRAM芯⽚,如下图。
基于hynix的其他其他型号操作时序都是⼀样的,只不过存储容量改变。
时钟频率以及其他参数改变,这个之后会提及到。
由上图可以看出,有四个分区,每⼀个分区是由⾏和列激活信号,并通过⾏和列的预解码实现⾏和列的锁定,其中地址缓存器赋予地址寄存器,⽤来产⽣⾏和列的预解码,以及模式寄存器,模式寄存器⽤来控制写⼊的⽅式。
状态机部分是产⽣控制逻辑,功能和仲裁器⼀样,SDRAM的实施其实也是利⽤了DMA的原理,CPU只需给仲裁逻辑发送相应的指令,会将数据从⼀个地⽅搬运到另⼀个地⽅。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SDRAM学习笔记
1.SDRAM的burst mode:SDRAM是一种命令型动作的设备,就算读写资料只有一个也要先下命令才可以用,为了增加工作效率,就产生了一种传送一个命令,写多个数据的模式,这就是burst mode。
burst mode是一种利用内部列地址发生器来工作的高速读写模式,只要设置最开始的列地址,后面的地址就可以通过内部的列地址发生器来自动生成。
2.为什么要做precharge动作?关闭正在作用的SDRAM bank,算是一种结束命令,后面可以下新的命令。
我想这是和SDRAM内部管理有关。
(这是从网上查到的,感觉不够详细,也不太理解)
3.自动刷新功能?动态存储器(Dynamic RAM)都存在刷新问题。
这里主要采用自动刷新方式,每隔一段时间向SDRAM发一条刷新命令。
4.SDRAM的地址线:在我们一般用的什么SRAM啊,PSRAM啊,RAM啊,一般而言都是有多少根地址线,然后可以算出寻址空间,比如有11根地址线,那寻址空间就是2的11次方减1。
但是SDRAM是分列地址和行地址的,行、列地址线是复用的,所以有时候我们看到说寻址空间有多大多大,但是看看地址线怎么就那么几根啊,呵呵。
SDRAM一般还有2根BANK的线,分成4个BANK,在有的处理器的SDRAM控制模块中,这两根线可能映射到地址线的某两根去。
一般芯片常按照以下方式写芯片的配置,比如4Meg x 4 x 16,那这个芯片就是256Mbits。
其中16指数据线是16根,中间一个4是只分4个BANK,每个BANK是4Meg。
5.SDRAM的初始化:
SDRAM上电后使用前必须要经过一段初始化操作才可以使用。
这个操作过程是标准的过程。
这个过程如下
A: precharge
B: auto-refresh
C: Load Mode Register
D: Normal Read/Write
在上电后输入初始化命令之前,最少要100us延迟(这个其实很容易满足,呵呵)。
在输入precharge命令后,因为必须是对所有BANK进行Precharge,所以A10这个管脚要设置成高,因此在Precharge后面要做一个读的操作,这个操作最主要的是在SDRAM的寻址空间里设置的地址必须是A10是高的。
在输入Auto-refresh命令后,一般要跟几句空操作或者读什么之类的,反正要达到延迟的目的,以使得SDRAM有时间来完成refresh。
之后就是要设置SDRAM的模式寄存器,这个寄存器里一般设置了burst长度,CAS,burst类型,操作模式,还有是设置SDRAM是工作在单个读写操作还是burst操作下。
而这个寄存器的设置也是通过地址线来设置的,所以在发出Load Mode Register命令后要做一个操作可是使得在SDRAM的地址线上出线的值就是你要设置的值。
这里很有必要提醒的一下的是,这个操作是8位的操作,切记切记。
设置完模式寄存器后就进入正常操作模式。
实际上具体的操作要跟选用的处理器的SDRAM控制模块相结合来设置。
对于这些初始化命令比较直观的理解就是拿逻辑分析仪来分析。
在这里需要提醒一下CAS这个参数很重要。
还有SDRAM必须要刷新的,因此刷新频率可以按照手册算出来的,但是设置的高一点也是可以的。
常常SDRAM都有工作频率,但是也可以工作在低一点的频率上,比如PC133的,你工作到100也是可以的,设置基本不需要修改。
6.基本读写操作:
SDRAM的基本读操作需要控制线和地址线相配合地发出一系列命令来完成。
先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。
BANK 激活命令后必须等待大于tRCD(SDRAM的RAS到CAS的延迟指标)时间后,发出读命令字。
CL (CAS延迟值)个工作时钟后,读出数据依次出现在数据总线上。
在读操作的最后,要向SDRAM 发出预充电(PRECHARGE)命令,以关闭已经激活的页。
等待tRP时间(PRECHARGE)命令,以关闭已经激活的页。
等待tRP时间(PRECHAREG命令后,相隔tRP时间,才可再次访问该行)后,可以开始下一次的读、写操作。
SDRAM的读操作只有突发模式(Burst Mode),突发长度为1、2、4、8可选。
SDRAM的基本写操作也需要控制线和地址线相配合地发出一系列命令来完成。
先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。
BANK 激活命令后必须等待大于tRCD的时间后,发出写命令字。
写命令可以立即写入,需写入数据依次送到DQ(数据线)上。
在最后一个数据写入后延迟tWR时间。
发出预充电命令,关闭已经激活的页。
等待tRP时间后,可以展开下一次操作。
写操作可以有突发写和非突发写两种。
突发长度同读操作。
7.其他:我们有时候看到有的原理图上数据线有倒过来接的,其实这个无所谓的,反过接,写进去的就是反的,但是读出又反了一下,反反两次正好没反。
延伸一下到DDR,其实DDR就是SDRAM外面加了一个乌龟壳。
因此初始化是一样的。
当然DDR 一是多了一个把时钟频率反相的时钟,因此有2个相位差180度的时钟。
这两个一般都是用同一个时钟源产生,一致性会比较好。
还有多了2个DQS,这个也是一个时序要求,一般CPU 的控制模块都有设置好了。
如果你使用的CPU不含有控制模块,那用FPGA去做一个控制模块的话,那就要好好研究时序了。
在有些处理器的控制模块中,由于EMI的设置,地址线映射关系复杂,因此推算会比较麻烦,一般如果没有什么映射的话,还是很容易操作的。