相关阅读
Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482
目录
启用增强型TNS优化
设置增强型TNS优化的努力等级
特殊情况
拓扑模式的Design Compiler默认情况下针对WNS进行优化,如果想优先降低TNS则需要设置2017版本引入的placer_tns_driven和placer_tns_driven_in_incremental_compile变量(对于Design Compiler Graphical综合时提示:TNS-driven-DTDP is turned ON,对于Design Compiler NXT综合时提示:Enhanced timing-DTDP is turned ON),但是这两个变量在同时使用Design Compiler NXT和IC Compiler II Link布局器时失效(实验结果表明,尽管手册中似乎没有提到这一点),或者设置2015版本引入的compile_timing_high_effort和2017版本引入的compile_timing_high_effort_tns变量(综合时提示:Warning: The compile_timing_high_effort variable is a hidden variable)。
拓扑模式的Design Compiler NXT 2019版本开始可以使用增强型TNS优化功能,以显著改善TNS,该功能旨在无需依赖用户自定义时序组即可获得良好的TNS。
启用增强型TNS优化
要启用该功能,可以将2019版本引入的compile_enhanced_tns_optimization变量设置为true(默认值为false),此时Design Compiler在全量综合(compile_ultra -spg)和增量综合(compile_ultra -spg -incr)时会采用一种面向提升设计TNS的策略,这可能会导致运行时间、面积与WNS的增加。compile_enhanced_tns_optimization_in_incremental变量的默认值为default,表示增量综合时是否进行增强型TNS优化遵循compile_enhanced_tns_optimization变量的设置。但如果用户将compile_enhanced_tns_optimization_in_incremental变量显式设置为true或false,则以显式设置的为准。
建议首先使用默认策略进行综合,如果需要进一步改善TNS,再尝试启用增强型TNS优化。
设置增强型TNS优化的努力等级
使用2019版本引入的compile_enhanced_tns_optimization_effort_level变量可以控制增强型TNS优化的努力等级,较大的设计可能从将努力等级设置为medium或high中获益(相比于默认值low),可根据需要对该变量进行调整,以微调在大规模设计中的优化流程。然而,对于较小规模的设计,在努力等级high下运行可能会对时序产生负面影响。
特殊情况
从2020版本开始,当compile_timing_high_effort_tns变量被设置为true(该变量生效的前提是compile_timing_high_effort变量被设置为true),且compile_enhanced_tns_optimization_in_incremental变量保持其默认值default,增量综合时增强型TNS优化自动开启(即使compile_enhanced_tns_optimization变量被设置为false)。
总结上面的描述即为:当compile_timing_high_effort_tns或compile_enhanced_tns_optimization变量之一被设置为true时,且compile_enhanced_tns_optimization_in_incremental变量保持其默认值default,则增量综合时增强型TNS优化自动开启。