相关阅读
SDC命令详解
https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482
目录
set_size_only命令用于在叶单元上显式设置一些属性(包括local_optz_off、const_prop_off、del_unloaded_gate_off、resyn_off和structure_off),以限制它们在优化过程中只能进行尺寸调整(其实它并不是一个SDC命令,归为此类只是为了方便管理)。如果想要移除这些属性,使用remove_attribute命令。
本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。set_size_only命令的BNF范式(有关BNF范式,可以参考以往文章)为:
set_size_only
object_list
[-all_instances]
[true | false]
//注:该命令的true或false参数一定要放在object_list参数后
对象列表/集合
指定一个对象列表/集合,包含叶单元对象。对于列表而言,如果有多于一个对象,需要使用引号或大括号包围(对使用集合无效),关于列表和集合的区别,可以参考下面的博客。
指定所有实例
-all_instances选项指定该命令应用于多实例化设计(MIM)的叶单元(即设计没有唯一化)。 如果指定的叶单元位于某个子设计的多实例化实例中,必须使用该选项,工具会将size_only设置应用到该子设计所有实例中的相同叶单元,否则会出现下面的错误。
Error: -all_instances option must be used with instance cells when the parent instance is not unique. (UID-192)
size_only设置的影响
当设置叶单元的size_only属性时(为了简便,这里不严谨地把size_only称为属性),Design Compiler会尝试通过使用具有相同功能的单元替换以进行优化(需要注意的是,此时的size_only属性是显式设置的,这与因为时序约束等原因的隐式设置不同,可以使用report_attribute命令或get_attribute命令直接查看,而隐式设置的size_only属性只能使用report_cell命令、report_net命令或report_size_only命令间接查看,remove_attribute命令只能移除显式设置的size_only属性,隐式size_only属性的优先级高于显式size_only属性),使用list_size_only_types命令可以列出叶单元被设置size_only属性的原因(显式或隐式)。
下面展示了在GTECH格式(或者说Generic Technology格式)的叶单元上设置size_only属性后,造成了其优化受限。

图1 GTECH格式网表
dcnxt_shell> set_size_only [get_cells C8]
dcnxt_shell> set_size_only [get_cells C7]
dcnxt_shell> compile_ultra
dcnxt_shell> report_cell
****************************************
Report : cell
Design : top
Version: W-2024.09-SP2
Date : Tue Aug 4 00:51:48 2026
****************************************
Attributes:
b - black box (unknown)
h - hierarchical
n - noncombinational
r - removable
so - sizing only
u - contains unmapped logic
Cell Reference Library Area Attributes
--------------------------------------------------------------------------------
C7 AND2XL typical 3.528000 so
C8 AND2XL typical 3.528000 so
--------------------------------------------------------------------------------
Total 2 cells 7.056000
图1是综合前GTECH格式网表,而图2展示了此时的综合结果。

图2 设置size_only属性为true的综合后网表
接着将size_only属性设置为false后重新综合,综合结果如图3所示。
dcnxt_shell> set_size_only [get_cells C8] false
dcnxt_shell> set_size_only [get_cells C7] false
dcnxt_shell> compile_ultra
dcnxt_shell> report_cell
****************************************
Report : cell
Design : top
Version: W-2024.09-SP2
Date : Tue Aug 4 00:59:07 2026
****************************************
Attributes:
b - black box (unknown)
h - hierarchical
n - noncombinational
r - removable
u - contains unmapped logic
Cell Reference Library Area Attributes
--------------------------------------------------------------------------------
U1 AND3XL typical 4.233600
--------------------------------------------------------------------------------
Total 1 cells 4.233600

图3 设置size_only属性为false的综合后网表
Multicorner-Multimode支持
该命令对所有场景生效。