UVM调试功能指南
UVM调试功能全解析
1. 调试功能概览
graph TD
A[配置调试] --> A1[命令行跟踪]
A --> A2[组件配置打印]
A --> A3[资源库转储]
B[工厂调试] --> B1[类型注册追踪]
C[阶段调试] --> C1[相位跟踪]
D[异议调试] --> D1[对象跟踪]
E[TLM调试] --> E1[连接拓扑分析]
F[通用调试] --> F1[组件层次]
F --> F2[消息控制]
2. 核心调试功能详解
2.1 配置调试
| 调试方法 | 命令行参数 | 使用场景 |
|---|---|---|
| 配置数据库跟踪 | +UVM_CONFIG_DB_TRACE | 追踪set/get操作 |
| 组件配置打印 | print_config() | 查看组件配置信息 |
| 资源库转储 | uvm_config_db::dump() | 显示当前资源配置 |
代码示例:
// 打印组件配置信息
function void my_env::end_of_elaboration_phase(uvm_phase phase);
super.end_of_elaboration_phase(phase);
print_config(1, 1); // 递归打印带审计信息
endfunction
// 资源库转储
uvm_config_db #(int)::dump();
2.2 工厂调试
// 打印工厂状态
uvm_factory::get().print();
// 典型输出:
// #### Factory Configuration (*)
// No instance or type overrides...
// All types registered: 44
// adpcm_driver
// adpcm_sequencer...
2.3 阶段跟踪
启用方式:
+UVM_PHASE_TRACE
输出示例:
[PH/TRC/STRT] Phase 'build' Starting
[PH/TRC/DONE] Phase 'build' Completed
2.4 异议跟踪
启用方式:
+UVM_OBJECTION_TRACE
输出示例:
[OBJTN_TRC] Object uvm_test_top raised 1 objection
[OBJTN_TRC] Object uvm_top added 1 objection
2.5 TLM连接分析
// 端口连接追踪
m_driver.seq_item_port.debug_connected_to();
m_sequencer.seq_item_export.debug_provided_to();
// 输出显示连接拓扑:
// uvm_test_top.m_driver.seq_item_port
// |_uvm_test_top.m_sequencer.seq_item_export
3. 通用调试工具
3.1 组件层次结构
uvm_top.print_topology();
// 输出示例:
// UVM testbench topology:
// uvm_test_top adpcm_test
// m_driver adpcm_driver
// seq_item_port uvm_seq_item_pull_port
3.2 消息控制
| 控制方式 | 命令行参数 | 作用范围 |
|---|---|---|
| 全局详细度设置 | +UVM_VERBOSITY=UVM_DEBUG | 全环境 |
| 组件级详细度设置 | +uvm_set_verbosity | 指定组件 |
4. 调试功能对比表
| 功能类别 | 跟踪方法 | 最佳使用阶段 | 输出类型 |
|---|---|---|---|
| 配置跟踪 | print_config() | end_of_elaboration | 结构信息 |
| 工厂状态 | factory.print() | connect_phase | 注册类型列表 |
| 相位跟踪 | +UVM_PHASE_TRACE | 全程 | 阶段状态变更 |
| TLM连接 | debug_connected_to() | end_of_elaboration | 端口连接拓扑 |
5. 调试流程最佳实践
sequenceDiagram
participant Test
participant Env
participant Config
participant Factory
Test->>+Config: set虚拟接口
Config->>+Env: 传递配置
Env->>+Factory: 创建组件
Factory-->>-Env: 返回实例
Env->>Test: 完成构建
Note right of Test: print_topology()查看结构
提示:结合使用+UVM_CONFIG_DB_TRACE和print_topology()可快速定位配置传递问题

浙公网安备 33010602011771号