1.也可以将driver 中的drive_one_pkt 也移到pre_tran 中。更进一步,将seq_item_port.get_next_item 移到pre_tran 也是可以的。

2.其实完全可以不用sequence,只用callback 就可以实现所有的测试用例。假设A 类如下:

UVM:9.1.6 使用callback 函数/任务来实现所有的测试用例_测试用例


3.在my_driver  的main_phase 中,去掉所有其他代码,只调用A 的run:

UVM:9.1.6 使用callback 函数/任务来实现所有的测试用例_测试用例_02


4.建立新的测试用例,只需要从A 派生一个类,并重载其gen_tran 函数:

UVM:9.1.6 使用callback 函数/任务来实现所有的测试用例_测试用例_03

1)新建测试用例相当于重载gen_tran。如果不满足要求,还可以将A  类的run 重载。

2)在run 中控制objection,激励产生在gen_tran 中。