的延迟信号(通过一个局部 I/O 时钟缓冲器 (BUFIO) 分配)寄存。此数据然后在触发
器的第二级与系统的时钟域同步。IOB 中的输入串行器/ 解串器功能用于读数据采集;第一对触发器把数据从延迟的 DQS 域中传输到系统的时钟域(图8)。
两种技术都涉及到 tap 延迟 (IDELAY) 单元的应用, 在由校验逻辑实现的校验程序中,这些延迟单元会有所变化。在系统初始化期间,会执行此校准程序以设置 DQS、数据和系统时钟之间的最佳相位。这样做的目的是使时序余量最大化。校准会消除任何由过程相关的延迟所导致的不确定性,从而补偿对于任何一块电路板都不变的那些通路延迟成分。这些成分包括 PCB 迹线延迟、封装延迟和过程相关的传播延迟成分(存储器和 FPGA 中都有),以及 FPGA I/O 模块中采集触发器的建立/ 保持时间。有的延迟是由系统初始化阶段的过程、电压和温度所决定的,校准即负责解决这些延迟的变动。
在校准过程中会增加 DQS 和数据的延迟 tap 以执行边沿检测,检测方式是通过连续从存储器中读回数据并对预编写培训模式或存储器 DQS 本身进行采样,直到确定数据选通脉冲 (DQS) 的前沿或前后两沿。之后数据或 DQS 的 tap 数被设定,以提供最大的时序余量。对“基于 DQS”的采集而言,DQS 和数据可以有不同的 tap 延迟值,因为
同步实质上分为两个阶段:一个先在 DQS 域中采集数据,另一个把此数据传输到系统时钟域。
在更高的时钟频率下,“基于 DQS ”的采集方法就变得十分必要,其二阶段方法能提供更好的采集时序余量,因为 DDR 时序的不确定性主要限于 IOB 中触发器的第一级。此外,因为使用 DQS 来寄存数据,与时钟-数据 (Tac) 变化相比较, DQS -数据变化的时序不确定性要小一些。例如,对于 DDR2 而言,这些不确定性就是由器件的tDQSQ 和 tQHS 参数给出的。
正如 Spartan-3 系列 FPGA 中所实现的那样,Virtex-4 和 Virtex-5 FPGA 的写时序由DCM 所支持,此 DCM 生成系统时钟的两相输出。存储器的 DQS 由一个输出 DDR 寄存器来输出,这个 DDR 寄存器由系统时钟的同相时钟驱动。写数据则由超前系统时钟90° 的一个 DCM 时钟输出进行时钟控制。这种技术确保了在 FPGA 的输出部分,DQS 与写操作的数据中心对齐。
此设计的其他方面包括整体控制器状态机的逻辑生成和用户接口。为了使设计人员更容易完成整个设计,Xilinx 开发了存储器接口生成器 (MIG) 工具。
控制器设计和集成