what is the difference between uvm transaction and uvm object??
uvm_transaction is derived from uvm_object. uvm_transaction adds timing and recording interface on top of the uvm_object attributes. Also note that users are required to use the uvm_seq_item (and not uvm_transaction) for defining user defined transactions. uvm_seq_item is derived from uvm_transaction.