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





审核编辑:刘清

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

    关注

    30

    文章

    5037

    浏览量

    117765
  • VCS
    VCS
    +关注

    关注

    0

    文章

    78

    浏览量

    9497
  • 时钟信号
    +关注

    关注

    4

    文章

    374

    浏览量

    28084
  • dff
    dff
    +关注

    关注

    0

    文章

    26

    浏览量

    3290

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    8 忠告 FPGA系统设计时序检查问题

    ?FPGA高手老影关于FPGA时序检查中的八大忠告。忠告一、如果时序差的不多,在1NS以内,可以通过修改综合,布局布线选项来搞定,如果差的多,就得动代码。 忠告二、看下时序报告,挑一个
    发表于 06-07 15:52

    无法检查启用中断

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

    怎么为RAM和闪存区启用ECC来检查内存损坏

    大家好,我正在使用SPC560B54L5板和SPC studio V5.2.1。 我想为RAM和闪存区启用ECC来检查内存损坏。我在ECR寄存器中启用了1位和2位ECC的相应位,但是我无法启用
    发表于 05-24 13:59

    pcb检查标准

    pcb检查标准,即 pcb check list . 步骤非常之详细,按着步骤一步一步的检查就可以达到标准的。
    发表于 06-16 17:54 0次下载

    时序约束的步骤分析

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

    检查PCB中的短路的四个步骤

    在PCB设计的时候如何检查PCB中的短路,您可以采取以下重要步骤检查PCB中的短路情况:1、在PCB中发现短路;2、在电路板上测试电路短路;3、在PCB上查找故障组件;4、破坏性地测试PCB
    的头像 发表于 02-09 09:59 1w次阅读

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

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

    FPGA设计之时序约束

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

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

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

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

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

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

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

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

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

    PLC时序图的设计步骤

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