0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何检查时序窗口的稳定性

sally100 来源:数字ICer 作者:数字ICer 2022-10-19 09:47 次阅读

timing check

描述设计时序时,所有的时序检查都有一个参考事件(reference event)和一个数据事件(data event),数据事件常常是数据信号,而参考事件常常是时钟信号,它们通过一个布尔表达式相联接,还包括一个可选的notifier寄存器选项,这个寄存器用来打印错误信息或者传播X态。

检查时序窗口的稳定性,包括:setup、hold、setuphold、recovery、removal和recrem。

$setuphold

$setuphold(reference_event, data_event, setup_limit,hold_limit, notifier, [timestamp_cond, timecheck_cond,delayed_reference_signal, delayed_data_signal]);

其中setup limit 和hold limit 的数值是从SDF 文件取出反标到网表上的。

$setup (data_event, reference_event, limit, notifier);

当reference_event time - limit < data_event time < reference_event time时,就会报告setup time violations。

$hold (reference_event, data_event, limit, notifier);

当reference_event time < data_event time < reference_event time + limit时,就会报告hold time violations。

$setuphold (reference_event, data_event, setup_limit, hold_limit, notifier);

setup和$hold 两者的联合。

例如:

setup (negedge d, posedge clk, 2, notifier); 和 $hold (posedge clk, negedge d, 1, notifier);

setup和hold都为正值:

如下面例子 setup limit 和 hold limit 都为正值:

$setuphold (posedge clock, data, 10, 11, notifyreg);

其中,data要在时钟上升沿10ns保持稳定(假设时间单位是ns),在clk上升沿之后11ns内保持稳定;如果在时钟clk上升沿到来之前,data小于10ns或时钟clk上升沿到来之之后小于11ns,则为时序违例;

d3d4b4ce-4ef0-11ed-a3b6-dac502259ad0.pngPositive Setup and Hold Limits

上图中,可见,

对于setup检查Data Event 要早于 Clock Event;

对于hold 检查Data Event 要晚于 Clock Event;

符合这种情况的时序,setup limit 和 hold limit 用正值来表示。

setup为负值,hold都为正值:

在讨论这个问题之前需要弄明白,我们现在所说的setup hold timing check是针对std cell的,在实际的std cell中不仅仅有DFF还有一些buffer之类的cell。

d417c41c-4ef0-11ed-a3b6-dac502259ad0.png

一个典型的std cell的简化结构如上图所示,D1和D2表示两个delay cell。而实际上我们要保证的是DFF的setup 和hold timing check是正值,由于D1和D2两个cell的delay不同就导致了在对std cell做timing check时出现了负值的timing check。再次强调,这里的负值的timing check是针对std cell的并不是针对DFF的。

d42bef32-4ef0-11ed-a3b6-dac502259ad0.png

当标准单元内部clk上有较长的延迟时,对于setup检查Data Event就可以晚一些来,如果晚于Clock Event(时刻为 0),用负值来表示。

$setuphold (posedge clock, data, -10, 31, notifyreg);

d461c710-4ef0-11ed-a3b6-dac502259ad0.pngNegative Setup Limit

setup为正值,hold都为负值:

d47634a2-4ef0-11ed-a3b6-dac502259ad0.png

当标准单元内部data上有较长的延迟时,对于hold检查Data Event就需要早一些来,如果早于Clock Event(时刻为 0),用负值来表示。$setuphold (posedge clock, data, 31, -10, notifyreg);

d493825a-4ef0-11ed-a3b6-dac502259ad0.pngNegative Hold Limit

需要注意的是不论setup 或者hold出现负值,但setup和hold的和必须是正值。这是因为setup必然要发生在hold的前面。

$recrem

复位信号的恢复时间检查:

$recovery (reference_event, data_event, limit, notifier);

当data_event time - limit < reference_event time < data_event time时,就会报告recovery time violations。

复位信号的移除时间检查

$removal (reference_event, data_event, limit, notifier);

当data_event time < reference_event time < data_event time + limit时,就会报告removal time violations。

复位信号的恢复/移除时间检查:

$recrem (reference_event, data_event, recovery_limit, removal_limit, notifier);

$recrem是$recovery和$removal两者的联合。

recovery (posedge clr, posedge clk, 2, notifier); 和 $removal (posedge clr, posedge clk, 3, notifier);

数据事件常常是时钟信号,而参考事件常常是控制信号,比如清除信号或者置位信号,如下图:

d4ac858e-4ef0-11ed-a3b6-dac502259ad0.png

启用负时序检查

当时序存在负值时,必须要用 recrem 来表示;而不能用单独的 hold,removal;

同时使用负时序检查,必须在编译设计时包含+neg_tchk和-negdelay选项。如果省略此选项,VCS将将所有负限制更改为0。

如果在+neg_tchk选项中包含 +no_notifier选项,则表示notifer寄存器不进行翻转,X态不会传播,但是vcs还是会报告timing violation;

相反,如果在+neg_tchk选项中包含+no_tchk_msg选项,则vcs不报告timing violation。但VCS仍然会创建时钟和数据信号的延迟,并在存在时序违例时翻转notifer寄存器。

+notimingcheck 表示在vcs编译过程中不进行 setuphold,recrem 等函数的编译,vcs产生delayed_reference_signal 和delayed_reference_data但是不会去标记这些delay的值,从而不进行任何的timing检查。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6909

    浏览量

    88849
  • 时序
    +关注

    关注

    5

    文章

    386

    浏览量

    37287
收藏 人收藏

    评论

    相关推荐

    环路增益的稳定性

    由基本反馈电路的电路组成结构,得出闭环传递函数为,电路的开环增益是各个晶体管参数和电容参数的函数,所以也是频率的函数,于是闭环增益就可以写作,反馈电路的稳定性和1环路增益A(w)有关,当环路增益的幅
    发表于 06-18 15:00

    使用SPICE工具检查运放稳定性

    作者: TI专家Bruce Trump翻译: TI信号链工程师 Rickey Xiong (熊尧) SPICE是一种检查电路潜在稳定性问题的有用工具 。本文将介绍一种使用SPICE工具来检查电路
    发表于 09-21 15:45

    基于利用Pspice模型的放大器环路稳定性设计

    虽然在较低频率下可以较轻松地检查一个简单放大器的稳定性,但评估一个较为复杂的电路是否稳定,难度可能会大得多。本文使用常见的Pspice宏模型结合一些简单的电路设计技巧来提高设计工程师的设计能力,以确保其设计的实用性与
    发表于 06-26 07:22

    如何提高lwip的稳定性

    如题、如何提高lwip的稳定性,目前用的是f107+lwip1.4.1目前系统运行一段时间后lwip就挂掉啦(时间很不固定)问题;应主要从那几个方面来提高稳定性,恳请大家指点一二,小弟在此不胜感激
    发表于 07-09 23:36

    怎么使用SPICE工具来检查电路潜在稳定性

    SPICE是一种检查电路潜在稳定性问题的有用工具 。本文将介绍一种使用SPICE工具来检查电路潜在稳定性的简单方法。
    发表于 04-06 08:10

    电力系统中的电压稳定性介绍

      大干扰电压稳定性 –它涉及系统稳定性,以在系统故障、负载损失或发电损失等大干扰后控制电压。为了确定这种形式的稳定性,需要检查系统的动态性能,使其在足以捕获负载下分接变压器、发电机磁
    发表于 04-21 16:14

    电阻的稳定性

    稳定性是表示电感线圈参数随环境条件变化而改变的程度。通常用电感温度系数αL 来评定线圈的稳定程度,它表示电感量相对泪度的稳定性,其用下式计算:
    发表于 06-15 19:29 2245次阅读

    电感的稳定性

    电感的稳定性 稳定性是表示电感线圈参数随环境条件变化而改变的程度。通常用电感温度系数αL 来评定线圈的稳定程度,它表示电感量相对泪度的稳定
    发表于 08-22 14:33 1553次阅读

    系统的稳定性

    现代控制理论-5.系统的稳定性
    发表于 12-13 22:20 0次下载

    如何使用SPICE最简单的方法检查电路潜在稳定性

    SPICE是一种检查电路潜在稳定性问题的有用工具 。本文将介绍一种使用SPICE工具来检查电路潜在稳定性的简单方法。
    的头像 发表于 10-04 15:10 4155次阅读
    如何使用SPICE最简单的方法<b class='flag-5'>检查</b>电路潜在<b class='flag-5'>稳定性</b>

    什么是热电偶稳定性?如何检测热电偶稳定性

    在规定的条件下,热电特性变化大即表明稳定性差,变化小则表明稳定性良好。热电偶的稳定性好坏会直接影响到热电偶测量的准确性,因此,稳定性是衡量热电偶性能的一个重要指标。
    发表于 12-31 09:19 2608次阅读
    什么是热电偶<b class='flag-5'>稳定性</b>?如何检测热电偶<b class='flag-5'>稳定性</b>?

    启用负时序检查的步骤

    检查时序窗口稳定性,包括:setup、hold、setuphold、recovery、removal和recrem。
    的头像 发表于 10-19 09:46 6575次阅读

    怎么分析电路的稳定性

    怎么分析电路的稳定性?  电路的稳定性是指电路在不同条件下保持稳定的能力。稳定性是电路设计中十分重要的一个方面,因为稳定的电路能够提供可靠和
    的头像 发表于 09-17 16:44 1777次阅读

    什么是热电偶稳定性?影响热电偶稳定性的主要因素

    什么是热电偶稳定性?影响热电偶稳定性的主要因素 热电偶热稳定性怎样检测? 热电偶稳定性是指热电偶在一定时间范围内的温度测量值的稳定程度。在实
    的头像 发表于 03-08 15:32 1407次阅读

    简化稳定性检查

    电子发烧友网站提供《简化稳定性检查.pdf》资料免费下载
    发表于 10-11 11:23 0次下载
    简化<b class='flag-5'>稳定性</b><b class='flag-5'>检查</b>