0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简谈 SDRAM的工作原理

FPGA学习交流 2018-10-09 15:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

SDRAM在读写数据时重点注意以下信号
(1)CLK:时钟信号,为输入信号。SDRAM所有输入信号的逻辑状态都需要通过CLK的上升沿采样确定。
(2)CKE:时钟使能信号,为输入信号,高电平有效。CKE信号的用途有两个:一、关闭时钟以进入省电模式;二、进入自刷新状态。CKE无效时,SDRAM内部所有与输入相关的功能模块停止工作
(3)CS#:片选信号,为输入信号,低电平有效。只有当片选信号有效后,SDRAM才能识别控制器发送来的命令。设计时注意上拉
(4)RAS#:行地址选通信号,为输入信号,低电平有效
(5)CAS#:列地址选通信号,为输入信号,低电平有效。
(6)WE#:写使能信号,为输入信号,低电平有效。

当然还包括bank[…]地址信号,这个需要根据不同的型号来确定,同样为输入信号;地址信号A[…],为输入信号;数据信号DQ[…],为输入/输出双向信号;数据掩码信号DQM,为输入输出双向信号,方向与数据流方向一致,高电平有效。当其有效时,数据总线上出现的对应数据字节被接收端屏蔽。SDRAM之所以成为DRARM就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是DRAM最重要的操作。那么要隔多长时间重复一次刷新,目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的标识,这里的4096与8192就代表这个芯片中每个Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625μs(微秒,1/1000毫秒),8192行时就为7.8125μs。HY57V561620为8192 refresh cycles / 64ms。

SDRAM是多Bank结构,例如在一个具有两个Bank的SDRAM的模组中,其中一个Bank在进行预充电期间,另一个Bank却马上可以被读取,这样当进行一次读取后,又马上去读取已经预充电Bank的数据时,就无需等待而是可以直接读取了,这也就大大提高了存储器的访问速度。


为了实现这个功能,SDRAM需要增加对多个Bank的管理,实现控制其中的Bank进行预充电。在一个具有2个以上Bank的SDRAM中,一般会多一根叫做BAn的引脚,用来实现在多个Bank之间的选择。

SDRAM具有多种工作模式,内部操作是一个复杂的状态机。SDRAM器件的引脚分为以下几类。
(1)控制信号:包括片选、时钟、时钟使能、行列地址选择、读写有效及数据有效。
(2)地址信号:时分复用引脚,根据行列地址选择引脚,控制输入的地址为行地址或列地址。
(3)数据信号:双向引脚,受数据有效控制。

SDRAM的所有操作都同步于时钟。根据时钟上升沿控制管脚和地址输入的状态,可以产生多种输入命令。
模式寄存器设置命令。
激活命令。
预充命令。
读命令。
写命令。
带预充的读命令。
带预充的写命令。
自动刷新命令。
自我刷新命令。
突发停命令。
空操作命令。

根据输入命令,SDRAM状态在内部状态间转移。内部状态包括模式寄存器设置状态、激活状态、预充状态、写状态、读状态、预充读状态、预充写状态、自动刷新状态及自我刷新状态。

SDRAM支持的操作命令有初始化配置、预充电、行激活、读操作、写操作、自动刷新、自刷新等。所有的操作命令通过控制线CS#、RAS#、CAS#、WE#和地址线、体选地址BA输入。
1、行激活
行激活命令选择处于空闲状态存储体的任意一个行,使之进入准备读/写状态。从体激活到允许输入读/写命令的间隔时钟节拍数取决于内部特征延时和时钟频率。HY57V561620内部有4个体,为了减少器件门数,4个体之间的部分电路是公用的,因此它们不能同时被激活,而且从一个体的激活过渡到另一个体的激活也必须保证有一定的时间间隔。

2、预充电
预充电命令用于对已激活的行进行预充电即结束活动状态。预充电命令可以作用于单个体,也可以同时作用于所有体(通过所有体预充电命令)。对于触发写操作必须保证在写入预充电命令前写操作已经完成,并使用DQM禁止继续写入数据。预充电结束后回到空闲状态,也可以再次被激活,此时也可以输入进入低功耗、自动刷新、自刷新和模式设置等操作命令。

预充电中重写的操作与刷新操作一样,只不过预充电不是定期的,而只是在读操作以后执行的。因为读取操作会破坏内存中的电荷。因此,内存不但要每64ms刷新一次,而且每次读操作之后还要刷新一次。

3、自动预充电
如果在触发读或触发写命令中,A10/AP位置为“1”,在读写操作完成后自动附加一个预充电动作。操作行结束活动状态,但在内部状态机回到空闲态之前不能给器件发送新的操作命令。

4、触发读
触发读命令允许某个体中的一行被激活后,连续读出若干个数据。第一个数据在经过指定的CAS延时节拍后呈现在数据线上,以后每个时钟节拍都会读出一个新的数据。触发读操作可以被同体或不同体的新的触发读/写命令或同一体的预充电命令及触发停止命令中止。

5、触发写
触发写命令与猝发读命令类似,允许某个体中的一行被激活后,连续写入若干个数据。第一个写数据与触发写命令同时在数据线上给出,以后每个时钟节拍给出一个新的数据,输入缓冲在触发数据量满足要求后停止接受数据。触发写操作可以被触发读/写命令或DQM数据输入屏蔽命令和预充电命令或触发停止命令中止。

6、自动刷新
由于动态存储器存储单元存在漏电现象,为了保持每个存储单元数据的正确性,HY57V561620必须保证在64ms内对所有的存储单元刷新一遍。一个自动刷新周期只能刷新存储单元的一个行,每次刷新操作后内部刷新地址计数器自动加“1”。只有在所有体都空闲(因为4个体的对应行同时刷新)并且未处于低功耗模式时才能启动自动刷新操作,刷新操作执行期间只能输入空操作,刷新操作执行完毕后所有体都进入空闲状态。该器件可以每间隔7.8μs执行一次自动刷新命令,也可以在64ms内的某个时间段对所有单元集中刷新一遍。

7、自刷新
自刷新是动态存储器的另一种刷新方式,通常用于在低功耗模式下保持SDRAM的数据。在自刷新方式下,SDRAM禁止所有的内部时钟和输入缓冲(CKE除外)。为了降低功耗,刷新地址和刷新时间全部由器件内部产生。一旦进入自刷新方式只有通过CKE变低才能激活,其他的任何输入都将不起作用。给出退出自刷新方式命令后必须保持一定节拍的空操作输入,以保证器件完成从自刷新方式的退出。如果在正常工作期间采用集中式自动刷新方式,则在退出自刷新模式后必须进行一遍(对于HY57V561620来说,8192个)集中的自动刷新操作。

8、时钟和时钟屏蔽
时钟信号是所有操作的同步信号,上升沿有效。时钟屏蔽信号CKE决定是否把时钟输入施加到内部电路。在读写操作期间,CKE变低后的下一个节拍冻结输出状态和猝发地址,直到CKE变高为止。在所有的体都处于空闲状态时,CKE变低后的下一个节拍SDRAM进入低功耗模式并一直保持到CKE变高为止。

9、DQM操作
DQM用于屏蔽输入输出操作,对于输出相当于开门信号,对于输入禁止把总线上的数据写入存储单元。对读操作DQM延迟2个时钟周期开始起作用,对写操作则是当拍有效。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22282

    浏览量

    630070
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DDR3 SDRAM参考设计手册

    电子发烧友网站提供《DDR3 SDRAM参考设计手册.pdf》资料免费下载
    发表于 11-05 17:04 1次下载

    FLASH的工作原理与应用

    14FLASHFLASH的工作原理与应用OWEIS1什么是FLASH?Flash闪存是一种非易失性半导体存储器,它结合了ROM(只读存储器)和RAM(随机访问存储器)的优点,具有电子可擦除和可编程
    的头像 发表于 05-27 13:10 1465次阅读
    FLASH的<b class='flag-5'>工作原理</b>与应用

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置实用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作传感器复位,我知道这个 GPIO0 用于重置传感器,但我不明白的是选项用户 GPIO 例如GPIO 1可以是User GPIO0,这是什么意思呢?
    发表于 05-19 06:56

    电动调压器的工作原理

    电压调压器是一种用于控制电路中电压的装置,其工作原理因类型而异,以下是几种常见电压调压器的工作原理
    的头像 发表于 05-12 13:46 900次阅读
    电动调压器的<b class='flag-5'>工作原理</b>

    微动开关的工作原理

    微动开关的工作原理
    的头像 发表于 04-17 09:00 2710次阅读

    DDR3 SDRAM配置教程

    DDR3 SDRAM(Double-Data-Rate ThreeSynchronous Dynamic Random Access Memory)是DDR SDRAM的第三代产品,相较于DDR2,DDR3有更高的运行性能与更低的电压。
    的头像 发表于 04-10 09:42 3759次阅读
    DDR3 <b class='flag-5'>SDRAM</b>配置教程

    开关电源的基本工作原理

    ;如果从用 途上来分,还可以分成更多种类。 下面我们先对串联式、并联式、变压器式等三种最基本的开关电源工作原理进行简单介绍,其它种类的开关电源也将逐步进行详细分析。 串联式开关电源 串联式
    发表于 03-10 17:01

    SDRAM控制器的设计——Sdram_Control.v代码解析(异步FIFO读写模块、读写SDRAM过程)

    前言 SDRAM控制器里面包含5个主要的模块,分别是PLL模块,异步FIFO 写模块,异步FIFO读模块,SDRAM接口控制模块,SDRAM指令执行模块。 其中异步FIFO模块解读
    的头像 发表于 03-04 10:49 2173次阅读
    <b class='flag-5'>SDRAM</b>控制器的设计——<b class='flag-5'>Sdram</b>_Control.v代码解析(异步FIFO读写模块、读写<b class='flag-5'>SDRAM</b>过程)

    SDRAM控制器设计之command.v代码解析

    command.v文件对应图中SDRAM指令执行模块,它会从SDRAM接口控制模块接收指令,然后产生控制信号直接输出到SDRAM器件来完成所接收指令的动作。
    的头像 发表于 02-25 10:32 925次阅读
    <b class='flag-5'>SDRAM</b>控制器设计之command.v代码解析

    阻尼器的工作原理与结构

    阻尼器的工作原理与结构密切相关,其基本原理在于通过施加一个与振动方向相反的力(即阻尼力)来消耗振动的能量,使物体的振动幅度逐渐减小,直至停止振动。以下是对阻尼器工作原理与结构的介绍: 工作原理
    的头像 发表于 02-13 14:56 5359次阅读

    短波天线的工作原理和类别

    短波通信以其独特的长距离传输能力而闻名,本文将详细探讨短波天线的工作原理和类别等,勾勒出短波天线的大致面貌。
    的头像 发表于 02-07 17:33 3376次阅读

    分压器的工作原理

     分压器是一种电路元件,其工作原理基于欧姆定律和电压分配法则。分压器通常由两个或更多个电阻(或其他元件,如电容器)串联而成,用于将输入电压分配到输出端。以下是分压器工作原理的详细解释:
    的头像 发表于 01-28 13:50 3236次阅读

    移动电源的工作原理_移动电源结构

    移动电源的工作原理是将电能存储在内置电池中,然后通过适当的电压和电流输出,为电子设备提供所需的电能。以下是关于移动电源工作原理的详细解释:
    的头像 发表于 01-27 16:11 3265次阅读

    超级电容电池的工作原理

    超级电容电池是一种介于传统电容器与电池之间的新型储能装置。其工作原理主要基于电荷分离和电场存储,以下是关于超级电容电池工作原理的详细解释:
    的头像 发表于 01-27 11:17 1973次阅读

    燃料电池测试负载的工作原理是什么?

    燃料电池测试负载的工作原理主要涉及到对燃料电池性能的检测和评估。燃料电池是一种将化学能直接转化为电能的装置,其工作原理是通过氢气和氧气在催化剂的作用下发生氧化还原反应,产生电流和水。在这个过程中
    发表于 12-06 16:31