您的位置:首頁>新聞 > 產業 >

SystemVerilog|UVM|超實用!盤點UVM不同機制的調試功能

2023-08-24 00:31:23    來源:面包芯語

作為UVM的用戶,我們需要相信在絕大部分情況下這些機制本身是沒有問題的。因此,從頂層獲得有效的調試信息就非常關鍵,比起潛入到內部要高效得多。

UVM將不同機制的調試功能封裝成了命令行參數。在運行仿真的時候帶上這些參數,就可以在仿真日志中打印出來對應的詳細調試信息。本節將這些命令行參數都梳理出來,并附有仿真日志截圖。


(資料圖片)

+UVM_CONFIG_DB_TRACE: 打開訪問Config_db的追蹤(tracing)功能,可以看到config_db的set和get操作在什么時間由什么組件發起。

+UVM_PHASE_TRACE:打開Phase執行的追蹤功能,可以看到不同phase的執行順序。

+UVM_OBJECTION_TRACE:打開Objection相關活動的追蹤功能,可以清晰地呈現出objection在運行中的狀態。

+UVM_VERBOSITY:設置打印信息的冗余程度,有效地控制不同重要性信息的打印和屏蔽。

除了命令行參數,UVM還提供了很多內置打印函數。這些函數可以在驗證環境中被調用,調用后會將對應的數據結構按照強可讀性的格式打印到仿真日志中,為環境調試工作提供極大的便利。

uvm_root::print_topology():打印整個驗證環境的組件拓撲結構

uvm_component::print_config():打印當前組件可見視角下的所有配置資源信息

uvm_component::print_override_info():打印當前組件的工廠重載信息

uvm_factory::print():打印全局工廠中注冊的類型以及instance和type重載信息

uvm_factory::debug_create_by_type():打印工廠根據參數實際會創建的類型

uvm_port_base::debug_connected_to():打印當前端口連接的下游端口網絡,包括port/export/imp

參考資料

[1] Accellera Systems Initiative. "Universal Verification Methodology (UVM) 1.2 Class Reference" (2014).

關鍵詞:

相關閱讀