我們常用的debug UVM的方法是通過(guò)打印log實(shí)現(xiàn)。有沒(méi)有辦法像 debug RTL代碼一樣將 UVM 中變量拉到波形上看呢?答案是有的,下面讓我們看看是怎么做到的。
第一步在UVM compile 的選項(xiàng)里面加入 -debug_access+all
第二步在 simulation 選項(xiàng)中加入下面三個(gè)選項(xiàng)
-gui=verdi
** +UVM_VERDI_TRACE="UVM_AWARE+RAL+HIER+COMPWAVE"**
+UVM_TR_RECORD
這里 -gui=verdi是啟動(dòng)verdi 和vcs聯(lián)合仿真。+UVM_VERDI_TRACE 這里是記錄 UVM中 register,component 的波形。+UVM_TR_RECORD記錄 transaction的信息。
我們 編譯完之后,然后開始跑仿真。跑仿真的時(shí)候會(huì)跳出下面verdi的界面。
接下來(lái)點(diǎn)擊綠色的箭頭就可以跑仿真
跑完仿真之后,我們點(diǎn)擊Verdi 里面 UVM這個(gè)地方,會(huì)出現(xiàn)UVM的環(huán)境。
下面我們看下 uvm component里面的信息,通過(guò)指定一個(gè) component 然后右擊 add to waveform 就可以看 component的信息。
Sequence里面的信息怎么看呢?下面點(diǎn)擊sequence view 就可以看 sequnce的信息。
我們要看sequence里面的一個(gè)變量變化,可以這么做。
先將一個(gè)object或者一個(gè)sequence 添加到watch中。
從這個(gè)watch中的object或者sequence里面選擇一個(gè)變量到 waveform上。重跑simulation,就可以看到對(duì)應(yīng)添加變量的值值。
下面是我們?cè)诓ㄐ紊峡吹絪equence里面變量的信息
看register model里面的值也是類似的做法,找到 register view,然后找到 register model 添加 register 到 waveform里面。
重跑simulation,就可以看到register值。
用verdi debug UVM總體感覺(jué)比較麻煩,個(gè)人還是喜歡打印log的方式debug。
-
仿真器
+關(guān)注
關(guān)注
14文章
1014瀏覽量
83591 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59665 -
UVM
+關(guān)注
關(guān)注
0文章
181瀏覽量
19121
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論