The library implements the following public API beyond what is documented in 1800.2.
uvm_resource_base | |
The library implements the following public API beyond what is documented in 1800.2. | |
Audit Trail | To find out what is happening as the simulation proceeds, an audit trail of each read and write is kept. |
record_read_access | Record the read access information for this resource for debug purposes. |
record_write_access | Record the write access information for this resource for debug purposes. |
print_accessors | Print the read/write access history of the resource, using the accessor argument <accessor> which is passed to the uvm_resource#(T)::read and uvm_resource#(T)::write |
To find out what is happening as the simulation proceeds, an audit trail of each read and write is kept. The uvm_resource#(T)::read and uvm_resource#(T)::write methods each take an accessor argument. This is a handle to the object that performed that resource access.
function T read(uvm_object accessor = null); function void write(T t, uvm_object accessor = null);
The accessor can by anything as long as it is derived from uvm_object. The accessor object can be a component or a sequence or whatever object from which a read or write was invoked. Typically the this handle is used as the accessor. For example:
uvm_resource#(int) rint; int i; ... rint.write(7, this); i = rint.read(this);
The accessor’s get_full_name() is stored as part of the audit trail. This way you can find out what object performed each resource access. Each audit record also includes the time of the access (simulation time) and the particular operation performed (read or write).
Auditing is controlled through the <uvm_resource_options> class.
function void record_read_access( uvm_object accessor = null )
Record the read access information for this resource for debug purposes. This information is used by print_accessors function.
@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2
function void record_write_access( uvm_object accessor = null )
Record the write access information for this resource for debug purposes. This information is used by print_accessors function.
@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2
virtual function void print_accessors()
Print the read/write access history of the resource, using the accessor argument <accessor> which is passed to the uvm_resource#(T)::read and uvm_resource#(T)::write
@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2
Record the read access information for this resource for debug purposes.
function void record_read_access( uvm_object accessor = null )
Record the write access information for this resource for debug purposes.
function void record_write_access( uvm_object accessor = null )
Print the read/write access history of the resource, using the accessor argument accessor which is passed to the uvm_resource#(T)::read and uvm_resource#(T)::write
virtual function void print_accessors()