"There are various ways the register definitions used e.g. 1. Hardware registers: can be accessed from, DUT ports or PLI
2. Address registers: Can only be accessed through the DUT ports using bus drivers.
3. Virtual register: These registers does not exist in design and only modeled in the testbench code"
If a register have hardware information like the RTL path so that it can be accessed through back door in 0 simulation time it can be called as hardware register.
If the register does not have hardware information and can be accessed only by interface or front door it can be called as address register.
Virtual registers are related to verification.
The hardware and address registers are already covered by other requirements.
Now we have to vote only for virtual registers. Now the name virtual register is changed with unimplemented registers as this name is close to the actual usage. The unimplemented registers will be used for creating the testbench and running the simulation when the actual register is not implemented in the RTL. when the actual register gets implemented the user will have to change the register category from unimplemented to hardware or address the testbench component components will not be changed.