一、Verdi 功能
- 查看設計
- debug
- Verdi不能自己產生波形
二、Verdi使用流程
1、Verdi環境配置
.bashrc中配置
export Verdi_HOME=$Synopsys_Dir/Verdi2015
#export NOVAS_HOME=$Synopsys_Dir/Verdi2015
export PATH=$Verdi_HOME/bin:$PATH
export LD_LIBRARY_PATH="/opt/Synopsys/Verdi2015/share/PLI/lib/linux64"$PATH
export LD_LIBRARY_PATH="/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64"$PATH
//設置為verdi的安裝目錄
2、VCS產生Verdi波形
·tb文件中加入相應的系統函數
initial begin
$fsdbDumpfile("fifo.fsdb");
$fsdbDumpvars(0);
end
·makefile中加入相應的選項
#************parameter input*************#※prepare the source list file and then make add the soucefile name#for example ,the Verilog source file's name is vlog_list.f then :make norsim src_list=file_list src_list = simsimv_name = simv vpdpluse_name = vcdpluse cov_file_name = coverage vdb_name = $(simv_name)#************constant command************ #compile
NOR_VCS = vcs -full64 -sverilog +v2k -timescale=1ns/1ns??????????? \
-debug_all ?????????????????\?????????????
+notimingcheck??????????????????????????????????? \
+nospecify??????????????????????????????????????? \
+vcs+flush+all??????????????????????????????????? \
-o $(simv_name)?? \
-l compile.log? \
-f $(src_list).f#coverage compile switch
COV_SW = -cm line+cond+fsm+branch+tgl#verdi dump wave compile option
VERDI_SW = -P /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/novas.tab \
/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/pli.a#run option
RUN_GUI = -R -gui -l run.log
RUN_VPD = -R +vpdfile+$(vpdpluse_name).vpd -l run.logRUN_COV = -R $(COV_SW) -cm_name $(vdb_name) -cm_dir ./$(cov_file_name) -l run.log RUN_VER = -R +fsdb+autoflush -l run.log#************command***********************
#normally sim
norsim:
$(NOR_VCS) $(RUN_GUI)#post-process
postsim:
$(NOR_VCS) $(RUN_VPD) dve -vpd $(vpdpluse_name).vpd#coverage
covsim:
$(NOR_VCS) $(COV_SW) $(RUN_COV) dve -covdir $(cov_file_name).vdb#verdi
versim:
$(NOR_VCS) $(VERDI_SW) $(RUN_VER) verdi -sv -f $(src_list).f -ssf *.fsdb -nologo#rm
clr:
rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf
3、Verdi使用
1.打開Verdi
- verdi -nologo
- makefile 命令
2.nTrace使用
- 查看包含的設計架構
- 查尋模塊實例化的位置
①在設計結構中雙擊實例化模塊的名字->源代碼窗口高亮了模塊名
②再雙擊高亮的模塊名->看到在上層模塊中的哪一行被調用了
- 在nTrace中查找模塊和信號
- 查尋字符串
- 查看驅動信號相關
? ??
? ? ?
3.nSchema使用
- 查看原理圖
- 顯示原理圖各信號名
RTL級
- 在當前的層次中查找某個信號
- 使用Fan-In Cone追蹤某個信號的驅動邏輯
①首先要用上面的辦法來查找信號
②調用該工具:
- 產生partial hierarchy schematic
用來查看與選擇特定信號有關的邏輯/模塊
①選擇需要查看的信號(可以通過shift鍵來選擇多個信號)
4.nState使用
- 查看狀態機視圖?
- 查看狀態的執行語句和轉移條件
- 查看某個狀態的執行次數
5.nWare使用
- 添加波形到nWave
①我們要打開.v文件
②打開nWave然后打開.fsdb波形文件
③正式添加波形:
-快捷鍵G或者:
-在nTrace中選中信號后,鼠標中鍵拖拽,或者ctrl+w進行添加
- 查找某信號,添加到nWave中
①通過nTrave查找到該信號
②通過上面的方法進行添加
或者通過get signal來查找
- 給Group重命名,排序,以及調整信號位置
(1)重命名:
?
(2)信號的拖拽:
通過鼠標中鍵進行拖拽。
(3)縮小:
快捷鍵z,或者100%匹配:F
(4)放大:
左鍵拖選放大范圍
shift+Z
ctrl+滑輪:進行放大或者縮小
(5)移動:
鼠標中鍵按住信號拖拽中鍵選擇位置:
?
(6)復制:
ctrl+P,或者右擊信號,選擇復制的選項
(7)粘貼:
ins鍵,或者右擊信號,選擇粘貼的選項
(注意:可以通過鼠標中鍵選擇粘貼的位置)
(8)刪除:
delete鍵
- 改變信號的顏色:
第一步:Tools->preferences->waveform->viewoption->waveformpane->general->paint waveform with specified color/pattern
?
第二步:選中信號,然后按快捷鍵C改變信號顏色:
- 查看信號及變化:
任意值:所有信號變化,一般會應用到組合邏輯的指示信號信號沿:用于查找有效指示信號,比如使能信號
總線值:主要是用來查找數據信號
模擬值:查看比如函數發生器產生的正弦波信號
進制之間的轉換:
符號數之間的轉換:
狀態寄存器顯示為狀態名字:
nTrace:
或者nWave:
可以通過移除關聯從狀態機名字恢復到原來的進制顯示:
可以看到,我們打開過狀態機視圖之后,我們也就可以在狀態名和進制之間轉換了:
- 如何通過邏輯操作創建新信號?
- 如何添加marker?
shift+M
- 總線操作:
- 如何查找信號的某個值、某個值跳轉到某個值?
? ??
- 如何對比兩個波形?