Class uvm_reg_cbs
- uvm_pkg :: uvm_void
Constructors
Functions
- virtual function void post_predict ( uvm_reg_field fld, uvm_reg_data_t previous, uvm_reg_data_t value, uvm_predict_e kind, uvm_path_e path, uvm_reg_map map ) [source]
Called by the uvm_reg_field::predict() method after a successful UVM_PREDICT_READ or UVM_PREDICT_WRITE prediction.
previous is the previous value in the mirror and value is the latest predicted value. Any change to value will modify the predicted mirror value.
- virtual function void encode ( uvm_reg_data_t data ) [source]
Data encoder
The registered callback methods are invoked in order of registration after all the pre_write methods have been called. The encoded data is passed through each invocation in sequence. This allows the pre_write methods to deal with clear-text data.
By default, the data is not modified.
- virtual function void decode ( uvm_reg_data_t data ) [source]
Data decode
The registered callback methods are invoked in reverse order of registration before all the post_read methods are called. The decoded data is passed through each invocation in sequence. This allows the post_read methods to deal with clear-text data.
The reversal of the invocation order is to allow the decoding of the data to be performed in the opposite order of the encoding with both operations specified in the same callback extension.
By default, the data is not modified.
Tasks
- virtual function pre_write ( uvm_reg_item rw ) [source]
Called before a write operation.
All registered pre_write callback methods are invoked after the invocation of the pre_write method of associated object (uvm_reg, uvm_reg_field, uvm_mem, or uvm_reg_backdoor). If the element being written is a uvm_reg, all pre_write callback methods are invoked before the contained uvm_reg_fields.
Backdoor
uvm_reg_backdoor::pre_write, uvm_reg_cbs::pre_write cbs for backdoor.
Register
uvm_reg::pre_write, uvm_reg_cbs::pre_write cbs for reg, then foreach field: uvm_reg_field::pre_write, uvm_reg_cbs::pre_write cbs for field
RegField
uvm_reg_field::pre_write, uvm_reg_cbs::pre_write cbs for field
Memory
uvm_mem::pre_write, uvm_reg_cbs::pre_write cbs for mem
The rw argument holds information about the operation.
Modifying the value modifies the actual value written.
For memories, modifying the offset modifies the offset used in the operation.
For non-backdoor operations, modifying the access path or address map modifies the actual path or map used in the
operation.
If the rw.status is modified to anything other than <UVM_IS_OK>, the operation is aborted.
See uvm_reg_item for details on rw information.
- virtual function post_write ( uvm_reg_item rw ) [source]
Called after a write operation.
All registered post_write callback methods are invoked before the invocation of the post_write method of the associated object (uvm_reg, uvm_reg_field, uvm_mem, or uvm_reg_backdoor). If the element being written is a uvm_reg, all post_write callback methods are invoked before the contained uvm_reg_fields.
Summary of callback order
Backdoor
uvm_reg_cbs::post_write cbs for backdoor, uvm_reg_backdoor::post_write
Register
uvm_reg_cbs::post_write cbs for reg, uvm_reg::post_write, then foreach field: uvm_reg_cbs::post_write cbs for field, uvm_reg_field::post_read
RegField
uvm_reg_cbs::post_write cbs for field, uvm_reg_field::post_write
Memory
uvm_reg_cbs::post_write cbs for mem, uvm_mem::post_write
The rw argument holds information about the operation.
Modifying the status member modifies the returned status.
Modifying the value or offset members has no effect, as the operation has already completed.
See uvm_reg_item for details on rw information.
- virtual function pre_read ( uvm_reg_item rw ) [source]
Callback called before a read operation.
All registered pre_read callback methods are invoked after the invocation of the pre_read method of associated object (uvm_reg, uvm_reg_field, uvm_mem, or uvm_reg_backdoor). If the element being read is a uvm_reg, all pre_read callback methods are invoked before the contained uvm_reg_fields.
Backdoor
uvm_reg_backdoor::pre_read, uvm_reg_cbs::pre_read cbs for backdoor
Register
uvm_reg::pre_read, uvm_reg_cbs::pre_read cbs for reg, then foreach field: uvm_reg_field::pre_read, uvm_reg_cbs::pre_read cbs for field
RegField
uvm_reg_field::pre_read, uvm_reg_cbs::pre_read cbs for field
Memory
uvm_mem::pre_read, uvm_reg_cbs::pre_read cbs for mem
The rw argument holds information about the operation.
The value member of rw is not used has no effect if modified.
For memories, modifying the offset modifies the offset used in the operation.
For non-backdoor operations, modifying the access path or address map modifies the actual path or map used in the
operation.
If the rw.status is modified to anything other than <UVM_IS_OK>, the operation is aborted.
See uvm_reg_item for details on rw information.
- virtual function post_read ( uvm_reg_item rw ) [source]
Callback called after a read operation.
All registered post_read callback methods are invoked before the invocation of the post_read method of the associated object (uvm_reg, uvm_reg_field, uvm_mem, or uvm_reg_backdoor). If the element being read is a uvm_reg, all post_read callback methods are invoked before the contained uvm_reg_fields.
Backdoor
uvm_reg_cbs::post_read cbs for backdoor, uvm_reg_backdoor::post_read
Register
uvm_reg_cbs::post_read cbs for reg, uvm_reg::post_read, then foreach field: uvm_reg_cbs::post_read cbs for field, uvm_reg_field::post_read
RegField
uvm_reg_cbs::post_read cbs for field, uvm_reg_field::post_read
Memory
uvm_reg_cbs::post_read cbs for mem, uvm_mem::post_read
The rw argument holds information about the operation.
Modifying the readback value or status modifies the actual returned value and status.
Modifying the value or offset members has no effect, as the operation has already completed.
See uvm_reg_item for details on rw information.
Facade class for field, register, memory and backdoor access callback methods.