Jump to content

use of uvm_void class ?

Recommended Posts

1. IMHO, uvm_void is of no use. It destroys the type safety of class by create a universal base class type - similar to void* in C++.

2. The idea of a transaction is that it is transient, it exists only for a short time. Whereas the reporting functions and their associated settings in the report_handler exist for the entire simulation.

When you issue a report in a class that is not extended from uvm_report_object, it will use the global reporter. You can identify messages from your transactions by using the string ID field of the message.

Usually transactions are sequence_items and some people use the report handler of the sequencer they are running on by using m_sequencer.uvm_report_****().

Another option is to create a static log member in your report handler and initialize it on construction of the first transaction.

my_transaction extends uvm_transaction;

static uvm_reporter log;

function new(string name ="");


if (log==null) log = new("my_transaction");


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.

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...