作為UVM的用戶,我們需要相信在絕大部分情況下這些機(jī)制本身是沒有問題的。因此,從頂層獲得有效的調(diào)試信息就非常關(guān)鍵,比起潛入到內(nèi)部要高效得多。
這也是本文的目的,盤點(diǎn)UVM針對不同機(jī)制提供給用戶的調(diào)試功能。建議收藏和關(guān)注,總有一天你會用到。本文的示例代碼都是在UVM類庫提供的例程上進(jìn)行少量修改得到,其中包含questasim的運(yùn)行腳本。
01 PLUGARG(命令行參數(shù))
01 PLUGARG(命令行參數(shù))
UVM將不同機(jī)制的調(diào)試功能封裝成了命令行參數(shù)。在運(yùn)行仿真的時(shí)候帶上這些參數(shù),就可以在仿真日志中打印出來對應(yīng)的詳細(xì)調(diào)試信息。本節(jié)將這些命令行參數(shù)都梳理出來,并附有仿真日志截圖。
+UVM_DUMP_CMDLINE_ARGS :導(dǎo)出所有的命令行參數(shù),確認(rèn)當(dāng)前的命令行參數(shù)符合你的預(yù)期。
+UVM_CONFIG_DB_TRACE : 打開訪問Config_db的追蹤(tracing)功能,可以看到config_db的set和get操作在什么時(shí)間由什么組件發(fā)起。
+UVM_PHASE_TRACE :打開Phase執(zhí)行的追蹤功能,可以看到不同phase的執(zhí)行順序。
+UVM_OBJECTION_TRACE :打開Objection相關(guān)活動的追蹤功能,可以清晰地呈現(xiàn)出objection在運(yùn)行中的狀態(tài)。
+UVM_VERBOSITY :設(shè)置打印信息的冗余程度,有效地控制不同重要性信息的打印和屏蔽。
02 PRINT(打印)
02 PRINT(打印)
除了命令行參數(shù),UVM還提供了很多內(nèi)置打印函數(shù)。這些函數(shù)可以在驗(yàn)證環(huán)境中被調(diào)用,調(diào)用后會將對應(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() :打印全局工廠中注冊的類型以及instance和type重載信息
uvm_factory::debug_create_by_type() :打印工廠根據(jù)參數(shù)實(shí)際會創(chuàng)建的類型
uvm_factory::debug_create_by_name() :打印工廠根據(jù)參數(shù)實(shí)際會創(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
[1] Accellera Systems Initiative. "Universal Verification Methodology (UVM) 1.2 Class Reference" (2014).
[2] Accellera Systems Initiative. "Universal Verification Methodology (UVM) 1.2 User's Guide" (2015).
-
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19171 -
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68628 -
例程
+關(guān)注
關(guān)注
0文章
28瀏覽量
12077
發(fā)布評論請先 登錄
相關(guān)推薦
評論