微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Xilinx 和FPGA的DDR2 SDRAM存储器接口控制器的设计

基于Xilinx 和FPGA的DDR2 SDRAM存储器接口控制器的设计

时间:08-27 来源:互联网 点击:

  • 缓冲器作为输入取出。这种技术可补偿 FPGA 与存储器器件之间的 IOB、器件和迹线延迟。从FPGA 输入管脚发出的归一化信号在进入 LUT 延迟电路之前使用与 DQS 相似的布线资源,以与布线延迟相匹配。环路之迹线延迟应为发送给存储器的时钟和 DQS 之迹线延迟的总和(图4)。

    写数据命令和时序由写数据接口生成并控制。写数据接口使用 IOB 触发器和 DCM 的90 度、180 度和 270 度输出,发送按照 DDR 和 DDR2 SDRAM 的时序要求与命令位和数据位正确对齐的 DQS。

    用于 Spartan-3 系列 FPGA 的一种 DDR 和 DDR2 SDRAM 存储器接口实现已通过硬件进行了充分验证。一个利用 Spartan-3A 入门套件的低成本 DDR2 SDRAM 参考设计示例已完成。此设计为板上 16 位宽 DDR2SDRAM 存储器器件而开发,并使用了XC3S700A-FG484。此参考设计仅利用了 Spartan-3A FPGA 器件可用资源的一小部分:13% 的 IOB、9% 的逻辑 Slice、16% 的 BUFG MUX 和八个 DCM 中的一个。这一实现为其余部分 FPGA 设计所需的其他功能留下了可用资源。

    使用存储器接口生成器 (MIG) 软件工具(本白皮书后面的部分有说明),设计人员可以很容易地定制 Spartan-3 系列的存储器接口设计,以适合自己的应用。

    高性能存储器接口

    随着数据速率的提高,满足接口时序方面的要求变得愈益困难了。与写入存储器相比,从存储器中读数据时,存储器接口时钟控制方面的要求通常更难满足。追求更高数据速率的趋势使得设计人员面临巨大挑战,因为数据有效窗口(此为数据周期内的一段时间,其间可获得可靠的读数据)比数据周期本身缩小得快。造成这种情况的原因是,影响有效数据窗口尺寸大小的系统和器件性能参数具有种种不确定性,它们缩小的速率与数据周期不同。

    如果比较一下运行速度为 400 Mb/s 的 DDR SDRAM 数据有效窗口和运行速度为 667Mb/s 的 DDR2 存储器技术,这种情况就一目了然了。数据周期为 2.5 ns 的 DDR 器件拥有 0.7 ns 的数据有效窗口,而数据周期为 1.5 ns 的 DDR2 器件仅有 0.14 ns 的数据有效窗口(图5)。

    显然,数据有效窗口的加速减损给 FPGA 设计人员带来了一堆全新的设计挑战,要创建和维护可靠的存储器接口性能,就得采用更有效的方法。

    正如 Spartan-3 系列 FPGA 中所实现的那样,使用读数据 DQS 可以把读数据采集到可配置逻辑块 (CLB) 中,但是使用 LUT 把 DQS 或时钟与数据有效窗口中心对齐时,所用的延迟 tap 却很粗糙。CLB 中实现的延迟 tap 具有大约几百微微秒 (ps) 的分辨率,然而,对于超过 400 Mb/s 的数据速率的读取采集时序,所需的分辨率要比基于CLB 的 tap 高一个数量级。Virtex-4 和 Virtex-5 FPGA 采用 I/O 模块中的专用延迟和时钟资源(称为 ChipSync? 技术)来解决这一难题。内置到每个 I/O 中的 ChipSync模块都含有一串延迟单元(tap 延迟),在 Virtex-4 中称为 IDELAY,而在 Virtex-5FPGA 中称为 IODELAY,其分辨率为 75 ps (见图6)。

    此实现的架构基于几个构建模块。用户界面负责把存储器控制器和物理层接口桥接到其余 FPGA 设计,它使用 FIFO 架构(图7)。FIFO 有三套:命令/ 地址 FIFO、写FIFO、读 FIFO。这些 FIFO 保存着命令、地址、写数据和读数据。主要的控制器模块控制读、写和刷新操作。其他两个逻辑模块执行读操作的时钟-数据中心对齐:初始化控制器和校准逻辑。

    用于地址、控制和数据的物理层接口在 I/O 模块 (IOB) 中实现。读数据在锁存器的第二级(也是 IOB 的一部分)重新采集。

    Virtex-4 和 Virtex-5 FPGA 存储器接口参考设计支持两种读数据采集技术。Virtex-4FPGA 支持的直接时钟技术延迟了读数据,因而使用 IOB 的输入 DDR 触发器中的系统时钟可直接寄存读数据。为将 FPGA 时钟对齐到最佳状态,对每个读数据位都会单独进行校验。这种技术为高达 240 MHz 的时钟速率提供了足够的性能。

    第二种技术称为基于 DQS 的技术。此技术用于更高的时钟速率,Virtex-4 和 Virtex-5FPGA 二者都支持此技术。它使用存储器 DQS 来采集相应的读数据,数据被此 DQS的延迟信号(通过一个局部 I/O 时钟缓冲器 (BUFIO) 分配)寄存。此数据然后在触发器的第二级与系统的时钟域同步。IOB 中的输入串行器/ 解串器功能用于读数据采集;第一对触发器把数据从延迟的 DQS 域中传输到系统的时钟域(图8)。

    两种技术都涉及到 tap 延迟 (IDELAY) 单元的应用, 在由校验逻辑实现的校验程序中,这些延迟单元会有所变化。在系统初始化期间,会执行此校准程序以设置 DQS、数据和系统时钟之间的最佳相位。这样做的目的是使时序余量最大化。校

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

    网站地图

    Top