SDC命令详解:使用set_min_library命令进行约束

发布时间:2026/10/1 13:40:54

SDC命令详解:使用set_min_library命令进行约束 相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录最大条件分析的库文件名最小条件分析的库文件名取消设置Multicorner-Multimode支持最大条件和最小条件与set_operating_conditions命令同时使用写在最后set_min_library命令用于设置一组最大与最小条件的库映射关系其实它并不是一个SDC命令归为此类只是为了方便管理可以让Design Compiler在优化时分别使用两组逻辑库来进行最小与最大条件分析。该命令由于未设置属性不支持使用write_script命令输出它可以在没有读取设计、定义当前设计时就执行。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。read_sdc命令的BNF范式有关BNF范式可以参考以往文章为set_min_library max_library -min_version min_library | -none //注该命令的选项和参数顺序任意最大条件分析的库文件名max_library参数指定用于最大条件分析的库文件名通常也是target_library及link_library中设置的库文件。最小条件分析的库文件名-min_version选项指定用于最小条件分析的库文件名这些库文件不应该出现在target_library或link_library中。取消设置-none选项取消了最小条件分析库的设置。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最大条件和最小条件如果使用Design Compiler的默认分析模式bc_wc那么其在时序分析时使用单一的最大条件设置和最小条件设置对于建立时间检查、恢复时间检查、门控时钟建立时间检查、最大延迟检查等分析Design Compiler将使用最大条件下的工作环境以及所有用-max选项设置的约束对于保持时间检查、移除时间检查、门控时钟保持时间检查、最小延迟检查等分析Design Compiler将使用最小条件下的工作环境以及所有用-min选项设置的约束。如果使用on_chip_variation模式则Design Compiler在时序分析时会根据检查类型对发射路径和捕获路径使用不同的条件设置对于建立时间检查、恢复时间检查、门控时钟建立时间检查、最大延迟检查等分析Design Compiler会对发射路径使用最大条件设置对捕获路径使用最小条件设置以分析最差情况下的时序对于保持时间检查、移除时间检查、门控时钟保持时间检查、最小延迟检查等分析Design Compiler会对发射路径使用最小条件设置对捕获路径使用最大条件设置以分析最差情况下的时序。当使用set_min_library命令指定了最大与最小条件的库映射关系后在计算最大条件延迟时使用max_library中的时序信息在计算最小条件延迟时如果min_library中存在匹配的单元则会使用min_library中的时序信息否则依旧使用max_library中的时序信息。需要注意的是综合时单元依旧是被映射到max_library即target_library及link_library中设置的库文件只是在分析最小条件延迟时会考虑min_library这可以通过report_cell命令验证。与set_operating_conditions命令同时使用set_operating_conditions命令用于设置当前设计的工作环境如果单元的工作环境与其库中时序信息的特征化环境不符时会使用k系数(k-factors)进行调整这通常会造成较大的误差因此现在通常不使用这个性质每个逻辑库中只有一个工作环境也就是它的特征化环境。有关于特征化环境和工作环境及k系数的更详细解释可以参考下面的博客。静态时序分析工艺库的特征化环境和工作环境https://blog.csdn.net/weixin_45791458/article/details/136088521?ops_request_misc%257B%2522request%255Fid%2522%253A%252296dfdacf66770ad65d2308ce53816443%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id96dfdacf66770ad65d2308ce53816443biz_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下面展示了一个使用k系数进行调整的例子该例中会使用两个逻辑库fast.db和slow.db其中slow.db库中拥有一个k系数。// fast.lib nom_process : 1; nom_temperature : -40; nom_voltage : 1.1; operating_conditions(fast) { process : 1; temperature : -40; voltage : 1.1; tree_type : balanced_tree } // slow.lib nom_process : 1; nom_temperature : 125; nom_voltage : 0.9; operating_conditions(slow) { process : 1; temperature : 125; voltage : 0.9; tree_type : balanced_tree } k_temp_cell_fall : 0.001;下面展示了一个脚本其中将工作环境设置为fast.db库中的fast但使用slow.db库综合综合时会出现警告。// 综合脚本 set_app_var target_library slow.db set_app_var link_library * $target_library set_operating_conditions fast -library fast compile_ultra Warning: Operating condition fast set on design simple_register has different process, voltage and temperatures parameters than the parameters at which target library slow is characterized. Delays may be inaccurate as a result. (OPT-998)综合完毕后可以使用report_delay_calculation命令查看某个单元的延迟计算情况如下所示。**************************************** Report : delay_calculation Design : simple_register Version: W-2024.09-SP2 Date : Tue Jul 22 22:30:53 2025 **************************************** From pin: out1_reg/CK To pin: out1_reg/Q Main Library Units: 1ns 1pF 1kOhm Operating Conditions: fast Library: fast Wire Load Model Mode: top Library: slow Library Units: 1ns 1pF 1kOhm Library Cell: DFFRQX2 arc sense: rising_edge arc type: cell Rise Delay cell delay 0.2056 Table is indexed by (X) input_pin_transition 0.0000 (Y) output_net_total_cap 0.0010 Relevant portion of lookup table: (X) 0.0320 (X) 0.0480 (Y) 0.0012 (Z) 0.2154 (Z) 0.2196 (Y) 0.0028 (Z) 0.2251 (Z) 0.2293 Z A B*X C*Y D*X*Y A 0.1999 B 0.2665 C 5.9589 D -0.0377 Z 0.2056 scaling result for operating conditions multiplying by 1 gives 0.2056 Fall Delay cell delay 0.2492 Table is indexed by (X) input_pin_transition 0.0000 (Y) output_net_total_cap 0.0010 Relevant portion of lookup table: (X) 0.0320 (X) 0.0480 (Y) 0.0012 (Z) 0.2589 (Z) 0.2632 (Y) 0.0028 (Z) 0.2680 (Z) 0.2723 Z A B*X C*Y D*X*Y A 0.2439 B 0.2663 C 5.5518 D 0.2284 Z 0.2492 scaling result for operating conditions multiplying by 0.835 gives 0.2081 Cell Delay rise: 0.2056 fall: 0.2081可以看出单元的下降延迟在最后乘以0.835进行调整而上升延迟则没有因为逻辑库内的k_temp_cell_fall为0。如果使用了set_min_library命令则需要使用相应的set_operating_conditions命令这也是为了防止出现k系数调整下面展示了一个例子。// 综合脚本 set_app_var target_library slow.db set_app_var link_library * $target_library set_min_library slow.db -min_version fast.db set_operating_conditions -max slow -max_library slow -min fast -min_library fast compile_ultra写在最后该命令现在已经较少使用了转而使用拓扑模式的Design Compiler Graphical提供的Multicorner-Multimode(MCMM)Flow进行综合能够创建不同的场景(Scenario)并在综合时同时考虑。
延伸阅读

更多相关文章

2026/9/28 23:36:21

家庭关系处理个人总结

首先要说到前面的是,每个家庭的成员背景环境经济状况不同,原生家庭差异,导致面临具体问题是不同的。就类似软件“没有银弹”的概念,没有一种方法可以解决每个人问题。 举个例子,面对婆媳矛盾 网上父辈的人 会说 百行孝…

2026/10/1 6:42:54

嵌入式裸机模块——软定时器

仓库地址:Gitee - TimTask 模块概述 在嵌入式领域中,比如单片机,尤其STM32这种32位ARM架构的MCU(当然这个模块也可以用在51单片机上,不过51的资源太少了,建议用精简版的)上裸机运行业务代码的…

2026/10/1 13:36:53

轻量级数字孪生:Antigravity+Blender+MCP构建智慧仓储3D可视化系统

1. 项目概述:这不是炫技,是给仓库装上“透视眼”和“预演大脑”你有没有见过那种堆满托盘、叉车穿行如织、AGV小车自动绕障的现代仓储现场?表面看是物流效率的提升,背后其实是数据流、物理流、决策流三股力量在毫秒级对齐。而“An…

2026/10/1 13:36:53

Java后端AI开发实战:LangChain4j核心概念与RAG集成指南

1. 为什么 Java 后端值得认真看一眼 LangChain4j 做 Java 后端的兄弟这两年应该都有同一种感觉:AI 应用这波浪潮,Python 那边热火朝天,LangChain、LlamaIndex 一套接一套,而自己手里攥着 Spring Boot 这套成熟到不能再成熟的技术栈…

2026/10/1 13:36:53

Spring Boot + MyBatis 整合实践:配置、动态SQL与排错指南

最近被问得最多的一个问题,大概就是“Spring Boot 项目里用 Mybatis 到底怎么组织才规范”。这个组合在国内 Java 业务系统里几乎成了默认配置,但很多人是跟着脚手架点出来的,能跑,却说不清里面发生了什么;一旦碰到 SQ…

2026/10/1 13:36:53

iOS 上跑 Windows 程序:Wine+FEX-Emu+DXMT 四层翻译链路实战

1. 项目缘起:为什么要在 iOS 上折腾 Wine“Madeira”这个项目标题,乍一看像是一个地名,但在我们这行里,它指向的是一套非常具体的工程实践:在 iOS 设备上运行 Windows 应用程序的兼容层方案。核心思路是把 Wine 这个老…

2026/10/1 13:36:53

京东商品评论情感分析:基于LSTM的实战全流程解析

简介:一套面向计算机专业毕业设计与课程作业的深度学习情感分析项目资料,基于长短时记忆网络(LSTM)对京东商城评论数据进行情感分类,完整覆盖数据爬取、清洗、预处理、模型训练与评估全流程。压缩包共39个文件&#xf…

2026/10/1 13:31:53

WinForm自绘滚动条:可换色与线条/矩形双轨道样式实现

简介:这是一份面向C# Winform开发者的自定义滚动条实战源码,针对默认VScrollBar/HScrollBar外观单一、难以适配个性化界面主题的问题,通过继承原生控件并重写OnPaint方法,实现拖块颜色与轨道颜色的自由修改,同时提供线…

2026/10/1 5:21:14

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/29 21:48:03

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑