1.seq中的pre_start
pre_start 是 uvm_sequence 类的一个虚拟方法,用于在序列开始执行之前进行初始化和设置。这个方法在调用 start 方法前立即执行,提供了一个执行自定义初始化代码的机会。
start 方法用于启动序列的执行,而 pre_start 可以在 start 调用的上下文中执行额外的设置
2.uvm_top.print_topology();
调用 uvm_top(UVM 环境的顶级组件)的 print_topology 方法,打印出整个 UVM 测试环境的组件层次结构和连接关系。
可以在base_test中使用
3.factory.print();
用于打印工厂对象的相关信息,通常,factory 是 UVM 工厂的实例,负责组件的创建和管理。print 方法可用于调试目的,显示工厂的配置和注册的组件类型。
可以在base_test中使用
4.get_type_name、get_inst_name 和 get_full_nam的区别
get_type_name()功能:返回对象的类型名称(类名称)
get_inst_name()功能:返回对象的实例名称
get_full_name()功能:返回对象的完整路径名称
5.reg_model.print()
打印寄存器模型:此方法可以用来打印整个寄存器模型的详细信息,包括所有寄存器、字段和它们的当前状态。
6.string类型变量前不能使用rand,所以当需要randomize的时候,无法随机化string类型变量,所以在uvm_do_with必须传递string时,应该选择使用其他方法,比如手动控制;
7.coverpoint中illegal_bins的使用方法
用default取代其他所有的值
8.$sformat和$sformatf的区别
sformat示例用法:
string result;
$sformat(result, "The value is %0d", 42);
sformatf示例用法:
string result = $sformatf("The value is %0d", 42);