Verdi與vcs、irun和questasim聯合模擬指令碼記錄
阿新 • • 發佈:2021-07-17
Verdi介紹:https://www.synopsys.com/zh-cn/verification/debug/verdi.html
Verdi 系統提供了以下基本除錯功能:
-
- 功能全面的波形檢視器使您能夠顯示和分析各個時間段的活動
- 功能強大的波形比較引擎可以讓您隔離快速訊號資料庫 (FSDB) 檔案之間的差異
- 原始碼瀏覽器使您能夠在原始碼和層次結構之間輕鬆來回移動
- 靈活的原理圖和方框圖使您能夠使用熟悉的符號顯示邏輯和連線
- 直觀的氣泡圖幫助您揭示有限狀態機的操作
三大EDA廠商軟體生成波形可以和verdi配合使用:
-
- Sysnopsys--vcs
- Cadence--irun
- Mentor--Qustasim
在平常工作時,正是由於verdi強大的看波形debug的功能,可以通過VCS、irun和Questasim編譯後,產生Verdi可以載入的快速訊號資料庫 (FSDB) 檔案,並通過Verdi載入以後方便的進行debug。因此記錄一下三大EDA廠商軟體生成fsdb波形的指令碼。
1.VCS指令碼:使用UCLI介面
com: vcs -sverilog -debug_acc+all -LDFLAGS -rdynamic -full64 \ -P $(VERDI_HOME)/share/PLI/VCS/$(PLATFORM)/novas.tab \ $(VERDI_HOME)/share/PLI/VCS/$(PLATFORM)/pli.a \ -f tb_top.f \ +vcs+lic+wait \ -l com_vcs.log sim: ./simv +ntb_random_seed=$(SEED) \ -ucli -i dump_fsdb_vcs.tcl \ +fsdb+autoflush \ -l sim_vcs.log
對應的dump_fsdb_vcs.tcl 指令碼為
global env # tcl指令碼引用環境變數,Makefile中通過export定義 fsdbDumpfile "$env(demo_name).fsdb" # 設定波形檔名,受環境變數env(demo_name)控制 # demo_name在makefile中使用export demo_name=demo_fifo fsdbDumpvars 0 "tb_top" # 設定波形的頂層和層次,表示將tb_top作為頂層,Dump所有層次 run # 設定完dump資訊,啟動模擬(此時模擬器被ucli控制) 可以run 100ns會在模擬100ns的時候停下來下來
2.IRUN指令碼 使用ncsim介面
com: irun -elaborate -access +r \ -f tb_top.f \ -top tb_top \ -licqueue \ -l com_irun.log sim: irun -R \ -input dump_fsdb_irun.tcl \ +fsdb+autoflush \ -licqueue \ -l sim_irun.log
對應的dump_fsdb_irun.tcl 指令碼為
global env call fsdbDumpfile "$env(demo_name).fsdb" # 需要使用call,與vcs區別之一 call fsdbDumpvars 0 "tb_top" run quit # 需要使用quit,irun不自動結束
3. questasim指令碼
com: vlib work vmap work work vlog -64 -sv +acc \ -f tb_top.f \ -l com_questa.log sim: vsim -64 -batch -pli $(VERDI_HOME)/share/PLI/MODELSIM/$(PLATFORM)/novas_fli.so \ work.tb_top \
-do dump_fsdb_questa.tcl \
+fsdb+autoflush \
-l sim_questa.log
對應的dump_fsdb_questasim.tcl
gloal env fsdbDumpfile "$env(demo_name).fsdb" fsdbDumpvars 0 "tb_top" run -all quit -sim
4. Verdi載入fsdb指令碼
run_verdi: verdi \ -sv \ # 支援sv -nologo \ # 關掉歡迎介面 -f tb_top.f \ # 載入設計檔案列表 -ssf tb_top.fsdb