0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

啟用負(fù)時(shí)序檢查的步驟

sally100 ? 來源:數(shù)字ICer ? 作者:數(shù)字ICer ? 2022-10-19 09:46 ? 次閱讀

timing check

描述設(shè)計(jì)時(shí)序時(shí),所有的時(shí)序檢查都有一個(gè)參考事件(reference event)和一個(gè)數(shù)據(jù)事件(data event),數(shù)據(jù)事件常常是數(shù)據(jù)信號(hào),而參考事件常常是時(shí)鐘信號(hào),它們通過一個(gè)布爾表達(dá)式相聯(lián)接,還包括一個(gè)可選的notifier寄存器選項(xiàng),這個(gè)寄存器用來打印錯(cuò)誤信息或者傳播X態(tài)。

檢查時(shí)序窗口的穩(wěn)定性,包括: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 的數(shù)值是從SDF 文件取出反標(biāo)到網(wǎng)表上的。

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

當(dāng)reference_event time - limit < data_event time < reference_event time時(shí),就會(huì)報(bào)告setup time violations。

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

當(dāng)reference_event time < data_event time < reference_event time + limit時(shí),就會(huì)報(bào)告hold time violations。

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

setup和$hold 兩者的聯(lián)合。

例如:

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要在時(shí)鐘上升沿10ns保持穩(wěn)定(假設(shè)時(shí)間單位是ns),在clk上升沿之后11ns內(nèi)保持穩(wěn)定;如果在時(shí)鐘clk上升沿到來之前,data小于10ns或時(shí)鐘clk上升沿到來之之后小于11ns,則為時(shí)序違例;

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

Positive Setup and Hold Limits

上圖中,可見,

對(duì)于setup檢查Data Event 要早于 Clock Event;

對(duì)于hold 檢查Data Event 要晚于 Clock Event;

符合這種情況的時(shí)序,setup limit 和 hold limit 用正值來表示。

setup為負(fù)值,hold都為正值:

在討論這個(gè)問題之前需要弄明白,我們現(xiàn)在所說的setup hold timing check是針對(duì)std cell的,在實(shí)際的std cell中不僅僅有DFF還有一些buffer之類的cell。

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

一個(gè)典型的std cell的簡(jiǎn)化結(jié)構(gòu)如上圖所示,D1和D2表示兩個(gè)delay cell。而實(shí)際上我們要保證的是DFF的setup 和hold timing check是正值,由于D1和D2兩個(gè)cell的delay不同就導(dǎo)致了在對(duì)std cell做timing check時(shí)出現(xiàn)了負(fù)值的timing check。再次強(qiáng)調(diào),這里的負(fù)值的timing check是針對(duì)std cell的并不是針對(duì)DFF的。

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

當(dāng)標(biāo)準(zhǔn)單元內(nèi)部clk上有較長(zhǎng)的延遲時(shí),對(duì)于setup檢查Data Event就可以晚一些來,如果晚于Clock Event(時(shí)刻為 0),用負(fù)值來表示。

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

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

Negative Setup Limit

setup為正值,hold都為負(fù)值:

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


當(dāng)標(biāo)準(zhǔn)單元內(nèi)部data上有較長(zhǎng)的延遲時(shí),對(duì)于hold檢查Data Event就需要早一些來,如果早于Clock Event(時(shí)刻為 0),用負(fù)值來表示。$setuphold (posedge clock, data, 31, -10, notifyreg);

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

Negative Hold Limit

需要注意的是不論setup 或者h(yuǎn)old出現(xiàn)負(fù)值,但setup和hold的和必須是正值。這是因?yàn)閟etup必然要發(fā)生在hold的前面。

$recrem

復(fù)位信號(hào)的恢復(fù)時(shí)間檢查:

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

當(dāng)data_event time - limit < reference_event time < data_event time時(shí),就會(huì)報(bào)告recovery time violations。

復(fù)位信號(hào)的移除時(shí)間檢查

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

當(dāng)data_event time < reference_event time < data_event time + limit時(shí),就會(huì)報(bào)告removal time violations。

復(fù)位信號(hào)的恢復(fù)/移除時(shí)間檢查:

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

$recrem是$recovery和$removal兩者的聯(lián)合。

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

數(shù)據(jù)事件常常是時(shí)鐘信號(hào),而參考事件常常是控制信號(hào),比如清除信號(hào)或者置位信號(hào),如下圖:

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

啟用負(fù)時(shí)序檢查

當(dāng)時(shí)序存在負(fù)值時(shí),必須要用 recrem 來表示;而不能用單獨(dú)的 hold,removal;

同時(shí)使用負(fù)時(shí)序檢查,必須在編譯設(shè)計(jì)時(shí)包含+neg_tchk和-negdelay選項(xiàng)。如果省略此選項(xiàng),VCS將將所有負(fù)限制更改為0。

如果在+neg_tchk選項(xiàng)中包含 +no_notifier選項(xiàng),則表示notifer寄存器不進(jìn)行翻轉(zhuǎn),X態(tài)不會(huì)傳播,但是vcs還是會(huì)報(bào)告timing violation;

相反,如果在+neg_tchk選項(xiàng)中包含+no_tchk_msg選項(xiàng),則vcs不報(bào)告timing violation。但VCS仍然會(huì)創(chuàng)建時(shí)鐘和數(shù)據(jù)信號(hào)的延遲,并在存在時(shí)序違例時(shí)翻轉(zhuǎn)notifer寄存器。

+notimingcheck 表示在vcs編譯過程中不進(jìn)行 setuphold,recrem 等函數(shù)的編譯,vcs產(chǎn)生delayed_reference_signal 和delayed_reference_data但是不會(huì)去標(biāo)記這些delay的值,從而不進(jìn)行任何的timing檢查。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120385
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    79

    瀏覽量

    9611
  • 時(shí)鐘信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    448

    瀏覽量

    28568
  • dff
    dff
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    3418

原文標(biāo)題:負(fù)時(shí)序檢查 Negative Timing Checks

文章出處:【微信號(hào):數(shù)字ICer,微信公眾號(hào):數(shù)字ICer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    靜態(tài)時(shí)序的分析原理及詳細(xì)過程

    靜態(tài)時(shí)序分析是檢查IC系統(tǒng)時(shí)序是否滿足要求的主要手段。以往時(shí)序的驗(yàn)證依賴于仿真,采用仿真的方法,覆蓋率跟所施加的激勵(lì)有關(guān),有些時(shí)序違例會(huì)被忽
    的頭像 發(fā)表于 11-25 11:03 ?9964次閱讀
    靜態(tài)<b class='flag-5'>時(shí)序</b>的分析原理及詳細(xì)過程

    UltraFast設(shè)計(jì)方法時(shí)序收斂快捷參考指南

    《UltraFast 設(shè)計(jì)方法時(shí)序收斂快捷參考指南》提供了以下分步驟流程, 用于根據(jù)《UltraFast設(shè)計(jì)方法指南》( UG949 )中的建議快速完成時(shí)序收斂: 1初始設(shè)計(jì)檢查:在實(shí)
    的頭像 發(fā)表于 11-05 15:10 ?5013次閱讀
    UltraFast設(shè)計(jì)方法<b class='flag-5'>時(shí)序</b>收斂快捷參考指南

    什么是時(shí)序分析?教你掌握FPGA時(shí)序約束

    時(shí)序分析本質(zhì)上就是一種時(shí)序檢查,目的是檢查設(shè)計(jì)中所有的D觸發(fā)器是否能夠正常工作,也就是檢查D觸發(fā)器的同步端口(數(shù)據(jù)輸入端口)的變化是否滿足建
    發(fā)表于 07-14 10:48 ?3361次閱讀
    什么是<b class='flag-5'>時(shí)序</b>分析?教你掌握FPGA<b class='flag-5'>時(shí)序</b>約束

    無法檢查啟用中斷

    我使用MSSP1作為SPI從機(jī)。在MCC-&GT;MSSP1-& GT寄存器中,我不能檢查應(yīng)該啟用中斷的SSPI框,而不是BCI框。如果我進(jìn)入中斷模塊,它將不允許我檢查CCP1和CCP2
    發(fā)表于 11-16 15:01

    時(shí)序約束的步驟分析

    FPGA中的時(shí)序問題是一個(gè)比較重要的問題,時(shí)序違例,尤其喜歡在資源利用率較高、時(shí)鐘頻率較高或者是位寬較寬的情況下出現(xiàn)。建立時(shí)間和保持時(shí)間是FPGA時(shí)序約束中兩個(gè)最基本的概念,同樣在芯片電路時(shí)序
    的頭像 發(fā)表于 12-23 07:01 ?2156次閱讀
    <b class='flag-5'>時(shí)序</b>約束的<b class='flag-5'>步驟</b>分析

    正點(diǎn)原子FPGA靜態(tài)時(shí)序分析與時(shí)序約束教程

    靜態(tài)時(shí)序分析是檢查芯片時(shí)序特性的一種方法,可以用來檢查信號(hào)在芯片中的傳播是否符合時(shí)序約束的要求。相比于動(dòng)態(tài)
    發(fā)表于 11-11 08:00 ?63次下載
    正點(diǎn)原子FPGA靜態(tài)<b class='flag-5'>時(shí)序</b>分析與<b class='flag-5'>時(shí)序</b>約束教程

    VIVADO中時(shí)序報(bào)告中WNS、WHS、TNS、THS有什么含義

    。 WNS 代表最差負(fù)時(shí)序裕量 (Worst Negative Slack) TNS 代表總的負(fù)時(shí)序裕量 (Total Negative Slack),也就是
    的頭像 發(fā)表于 10-21 14:32 ?2.4w次閱讀
    VIVADO中<b class='flag-5'>時(shí)序</b>報(bào)告中WNS、WHS、TNS、THS有什么含義

    FPGA設(shè)計(jì)之時(shí)序約束四大步驟

    本文章探討一下FPGA的時(shí)序約束步驟,本文章內(nèi)容,來源于配置的明德?lián)P時(shí)序約束專題課視頻。
    發(fā)表于 03-16 09:17 ?3581次閱讀
    FPGA設(shè)計(jì)之<b class='flag-5'>時(shí)序</b>約束四大<b class='flag-5'>步驟</b>

    FPGA設(shè)計(jì)之時(shí)序約束

    上一篇《FPGA時(shí)序約束分享01_約束四大步驟》一文中,介紹了時(shí)序約束的四大步驟。
    發(fā)表于 03-18 10:29 ?1673次閱讀
    FPGA設(shè)計(jì)之<b class='flag-5'>時(shí)序</b>約束

    淺談FPGA的時(shí)序約束四大步驟

    很多讀者對(duì)于怎么進(jìn)行約束,約束的步驟過程有哪些等,不是很清楚。明德?lián)P根據(jù)以往項(xiàng)目的經(jīng)驗(yàn),把時(shí)序約束的步驟,概括分成四大步
    的頭像 發(fā)表于 07-02 10:56 ?5554次閱讀
    淺談FPGA的<b class='flag-5'>時(shí)序</b>約束四大<b class='flag-5'>步驟</b>

    如何檢查時(shí)序窗口的穩(wěn)定性

    描述設(shè)計(jì)時(shí)序時(shí),所有的時(shí)序檢查都有一個(gè)參考事件(reference event)和一個(gè)數(shù)據(jù)事件(data event),數(shù)據(jù)事件常常是數(shù)據(jù)信號(hào),而參考事件常常是時(shí)鐘信號(hào),它們通過一個(gè)布爾表達(dá)式相聯(lián)接,還包括一個(gè)可選的notifi
    的頭像 發(fā)表于 10-19 09:47 ?4148次閱讀

    時(shí)序約束連載02~時(shí)序例外

    本文繼續(xù)講解時(shí)序約束的第四大步驟——時(shí)序例外
    的頭像 發(fā)表于 07-11 17:17 ?716次閱讀
    <b class='flag-5'>時(shí)序</b>約束連載02~<b class='flag-5'>時(shí)序</b>例外

    有源差分探頭的電壓限定和檢查步驟

    有源差分探頭的電壓限定和檢查步驟
    的頭像 發(fā)表于 08-15 15:40 ?680次閱讀
    有源差分探頭的電壓限定和<b class='flag-5'>檢查</b><b class='flag-5'>步驟</b>

    PLC時(shí)序圖的設(shè)計(jì)步驟

    電器硬件的工作中而引申出來的,借用它可以分析與確定相關(guān)的邏輯量間的時(shí)序關(guān)系。采用時(shí)序圖法設(shè)計(jì) PLC 程序的一般步驟如下:
    的頭像 發(fā)表于 10-05 09:55 ?5068次閱讀

    電源時(shí)序器最簡(jiǎn)單三個(gè)步驟是什么

    電源時(shí)序器是一種用于控制多個(gè)電源設(shè)備按特定順序開啟和關(guān)閉的設(shè)備。它可以廣泛應(yīng)用于各種電子設(shè)備、舞臺(tái)音響、照明系統(tǒng)等領(lǐng)域。以下是電源時(shí)序器最簡(jiǎn)單三個(gè)步驟的介紹: 連接電源時(shí)序器 在開始使
    的頭像 發(fā)表于 07-08 14:39 ?1265次閱讀