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

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

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

        最大条件分析的库文件名

        最小条件分析的库文件名

        取消设置

        最大条件和最小条件

        与set_operating_conditions命令同时使用

        写在最后


        set_min_library命令用于设置一组最大与最小条件的库映射关系(其实它并不是一个SDC命令,归为此类只是为了方便管理),可以让Design Compiler在优化时分别使用两组逻辑库来进行最小与最大条件分析。

        本文针对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选项取消了最小条件分析库的设置。

最大条件和最小条件

        如果使用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系数的更详细解释,可以参考下面的博客。

静态时序分析:工艺库的特征化环境和工作环境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%257D&request_id=96dfdacf66770ad65d2308ce53816443&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-136088521-null-null.nonecase&utm_term=%E7%89%B9%E5%BE%81%E5%8C%96&spm=1018.2226.3001.4450        下面展示了一个使用k系数进行调整的例子,该例中会使用两个逻辑库fast.db和slow.db,其中slow.db库中拥有一个k系数。

// fast.libnom_process     : 1;nom_temperature : -40;nom_voltage     : 1.1;operating_conditions(fast) {process	: 1;temperature	: -40;voltage	: 1.1;tree_type	: balanced_tree}// slow.libnom_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.dbset_app_var link_library "* $target_library"set_operating_conditions fast -library fastcompile_ultraWarning: 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  1kOhmOperating Conditions: fast   Library: fast
Wire Load Model Mode: topLibrary: 'slow'
Library Units:  1ns  1pF  1kOhm
Library Cell: 'DFFRQX2'arc sense:                        rising_edge
arc type:                         cellRise Delaycell delay = 0.2056Table is indexed by(X) input_pin_transition = 0.0000(Y) output_net_total_cap = 0.0010Relevant 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.2293Z = A + B*X + C*Y + D*X*YA = 0.1999           B = 0.2665C = 5.9589           D = -0.0377Z = 0.2056scaling result for operating conditionsmultiplying by 1 gives 0.2056Fall Delaycell delay = 0.2492Table is indexed by(X) input_pin_transition = 0.0000(Y) output_net_total_cap = 0.0010Relevant 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.2723Z = A + B*X + C*Y + D*X*YA = 0.2439           B = 0.2663C = 5.5518           D = 0.2284Z = 0.2492scaling result for operating conditionsmultiplying by 0.835 gives 0.2081Cell Delayrise:  0.2056fall:  0.2081

        可以看出,单元的下降延迟在最后乘以0.835进行调整,而上升延迟则没有(因为逻辑库内的  k_temp_cell_fall为0)。

        如果使用了set_min_library命令,则需要使用相应的set_operating_conditions命令,这也是为了防止出现k系数调整,下面展示了一个例子。

// 综合脚本set_app_var target_library slow.dbset_app_var link_library "* $target_library"set_min_library slow.db -min_version fast.dbset_operating_conditions -max slow -max_library slow -min fast -min_library fast  compile_ultra

写在最后

        该命令现在已经较少使用了,转而使用Design Compiler Graphical提供的Multicorner-Multimode(MCMM)Flow进行综合,能够创建不同的场景(Scenario)并在综合时同时考虑。

http://www.dtcms.com/a/292737.html

相关文章:

  • fuse低代码工作流平台概述【已开源】-自研
  • AWS: 云上侦探手册,七步排查ALB与EC2连接疑云
  • Kotlin调试
  • PyQt5在Pycharm上的环境搭建 -- Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率
  • 测试学习之——requests day01
  • 【数据结构初阶】--栈和队列(一)
  • 注意力机制介绍
  • 从链式协同到生态共生:制造业数智化供应链跃升之路
  • spring boot 项目如何使用jasypt加密
  • 【中文翻译】SmolVLA:面向低成本高效机器人的视觉-语言-动作模型
  • 认识自我的机器人:麻省理工学院基于视觉的系统让机器了解自身机体
  • 机器人芯片(腾讯元宝)
  • 《小白学习产品经理》第八章:方法论之马斯洛需求层次理论
  • 【JS】获取元素宽高(例如div)
  • 暑假算法训练.6
  • 单片机学习笔记.单总线one-wire协议(这里以普中开发板DS18B20为例)
  • SQL JOIN 全解析:用 `users` 与 `orders` 表彻底掌握内连接、左连接、右连接
  • PostgreSQL大数据集查询优化
  • 蓝桥杯51单片机
  • 第十四届蓝桥杯青少Scratch国赛真题——太空大战
  • 解决 NCCL 多节点通信问题:从 nranks 1 到 busbw 116 MB/s
  • 02-netty基础-java四种IO模型
  • 二、计算机网络技术——第3章:数据链路层
  • Yocto meta-toradex-security layer 使用 TI AM62 安全启动功能
  • vscode,cursor,Trae终端不能使用cnpm、npm、pnpm命令解决方案
  • QT RCC 文件
  • Hadoop调度器深度解析:FairScheduler与CapacityScheduler的优化策略
  • PHP获取淘宝拍立淘(以图搜图)API接口操作详解
  • Ext4文件系统全景解析
  • 【n8n教程笔记——工作流Workflow】文本课程(第一阶段)——1、导航编辑器界面(Navigating the editor UI)介绍