SDC命令详解:使用set_size_only命令进行约束

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

对象列表/集合

指定所有实例

size_only设置的影响

Multicorner-Multimode支持


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参数后

对象列表/集合

指定一个对象列表/集合,包含叶单元对象。对于列表而言,如果有多于一个对象,需要使用引号或大括号包围(对使用集合无效),关于列表和集合的区别,可以参考下面的博客。

SDC命令详解:使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571

指定所有实例

-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支持

该命令对所有场景生效。

关于场景的更多介绍,可以参考下面的博客。Design Compiler:多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=e3267dcc7cc26380435f53994dc8b9b8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecase&utm_term=MCMM&spm=1018.2226.3001.4450

相关推荐
景芯SoC芯片实战8 天前
Hard Macro的Float Pin设错了,skew balance全白干
数字ic·soc后端
景芯SoC芯片实战9 天前
12nm工艺下,6T-Turbo Cell的Filler到底该怎么插?
数据库·数字ic·dft·soc后端
日晨难再1 个月前
SDC命令详解:使用quit、exit和return命令进行控制
数字ic
日晨难再2 个月前
Formality:层次化验证(write_hierarchical_verification_script命令)
数字ic·formality
IC修真院2 个月前
高赞问题:NPU可不可以代替GPU?
gpu·ic设计·芯片·微电子·数字ic·npu
日晨难再2 个月前
SDC命令详解:使用report_hierarchy命令进行报告
数字ic
日晨难再3 个月前
Library Compiler:时序弧建模与约束全解析(三)
数字ic
日晨难再3 个月前
Library Compiler:时序弧建模与约束全解析(二)
数字ic
日晨难再3 个月前
Library Compiler:时序弧建模与约束全解析(一)
数字ic