尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Design Compiler:多工艺角和多工作模式(Multicorner-Multimode, MCMM)
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482目录简介多工艺角和多工作模式支持的功能多工艺角和多工作模式不支持的功能基本的多工艺角和多工作模式流程进行设置逻辑库不一致警告dont_use属性确保库单元所属的逻辑库的PVT值唯一创建、设置和报告场景指定TLUPlus文件设置工作环境指定约束条件使用报告命令流程示意脚本简介拓扑模式的Design Compiler Graphical在2008版本引入了一种被称为多工艺角和多工作模式(Multicorner-Multimode, MCMM)的功能该功能允许设计者在多个模式和多个工艺角下并行地分析和优化设计综合时需要使用compile_ultra命令在此之前设计者通常使用set_min_library命令分别设置最大条件和最小条件的逻辑库。芯片通常需要在多种工作环境或者说工艺角以及多种工作模式下运行工艺角是指工艺(Process)、电压(Voltage)、温度(Temperature)一个逻辑库是在一个工艺角下进行特征化的工作模式由一组时钟、供电电压及其他时序约束定义例如一个芯片可能拥有测试模式、功能模式和待机模式。场景(Scenario)是工艺角与工作模式的组合也是分析优化的基本单位优化多工艺角和多工作模式设计的过程本质上就是对多个场景的管理与优化。多工艺角和多工作模式支持的功能在运行多工艺角-多工作模式优化时以下功能被支持compile_ultra命令的所有选项漏电功耗优化动态功耗优化使用UPF进行多电压域设计多工艺角和多工作模式不支持的功能在运行多工艺角-多工作模式优化时以下功能不被支持时钟树估算k系数缩放因子set_min_library命令不能用于单个场景它是全局设置的基本的多工艺角和多工作模式流程图1展示了基本的多工艺角和多工作模式流程该流程的关键步骤是创建场景以及进行场景定义包括指定TLUPlus寄生参数文件、指定工作环境、指定时序约束。图1 基本流程进行设置Design Compiler会使用link_library变量或local_link_library属性两者统称为link_path对设计进行链接综合时Design Compiler将在target_library变量中的逻辑库进行单元映射同时综合后设计的local_link_library属性将被设置为target_library。由于一个场景可能使用多个逻辑库例如标准单元库和宏单元库Design Compiler会自动将link_path包括target_library变量中的逻辑库按照特征化环境的PVT值分组并根据场景中设置的最大条件工作环境的PVT值决定每个场景需要使用哪个库组。如果工具在所指定的库组中找不到合适的单元将会报错例如Error: cell TEST_BUF2En_BUF1/Z (inx4) is not characterized for 0.950000V, process 1.000000, temperature -40.000000. (MV-001)下面列出了一些设置阶段可能出现的问题。逻辑库不一致警告当使用多个库组时如果同名单元在功能上不完全一致或者它们的引脚名称及顺序不同工具会发出警告指出库之间存在不一致建议首先使用如下命令检查库的一致性set_check_library_options -mcmm check_library -logic_library_name {MAX.db MIN.db}使用-mcmm选项会导致check_library命令执行专门针对多工艺角和多工作模式的检查如工作环境或掉电不一致等如果检测到不一致工具会生成详细报告并报告以下信息Information: Logic library consistency check FAILED for MCMM. (LIBCHK-360)dont_use属性当使用多个库组时如果在某个库单元上设置了dont_use属性则要求该库单元在所有库组中都要设置dont_use属性否则工具会认为这些逻辑库不一致。使用通配符可以方便地在多个逻辑库中设置dont_use属性如下所示set_dont_use [get_lib_cells */AN2]确保库单元所属的逻辑库的PVT值唯一正如上面所说逻辑库按照特征化环境的PVT值分组如果一个库单元在两个逻辑库中都存在且它们的特征化环境的PVT值相同则它们会被分为同一个库组相应的场景会在link_path包括target_library变量从左到右选择第一个匹配的单元这可能会导致错误的链接映射。下面展示了一个例子即使在设置工作环境时使用-library或-max_library选项指定了逻辑库错误的链接映射也可能发生这些选项只是帮助找到工作环境。表1 逻辑库情况逻辑库名以及在target_library变量中的顺序特征化环境PVT工作环境MAX1.db1/1.30/100MAX1(1/1.30/100)MAX2.db1/1.30/100MAX2(1/1.30/100)表2 场景以及它们的最大条件工作环境场景s1s2最大条件工作环境MAX1MAX2假设MAX1.db和MAX2.db中包含相同的库单元但它们的特征化环境PVT相同因此分为同一个库组即使s2场景选择了MAX2工作环境但还是会错误链接映射到MAX1.db。创建、设置和报告场景使用create_scenario命令可以定义一个场景推荐最少有一个最坏情况的setup场景和一个最坏情况的leakage场景针对其他场景的进一步优化建议在IC Compiler/IC Compiler II中完成。建议使用三段式命名规则来保持清晰和一致性如下所示MM_TYPE.OC_TYPE.RC_TYPEMM_TYPE为模式类型比如mode_norm、mode_slow、mode_testOC_TYPE为工作环境如OC_WC、OC_TYPRC_TYPE表示提取角TLUPlus文件比如RC_MAX_1、RC_MIN_1。当第一个场景被创建时设计中先前存在的所有场景特定约束都会被清除并会出现以下警告Warning: Any existing scenario-specific constraints are discarded. (MV-020)使用set_active_scenarios命令可以设置激活的场景不包含在内的场景即为未激活状态默认情况下所有创建的场景都处于激活状态。使用set_active_scenarios命令可以设置各场景的优化状态比如是否进行建立时间优化、是否进行漏电功耗优化、是否进行动态功耗优化等。使用report_scenarios命令可以报告各场景的激活状态、优化状态等信息使用report_scenario_options命令可以报告各场景的优化状态信息。指定TLUPlus文件必须使用set_tlu_plus_files命令为每个场景指定TLUPlus文件常规流程中可以不指定否则会出现以下错误Error: TLU file not set for scenarios ***. (OPT-1439)如果TLUPlus库文件不正确工具将出现以下错误Error: TLU sanity check failed (OPT-1429)设置工作环境必须使用set_operating_condition命令显式为每个场景定义工作环境而不能使用默认工作环境推导这在常规流程中是允许的否则会出现以下错误Error: Either no operating condition has been applied for the current design (warning MV-028), or the libraries have improper operating condition characteristics, as reported in warnings LIBSETUP-026 or LIBSETUP-027. (LIBSETUP-029)指定约束条件就像常规流程中那样可以使用SDC命令为当前场景设置相应的设计约束使用current_scenario命令可以查看和设置当前场景。几乎所有的SDC命令都只对当前场景生效除了如set_max_area等少数SDC命令外但非SDC命令则不一定具体情况可以查看命令手册中的Multicorner-Multimode Support一栏。使用报告命令一些命令支持-scenarios选项可以对指定特定场景的信息进行报告例如report_timingreport_timing_deratereport_powerreport_clockreport_path_groupreport_extraction_optionsreport_tlu_plus_filesreport_constraintreport_netreport_clock_treereport_timing_deratereport_clock_timingreport_activityreport_qor但一些命令只能报告当前场景的信息例如report_annotated_checkreport_annotated_transitionreport_annotated_delayreport_attributereport_case_analysisreport_internal_loadsreport_clock_gating_checkreport_delay_calculationreport_delay_estimation_optionsreport_transitive_fanoutreport_disable_timingreport_power_calculationreport_timing_requirementsreport_transitive_faninreport_crprreport_saif还有一些命令不依赖场景相关的信息例如report_areareport_buffer_treereport_congestionreport_dont_touchreport_hierarchyreport_libreport_multibit_bankingreport_power_switchreport_preferred_routing_directionreport_retention_cellreport_scan_chainreport_unitsreport_size_only与set_min_library命令的区别使用多工艺角和多工作模式将在不同的场景中将同一个设计映射到不同的逻辑库可以使用report_cell命令查看不同场景中的映射情况。使用set_min_library命令设置了一组最大与最小条件的逻辑库但设计是被映射到最大条件的逻辑库只是在分析最小条件延迟时会考虑最小条件的逻辑库。流程示意脚本下面给出了一个多工艺角和多工作模式的流程示意脚本只保留了关键信息省略了一些步骤。# Basic Script to Run a Multicorner-Multimode (MCMM) Flow # ------ Path Settings ------ set search_path . $DESIGN_ROOT $lib_path/dbs $lib_path/mwlibs/macros/LM set target_library stdcell.setup.ftyp.db stdcell.setup.typ.db stdcell.setup.typhv.db set link_library [concat * $target_library \ setup.ftyp.130v.100c.db \ setup.typhv.130v.100c.db \ setup.typ.130v.100c.db] set_min_library stdcell.setup.typ.db -min_version stdcell.hold.typ.db # ------ Milkyway/NDM Library Setup ------ # ------ Load Design ------ # ------ Load UPF ------ # ------ Scenarios ------ # Scenario 1: Setup - Worst Corner create_scenario s1 set_operating_conditions WORST -library stdcell.setup.typ.db:stdcell_typ # ------ set_voltage ------ set_tlu_plus_files -max_tluplus design.tlup -tech2itf_map layermap.txt read_sdc s1.sdc set_scenario_options -scenarios s1 -setup false -hold false -leakage_power true # Scenario 2: Hold - Best Corner create_scenario s2 set_operating_conditions BEST -library stdcell.setup.ftyp.db:stdcell_ftyp # ------ set_voltage ------ set_tlu_plus_files -max_tluplus design.tlup -tech2itf_map layermap.txt read_sdc s2.sdc # Scenario 3: Nominal create_scenario s3 set_operating_conditions NOM -library stdcell.setup.ftyp.db:stdcell_ftyp # ------ set_voltage ------ set_tlu_plus_files -max_tluplus design.tlup -tech2itf_map layermap.txt read_sdc s3.sdc # ------ Set Active Scenarios ------ set_active_scenarios {s1 s2} report_scenarios # ------ Compile Report ------ compile_ultra -scan -gate_clock report_qor report_constraint report_timing -scenario [all_scenarios] # ------ Insert DFT ------ insert_dft # ------ Incremental Compile ------ compile_ultra -incremental -scan
RELATED

相关推荐

WinUtil:Windows 批量装软件、调优化、管更新策略完整指南

WinUtil:Windows 批量装软件、调优化、管更新策略完整指南

WinUtil:Windows 批量装软件、调优化、管更新策略完整指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 装一台 Windows 电脑为…

📅 2026/9/24 18:10:31
纽约出租车流量预测实战:从数据清洗到LightGBM与LSTM模型全链路

纽约出租车流量预测实战:从数据清洗到LightGBM与LSTM模型全链路

简介:这份资源是面向计算机相关专业学生、教师及科研人员的纽约出租车流量预测项目完整包,可作为毕业设计、课程作业或项目立项演示的参考方案。项目基于Python实现,围绕交通流量时序预测展开,涵盖数据加载、模型构建、训练评估与…

📅 2026/9/24 18:05:31
C# WinForms图书管理系统实战:ADO.NET数据绑定与LocalDB开发全链路

C# WinForms图书管理系统实战:ADO.NET数据绑定与LocalDB开发全链路

简介:这是一套基于C# Windows窗体开发的图书信息管理系统实战项目,专为.NET初学者设计,覆盖WinForm界面开发、SQL Server数据库操作及经典三层架构(Model-BLL-DAL)实践,重点实现数据的增删查改核心功能。资…

📅 2026/9/24 18:05:31
MORE NEWS

更多资讯

📰

Jira替代方案选型指南:Gitee等国产研发管理工具对比与落地实践

1. 研发管理工具选型的底层逻辑与市场格局 1.1 为什么“替代 Jira”这件事突然变得紧迫 做研发管理的朋友这两年应该都有一个明显感受:团队里讨论“要不要换掉 Jira”的频率越来越高。原因其实不复杂,我把它拆成三层来看。 第一层是 成本与合规 。Ji…

📰

formily-react ObjectField 组件完全指南:动态对象表单的 ViewModel 桥接与属性增删实战

前端UI组件 【免费下载链接】formily 📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目地址: https://gitcode.com/gh_mirrors…

📰

iOS开发工具选型指南:Xcode、AppCode等五款工具对比与实战

1. iOS开发工具选型的底层逻辑 1.1 为什么工具选择会直接影响开发效率 干了十来年iOS,我越来越觉得,工具选型这件事被很多新手严重低估了。大多数人刚入门的时候,脑子里只有一个概念——写iOS就得用Xcode,其他都是花里胡哨。但实…

📰

200张真实田间YOLO作物杂草数据集(v5-v11全兼容)

简介:本资源是面向农业AI与计算机视觉初学者的YOLO系列目标检测实战数据集,专为作物与杂草识别任务设计,适用于YOLOv5至YOLOv11等主流版本模型的训练、验证与测试。数据集包含200张高质量农田场景图像(JPG)&#xff0c…

📰

5G NR里DMRS到底怎么用?一文拆解时频结构、参数配置与性能影响

1. 5G NR里DMRS到底是什么,搞懂它才算入了物理层的门做5G协议栈或者物理层算法的人,几乎每天都要和DMRS打交道。不管是刚入行的应届生,还是从4G转过来的老工程师,第一次看38.211的时候基本都会被DMRS的时频结构绕晕。但说实话&…

📰

JSP健身房管理系统拆解:从数据库设计到部署排障全流程

1. 项目概述与系统定位 1.1 这套健身房管理系统到底能干什么 很多技术社区的朋友最近都在问:拿到一套JSP健身房管理系统的源码之后,到底该怎么看、怎么改、怎么把它跑起来?今天我就以这套典型的课程设计项目为样例,把整个分析过程…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬