首页/新闻资讯/正文详情

Design Compiler:多工艺角和多工作模式(Multicorner-Multimode, MCMM)

发布时间:2026/9/24 18:10:29 来源:云帆数科 栏目:资讯中心
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

相关推荐

aixingpan.cn API开发文档:api_docs_onechart_solararc2接口指南
aixingpan.cn API开发文档:api_docs_onechart_solararc2接口指南

aixingpan.cn API开发文档:api_docs_onechart_solararc2接口指南 1. 引言 本文档详细介绍了占星系统的api_docs_onechart_solararc2接口的使用方法,包括请求参数详解、响应数据结构、错误处理机制以及最佳实践建议。 2. 接口基础信息 接口名称: api_docs… · 2026/9/24 18:10:23

C# WinForm GDI+绘图程序实战:从零实现画板与交互
C# WinForm GDI+绘图程序实战:从零实现画板与交互

简介:这是一份面向C#桌面开发初学者与WinForm绘图爱好者的完整绘图程序源码,基于.NET Framework构建,解决在窗体上实现基本图形绘制与交互编辑的问题。程序支持线条、矩形、圆、椭圆、多边形等图形的绘制,并提供填充、换色、移动及… · 2026/9/24 18:10:23

贷中风险预测Python实战:从特征工程到模型部署全流程
贷中风险预测Python实战:从特征工程到模型部署全流程

简介:面向金融风控场景的机器学习贷中风险预测模型资料包,覆盖数据预处理、特征工程、模型训练与评估全流程,适合高校人工智能、金融科技、电子信息等专业学生、竞赛选手及从业者参考学习,也可直接用于毕业设计、课程设计或项目立… · 2026/9/24 18:10:23

JSP健身房管理系统实战:数据库设计到部署上线全解析
JSP健身房管理系统实战:数据库设计到部署上线全解析

把JSP健身房管理系统这类项目讲透,还是得从实际部署和开发的角度掰开揉碎说。我去年帮几个学弟调试过类似结构的Java Web课设,自己也完整做过一轮基于Servlet JSP MySQL的CRUD项目,对这个题目的坑点和技术选型算是比较熟。如果你现在手里拿… · 2026/9/24 18:45:19

2026开发者必备6款AI工具:编码、调试与工作流实战指南
2026开发者必备6款AI工具:编码、调试与工作流实战指南

1. 为什么2026年的开发节奏逼着我们必须换工具1.1 从“能写代码”到“写得快、改得动、查得清”这两年我最大的感受是,写代码这件事本身的门槛在急速下降,但“把代码写对、写稳、写到能上线”的门槛反而在上升。原因不复杂:项目越来越碎&… · 2026/9/24 18:45:19

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

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

SpringBoot校园体育器材管理系统:从设计到答辩的完整实战指南
SpringBoot校园体育器材管理系统:从设计到答辩的完整实战指南

每年毕业季,总有学弟学妹在选题和实现之间反复拉扯。我每年都会被问到同一个问题:“学长,SpringBoot的管理系统到底怎么做才能过审又省力?”说实话,管理系统这类题目在计算机毕业设计里属于“人人都能做,但… · 2026/9/24 18:45:06

Hadoop容器迁移实战:Docker导出导入与数据卷备份恢复
Hadoop容器迁移实战:Docker导出导入与数据卷备份恢复

前几篇我们把 Hadoop 装进 Docker,从镜像搭建到伪分布式跑通,再到多节点集群调优,整个过程还算顺。但真正让我觉得这套方案省事的,是环境配置好之后怎么把它搬到别的机器上。这一篇就专门讲容器导出导入,对应系列第四篇… · 2026/9/24 18:45:06

手语识别实战:YOLOv3+OpenPose协同流水线搭建指南
手语识别实战:YOLOv3+OpenPose协同流水线搭建指南

简介:本资源是一个面向计算机视觉初学者与手语识别研究者的轻量级图像识别系统实现,聚焦于移动端手语视频的实时采集与动作识别。项目融合OpenPose人体姿态估计与YOLOv3自训练手部检测模型,通过特征提取分类器预测流程,将手势动作… · 2026/9/24 18:45:06

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码