UVM_RGM2.3 is the UVM version of the Cadence Register and Memory package that has been tested by multiple users on all major commercial simulators.
Library Enhancements:
General library enhancements:
Ability to disable and enable Register update and compare coverage on-the-fly
The VHPI related code becomes conditional to allow DPI run for verilog-only-backdoor on other simulators that do not support VHPI
Added support for shared indirect registers (no parser support at this release)
Added support for indirect address stored in a register's field rather than the entire register. The library automatically updates the field when iterating on indirect registers
Fine granularity control on field randomization control using a mask
[get|set]_field_value issue error when field not found instead of warning
Added rel_name and rel_offset fields in reg-sequence to allow prepend of name and add offset. This enables module to system sequence reuse on top of the container capabilities
Built-in-test :
Added filtering using address ranges
'debug' switch that prints the filtered registers when '1'
Added example on how to control built-in-seq parameters procedurally
Parser :
Vendor-extension 'indirect_areg_fld' to indicate field of addr reg holding address
Vendor-extension 'hdl_pattern' for one dimensional and two dimensional array registers.
Vendor-extension 'randomize_mask' to mask out randomization of fields of register
Default value of address map size = MAXSZ instead of 'h10000
Examples :
Indirect shared register example under simple_examples (indirect_shared)
Changed simple_example/built_in_seq and added filtering using addr range and coverage disabling
Modified ipxact_examples and added more examples of vendor extension usage
ipxact_examples has array register example using 'hdl_pattern' vendor-extension
Field level randomization control example simple_examples/fld_level_rand_control
Bug Fixed:
Built-in-seq get_config over-riding value if no set_config
Built-in-seq should source the configs of base sequence class in setup
ovm_rgm_base 'size' type was int, made ovm_rgm_addr_t
Fifo register not checking for REG_RD_RSVD
Function get_field_props returning null field property object
Please look at the docs/release-notes.txt for more details.
For more information about using the ovm_rgm package please contact ovm_contributions@cadence.com