Jump to content

uvm_report_object -- why only uvm_component based classed are derived from uvm_report and not uvm_sequence_item/uvm_transaction


dips1000

Recommended Posts

uvm_report_object  -- why only uvm_component based classed  are derived from uvm_report and not uvm_sequence_item/uvm_transaction 

 

Observation

uvm_component and all child classes are derived from uvm_report_object - and hence have uvm reporting function calls access by default 

however , uvm_sequence_item and its children are not derived from uvm_report_object and hence do not have reporting functions defined by default and uvm reporting functions are actually redefined in uvm_squence_item class 

 

Question : 

Why not derive the uvm_sequence_item or uvm_transaction class also derive from uvm_report_object in base  class implementation ? 

 

 

 

 

Link to comment
Share on other sites

Simplistic answer: Because that is how the standards committee defined it originally, and a lot code now depends on this behavior.

Rationale answer: Because most issues revolve around the component hierarchy (what component is broken or causing this issue?). You can obtain the effect you may seeking by creating a bogus transaction component at the top-level and then use the `uvm_info_context variants to specify the controlling component. You may need more than one of these for some situations.

Link to comment
Share on other sites

This goes back all the way back to Mentor's AVM, before any official standard. "Components" are essentially long-lasting objects that get constructed at the beginning of the test. There are relatively few of them compared to "transaction" classes. There is considerable overhead in creating a report_object because each object has to maintain a database of report setting or knobs that would be too expensive for the magnitude of transaction that get created. 

You can always use the context of the sequencer (m_sequencer), or create an independent report object if you need to control the reporting of sequences separately.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...