IC開發——verdi基本用法


1. 基礎知識

1.1. verdi

VCS和Verdi這兩個工具,這兩個工具目前都屬于synopsys公司。VCS主要負責編譯運行Testbench和RTL,并負責生成相應的波形文件。而verdi主要負責加載波形文件,查看信號的波形及其對應的代碼來進行調試驗證。Verdi最開始是由novas公司設計的,在2008年,被臺灣的EDA廠家springsoft(源笙)收購了。在2012年,synopsys收購了spring soft公司,所以此時Verdi才正式屬于synopsys。

Verdi?自動調試平臺是一種用于調試數字電路設計的高級解決方案,可用于提高復雜的片上系統(SoC),ASIC和FPGA設計效率。傳統的調試工具僅依靠結構信息和發揮工程師的個人能力從結構中推斷出設計行為。 Verdi平臺提供強大的技術,幫助工程師理解復雜和不熟悉的設計行為,自動化困難和繁瑣的調試過程,統一各種復雜的設計環境,并推斷設計的動態行為。

除了源代碼瀏覽器的標準功能,原理圖,波形,狀態機圖和波形比較(用于比較FSDB格式的仿真結果),Verdi平臺還包括使用時間流視圖自動跟蹤信號活動的高級功能,基于斷言的調試,功耗感知調試以及事務和消息數據的調試和分析。所有這些都可以在圖形用戶界面中使用,該平臺使用支持多窗口對接的Qt平臺,并且可以輕松定制。

Verdi平臺使工程師能夠在傳統解決方案的一小部分時間內定位,理解和解決錯誤。這可以最大限度地提高昂貴工程師資源的效率,顯著降低成本,并大大加快將硅片推向市場的過程。

1.2. FSDB文件

fsdb文件是verdi使用一種專用的數據格式,類似于VCD,但是它是只提出了仿真過程中信號的有用信息,除去了VCD中信息冗余,就像對 VCD數據進行了一次huffman編碼。因此fsdb數據量小,而且會提高仿真速度。我們知道VCD文件使用verilog內置的系統函數來實現 的,fsdb是通過verilog的PLI接口來實現的。$fsdbDumpfile,$fsdbDumpvars等 另外,在VCS仿真器中還有一種VCD+的數據格式VPD,詳細情況參照VCS的使用。 注意:WIF:波形中間格式;WLF:波形日志文件。由于在ModelSim下只能打開WLF文件 使用ModelSim行命令vcd2wlf 將VCD文件轉化為WLF文件。

2. 分析引擎

  • 結構分析:分析設計結構以顯示組件的連接方式
  • 行為分析:分析設計和仿真結果,以顯示設計的行為
  • 斷言評估:從之前的仿真中搜索有關設計操作的詳細信息
  • 事務/消息分析:分析FSDB文件中的事務和消息(日志)數據,并在nWave和電子表格視圖中可視化
  • 功耗狀態評估:根據UPF中的功耗意圖描述以及FSDB文件中相關信號的值評估功耗狀態

3. 可視化

Verdi平臺以時間流視圖的形式提供無與倫比的時間可視化功能。這一革命性的工具從設計數據和仿真結果中提取并顯示多周期時間行為。

此外,Verdi平臺還包括最先進的結構可視化和分析工具:nTrace用于源代碼,nWave用于波形,nSchema用于原理圖/邏輯圖,nState用于有限狀態機(FSM)。這些工具專注于以RTL中的信號關系,原理圖/邏輯圖中的物理連接,FSM氣泡圖中的狀態和轉換以及波形中的值變化的形式分析設計結構。

Verdi平臺中的Property Tools窗口為斷言提供集中支持,并允許從斷言失敗到相關設計活動的快速遍歷。而事務/消息分析器可以在保存到FSDB文件的事務或日志信息的更高抽象級別上啟用調試和分析。 Power Manager窗口提供電源意圖的可視化,并支持與其他Verdi平臺窗口的交叉探測。

4. 波形

  • 信號窗口:如果需要拖動信號改變顯示順序,需要點擊鼠標中鍵即滾輪選中需要拖動的信號,如下圖所示,而黃色光標表示信號拖動后所處位置;改變黃色光標的位置也需要通過點擊鼠標中鍵來完成,配合剪切、復制和粘貼信號等操作。還可以分組信號,添加空白等來排列信號。信號可以顯示完成路徑或短路徑,可以通過View菜單中的hierarchical name來切換,也可以通過快捷鍵H。

  • 波形窗口:在波形窗口中最主要的是光標和標記的操作,可以由三個鍵的組合操作就能完成所有工作。
  1. 通過鼠標左鍵控制光標的位置;
  2. 通過鼠標中鍵控制標記的位置;
  3. 通過鼠標右鍵放大光標和標記間區域的波形至整個波形窗口。

在移動光標和標記時,要注意一個選項Waveform->Snap Cursor To Transitions,在使能該選項時,光標和標記始終處于信號波形變化邊沿,如1-bit信號的上升沿或者下降沿;在不使能該選項時,光標和標記可以在信號波形任意位置。

nWave 的波形窗口中默認有一個Cursor (黃色)和一個Marker (白色),左鍵是Cursor,中鍵是Marker,在波形窗口中右鍵是放大Cursor 和Marker 之間波形的快捷鍵。默認情況下Cursor 和Marker 都是停留在信號的Transition 處,你可以通過點擊Wave->Snap Cursor To Transitions 關閉或者啟動這個功能。

通過Cursor 和Maker 來計算Delta 時間是很難估算出兩個信號(或者是信號的邊沿)之間的周期數的,你可以選中信號的驅動時鐘,通過添加網格線的方法來實現周期數的計算。View-> Grid on Rising Edge,這樣子網格線就會出現在每個周期中,View->Grid Count 來顯示從Cursor 到每個網格線的網格個數。

  • 常用快捷鍵
    • g:加載信號 Get signals
    • x:標注信號的值(在源代碼中)Active Annotation
    • L :返回至上一個視圖 Reload Design
    • Ctrl+e: Active Trace
    • Ctrl+w: Add Signal to Wave
    • H: hierarchical Name
    • Z: Zoom In
    • z: Zoom Out
    • f: Zoom All
    • l: Last View

5. 調試

5.1. 載入設計文件及波形

  1. UI啟動:啟動verdi,載入設計文件(.f文件),然后new waveform來打開波形窗口。在波形窗口打開波形文件(fsdb文件),然后通過Git Signal窗口或者代碼窗口添加需要觀察的信號。添加好需要觀察的信號之后,可以保存相關信號為.rc文件,下次啟動波形文件時,可以直接載入信號文件。當波形有更新時,可以通過Reload來重新加載(也可以快捷方式Shift+L)。
  2. 命令行啟動:

tb.f即為設計文件列表文件;USER_DEFINE添加用戶自定義參數進行仿真調試(vcs編譯中可能有類似的參數),xxx.fsdb即為波形文件;&表示在控制臺后臺執行,即不隨控制臺關閉而關閉;-nologo即不顯示啟動界面。

verdi -f tb.f -sv +define+USER_DEFINE -ssf XXX.fsdb -nologo &

兩次回歸的simv.vdb一起看覆蓋率

verdi -cov -covdir XXX/simv.vdb -covdir YYY/simv.vdb &
verdi -cov -covdir XXX/simv.vdb -elfile yyy.el

el文件可以通過verdi gui界面選定exclude的覆蓋項保存

verdi -f filelist.f -dbdir ./simv.daidr -ssf xxx.fsdb -top -sv -nologo

5.2. 創建總線分析

創建自己想要的總線信號,如在16bit 的總線中,你只想看到其中的偶數位的總線,或者你想把幾條信號合并成一條總線信號,都可以在debussy 中輕松實現。選中要操作的信號或者總線,Signal->Create Bus.

5.3. 載入文件列表文件

如果你所有的design都在一個文件里,比如說verilog文件(擴展名為.v),那么你直接把這個文件加載進去就可以。如果你的design是分布在多個文件里的,那么你可以一次把所有的design都選擇上,然后加載。那還有一種方法就是在一個擴展名為.f的文件里把所有的design文件(包括某些IP的庫)列出來(可以是絕對路徑,也可以是相對路徑),然后加載這個.f文件。在上面的操作中,我們實際上就是加載一個包含了所有design文件的run.f文件。

5.4. 查找信號

在代碼窗口選中信號,可以用鼠標中鍵將信號拖到查找框

,然后進行下一個、上一個的查找。也可以使用快捷鍵,Ctrl+F選擇要查找的信號,Enter、Shift+Enter下一個、上一個查找。

5.5. 查找驅動源

在波形窗口中我們可以通過雙擊信號的波形來追溯信號的驅動源,從而定位錯誤出現的位置。在源代碼窗口中可以通過雙擊信號的名字來追溯該信號的驅動源。在源代碼窗口中也可以通過右鍵菜單來實現這個功能。在窗口中選擇Trace->Reset Traced Signals’s Color 可以取消追溯過程中帶來的信號高亮度的問題。一般情況下我們是從信號的波形圖中某一時刻的波形異常處雙擊該波形,追溯到源代碼窗口中的對應賦值語句,從而找到該時刻的驅動源。

Driver即表示當前信號由哪些信號驅動,即由哪些信號賦值;Load即表示當前信號給哪些信號賦值了。在代碼窗口選擇信號,雙擊信號即會跳轉到賦值語句,如果多處賦值,也會標記,并在Trace窗口顯示所有關聯信號。

可以通過鼠標右鍵菜單中的Active Annotation來標記當前信號的值,快捷鍵x。

可以通過雙擊找到驅動來源,也可以在工具欄選擇D按鈕執行相同的功能,L按鈕則是找到當前信號給哪些信號賦值了。

5.6. 添加信號

在nTrace(代碼)窗口,選中需要觀察波形的信號,用鼠標中鍵拖到nWave窗口,即可以完成信號的添加。也可以選中多個信號用鼠標中鍵添加相關信號。也可以選中信號,使用鼠標右鍵菜單Add to waveform,也可以使用快捷鍵。

5.7. 統計跳變數量

  1. 添加跳變信號

2. 光標標記起始位置

3. 光標標記結束位置

4. 計算有效跳變量

有效跳變數=結束光標跳變量-開始光標跳變量

5.8. 提取部分波形文件

波形窗口選擇File->Extract Selected Sigals.

通過光標和標記選擇起始/結束時間范圍的波形進行保存。

5.9. 設置信號的顯式形式

在波形窗口或代碼窗口,右鍵選擇相應的信號,在菜單選擇 Set Radix,然后選擇不同的顯示形式。如顯示字符串內容ASCII。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17678.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

dimp導入提示 [警告]該工具不能解析此文件,請使用更高版本的工具

問題描述:dimp導入報錯 [dmdbalocalhost ~]$ dimp SYSDBA/Topnet_123\192.168.3.27:5241 FILEimp_exp.dmp LOGreport_ty_imp_20240528.log DIRECTORY/opt/dmdba LOG_WRITEY REMAP_SCHEMAreport:report_ty dimp V8[警告]文件"/opt/dmdba/report_ty_imp_2024052…

Linux 查找命令的操作,學完效率瞬間翻倍?

可以很肯定地說,find 命令是 Linux 運維必須熟知的操作之一。 讓我們看一道題: 如果你的 Linux 服務器上有一個名為 .logs 的目錄,如何刪除該目錄下最后一次訪問時間超過一年的日志文件呢? 這種情況很常見,但令人驚訝…

簡述nextTick 的作用是什么?他的實現原理是什么 ?

nextTick 的作用 在 Vue.js 中,nextTick 是一個非常有用的函數,它用于延遲執行一段代碼,直到下一次 DOM 更新循環結束之后。換句話說,當你修改了數據之后,視圖不會立即更新,而是等到下一次“DOM 更新循環”…

【Linux系統】進程間通信

本篇博客整理了進程間通信的方式管道、 system V IPC的原理,結合大量的系統調用接口,和代碼示例,旨在讓讀者透過進程間通信去體會操作系統的設計思想和管理手段。 目錄 一、進程間通信 二、管道 1.匿名管道 1.1-通信原理 1.2-系統調用 …

簡談SUID提權

SUID提權 0x01什么是SUID ? SUID (Set UID)是Linux中的一種特殊權限,其功能為用戶運行某個程序時,如果該程序有SUID權限,那么程序運行為進程時,進程的屬主不是發起者,而是程序文件所屬的屬主。但是SUID權限的設置只針對二進制可…

強化學習4:DQN 算法

看這篇文章之前,建議先了解一下:Q-Learning 算法。 1. 算法介紹 DQN 算法全稱為 Deep Q-Network,即深度Q網絡。它將 Q-Learning 與 Deep Learning 結合在了一起。 1.1 Q-Network Q-Learning 是使用 Q-table 才存儲決策信息的,…

AI推文神器,繪唐ai,文刻創作出品,sdmj二合一虹貓

AI推文神器,繪唐ai,文刻創作出品,sdmj二合一虹貓 https://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encfhttps://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encf AI推文神器是一種基于人工智能技術的工具,旨在幫助用戶快速生成優質的推文。它通過分…

iPhone“已刪除”照片被恢復,蘋果到底有沒有后門?

繼微軟本周推出的Windows“回憶”功能引發隱私焦慮,遭馬斯克和安全大咖們猛烈抨擊后,蘋果iPhone手機近日也曝出了類似的“記憶門”。 刪除十幾年的iPhone照片被恢復 近日,有蘋果手機用戶更新了蘋果上周發布的iOS 17.5系統后,意外…

妙解設計模式之策略模式

目錄 策略模式的概念生活中的例子編程中的例子 軟件工程中的實際應用數據排序文件壓縮支付方式圖形繪制 策略模式的概念 策略模式(Strategy Pattern)是一種行為型設計模式,它定義了一系列算法,把它們一個個封裝起來,并…

Android Graphics模塊中的各種State和重要類普法

Android Graphics模塊中的各種State和重要類普法 引言 尼瑪,這Android Graphics圖形棧蛋疼啊,更新太快了。機會是每年一個版本,前進的膠布不能停啊,繼續干。這邊博客,我們的核心是理一理Android Graphics中各種State狀…

2024最新版本激活Typora,1.8.10.0版本可用

?實測可用日期為:2024-05-28 目前最新版本 1.8.10.0 也是可以實現激活的 注:免修改注冊表、不用修改時間,更不需要破解補丁 01、下載&安裝 Typora 文件 從官網下載最新版本的 Typora,并安裝 或者阿里云盤: htt…

Pytorch深度學習實踐筆記12(b站劉二大人)

🎬個人簡介:一個全棧工程師的升級之路! 📋個人專欄:pytorch深度學習 🎀CSDN主頁 發狂的小花 🌄人生秘訣:學習的本質就是極致重復! 《PyTorch深度學習實踐》完結合集_嗶哩嗶哩_bilibi…

數據集008:吸煙、抽煙檢測數據集(含數據集下載鏈接)

數據集簡介 兩個數據集 一個是783張圖片對應的xml文件 一個是2482張圖片對應的xml文件 如下圖所示: 部分代碼: # 測試數據讀取 def test_data_loader(datadir, batch_size 10, test_image_size608, modetest):"""加載測試用的圖片…

大學生選擇算法向還是嵌入式向?

在開始前剛好我有一些資料,是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!! 由于嵌入式的薪資待遇和…

品牌建設不迷路:系統化方法讓品牌成長更高效

很多創始人才創業過程中都會發現: 企業越大,遇到的系統性的底層品牌問題就會越多,品牌的系統化建設底層根基如果不穩,后續的增長也會搖搖欲墜。 所以在當今競爭激烈的市場環境中,品牌的成功不僅僅依靠一個響亮的名字…

Spring Boot注解(Annotation)

在Spring Boot中,注解(Annotation)是一種元數據形式,它可以在代碼中提供信息,這些信息可以在運行時或編譯時被處理。Spring Boot使用注解來實現依賴注入、事務管理、配置等功能。 以下是Spring Boot中注解的執行機制的…

【Linux】Linux的權限_1

文章目錄 三、權限1. shell外殼2. Linux的用戶3. Linux權限管理文件訪問者的分類文件類型和訪問權限 未完待續 三、權限 1. shell外殼 為什么要使用shell外殼 由于用戶不擅長直接與操作系統直接接觸和操作系統的易用程度、安全性考慮,用戶不能直接訪問操作系統。 什…

文件IO(一)

文件IO(一) 文件IO文件的分類在文件IO下,文件分類按存儲的內容分按照操作分 標準IO和文件IO的區別系統調用和庫函數的區別 文件IO 把程序暫存在內存的數據,存儲到本地外存上 文件的分類 在Linux系統下,文件共分為7類…

AI答題項目,無門檻答題一小時收益30+

朋友們,今天我想和大家探討一個令人興奮的副業機遇。你是否曾感覺到日常工作的枯燥乏味,而又渴望找到一種輕松的賺錢方式來增加你的收入?今天我將和你分享的這個項目正是你所期待的。 項目的核心是利用AI技術來回答網上付費用戶的問題&…

重生之我要精通JAVA--第六周筆記

File 路徑 相對路徑 路徑1:“a.txt” 路徑2:“abc\\a.txt” 絕對路徑 路徑1:“c:\\a.txt” 路徑2:“c:\\abc\\a.txt” File對象就表示一個路徑,可以是文件的路徑、也可以是文件夾的路徑這個路徑可以是存在的&…