ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Design Compiler:面积优化

Design Compiler:面积优化

相关阅读

Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.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.0
Beginning 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.7500

2019版本引入的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变量设置为false,compile_optimize_netlist_area变量会在综合时自动被设置为true并进行嵌入式的面积优化。

返回列表