UVM Recorders | |
uvm_recorder | Abstract class which defines the recorder API. |
uvm_text_recorder | The uvm_text_recorder is the default recorder implementation for the uvm_text_tr_database. |
Abstract class which defines the recorder API.
uvm_recorder | |||||
Abstract class which defines the recorder API. | |||||
Class Hierarchy | |||||
| |||||
Class Declaration | |||||
| |||||
default_radix | This is the default radix setting if <record_field> is called without a radix. | ||||
physical | This bit provides a filtering mechanism for fields. | ||||
abstract | This bit provides a filtering mechanism for fields. | ||||
identifier | This bit is used to specify whether or not an object’s reference should be recorded when the object is recorded. | ||||
recursion_policy | Sets the recursion policy for recording objects. | ||||
Configuration API | |||||
Transaction Recorder API | Once a recorder has been opened via <uvm_tr_stream::open_recorder>, the user can close the recorder. | ||||
Handles | |||||
Attribute Recording | |||||
Implementation Agnostic API |
uvm_radix_enum default_radix = UVM_HEX
This is the default radix setting if <record_field> is called without a radix.
bit physical = 1
This bit provides a filtering mechanism for fields.
The abstract and physical settings allow an object to distinguish between two different classes of fields.
It is up to you, in the uvm_object::do_record method, to test the setting of this field if you want to use the physical trait as a filter.
bit abstract = 1
This bit provides a filtering mechanism for fields.
The abstract and physical settings allow an object to distinguish between two different classes of fields.
It is up to you, in the uvm_object::do_record method, to test the setting of this field if you want to use the abstract trait as a filter.
bit identifier = 1
This bit is used to specify whether or not an object’s reference should be recorded when the object is recorded.
`ifndef UVM_ENABLE_DEPRECATED_API local `endif uvm_recursion_policy_enum policy = UVM_DEFAULT_POLICY
Sets the recursion policy for recording objects.
The default policy is deep (which means to recurse an object).
Once a recorder has been opened via <uvm_tr_stream::open_recorder>, the user can close the recorder.
Due to the fact that many database implementations will require crossing a language boundary, an additional step of freeing the recorder is required.
A link can be established within the database any time between open and free, however it is illegal to establish a link after freeing the recorder.
The uvm_text_recorder is the default recorder implementation for the uvm_text_tr_database.
@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2
uvm_text_recorder | ||||||
The uvm_text_recorder is the default recorder implementation for the uvm_text_tr_database. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
new | Constructor | |||||
Implementation Agnostic API | ||||||
do_open | Callback triggered via <uvm_tr_stream::open_recorder>. | |||||
do_close | Callback triggered via <uvm_recorder::close>. | |||||
do_free | Callback triggered via <uvm_recorder::free>. | |||||
do_record_field | Records an integral field (less than or equal to 4096 bits). | |||||
do_record_field_int | Records an integral field (less than or equal to 64 bits). | |||||
do_record_field_real | Record a real field. | |||||
do_record_object | Record an object field. | |||||
do_record_string | Records a string field. | |||||
do_record_time | Records a time field. | |||||
do_record_generic | Records a name/value pair, where value has been converted to a string. | |||||
Implementation Specific API | ||||||
write_attribute | Outputs a uvm_bitstream_t attribute to the textual log. | |||||
write_attribute_int | Outputs an uvm_integral_t attribute to the textual log |
function new( string name = "unnamed-uvm_text_recorder" )
Constructor
Parameters --NODOCS-- name - Instance name
protected virtual function void do_open( uvm_tr_stream stream, time open_time, string type_name )
Callback triggered via <uvm_tr_stream::open_recorder>.
Text-backend specific implementation.
protected virtual function void do_close( time close_time )
Callback triggered via <uvm_recorder::close>.
Text-backend specific implementation.
protected virtual function void do_free()
Callback triggered via <uvm_recorder::free>.
Text-backend specific implementation.
protected virtual function void do_record_field( string name, uvm_bitstream_t value, int size, uvm_radix_enum radix )
Records an integral field (less than or equal to 4096 bits).
Text-backend specific implementation.
protected virtual function void do_record_field_int( string name, uvm_integral_t value, int size, uvm_radix_enum radix )
Records an integral field (less than or equal to 64 bits).
Text-backend specific implementation.
protected virtual function void do_record_field_real( string name, real value )
Record a real field.
Text-backened specific implementation.
protected virtual function void do_record_object( string name, uvm_object value )
Record an object field.
Text-backend specific implementation.
The method uses identifier to determine whether or not to record the object instance id, and recursion_policy to determine whether or not to recurse into the object.
protected virtual function void do_record_string( string name, string value )
Records a string field.
Text-backend specific implementation.
protected virtual function void do_record_time( string name, time value )
Records a time field.
Text-backend specific implementation.
protected virtual function void do_record_generic( string name, string value, string type_name )
Records a name/value pair, where value has been converted to a string.
Text-backend specific implementation.
function void write_attribute( string nm, uvm_bitstream_t value, uvm_radix_enum radix, int numbits = $bits(uvm_bitstream_t) )
Outputs a uvm_bitstream_t attribute to the textual log.
nm | Name of the attribute |
value | Value |
radix | Radix of the output |
numbits | number of valid bits |
@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 write_attribute_int( string nm, uvm_integral_t value, uvm_radix_enum radix, int numbits = $bits(uvm_bitstream_t) )
Outputs an uvm_integral_t attribute to the textual log
nm | Name of the attribute |
value | Value |
radix | Radix of the output |
numbits | number of valid bits |
@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2
Abstract class which defines the recorder API.
virtual class uvm_recorder extends uvm_policy
The uvm_text_recorder is the default recorder implementation for the uvm_text_tr_database.
class uvm_text_recorder extends uvm_recorder
The uvm_text_tr_database is the default implementation for the uvm_tr_database.
class uvm_text_tr_database extends uvm_tr_database
The uvm_void class is the base class for all UVM classes.
virtual class uvm_void
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
The abstract uvm_policy class provides a common base from which all UVM policy classes derive Implementation as per Section 16.1 UVM Policy
virtual class uvm_policy extends uvm_object
This is the default radix setting if record_field is called without a radix.
uvm_radix_enum default_radix = UVM_HEX
This bit provides a filtering mechanism for fields.
bit physical = 1
This bit provides a filtering mechanism for fields.
bit abstract = 1
This bit is used to specify whether or not an object’s reference should be recorded when the object is recorded.
bit identifier = 1
Sets the recursion policy for recording objects.
`ifndef UVM_ENABLE_DEPRECATED_API local `endif uvm_recursion_policy_enum policy = UVM_DEFAULT_POLICY
The do_record method is the user-definable hook called by the record method.
virtual function void do_record ( uvm_recorder recorder )
Constructor
function new( string name = "unnamed-uvm_text_recorder" )
Callback triggered via uvm_tr_stream::open_recorder.
protected virtual function void do_open( uvm_tr_stream stream, time open_time, string type_name )
Callback triggered via uvm_recorder::close.
protected virtual function void do_close( time close_time )
Callback triggered via uvm_recorder::free.
protected virtual function void do_free()
Records an integral field (less than or equal to 4096 bits).
protected virtual function void do_record_field( string name, uvm_bitstream_t value, int size, uvm_radix_enum radix )
Records an integral field (less than or equal to 64 bits).
protected virtual function void do_record_field_int( string name, uvm_integral_t value, int size, uvm_radix_enum radix )
Record a real field.
protected virtual function void do_record_field_real( string name, real value )
Record an object field.
protected virtual function void do_record_object( string name, uvm_object value )
Records a string field.
protected virtual function void do_record_string( string name, string value )
Records a time field.
protected virtual function void do_record_time( string name, time value )
Records a name/value pair, where value has been converted to a string.
protected virtual function void do_record_generic( string name, string value, string type_name )
Outputs a uvm_bitstream_t attribute to the textual log.
function void write_attribute( string nm, uvm_bitstream_t value, uvm_radix_enum radix, int numbits = $bits(uvm_bitstream_t) )
Outputs an uvm_integral_t attribute to the textual log
function void write_attribute_int( string nm, uvm_integral_t value, uvm_radix_enum radix, int numbits = $bits(uvm_bitstream_t) )