[i2c,dv] Re-think monitor DV for detecting S/Sr/P conditions
@hcallahan-lowrisc is already working on this.
Since Apr 2, 2024.
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
Description
As part of #21765, some of the monitor DV code was weakened to make the detection of START/RSTART/STOP conditions less stringent. The way the monitor is currently constructed, we are trying to observe the derived timing parameters in terms of setup/hold cycles, which currently leads to a stacking of tolerances that is brittle. Removing the double-counted t_f was enough to break these checks, and instead of noticing any timing violations the monitor loses its lock on the bus traffic and we see a failure way down the line in the simulation. This is not a great developer experience, and is tricky to debug.
This issue tracks the re-enablement of these checks, preferably in a more robust way for future I2C developments.
Edit: #23078 split-out from this issue, to de-prioritise the refactoring-part of this issue.
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.
Assessment
This issue has not been assessed yet.