用低成本FPGA轻松实现DDR内存接口设计

本文作者:admin       点击: 2005-03-11 00:00
前言:
系统设计者在大量的应用中,常使用经济的双倍数据速率(DDR)内存。虽然DDR在概念上一目了然,但要满足它那高于100MHz速度的时序要求,却是一项挑战。由于它们的灵活性、内置特性、高速工作、大量的闸数和低成本,当今的FPGA为设计提供了有用的基础方法。
DDR内存控制器设计的三个主要问题是:数据选通(DQS)和数据(DQ)间的对齐、数据的多路合成和分解以及时脉域的转换。

数据选通至数据(DQS至QD)的对齐
要对齐DQS和DQ,需要一个精密的DLL来动态地校准DQS。由于DDR内存在读操作时产生相位对齐的DQS和DQ,控制器必须将DQS相对于多个DQ位移相90度,从而正确地捕捉输入数据。DLL必须在所有环境情况下(包括电压和温度的变化)对DQS精确地进行移相。

数据的多路合成和多路分解
对于内存的读入周期,控制器必须把单个数据流转换为一对数据流;对于写入周期,它还必须完成相反的工作。这要求用于保持数据的缓存器,以及转换和时序控制电路。在高频情况下,时序在这里显然是很关键的。

时脉区域转换
时脉区域的转换是另一项挑战。控制器必须在时钟的两个边沿来捕捉输入数据流。在DQS的前同步状态开始捕捉数据,这既可以在时钟的上升沿也可以在时钟的下降沿时发生。数据被捕捉并转换为两个单数据速率流之后,控制器必须将它与采用系统时钟同步的结构对齐。

低成本FPGA的解决方案
新的LatticeECPTM和LatticeECTM低成本FPGA系列提供了工程预制的DDR内存接口,既可靠又便于使用。这些器件有一个板上的精密DLL用于处理信号对齐。此外,每个内部的DQS信号驱动多达16个I/O(其中每一个支持多达8位的数据),从而减小数据歪斜。这就使得在高速数据传输时能够有最大的时序裕量,因此它能够支持高达333Mbps的接口。在I/O结构中拥有数据多路合成和多路分解的功能,这样就减少了在FPGA结构中所需的缓存器个数,并且改善了系统的时序。
在内存读入周期,Lattice组件还提供了一个额外的缓存器,可同步将两个SDR数据流之一的半时脉区域予以转换。此外,I/O结构提供了一个时脉极性检测电路,来正确地捕捉两个单数据速率(SDR)流。半时脉转换和DDR时脉极性的检测电路结合在一起,便形成了一个完整的时脉区域转换功能。

结 语
DDR内存接口设计是极具挑战性的。然而,基于PCB板上的DLL、缓存器以及时脉控制工具,新的FPGA系列提供了工程预制的解决方案。它们大幅地简化了设计者的工作,并且物有所值。