位置:51电子网 » 技术资料 » EDA/PLD

利用Xilinx FPGA和存储器接口生成器简化存储器接口

发布时间:2008/5/28 0:00:00 访问次数:521

  fpga 设计人员在满足关键时序余量的同时力争实现更高性能,在这种情况下,存储器接口的设计是一个一向构成艰难而耗时的挑战。xilinx fpga 提供 i/o 模块和逻辑资源,从而使接口设计变得更简单、更可靠。尽管如此,i/o 模块以及额外的逻辑还是需要由设计人员在源 rtl 代码中配置、验证、执行,并正确连接到其余的 fpga 上,经过仔细仿真,然后在硬件中验证,以确保存储器接口系统的可靠性。

  本白皮书讨论各种存储器接口控制器设计所面临的挑战和 xilinx 的解决方案,同时也说明如何使用 xilinx软件工具和经过硬件验证的参考设计来为您自己的应用(从低成本的 ddr sdram 应用到像 667 mb/sddr2 sdram 这样的更高性能接口)设计完整的存
储器接口解决方案。

存储器接口趋势和 xilinx 解决方案

  20 世纪 90 年代后期,存储器接口从单倍数据速率 (sdr) sdram 发展到了双倍数据速率 (ddr) sdram,而今天的 ddr2 sdram 运行速率已经达到每引脚 667 mb/s或更高。当今的趋势显示,这些数据速率可能每四年增加一倍,到 2010 年,随着ddr3 sdram 的出现,很可能超过每引脚 1.2 gb/s。见图1。

  应用通常可分为两类:一类是低成本应用,降低器件成本为主要目的;另一类是高性能应用,首要目标是谋求高带宽。

  运行速率低于每引脚 400 mb/s 的 ddr sdram 和低端 ddr2 sdram 已能满足大多数低成本系统存储器的带宽需求。对于这类应用,xilinx 提供了 spartan-3 系列fpga,其中包括 spartan-3、spartan-3e 和 spartan-3a 器件。

  高性能应用把每引脚 533 和 667 mb/s 的 ddr2 sdram 这样的存储器接口带宽推到了极限;对于这类应用,xilinx 推出了 virtex-4 和 virtex-5 fpga,能够充分满足今天大多数系统的最高带宽需求。

  带宽是与每引脚数据速率和数据总线宽度相关的一个因素。spartan-3 系列、virtex-4、virtex-5 fpga 提供不同的选项,从数据总线宽度小于 72 位的较小的低成本统,
到576 位宽的更大的 virtex-5 封装(见图2)。


  高于 400 mb/s 速率的更宽总线使得芯片到芯片的接口愈益难以开发,因为需要更大的封装、更好的电源和接地-信号比率。virtex-4 和 virtex-5 fpga 的开发使用了先进的稀疏锯齿形 (sparse chevron) 封装技术,能提供优良的信号-电源和接地引脚比率。每个 i/o 引脚周围都有足够的电源和接地引脚和板,以确保良好的屏蔽,使由同步交换输出 (sso) 所造成的串扰噪音降到最低。

低成本存储器接口

  今天,并不是所有的系统都在追求存储器接口的性能极限。当低成本是主要的决定因素,而且存储器的比特率达到每引脚 333 mb/s 已经足够时,spartan-3 系列 fpga配之以 xilinx 软件工具,就能提供一个易于实现、低成本的解决方案。

  基于 fpga 设计的存储器接口和控制器由三个基本构建模块组成:读写数据接口、存储器控制器状态机,以及将存储器接口设计桥接到 fpga 设计的其余部分的用户界面(图3)。这些模块都在 fpga 资源中实现,并由数字时钟管理器 (dcm) 的输出作为时钟来驱动。在 spartan-3 系列实现中,dcm 也驱动查找表 (lut) 延迟校准监视器(一个确保读数据采集具有正确时序的逻辑块)。延迟校准电路用来选择基于 lut 的延迟单元的数量,这些延迟单元则用于针对读数据对选通脉冲线 (dqs) 加以延迟。延迟校准电路计算出与 dqs 延迟电路相同的一个电路的延迟。校准时会考虑所有延迟因素,包括所有组件和布线延迟。


  用户界面是一种握手型的界面。用户发出一条读或写命令,如果是写命令的话还包括地址和数据,而用户界面逻辑以 user_cmd-ack 信号回应,于是下一条命令又可发出。

  在 spartan-3 系列实现中,使用可配置逻辑块 (clb) 中的 lut 来实现读数据采集。在读事务过程中,ddr 或 ddr2 sdram 器件将读数据选通脉冲 (dqs) 及相关数据按照与读数据 (dq) 边沿对齐的方式发送给 fpga。在高频率运行的源同步接口中采集读数据是一项颇具挑战性的任务, 因为数据在非自由运行 dqs 的每个边沿上都会改变。读数据采集的实现使用了一种基于 lut 的 tap 延迟机制。dqs 时钟信号被适量延迟,使其放置后在读数据有效窗口中具有足够的余量,以在 fpga 内被采集。

  读数据的采集是在基于 lut 的双端口分布式 ram 中完成的(见图4)。lut ram 被配置成一对 fifo,每个数据位都被输入到上升边沿 (fifo 0) 和下降边沿 (fifo 1)的fifo 中,如图4 所示。这些深度为 16 个输入的 fifo 异步运行,具有独立的读写端口。

  fpga 设计人员在满足关键时序余量的同时力争实现更高性能,在这种情况下,存储器接口的设计是一个一向构成艰难而耗时的挑战。xilinx fpga 提供 i/o 模块和逻辑资源,从而使接口设计变得更简单、更可靠。尽管如此,i/o 模块以及额外的逻辑还是需要由设计人员在源 rtl 代码中配置、验证、执行,并正确连接到其余的 fpga 上,经过仔细仿真,然后在硬件中验证,以确保存储器接口系统的可靠性。

  本白皮书讨论各种存储器接口控制器设计所面临的挑战和 xilinx 的解决方案,同时也说明如何使用 xilinx软件工具和经过硬件验证的参考设计来为您自己的应用(从低成本的 ddr sdram 应用到像 667 mb/sddr2 sdram 这样的更高性能接口)设计完整的存
储器接口解决方案。

存储器接口趋势和 xilinx 解决方案

  20 世纪 90 年代后期,存储器接口从单倍数据速率 (sdr) sdram 发展到了双倍数据速率 (ddr) sdram,而今天的 ddr2 sdram 运行速率已经达到每引脚 667 mb/s或更高。当今的趋势显示,这些数据速率可能每四年增加一倍,到 2010 年,随着ddr3 sdram 的出现,很可能超过每引脚 1.2 gb/s。见图1。

  应用通常可分为两类:一类是低成本应用,降低器件成本为主要目的;另一类是高性能应用,首要目标是谋求高带宽。

  运行速率低于每引脚 400 mb/s 的 ddr sdram 和低端 ddr2 sdram 已能满足大多数低成本系统存储器的带宽需求。对于这类应用,xilinx 提供了 spartan-3 系列fpga,其中包括 spartan-3、spartan-3e 和 spartan-3a 器件。

  高性能应用把每引脚 533 和 667 mb/s 的 ddr2 sdram 这样的存储器接口带宽推到了极限;对于这类应用,xilinx 推出了 virtex-4 和 virtex-5 fpga,能够充分满足今天大多数系统的最高带宽需求。

  带宽是与每引脚数据速率和数据总线宽度相关的一个因素。spartan-3 系列、virtex-4、virtex-5 fpga 提供不同的选项,从数据总线宽度小于 72 位的较小的低成本统,
到576 位宽的更大的 virtex-5 封装(见图2)。


  高于 400 mb/s 速率的更宽总线使得芯片到芯片的接口愈益难以开发,因为需要更大的封装、更好的电源和接地-信号比率。virtex-4 和 virtex-5 fpga 的开发使用了先进的稀疏锯齿形 (sparse chevron) 封装技术,能提供优良的信号-电源和接地引脚比率。每个 i/o 引脚周围都有足够的电源和接地引脚和板,以确保良好的屏蔽,使由同步交换输出 (sso) 所造成的串扰噪音降到最低。

低成本存储器接口

  今天,并不是所有的系统都在追求存储器接口的性能极限。当低成本是主要的决定因素,而且存储器的比特率达到每引脚 333 mb/s 已经足够时,spartan-3 系列 fpga配之以 xilinx 软件工具,就能提供一个易于实现、低成本的解决方案。

  基于 fpga 设计的存储器接口和控制器由三个基本构建模块组成:读写数据接口、存储器控制器状态机,以及将存储器接口设计桥接到 fpga 设计的其余部分的用户界面(图3)。这些模块都在 fpga 资源中实现,并由数字时钟管理器 (dcm) 的输出作为时钟来驱动。在 spartan-3 系列实现中,dcm 也驱动查找表 (lut) 延迟校准监视器(一个确保读数据采集具有正确时序的逻辑块)。延迟校准电路用来选择基于 lut 的延迟单元的数量,这些延迟单元则用于针对读数据对选通脉冲线 (dqs) 加以延迟。延迟校准电路计算出与 dqs 延迟电路相同的一个电路的延迟。校准时会考虑所有延迟因素,包括所有组件和布线延迟。


  用户界面是一种握手型的界面。用户发出一条读或写命令,如果是写命令的话还包括地址和数据,而用户界面逻辑以 user_cmd-ack 信号回应,于是下一条命令又可发出。

  在 spartan-3 系列实现中,使用可配置逻辑块 (clb) 中的 lut 来实现读数据采集。在读事务过程中,ddr 或 ddr2 sdram 器件将读数据选通脉冲 (dqs) 及相关数据按照与读数据 (dq) 边沿对齐的方式发送给 fpga。在高频率运行的源同步接口中采集读数据是一项颇具挑战性的任务, 因为数据在非自由运行 dqs 的每个边沿上都会改变。读数据采集的实现使用了一种基于 lut 的 tap 延迟机制。dqs 时钟信号被适量延迟,使其放置后在读数据有效窗口中具有足够的余量,以在 fpga 内被采集。

  读数据的采集是在基于 lut 的双端口分布式 ram 中完成的(见图4)。lut ram 被配置成一对 fifo,每个数据位都被输入到上升边沿 (fifo 0) 和下降边沿 (fifo 1)的fifo 中,如图4 所示。这些深度为 16 个输入的 fifo 异步运行,具有独立的读写端口。

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!