The UVM 1.2 user guide outlines very specific recommendations on what a register model shall contain, how it should be structured, etc.
Current version does not follow these recommendations very well.
Changes like:
- (5.5.3.4 and 5.5.3.5): Adding registers should happen within a separate
map() method, not within build()
- UVM examples recommend a single monolithic
uvm_reg_map object that is provided by the user, rather than the wildly nested sub-mapping that is currently being done.
- ... Likely to be more things more not listed here yet