在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2181|回复: 2

[原创] sdram控制器设计相关

[复制链接]
发表于 2015-3-13 14:31:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

SDRAM具有单位空间存储容量大和价格便宜的优点,SDRAM 的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新(充电)。因此,要在系统中使用SDRAM,就要求微处理器具有刷新控制逻辑,或是在系统中另外加入刷新控制逻辑电路。

本实验中使用的SDRAMMICRONMT48LC8M8A22 Meg x 8 x 4 Banks,以下内容为对该型号的SDRAM介绍:

1)芯片的存储介绍

其容量为64Mbit,数据位宽为8bit,存储分为4bank,每个bank存储容量为2M。每个bank的存储单元如同表格一样,将数据进去,对指定的地址操作和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格。

2)芯片的初始化过程

a)
输入稳定期200us

b)
所有bank预充电;

c)
4个刷新周期;

d)
模式寄存器设置;

e)
进入正常工作状态,初始化完成。

3)行有效

初始化完成后,要想对一个L-Bank中的数组进行寻址,首先就要确定行(Row),使之处于活动状态(Active),然后再确定列。虽然之前要进行片选和L-Bank的寻址,但它们与行有效可以同时进行,行有效时序图如下图所示。

file:///C:/Users/Think/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg

1 行有效时序图

4)列读写

行地址确定之后,就要对列地址进行寻址了。地址线仍然是行地址所用的A0-A11。在SDRAM中行地址与列地址线是复用的。在列选通时如果WE为“0”则是写操作,如果为“1”则是读操作。列读写时序图如下图所示。

file:///C:/Users/Think/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg

2 SDRAM时序(如果WE为低则为写时序)

在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即RAS to CAS DelayRASCAS延迟),可以理解为行选通周期,这应该是根据芯片存储数组电子组件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。tRCDSDRAM的一个重要时序参数,本实验中tRCD=2

file:///C:/Users/Think/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg

3 tRCD=3的时序图

5)SDRAM/写时序

在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据I/O信道(DQ)输出到内存总线上了。但是在CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为CLCAS LatencyCAS潜伏期)。由于CL只在读取时出现,所以CL又被称为读取潜伏期(RLRead Latency)。CL的单位与tRCD一样,为时钟周期数,本实验中CL=2

file:///C:/Users/Think/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg

4 SDRAM读时序

数据写入的操作也是在tRCD之后进行,但此时没有了CL(记住,CL只出现在读取操作中),行寻址与列寻址的时序图和上文一样,只是在列寻址时,WE#为有效状态。也就是说写入延迟为0。不过,数据并不是实时地写入存储电容,因为选通三极管(就如读取时一样)与电容的充电必须要有一段时间,所以数据的真正写入需要一定的周期。为了保证数据的可靠写入,都会留出足够的写入/校正时间(tWRWrite Recovery Time),这个操作也被称作写回(Write Back)。本实验中tWR=2

6)突发长度

突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称BL)。本实验中BL=8

只要指定起始列地址与突发长度,寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期(与BL相同)即可做到连续的突发传输。

file:///C:/Users/Think/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg

5 连续突发读SDRAM

7)预充电

SDRAM在进行完读写操作后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。L-Bank关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。本实验中对SDRAM每次突发读写操作后,不论是否换行都进行预充电操作。

在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,这个间隔被称为tRPPrecharge commandPeriod,预充电有效周期)。本实验中tRP =2

8)刷新

SDRAM需要不断进行刷新(Refresh)才能保留住数据,因此它是SDRAM最重要的操作。目前公认的标准是,存储体中电容的数据有效保存期上限是64ms,也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms

新操作分为两种:自动刷新(Auto Refresh,简称AR)与自刷新(Self Refresh,简称SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。
发表于 2015-9-9 18:52:17 | 显示全部楼层
很好学习了
发表于 2015-9-15 12:25:06 | 显示全部楼层
学习了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 03:56 , Processed in 0.018450 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表