基于UVM搭建驗(yàn)證環(huán)境和構(gòu)造驗(yàn)證激勵(lì),調(diào)試的工作總是繞不開的。實(shí)際上,對(duì)驗(yàn)證環(huán)境和激勵(lì)的調(diào)試,往往伴隨著驗(yàn)證階段的前半程,并且會(huì)花掉驗(yàn)證工程師很多時(shí)間和精力。然而,大部分細(xì)節(jié)被隱藏在復(fù)雜的環(huán)境內(nèi)部。這里的復(fù)雜,指的是UVM本身構(gòu)造的不同機(jī)制(比如factory、config_db、objection等),以及在不同機(jī)制內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu)。
作為UVM的用戶,我們需要相信在絕大部分情況下這些機(jī)制本身是沒(méi)有問(wèn)題的。因此,從頂層獲得有效的調(diào)試信息就非常關(guān)鍵,比起潛入到內(nèi)部要高效得多。
這也是本文的目的,盤點(diǎn)UVM針對(duì)不同機(jī)制提供給用戶的調(diào)試功能。建議收藏和關(guān)注,總有一天你會(huì)用到。本文的示例代碼都是在UVM類庫(kù)提供的例程上進(jìn)行少量修改得到的。
01 PLUGARG(命令行參數(shù))
01 PLUGARG(命令行參數(shù))
UVM將不同機(jī)制的調(diào)試功能封裝成了命令行參數(shù)。在運(yùn)行仿真的時(shí)候帶上這些參數(shù),就可以在仿真日志中打印出來(lái)對(duì)應(yīng)的詳細(xì)調(diào)試信息。本節(jié)將這些命令行參數(shù)都梳理出來(lái),并附有仿真日志截圖。
+UVM_DUMP_CMDLINE_ARGS:導(dǎo)出所有的命令行參數(shù),確認(rèn)當(dāng)前的命令行參數(shù)符合你的預(yù)期。
+UVM_CONFIG_DB_TRACE: 打開訪問(wèn)Config_db的追蹤(tracing)功能,可以看到config_db的set和get操作在什么時(shí)間由什么組件發(fā)起。
+UVM_PHASE_TRACE:打開Phase執(zhí)行的追蹤功能,可以看到不同phase的執(zhí)行順序。
+UVM_OBJECTION_TRACE:打開Objection相關(guān)活動(dòng)的追蹤功能,可以清晰地呈現(xiàn)出objection在運(yùn)行中的狀態(tài)。
+UVM_VERBOSITY:設(shè)置打印信息的冗余程度,有效地控制不同重要性信息的打印和屏蔽。
02 PRINT(打印)
02PRINT(打印)
除了命令行參數(shù),UVM還提供了很多內(nèi)置打印函數(shù)。這些函數(shù)可以在驗(yàn)證環(huán)境中被調(diào)用,調(diào)用后會(huì)將對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)按照強(qiáng)可讀性的格式打印到仿真日志中,為環(huán)境調(diào)試工作提供極大的便利。
uvm_root::print_topology():打印整個(gè)驗(yàn)證環(huán)境的組件拓?fù)浣Y(jié)構(gòu)
uvm_component::print_config():打印當(dāng)前組件可見視角下的所有配置資源信息
uvm_component::print_override_info():打印當(dāng)前組件的工廠重載信息
uvm_factory::print():打印全局工廠中注冊(cè)的類型以及instance和type重載信息
uvm_factory::debug_create_by_type():打印工廠根據(jù)參數(shù)實(shí)際會(huì)創(chuàng)建的類型
uvm_factory::debug_create_by_name():打印工廠根據(jù)參數(shù)實(shí)際會(huì)創(chuàng)建的類型
uvm_port_base::debug_connected_to():打印當(dāng)前端口連接的下游端口網(wǎng)絡(luò),包括port/export/imp
uvm_port_base::debug_provided_to():打印當(dāng)前端口連接的上游端口網(wǎng)絡(luò),包括port/export
審核編輯 :李倩
-
仿真
+關(guān)注
關(guān)注
50文章
4129瀏覽量
134066 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19236 -
機(jī)制
+關(guān)注
關(guān)注
0文章
24瀏覽量
9832
原文標(biāo)題:SystemVerilog | UVM | 超實(shí)用!盤點(diǎn)UVM不同機(jī)制的調(diào)試功能
文章出處:【微信號(hào):Rocker-IC,微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ADS1274 SCLK怎么處理?是和CLK直接連?還是可以由外部提供給它?
REF02提供給AD0809基準(zhǔn)電壓時(shí),輸出電壓為什么會(huì)變化?
2024 電機(jī)控制年度技術(shù)分享會(huì)來(lái)啦!??!
Google Cloud發(fā)布兩款針對(duì)企業(yè)客戶的全新解決方案
ADS54J60內(nèi)部有兩個(gè)ADC模塊,內(nèi)部可以設(shè)置分別提供給兩個(gè)ADC模塊同頻相位相差90度的采樣時(shí)鐘嗎?
用ADS1251進(jìn)行轉(zhuǎn)換的時(shí)候,CLK線是一直跳動(dòng)提供給ADC進(jìn)行轉(zhuǎn)換,還是只要在讀取的時(shí)候提供給ADC進(jìn)行轉(zhuǎn)換?
能否使用ADS1262的REFOUT緩沖后提供給外部DAC?
云計(jì)算hpc的主要功能是什么
七大嵌入式GUI盤點(diǎn)
鴻蒙原生應(yīng)用元服務(wù)開發(fā)-設(shè)備管理USB服務(wù)開發(fā)概覽
OpenAI推出ChatGPT桌面版應(yīng)用程序
fpga驗(yàn)證和uvm驗(yàn)證的區(qū)別
uvm1.1升級(jí)為uvm1.2 uvm_report_server報(bào)錯(cuò)是何原因?
![<b class='flag-5'>uvm</b>1.1升級(jí)為<b class='flag-5'>uvm</b>1.2 <b class='flag-5'>uvm</b>_report_server報(bào)錯(cuò)是何原因?](https://file1.elecfans.com/web2/M00/C2/84/wKgZomXlaBOAeLH-AAAeICCaSgU574.png)
評(píng)論