尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SDC命令详解:使用uniquify命令进行唯一化

SDC命令详解:使用uniquify命令进行唯一化 相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482唯一化简介在了解uniquify命令前首先需要知道唯一化的定义唯一化指的是在综合过程中Design Compiler会自动检测当前设计层次结构中对同一设计或者说模块的多次引用例化并为每个实例生成一个独立的设计副本该功能由2004版本引入且无法关闭。该过程首先复制已设置的约束也会进行复制和调整并重命名被多次引用的设计不包括设置了dont_touch属性的实例和设计命名规则由uniquify_naming_style变量默认为%s_%d其中%s指的是原设计名%d是一个确保名称唯一所需的最小整数控制。原始设计将不再可访问原始设计或其中对象的将从包含它们的集合中删除该行为可通过uniquify_keep_original_design变量控制默认值为false。复制后Design Compiler可以针对每个唯一副本基于其所在环境进行单独优化如图1所示。图1 唯一化的结果uniquify命令除了使用综合类命令如compile和compile_ultra命令会执行隐式的唯一化外用户还可以使用uniquify命令显式进行唯一化其实它并不是一个SDC命令归为此类只是为了方便管理。本文针对Design Compiler但该命令同样存在于IC Compiler等工具中它们大致相同略有差别。uniquify命令的BNF范式有关BNF范式可以参考以往文章为uniquify [-base_name base_name] [-force | -cell cell_list [-new_name new_design_name]| -reference design_name] [-dont_skip_empty_designs] //注该命令的选项和参数顺序任意指定基名字-base_name选项用于指定一个基名字以取代uniquify_naming_style变量中%s代表的原设计名。强制唯一化-force选项用于指定即使实例已唯一或设置了dont_touch属性也强制重命名顶层设计不受影响。-force选项、-cell选项和-reference选项是互斥的只能使用其中一个。指定单元列表-cell选项指定一个列表/集合包含层次单元对象为其中每个层次单元进行唯一化即使实例已唯一或设置了dont_touch属性。对于列表而言如果有多于一个对象需要使用引号或大括号包围对使用集合无效关于列表和集合的区别可以参考下面的博客。SDC命令详解使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571需要注意的是如果层次单元对象的父实例尚未唯一化则也会进行唯一化。如果使用了-cell选项则原始设计在复制后不会删除。-force选项、-cell选项和-reference选项是互斥的只能使用其中一个。指定单元名字只有当使用了-cell选项且只指定了一个层次单元才能使用该选项指定一个设计名作为该单元唯一化后的名字若该设计名已被使用则该选项失效。指定设计名-reference选项用于指定一个设计名为当前设计中引用此设计的实例进行唯一化即使设计已唯一或设置了dont_touch属性。如果使用了-reference选项则原始设计在复制后不会删除。-force选项、-cell选项和-reference选项是互斥的只能使用其中一个。指定不跳过空设计-dont_skip_empty_designs选项指定即使是黑盒设计也会进行唯一化默认情况下黑盒设计保持不变。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%257Drequest_ide3267dcc7cc26380435f53994dc8b9b8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecaseutm_termMCMMspm1018.2226.3001.4450简单使用以图2所示的层次结构为例。图2 层次结构综合时的唯一化首先使用list_designs命令查看内存中的所有设计。dc_shell list_designs leaf_module middle_module top_module (*)随后使用compile命令如果使用compile_ultra命令需要添加-no_autoungroup选项防止自动解组进行综合并再次使用list_designs命令查看内存中的所有设计可以发现此时进行了唯一化。dc_shell compile dc_shell list_designs leaf_module_0 leaf_module_1 middle_module_0 middle_module_1 top_module (*)用户显式进行唯一化首先使用list_designs命令查看内存中的所有设计。dc_shell list_designs leaf_module middle_module top_module (*)随后使用uniquify命令进行唯一化并再次使用list_designs命令查看内存中的所有设计可以发现此时进行了唯一化。dc_shell uniquify dc_shell list_designs leaf_module_0 leaf_module_1 middle_module_0 middle_module_1 top_module (*)写在最后设计的唯一化会对形式验证产生影响Design Compiler在唯一化时会在SVF文件中添加guide_uniquify命令用于指导Formality进行验证。
返回列表