lowRISC / lowRISC/ibex

[dv] CSR Coverage Waiver

Open
#1,795 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component:DV Priority:P3 Waive:M2
Dominant language
SystemVerilog
Stars
2.1k
Forks
810
Avg merge
5d 23h
Merged PRs (30d)
9

Description

Coverpoints/bins affected
  • cp_csr_read_only/cp_csr_write
    • CSR_SCONTEXT
    • CSR_MCONTEXT
    • CSR_MSECCFGH
    • CSR_TDATA3
    • CSR_MCOUNTINHIBIT
    • CSR_MENVCFGH
  • cp_ignored_csrs / cp_ignored_csrs_w
    • CSR_SCONTEXT, CSR_MCONTEXT, CSR_TDATA3 are also the ignored CSRs, remove this coverpoint?
Justification

None of these is particularly complex but it's all small changes to spike that add up.

CSR_SCONTEXT / CSR_MCONTEXT are optional CSRs only accessible in debug mode, Ibex implements them as read as 0, write ignore. They do not need to implemented and aren't used by our debug setup. As they're not accessible via debug mode this is a low priority item to test

CSR_MSECCFGH/CSR_MENVCFGH - These CSRs have no implemented bits and are only accessible in M mode. They're in the M mode only CSR space so the generic check that accesses from U mode cause illegal instruction exceptions is sufficiently testing by other illegal CSR accesses from U mode.

CSR_TDATA3 - This is accessible in M mode and is an optional CSR for debug trigger points, Ibex implements it as read as 0 write ignore.

CSR_MCOUNTINHIBIT - The controls the performance counters and is not a high priority item.

estimate 4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the coverage definitions for cp_csr_read_only, cp_csr_write, cp_ignored_csrs, and cp_ignored_csrs_w, then review how the listed CSRs are handled in the verification flow. Confirm the intended waiver or coverpoint removal for each CSR and run the relevant CSR coverage regression to verify the updated coverage expectations.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot, testing-qa
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.