当前位置: 首页 > news >正文

重庆网站建设方案苏州公司建设网站

重庆网站建设方案,苏州公司建设网站,成都百度seo公司,软考网络规划设计师相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 解组(Ungroup)指的是指将某一层级中的子设计#xff08;或者说模块#xff09;合并到其父设计中#xff0c;通常在当前设计的层次划分不合理导致优化受限时…相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 解组(Ungroup)指的是指将某一层级中的子设计或者说模块合并到其父设计中通常在当前设计的层次划分不合理导致优化受限时使用如图1所示。 图1 解组的示意图 解组可以分为两类一类是用户显式指定的而另一类是由Design Compiler自动进行的下面将分别进行讨论。 发生解组的情况 显式解组 ungroup命令 使用ungroup命令可以直接进行解组下面展示了该命令的一些基本使用方式。 1、假设存在顶层设计top和middle设计顶层设计中middle设计例化为u_middle单元使用ungroup命令即可对层次单元u_middle进行解组由于Design Compiler发现middle设计此时没有被其他设计例化了因此其被删除被解组的层次单元中的对象在解组后将属于顶层设计对象名字会添加层次路径前缀但需要注意的是此时/不再是层次分隔符而是对象名字的一部分。 dc_shell list_designs middle top (*) dc_shell get_cells {u_middle} dc_shell ungroup [get_cells u_middle] dc_shell list_designs top (*) dc_shell get_cells # get_cells命令默认返回当前实例中的单元不包括跨层次单元 {u_middle/sum_reg u_middle/U1} 2、假设存在顶层设计top和middle设计顶层设计中middle设计例化为u_middle单元使用ungroup命令配合-prefix选项可以指定解组后被解组的层次单元中的对象的前缀。 dc_shell ungroup [get_cells u_middle] -prefix TEST: dc_shell get_cells {TEST:sum_reg TEST:U1} 3、假设存在顶层设计top、middle设计和bottom设计顶层设计中middle设计例化为u_middle单元middle设计中bottom设计例化为u_bottom单元使用ungroup命令即可对层次单元u_middle进行解组但需要注意的是解组默认是不递归的使用-flatten可选项可以递归解组。 dc_shell ungroup [get_cells u_middle] dc_shell get_cells {u_middle/u_bottom} dc_shell ungroup [get_cells u_middle] -flatten dc_shell get_cells {u_middle/u_bottom/sum_reg u_middle/u_bottom/U1} 4、假设存在顶层设计top、middle设计和bottom设计顶层设计中middle设计例化为u_middle单元middle设计中bottom设计例化为u_bottom单元使用ungroup命令配合-start_level选项表示对指定层次单元下的第几层递归解组隐含-flatten选项若为1则相当于对该层次单元递归解组。 dc_shell ungroup [get_cells u_middle] -start_level 1 dc_shell get_cells {u_middle/u_bottom/sum_reg u_middle/u_bottom/U1} dc_shell ungroup [get_cells u_middle] -start_level 2 dc_shell get_cells {u_middle} dc_shell ungroup [get_cells u_middle/u_bottom] -start_level 1 dc_shell get_cells {u_middle} 5、假设存在顶层设计top、middle设计和bottom设计顶层设计中middle设计例化为u_middle1单元和u_middle2单元middle设计中bottom设计例化为u_bottom单元无法使用ungroup命令对层次单元u_bottom进行解组因为其父设计不是唯一的解组需要对middle设计进行处理但middle设计在其他地方也被例化了。 dc_shell ungroup [get_cells u_middle1/u_bottom] Error: Cannot perform ungroup on the instance u_middle1/u_bottom becauseparent is not a unique instantiation of design middle. Pleasererun the command after uniquifying the instance. (UID-379) set_ungroup命令 使用set_ungroup命令可以设置层次单元的ungroup属性该属性为true的层次单元将在综合时被解组下面展示了该命令的基本使用方式。 假设存在顶层设计top和middle设计顶层设计中middle设计例化为u_middle单元使用set_ungroup命令设置u_middle单元的ungroup属性为true后使用compile命令进行综合即可对层次单元u_middle进行解组被解组的层次单元中的对象在解组后将属于顶层设计对于层次单元和触发器对象对象名字会添加层次路径前缀但需要注意的是此时/不再是层次分隔符而是对象名字的一部分。 dc_shell set_ungroup [get_cells u_middle] true dc_shell compile dc_shell get_cells {u_middle/sum_reg U1} compile命令 使用compile命令进行综合时添加-ungroup_all选项可以递归解组当前设计中的所有层次单元下面展示了该命令的基本使用方式。 dc_shell compile -ungroup_all # 解组效果相当于ungroup -all -flatten dc_shell get_cells {u_middle/sum_reg U1} 自动解组 compile命令 使用compile命令进行综合时添加-auto_ungroup delay/area选项可以根据时序/面积对当前设计内层次单元进行自动解组。 如果选择根据时序自动解组Design Compiler将使用一种智能解组策略旨在提升设计的整体时序性能该策略选择最有可能从解组中获益的层级结构重点优化包含关键路径或在后续优化步骤中可能变为关键路径的层级下面展示了该命令的基本使用方式。。 dc_shell compile -auto_ungroup delay dc_shell get_cells {u_middle} # 由于不存在关键路径解组不发生 如果选择根据面积自动解组Design Compiler将取对设计中面积较小的模块进行解组以提升面积优化效果对设计的时序影响较小。compile_auto_ungroup_count_leaf_cells变量默认值为false用于指定计算面积时是否只统计叶单元下面展示了该命令的基本使用方式。。 dc_shell compile -auto_ungroup area dc_shell get_cells {u_middle/sum_reg U1} compile_ultra命令 使用compile_ultra命令进行综合时可以根据时序、面积和结果质量对当前设计内层次单元进行自动解组。 在初始映射阶段前Design Compiler会执行基于面积的解组工具会根据GTECH估算尚未映射的层级面积这与compile命令根据面积的自动解组不同后者发生在门级优化阶段删除面积较小的模块目的是提升时序和面积优化的结果质量(QoR)。由于此过程发生在优化早期优化上下文更完整。此外还会启用跨层级的数据路径提取从而进一步改善时序和面积。 在时序优化阶段Design Compiler会对关键路径上的层级结构执行解组主要用于时序性能的优化。 使用compile_ultra命令添加-spg选项时Design Compiler会取消更多层级结构以提升结果质量(QoR)。 下面展示了该命令的基本使用方式。 dc_shell compile_ultra dc_shell get_cells {u_middle/sum_reg U1} 报告自动解组分组的层级 可使用report_ungroup命令报告哪些层级在综合过程中被自动解组不适用于ungroup命令哪些因限制未被解组下面展示了该命令的基本使用方式。 dc_shell compile_ultra dc_shell report_ungroup**************************************** Report : report_ungroup Design : top Version: W-2024.09-SP2 Date : Fri Jun 13 23:47:59 2025 ****************************************Descriptions of reasons for ungrouping and preserving hierarchy AU - Cell is ungrouped due to auto_ungrouping SAU - Cell has user set_autoungroup_options settings UU - Cell has user specific set_ungroup true command UP - Cell has user specific set_ungroup false command BO - Cell has boundary optimization restriction MUX - Cell has mux no-ungroup restriction UPF - Cell has upf no-ungroup restriction DFT - Cell has dft no-ungroup restriction DT - Cell has dont_touch attribute TC - Cell has timing constraints OTH - Cell has other kind of restrictions | | No.of | | | | | leaf | | | | Cell Name | cells | Status | Reason || u_middle | 2 | ungrouped | AU || Hierarchy | Count || user removed hierarchies | 0 | | auto ungrouped hierarchies | 1 | | user preserved hierarchies | 0 | **************************************** 不发生解组的情况 有些情况下解组不会发生下面将对此进行列举假设存在顶层设计top和middle设计顶层设计中middle设计例化为u_middle单元。 显式解组 ungroup命令 当层次单元设置了dont_touch属性时其不能使用ungroup命令解组除非指定了-force选项如下所示。 dc_shell set_dont_touch [get_cells u_middle] dc_shell ungroup [get_cells u_middle] Warning: All specified hierarchical cells are dont touched. No cells can be ungrouped. (UID-230) dc_shell ungroup -force [get_cells u_middle] dc_shell get_cells {u_middle/sum_reg u_middle/U1} set_ungroup命令 当使用set_ungroup命令设置层次单元的ungroup属性为true但又设置了dont_touch属性时综合时无法解组如下所示。 ​dc_shell set_dont_touch [get_cells u_middle] ​dc_shell set_ungroup [get_cells u_middle] dc_shell compile dc_shell get_cells {u_middle} compile命令 1、当层次单元设置了dont_touch属性时使用compile命令进行综合时添加-ungroup_all选项无法解组如下所示。 ​dc_shell set_dont_touch [get_cells u_middle] dc_shell compile -ungroup_all dc_shell get_cells {u_middle} 2、当使用set_ungroup命令设置层次单元的ungroup属性为false时使用compile命令进行综合时添加-ungroup_all选项无法解组如下所示。 ​dc_shell set_ungroup [get_cells u_middle] false dc_shell compile -ungroup_all dc_shell get_cells {u_middle} 自动解组 compile命令 如果选择根据时序自动解组 1、当不存在关键路径时解组不发生使用compile命令进行综合时添加-auto_ungroup delay选项无法解组如下所示。 dc_shell compile -auto_ungroup delay # 没有设置时序约束 dc_shell get_cells {u_middle} 2、当层次单元设置了dont_touch属性时使用compile命令进行综合时添加-auto_ungroup delay选项无法解组如下所示。 ​dc_shell set_dont_touch [get_cells u_middle] dc_shell compile -auto_ungroup delay dc_shell get_cells {u_middle} 3、当使用set_ungroup命令设置层次单元的ungroup属性为false时使用compile命令进行综合时添加-auto_ungroup delay选项无法解组如下所示。  ​dc_shell set_ungroup [get_cells u_middle] false dc_shell compile -auto_ungroup delay dc_shell get_cells {u_middle} 4、当使用set_boundary_optimization命令禁止层次单元的边界优化时使用compile命令进行综合时添加-auto_ungroup delay选项无法解组如下所示。  ​dc_shell set_boundary_optimization [get_cells u_middle] false dc_shell compile -auto_ungroup delay dc_shell get_cells {u_middle} 5、在非拓扑模式下当层次单元的线负载模型与其父设计的线负载模型不同时使用compile命令进行综合时添加-auto_ungroup delay选项无法解组除非设置compile_auto_ungroup_override_wlm变量为true如下所示。  ​dc_shell set_wire_load_mode enclosed # 指定下层设计使用自己的线负载模型 dc_shell set_wire_load_model -name tsmc090_wl20 [current_design] dc_shell set_wire_load_model -name tsmc090_wl10 [get_cells u_middle] dc_shell compile -auto_ungroup delay dc_shell get_cells {u_middle} dc_shell set_app_var compile_auto_ungroup_override_wlm true dc_shell compile -auto_ungroup delay {u_middle/sum_reg u_middle/U1} 如果选择根据面积自动解组 1、当层次单元设置了dont_touch属性时使用compile命令进行综合时添加-auto_ungroup area选项无法解组如下所示。 ​dc_shell set_dont_touch [get_cells u_middle] dc_shell compile -auto_ungroup area dc_shell get_cells {u_middle} 2、当使用set_ungroup命令设置层次单元的ungroup属性为false时使用compile命令进行综合时添加-auto_ungroup area选项无法解组如下所示。  ​dc_shell set_ungroup [get_cells u_middle] false dc_shell compile -auto_ungroup area dc_shell get_cells {u_middle} 3、当使用set_boundary_optimization命令禁止层次单元的边界优化时使用compile命令进行综合时添加-auto_ungroup area选项无法解组如下所示。  ​dc_shell set_boundary_optimization [get_cells u_middle] false dc_shell compile -auto_ungroup area dc_shell get_cells {u_middle} 4、在非拓扑模式下当层次单元的线负载模型与其父设计的线负载模型不同时使用compile命令进行综合时添加-auto_ungroup area选项无法解组除非设置compile_auto_ungroup_override_wlm变量默认值为false为true如下所示。   ​dc_shell set_wire_load_mode enclosed # 指定下层设计使用自己的线负载模型 dc_shell set_wire_load_model -name tsmc090_wl20 [current_design] dc_shell set_wire_load_model -name tsmc090_wl10 [get_cells u_middle] dc_shell compile -auto_ungroup area dc_shell get_cells {u_middle} dc_shell set_app_var compile_auto_ungroup_override_wlm true dc_shell compile -auto_ungroup delay {u_middle/sum_reg u_middle/U1} 5、 当层次单元的子单元数量超过compile_auto_ungroup_area_num_cells变量默认值为30时无法解组如下所示。 dc_shell set_app_var compile_auto_ungroup_area_num_cells 1 dc_shell compile -auto_ungroup area dc_shell get_cells {u_middle} dc_shell set_app_var compile_auto_ungroup_area_num_cells 20 dc_shell compile -auto_ungroup area {u_middle/sum_reg u_middle/U1} compile_ultra命令 1、当层次单元设置了dont_touch属性时使用compile_ultra命令进行综合时无法自动解组如下所示。 ​dc_shell set_dont_touch [get_cells u_middle] dc_shell compile_ultra dc_shell get_cells {u_middle} 2、当使用set_ungroup命令设置层次单元的ungroup属性为false时使用compile_ultra命令进行综合时无法自动解组如下所示。   ​dc_shell set_ungroup [get_cells u_middle] false dc_shell compile_ultra dc_shell get_cells {u_middle} 3、当使用set_boundary_optimization命令禁止层次单元的边界优化时使用compile_ultra命令进行综合时无法自动解组如下所示。   ​dc_shell set_boundary_optimization [get_cells u_middle] false dc_shell compile_ultra dc_shell get_cells {u_middle} 4、在非拓扑模式下当层次单元的线负载模型与其父设计的线负载模型不同时使用compile命令进行综合时添加-auto_ungroup area选项无法自动解组除非设置compile_auto_ungroup_override_wlm变量默认值为false为true如下所示。  ​dc_shell set_wire_load_mode enclosed # 指定下层设计使用自己的线负载模型 dc_shell set_wire_load_model -name tsmc090_wl20 [current_design] dc_shell set_wire_load_model -name tsmc090_wl10 [get_cells u_middle] dc_shell compile_ultra dc_shell get_cells {u_middle} dc_shell set_app_var compile_auto_ungroup_override_wlm true dc_shell compile -auto_ungroup delay {u_middle/sum_reg u_middle/U1} 5、当使用compile命令进行综合时添加-no_autoungroup选项无法自动解组除非使用set_ungroup命令设置层次单元的ungroup属性为true如下所示。 dc_shell compile_ultra -no_autoungroup dc_shell get_cells {u_middle} dc_shell set_ungroup [get_cells u_middle] true dc_shell compile_ultra -no_autoungroup {u_middle/sum_reg u_middle/U1} 6、当使用compile命令进行综合时添加-no_boundary_optimization选项无法自动解组除非使用set_ungroup命令设置层次单元的ungroup属性为true如果使用该选项-no_autoungroup选项会自动设置如下所示。 dc_shell compile_ultra -no_boundary_optimization dc_shell get_cells {u_middle} dc_shell set_ungroup [get_cells u_middle] true dc_shell compile_ultra -no_boundary_optimization {u_middle/sum_reg u_middle/U1}
http://www.hkea.cn/news/14460568/

相关文章:

  • dede网站源码打包下载进出口贸易公司怎么注册
  • 视频网站开发项目介绍公司的文案
  • 上海网站群建设百度竞价包年推广公司
  • 长子网站建设网站怎么做排名优化
  • 在线视频网站怎么做南京市建设工程造价信息网
  • 沧州建设局网站手机网站开发的目的及定位
  • 济南 网站建设 域名注册广州网络推广哪家好
  • wordpress固定链接后404安卓优化大师下载安装
  • 图库网站cms公司的 SEO与网站建设
  • 平台网站建设ppt模板电子游戏十大正规官方网址
  • 佛山网站推广建设做购物车的网站
  • 网站科普信息化建设的意义创新的响应式网站建设
  • 网站备案找回密码企业建网站需要准备哪些资料呢
  • 免费送衣服在哪个网站做深圳网络营销外包公司推荐
  • 淘宝网站怎么做适配wordpress自定义布局
  • 深圳网站建设公司服务平台wordpress if else
  • 机械制造网站石家庄专业做网站
  • gif网站素材怎么编辑网站后台
  • 建设银行网站怎么基本转个人网站快照出现两个
  • 广东品牌网站建设968网络货运怎么做的
  • 个人备案网站做网站是不是要域名费
  • 手机建设银行网站东莞塘厦网站建设
  • 引擎seo优网站这么做优化
  • 国外建设短视频网站设计公司标志设计
  • 苏州制作网站的公司哪家好福建省政务服务网
  • 如何用vc做网站天元建设集团有限公司 安百平
  • 试剂产品商城网站建设我想做app推广怎么做
  • 门户网站建设情况自查汇报网络推广平台免费
  • 怎么样免费创建网站网站 主办单位性质 个人
  • 网站开发的教学视频教程网站开发分类