打印
[技术相关]

SDRAM工作原理及时序分析

[复制链接]
95|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 SynwitMCU 于 2023-9-29 00:21 编辑

1、简介
SDRAM是一种同步动态随机访问内存,它具有内置控制器,通过与CPU时钟同步来工作,使得数据传输更为高效。SDRAM在内存颗粒市场中占据主导地位,广泛应用于各种计算机系统和服务器中,为数据处理和存储提供了快速且可靠的支持。
SDRAM具有高速度、高密度、低功耗等优点。其内部结构采用Bank架构,允许同时进行多个读写操作,从而提高了整体性能。此外,SDRAM还具有自动刷新功能,能够确保数据在长时间内保持正确性。
华芯微特已经将SDRAM合封入芯片,合封的SDRAM大小根据芯片型号不同,具体见选型手册。

2、SDRAM结构框图
SDRAM的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。
为了详细地介绍SDRAM以及它的使用,以某一款SDRAM数据手册结构框图来分析,内部主要构成部分如下图所示。

1)SDRAM信号线
CLK:同步时钟信号,提供SDRAM工作时钟,所有输入信号在CLK为上升沿时被采样。
CKE:时钟使能信号。时钟使能进入正常工作模式,时钟失能进入休眠模式或者自刷新模式。
CS :片选信号,低电平有效。
CAS:列地址选通,当为低电平时地址线表示为列地址。
RAS:行地址选通,当为低电平时地址线表示为行地址。
WE:读写指令切换信号。低电平:写使能;高电平:读使能。
DQM[1:0]:输入/输出掩码信号,表示DQ数据的有效部分。当DQM在读取周期中被采样为高时,输出缓冲器被置于Hi-Z(具有2的延迟)。在写入周期中,采样DQM高电平将以零延迟阻止写入操作。
BS:BANK地址输入,选择要控制的BNAK。
A[12:0]:地址信号线,地址线A10控制着是否进行在读或写操作之后当前L-Bank自动进行预充电。
DQ[15:0]:数据输入输出信号线。
对于DQM(Data I/O Mask)信号,每个DQM控制屏蔽8bit数据,对于这款SDRAM,它是16bit的,UDQM可屏蔽高8位,LDQM可屏蔽低8位。对于16bit的数0xDDFF,我们如果只需高8位写入,低8位不写入,在写入时可以将UDQM置低,LDQM置高。

2)SDRAM操作命令
NO-Operation:空操作命令,用于选中SDRAM,防止SDRAM接受错误的命令,为接下来的命令发送做准备。
Active (用于存储单位寻址):激活命令,该命令必须在读写操作之前被发送,用于设置所需要的BANK和行地址 (同时设置) ,BANK地址由BS0(BA0),BS1(BA1)决定,行地址由A0~12决定。
Read / Write:读/写命令,在发送完激活命令后,并进行读写再发送列地址就可以完成对SDRAM的寻址,并进行读写操作。
Precharge:预充电指令,用于关闭BANK中所打开的行地址,准备打开新行。进行完读写操作后,要对同一BANK的另一行进行寻址,就要将原来有效(打开)的行关闭,重新发送行/列地址。
Refresh:SDRAM存储的数据需要不断进行刷新操作才能保存,用于刷新一行数据,可以依次对所有的行进行刷新操作。CKE引脚高电平为自动刷新(Auto Refresh),CKE为低电平是自我刷新(SelfRefresh)。
自动刷新:依靠刷新计数器(行地址生成器)自动依次生成要刷新的行地址刷新周期 (完成一次所有行的刷新所需要的时间) :64ms。
自我刷新:用于休眠低功耗状态下的数据保存。
Mode Register Set:设置模式寄存器。SDRAM芯片内部有一个逻辑控制单元,控制单元的相关参数由模式寄存器提供。该命令在每次对SDRAM进行初始化时都需要用到。
具体模式设置,如下图:

A0~A2:用来指定突发的长度,1,2,4,8或者全页突发。所谓的“突发”是指当我们对一个地址进行寻址并操作完成后,不必再重新对下一个地址进行寻址,而是直接进行操作。
A3:设置突发的类型,连续型和非连续型。
A4~A6:指定潜伏期的长度,可以选择延时2,3两个周期。
A9:用来指定操作模式。

3)SDRAM容量计算
SDRAM总存储容量 =行数×列数×L-Bank的数量×存储单元的容量
Row Address : A0~A11
Column Address : A0-A8
Bank = 4
Data Width=16bit
Capacity=212 x 29 x 4bank x 16bit=128Mbit

4)SDRAM上电初始化过程
1.VDD (供输入buffer和逻辑电路)和VDDQ(供输出buffer)上电,此期间CKE保持低电平。
2.开始时钟并使CKE置高。
3.电源、时钟都稳定后,再等待200uS。
4.发出预充电命令。
5.发出多个 (8个以上) 刷新命令 (REF)。
6.发出模式寄存器设置命令 (MRS),初始化模式寄存器 (DDR2 中还有EMRS,进行ODT.OCD等功能的设置和调整)。

5)SDRAM时序
这里从SDRAM手册截取读时序进行分析,这里需要参考下图的操作命令具体值与时序图一起分析。


1.读时序(Burst Length = 4, CAS Latency = 3, Auto-Precharge))

读取数据过程:
1)发送激活命令,设置行地址和bank地址。
2)发送读命令,设置列地址,这里已经完成了寻址。
3)拉高A10地址线,使能自动预充电。
4)执行预充电。
5)完成一次读操作。

2.写时序(Auto-Precharge Write,Burst Length = 4)

写过程跟读取类似:
1)发送激活命令,设置行地址和bank地址。
2)发送写命令,设置列地址,这里已经完成了寻址。
3)拉高A10地址线,使能自动预充电。
4)执行预充电。
5)完成一次数据写入。

华芯微特芯片SDRAM具体配置参考:https://www.**/d/2070450.html

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:广东华芯微特集成电路有限公司
简介:华芯微特是一家由留美归国资深技术团队创立的中国芯片设计公司,是国家高新技术企业。2014年进军MCU产业,专注于32位MCU研发设计,并针对细分市场提供参考解决方案。

30

主题

50

帖子

1

粉丝