The UVM Sequence Item is the base class for user-defined transactions that leverage the stimulus generation and control capabilities of the sequence-sequencer mechanism.
Coding Guidelines
Tip
Use conditional compilation guards to avoid compiling the same include file more than once.
Create user-defined transaction classes by extending the class uvm_sequence_item.
Do not use field macros. (This comes at a heavy cost in terms of performance)
Use the rand qualifier in front of any class member variables that might need to be randomized, now or in the future.
After any member variables, define a constructor that includes a single string name argument with a default value of the empty string, a call to super.new, and is otherwise empty.
After the constructor, always override the convert2string, do_copy, do_compare, do_print, and do_record methods.
Always instantiate transaction objects using the factory.