如果比较一下运行速度为 400 Mb/s 的 DDR SDRAM 数据有效窗口和运行速度为 667

Mb/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