你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

高速系统设计的15条“军规”:让您的FPGA设计系统时钟速率超过500MHz?

发布者:jackzhang 时间:2014-03-25 13:33:19

作者:Steve Leibson, 赛灵思战略营销与业务规划总监


“更快”是每个系统设计师必备的词汇,基于FPGA的设计亦是如此。如果您经常试图从FPGA设计中最大化地发掘每个MHz的性能,那么无疑Xilinx刚发布的一个白皮书您一定会非常感兴趣。它的题目是“利用赛灵思All Programmable FPGA 和 SoC 实现高速无线电设计Enabling High-Speed Radio Designs with Xilinx All Programmable FPGAs and SoCs”。如果您正在设计高速无线电蜂窝系统等,您就该看下这份白皮书。但其中的指南和技巧远不只适用于无线设计,它还适用于使用可编程逻辑设计的各个高速系统。

白皮书指出的宗旨是“如果符合一些简单的设计原则,高速无线设计可以很容易地建立在7系列FPGA架构上。Xilinx公司已经创建了典型无线数据路径的设计范例,表明中速级(-2)器件上使用的几乎100%的 slice资源都支持500 MHz以上的时钟频率。

然而,这个白皮书中的内容适用于所有数据路径设计。

白皮书中的示例架构是单天线路径DUC (数字上变频器)架构,支持三种不同的时钟速率: 245.76 MHz、368.64 MHz、和491.52 MHz。该设计利用Xilinx System Generator工具中的IP (FIR编译器)、结构元件(如,DSP48基元的实例化)、接口VHDL代码等进行构建。白皮书显示DUC设计按照三个时钟速率实现的关键的利用率指 标:

利用率指标

首先需要注意的是,一般来说DSP48 slice数与时钟速率成反比。Block RAM资源也按照阶跃函数随时钟速率降低。这在无线电信号处理设计中较常见,其中Block RAM基本上用来按照相对高的采样率存储大量函数运算的系数集合,例如,DDS(直接数字合成器)的正弦/余弦值,峰值抵消脉冲产生器中的CFR (波峰因数衰减)系数,或DPD (数字预失真)模型中的非线性函数抽样。

该分析不象逻辑资源那样简单。当时钟频率从368.64转换至491.52 MHz(1.33时钟比) ,按照比例LUT和FF的数据量分别减少了1.34和1.44倍。将时钟速率从245.76放大一倍至491.52 MHz,这些数据减少了1.8倍和1.7倍。这种非线性行为基本上是为执行信号处理控制逻辑,不需要按照时钟频率进行线性放大。

信号采样率也影响资源利用率。比如,采样速率为25 Msamples/sec的滤波器带宽在250 MHz运行时与带宽在500 MHz运行时相比所需的逻辑资源略降低两倍。采样速率为500 Msamples/sec的多相实现带宽在250 MHz运行时与带宽在500 MHz时相比,所需的逻辑资源增加两倍。对逻辑资源使用的一阶估计是时钟频率增加x倍相当于逻辑利用率减少0.85至1.1倍。

这些设计数据加上白皮书内的更多数据显示在设计基于FPGA的高性能系统时的常用建议:

• 适当的流水线程序当然是设计高速程序的关键因素。

• 需要构建一个以上Block RAM的存储时,可通过选择最大限度地减少数据复用和资源利用的配置优化速度。举例来说, 存储16位数据的16K存储器最好使用16K × 1位的Block RAM进行构建,而不是1K × 16位的Block RAM。

• DSP slice逻辑本质上可支持较高的时钟速率。逻辑电平与数据路由路径的数量限制了速度,因此在构建高速设计时应在每一个或两个LUT电平上插入一个寄存器。

• 定义合理的层次结构,按照逻辑分区将设计划分成相应的功能模块。这种层次结构提供便于在层次边界寄存输出的方法,从而限制特定模块的关键路径。这样分析和 修复在单一模块中定位的时序路径就很容易。实际上,定位超高时钟速度时,应在层次结构的一些层级使用多个寄存器级,以优化时序并为后端工具留下更多设计空 间。好的设计层次结构应该将相关的逻辑集成在一起,使得区域分组和逻辑压缩更为有效。

• 建立适当的层次结构可在多个模块时获取可重复结果。

• 在模块级应用实现属性,可令代码简单并具可扩展性,该属性可传播该模块中声明的所有信号。

• 良好的时钟管理和时钟分配方法至关重要。

• 尽可能减少独立主时钟数量。

• 将时钟元件放在设计层次结构的顶层,以便在多个模块共享时钟,这将减少所需的时钟资源,提高时序性能,并降低资源和功率利用率。

• 在不相关时钟域之间使用适当的再同步技术。

• 同样的,必须定义足够多的重置策略。一般情况下,不需要重置每个寄存器。重置寄存器不需要创建高扇出 nets,原因是那样会降低时序性能,提高路由复杂性。只有在重置绝对必要的时候再进行重置。

• 最小化复位网络的大小。

• 避免全局复位。

• 优选同步复位,实际上对DSP48逻辑片和Block RAM是强制的。

• 限制时钟“使能”的使用。实际上这条规则难以实现,原因是在多周期实现中时钟“使能”通常需要评估数据样本或操作符输出。实现有效的降低功耗技术很有效。在任何情况下,必须适当寄存时钟使能信号以删除高扇出 nets。

因此,如果您正在开发基于FPGA的高速设计,即使不是数字射频应用,您有必要尽快下载和阅读上述白皮书以开始您的设计—— “利用赛灵思All Programmable FPGA 和 SoC 实现高速无线电设计”

原文链接: http://forums.xilinx.com/t5/Xcell-Daily-Blog/Want-to-exceed-500MHz-syste...

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了