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

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

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

網(wǎng)表時(shí)序仿真案例:淺說$width語法

sanyue7758 ? 來源:IC的世界 ? 2024-03-01 09:46 ? 次閱讀

1.$width語法

verilog中,$width是時(shí)序檢查函數(shù),用于檢查脈沖的位寬是否符合要求。

$width ( reference_event , timing_check_limit , threshold [ , [ notify_reg ] ] ) ;

reference_event代表一個(gè)上升沿(下降沿)觸發(fā)事件。

語法中隱形地表達(dá)了data_event。

data event = reference event signal with opposite edge。

如果reference_event為上升沿,則最近的一個(gè)下降沿是data_event,兩者的時(shí)間間隔為脈沖寬度。

如果reference_event為下升沿,則最近的一個(gè)上降沿是data_event,兩者的時(shí)間間隔為脈沖寬度。

d410981c-d70d-11ee-a297-92fbcf53809c.png

圖1:event示意圖[1]

d428c5fe-d70d-11ee-a297-92fbcf53809c.png

圖2:參數(shù)說明[2]

d453a8a0-d70d-11ee-a297-92fbcf53809c.png

?期望的場景:脈沖寬度 >= limit

?不期望的場景:

?產(chǎn)生timing violation場景的:threshold < 脈沖寬度< limit

?不產(chǎn)生timing violation場景的:脈沖寬度

d466ece4-d70d-11ee-a297-92fbcf53809c.png

圖2:width檢測時(shí)序示意圖[1]

NOTE:很多時(shí)候threshold的值為0.

2.案例說明

此案例中,使用的仿真工具為VCS,limit為 6000ps。小于6000ps的脈沖位寬均產(chǎn)生了Timing violation。

threshold為2000ps,位寬小于threshold的脈沖也產(chǎn)生了Timing violation,此處檢查比協(xié)議要求得更加嚴(yán)格。

d477b600-d70d-11ee-a297-92fbcf53809c.png

"/auto/asic/design/try/top/rtl/width_tb.v", 34: Timing violation in width_tb
    $width( posedge clk:1000,  : 2000, limit: 6000 );




"/auto/asic/design/try/top/rtl/width_tb.v", 34: Timing violation in width_tb
    $width( posedge clk:5000,  : 10000, limit: 6000 );


$finish called from file "/auto/asic/design/try/top/rtl/width_tb.v", line 10.
$finish at simulation time               100000
           V C S   S i m u l a t i o n   R e p o r t

module width_tb;
   
      reg clk;
            
      initial begin
        $fsdbDumpfile("width_tb.fsdb");
        $fsdbDumpvars(0, width_tb);
        #100;
        $finish;
      end
      
      initial begin
        clk = 1'b0;
                #1;
        clk = 1'b1;
                #1;
        clk = 1'b0;
        #3;
        clk = 1'b1;
        #5;
        clk = 1'b0;
                #5;
        clk = 1'b1;
                #10;
        clk = 1'b0;
                #5;
        clk = 1'b1;
                #15;
        clk = 1'b0;
      end
      
      specify
        $width(posedge clk,6,2); 
      endspecify
   
   endmodule
   


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

    關(guān)注

    28

    文章

    1351

    瀏覽量

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

    關(guān)注

    0

    文章

    79

    瀏覽量

    9624
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    127

    瀏覽量

    17180
  • 時(shí)序仿真
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7446

原文標(biāo)題:網(wǎng)表時(shí)序仿真,淺說$width

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    功能仿真、綜合后仿真時(shí)序仿真

    功能仿真:可以驗(yàn)證代碼的邏輯性,不加任何的時(shí)延信息。仿真工具為modelsim(組合邏輯和時(shí)序邏輯都可以功能仿真),modelsim不能綜合。在modelsim中添加相應(yīng)的激勵(lì)信號,調(diào)
    發(fā)表于 08-23 16:57

    基于 FPAG xilinx vivado 仿真模式介紹

    除了可以輸出一個(gè)標(biāo)準(zhǔn)網(wǎng)文件以外,還可以輸出Verilog或者VHDL網(wǎng),其中標(biāo)準(zhǔn)網(wǎng)文件是用
    發(fā)表于 01-24 11:06

    PCB設(shè)計(jì)│網(wǎng)導(dǎo)入的雷區(qū),你還在踩?

    。本期學(xué)習(xí)重點(diǎn):1. 網(wǎng)的基本語法結(jié)構(gòu)2. 網(wǎng)導(dǎo)入的常見錯(cuò)誤本期學(xué)習(xí)難點(diǎn):1. 網(wǎng)
    發(fā)表于 08-06 11:05

    什么是Modelsim的功能仿真時(shí)序仿真?

    FPGA設(shè)計(jì)流程包括設(shè)計(jì)輸入,仿真,綜合,生成,板級驗(yàn)證等很多階段。在整個(gè)設(shè)計(jì)流程中,完成設(shè)計(jì)輸入并成功進(jìn)行編譯僅能說明設(shè)計(jì)符合一定的語法規(guī)范,并不能說明設(shè)計(jì)功能的正確性,這時(shí)就需要通過仿真對設(shè)計(jì)進(jìn)行驗(yàn)證。在FPGA 設(shè)計(jì)中,
    發(fā)表于 09-20 06:36

    請問用什么語法可以實(shí)現(xiàn)這個(gè)max=val?

    tina仿真網(wǎng)編譯報(bào)錯(cuò),我用電壓控制電壓源VCVS,EXXXn+n- in+in-gAIn,MAX=val在linux中,這種語法可以仿真
    發(fā)表于 06-25 06:30

    視覺模塊OpenMV淺說LED燈

    ,于是開啟了OpenMV的學(xué)習(xí)之路。這款視覺模塊對新手是很友好的,上手速度快,能夠快速應(yīng)用到項(xiàng)目中去。但入手這個(gè)模塊的前提是要知道Python的基本語法是使用。1學(xué)習(xí)的資源:(1)學(xué)習(xí)OpenMV這款視覺模塊最主要的場所是它的官網(wǎng)...
    發(fā)表于 07-20 06:59

    網(wǎng)仿真與RTL仿真相比有何優(yōu)勢

    網(wǎng)仿真與RTL仿真相比有何優(yōu)勢?“線與”邏輯是什么?
    發(fā)表于 11-04 06:23

    時(shí)序計(jì)算和Cadence仿真結(jié)果的運(yùn)用

    時(shí)序計(jì)算和Cadence 仿真結(jié)果的運(yùn)用中興通訊康訊研究所 EDA 設(shè)計(jì)部 余昌盛 劉忠亮摘要:本文通過對源同步時(shí)序公式的推導(dǎo),結(jié)合對SPECCTRAQuest 時(shí)序
    發(fā)表于 12-21 09:05 ?172次下載

    Modelsim的功能仿真時(shí)序仿真

    用ModelSim 進(jìn)行功能仿真,進(jìn)行功能仿真首先要檢查設(shè)計(jì)的語法是否正確;其次檢查代碼是否達(dá)到設(shè)計(jì)的功能要求。下文主要介紹仿真步驟和測試激勵(lì)的加載。
    發(fā)表于 11-13 15:35 ?9332次閱讀

    modelsim仿真詳細(xì)過程(功能仿真時(shí)序仿真

    modelsim仿真詳細(xì)過程(功能仿真時(shí)序仿真).ModelSim不僅可以用于數(shù)字電路系統(tǒng)設(shè)計(jì)的功能仿真,還可以應(yīng)用于數(shù)字電路系統(tǒng)設(shè)計(jì)的
    發(fā)表于 12-19 11:14 ?6.8w次閱讀
    modelsim<b class='flag-5'>仿真</b>詳細(xì)過程(功能<b class='flag-5'>仿真</b>與<b class='flag-5'>時(shí)序</b><b class='flag-5'>仿真</b>)

    基于ModelSim使用modelsim手動(dòng)時(shí)序仿真教程

    時(shí)序仿真與功能仿真的步驟大體相同,只不過中間需要添加仿真庫、網(wǎng)(.vo)文件和延時(shí)(.sdo)
    的頭像 發(fā)表于 07-23 11:55 ?2327次閱讀

    時(shí)序分析概念min pulse width介紹

    今天我們要介紹的時(shí)序分析概念是 **min pulse width** ,全稱為最小脈沖寬度檢查。這也是一種非常重要的timing arc check,經(jīng)常用在時(shí)序器件或者memory上面。
    的頭像 發(fā)表于 07-03 14:54 ?2921次閱讀
    <b class='flag-5'>時(shí)序</b>分析概念min pulse <b class='flag-5'>width</b>介紹

    時(shí)序仿真與功能仿真的區(qū)別在于

    時(shí)序仿真與功能仿真的區(qū)別在于 時(shí)序仿真與功能仿真是電子設(shè)計(jì)自動(dòng)化(EDA)中最常見的兩種
    的頭像 發(fā)表于 09-08 10:39 ?5621次閱讀

    時(shí)序仿真與功能仿真的區(qū)別有哪些?

    時(shí)序仿真與功能仿真的區(qū)別有哪些? 時(shí)序仿真和功能仿真都是電子設(shè)計(jì)自動(dòng)化(EDA)過程中的常見任務(wù)
    的頭像 發(fā)表于 09-17 14:15 ?6331次閱讀

    fpga時(shí)序仿真和功能仿真的區(qū)別

    FPGA時(shí)序仿真和功能仿真在芯片設(shè)計(jì)和驗(yàn)證過程中各自扮演著不可或缺的角色,它們之間存在明顯的區(qū)別。
    的頭像 發(fā)表于 03-15 15:28 ?2310次閱讀