Verdi 使用教程(持續更新中)

本文鏈接:https://blog.csdn.net/qq_31019565/article/details/86312822
轉載請標明出處:
原文發佈於:淺嘗輒止,未嘗不可的博客
https://blog.csdn.net/qq_31019565

Verdi 使用教程
##在這篇文章基礎上重新編寫
(2019-03-24新增)

nTrace main window
如下圖片是nTrace窗口的菜單欄和工具欄


menu bar commands
1.File Commands
File->Import design(命令位置)

點擊import design後,會出現如上的一個新的窗口。窗口會包含至少兩個Lab,分別是From library 和 From file。

From library lab
Verilog和VHDL設計可以從一個預編譯庫進行import
From : 選擇Verdi Knowledge Database(KDB)產生來源。有兩個選項,Verdi Compile和VC/VCS Native Compile。如果選擇Verdi Compile,則說明KDB由vericom或vhdlcom產生,novas.rc文件被使用。如果選擇VC/VCS Compile,則說明KDB由VCS產生,synopsys_sim.setup文件被使用。
當在命令行中使用 -simflow 選項的時候,在Import Design窗口被打開的時候,會自動選擇VC/VCS Native Compile。
Virtual Top : 這個字段可以被用來引入部分設計。而不是全部。此下拉菜單中包含三個選項,第一個是Virtual Top, 第二個是Configure File, 第三個是RIDB File.
Configure File : 是用來添加配置文件的。
Work Directory : 爲庫文件制定工作目錄。
Library : 這一欄羅列了當前目錄下所有可以用的庫文件。
Design Unit :

(2019-03-24新增)

技術背景
在Design Flow中,有各種各樣的Debug情景,我們也會花費大量的時間去Debug。但是在這個過程中會遇到各種各樣的瓶頸,這會對Debug的效率造成影響。最直觀的例子就是複雜的設計。無論是對設計的直觀理解,還是設計多樣化behavior所造成的Increase condition、design cause和effect scenarios,以及多Team的環境和實現方法的複雜性,都給這Debug的效率造成了不小的影響。
基於這些問題,Verdi應運而生。優勢我就不贅述了,總之可用。

總目錄
一、Set Up the Environment
二、Import Design
三、在Source Code View 中Debug
四、在Waveform View 中Debug
五、在Schematic View 中Debug
六、在FSM View 中Debug
七、在Temporal Flow View 中Debug
八、附錄(經常用到的Preferences)

一、Set Up the Environment
內容概要:

在運行之前準備環境:指定路徑和環境變量,Binary、License、符號庫;使用Setup文件 novas.rc
指定Preferences。
理解FSDB(Fast Signal Data Base) dumping任務和作用。
二進制文件
setenv NOVAS_INST_DIR <Path to Novas installation >
set path = ($NOVAS_INST_DIR/bin $path)

License File
setenv NOVAS_LICENSE_FILE
<license_file>:$NOVAS_LICENSE_FILE
或者是使用備用的LM_LICENSE_FILE,這個文件的搜索優先級小於NOVAS_LICENSE_FILE

Symbol Libraries
爲什麼使用符號庫?
符號庫提供了源代碼到邏輯單元的映射,沒有符號庫會帶來很大的不便。

使用以下方法之一創建符號庫:
syn2SymDB:適用於 ASCII格式的Synopsys logic library(.lib)
map2SymDB:適用於已有的map file
結合user guide ,目錄<verdi_install>/doc/Symbol_Library.pdf。

設置符號庫環境變量
setenv NOVAS_LIBS"LIB ROOT#1><LIB ROOT#>…"
setenv NOVAS_LIBPATHS"<Directory#1><Directory#2>…"

通過GUI設置符號庫
步驟:

菜單欄點擊Tools–>Preferences
在打開的子窗口中 Find一欄 查找 Schematic -->Symbol Library
填寫Symbol Library Name
填寫Symbol Library Path
保存,然後設置將被保存到novas.rc 源文件中。
使用Setup文件 novas.rc
Contains

爲預編譯設計映射信息,在物理位置映射邏輯庫的名字。映射格式如下:
[Library]
logical name = physical location (ex, pack = ./work)
pack = ../library/back (ex, vital = ./work)
用戶自定義Preferences,(用法Tools–>Preferences)
指定路徑
使用NOVAS_RC環境變量
setenv NOVAS_RC <path>/novas.rc
直接通過命令行命令 -rcFile<filename> 來進行設置。

搜索次序

-rcFile<filename> 命令行選項
NOVAS_RC環境變量
./novas.rc
$HOME/novas.rc
<Verdi install>/etc/novas.rc
Preferences
Overview
通過Tools–>Preferences打開窗口,所有設置將被保存在novas.rc文件中,在Find窗口欄中根據關鍵字搜索。可以參考附錄說明來使用Preferences。

Fast Signal Data Base (FSDB)
FSDB文件介紹

壓縮的二進制文件格式,包含仿真信號數據。
開放文件格式,其他的供應商工具可以dump波形,比如Verisity,Vera,Ikos,etc.
利用System Task來幫助dump。
經常使用到的系統任務
fsdbDumpfile - 指定文件名,限制FSDB文件的大小。在FSDB文件中保存最新的值,如果文件大小受到了限制,那麼會自動丟棄最舊的值。
fsdbDumpvars - Dump特定實例和寬度的信號值的變化。也可以指定fsdb文件的名字,不同的FSDB文件的名字可以在每一個fsdbDumpvars命令上指定。
fsdbDumpon/fsdbDumpoff - 開關fsdb Dumping,可以指定FSDB文件的名字來開關特定的FSDB文件。
fsdbSwitchDumpFile - 轉換Dumping到另一個FSDB文件。
fsdbAutoSwitchDumpfile - 限制FSDB文件的大小,並且自動轉換Dumping到另一個FSDB文件。
NOTE1:以上的task是用在VHDL仿真器中的。然後加$前綴可以用在Verilog模擬器中。
NOTE2 :可以參考Linking Novas Files with Simulators and Enabling FSDB Dumping(<NOVAS_INST_DIR>/doc/linking_dumping.pdf)來查看更多的System Tasks。
爲FSDB dumping 鏈接Novas對象文件
創建工具的環境變量

setenv LM_LISCENSE_FILE<simulator_liscense_file>
<Simulator>_INST_DIR
NOVAS_INST_DIR
使用 LD_LIBRART_PATH 在${NOVAS_INST_DIR}/share/PLI/lib指定共享對象文件和共同庫。
setenv LD_LIBRART_PATH
${NOVAS_INST_PATH}/share/PLI/<simulator>/<platform>:
${NOVAS_INST_PATH}/share/PL/lib/<platform>
支持的仿真器有:VCS /IUS / MODELSIM
爲仿真創建工作庫和編譯設計代碼
在命令行上運行和調用FSDM dump函數

NOTE:參考<NOVAS_INST_DIR>/doc/linking_dumping.pdf,可以獲得更多的仿真器鏈接細節。

FSDB Utilities
vfast - 將VCD文件轉化爲FSDB文件。
fsdb2vcd - 將FSDB文件轉化爲VCD文件。
fsdbextract - 在已經存在的fsdb文件中提取信號,範圍,時間週期,而不用重新進行仿真。
fsdbmerge - 將多個文件結合到一個裏面。
fsdbreport - 針對一個特定的信號,將值得變化情況生成report。

小結
本節學習內容:

在運行Verdi之前如何設置環境變量
如何設置preferences
如何理解FSDB dumping 任務和utilities
二、Import Design
在命令行上載入Design
From File
verdi [Verdi options] [<your Verilog options>]

在命令行上引用源文件(只適用於Verilog),Verdi 有所有Verilog命令行選項。

% verdi -f <file_list> + define + GETTHEMOSTOUTOFYOURTIME
% verdi <source_file1><source_file2>…
<file_list> 是一個包含Verilog源文件和各種命令開關的文件。

% verdi -ssv -v lib.v +libext+.v -ssy -y /src/abc -y /src/def top.v
-ssv 和 -ssy 對於用-v和-y指定的設計模塊只需要一次。 top.v 是設計文件。
From Library
編譯一次,可以加載多次
保存加載時間和全部的緩存
多語言需求,VHDL和Verilog,也可以只限定一種語言。

預編譯設計到庫,Verilog代碼用vericom,VHDL代碼用vhdlcom。
% vericom -lib <libName> block1.v block2.v block3.v
% vhdlcom -lib <libName> block1.vhd block2.vhd block3.vhd

然後載入編譯庫文件和指定的top 文件。
% verdi -lib <libName> -top TopBlock
比如 :verdi -lib work -top system
By Replying a TCL Command File
你可以在 ./verdiLog/verdi.cmd file 中查看執行過的命令。如圖所示,將圖片的最後一行刪除,然後運行 verdi -play <file>.cmd。


在圖形化界面上載入Design
From File
首先在LInux 命令行上輸入 verdi ,載入verdi 圖形化界面。
然後 通過菜單欄 File ->Import Design 或者通過 菜單欄上的Import Design符號,如圖所示:

Import Design操作界面如下所示:

從界面上可以看到,可以自定 language、run file或者是個人的源文件,也支持Virtual Top文件,這裏不建議使用VHDL。

Debug in Source Code View
打開Trace窗口
完成之前所述的Import Design以後,Verdi 會自動載入trace 窗口(可以使用verdi -f run.f),如下圖所示各個部分分佈。


搜索或者是摺疊瀏覽
搜索

這裏ctrl+F可以使用搜索

摺疊瀏覽

如上所示,在instance Trace窗口中右擊就會出現相關的命令選項,圖中圈出的則爲摺疊瀏覽。

遍歷源代碼
查找操作

source->find signal 查找操作,會出現以下圖形界面,這是一個快速在指定範圍內查找的方法。

在工具欄查找想要的字符串

Source->find scope,可以直接打開Verilog module,或者VHDL

使用書籤
可以使用工具欄上的按鈕進行書籤添加


使用Source ->use bookmarks來添加書籤,右擊書籤,選擇Edit bookMarks則會出現如下界面


摺疊源代碼

To be continued…
————————————————
版權聲明:本文爲CSDN博主「淺嘗輒止,未嘗不可」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_31019565/article/details/86312822

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章