Difference between uvm_sequence_item and uvm_transaction

Hi,
Uvm sequence item is an extension of uvm transaction class.
Then why is the use of uvm_transactions depricated?
When can we use uvm_sequence_item and in what cases uvm_transaction?

Thanks in advance.

The uvm_sequence_item contains additional variables to allow the object to be utilized on a sequencer/driver. Since the additional overhead is minimal and the goal is to have transactions created during sequences, you should always use uvm_sequence_item and not uvm_transaction.

hi,

uvm_sequence_item base class has m_sequence_id field this is necessary in bidirectional protocols so that sequencer can be able to route response back to correct sequence

In reply to balaji chirumamilla:

Please let me know ,what all the additional variables/methods included in seq_item.

Regards,
Nagendra.

In reply to gani:

https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1d/html/files/seq/uvm_sequence_item-svh.html