dump用法

https://blog.csdn.net/limanjihe/article/details/49924057

Verilog提供一系列系統(tǒng)任務用于記錄信號值變化初厚,常見的格式有vcd,fsdb等橡羞。

$dumpfile("file. dump"); 打開一個VCD數(shù)據(jù)庫用于記錄
$dumpvars(level,start_module); 要記錄的信號丢间,level=0表示記錄所有
$dumpflush; 將VCD數(shù)據(jù)保存到磁盤  不明白
$dumpoff; 停止記錄
$dumpon; 重新開始記錄
$dumplimit(); 限制VCD文件的大小(以字節(jié)為單位)
$dumpall; 記錄所有指定的信號值

用法:

initial
begin
$dumpfile (“verilog. dump”);
$dumpvars (0, testfixture);
end

舉例:

$dumpvars; // Dump所有層次的信號
$dumpvars (1, top); // Dump top模塊中的所有信號
$dumpvars (2, top. u1); // Dump實例top. u1及其下一層的信號
$dumpvars (0, top. u2, top. u1\. u13\. q); // Dump top.u2及其以下所有信號,以及信號top. u1\. u13\. q弧圆。
$dumpvars (3, top. u2, top. u1); // Dump top. u1和top. u2及其下兩層中的所有信號毛雇。

https://blog.csdn.net/immeatea_aun/article/details/80961258

Verdi主要在以下方面使用:

IC驗證工程師(Debug)
IC設計工程師(Review)

能夠生成fsdb波形逊朽;
能夠查看fsdb波形晶渠;
能夠追蹤RTL代碼凰荚。
生成FSDB波形

VERDI_HOME/NOVAS_HOME:仿真器默認,且為設置PATH做準備
PATH:讓系統(tǒng)(Linux)找到verdi
LD_LIBRARY_PATH:讓系統(tǒng)(Linux)能夠找到Verdi需要的庫文件.
三個命令 
echo(可配合sed):查詢環(huán)境變量 
echo $PATH | sed ‘s/\:/\n/g’
echo $LD_LIBRARY_PATH | sed ‘s/\:/\n/g’
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/libLINUX64
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/IUS/LINUX64/boot
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/libLINUX64
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/IUS/LINUX64/boot
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/libLINUX64
/home/.tools/synopsys/Verdi3_L-2016.06-1/share/PLI/IUS/LINUX64/boot
+ which :查詢當前軟件是否設置褒脯,若設置成功便瑟,會顯示軟件路徑
+ uname -i:查詢當前系統(tǒng)信息,如硬件平臺64bit為x86_64/amd64,32bit平臺為i386    
兩大方法 
使用Verilog系統(tǒng)函數(shù)
initial begin
    $fsdbDumpfile("top_tb.fsdb");
    $fsdbDumpvars(0,"tob_tb");
end
* 使用UCLI番川、TCL接口(VCS使用tcl腳本到涂,irun脊框、questa與該腳本類似)
1
global env
fsdbDumpfile "$env(demo_fifo).fsdb"
fsdbDumpvars 0 "top_tb"
run

Dump波形的兩類主要方法優(yōu)缺點比較
基于系統(tǒng)函數(shù)
優(yōu)點 1.新員工熟悉Verilog代碼,接受較快
缺點 1.需要重新編譯系統(tǒng)践啄,浪費時間(不使用value
plusargs時)浇雹;2.Verilog是低級語言,對于文本處理比較困難屿讽,不支持正則表達式
基于ucli/tcl接口
1.不需要重新編譯仿真頂層箫爷; 2.使用高級語言接口,容易完成復雜處理聂儒,例如傳遞變量,例如使用正則表達式硫痰;3.交互式接口衩婚,控制靈活,仿真過程可修改dump信息效斑,如dumpon/dumpoff
缺點 1.新員工大多不熟悉Tcl非春,接受較慢

  • 三大EDA廠商
  • Synopsys:VCS + Verdi
  • Cadence :irun + Verdi
  • Mentor :Questa + Verdi

VCS腳本:與Verdi有關的為注釋內(nèi)容,使用ucli接口

com:
vcs -full64
-sverilog
-debug_pp \ # 使能UCLI命令
-LDFLAGS \ # 傳遞參數(shù)給VCS的linker,與以下三行配合使用
-rdynamic \ # 指示需加載的動態(tài)庫缓屠,如libsscore_vcs201209.so
-P {VERDI_HOME}/share/PLI/VCS/{PLATFORM}/novas.tab \ # 加載表格文件
{VERDI_HOME}/share/PLI/VCS/{PLANTFORM}/pli.a \ # 加載靜態(tài)庫
-f ../${demo_name}/tb_top.f
+vcs+lic+wait
-l compile.log

sim:
./simv
-ucli -i ../scripts/dump_fsdb_vcs.tcl \ # ucli的輸入文件(-i)為tcl腳本
+fsdb+autoflush \ # 命令行參數(shù)autoflush奇昙,一邊仿真一邊dump波形,如果沒有該參數(shù)敌完,那么不會dump波形储耐,需要在ucli命令run 100ns后鍵入fsdbDumpflush才會dump波形
-l sim.log

其中dump_fsdb_vcs.tcl(ucli腳本為tcl語言)
global env # tcl腳本引用環(huán)境變量,Makefile中通過export定義
fsdbDumpfile "$env(demo_name).fsdb" # 設置波形文件名滨溉,受環(huán)境變量env(demo_name)控制 # demo_name在makefile中使用export demo_name=demo_fifo
fsdbDumpvars 0 "tb_top" # 設置波形的頂層和層次什湘,表示將tb_top作為頂層,Dump所有層次
run # 設置完dump信息晦攒,啟動仿真(此時仿真器被ucli控制) 可以run 100ns會在仿真100ns的時候停下來下來

也可以使用交互式仿真:注釋內(nèi)容可以在仿真過程中鍵入
global env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "top_tb"
run 200ns

fsdbDumpoff

run 100ns

fsdbDumpon

run

irun編譯運行腳本:

com:
irun
-elaborate
-access +r \ # 表示需要有讀的權限
-f ../${demo_name}/tb_top.f
-top tb_top
-licqueue
-l compile.log

sim:
irun
-R
-input ../scripts/dump_fsdb_irun.tcl
+fsdb+autoflush
-licqueue
-l sim.log

dump_fsdb_irun.tcl
global env
call fsdbDumpfile "$env(demo_name).fsdb" # 需要使用call,與vcs區(qū)別之一
call fsdbDumpvars 0 "tb_top"
run
quit # 需要使用quit闽撤,irun不自動結束

questa腳本

compile:
vlib work
vmap work work
vlog
-64
-sv
+acc \ # +acc使加載PLI有效
-f ../${demo_name}/tb_top.f
-l com.log

run:
vsim
-64
-batch
-novopt
-pli {VERDI_HOME}/share/PLI/MODELSIM/{PLATFORM}/novas_fli.so \ # 加載共享對象
work.tb_top
-do ../scripts/dump_fsdb_questa.tcl
+fsdb_autoflush
-l sim.log

dump_fsdb_questa.tcl
gloal env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "tb_top"
run -all
quit -sim

不同場景dump波形的需求

verdi 加載設計的腳本

debug:
verdi
-sv \ # 支持sv
-f ../${demo_name}/tb_top.f \ # 加載設計文件列表
-top tb_top \ # 指定設計頂層
-nologo # 關掉歡迎界面

PS:
Verdi加載設計的參數(shù)與VCS類似
支持+incdir+xx 設置include文件目錄
+libext+.v 設置庫文件后綴
-v 設置可搜索設計的文件
-y 設置可搜索設計的目錄

加載FSDB波形

dbg:
verdi -sv \ #支持SV
-f ../{demo_name}/tb_top.f \ #加載設計文件列表 -top tb_top \ #設置設計頂層 -ssf{waveform}
-nologo #關閉歡迎界面

verdiLog文件夾里面的compile.log是verdi編譯信息

重復加載設計和波形:(reload)

避免重復開關gui
避免頻繁申請license(license資源問題,手中掌握資源脯颜,霸占…)
verdi界面
ntrace:file -> reload design,一般重新加載設計的同時會重新load wave
nwave :file -> reload
拓撲結構:topology(在nTrace)
源碼(nTrace)
選擇信號方式:

在設計中選擇信號哟旗,按快捷鍵ctrl+w
在nWave界面使用通配符,可以選擇in/out/inout/net(wire)/register等信號
查看波形

目標 快捷鍵 鼠標操作
100%波形 F 點擊100%符號
縮小波形 z(推薦) -
放大波形 shift+z 左鍵拖選放大范圍(推薦)
移動信號 中鍵選擇位置+信號+M 鼠標中鍵按住信號拖拽
拷貝波形 ctrl+p 右鍵選擇
粘貼信號 中間選擇位置+Ins 右鍵選擇
刪除信號 Del 右鍵選擇
顯示結構 h(開/關) -
時間差

  • nWave:waveform -> marker 標記 :輸入名字栋操,然后add
    • nWave:waveform -> Signal Value Radix修改進制;
    • nWave:waveform -> Signal Value Notation設置信號闸餐。無符號unsigned,有符號一般選擇Signed 2's Complement

查看信號變化:

對于狀態(tài)機:點擊nTrace中類似與門的信號矾芙,點擊打開電路圖后波形就變成了rtl中的設置的狀態(tài)機的不同狀態(tài)(三段式容易被verdi識別是狀態(tài)機绎巨,標注狀態(tài))
信號分組:右鍵rename組名,結構清晰蠕啄,便于對照
總線操作:選中信號右鍵Bus Operations ->Create Bus

這里取反是bit取反场勤,非byte
save和restore

存儲當前查看波形的工程
將當前所有信號存成一個*.rc文件
重新打開波形界面時戈锻,restore信號
nwave:file -> Save Signal/Restore Signal
debug 追蹤波形

快速熟悉一個設計:雙擊RTL中的信號,追蹤波形

掌握設計拓撲結構:通過nTrace界面獲取

熟悉設計的輸入和媳、輸出
Trace(Input)
哪些信號驅動了當前信號
Load(Output)
當前信號驅動了哪些信號

找到ntrace中的L格遭、D

同時可以在trace界面右鍵Collapse All,Expand All,save等操作
在設計之間跳轉,回退 上、下留瞳、前拒迅、后等

快速找到應用實例:nTrace : Source -> Find Signal/Instance/Instport

勾選Search Full Scope ,選擇輸入要例化的模塊(支持通配符)

  • 獲取波形里面的信號數(shù)值:nTrace:source -> Active Annotation,將所有的信號標值

————————————————
版權聲明:本文為CSDN博主「254她倘、小小黑」的原創(chuàng)文章璧微,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明硬梁。
原文鏈接:https://blog.csdn.net/immeatea_aun/article/details/80961258

dump memory波形和查看
https://www.cnblogs.com/OneFri/p/5989033.html

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末前硫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荧止,更是在濱河造成了極大的恐慌屹电,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跃巡,死亡現(xiàn)場離奇詭異危号,居然都是意外死亡,警方通過查閱死者的電腦和手機素邪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門外莲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兔朦,你說我怎么就攤上這事苍狰。” “怎么了烘绽?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵淋昭,是天一觀的道長。 經(jīng)常有香客問我安接,道長翔忽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任盏檐,我火速辦了婚禮歇式,結果婚禮上,老公的妹妹穿的比我還像新娘胡野。我一直安慰自己材失,他們只是感情好,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布硫豆。 她就那樣靜靜地躺著龙巨,像睡著了一般笼呆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旨别,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天诗赌,我揣著相機與錄音,去河邊找鬼秸弛。 笑死铭若,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的递览。 我是一名探鬼主播叼屠,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绞铃!你這毒婦竟也來了镜雨?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤憎兽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吵冒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纯命,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年痹栖,在試婚紗的時候發(fā)現(xiàn)自己被綠了亿汞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡揪阿,死狀恐怖疗我,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情南捂,我是刑警寧澤吴裤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站溺健,受9級特大地震影響麦牺,放射性物質發(fā)生泄漏。R本人自食惡果不足惜鞭缭,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一剖膳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岭辣,春花似錦吱晒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹话。三九已至,卻和暖如春躏精,著一層夾襖步出監(jiān)牢的瞬間渣刷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工矗烛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辅柴,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓瞭吃,卻偏偏與公主長得像碌嘀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子歪架,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361