1. 使用+UVM_CONFIG_DB_TRACE和+UVM_RESOURCE_DB_TRACE命令行参数 UVM库在Command Line上提供了+UVM_CONFIG_DB_TRACE和+UVM_RESOURCE_DB_TRACE命令行参数,当运行仿真命令时,如果带上上述的参数,那么在log中会打印出对资源库的存和取的信息。+UVM_CONFIG_DB_TRACE用于uvm_config_db进行的存取,+UVM_RESOURCE_DB...
UVM还提供了一个命令行参数UVM_CONFIG_DB_TRACE来对config_db进行调试 <sim command> +UVM_CONFIG_DB_TRACE 换一个phase使用config_db config_db几乎都是在build_phase中,由于其config_db::set的第二个参数是字符串,所以经常出错。 一个component的路径可以通过get_full_name() 来获得,要想避免config_db::set...
还可以使用一个命令行参数UVM_CONFIG_DB_TRACE来对config_db进行调试,同样也可以加入到Makefile当中使用。 这里说一下default_sequence。对于sequence的启动,一般会选择default_sequence的方法。这种方法和config_db非常类似,同样具有四个参数,前两个参数同样用来组成路径。这个时候如果同样出现了字符串错误,uvm是无法上报...
functionvoidwr_driver::build_phase(uvm_phasephase);`uvm_info(this.name,$sformatf("test_sig=%0d",test_sig),UVM_LOW)super.build_phase(phase);`uvm_info(this.name,$sformatf("test_sig=%0d",test_sig),UVM_LOW)`uvm_info(this.name,"build_phase active.",UVM_LOW)if(!uvm_config_db#(vi...
(3.5.10 config_db的调试)此外UVM还提供了print_config函数,它会(递归)地显示component中所有可见的config_db的信息;或者也可以在命令行中使用UVM_CONFIG_DB_TRACE来对config_db进行调试。 UVM还继承了OVM的一些用法,例如set_config_int与uvm_config_db#(int)::set是等价的,而get_config_int与uvm_config_db#...
+UVM_CONFIG_DB_TRACE: 打开访问Config_db的追踪(tracing)功能,可以看到config_db的set和get操作在什么时间由什么组件发起。 +UVM_PHASE_TRACE:打开Phase执行的追踪功能,可以看到不同phase的执行顺序。 +UVM_OBJECTION_TRACE:打开Objection相关活...
+UVM_CONFIG_DB_TRACE: 打开访问Config_db的追踪(tracing)功能,可以看到config_db的set和get操作在什么时间由什么组件发起。 +UVM_PHASE_TRACE:打开Phase执行的追踪功能,可以看到不同phase的执行顺序。 +UVM_OBJECTION_TRACE:打开Objection相关活动的追踪功能,可以清晰地呈现出objection在运行中的状态。
+UVM_CONFIG_DB_TRACE: 打开访问Config_db的追踪(tracing)功能,可以看到config_db的set和get操作在什么时间由什么组件发起。 +UVM_PHASE_TRACE:打开Phase执行的追踪功能,可以看到不同phase的执行顺序。 +UVM_OBJECTION_TRACE:打开Objection相关活动的追踪功能,可以清晰地呈现出objection在运行中的状态。
我没有设置过,应该是UVM 默认设置的吧! 2)还是不会列出default_sequence 相关的信息。(我放在sequencer 的main_phase 里也没打印啊,为什么?) 3.命令行也行 <sim command> +UVM_CONFIG_DB_TRACE 4.上面两种都不会报告set 函数第二个参数的设置错误。
在实际项目中可能会由于字符串书写错误而编译无法检查出来导致大量时间的浪费,我们可以使用条件判断+`uvm_fatal、check_config_usage和仿真选项+UVM_CONFIG_DB_TRACE来进行configure机制的调试。