加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FPGA学习笔记18:DDR3学习1

(2020-02-18 11:26:51)
分类: 儿童学习篇

1、逻辑Bank

组成DDR3的存储单元称为逻辑bank,在逻辑bank中,先指定一个行,再指定一个列,可以准确地定位到所需的存储位置,这是DDR3寻址的基本原理,目前,DDR3基本上是8bank设计。

3、行激活命令 在对DDR3的某一个bank内数据进行读/写访问前,首先必须将该bank中数据所在的行激活,一旦激活,则该行将保持激活状态直到发送预充电命令到DDR3。发送行激活命令式,bank地址与相应的行地址同时发出;行激活命令发送后,随后发送列地址寻址命令与具体的读/写操作命令,由于这两个命令也是同时发出的,所以一般都会以读/写命令来表示列寻址。从行有效到读/写命令发出之间的时间间隔被定义为tRCD,tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期为单位,如tRCD=3,就代表延迟周期为3个时钟周期。

4、读/写命令

DDR3执行bank的行激活命令后,可以发送读/写命令对该行进行读/写操作,在发送读/写命令时,引脚A10决定是否允许自动预充电操作,如果允许进行预充电,那么读/写命令结束时会自动对该行进行预充电,否则该行将一直保持激活状态控制逻辑可继续对该行进行读/写操作

5、数据掩码 DDR3采用数据掩码(DQM)技术,用于屏蔽不需要的数据。通过采用DQM,DDR3控制器能够以字节为操作单元指示I/O端口数据的有效性,当然在读取DDR3时,被掩码掩掉的数据仍然会从存储器中读出,只是在“掩码逻辑单元”处被屏蔽 6、预充电命令

数据读取完成之后,为了释放DDR3内读出放大器的空间,以供同位置bank内的其他行寻址及传输数据,DDR3芯片将执行预充电命令来关闭当前的工作行。预充电对航中所有的存储单元进行数据重新加载,并对行地址进行复位,其中A10决定是对某一个bank或所有bank进行预充电。预充电命令之后,要经过一段时间才允许发送行激活命令操作新的工作行,这个时间间隔称为tRP

7、刷新操作 DDR3需要不断进行刷新操作才能在存储单元中维持数据的有效存储。虽然预充电能够针对一个或所有bank中的工作进行刷新,但是预充电命令与操作相关,不能保证所有存储空间的遍历,同时其操作时间也不固定。而刷新操作则有固定的操作周期,一次对所有行进行操作,以维护存储单元中的所有数据。但是,与预充电不同,刷新操作的行是指所有bank中地址相同的行,而预充电中各bank中的工作行地址并不一定是相同的。 刷新操作分为两种:自动刷新与自刷新。对于自动刷新,在刷新过程中,所有bank都停止工作,而每次刷新结束后,DDR3才可以进入正常的工作状态,即在刷新期间,所有工作指令只能等待而无法执行。自刷新则主要用于休眠模式低功耗状态下的数据维护,此时不再以高系统时钟工作,而是根据内部的时钟进行刷新操作。 8、突发长度/类型

突发是指在同一行中相邻的存储单元连续进行数据访问,连续访问的时钟周期数就是突发长度,突发长度由模式寄存器MR0确定,可设置为固定模式:BC4或BL8模式,即在读/写操作室通过A12选择突发长度4或8。进行突发传输时,只要指定起始列地址与突发长度,DDR3就会依次地自动对后续相应数量的存储单元进行读/写访问,而不再需要DDR3控制器连续的提供列地址。在这种模式下,除了第一次数据的访问需要若干个周期外,后续的每次数据只需一个周期即可获得

模式寄存器用于设置DDR3 SDRAM的工作模式,目前支持4个模式寄存器,分别为MR0、MR1、MR2、MR3,其中MR0用于设置DDR3的基本工作模式,包括突发长度、突发类型、CAS延迟和DLL复位等。MR1用来存储DLL使能、输出驱动长度、Rtt_Nom、额外长度和写电平使能等。MR2用来存储控制更新的特性、Rtt_WR阻抗和CAS写长度。MR3用来控制MPR。

Xilinx公司提供的MIG工具适用于高速存储器接口的解决方案,MIG工具中的DDR3 SDRAM控制器设计运行用户在V6等器件中通过用户接口快速建立FPGA内部控制逻辑与外部存储器的访问连接,DDR3 SDRAM存储器接口包括用户接口模块、存储控制器、物理层模块、以及本地接口和物理层接口等。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有