Uvm_component and uvm_report_object

Hi

Uvm_component is derived from uvm_report_object?
I just wanted to know the significance of this since we can use uvm_info,uvm_error, etc for reporting pretty much everywhere including uvm_sequence which is derived from the uvm_object.

Thanks in advance!

In reply to possible:

You are right with the inheritance. But uvm_sequence_item and uvm_sequence have areporting interface. This contains the corresponding report functions. This is what the UVM Reference Manual is saying:
“Sequence items and sequences will use the sequencer which they are associated with for reporting messages. If no sequencer has been set for the item/sequence using set_sequencer or indirectly via uvm_sequence_base::start_item or uvm_sequence_base::start), then the global reporter will be used.”

In reply to chr_sue:

Warning: The 1800.2 UVM LRM has a change in behavior from previous versions. In UVM 1.2 and earlier, uvm_sequence used the global reporter, just like any other class not derived from uvm_report_object. uvm_pkg::uvm_report_info is a wrapper that calls uvm_top.uvm_report_info.

This functionality comes from very early AVM/OVM, long before interface classes with multiple inheritance was defined, uvm_report_object should have been an interface class that uvm_component and uvm_sequence inherit with slightly different implementations.