| Title: Register Layer |
| |
| The UVM register layer defines several base classes that, |
| when properly extended, abstract the read/write operations |
| to registers and memories in a design-under-verification. |
| |
| A register model is typically composed of a hierarchy of blocks |
| that usually map to the design hierarchy. |
| Blocks contain registers, register files and memories. |
| |
| The UVM register layer classes are not usable as-is. |
| They only provide generic and introspection capabilities. |
| They must be specialized via extensions to provide an abstract |
| view that corresponds to the actual registers and memories in a design. |
| Due to the large number of registers in a design |
| and the numerous small details involved in properly configuring |
| the UVM register layer classes, |
| this specialization is normally done by a model generator. |
| Model generators work from a specification of the registers and |
| memories in a design and are thus able to provide an up-to-date, |
| correct-by-construction register model. |
| Model generators are outside the scope of the UVM library. |
| |
| The class diagram of a register layer model is shown below. |
| |
| (see uvm_ref_reg_class_map.gif) |
| |