在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

聊聊使用Verdi去分析NBA Delay的問題

冬至子 ? 來源:icsoc ? 作者:韓京飛 ? 2023-06-09 16:28 ? 次閱讀

在學習和使用 Verilog 的過程中,難免會碰到需要深入理解仿真器調(diào)度的問題。今天這篇聊聊使用 Verdi 去分析 NBA Delay 的問題。

NBA 就是 NonBlocking Assignment,非阻塞賦值 的縮寫。它通常用來描述一個用時鐘沿觸發(fā)的寄存器。在 Verilog 普及早期,人們通常會在 NBA 的<= 之后加個單位延時#1來解決早期仿真器行為不一致的問題。

所謂習慣成自然,NBA Unit Delay 在某些設計中一直沿用下來,那么如何去理解這個延時的作用呢?SNUG 上的知名作者 Clifford E. Cummings 在 2002 年有篇文章闡述的挺詳細,感興趣的朋友可以搜來研究,不再贅述。

下面給出一些代碼片斷,同樣感興趣的朋友可以自己完善并用 VCS 仿真生成波形,然后用 Verdi 打開。

首先創(chuàng)建三個時鐘,注意兩個二分頻時鐘的創(chuàng)建方式不同。

always #(10/2) clk = ~clk;
  always #(20/2) clk_div2_direct = ~clk_div2_direct;
  
  always @ ( posedge clk or negedge rst_n ) begin
    if ( ~ rst_n ) begin
      clk_div2  <= 1'b0;
    end
    else begin
      clk_div2  <= ~clk_div2;
    end
  end

然后用 clk 觸發(fā)一個不停翻轉(zhuǎn)的寄存器 d1,再分別用兩個二分頻時鐘去采樣,保存在 d5 和 d6 中。

always @ ( posedge clk or negedge rst_n ) begin
    if ( ~ rst_n ) begin
      d1  <= 1'b0;
    end
    else begin
      d1  <= ~d1;
    end
  end
  
  always @ ( posedge clk_div2 or negedge rst_n ) begin
    if ( ~ rst_n ) begin
      d5 <= 1'b0;
    end
    else begin
      d5 <= d1;
    end
  end

  always @ ( posedge clk_div2_direct or negedge rst_n ) begin
    if ( ~ rst_n ) begin
      d6 <= 1'b0;
    end
    else begin
      d6 <= d1;
    end
  end

用 VCS 仿真的時候,加上編譯時選項+fsdb+region和運行時選項+fsdb+delta

然后用 Verdi 打開生成的 fsdb 波形。正常的話,可以看到 d5 和 d6 的波形是完全不同的,一個是常0,一個是常1。

圖片

只從上圖分析的話,兩個二分頻時鐘的波形是完全一致的,被采樣的數(shù)據(jù)是同一個,那么采到的數(shù)據(jù)也應該是相同的。但我們知道這兩個二分頻時鐘的生成方式是不同的,那么不同在什么地方呢?

在 Verdi 的 nWave 窗口中選中 View - Expand Delta - Region Mode,把 Cursor 移動到二分頻時鐘的上升沿,然后點擊 Expand/Collapse Time at Cursor,簡單點的話直接按 w 鍵。

圖片

然后就可以看到這個仿真時刻的 Simulation Region,里面展示了各個 Event 和 Region 的關(guān)系。

圖片

這個例子中,只存在綠色的 Active Region 和 紅色的 NBA Region。在某些 glitch debug 的例子中,還能看到 Re-Active Region 和 Re-NBA Region。

Region 的展示可以幫助我們很好的理解 Verilog 規(guī)范中的定義的信號調(diào)度。

此外,Verdi 還可以通過點擊 Tools - Event Sequence 來顯示圖形化的 Event 序列。

圖片

圖片

Verdi 真得是很好很強大。

不過隨著工具的逐漸強大,站在工具背后的人呢?是在逐漸退化還是改變了進化方向?歡迎留言說說你的看法。

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

    關(guān)注

    31

    文章

    5357

    瀏覽量

    120586
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1018

    瀏覽量

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

    關(guān)注

    0

    文章

    80

    瀏覽量

    9625
  • Verdi
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

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

    關(guān)注

    0

    文章

    127

    瀏覽量

    17183
收藏 人收藏

    評論

    相關(guān)推薦

    請教VCS和verdi怎么聯(lián)合使用

    最近要用到VCS仿真后生成FSDB文件,然后在Verdi中進行自動偵錯,請問我怎么安裝Verdi這個軟件以及如何啟動license,并且怎么寫testbench文件才可以產(chǎn)生FSDB文件。請懂得人給我支支招,我也是剛開始學習這個軟件的使用。
    發(fā)表于 01-22 14:53

    NBA球員年薪影響因素分析方案

    利用可視化對NBA球員年薪影響因素進行分析
    發(fā)表于 08-08 10:35

    怎樣使用Makefile+VCS+Verdi做個簡單的Test Bench?

    怎樣使用Makefile+VCS+Verdi做個簡單的Test Bench?有哪些操作步驟?
    發(fā)表于 06-18 06:28

    Verdi工具怎么安裝?如何破解?

    本文介紹Verdi工具的安裝及破解過程
    發(fā)表于 06-21 07:15

    VCS+Verdi如何安裝?怎么破解?

    VCS+Verdi如何安裝?怎么破解?
    發(fā)表于 06-21 06:11

    Verdi 54v7 LINUX

    Verdi 54v7 LINUX
    發(fā)表于 03-25 13:19 ?9次下載

    烏拉戒指:助力NBA抗疫,爭取NBA復賽

    對很多人來說,沒有NBA的夏天是不完整的。好消息是,NBA在竭盡全力重啟停擺了將近4個月的2019-2020賽季;壞消息是,美國疫情再次加重,NBA多位球員的病毒檢測成陽性,復賽舉辦地奧蘭多的感染人數(shù)也在反彈,復賽有可能取消。
    的頭像 發(fā)表于 07-03 15:42 ?3199次閱讀

    stm32 delay文件總結(jié)

    stm32 delay文件總結(jié)delay.h#ifndef __DELAY_H#define __DELAY_H #include "sys.h" void
    發(fā)表于 12-24 19:36 ?6次下載
    stm32 <b class='flag-5'>delay</b>文件總結(jié)

    分享《verdi用法小結(jié)》的pdf

    分享Verdi用法小結(jié)的pdf文檔
    的頭像 發(fā)表于 02-18 20:21 ?1230次閱讀
    分享《<b class='flag-5'>verdi</b>用法小結(jié)》的pdf

    Verdi使用技巧(三)

    前一段時間IC君比較忙,沒有更新文章,最近稍微閑下來點,繼續(xù)更新Verdi相關(guān)的文章。
    的頭像 發(fā)表于 04-25 14:44 ?4781次閱讀
    <b class='flag-5'>Verdi</b>使用技巧(三)

    全網(wǎng)最實用的Verdi教程1

    Verdi是一個功能強大的debug工具,可以配合不同的仿真軟件進行debug,很多企業(yè)常用VCS+Verdi或者Xcelium/xrun+Verdi的方式進行代碼的仿真與檢查。Verdi
    的頭像 發(fā)表于 05-05 14:49 ?1.7w次閱讀
    全網(wǎng)最實用的<b class='flag-5'>Verdi</b>教程1

    全網(wǎng)最實用的Verdi教程2

    Verdi是一個功能強大的debug工具,可以配合不同的仿真軟件進行debug,很多企業(yè)常用VCS+Verdi或者Xcelium/xrun+Verdi的方式進行代碼的仿真與檢查。Verdi
    的頭像 發(fā)表于 05-05 14:53 ?8824次閱讀
    全網(wǎng)最實用的<b class='flag-5'>Verdi</b>教程2

    全網(wǎng)最實用的Verdi教程3

    Verdi是一個功能強大的debug工具,可以配合不同的仿真軟件進行debug,很多企業(yè)常用VCS+Verdi或者Xcelium/xrun+Verdi的方式進行代碼的仿真與檢查。Verdi
    的頭像 發(fā)表于 05-05 14:53 ?5788次閱讀
    全網(wǎng)最實用的<b class='flag-5'>Verdi</b>教程3

    Verdi環(huán)境配置、生成波形的方法

    Verdi是一個功能強大的debug工具,可以配合不同的仿真軟件進行debug,很多企業(yè)常用的就是VCS+Verdi或或者Xcelium(xrun)+Verdi的方式進行代碼的仿真與檢查
    的頭像 發(fā)表于 05-29 09:48 ?3997次閱讀
    <b class='flag-5'>Verdi</b>環(huán)境配置、生成波形的方法

    Verdi連續(xù)波激光器-Coherent

    描述: Verdi系列激光器,是基于OPSL專利技術(shù),是高功率的532nm綠光激光器。常用于鈦寶石激光器泵浦、全息、干涉、冷原子等領(lǐng)域。 Verdi系列激光器,是久負盛名的激光器,具有非常出色
    的頭像 發(fā)表于 06-30 09:47 ?550次閱讀
    <b class='flag-5'>Verdi</b>連續(xù)波激光器-Coherent
    主站蜘蛛池模板: 中文字幕二区| 国产精品久久自在自2021| 美女天天操| 欧美奇米| 福利社看片| 男人的视频网站| 欧美精品人爱a欧美精品| 年轻护士女三级| 俄罗斯美女在线观看一区| 亚洲狠狠婷婷综合久久久久图片| 香蕉久久影院| 欧美性色欧美a在线观看| 国产精品99r8在线观看| 999www成人免费视频| 天堂最新版在线地址| www.久操| 日本高清中文字幕在线观穿线视频 | 欧美αv日韩αv另类综合| 久久狠色噜噜狠狠狠狠97| 丁香六月在线| 天天影视网天天影网| 国产成 人 综合 亚洲网 | 操碰视频在线| 色精品视频| 欧美性猛交xxx嘿人猛交| 日本欧美视频| 性欧美日韩| 久久婷婷国产精品香蕉| ts国产| 狠狠干狠狠干| 免费无码看av的网站| 特黄特级高清免费视频毛片| 欧美日韩在线成人免费| 99久久99久久免费精品蜜桃| 久久久久久夜精品精品免费| 在线视频 亚洲| 乱色伦图片区| 亚洲1区2区3区4区| 亚洲 欧美 日韩 综合| 美女中出视频| ts人妖另类国产|