Improve get_toggle_excl_bits for non-power-of-two ranges
Nobody has claimed this yet.
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
`get_toggle_excl_bits()` computes the number if bits that do not toggle for coverage. This function only works for addresses of a power two currently but not with the relaxed contraint on the crossbars where comparators are sued for arbitrary address ranges.
I think we can do better than returning `[]` for the bits that cannot be toggled by a given address range if that address range is not a power of two. I see this as a DV improvement (likely important for coverage closure) more than a blocker for this PR, though. Suggest creating an tracking issue
_Originally posted by @andreaskurth in https://github.com/lowRISC/opentitan/pull/28452#discussion_r2415769822_
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating get_toggle_excl_bits() and reading how its result is consumed by coverage and crossbar address-range handling. Compare the current power-of-two assumption with arbitrary comparator ranges; done means the function identifies bits that cannot toggle for non-power-of-two ranges instead of returning [] without degrading DV coverage behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot, testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100