




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于XilinxFPGA实现的DDRSDRAM控制器工作过程详解1引言在高速信号处理系统中,需要缓存高速、大量的数据,存储器的选择与应用已成为系统实现的关键所在。DDRSDRAM是一种高速CMOS、动态随机访问存储器,它采用双倍数据速率结构来完成高速操作。SDRSDRAM一个时钟周期只能传输一个数据位宽的数据,因此在相同的数据总线宽度和工作频率下,DDRSDRAM的总线带宽比SDRSDRAM的总线带宽提高了一倍。XilinxVirtexTM-4FPGA具备ChipSync源同步技术等优势。它的输入输出模块(IOB)提供了封装引脚与内部可配置逻辑之间的接口,无论是输入路径还是输出路径都提供了一个可选的SDR和DDR寄存器。VirtexTM-4的IOB专门针对源同步设计进行了优化,包括每一位的偏移校正、数据的串行化和解串行化、时钟分频以及专用的本地时钟资源等,而且它在每一个I/O模块中都提供了64-阶延迟线。这些特性使得VirtexTM-4FPGA能够更好的实现DDRSDRAM控制器的逻辑设计,准确可靠的捕获数据。实验板选择专为DSP应用而优化的Virtex-4SX35作为DDRSDRAM控制器的实现平台,选用MicronMT46V8M16P-75ZDDRSDRAM。2DDRSDRAM控制器工作原理DDRSDRAM控制器的主要功能就是完成对DDRSDRAM的初始化,将DDRSDRAM复杂的读写时序转化为用户简单的读写时序,以及将DDRSDRAM接口的双时钟沿数据转换为用户的单时钟沿数据,使用户像操作普通的RAM一样控制DDRSDRAM;同时,控制器还要产生周期性的刷新命令来维持DDRSDRAM内的数据而不需要用户的干预。该控制器的模块化表示如图1。应用层接口是DDR控制器与FPGA用户设计的接口。对于DDR控制器的用户来说,只需要了解如何使用应用层接口,通过应用层接口给DDR控制器发出指令、数据,并且接收数据。这种模块化设计增加了DDR控制器的可移植性,也使用户使用起来更简单。要功能是:完成存储器的初始化,接收并解码用户指令然后产生读、写、刷新等指令。控制层的逻辑设计主要是由一个状态机管理的。物理层是直接与DDRSDRAM通信的平台,它的主要功能是:捕获DDRSDRAM发出的数据、以及通过输入输出缓存发送所有DDRSDRAM的控制信号、地址信号以及数据信号。2.1控制层工作原理控制层主要由一个状态机来控制DDRSDRAM控制器的状态转移。状态机如图2所示。DDRSDRAM上电后必须按照规定的程序完成初始化的过程。在初始化过程中一定要注意普通模式寄存器与扩展模式寄存器的值是否正确。普通模式寄存器用来设定DDRSDRAM的工作方式,包括突发长度、突发类型、CAS潜伏期和工作模式;扩展模式寄存器主要实现对DDRSDRAM内部DLL的使能和输出驱动能力的设置。在本实验板中选择的是MicronMT46V8M16P-75Z型号的DDRSDRAM,该型号芯片CAS潜伏期只能为2或者2.5。初始化完成之后,DDRSDRAM进入正常的工作状态,此时可对存储器进行读写和刷新操作。在本设计中为了计算读数据延迟量引入了一个假读操作(DummyRead),这将在下一节中详细分析。DDRSDRAM在一对差分时钟的控制下工作。命令在每个时钟的上升沿触发。随着数据一起传送的还包括一个双向的数据选通信号DQS,接收方通过该信号来接收数据。该选通信号与数据相关,其作用类似于一个独立的时钟。DQS作为选通信号在读周期中由DDRSDRAM来产生。读周期中,DQS与数据是边沿对齐的。读操作时,DDR控制器采用直接时钟获取的方式捕获数据。读命令触发后,数据将在CAS延迟之后出现在数据总线上。DQS在写周期中是由DDR控制器产生的。写周期中,DQS与数据是中心对齐的。读写操作时序如图3(DQ指传输的数据)。在进行读写操作之前需要先执行ACTIVE命令(激活命令),与激活命令一起被触发的地址用来选择将要存取的区(bank)和页(或行)。与读或写命令一起触发的地址位用来选择突发存取的起始列单元。在激活指令之前还有一个预充电(PRECHARGE)操作,预充电操作关闭之前进行操作的存储区或行,此操作之后DDRSDRAM才能对新的区或者行进行读写操作。DDRSDRAM需要用自动刷新(AUTOREFRESH)命令来周期性的刷新DDRSDRAM,以保持其内部的数据不丢失。自动刷新必须在所有区都空闲的状态下才能执行。128Mb的DDRSDRAM执行自动刷新的周期最大为15.625μs。写操作是由FPGA向DDRSDRAM写入数据,只需按照DDRSDRAM的工作要求发出相应的指令即可,逻辑设计相对简单,因此下面我们将详细介绍读操作中的数据捕获技术。2.2物理层数据捕获技术及数据通道电路物理层的主要功能是获得DDRSDRAM发出的数据、以及通过输入输出缓存发送所有DDRSDRAM的控制信号、地址信号以及数据信号。数据捕获技术及数据通道电路是DDRSDRAM控制器的技术核心。DDRSDRAM接口是源同步接口,即数据与传输时钟是边沿对齐的。因此,为了在FPGA中可靠捕获数据要么延迟时钟要么延迟数据,使数据与时钟中心对齐。本设计采取直接时钟数据捕获技术。所谓直接时钟数据捕获技术就是利用DQS信号计算数据延迟量,通过延迟数据使数据中心与FPGA内部时钟沿对齐,然后用该内部时钟直接读取数据。DQS是由DDR发出的数据选通信号,它与FPGA内部时钟频率相同。此项技术的关键是确定数据的延迟时间。相对于其他的数据捕获技术,这种直接时钟数据捕获技术可以应用于更高的时钟频率,精确性和稳定性都高于其他方法。为了得到数据应该延迟的时间量,首先要对DQS进行边沿检测。控制器发出Dummy_rd_en信号(即假读信号)使DDRSDRAM发出DQS信号,当延迟量计算完毕时,置Dummy_rd_en为低。在XilinxVirtexTM-4FPGA中实现该延迟检测电路是非常容易的,因为设计可以直接利用FPGA内部的IDELAY与IDELAY_CTRL电路。图5表示了边沿检测以及数据通道电路。在该电路中,DQS输入到IDELAY模块,延迟量初始化为0,然后延迟量逐次递增,在这个过程中不断检测延迟后的DQS的跳变沿,并将延迟量TAP值记录下来,以便计算数据DQ的延迟量。在图中可看出,边沿检测和控制逻辑发出DLYRST、DLYCE和DLYINC三个信号来控制IDELAY延迟模块的工作模式。由于IDELAY模块的最大延迟阶数为64,且在XilinxVirtexTM-4FPGA中,延迟模块的精度TIDELAYRESOLUTION为75ps,所以延迟时间最大为75ps*64=4.8ns,因此当时钟频率低于200MHZ(周期为5ns)时,不可能检测到两个跳变沿,此时必须采取适当的措施来获得数据延迟量。当64阶延迟量完成时只检测到一个跳变沿时,我们认为数据延迟量为检测到第一个跳变沿时的延迟量加上16,因为四分之一个200MHZ时钟周期大约为16阶延迟量(16*75=1.2ns)即:延迟后的数据经过IDDR触发器分别得到上升沿对应的数据和下降沿对应的数据,然后再通过异步查找表FIFO使读进FPGA的数据与FPGA内部时钟同步方便用户使用。3控制器实验结果及结论该DDR控制器设计总共占用751个4输入LUT,占总LUT资源的2%。另外,设计还使用了3个DCM。DDR控制器在XilinxISE8.1i编程环境下实现,结合ModelSimSE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 螺旋离心泵的设计
- 院外压迫止血急救实务要点
- 心脏疾病化验指标临床解读与运用
- 2025西藏职业技术学院辅导员考试试题及答案
- 幼儿传染性疾病的卫生保健
- 2025贵州中医药大学时珍学院辅导员考试试题及答案
- 2025贵州大学辅导员考试试题及答案
- 2025甘肃农业职业技术学院辅导员考试试题及答案
- 共筑生命家园教学设计
- 小学生性教育
- 2025年供应链管理专业考试试题及答案
- 消防监护人考试题及答案
- GB 35181-2025重大火灾隐患判定规则
- 2025山东能源集团营销贸易限公司招聘机关部分业务人员31人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年漳州市招聘中小学幼儿园教师真题
- 汉代文化课件图片高清
- 2025河南中考:政治必背知识点
- 【四川卷】【高二】四川省成都市蓉城名校联盟2023-2024学年高二下学期期末联考数学试题
- 2025年中南出版传媒集团湖南教育出版社分公司招聘笔试参考题库含答案解析
- 艾滋病病人的心理护理
- 铁路旅客运输服务铁路客运车站服务工作课件
评论
0/150
提交评论