Xilinx FPGA 提供可简化接口设计的 I/O 模块和逻辑资源。尽管如此,这些 I/O 模块以及额外的逻辑仍需设计人员在源 RTL 代码中配置、验证、执行,并正确连接到系统的其余部分,然后仔细仿真并在硬件中进行验证。
本文介绍了存储器接口设计的性能要求、设计难题以及 Xilinx 的解决方案,从使用 Spartan-3 系列 FPGA 的低成本实现到使用 Virtex-5 FPGA 的最高带宽接口,无所不包。
性能要求和 Xilinx 解决方案
20 世纪 90 年代后期,存储器接口从单倍数据速率 SDRAM 发展为双倍数据速率 (DDR) SDRAM,而如今的 DDR2 SDRAM 运行速率已达每引脚 667 Mbps 或更高。
应用通常可分为两类:
● 低成本应用,器件成本最重要
● 高性能应用,获得最高带宽最重要
运行速率低于每引脚 400 Mbps 的 DDR SDRAM 和低端 DDR2 SDRAM 已能满足大多数低成本系统存储器的带宽需求。对于这类应用,Xilinx 提供了 Spartan-3 系列 FPGA:Spartan-3、3E、3A 和
3AN 器件。
对于将存储器接口带宽推至极限的应用,如每引脚 667 Mbps 的 DDR2 SDRAM,Xilinx 提供了 Virtex-5 FPGA。
带宽是与每引脚数据速率和数据总线宽度相关的一个因素。Spartan-3 系列和 Virtex-5 FPGA 均提供了不同选项,从数据总线宽度小于 72 位的较小的低成本系统,到宽度达 576 位的较大的 Virtex-5 封装(图 1)。
这些速度下的较宽总线使芯片对芯片接口的实现更为困难,因为要求的封装更大,电源到信号和地面到信号比更佳。Virtex-5 FPGA 的开发使用了先进的稀疏锯齿形 (SparseChevron) 封装技术,能提供优良的信号到电源和地面到引脚比。每个 I/O 引脚周围都有足够的电源和接地引脚和板,以确保良好的屏蔽,使由同步交换输出 (SSO) 所造成的串扰噪音降到最低。
使用 Spartan-3 FPGA 的存储器接口
对于每引脚 400Mbps低成本应用,Spartan-3 系列FPGA与 Xilinx 软件工具结合即可提供易于实现且经济的解决方案。
在一个基于FPGA的设计中,三个基本构建模块组成一个存储器接口和控制器:读写数据接口、存储器控制器状态机,以及将存储器接口设计桥接到 FPGA 设计其余部分的用户接口。这些模块在架构中实现由数字控制管理器 (DCM) 的输出信号对其进行时钟驱动,在 Spartan-3 系列实现中,数字控制管理器还对查找表 (LUT) 延迟校准监视器(可确保正确设置读数据采集时序的逻辑块)进行驱动。
在Spartan-3系列实现中,使用可配置逻辑块 (CLB) 中的LUT实现读数据采集。在读事务过程中,DDR2 SDRAM器件将读数据选通脉冲 (DQS) 及相关数据按照与读数据 (DQ) 边沿对齐的方式发送给FPGA。在源同步接口中采集DQ是一项颇具挑战性的任务,因为数据在非自由运行DQS选通脉冲的每个边沿上都会改变。读数据采集的实现使用了一种基于 LUT 的 tap 延迟机制。
写数据命令和时序由写数据接口生成并控制。写数据接口使用输入/输出模块(IOB)触发器和DCM的90度、180度和270度输出端以与命令和数据位刚好对齐的方式发送DQS选通脉冲。
DDR2 SDRAM 存储器接口的实现已在硬件中全面经过验证。设计是在使用了 16 位宽 DDR2 SDRAM 存储器器件和 XC3S700A-FG484 器件的 Spartan-3A 入门套件板中实现的。此参考设计仅利用了 Spartan-3A FPGA 可用资源的一小部分:13% 的 IOB、9% 的逻辑 Slice、16% 的全局缓冲器 (BUFG) 多路复用器 (MUX) 和八个 DCM 中的一个。
可以使用存储器接口生成器 (MIG)软件工具轻松定制Spartan-3系列存储器接口设计,使其符合应用。