CSR Verification
CSR Verification
The UVM register abstraction layer ships with a handful of built-in sequences and a reasonable default model for how registers behave. That gets a project most of the way to a working register test plan, and it quietly leaves out the parts that actually find bugs: access types that don’t behave the way reg_bit_bash assumes, registers whose value changes without any software write, parallel access through a shared bridge, and the scale problem of keeping a growing list of legitimate exceptions maintainable across a hundred blocks.
This series is about the parts of CSR verification that don’t show up in the UVM Cookbook. Each article is self-contained but builds toward a complete, opinionated register verification methodology.
Published
The register model, frontdoor vs backdoor access, mirrored vs desired value, and what adapters and predictors are actually for.
RO, RW, W1C, W1S, RC, RS, and the rest: why hardware access and software access are two different questions that can disagree.
Nobody hand-writes register models anymore. Generating from a spec source of truth, and keeping custom hooks alive across regeneration.
Last updated on