衡阳派盒市场营销有限公司

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

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

3天內不再提示

Verdi環境配置、生成波形的方法

sanyue7758 ? 來源:芯片掃地僧ICer ? 2023-05-29 09:48 ? 次閱讀

Verdi是一個功能強大的debug工具,可以配合不同的仿真軟件進行debug,很多企業常用的就是VCS+Verdi或或者Xcelium(xrun)+Verdi的方式進行代碼的仿真與檢查,Verdi使用情形主要是IC驗證工程師(Debug),IC設計工程師(Review)。總之,Verdi很重要,作為一名ICer要是不會用Verdi,確實說不過去。

一、Verdi環境配置

(一)公司 - 一般拿來直接用

1. 在芯片設計公司中,九成公司應該都配備了Verdi,一般都會放在公司服務器目錄的Tools目錄下,我們可以通過which命令查看任何公司購買的EDA Tools所在路徑,查看各種版本/對應文檔/配置等:

247adb8c-fd3e-11ed-90ce-dac502259ad0.png

2. 有些時候,我們需要切換Verdi版本,來滿足不同項目或其他需求,在.cshrc中配置 或 直接module load 對應Verdi版本,最后module list查看是否load成功。

24d32a4e-fd3e-11ed-90ce-dac502259ad0.png

(二)其他 - 需自己摸索配置再用 (考慮排版+代碼風格,直接上圖)

25303284-fd3e-11ed-90ce-dac502259ad0.png ? ?

二、配置波形文件“三方法”“八奇技”

FSDB(FastSignal Database)是Verdi支持的文件格式,用于保存仿真產生的信號波形。 據Verdi文檔說明,FSDB比標準的VCD格式節省磁盤空間,處理速度更快。

(一)常用“三方法”:

1. (最常用) 一般是在testbench(驗證環境,簡稱tb)中的top.sv文件里,創建個initial塊結合$fsdbDumpxxx()命令來配置:

2591cd28-fd3e-11ed-90ce-dac502259ad0.png

提醒:使用這種方法,vcs編譯前需要添加-debug_access選項。

2. (不常用) VCS添加編譯選項"+vcs+fsdbon":

這樣指定仿真過程生成.fsdb格式的波形,默認則保存成名為novas.fsdb的波形文件;

意的是,仿真過程會將整個design給dump下來,同時會自動添加 -debug_access 選項。

另外,配置過程中若出錯,首先檢查一下LD_LIBRARY_PATH是否配置對,目錄下有沒有Verdi需要的庫文件xxx.so(靜態庫),pli.a(動態庫),xxx.tab(表文件 for VCS)等,一般都是這里沒配對導致沒生成波形而報錯;

提醒:vcs+fsdbon和tb中用$fsdbdumpvar()選一種方式即可;

3. (不常用) 使用UCLI命令: UCLI:Unified Command Line Interface

UCLI其實就是vcs的命令交互模式,需要在編譯時加入參數 (-ucli) 以開啟ucli,否則ucli交互時只能使用簡單的'run'、'dump'、'quit'命令。

啟動方式例如:./simv -ucli

該方法與方法1基本一樣,均是使用fsdbDumpvars/fsdbDumpfile等命令,不同之處在于使用的方式和便捷程度,與方法1相比,該方法可以在不重新編譯的情況下,通過修改.ucli.cmd文件中的命令,來指定需要dump波形的模塊和層級,從而節省編譯帶來的資源消耗。

得注意的是,使用fsdbDumpvars/fsdbDumpfile等命令時,不需要像方法1使用時,前方使用符號: $。

執行仿真的過程中,通過./simv -ucli -i.ucli.cmd方式給入,.ucli.cmd(名字隨便取,但格式不能變)中存放命令舉例如下:

25aca94a-fd3e-11ed-90ce-dac502259ad0.png

提醒:使用這種方法,vcs編譯前需要添加-debug_access選項。

(二)常用命令“八奇技”(結合例子看容易理解):

1. $fsdbDumpon - 打開 FSDB dumping;

2. $fsdbDumpoff - 關閉 FSDB dumping; 上述兩個命令,一般搭配wait()函數使用,更加靈活,eg:

25e6bcfc-fd3e-11ed-90ce-dac502259ad0.png

表示之前未dump波形,直到等到o_xxx_cnt==1024時,才開始dump波形;

3. $fsdbDumpfile("fsdb_name", limit_size) - 指定dump文件;

fsdb_name - 表示指定的fsdb文件名,如"ip.fsdb"
limit_size - 表示dump波形的最大size(多少MB)- 可不配置

4. $fsdbDumpvars(depth,instance, "option=") - dump指定模塊的信號; 這個命令可以多次使用,但一般不使用多次,使用多次目的是:想用來dump不同instance的波形,想達到相同目的其實有更加靈活的方法 ——“建立dump_scope.list + $fsdbDumpvarsToFile()” (后面會介紹);

depth - 0 表示dump instance以下所有層級的信號(常用) - 1 表示只dump instance這一層的信號
instance -指定dump的hierarchy,如 dut.top.xxx
option - dump時可以選擇的一些選項:- 可不配置
"+mda" - 表示dump memory或者MDA(多維數據)的數據;
"+packedmda" - 表示dump 壓縮的memory數據;
"+functions" - 表示dump function和task里的信號;
"+all" -表示dump all;
"+Reg_Only" - 表示只dump reg類型的數據;
"+strength" - 表示開啟強力dump開關;
"+struct" - 表示dump struct數據(默認開);
"+power" - 表示dump power相關信號的數據(默認開);
"+fsdbfile" - 表示直接dump指定的hierarchy的fsdb文件名字,eg: 260aeed8-fd3e-11ed-90ce-dac502259ad0.png

5. $fsdbDumpMDA(depth, instance,"options") - dump指定模塊中的多維數組,內部參數含義同上; eg_1:如果想更方便,可直接什么參數都不配,即默認都dump

262e2efc-fd3e-11ed-90ce-dac502259ad0.png

6. $fsdbDumpSVA(depth, instance, "option") - dump指定模塊中的assertion,內部參數含義同上; eg_1:將該instance (top)下所有assert全部dump到SVA.fsdb中

26552746-fd3e-11ed-90ce-dac502259ad0.png

eg_2:如果想更方便,可直接什么參數都不配,即默認都dump

268425a0-fd3e-11ed-90ce-dac502259ad0.png

7.$fsdbAutoSwitchDumpfile(file_size,"fsdb_name",number_of_files,"log_file_name", "+fsdb+no_overwrite") - 波形過大/資源緊張情況,靈活使用拆分Dump波形很有用

file_size 波形文件大小限制,單位為MB,最小為10M,若值小于10MB則默認10MB;
"fsdb_name" 波形文件的名字,在實際加載波形時,文件名為fsdb_name_000.fsdb, fsdb_name_001.fsdb …;
number_of_files 最多可以加載多少個fsdb_size這么大的波形文件,如果寫為0,則默認沒有限制;
"log_file_name" 指定log文件的名字,log文件中會記錄每段波形的起始和中止時間; - 可不配置
"+fsdb+no_overwrite" 當number_of_files限制的個數達到時停止dump波形,反之,一旦超出限制,會從頭dump,這樣會一定程度上覆蓋掉起初的波形文件;- 可不配置

eg_1:單個波形文件為500MB,最大可以加載10個這么大的文件,每段波形的起始和中止時間記錄在fsdb.log中,并具備防overwrite的限制;

26ab07ec-fd3e-11ed-90ce-dac502259ad0.png

8. $fsdbDumpvarsToFile("./dump_scope.list"); - 將需要dump的hierarchy以及depth放到一個文件里吃進來,波形過大/資源緊張情況,靈活使用選取必要波形Debug; ./ - 表示當前路徑,也就是dump_scope.list要與top.sv在同一路徑,當然也可以靈活改變路徑; eg_1:dump_scope.list (0/1代表深度,用法通上述函數一致;#用于注釋)

26d11752-fd3e-11ed-90ce-dac502259ad0.png





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IC設計
    +關注

    關注

    38

    文章

    1302

    瀏覽量

    104287
  • EDA工具
    +關注

    關注

    4

    文章

    268

    瀏覽量

    31937
  • VCS
    VCS
    +關注

    關注

    0

    文章

    80

    瀏覽量

    9647

原文標題:Verdi環境配置、生成波形的“三方法”和“八奇技”

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

收藏 人收藏

    評論

    相關推薦

    請教VCS和verdi怎么聯合使用

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

    VCS仿真卡住,為什么無法生成verdi波形文件呢?

    在make com編譯成功后,terminal卡住了一直沒有反應,這是什么情況有大佬知道嗎?VCS仿真卡住,為什么無法生成verdi波形文件呢?
    發表于 06-21 08:14

    怎么修改verdi軟件波形背景顏色?

    畢業設計中用到verdi波形,需要波形窗口的背景最好為白色,默認為黑色。怎么修改設置,謝謝在線等,經過半天的嘗試,和各位大神的請教,終于搞定了,拿出來和各位大神分享,希望更多的人參與到分享中來,謝謝[/td]
    發表于 06-23 10:32

    Verdi使用技巧 連續有效信號量測方法

    Verdi自動化調試系統是Verdi SoC調試平臺的核心,它支持對所有設計和驗證流程進行全面的調試。它包括強大的技術,幫助您理解復雜和不熟悉的設計行為,讓困難和乏味的調試過程自動化,并能讓多樣和復雜的設計環境一致化。
    的頭像 發表于 05-15 15:46 ?9996次閱讀
    <b class='flag-5'>Verdi</b>使用技巧 連續有效信號量測<b class='flag-5'>方法</b>

    vcs和verdi的調試及聯合仿真案例

    若想用Verdi觀察波形,需要在仿真時生成fsdb文件,而fsdb在vcs或者modelsim中的生成是通過兩個系統調用$fsdbDumpfile $fsdbDumpvars來實現的。
    的頭像 發表于 09-22 15:01 ?8737次閱讀

    如何通過自動化腳本實現Questasim和Verdi的聯合仿真

    Verdi是用來仿真以及debug波形的工具,但它不能夠用來編譯verilog和systemverilog文件,所以需要借助第三方EDA工具去做編譯的工作。 這里主要分享一下使用questasim
    的頭像 發表于 06-13 17:00 ?4682次閱讀
    如何通過自動化腳本實現Questasim和<b class='flag-5'>Verdi</b>的聯合仿真

    全網最實用的Verdi教程1

    過程中,常常用來調試(debug)一些錯誤的情況。Verdi既可以閱讀調試代碼,又可以查看波形,包括數字設計的波形和模擬設計的波形
    的頭像 發表于 05-05 14:49 ?1.7w次閱讀
    全網最實用的<b class='flag-5'>Verdi</b>教程1

    全網最實用的Verdi教程2

    過程中,常常用來調試(debug)一些錯誤的情況。Verdi既可以閱讀調試代碼,又可以查看波形,包括數字設計的波形和模擬設計的波形
    的頭像 發表于 05-05 14:53 ?9115次閱讀
    全網最實用的<b class='flag-5'>Verdi</b>教程2

    全網最實用的Verdi教程3

    過程中,常常用來調試(debug)一些錯誤的情況。Verdi既可以閱讀調試代碼,又可以查看波形,包括數字設計的波形和模擬設計的波形
    的頭像 發表于 05-05 14:53 ?5947次閱讀
    全網最實用的<b class='flag-5'>Verdi</b>教程3

    如何用vcs+verdi仿真Verilog文件并查看波形呢?

    我們以一個簡單的加法器為例,來看下如何用vcs+verdi仿真Verilog文件并查看波形
    的頭像 發表于 05-08 16:00 ?6550次閱讀
    如何用vcs+<b class='flag-5'>verdi</b>仿真Verilog文件并查看<b class='flag-5'>波形</b>呢?

    如何用vcs+verdi仿真Verilog文件

    我們以一個簡單的加法器為例,來看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件內容如下:
    的頭像 發表于 05-11 17:03 ?1994次閱讀
    如何用vcs+<b class='flag-5'>verdi</b>仿真Verilog文件

    淺析后仿波形處理

    我們知道,Verdi橫空出世,大大加速了數字設計驗證的debug的效率,verdi波形格式是fsdb,壓縮率高,逐步取代了VCD波形,但是有些芯片設計環節仍然需要VCD。
    的頭像 發表于 08-12 10:02 ?2470次閱讀
    淺析后仿<b class='flag-5'>波形</b>處理

    生成SPWM波形方法

    生成SPWM波形方法? SPWM波形產生是一種常見的數字信號生成技術,用于控制交流電子設備的輸出電壓或電流的形狀,使其接近正弦波。 SPW
    的頭像 發表于 02-06 13:52 ?3188次閱讀

    任意波形發生器中波形生成方法

    中,任意波形發生器都發揮著不可或缺的作用。本文將詳細探討任意波形發生器中波形生成方法,以期為相關領域的研究和應用提供參考。
    的頭像 發表于 05-29 17:13 ?1064次閱讀

    PWM信號生成方法 PWM調制原理講解

    信號生成方法 PWM信號的生成方法多種多樣,主要包括以下幾種: 波形發生器 : 波形發生器是產生PWM信號的一種簡單直接的方式。 通過在波形
    的頭像 發表于 11-28 16:34 ?2022次閱讀
    易胜国际| 巴登娱乐城| 百家乐玩法教程| 澳门百家乐官网现场真人版| 国际娱百家乐官网的玩法技巧和规则| 顶级赌场官方下载| 澳门百家乐单注下| 百家乐自动下注| 大连百家乐官网食品| 百家乐官网赌缆注码运用| 百家乐分路单| 百家乐电话投注怎么玩| 网上百家乐哪里| 龍城百家乐官网的玩法技巧和规则| 百家乐官网论坛博彩拉| 真人百家乐官网作假视频| 网络赌场| 御匾会娱乐城| 大发888棋牌游戏下载| 大发888熊之舞怎么玩| 金木棉百家乐官网网络破解| bet365主页器| 甘孜| 澳门百家乐网40125| 优博家百家乐娱乐城| 黄金城百家乐官网苹果版| 百利宫百家乐现金网| 虎和鼠做生意和财吗| 百家乐输一押二| 大发888真人真钱| 顶级赌场 足彩分析| 奇台县| 赌场百家乐官网是如何玩| 百家乐官网群boaicai| 百家乐官网投注软件有用吗| 百家乐不能视频| 华侨人百家乐的玩法技巧和规则| 百家乐筹码桌布| 百家乐游戏机图片| 百家乐技巧开户| 会东县|