SOFT IP / RISC-V VIP

Configurable RISC-V VIP

One configuration-driven VIP that verifies the WIOWIZ RISC-V family.

One VIP, one profile, many cores

The VIP is independent of the processor RTL. A small core-specific adapter maps a core's retirement interface to a normalized interface, and the architectural monitors, assertions, coverage and reference-model bridges consume only that. One VIP covers many cores by changing a profile.

What it checks

Architectural retirement

Retired instructions are checked against a reference model over the normalized retirement interface.

Privilege and trap coverage

Privilege transitions, CSR behaviour, traps and interrupts are monitored and covered.

PMP and virtual memory

Physical memory protection and Sv39/Sv48 address translation are covered through dedicated monitors.

Temporal assertions

Assertions hold over time on the normalized retirement and memory interfaces.

Feature exclusions

Features a profile does not implement are excluded from coverage and checking, so scope matches the core.

Mutation must-bite

Architecturally visible defects are injected and each checker is proven to catch its own class of fault.

Driven by one config file

A single YAML/JSON profile selects the ISA, privilege model, MMU mode, platform CSRs such as mtime and mtimecmp, and the feature exclusions. The same VIP retargets across the application, MCU and safety profiles by loading a different file, with no change to the checkers or coverage. The excerpt below is a real platform configuration: implemented CSRs carry their addresses, and unimplemented features are flagged so they are held out of scope.

mtime:
    implemented: true
    address: 0xbff8
mtimecmp:
    implemented: true
    address: 0x4000
# features held out of scope for this profile
mtval_condition_writes:
    implemented: false
zicbo_cache_block_sz:
    implemented: false
Excerpt from a real platform profile

Specification

InterfaceNormalized retirement and memory interface, driven through a small core-specific adapter
CoverageArchitectural, privilege, CSR, trap, interrupt, PMP and virtual memory
ChecksTemporal assertions on retirement and memory, plus mutation must-bite proof of the checkers
ProfilesApplication (RV64IMAC / Sv39), MCU (RV32IMACF), safety (RV32IMCF), selected by class of core
ToolingPortable interface and assertion layer for lightweight checks; full covergroups and UVM on native FSimX
Design levelRTL, technology independent
Request access ← All Soft IP