Jagjeevan Posted December 27, 2011 Report Share Posted December 27, 2011 Hi All, I have two questions, 1. What is the use of uvm_void class in the uvm class library ? 2. Why uvm_transaction does does not have reporting function ? Please let me know the info, Thanks in Advance Jagjeevan Quote Link to comment Share on other sites More sharing options...
dave_59 Posted December 27, 2011 Report Share Posted December 27, 2011 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 =""); super.new(name); if (log==null) log = new("my_transaction"); endfunction Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.