1.也可以将driver 中的drive_one_pkt 也移到pre_tran 中。更进一步,将seq_item_port.get_next_item 移到pre_tran 也是可以的。
2.其实完全可以不用sequence,只用callback 就可以实现所有的测试用例。假设A 类如下:
3.在my_driver 的main_phase 中,去掉所有其他代码,只调用A 的run:
4.建立新的测试用例,只需要从A 派生一个类,并重载其gen_tran 函数:
1)新建测试用例相当于重载gen_tran。如果不满足要求,还可以将A 类的run 重载。
2)在run 中控制objection,激励产生在gen_tran 中。