背景
假設(shè)一種場(chǎng)景,在調(diào)試環(huán)境的時(shí)候,運(yùn)行到15min的時(shí)候,環(huán)境出現(xiàn)bug,需要去debug。也許錯(cuò)誤的第一現(xiàn)場(chǎng)并不是15min的時(shí)候,可能在14min30s-15min之間,那么如果正向執(zhí)行就需要14min30s以上。所以這個(gè)時(shí)候如果能夠直接反向運(yùn)行到14min30s,就可以節(jié)省很多時(shí)間。就像jojo的奇妙冒險(xiǎn)中吉良吉影的招式,敗者食塵一樣,逆轉(zhuǎn)時(shí)間
編譯選項(xiàng)
要實(shí)現(xiàn)這個(gè)功能,依賴于VCS和VERDI的聯(lián)合調(diào)試,所以在編譯的時(shí)候需要使用下面的指令
vcs-full64-sverilog-ntb_optsuvm-1.2-lca-kdb-debug_access+reverse
除了常規(guī)的選項(xiàng)以外,-kdb選項(xiàng)是用于生成kdb數(shù)據(jù)庫(kù),支持verdi的聯(lián)合調(diào)試,而lca是kdb的依賴選項(xiàng)。
最后的-debug_access+reverse則是最關(guān)鍵的開(kāi)關(guān),需要加上這個(gè)選項(xiàng)才是實(shí)現(xiàn)反向運(yùn)行。
編譯完成以后,進(jìn)行仿真的時(shí)候,需要使用./simv -verdi,啟動(dòng)仿真。這樣就能夠直接調(diào)用verdi進(jìn)行聯(lián)合仿真。
測(cè)試代碼
本次的測(cè)試代碼就是簡(jiǎn)單的4行打印。
moduletest(); importuvm_pkg::*; `include"uvm_macros.svh" initialbegin `uvm_info("a","hellouvm!",UVM_NONE) `uvm_info("b","hellouvm!",UVM_NONE) `uvm_info("c","hellouvm!",UVM_NONE) `uvm_info("d","hellouvm!",UVM_NONE) end endmodule
reverse
啟動(dòng)verdi之后,注意圖中紅色框框中的一排按鈕,這就是reverse功能的按鈕。從圖標(biāo)形狀來(lái)開(kāi),和聯(lián)合仿真的正向交互式仿真是一致,功能上他們其實(shí)也是對(duì)偶的。
reverse按鈕
如果你開(kāi)起了reverse選項(xiàng),但是仍然沒(méi)有出現(xiàn)這一排按鈕,那么就需要在tools下的perferences中,開(kāi)啟reverse按鈕。
perferences
在perferences中的interactive debug下,找到reverse debug
reverse
接下來(lái)可以在代碼中設(shè)置兩個(gè)斷點(diǎn)進(jìn)行測(cè)試。直接單擊代碼左側(cè)即可甚至斷點(diǎn)。和C的單步調(diào)試是一樣的,直接run就能在斷點(diǎn)處停止。
設(shè)置斷點(diǎn)
我們跑到第九行的斷點(diǎn),可以看到中間在七行停止了一次,最后在第九行停下來(lái),6 7 8行的信息都已經(jīng)打印出來(lái)了。
前向運(yùn)行
那么如果我們需要回到第七行,就可以直接進(jìn)行點(diǎn)擊下圖中的run reverse按鈕。
run reverse
然后就能夠回到上一個(gè)斷點(diǎn)處
當(dāng)然也可以,點(diǎn)擊旁邊的next reverse按鈕進(jìn)行反向單步運(yùn)行
反向單步
就能夠從第九行回到第八行
其他按鈕和這兩個(gè)類似,但是正向調(diào)試的反向版本。
本次分享了VCS+VERDI的reverse反向運(yùn)行功能,可以將整個(gè)仿真反向運(yùn)行,從而減少正向仿真的時(shí)間消耗。
當(dāng)然,這必須在VCS+VERDI的聯(lián)合調(diào)試下才可以,如果是VCS單獨(dú)仿真,dump波形,再使用VERDI離線調(diào)試就不能使用。而聯(lián)合仿真也會(huì)大幅度降低運(yùn)行速度,所以推薦在早期debug驗(yàn)證環(huán)境的時(shí)候使用。
審核編輯:劉清
-
VCS
+關(guān)注
關(guān)注
0文章
80瀏覽量
9625 -
Verdi
+關(guān)注
關(guān)注
0文章
22瀏覽量
8791
原文標(biāo)題:聯(lián)合仿真VCS+VERDI+Reverse,你會(huì)嗎?
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論