微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > DDR SDRAM在嵌入式系统中的应用

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

时间:02-07 来源:单片机及嵌入式系统应用 点击:

  图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,因此可以很好地应用在需求高速度、大容量存储器的场合中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top