Skip to content

Create a UVM agent for ISA coverage

Created by: silabs-robin

This fulfils the initial criteria of https://github.com/openhwgroup/core-v-verif/issues/488

It introduces an agent which monitors activity in the 40x's tracer module (rvfi should be used later https://github.com/openhwgroup/core-v-verif/issues/489). The monitor decodes/disassembles the received instruction and parses it into a uvm_object representing the instruction (later, https://github.com/openhwgroup/core-v-verif/issues/487 should enable full support for decoding). The uvm object is passed to the coverage model which samples into covergroups defined for RV32IMCZifencei_Zicsr (more tweaks and refinements later https://github.com/openhwgroup/core-v-verif/issues/490 and bottom of https://github.com/openhwgroup/core-v-verif/issues/488).

The name "uvma_isa" was chosen (instead of the prescribed "uvma_covg" or "uvma_isa_covg") because it matches the existing naming-patterns for both 1) other agents, and 2) covergroups.

More polish is needed (as noted above), but the system stands by itself and demonstrates a complete architecture and coverage is disabled by default.

Merge request reports

Loading