您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术Virtex-4 和 Virtex-5 FPGA 存储器接口参考设计 正文
Virtex-4 和 Virtex-5 FPGA 存储器接口参考设计

Virtex-4 和 Virtex-5 FPGA 存储器接口参考设计

点击数:7536 次   录入时间:03-04 11:41:11   整理:http://www.55dianzi.com   嵌入式系统-技术

     

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

      

   



www.55dianzi.com

用于地址、控制和数据的物理层接口在 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、数据和系统时钟之间的最佳相位。这样做的目的是使时序余量最大化。校准会消除任何由过程相关的延迟所导致的不确定性,从而补偿对于任何一块电路板都不变的那些通路延迟成分。这些成分包括 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) 工具。

      控制器设计和集成

      创建存储器控制器是一项极其复杂、精细的任务,FPGA 设计人员要解决面临的一道道难题,就需要 FPGA 随附的工具提供更新水平的集成支持。

      为设计的完整性起见,对包括存储器控制器状态机在内的所有构建模块加以集成,十分必要。控制器状态机因存储器架构和系统参数的不同而异。状态机编码也可以很复杂,它是多个变量的函数,例如:

      架构(DDR、DDR2、QDR II、RLDRAM 等)

      组 (bank) 数(存储器器件之外或之内)

      数据总线宽度

      存储器器件的宽度和深度

      组和行存取算法

      最后,数据与 DQS 比 (DQ/DQS) 这类参数会进一步增加设计的复杂性。控制器状态机必须按正确顺序发出命令,同时还要考虑存储器器件的时序要求。

      使用 MIG 软件工具可生成完整的设计。该工具作为 CORE Generator 参考设计和知识产权套件的一部分,可从 Xilinx 免费获取。MIG 设计流程(图9)与传统 FPGA 的设计流程非常相似。MIG 工具的优点是不必再为物理层接口或存储器控制器从头生成RTL 代码。

     

      MIG 图形用户界面 (GUI) 可用于设置系统和存储器参数(图10)。例如,选定 FPGA器件、封装方式和速度级别之后,设计人员可选择存储器架构,并挑选实际存储器器件或 DIMM。同是这一个 GUI,还可用于选择总线宽度和时钟频率。同时,对于某些FPGA 器件,它还提供拥有多于一个控制器的选项,以适应多个存储器总线接口的要求。另外一些选项可提供对时钟控制方法、CAS 延迟、突发长度和引脚分配的控制。

      



www.55dianzi.com

用不了一分钟,MIG 工具即可生成 RTL 和 UCF 文件,前者是 HDL 代码文件,后者是约束文件。这些文件是用一个经过硬件验证的参考设计库生成的,并根据用户输入进行了修改。

  设计人员享有完全的灵活性,可进一步修改 RTL 代码。与提供“黑匣子”实现方法的其他解决方案不同,此设计中的代码未加密,设计人员完全可以对设计进行任意修改和进一步定制。输出文件按模块分类,这些模块被应用于此设计的不同构建模块:用户界面、物理层、控制器状态机等等。因此,设计人员可选择对控制组 存取算法的状态机进行自定义。由 MIG 工具生成的 Virtex-4 和 Virtex-5 DDR2 的组存取算法彼此不同。Virtex-5 设计采用一种最近最少使用 (LRU) 算法,使多达四组中的一行总是打开,以缩减因打开/ 关闭行而造成的开销。如果需要在一个新组中打开一行,控制器会关闭最近最少使用组中的行,并在新组中打开一行。而在 Virtex-4 控制器实现中,任何时候只有单个组有一个打开的行。每个应用都可能需要有自己的存取算法来最大化吞吐量,设计人员可通过改变 RTL 代码来修改算法,以更加适合其应用的访问模式。

  修改可选代码之后,设计人员可再次进行仿真,以验证整体设计的功能。MIG 工具还可生成具有存储器校验功能的可综合测试平台。该测试平台是一个设计示例,用于Xilinx 基础设计的功能仿真和硬件验证。测试平台向存储控制器发出一系列写和读回命令。它还可以用作模板,来生成自定义的测试平台。

  设计的最后阶段是把 MIG 文件导入 ISE 项目,将它们与其余 FPGA 设计文件合并,然后进行综合、布局和布线,必要时还运行其他时序仿真,并最终进行硬件验证。MIG软件工具还会生成一个批处理文件,包括相应的综合、映射以及布局和布线选项,以帮助优化生成最终的 bit 文件。



上一页  [1] [2] 


本文关键字:存储器  接口  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术