Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why uvm_transaction class when we always extend from uvm_sequence_item?

I was going through basics of UVM tutorials. Everywhere I read the transaction objects are always extended from uvm_sequence_item and not uvm_transaction since uvm_sequence_item has additional features like transaction id, etc. If that is the case, why is the uvm_transaction class even there in the UVM class hierarchy?

Who is using uvm_transaction other than uvm_sequence_item extending from it?

Is it because of legacy?

like image 754
user1978273 Avatar asked Nov 18 '25 07:11

user1978273


1 Answers

This is what the UVM Class Reference says about this:

"The uvm_transaction class is the root base class for UVM transactions. Inheriting all the methods of uvm_object, uvm_transaction adds a timing and recording interface.

This class provides timestamp properties, notification events, and transaction recording support.

Use of this class as a base for user-defined transactions is deprecated. Its subtype, uvm_sequence_item, shall be used as the base class for all user-defined transaction types."

like image 147
AndresM Avatar answered Nov 20 '25 13:11

AndresM



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!