尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

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

发布时间:2026/9/5 17:58:28

资讯中心
01
ARTICLE

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

SDC命令详解:使用set_clock_jitter命令进行约束
相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定周期抖动值指定占空比抖动值指定时钟列表/集合Multicorner-Multimode支持周期抖动值的示例占空比抖动值的示例不应用时钟抖动的示例本章将讨论如何使用set_clock_jitter命令模拟设计中的时钟抖动(clock jitter)传统流程中往往将时钟抖动包含在时钟不确定度(uncertainty)之中使用set_clock_uncertainty命令进行约束但这需要进行较多的人为干预例如保持时间的不确定度应小于建立时间的不确定度因为保持时间检查在同一个时钟沿进行所以只受到时钟偏差的影响。set_clock_jitter命令只适用于发射时钟和捕获时钟都为同一时钟的情况设置了时钟对象的clock_cycle_jitter_value和clock_duty_cycle_jitter_value属性生成时钟会继承主时钟的时钟抖动如果想指定生成时钟的时钟抖动值要求其为使用-multiply_by选项创建的生成时钟。如果想要移除时钟抖动使用remove_clock_jitter命令。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别该命令是在SDC 2.2引入的较老的工具可能没有这个命令。set_clock_jitter命令的BNF范式有关BNF范式可以参考以往文章为set_clock_jitter [-cycle cycle_to_cycle_jitter] [-duty_cycle duty_cycle_jitter] -clocks clock_list //注该命令的选项和参数顺序任意指定周期抖动值-cycle选项指定了周期抖动值当发射时钟沿和捕获时钟沿相隔为时钟周期的整数倍时周期抖动值生效。指定占空比抖动值-duty_cycle选项指定了占空比抖动值当发射时钟沿和捕获时钟沿相隔不是时钟周期的整数倍时占空比抖动值生效。指定时钟列表/集合-clocks选项指定了应用抖动值的时钟对于列表而言如果有多于一个对象需要使用引号或大括号包围对使用集合无效关于列表和集合的区别可以参考下面的博客。SDC命令详解使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571Multicorner-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周期抖动值的示例下面以图1所示的两级D触发器为例说明周期抖动值的使用。图1 简单的例子首先使用create_clock命令以clk端口为源对象创建一个周期为10的时钟。create_clock -period 10 [get_ports clk]然后使用set_clock_jitter命令设置时钟clk的周期抖动值此时的建立时间时序报告如图2所示。set_clock_jitter -cycle 0.5 -clocks [get_clocks clk]图2 建立时间时序报告从图2中可以看出clk的时钟抖动体现在了cycle clock jitter这一项中导致data required time减少了0.5也就导致了最后的裕度(slack)减少了0.5。占空比抖动值的示例为了说明占空比抖动值的影响改用图3所示的两级D触发器进行说明图3和图1的区别在于图3的捕获时钟路径上出现了反相器这会导致时钟在时钟路径上传播时可能因为单元的单调性出现翻转。图3 简单的例子首先使用create_clock命令以clk端口为源对象创建一个周期为10的时钟。create_clock -period 10 [get_ports clk]然后使用set_clock_jitter命令设置时钟clk的占空比抖动值此时的建立时间时序报告如图4所示。set_clock_jitter -duty_cycle 0.5 -clocks [get_clocks clk]图4 建立时间时序报告从图4中可以看出由于反相器的存在发射时钟的上升沿在0ns而捕获时钟的下降沿在5ns时由于反相器变成了上升沿从取反时钟clk_1可以看出这一点它们只相差半个周期。clk的时钟抖动体现在了duty cycle clock jitter这一项中导致data required time减少了0.5也就导致了最后的裕度(slack)减少了0.5。不应用时钟抖动的示例重新回到图1的例子若此时查看保持时间时序报告则会发现此时没有应用任何时钟抖动因为保持时间检查在发射时钟和捕获时钟的同一个时钟沿进行仅针对单周期情况如图5所示。图5 保持时间时序报告
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。