相关阅读
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)在这种情况下,用户还可以使用uniquify命令进行唯一化,更多信息可以参考下面的博客。
SDC命令详解:使用uniquify命令进行唯一化https://blog.csdn.net/weixin_45791458/article/details/148564739?ops_request_misc=elastic_search_misc&request_id=344c5efd60abf614748fa993d47dd1c6&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~ElasticSearch~search_v2-1-148564739-null-null.541^v3^control&utm_term=%E5%94%AF%E4%B8%80%E5%8C%96&spm=1018.2226.3001.4450除了使用-all_instances选项和uniquify命令,使用current_design命令切换当前设计到多实例化设计,设置size_only属性后再切换回原当前设计也是一种方法,但不推荐。
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