
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482目录面积优化简介在综合时执行optimize_netlist -area命令高强度面积优化面积优化简介从Design Compiler什么是代价函数(Cost Function)一文中已经简单介绍了面积优化的过程对于DC Expert可以使用set_max_area命令定义面积约束对于DC Ultra、Design Compiler Graphical和Design Compiler NXT则可以使用optimize_netlist -area命令进行面积优化综合工具会在不影响时序/设计规则约束的情况下减小设计的面积该功能由2013版本引入。下面是在DC Expert中综合时综合报告中有关面积改善阶段的部分如果未定义面积约束Design Compiler会执行一系列有限的单元降级和面积清理(cleanup)步骤。Beginning Area-Recovery Phase (cleanup) ----------------------------- TOTAL ELAPSED WORST NEG SETUP DESIGN TIME AREA SLACK COST RULE COST ENDPOINT --------- --------- --------- --------- --------- ------------------------- 0:00:02 963.8 0.00 0.0 0.0 0:00:02 963.8 0.00 0.0 0.0 0:00:02 960.3 0.00 0.0 0.0 0:00:02 960.3 0.00 0.0 0.0Beginning Area-Recovery Phase (max_area 3) ----------------------------- TOTAL ELAPSED WORST NEG SETUP DESIGN TIME AREA SLACK COST RULE COST ENDPOINT --------- --------- --------- --------- --------- ------------------------- 0:00:02 441.7 0.00 0.0 0.0 0:00:02 441.7 0.00 0.0 0.0在本文的后续部分将不再讨论DC Expert而专注于optimize_netlist -area命令下面是使用该命令的报告。Beginning Area Optimization ----------------------------- TOTAL ELAPSED WORST NEG SETUP DESIGN LEAKAGE TIME AREA SLACK COST RULE COST ENDPOINT POWER --------- --------- --------- --------- --------- ------------------------- --------- 0:00:02 441.7 0.00 0.0 0.0 992147.3750 0:00:03 439.6 0.00 0.0 0.0 990467.1875在进行面积优化时Design Compiler默认会忽略在时序组上设置的权重以尽可能减少对时序的影响除非将optimize_area_ignore_path_group_weights变量默认值为true设置为false该功能由2017版本引入。在综合时执行optimize_netlist -area命令从Design Compiler NXT 2019版本开始可以将optimize_netlist -area命令嵌入综合过程中嵌入式的optimize_netlist -area命令运行速度比单独运行该命令更快提升约4%。要启用该功能可以将2019版本引入的compile_optimize_netlist_area变量设置为true此时Design Compiler在全量综合和增量综合对综合命令没有要求时会在最后阶段进行嵌入式的面积优化如下所示。Beginning Area Optimization ----------------------------- TOTAL ELAPSED WORST NEG SETUP DESIGN LEAKAGE TIME AREA SLACK COST RULE COST ENDPOINT POWER --------- --------- --------- --------- --------- ------------------------- --------- 0:00:04 242.5 0.00 0.0 0.0 3417148.7500 0:00:04 237.6 0.00 0.0 0.0 3344969.75002019版本引入的compile_optimize_netlist_area_in_incremental变量的默认值为default表示增量综合时是否进行嵌入式的面积优化遵循compile_optimize_netlist_area变量的设置。但如果用户将compile_optimize_netlist_area_in_incremental变量显式设置为true或false则以显式设置的为准。当在综合过程中进行了嵌入式的面积优化后后续的第一个optimize_netlist -area命令会被忽略并出现以下信息除非指定-force选项。Information: Skipping optimize_netlist -area command as area optimization was done as part of previous compile. Any subsequent optimize_netlist -area will work as normal. (OPT-1724)嵌入式面积优化的结果质量(QoR)与单独运行该命令有最多±0.2%的微小差异这是因为嵌入式的面积优化是作为综合的一部分执行的不涉及数据库的重新加载。高强度面积优化从Design Compiler NXT 2019版本开始在使用嵌入式的面积优化的基础上实验结果表明尽管手册中似乎没有提到这一点可以以运行时间为代价启用高强度面积优化将2019版本引入的compile_high_effort_area变量设置为true默认值为false即可该功能启用时日志文件中没有特定的提示消息但会执行额外的面积改善迭代。2019版本引入的compile_high_effort_area_in_incremental变量的默认值为default表示增量综合时是否进行嵌入式的面积优化遵循compile_high_effort_area变量的设置。但如果用户将compile_high_effort_area_in_incremental变量显式设置为true或false则以显式设置的为准。当compile_high_effort_area变量被设置为true且用户没有显式设置compile_optimize_netlist_area变量设置为falsecompile_optimize_netlist_area变量会在综合时自动被设置为true并进行嵌入式的面积优化。