二十多年来,FPGA为世人提供了最灵活、适应性极强、快速的设计环境。早期的DSP设计人员发现,可将一种可再编程的门海用于数字信号处理。如果把内置到FPGA架构中的乘法器、加法器和累加单元结合起来,就可以利用大规模并行计算实现有效的滤波器算法。在未加工频率性能方面的损失,通过并行计算得到了弥补,而且得远大于失,可谓"失之东隅,收之桑榆";由此获得的DSP带宽完全可与替代方案媲美。随着时间的推移,乘法器和加
二十多年来,FPGA 为世人提供了最灵活、适应性极强、快速的设计环境。早期的DSP设计人员发现,可将一种可再编程的门海用于数字信号处理。如果把内置到 FPGA 架构中的乘法器、加法器和累加单元结合起来,就可以利用大规模并行计算实现有效的滤波器算法。
在未加工频率性能方面的损失,通过并行计算得到了弥补,而且得远大于失,可谓"失之东隅,收之桑榆";由此获得的 DSP 带宽完全可与替代方案媲美。随着时间的推移,乘法器和加法器的实施越来越高效。1998 年,Xilinx 顺理成章推出了第一个集成于 Virtex-II FPGA 系列产品中的嵌入式乘法器。Xilinx Virtex-II 和 Virtex-II Pro 系列产品深得人心,推动基于 FPGA 的 DSP 更上层楼,打破了每秒十亿次MAC运算的壁障。
在数字通讯、军事、国防、视频和图像市场需求的助推下,Xilinx 进一步做出调整,成功应对了一系列独特挑战,使极大规模并行实施方式跨上又一个新台阶。随着乘法器和加法器性能和数量的增长,对功耗进行管理也变得越来越困难。
Xilinx 的工程师们设计出了 DSP48Slice,使这一难题迎刃而解。DSP48 Slice是一种超低功耗、高性能、全方位的数字信号处理元件,可方便地实现级联,而不占用任何 FPGA 架构资源。此元件在 Virtex-5 器件中得到进一步加强,并重新命名为 DSP48E Slice,能支持更高的精度、SIMD(单指令多数据)操作、集成模式检测电路和逻辑单元。
对快速数据输入和系数存储器的需求促使 Xilinx 构建起一个数字信息处理平台,其中的 DSP48E Slice 含有率之大前所未见,并且拥有极其充裕的 Block RAM 和分布式 RAM。作为画龙点睛之笔,Xilinx 在此平台中使用了运行速度高达 3.125 Gbps 的集成高速串行通道,在芯片上移入和移出数据变得更为快捷。风云际会,这些元件组合在一起,Virtex-5 SXT 平台由此应运而生。
Virtex-5 SXT 引擎 - DSP48E Slice
想要理解 FPGA 中数字信号处理的演变过程,必须回顾一下 DSP48E Slice(见图 1),及其设计的三个主要方面。
集成乘法器和第二阶段。利用集成的二级加法器/减法器/累加器扩展乘法器的运算。现在,在单独一个 DSP48E Slice 中,就可以执行最常见的 DSP 运算组合了。
紧缩实施。为了提高性能、降低功耗,各个 DSP48E Slice 被设计成独立元件,然后通过接口像积木块一样连接到一起,而每一个 DSP48E Slice 都包含独立于 FPGA 架构的专用路径和缓冲。
全方位定制设计。Xilinx 很早就确定,要实现高性能和低功耗,一个按照最新工艺尺寸度身打造的全方位定制设计是必不可少的。Xilinx 设计团队与 Arithmetica 通力协作,将乘法器和加法器电路 MathIP 库加以集成,进一步提高了效率。
以这种设计为依托,DSP48E Slice 的实施在性能和低功耗效率方面达到了前所未有的水平。Virtex-5 器件中的 DSP48E Slice 分别以高速 550 MHz、中速 500 MHz 和低速 450 MHz 运行。无论您单独使用一个 DSP48E Slice 还是将所有 640 个 DSP48E Slice 汇集到最大的 Virtex-5 SXT 器件中,都可以达到这一性能(使用专用的级联逻辑实现每秒 3520 亿次乘法累积运算)。而且,实现这一令人叹为观止的性能,仅仅使用了 DSP48E Slice,完全没有消耗逻辑或 FPGA 路径资源。
这种专用的级联逻辑意味着能耗的计算是基于每一个 DSP48E Slice 的,也即其运行速度和输入的翻转率。单个 DSP48E Slice 的实测典型功耗为 1.38 mW/100 MHz。不难算出,假定 Virtex-5 SX95T 器件中所有 640 个 Slice 均以 550 MHz 运行,而翻转率为通常的 38%,则所有 DSP48E Slice 的总体动态功耗为 4.92W。
低功耗、高性能设计技术
为了充分利用独特的 Virtex-5 SXT 架构进行数字信号处理,建议遵循如下的简易指南:
实施能最大化使用 DSP48E Slice 的滤波器算法。每一个 25 x 18 位的 DSP48E Slice 都等同于 500 个以上可编程逻辑 Slice,功耗为同等逻辑实施的 1/10,单独或链接运行速度高达 550 MHz。
利用 DSP48E Slice 的所有功能。每一个 DSP48E Slice 都可配置成独立的 25 x 18 乘法器,一个 25 x 18 位乘法器兼加法器/减法器/累加器,或者一个 48 x 48 位加法器或减法器。每一个 DSP48E Slice 都支持 SIMD 运行以及对称或收敛圆整。
实施定点或浮点运算。DSP48E Slice 不仅对于定点 FIR、FFT或复杂的过滤器运算而言是理想的产品,25 x 18 的输入大小和级联路径还使我们可以使用两个 DSP48E Slice 来实现高效的 24 x 24 无符号浮点运算。
在数字信号应用中使用 DSP48E Slice
Virtex-5 SXT 平台中 DSP48E Slice、Block RAM、逻辑和数千兆位级收发器的独特结合,为 DSP 过滤器的应用提供了高成本效益、高性能、低功耗的解决方案。为了说明这一点,让我们看看 Virtex-4 SX 和 Virtex-5 SXT 器件平台中无线卡的应用,对比一下两种情况下的功耗差别。
WiMAX 数字前端 (DFE) 集成了以下内容:数字上变频 (DUC) /数字下变频 (DDC)、振幅因数缩小 (CFR) 和自动增益控制 (AGC)。本设计中要求的过滤功能正好与一个 Virtex-4 SX25 FPGA 或一个 Virtex-5 SX35T FPGA 所能提供的 DSP48E Slice 相匹配。本设计运行频率为 276 MHz,消耗 Virtex-4 SX25 FPGA 中 73% 的 DSP48 资源(128 个中的 95 个),或者 Virtex-5 SX35T FPGA 中 48% 的 DSP48E 资源(196 个中的 95 个)。
尽管单看 WiMAX DFE 方案的表现和用于其实施的资源已令人惊叹,真正堪称一绝的还是其功耗效率。本设计主要使用 DSP48 或者 DSP48E Slice,但也消耗 Block RAM 和逻辑。表 1 对这些方案进行了对比,并展示由 Virtex-4 到 Virtex-5 器件的实测功耗和降低水平。
结论
对数字信号处理的要求在不断提高,提供可扩展高性能 DSP 的呼声日益响亮,因此,在每秒几百 GMAC 甚至更高的水平上管理功耗的难题也愈见急迫。Xilinx Virtex-5 SXT FPGA 平台提供了独特的单芯片解决方案,充分利用大规模并行计算达到超高性能,同时将功耗降到最低。欲了解 Xilinx DSP 解决方案详情,请访问 /cn/dsp