本文的实例二相对于上一篇的实例一有以下变化:
- 实例二在env中采用了
default_sequence
隐式的方式启动sequence发送数据,不同于上文中的start
显式方式启动; - 实例二中添加了新的数据包,该包继承原来的包,增补了约束,用于后续的覆盖;
- 实例二增加了测试用例,在测试用例中利用
factory
机制,实现了数据包packet_da_3对于packet的覆盖(override),而不用新建sequence,提高了代码的重用性。 - 在
test_collection.sv
中的分别采用了set_inst_override_by_type()
和set_type_override_by_type()
方法实现数据包的覆盖,由于用来覆盖的数据包一致,所以最终效果一致。