An atomic generator is a process of generating a single instance of random data object or transaction at a time.
Purpose :
To validate the protocol/to reach the functional coverage space, that does not depend on any specific sequence.
The vmm_atomic_gen macro can be used to automatically generate an atomic generator transactor for the user defined clas.The resulting generator class is an extension of vmm_xactor.
i.e
`vmm_atomic_gen ( class_name, class_description_string ) ==> Creates class class_name_atomic_gen (see below)
class class_name_atomic_gen extends vmm_xactor;
The properties and methods of atomic generator are,
function new ( string instance, int stream_id = -1,
class_name_channel out_chan = null );
class_name_channel out_chan;
int unsigned stop_after_n_insts;
class_name randomized_obj;
enum { GENERATED };
enum { DONE };
virtual task inject ( class_name data, ref bit dropped );
Flow Chart which describes the internal operation of the atomic generator, This flow chart is drawn based on our understandings by working on various examples, SNUG papers and rvm/vmm manual.

No comments:
Post a Comment