0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VCS+VERDI的reverse反向運(yùn)行功能

sanyue7758 ? 來源:摸魚范式II芯片驗(yàn)證之路 ? 2023-04-12 10:11 ? 次閱讀

背景

假設(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ù)庫,支持verdi的聯(lián)合調(diào)試,而lca是kdb的依賴選項(xiàng)。

最后的-debug_access+reverse則是最關(guān)鍵的開關(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)形狀來開,和聯(lián)合仿真的正向交互式仿真是一致,功能上他們其實(shí)也是對(duì)偶的。

476b2d46-d894-11ed-bfe3-dac502259ad0.png

reverse按鈕

如果你開起了reverse選項(xiàng),但是仍然沒有出現(xiàn)這一排按鈕,那么就需要在tools下的perferences中,開啟reverse按鈕。

47797626-d894-11ed-bfe3-dac502259ad0.png

perferences

在perferences中的interactive debug下,找到reverse debug

47846f54-d894-11ed-bfe3-dac502259ad0.png

reverse

接下來可以在代碼中設(shè)置兩個(gè)斷點(diǎn)進(jìn)行測(cè)試。直接單擊代碼左側(cè)即可甚至斷點(diǎn)。和C的單步調(diào)試是一樣的,直接run就能在斷點(diǎn)處停止。

478d0362-d894-11ed-bfe3-dac502259ad0.png

設(shè)置斷點(diǎn)

我們跑到第九行的斷點(diǎn),可以看到中間在七行停止了一次,最后在第九行停下來,6 7 8行的信息都已經(jīng)打印出來了。

47954478-d894-11ed-bfe3-dac502259ad0.png

前向運(yùn)行

那么如果我們需要回到第七行,就可以直接進(jìn)行點(diǎn)擊下圖中的run reverse按鈕。

479ba9ee-d894-11ed-bfe3-dac502259ad0.png

run reverse

然后就能夠回到上一個(gè)斷點(diǎn)處

47a57f0a-d894-11ed-bfe3-dac502259ad0.png

當(dāng)然也可以,點(diǎn)擊旁邊的next reverse按鈕進(jìn)行反向單步運(yùn)行

47afeefe-d894-11ed-bfe3-dac502259ad0.png

反向單步

就能夠從第九行回到第八行

47b68dcc-d894-11ed-bfe3-dac502259ad0.png

其他按鈕和這兩個(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í)候使用。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    9537
  • Verdi
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    8741

原文標(biāo)題:聯(lián)合仿真VCS+VERDI+Reverse,你會(huì)嗎?

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)教VCSverdi怎么聯(lián)合使用

    最近要用到VCS仿真后生成FSDB文件,然后在Verdi中進(jìn)行自動(dòng)偵錯(cuò),請(qǐng)問我怎么安裝Verdi這個(gè)軟件以及如何啟動(dòng)license,并且怎么寫testbench文件才可以產(chǎn)生FSDB文件。請(qǐng)懂得人給我支支招,我也是剛開始學(xué)習(xí)這個(gè)
    發(fā)表于 01-22 14:53

    怎樣去使用Makefile+VCS+Verdi做個(gè)簡(jiǎn)單的Test Bench?

    怎樣去使用Makefile+VCS+Verdi做個(gè)簡(jiǎn)單的Test Bench?有哪些操作步驟?
    發(fā)表于 06-18 06:28

    VCS+Verdi如何安裝?怎么破解?

    VCS+Verdi如何安裝?怎么破解?
    發(fā)表于 06-21 06:11

    求大佬分享VCS/Verdi 2014或者2018版本的安裝包

    x求哪位好心大佬分享VCS/Verdi 2014或者2018版本的安裝包啊??最好還有相應(yīng)的安裝教程,跪謝!?。。?/div>
    發(fā)表于 06-21 06:33

    VCS仿真卡住,為什么無法生成verdi波形文件呢?

    在make com編譯成功后,terminal卡住了一直沒有反應(yīng),這是什么情況有大佬知道嗎?VCS仿真卡住,為什么無法生成verdi波形文件呢?
    發(fā)表于 06-21 08:14

    請(qǐng)問如何更新bin/run.makefile以支持VCS+Verdi工具?

    如何更新bin/run.makefile以支持VCS+Verdi工具?
    發(fā)表于 08-11 10:08

    在Linux上用vcs+verdi對(duì)demo_nice進(jìn)行仿真沒有成功的原因?

    請(qǐng)教大神,我在Linux上用vcs+verdi對(duì)demo_nice進(jìn)行仿真,但是沒有成功 我是用hibrd.sdk把demo_nice編譯成.verilog文件的,其內(nèi)容如下 另外我還對(duì)tb
    發(fā)表于 08-12 08:07

    vcsverdi的調(diào)試及聯(lián)合仿真案例

    若想用Verdi觀察波形,需要在仿真時(shí)生成fsdb文件,而fsdb在vcs或者modelsim中的生成是通過兩個(gè)系統(tǒng)調(diào)用$fsdbDumpfile $fsdbDumpvars來實(shí)現(xiàn)的。
    的頭像 發(fā)表于 09-22 15:01 ?8371次閱讀

    利用vcs+verdi仿真工具蜂鳥E200系列處理器仿真分析

    開源RISC-V Hummingbird E203(蜂鳥E203)的仿真工具是開源的iverilog,這里利用vcs+verdi仿真工具進(jìn)行仿真;
    的頭像 發(fā)表于 11-17 10:28 ?2605次閱讀

    全網(wǎng)最實(shí)用的Verdi教程1

    Verdi是一個(gè)功能強(qiáng)大的debug工具,可以配合不同的仿真軟件進(jìn)行debug,很多企業(yè)常用VCS+Verdi或者Xcelium/xrun+Verdi的方式進(jìn)行代碼的仿真與檢查。
    的頭像 發(fā)表于 05-05 14:49 ?1.6w次閱讀
    全網(wǎng)最實(shí)用的<b class='flag-5'>Verdi</b>教程1

    全網(wǎng)最實(shí)用的Verdi教程2

    Verdi是一個(gè)功能強(qiáng)大的debug工具,可以配合不同的仿真軟件進(jìn)行debug,很多企業(yè)常用VCS+Verdi或者Xcelium/xrun+Verdi的方式進(jìn)行代碼的仿真與檢查。
    的頭像 發(fā)表于 05-05 14:53 ?7276次閱讀
    全網(wǎng)最實(shí)用的<b class='flag-5'>Verdi</b>教程2

    全網(wǎng)最實(shí)用的Verdi教程3

    Verdi是一個(gè)功能強(qiáng)大的debug工具,可以配合不同的仿真軟件進(jìn)行debug,很多企業(yè)常用VCS+Verdi或者Xcelium/xrun+Verdi的方式進(jìn)行代碼的仿真與檢查。
    的頭像 發(fā)表于 05-05 14:53 ?5185次閱讀
    全網(wǎng)最實(shí)用的<b class='flag-5'>Verdi</b>教程3

    如何用vcs+verdi仿真Verilog文件并查看波形呢?

    我們以一個(gè)簡(jiǎn)單的加法器為例,來看下如何用vcs+verdi仿真Verilog文件并查看波形。
    的頭像 發(fā)表于 05-08 16:00 ?5887次閱讀
    如何用<b class='flag-5'>vcs+verdi</b>仿真Verilog文件并查看波形呢?

    如何用vcs+verdi仿真Verilog文件

    我們以一個(gè)簡(jiǎn)單的加法器為例,來看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件內(nèi)容如下:
    的頭像 發(fā)表于 05-11 17:03 ?1751次閱讀
    如何用<b class='flag-5'>vcs+verdi</b>仿真Verilog文件

    Verdi環(huán)境配置、生成波形的方法

    Verdi是一個(gè)功能強(qiáng)大的debug工具,可以配合不同的仿真軟件進(jìn)行debug,很多企業(yè)常用的就是VCS+Verdi或或者Xcelium(xrun)+Verdi的方式進(jìn)行代碼的仿真與檢
    的頭像 發(fā)表于 05-29 09:48 ?3193次閱讀
    <b class='flag-5'>Verdi</b>環(huán)境配置、生成波形的方法