Class uvm_pkg::uvm_reg_cbs
- uvm_pkg :: uvm_void
Inheritance Diagram of uvm_reg_cbs
Constructors
- new(string name = "uvm_reg_cbs")
- Parameters:
name (string)
Functions
- 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)
Task
post_predict
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.
- Parameters:
fld (uvm_reg_field)
previous (uvm_reg_data_t)
value (uvm_reg_data_t)
kind (uvm_predict_e)
path (uvm_path_e)
map (uvm_reg_map)
- encode(uvm_reg_data_t data)
Function
encode
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.
- Parameters:
data (uvm_reg_data_t)
- decode(uvm_reg_data_t data)
Function
decode
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.
- Parameters:
data (uvm_reg_data_t)
Tasks
- pre_write(uvm_reg_item rw)
Task
pre_write
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
-
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
If the rw.status is modified to anything other than
, the operation is aborted. See uvm_reg_item for details on rw information.
- Parameters:
rw (uvm_reg_item)
-
- post_write(uvm_reg_item rw)
Task
post_write
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
-
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.
- Parameters:
rw (uvm_reg_item)
-
- pre_read(uvm_reg_item rw)
Task
pre_read
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 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
If the rw.status is modified to anything other than
, the operation is aborted. See uvm_reg_item for details on rw information.
- Parameters:
rw (uvm_reg_item)
-
- post_read(uvm_reg_item rw)
Task
post_read
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
-
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.
- Parameters:
rw (uvm_reg_item)
-
Class
uvm_reg_cbs
Facade class for field, register, memory and backdoor access callback methods.