My question is how to verify “R0” (Read only) registers through backdoor or front door mechanism ? In frontdoor usually we do masking of RO registers to not to write .If RO register is designed with bug with RW type how to verify this issue without write ?
In reply to dddvlsique:
Generally, there are two types of RO registers.
- Capability register: Set initially (while generating RDL/RAL) saying the capability of design
- Status register: Only design can update it. For TB it’s RO.
To verify Capability register:
- Unmask the RO register to write
- Write with any value other than default
- Read this register. It should return the default value only
To verify Status register:
- Read the register and store the value
- Unmask the RO register to write
- Write with any value other than previously read (you can use invert value)
- Read this register again and compare it with previously read value