设计性能:物理综合与优化
工艺技术的发展极大地提高了 FPGA 器件的密度。多个赛灵思? VirtexTM 系列中都包含了超过 1 百万系统门的器件。这种器件密度的提高和 300 mm 晶圆片的使用,为 FPGA 批量生产创造了条件。
曾经只能使用 ASIC 来实现的设计现在可以在可编程器件中实现了。最新的 90 nm Virtex-4 器件提供了超过 200,000 个逻辑单元、6 MB 的块 RAM和接近 100 个 DSP 块。创建能够有效利用这些器件中的可用资源并满足性能要求的设计是极具挑战性的工作。幸运的是,今天的 EDA 软件工具已经发展到能够应对这些挑战了。
逻辑优化、逻辑布局和最小化互连延迟都是实现最大性能的重要工作。时序驱动综合技术对设计性能提供了重大改进。影响时序驱动综合的限制因素是估计布线延迟的精度。
物理综合——基于物理布局和布线信息进行综合——是有效解决这些问题的最前沿技术。物理综合与优化把综合引入到网表生成后的实现决策中,从而进一步扩展了这一技术。这将允许在实现时根据实际的布局布线信息对综合映射与打包决策进行动态复查。
物理综合与优化的优点
逻辑层次之间的互连延迟受逻辑单元布局的接近性、布线拥塞和网络之间对快速布线资源的局部竞争的影响。解决这一问题的方法是在映射、布局和布线期间重新审查综合决策。在映射阶段,可以根据每个时序路径的紧急程度对网表进行重新优化、打包和布局。这一方法减少了达到时序收敛所需的实现次数。
物理综合与优化流程
赛灵思 ISE 软件提供了多个实现物理综合与优化的软件选项。您可以根据您的设计的具体需求单独或合并使用这些选项。
定义时序要求
进行有效物理综合的最重要一步是建立准确全面的时序约束。有了这些约束,实现工具就基于可靠信息做出决策,从而改善总体效果。对那些具有严格要求的时钟和 I/O引脚 进行约束,以减轻剩余设计部分的工作。
定义这些时序约束的最轻松途径是使用 Constraints Editor。这一图形工具允许您输入时钟频率、多周期与虚假路径 (false path) 约束、I/O 时序要求,以及大量其他澄清性要求。约束被写入一个用户约束文件 (UCF) 中,可在任何文本编辑器中进行编辑。
如果未提供用户定义的时序约束,ISE. 8.1i 软件提供了一个新功能,将自动为每个内部时钟生成时序约束。在“性能评估模式 (PEM)”中,您可以在不必提供时序目标的情况下获得高性能的物理综合与优化效果。
运行全局优化
对于包含 IP 核或其他网表的设计,实现的转换 (NGDBuild) 阶段后生成的 NGD 文件表示整个设计第一次被完整编译。全局优化是在 7.1.01i 版本 Map 中增加的一项新功能,将进行完整设计的组装,并尝试通过重新优化组合与寄存器逻辑来提高设计性能。全局优化(命令行键入 map –global_opt)显示可提高设计时钟频率平均 7%。
还有两个选项可以让您在此阶段进一步控制优化的完成:时序调整 (retiming) (map -retiming) 将前后移动寄存器以平衡组合逻辑延迟,和等效寄存器删除 (map -equivalent_register_removal) 将通过冗余功能性删除寄存器。
允许时序驱动打包与布局
时序驱动打包与布局是物理综合实现流程的核心。当您采用这个选项 (map -timing),布局布线的布局阶段将在 Map 中完成,允许在初始结果未达最优时对打包决策进行重新审查。时序驱动打包迭代流程替换了无关逻辑打包(unrelated logic packing)。
赛灵思物理综合与优化中包含不同级别的优化。第一级优化是在 ISE 6.1i 软件中引入的,从进行逻辑变换开始,其中包括扇出控制、逻辑复制、拥塞控制,以及改进的延迟估计。这些例程使设计实现了更高效的打包和布局,达到了更快的时钟频率和更高密度的逻辑利用率。
下一级增加了逻辑与寄存器优化;Map 可重新安排单元以改进关键路径延迟。这些变换为满足设计时序要求提供了极大的灵活性。使用了大量不同技术(包括内部引脚交换、基本单元切换,以及逻辑重组)将物理单元转换成逻辑上等效的不同结构,以满足设计要求。
ISE 8.1i 软件引入了另外一级物理综合:组合逻辑优化。该 -logic_opt 开关将开启一个流程,对设计中的所有组合逻辑进行检查。给定布局和时序信息,您可以对优化 LUT 结构做出更可靠的决策,以改进总体设计。
物理综合与优化示例
逻辑复制:如果一个 LUT 或触发器驱动多个负载,而这些负载中有一个或多个负载的放置位置离驱动源的距离太远因而无法满足时序要求时,可以复制该 LUT 或触发器并放置在靠近该组负载的地方,从而减小布线延迟(图 1)。
逻辑重组:如果关键路径跨越多个切片中的多个 LUT,可利用较少的切片对该逻辑进行重新
- “优化”使模拟IC达到极限性能(01-23)
- 高频电源模块缓冲电路优化探讨(10-07)
- 采用CPLD/FPGA的VHDL语言电路优化原理设计(03-18)
- Maxim太阳能电池优化器大幅提升太阳能板功率30%(08-08)
- 用高压I2C电流和电压监视器进行测量(05-23)
- 基于EDA的交通信号灯电路的设计与仿真(10-16)