1. transaction 基础概念
transaction是一个抽象的概念。物理协议中的数据交换是以帧或者包为单位,通常在一帧或者一包中定义好各项参数,包中包括源地址、目的地址、包的类型、整个包的CRC的校验数据等,一个transaction就是一个包。
它包括域(传输给DUT的数据以及控制信息等域)、约束、field_automation以及其他必要内容。
2. transaction注意事项
a. my_transaction的基类是uvm_sequence_item,所有的transaction都要从uvm_sequence_item派生
b. 使用uvm_object_utils宏实现factory机制
c. my_transaction 和 my_driver 的区别
在整个仿真期间,my_driver是一直存在的,my_transaction是有生命周期的,它在仿真的某一时间产生,经过driver驱动,再经过ref_model 处理,最终由scoreboard比较完成后,生命周期即结束。
3. uvm_sequence_item
uvm_transaction 类:是uvm中事务的基本类,继承uvm_object的所有方法外,增加了timing和recording的接口。
uvm_sequence_item:用户定义事务的基类,同时也是uvm_sequence的基类,提供了实用强大sequence机制的基本功能。
4.field_automation机制
a.