SDC命令详解:使用set_operating_conditions命令进行约束(bc_wc模式和on_chip_variation模式)

发布时间:2026/7/30 18:11:08

SDC命令详解:使用set_operating_conditions命令进行约束(bc_wc模式和on_chip_variation模式)
相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录默认工作环境显式指定工作环境指定工作环境名指定最大条件的工作环境指定最大条件工作环境的搜索库指定最小条件的工作环境指定最小条件工作环境的搜索库指定搜索库指定对象名称Multicorner-Multimode支持指定分析模式PrimeTime与Design Compiler/IC Compiler的区别其他OCV方法set_operating_conditions命令用于设置设计的工作环境工作环境包括温度、电压、工艺等它们的变化会显著影响电路性能因此所有工艺库的数据都是在一个特定的工作环境下得到的这个环境被称为特征化环境并根据选择的工作环境进行相应调整。有关特征化环境和工作环境的更详细内容可以参考下面的博客。静态时序分析工艺库的特征化环境和工作环境https://blog.csdn.net/weixin_45791458/article/details/136088521?ops_request_misc%257B%2522request%255Fid%2522%253A%2522b3dbe94f88b3c34dbccf8e467840d97c%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_idb3dbe94f88b3c34dbccf8e467840d97cbiz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-136088521-null-null.nonecaseutm_term%E7%89%B9%E5%BE%81%E5%8C%96spm1018.2226.3001.4450默认工作环境如果不使用set_operating_conditions命令指定工作环境Design Compiler将自动选择默认工作环境。逻辑库中可以使用default_operating_conditions库属性定义默认工作环境如果逻辑库中不存在default_operating_conditions库属性且只包含一个工作环境则该工作环境将被设置为默认工作环境如果逻辑库中不存在default_operating_conditions库属性且包含多个工作环境则标准工作环境nom_pvt将被创建并被设置为默认工作环境。Design Compiler会在link_library变量或local_link_library属性两者统称为link_path中的第一个逻辑库即主库中搜索默认工作环境如果失败则会选择标准工作环境nom_pvt。具体来说综合时Design Compiler将在target_library变量中的第一个逻辑库中搜索默认工作环境这是因为综合后设计的local_link_library属性将被设置为target_library变量其他情况下Design Compiler将在link_path中的第一个逻辑库中搜索默认工作环境。拓扑模式的Design Compiler NXT为了提升与物理实现工具如IC Compiler II的一致性在2021版本引入了一个新特性如果用户不使用set_operating_conditions命令指定工作环境在综合后需要使用compile_ultra -spg命令自动选择的默认工作环境将被添加为一个约束就像用户使用了set_operating_conditions命令那样该约束可以被传递给IC Compiler II Link也可以使用write_icc2_files命令或write_sdc命令输出综合或使用这两个命令时会提示以下信息。Warning: There is no user-defined operating conditions in the design. The tool is inferring operating conditions %s from the library %s. (DCT-399)在IC Compiler II中执行write_icc2_files命令输出的脚本时将会提示以下信息。Information: IC Compiler II will be using the default operating condition inferred by Design Compiler NXT显式指定工作环境与默认选择工作环境相比更加常用的是使用set_operating_conditions命令显式指定工作环境本文就将对此进行讨论。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。set_operating_conditions命令的BNF范式有关BNF范式可以参考以往文章为set_operating_conditions [condition] [-max max_condition] [-max_library max_lib] [-min min_condition] [-min_library min_lib] [-library lib] [-object_list objects] [-analysis_type bc_wc | on_chip_variation]指定工作环境名condition参数指定了一个工作环境它被设置为最大条件下一般情况下如果不开启on_chip_variation这指的是建立时间检查和最小条件下一般情况下如果不开启on_chip_variation这指的是保持时间检查的工作环境。该参数不能与-min选项和-max选项一起使用。指定最大条件的工作环境-max选项指定了最大条件下的工作环境一般情况下如果不开启on_chip_variation这指的是建立时间检查。该参数不能与condition参数一起使用。指定最大条件工作环境的搜索库-max_library选项指定了搜索最大条件下的工作环境的库如果不指定-max_library选项则Design Compiler会在link_path指定的逻辑库中从左至右搜索指定的工作环境如果在-max_library选项中指定了多个逻辑库则Design Compiler会在这些指定的逻辑库中从左至右搜索指定的工作环境。该选项只有在使用了-max选项后才能使用。指定最小条件的工作环境-min选项指定了最小条件下的工作环境一般情况下如果不开启on_chip_variation这指的是保持时间检查如果不指定最小条件下的工作环境Design Compiler会使用最大条件的工作环境。该参数不能与condition参数一起使用。如果指定了最小条件的工作环境通常需要使用set_min_library命令设置最大与最小条件的库映射关系否则会出现设计映射到最大条件的逻辑库但在最小条件分析时由于最小条件的工作环境与最大条件的逻辑库中的特征化环境不一致而出现使用k系数(k-factors)调整的问题更详细的分析可以参考下面博客中的“与set_operating_conditions命令同时使用”一节。SDC命令详解使用set_min_library命令进行约束https://chenzhang.blog.csdn.net/article/details/149541491?spm1011.2415.3001.5331指定最小条件工作环境的搜索库-min_library选项指定了搜索最大条件下的工作环境的库如果不指定-min_library选项则Design Compiler会在link_path指定的逻辑库中从左至右搜索指定的工作环境如果在-min_library选项中指定了多个逻辑库则Design Compiler会在这些指定的逻辑库中从左至右搜索指定的工作环境。该选项只有在使用了-min选项后才能使用。指定搜索库-library选项指定了搜索最大条件和最小条件下的工作环境的库该选项的优先级高于-max_library选项和-min_library选项。指定对象名称-object_list选项指定要设置工作环境的单元或端口。如果不使用此选项则工作环境设置在整个设计上对象可以是叶单元也可以是层次单元。这个选项在早期的Design Compiler中即2007版本前此时UPF标准还尚未公布因此是非UPF模式用于指定多电压域设计中各电压域的工作环境现在已经废除。如今的多电压域设计中使用UPF文件指定电压意图使用set_voltage命令指定各电压域的工作电压使用set_operating_conditions命令指定整个工作温度和工作工艺。关于UPF模式和非UPF模式的更多介绍可以参考下面的博客。Design Compiler两种工作模式线负载模式和拓扑模式https://blog.csdn.net/weixin_45791458/article/details/144830461?sharetypeblogdetailsharerId144830461sharereferPCsharesourceweixin_45791458spm1011.2480.3001.8118Multicorner-Multimode支持该命令仅对当前场景生效换句话说只能在当前场景设置工作环境。如果使用了MCMM必须设置每个场景的工作环境。关于场景的更多介绍可以参考下面的博客。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指定分析模式-analysis_type选项指定了Design Compiler的分析模式可以是bc_wc模式默认或on_chip_variation模式PrimeTime默认。如果是bc_wc模式则Design Compiler在时序分析时只会使用单一的最大条件设置和最小条件设置对于建立时间分析Design Compiler使用最大条件下的工作环境以及最大条件设置即用-max选项设置的约束并在转换时间合并时统一使用最慢转换时间对于保持时间分析Design Compiler使用最小条件下的工作环境以及最大条件设置即用-min选项设置的约束并在转换时间合并时统一使用最快转换时间。关于转换时间合并可以参考下面的博客中有关GBA分析的那一部分。静态时序分析静态时序分析的原理及其两种模式PBA、GBAhttps://blog.csdn.net/weixin_45791458/article/details/136078969?ops_request_misc%257B%2522request%255Fid%2522%253A%2522f82123c01eaab2e7a8e5c467f18fad01%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_idf82123c01eaab2e7a8e5c467f18fad01biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-136078969-null-null.nonecaseutm_termPBAspm1018.2226.3001.4450如果是on_chip_variation模式则Design Compiler在时序分析时会根据检查类型对发射路径和捕获路径使用不同的条件设置对于建立时间分析Design Compiler会对发射路径使用最大条件设置转换时间合并时使用最慢转换时间对捕获路径使用最小条件设置转换时间合并时使用最快转换时间对于保持时间分析Design Compiler会对发射路径使用最小条件设置转换时间合并时使用最快转换时间对捕获路径使用最大条件设置转换时间合并时使用最慢转换时间以分析最差情况下的时序。下面以图1举例说明分析模式的使用。图1 简单的触发器首先使用create_clock命令以clk端口为源对象创建一个周期为10的时钟。create_clock -period 10 [get_ports clk]接着在输入端口d定义分别定义最大条件和最小条件的输入延迟。set_input_delay -max 0.8 -clock clk [get_ports d] set_input_delay -min 0.4 -clock clk [get_ports d]最后定义理想时钟最大条件和最小条件下的延迟。set_clock_latency 0.2 -max [get_clocks clk] set_clock_latency 0.1 -min [get_clocks clk]如果使用bc_wc模式默认则此时输入端口d的建立时间时序报告和保持时间时序报告分别如图2和图3所示。图2 输入端口的建立时间报告bc_wc模式图3 输入端口的保持时间报告bc_wc模式可以看出对于发射路径时序报告上半部分和捕获路径时序报告下半部分Design Compiler统一使用了最大条件或最小条件下的设置。如果使用on_chip_variation模式则此时输入端口d的建立时间时序报告和保持时间时序报告分别如图4和图5所示。图4 输入端口的建立时间报告on_chip_variation模式图5 输入端口的保持时间报告on_chip_variation模式可以看出对于发射路径时序报告上半部分和捕获路径时序报告下半部分Design Compiler在进行建立时间分析时发射路径选择了最慢的时钟延迟0.2而捕获路径选择了最快的时钟延迟0.1这导致了与bc_wc模式相比时序裕量由9.16下降为9.06在进行保持时间分析时发射路径选择了最快的时钟延迟0.1而捕获路径选择了最慢的时钟延迟0.2这导致了与bc_wc模式相比时序裕量由0.39下降为0.29。本例只展示了对于时钟延迟的设置在两种模式下的差异实际上所有可以分别设置-min选项和-max选项的命令在这两种模式下都是会有差异的。虽然on_chip_variation模式模拟了片上变化带来的影响但显而易见它是悲观的尤其是对于时钟路径上的共同路径这被称为共同路径悲观(Common Path Pessimism)如果想移除这种悲观可以将timing_remove_clock_reconvergence_pessimism变量设置为true默认值为false。在Design Compiler/IC Compiler中使用report_deisgn命令可以查看当前使用的工作环境使用report_scenarios命令可以查看当前使用的分析模式在PrimeTime中使用report_deisgn命令可以查看当前使用的工作环境和分析模式。PrimeTime与Design Compiler/IC Compiler的区别对于PrimeTime而言原本存在single模式、bc_wc模式和on_chip_variation模式三种分析模式如果选择bc_wc模式和on_chip_variation模式可以在使用其他命令时指定-min或-max选项后来bc_wc模式被删除了因此现在的PrimeTime只有在分析模式为on_chip_variation默认时才能在使用命令时指定-min或-max选项包括set_operating_conditions命令而Design Compiler/IC Compiler则无此要求。其他OCV方法除了设置分析模式之外还可以通过set_timing_derate模拟片上变化即使分析模式为bc_wc但该命令只能使用单一的因子进行降额。为了更加精准地模拟片上变化PrimeTime在2008版本推出了AOCV(Advanced On-Chip Variation)模式在2013版本推出了POCV(Parametric On-Chip Variation)模式使用它们可以在on_chip_variation模式的基础上考虑逻辑深度、举例和统计分析等更多因素。POCV模式在拓扑模式的Design Compiler Graphical中得到了支持AOCV模式和POCV模式在IC Compiler中得到了支持。

相关新闻

TeamViewer:远程协作的“隐形桥梁“,为什么企业离不开它?

TeamViewer:远程协作的“隐形桥梁“,为什么企业离不开它?

2026/7/30 18:11:08

同事电脑出了问题,你在千里之外怎么帮忙?客户系统需要紧急调试,出差路上如何响应?在家办公要访问公司内网的文件,VPN 配置复杂到让人头大——这些场景,TeamViewer 用一根网线、一个软件、一组密码&#xff…

python-nameparser性能优化:处理大规模姓名数据的最佳实践

python-nameparser性能优化:处理大规模姓名数据的最佳实践

2026/7/30 18:01:08

python-nameparser性能优化:处理大规模姓名数据的最佳实践 【免费下载链接】python-nameparser A simple Python module for parsing human names into their individual components 项目地址: https://gitcode.com/gh_mirrors/py/python-nameparser 在处理…

如何快速部署AI原生网关:Higress云原生API网关的完整实践指南

如何快速部署AI原生网关:Higress云原生API网关的完整实践指南

2026/7/30 18:01:08

如何快速部署AI原生网关:Higress云原生API网关的完整实践指南 【免费下载链接】higress 🤖 AI Gateway | AI Native API Gateway 项目地址: https://gitcode.com/GitHub_Trending/hi/higress 还在为复杂的API网关配置而烦恼?传统网关在…

dg-ai-notes部署教程:3步搭建你的AI协作学习环境

dg-ai-notes部署教程:3步搭建你的AI协作学习环境

2026/7/30 19:01:10

dg-ai-notes部署教程:3步搭建你的AI协作学习环境 【免费下载链接】dg-ai-notes 项目地址: https://gitcode.com/gh_mirrors/dg/dg-ai-notes dg-ai-notes是一个集成了Pi Agent框架的AI协作学习环境,通过直观的界面和丰富的文档资源,帮…

CosmJS模块化开发:从基础包到自定义Stargate模块全攻略

CosmJS模块化开发:从基础包到自定义Stargate模块全攻略

2026/7/30 19:01:10

CosmJS模块化开发:从基础包到自定义Stargate模块全攻略 【免费下载链接】cosmjs The Swiss Army knife to power JavaScript based client solutions ranging from Web apps/explorers over browser extensions to server-side clients like faucets/scrapers. 项…

从零搭建AI考研知识体系:用LLM自动构建专业课思维导图+错题归因模型(含可运行Python脚本)

从零搭建AI考研知识体系:用LLM自动构建专业课思维导图+错题归因模型(含可运行Python脚本)

2026/7/30 19:01:10

更多请点击: https://kaifayun.com 第一章:AI考研专业课备考的核心挑战与LLM赋能范式 AI考研专业课涵盖数据结构、算法设计、机器学习原理、计算机组成原理及数学基础(线性代数、概率论、最优化)等多个高耦合模块,考…

5个简单技巧:用SillyTavern打造有灵魂的AI角色对话体验

5个简单技巧:用SillyTavern打造有灵魂的AI角色对话体验

2026/7/30 19:01:10

5个简单技巧:用SillyTavern打造有灵魂的AI角色对话体验 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否曾幻想过与AI角色进行真正有情感的对话?厌倦了机械式的…

CLIP:连接视觉与语言的桥梁,开启零样本智能新时代

CLIP:连接视觉与语言的桥梁,开启零样本智能新时代

2026/7/30 19:01:10

CLIP:连接视觉与语言的桥梁,开启零样本智能新时代 【免费下载链接】CLIP CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image 项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP 想象…

HExHTTP vs 传统安全工具:为什么它是HTTP头部漏洞检测的最佳选择?

HExHTTP vs 传统安全工具:为什么它是HTTP头部漏洞检测的最佳选择?

2026/7/30 18:51:09

HExHTTP vs 传统安全工具:为什么它是HTTP头部漏洞检测的最佳选择? 【免费下载链接】HExHTTP Header Exploitation HTTP 项目地址: https://gitcode.com/gh_mirrors/he/HExHTTP 在当今网络安全领域,HTTP头部漏洞已成为攻击者的重要突破…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/30 9:53:22

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/30 1:17:46

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/30 2:52:37

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

粉笔直播课适合周末集中备考考生突破吗

粉笔直播课适合周末集中备考考生突破吗

2026/7/30 0:09:54

本文面向在职备考、工作日难以抽出整块时间、只能依靠周末集中复习的公考考生,围绕"该平台直播课是否适配周末集中备考节奏、能否支撑瓶颈突破"这一核心问题做客观拆解。文中数据来源于公开财报、官网公示价格、第三方投诉平台公开投诉及用户社区讨论&…

ThreadLocal(存取变量)实战获取当前登录的员工

ThreadLocal(存取变量)实战获取当前登录的员工

2026/7/30 0:09:54

注意AOP所应用的注解以及service方法上自定义的Log注解

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案

2026/7/30 0:09:54

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案 【免费下载链接】inav INAV: Navigation-enabled flight control software 项目地址: https://gitcode.com/gh_mirrors/in/inav INAV飞控配置是每个无人机爱好者必须掌握的核心技能,但很多新手…