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

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

3天内不再提示

启用负时序检查的步骤

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

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.png

Positive 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.png

Negative 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.png

Negative 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检查。





审核编辑:刘清

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

    关注

    31

    文章

    5336

    浏览量

    120230
  • VCS
    VCS
    +关注

    关注

    0

    文章

    79

    浏览量

    9600
  • 时钟信号
    +关注

    关注

    4

    文章

    448

    浏览量

    28542
  • dff
    dff
    +关注

    关注

    0

    文章

    26

    浏览量

    3417

原文标题:负时序检查 Negative Timing Checks

文章出处:【微信号:数字ICer,微信公众号:数字ICer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    静态时序的分析原理及详细过程

    静态时序分析是检查IC系统时序是否满足要求的主要手段。以往时序的验证依赖于仿真,采用仿真的方法,覆盖率跟所施加的激励有关,有些时序违例会被忽
    的头像 发表于 11-25 11:03 9940次阅读
    静态<b class='flag-5'>时序</b>的分析原理及详细过程

    UltraFast设计方法时序收敛快捷参考指南

    《UltraFast 设计方法时序收敛快捷参考指南》提供了以下分步骤流程, 用于根据《UltraFast设计方法指南》( UG949 )中的建议快速完成时序收敛: 1初始设计检查:在实
    的头像 发表于 11-05 15:10 5001次阅读
    UltraFast设计方法<b class='flag-5'>时序</b>收敛快捷参考指南

    什么是时序分析?教你掌握FPGA时序约束

    时序分析本质上就是一种时序检查,目的是检查设计中所有的D触发器是否能够正常工作,也就是检查D触发器的同步端口(数据输入端口)的变化是否满足建
    发表于 07-14 10:48 3310次阅读
    什么是<b class='flag-5'>时序</b>分析?教你掌握FPGA<b class='flag-5'>时序</b>约束

    无法检查启用中断

    我使用MSSP1作为SPI从机。在MCC-&GT;MSSP1-& GT寄存器中,我不能检查应该启用中断的SSPI框,而不是BCI框。如果我进入中断模块,它将不允许我检查CCP1和CCP2
    发表于 11-16 15:01

    时序约束的步骤分析

    FPGA中的时序问题是一个比较重要的问题,时序违例,尤其喜欢在资源利用率较高、时钟频率较高或者是位宽较宽的情况下出现。建立时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯片电路时序
    的头像 发表于 12-23 07:01 2152次阅读
    <b class='flag-5'>时序</b>约束的<b class='flag-5'>步骤</b>分析

    正点原子FPGA静态时序分析与时序约束教程

    静态时序分析是检查芯片时序特性的一种方法,可以用来检查信号在芯片中的传播是否符合时序约束的要求。相比于动态
    发表于 11-11 08:00 63次下载
    正点原子FPGA静态<b class='flag-5'>时序</b>分析与<b class='flag-5'>时序</b>约束教程

    VIVADO中时序报告中WNS、WHS、TNS、THS有什么含义

    。 WNS 代表最差时序裕量 (Worst Negative Slack) TNS 代表总的时序裕量 (Total Negative Slack),也就是
    的头像 发表于 10-21 14:32 2.4w次阅读
    VIVADO中<b class='flag-5'>时序</b>报告中WNS、WHS、TNS、THS有什么含义

    FPGA设计之时序约束四大步骤

    本文章探讨一下FPGA的时序约束步骤,本文章内容,来源于配置的明德扬时序约束专题课视频。
    发表于 03-16 09:17 3567次阅读
    FPGA设计之<b class='flag-5'>时序</b>约束四大<b class='flag-5'>步骤</b>

    FPGA设计之时序约束

    上一篇《FPGA时序约束分享01_约束四大步骤》一文中,介绍了时序约束的四大步骤
    发表于 03-18 10:29 1661次阅读
    FPGA设计之<b class='flag-5'>时序</b>约束

    浅谈FPGA的时序约束四大步骤

    很多读者对于怎么进行约束,约束的步骤过程有哪些等,不是很清楚。明德扬根据以往项目的经验,把时序约束的步骤,概括分成四大步
    的头像 发表于 07-02 10:56 5537次阅读
    浅谈FPGA的<b class='flag-5'>时序</b>约束四大<b class='flag-5'>步骤</b>

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

    描述设计时序时,所有的时序检查都有一个参考事件(reference event)和一个数据事件(data event),数据事件常常是数据信号,而参考事件常常是时钟信号,它们通过一个布尔表达式相联接,还包括一个可选的notifi
    的头像 发表于 10-19 09:47 4044次阅读

    时序约束连载02~时序例外

    本文继续讲解时序约束的第四大步骤——时序例外
    的头像 发表于 07-11 17:17 705次阅读
    <b class='flag-5'>时序</b>约束连载02~<b class='flag-5'>时序</b>例外

    有源差分探头的电压限定和检查步骤

    有源差分探头的电压限定和检查步骤
    的头像 发表于 08-15 15:40 669次阅读
    有源差分探头的电压限定和<b class='flag-5'>检查</b><b class='flag-5'>步骤</b>

    PLC时序图的设计步骤

    电器硬件的工作中而引申出来的,借用它可以分析与确定相关的逻辑量间的时序关系。采用时序图法设计 PLC 程序的一般步骤如下:
    的头像 发表于 10-05 09:55 4997次阅读

    电源时序器最简单三个步骤是什么

    电源时序器是一种用于控制多个电源设备按特定顺序开启和关闭的设备。它可以广泛应用于各种电子设备、舞台音响、照明系统等领域。以下是电源时序器最简单三个步骤的介绍: 连接电源时序器 在开始使
    的头像 发表于 07-08 14:39 1223次阅读