中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

DDR SDRAM在嵌入式系统中的应用方案

时间:2007/6/27 11:17:00  作者:  来源:IC72  浏览人数:1629
 
 

      引 言

      很多嵌入式系统,特别是应用于图像处理与高速数据采集等场合的嵌入式系统,都需要高速缓存大量的数据。DDR(Double Data RATE,双数据速率)SDRAM由于其速度快、容量大,而且价格便宜,因此能够很好地满足上述场合对大量数据缓存的需求。但DDR SDRAM的接口不能直接与现今的微处理器和DSP的存储器接口相连,需要在其间插入控制器实现微处理器或DSP对存储器的控制。

      随看密度与性能的不断提升,现场可编程门阵列(FPGA)已被广泛应用于各种嵌入式系统中。而且,现在很多的FPGAs都提供了针对DDR SDRAM的接口特性:其输入输出引脚都与SSTL一II电气特性相兼容,内部提供了DDR触发器、锁相环等硬件资源。使用这些特性,可以更加容易地设计性能可靠的高速DDR SDRAM存储器控制器。 

      1 DDR SDRAM在嵌入式系统中的应用

      图1是DDR SDRAM在高速信号源系统中的应用实例。

IC72新闻中心

      在该系统中,由FPGA完成各模块之间的接口控制。FPGA接收从前端传送过来的高速数字信号,并将其存储在DDR SDRAM中;13SP通过FPGA读取DDR中的数据.处理后再送回到DDR SDRAM,最后由FPGA负责将数据分两路输出。

      该系统对存储器的要求是能够高速地存储大量的数据,DDR SDRAM正好能满足这一要求。此时,FPGA是否能对DDR SDRAM进行有效控制就成为影响系统性能的关键。最后的试验结果表明,FPGA是能够胜任这一任务的。 

      2 DDR SDRAM的工作方式

      在DDR SDRAM能够被存取数据之前,需要先对其初始化。该初始化流程是预先定义好的,不正确的操作将导致无法预料的结果。初始化的过程中将设置DDRSDRAM的普通模式寄存器和扩展模式寄存器,用来制定DDR SDRAM的工作方式。这些设置包括突发长度、突发类型、CAS潜伏期和工作模式以及扩展模式寄存器中的对DDR SDRAM内部DLL的使能与输出驱动能力的设置。模式寄存器可以被再编程,这时需要DDRSDRAM的各个区(bank)处于空闲状态,从而改变存储器的工作模式。如果操作正确,对模式寄存器的再编程不会改变存储器内存储的数据。

      初始化完成之后,DDR SDRAM便进入正常的工作状态,此时便可对存储器进行读写和刷新。DDR SDRAM在一对差分时钟(CLK与CLKn;CLK的上升沿与CLKn的下降沿的交点被认为是CLK的上升沿)的控制下工作。命令(地址和控制信号)在每个时钟(CLK)的上升沿被触发。随着数据一起传送的还包括一个双向的数据选通信号,接收方通过该信号来接收数据。DQS作为选通信号在读周期中由DDR SDRAM来产生,在写周期中由存储器控制器来产生。该选通信号与数据相关,其作用类似于一个独立的时钟,因此也需要满足相应的时序要求。读周期中,DQS与数据是边沿对齐的;写周期中,DQS与数据是中心对齐的。存储器输入的数据在DQS的两个沿都触发.输出的数据也是以DQS的两个沿作为参考,同时还要以时钟CLK的两个沿作为参考。因此,由于接口在时钟的两个沿的触发下工作,其数据宽度(n)是存储器数据宽度(2n)的一半。图2描述了DDR SDRAM的工作方式。

IC72新闻中心

      对DDR SDRAM的读和写操作是基于突发的:从一个选定的地址单元开始,连续存取设置好长度的地址单元。该长度就是所谓的突发长度。DDR SDRAM提供的可编程的读或写的突发长度为2,4或8。数据的存取以一个激活命令(ACTlVE command,RAS_n low)开始,接着便是读(CAS_n low)或写(CAS_n low and WE_n low)命令。与激活命令一起被触发的地址位用来选择将要存取的区(bank)和页(或行)}与读或写命令一起触发的地址位用来选择突发存取的起始列单元。使用控制器读取DDR SDRAM的仿真波形示意图如图2所示。读命令被触发后,数据将在1.5~3个时钟周期之后出现在数据总线上。这个延迟就是所谓的CAS潜伏期(CAS latency),即从DRAM内核读出数据到数据出现在数据总线上所需要的时间。CAS潜伏期的大小与SDRAM的速度和存储器的时钟频率有关。

      当要存取一个不同行的地址单元时,需要通过一个预充电(PRECHARGE)操作关闭当前行。自动刷新(AUTO-REFRESH)命令用来周期性地刷新DDRSDRAM,以保持其内部的数据不丢失。

      3 DDR SDRAM控制器的设计

      DDR SDRAM控制器的功能就是初始化DDRSDRAM;将DDR SDRAM复杂的读写时序转化为用户方简单的读写时序,以及将DDR SDRAM接口的双时钟沿数据转换为用户方的单时钟沿数据,使用户像操作普通的RAM一样控制DDR SDRAM;同时,控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不需要用户的干预。

      3.1 DDR SDRAM控制器的控制流程

      DDR SDRAM提供了多种命令,整个控制状态机非常复杂。但很多应用场合中,并不需要用到所有的命令,因此为了简化设计,但同时又兼顾尽可能多的应用场合,在控制器的设计中制定了如下几种功能:DDR SDRAM的初始化,可变长度的突发读写,自动刷新功能,预充电以及模式寄存器的重置(reload)。图3是控制器整个状态转移图。

IC72新闻中心

      系统上电后,DDR SDRAM处于空闲状态(Idle),在对存储器进行读写操作之前,需要先对其进行初始化。初始化的过程中,将设置突发长度,突发类型,CAS潜伏期等参数。DDR SDRAM的初始化有一个固定的步骤,错误的操作将导致DDR SDRAM进入不确定状态。在控制器中使用了一个专门的初始化状态机来对DDR SDRAM进行初始化。

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

      控制器同时提供了一个自动刷新(auto refresh)计数器,每隔一定的时间间隔(即DDR SDRAM的刷新周期,根据所使用的存储器而定,可在控制器中设定),便会产生一个刷新请求。如果此时DlDR SDRAM处于空闲状态,控制器便会发出一个自动刷新命令来对DDR SDRAM进行刷新;如果此时DDR SDRAM正在进行读(写)操作,控制器将会等到当前的读(写)操作完成之后再发送刷新命令。在刷新过程中,用户如果有读(写)请求,控制器将在当前刷新周期完成之后再响应用户的请求。

      正常的操作过程中,当DDR SDRAM处于空闲状态时,用户还可以根据实际的需要来重置存储器的控制寄存器,重新设定存储器的突发长度、突发类型、CAS潜伏期等参数。

      3.2控制器数据通道的结构

      图4是DDR SDRAM控制器数据通道的结构图。

IC72新闻中心

      图4中完整地显示了控制器读和写数据通道上DQ与DQS的结构关系。前面提到过,Cyclone系列FPGA没有带DDR触发器的输入输出单元,但完全可以用靠近输入输出引脚处的逻辑资源来实现DDR触发器,而且最后的结果表明,这种实现方式可以满足时序要求。

      从图4中也可以看到,控制器内部有两个时钟,clk和clk_90,两者之间的相位差为90°。图中将面向存储器的时钟命名为clk。它是clk_90时钟的90°相位延迟后的信号。clk_90作为系统时钟来驱动整个FPGA,clk时钟驱动存储器接口电路。

      3.2.1 DQS相位延迟电路

      在读周期中,DDR SDRAM输出的DQ和DQS信号是边沿对齐的。为了使用DQS作为选通信号来捕获DQ,DQS信号需要在FPGA内部相对于DQ信号作90°的相位延迟。但是这个延迟不能使用锁相环(PLL)来完成,因为DQS信号不具有时钟的特性。因此,需要在DQS和读数据时钟之间加一个延迟链(delay chain),如图4中所示。

      前面提到过,Cyclone系列FPGA在其DQS输入引脚上有一个专用的延迟单元,用来使DQS相对于DQ信号产生一个90°的相移。因此,可以使用该硬核资源来完成对DQS的相移,而不必通过内部的逻辑来搭建这样一个延迟电路。从而可以获得更好的时序性能。

      3.2.2再同步

      读周期中,从DDR SDRAM来的数据信号首先通过延迟后的DQS锁存到DDR触发器中。为了在FPGA内部能够使用该数据,还要将其同步到FPGA内部的时钟域上,这个过程称为再同步(resynchronization)。如图4所示,对于前一级DQS延迟后的信号锁存的数据再通过clk-90同步之后才送到内部数据总线上。

      在写周期中,DQS与DQ必须是中心对齐的(centerahgn)。我们用clk_90时钟触发的DDR触发器产生DQS信号,因此,为了满足时序要求,从内部来的数据通过clk_90时钟锁存后再由clk触发的DDR触发器将其输出,从而保证DQs与DQ是中心对齐的。

      4 控制器的实现

      该控制器针对16位宽512 Mb的DDR SDRAM设计,在ALTERA公司的Quartus II4.2环境中采用Cyclone系列的EPlC6Q2410C6来实现,总共使用了729个逻辑单元,占FPGA可编程逻辑资源的12%,此外还使用了1个锁相环(PLL)。最后,在Modelsim 5.8中对整个工程进行布局一布线后仿真(Post-P1ace&RouteSimulation),采用的模型为MICRON公司的512 Mb的DDR SDRAMMT46V32M16的仿真模型,时钟为133 MHz,图2是控制器读取DDR SDRAM的时序仿真波形。

      5 结 论

      本文给出了一种通过FPGA控制将DDR SDRAM应用在嵌入式系统中的方法。设计中采用Altera公司性价比较高的Cyclone系列FPGA,并充分利用片内提供的锁相环、DDR触发器以及DQS延迟链等硬件资源,占用的逻辑资源少。该设计可以很容易地移植到Altera公司其他系列的FPGA上,经过适当的修改还可以用来控制64位宽的DIMM型的DDR SDRAM,因此可以很好地应用在需求高速度、大容量存储器的场合中。

 
【相关文章】
·德仪创新芯片材料技术突领跑45 纳米工艺技术
·动力试验车图像无线传输控制系统的开发应用
·基于JTAG的ARM芯片系统调试
·DDR SDRAM在嵌入式系统中的应用方案
·面向多媒体应用的嵌入式Linux实时性研究
·基于嵌入式Web的电子交警系统
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9