SDRAM

本文深入解析SDRAM(同步动态随机存储器)的内部结构、操作时序,包括初始化、读写操作及刷新过程。SDRAM通过行激活、列寻址实现数据读写,并利用突发长度优化传输效率。数据掩码技术则允许在突发传输中屏蔽部分数据。预充电用于切换行地址,而刷新操作则确保数据持久存储。SDRAM的读写测试涉及数据的写入与验证,确保其功能正确性。
摘要由CSDN通过智能技术生成

1. 存储器简介

1.1 存储器类型

在这里插入图片描述

1.2 SDRAM内部结构

SDRAM:同步动态随机存储器
优点:空间存储量大、读写速度快、价格相对便宜。
缺点:控制逻辑复杂

SDRAM 寻址
在这里插入图片描述
SDRAM的存储空间被分为4个L-Bank,在寻址时需要先指定其中一个L-Bank,然后在这个选定的L-Bank中选择相应的行与列进行寻址。

SDRAM 存储容量
在这里插入图片描述
SDRAM总存储量=L-Bank的数量x行数x列数x存储单元的容量(数据位宽)
eg:4Mx4BANKSx16BITS SDRAM,其中4M是4x1024x1024

存储单元
在这里插入图片描述
行地址与列地址选通使得存储电容与数据线导通,从而可进行放电(读取)与充电(写入)操作。

SDRAM功能框图
在这里插入图片描述

2. SDRAM操作时序

2.1 初始化

SDRAM芯片上电之后需要一个初始化的过程。
在这里插入图片描述
模式寄存器设置(MRS):Mode Register Set
在这里插入图片描述
模式寄存器设置周期(tRSC):Register Set Cycle

2.2 读写操作

无论是读操作还是写操作,都要先激活SDRAM中的一行,使之处于有效状态,因此又称为行有效。

行激活
在这里插入图片描述
SDRAM芯片的“片选”和L-Bank的“定址”与行激活同时进行。

列读写
行地址激活后,就要对列地址进行寻址了。读写命令是与列寻址信号同时发出的。
在这里插入图片描述
在发送列读写命令时必须要与行激活命令有一个时间间隔,这个时间间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟)。
在这里插入图片描述
数据输出(读)
在CAS发出之后,要经过一定的时间才能有数据输出。
从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为CL,即CAS Latency(CAS潜伏期,又称为读潜伏期)
在这里插入图片描述
数据输入(写)
数据与写指令同时发送。不过,数据并不是即时地写入存储单元,数据的真正写入需要一定的周期。
为了确保数据的可靠写入,都会流出足够的写入/校正时间(tWR,Write Recovery Time),这个操作也被称为写回(Write Back)。
在这里插入图片描述
突发长度
突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Length,简称BL)。
在这里插入图片描述
在MRS阶段除了要设定BL数值之外,还需要确定“读/写操作模式”以及“突发传输模式”。

数据掩码
在突发传输过程中,为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。
DQM一次只能屏蔽8Bit的数据,因此数据若是16bit,则需要两位的DQM来屏蔽数据。
在这里插入图片描述
在这里插入图片描述
预充电
在对SDRAM某一存储地址进行读写操作结束后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。
L-Bank关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。
在这里插入图片描述
读写操作时,地址线A10控制着是否进行在读写之后对当前L-Bank自动进行行预充电。

在发出预充电命令之后,要经过一段时间才能发送行激活命令打开新的工作行。这个间隔称为tRP(Precharge command Period,预充电有效周期)。
在这里插入图片描述
写操作时,所以预充电不能与写操作同时进行,必须要在tWR之后才能发出预充电命令,以确保数据的可靠写入,否则重写的数据可能是错的。
在这里插入图片描述

2.3 刷新

SDRAM之所以能被称为同步“动态”随机存储器,就是因为他要不断进行刷新(Refresh)才能保留住数据,因此刷新是SDRAM最重要的操作。刷新操作与预充电类似,都是重写存储体中的数据。

自动刷新(Auto Refresh,简称AR)
对于自动刷新(AR),SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动生成行地址。
每次刷新操作所需要的时间为自动刷新周期(tRC),在自动刷新指令发出后需要等待tRC才能发送其他命令。
我们常用AR。

自刷新(Self Refresh,简称SR)
自刷新(SR)主要用于休眠模式低功耗状态下的数据保存。在发出AR命令时,将时钟有效信号CKE置于无效状态,就进入了SR模式。
SR模式下SDRAM不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。

3. SDRAM读写测试

向开发板上的SDRAM中写入1024个数据,从SDRAM存储空间的起始地址写起,写完后再将数据读出,并验证读出数据是否正确。
在这里插入图片描述

3.1 系统框图

在这里插入图片描述
SDRAM控制器
在这里插入图片描述
初始化状态机
在这里插入图片描述
工作状态机
在这里插入图片描述

3.2 程序设计

由于程序源码较长,请转到SDRAM设计详细开源代码自行免费下载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值