Vivado模块化综合技术的应用场景

  • 2019 年 10 月 31 日
  • 笔记

模块化综合技术的最大优势在于实现了Vivado在模块层面对设计的综合进行相应地优化处理,使得综合的设置更能匹配设计的需求,从而提高综合的QoR。这里我们将介绍一下模块化综合技术的应用场景。

应用场景1:对不同模块设置不同的综合选项

如下图所示,对模块inst_0,为阻止其LUT Combining,将LUT_COMBINING设置为0,同时允许Retiming,故将RETIMING设置为1。这样该模块下的子模块inst_02将继承这两个值。如果对模块inst_01,允许其LUT Combining,可将LUT_COMBINING重新设定为1。类似地,对同一模块下的不同子模块可设定不同的CONTROL_SET_THRESHOLD值。由此可见,模块化综合可灵活地为不同模块设置期望的综合选项。

应用场景2:对不同模块设置不同的综合策略

Vivado提供了不同的综合策略,如下图所示。这些综合策略是针对整个工程的。以往应用这些策略的方式是创建不同的Design Runs,每个Design Run选取不同的策略,再对比不同策略下的资源和性能。

事实上综合策略的差异是由于综合选项的不同设置而导致的。这些综合选项是全局的,显然,未必适合于所有模块。一个好的方式是对不同的模块设置不同的综合策略,避免罗列出策略之间的不同,再逐个修正。例如,uart_rx_i0需要面积优化,uart_tx_i0需要性能优化,resp_gen_i0需要布线优化,则可分别采用不同的综合策略,形成如下的约束。

目前,可应用于模块的综合策略包括:

DEFAULT

AREA_OPTIMIZED

ALTERNATE_ROUTABILITY

PERFORMANCE_OPTIMIZED

下图显示了使用模块化综合对时序的影响。其中synth_5对应上图显示的对不同模块采用不同的综合策略。

结论

模块化综合技术允许对不同模块设置不同的综合选项,实现细粒度化管理

模块化综合技术允许对不同模块设置不同的综合策略,尽管本质上仍是综合选项的设置,但避免了逐个修正不同的综合选项

上期内容:

Vivado模块化综合技术概述

下期内容:

Vivado OOC综合流程 (2月26日推送)