积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> CPLD/FPGA >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
基于FPGA的DDR SDRAM控制器在高速数据采集系统中的应用
 
作者:哈尔滨工业大学电气工程及自动化学院 门亮 王立欣   来源:电子产品世界    点击数:442   更新时间:2008-5-29
您可以添加到网摘 让更多人关注此文章:

    

引言

  DDR SDRAM是Double Data Rate SDRAM的缩写,即双倍速率同步动态随机存储器。DDR内存是在SDRAM内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM相同的总线时钟频率下达到更高的数据传输率。


  本设计中采用Altera公司Cyclone系列型号为EP1C6Q240C8的FPGA实现控制器,以Hynix公司生产的型号为HY5DU121622B(L)TP的DDR SDRAM为存储器,完成了对数据的高速大容量存储。


  DDR SDRAM的控制原理及存储功能的实现


  DDR SDRAM支持的常用命令有7种:空操作(NOP)、激活操作(Active)、突发读(Burst Read)、突发写(Burst Write)、自动刷新(Autorefresh)、预充电(Precharge)、模式寄存器配置(Mode Register Set)。所有的操作命令都是通过信号线RAS_N、CAS_N、WE_N共同控制来实现的。


  在对DDR SDRAM进行存取数据操作之前,首先要对其初始化,即设置DDR SDRAM的普通模式寄存器和扩展模式寄存器,确定DDR SDRAM的工作方式,这些设置包括突发长度、突发类型、CAS潜伏期和工作模式以及扩展模式寄存器中的对DDR SDRAM内部延迟锁定回路(DLL)的使能与输出驱动能力的设置。


  初始化完成之后,DDR SDRAM便进入正常的工作状态,此时便可对存储器进行读写和刷新。DDR SDRAM在一对差分时钟的控制下工作。命令(地址和控制信号)在每个时钟的上升沿被触发。随着数据DQ一起传送的还包括一个双向的数据选通信号DQS,接收方通过该信号来接收数据。DQS作为选通信号在读周期中由DDR SDRAM产生,在写周期中由存储器的控制器产生。该选通信号与数据相关,其作用类似于一个独立的时钟,并满足相应的时序要求。由于DDR SDRAM的数据接口在时钟的两个沿的触发下工作,其数据宽度是存储器数据宽度的一半。为实现数据的大容量存储,设计时采用的是一个控制核同时对两片DDR SDRAM进行操作,外接数据线的宽度由单片DDR SDRAM的16 位扩展到32位。


  对DDR SDRAM的读和写操作是基于突发的,即从一个选定的地址单元开始,连续存取已设置长度的地址单元,该长度就是所谓的突发长度。DDR SDRAM提供的可编程的读或写的突发长度为2,4或8。数据的存取以一个激活命令(Active)开始,接着便是读(Burst Read)或写(Burst Write)命令。与激活命令一起被触发的地址位用来选择将要存取的区和页(或行),与读或写命令一起被触发的地址位用来选择突发存取的起始列单元。读命令被触发后,数据将在1.5~3个时钟周期之后出现在数据总线上。这个延迟就是所谓的CAS潜伏期(CAS latency),即从DDR SDRAM内核读出数据到数据出现在数据总线上所需要的时间。CAS潜伏期的大小与SDRAM的速度和存储器的时钟频率有关。当要存取一个不同行的地址单元时,需要通过一个预充电(Precharge)操作关闭当前行。自动刷新(Autorefresh)命令用来周期性地刷新DDR SDRAM,以保持其内部的数据不丢失。


  DDR SDRAM控制器的设计


  DDR SDRAM控制器的功能包括:(1)初始化DDR SDRAM;(2)简化DDR SDRAM的读写时序;(3)将DDR SDRAM接口的双时钟沿数据转换为单时钟沿数据,使得对DDR SDRAM的操作类似于普通RAM;(4)控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不丢失。其控制转换图如图1所示。


  在对DDR SDRAM初始化完成之后,就可进行读、写或其他操作。在执行读(写)命令之前,先要激活将要读(写)的行,之后便可对该行进行突发读(写)。在控制器的设计中,所有的读写命令都是不带预充电的,因此,某一行被激活之后将一直处于激活状态,直到用户发送突发终止命令,此时控制器将自动产生一个预充电命令来关闭当前行。这样,某一行被激活之后用户便可进行连续的突发读(写)操作,从而节省了每次突发读写所需要的激活时间,提高了系统的数据吞吐率。


  DDR SDRAM的读操作流程


  通过对DDR SDRAM的读时序的分析,将整个读操作过程分解为7个状态,每一个状态都对应着不同的命令(CMD)值,DDR控制核通过对CMD的译码完成对DDR SDRAM的操作。从整体的控制过程来看,读操作流程如图2所示。其中实线表示的是读操作的控制流程,虚线表示的读操作的状态转换流程。控制流程的实现依赖于控制器内部状态转换产生的控制信号。实现各状态之间切换的控制信号主要有命令应答信号CMDACK,外部控制信号RDREQ以及程序内部的计数器Count_READ。当系统的主状态机进入到读数据状态时,控制信号CBE=“010”;控制器内部的状态机进入到读状态。读流程中另一个重要的信号为RDREQ,它是由控制器后端的缓存(FIFO)产生的,当缓存中数据容量低于设定值时,信号RDREQ被置高,读状态由PRE_NOP进入READA,发起一次读操作,完成8个数据的传送。程序内部的计数器Count_READ保证控制核在经过设定的CAS潜伏期后从数据总线上读取数据。


  DDR SDRAM的写操作流程


  在对DDR SDRAM的写操作中,同样以状态机完成其时序控制,状态转换图如图3所示。


  每发起一次写操作,DDR SDRAM存储8 个16位的数据,其中控制信号FULL由前端数据缓存(FIFO)产生,当前端缓存中存储的数据达到设定的深度时,FULL被置为高,控制核以100MHz的时钟从缓存中读取宽度为32位的数据,当缓存内部的读计数器计数到4时,FULL信号置低,控制器的读操作停止。读出的4个32位数据经过控制核内部的数据路径模块转换成DDR SDRAM接口的16位数据格式,在DDR控制接口模块产生的时序配合下以双倍速率完成一次突发写。


[1] [2] [3]  下一页



相关文章
· 双口RAM CY7C026在高速数据采集系统中的应用[25]
· 一种基于FPGA实现层析重建的加速方法[21]
· 基于FPGA的FFT处理器设计[23]
· 数字拷贝机的FPGA设计[29]
· 利用视频套件加速FPGA上的视频开发[13]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
各种冲值卡批发销售!独家特价!
特价销售GPS车载导航系统!
数字电视批发销售!你想不到的价格!
品牌相机批发销售!你想不到的价格!
品牌手机批发销售!你想不到的价格!
笔记本电脑批发销售!你想不到的价格!
那一年我做了鸭子2
那一年我做了鸭子1
等你十年(下)
等你十年(上)
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
新店开业,部分开发板&元器件特...
[原创]VB编程RS232串口...
红外摄像机控制故障分析与处理方...
红外防水摄像机在智能视频监控中...
步进电机不用驱动芯片能驱动吗?...
我要选一块双串口,带AD的单片...
[分享]运放和功放的区别是什么...
4×4矩阵式键盘的课程设计...
做过高速信号滤波的高手帮忙...
做视频信号放大器,各位有什么好...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网