Skip to content

[doc] Update stages doc with top-level stages#597

Open
martin-velay wants to merge 1 commit into
lowRISC:mainfrom
martin-velay:top_level_stages
Open

[doc] Update stages doc with top-level stages#597
martin-velay wants to merge 1 commit into
lowRISC:mainfrom
martin-velay:top_level_stages

Conversation

@martin-velay

Copy link
Copy Markdown
Contributor

No description provided.

@martin-velay

Copy link
Copy Markdown
Contributor Author

@marnovandermaas, WDYT?

@marnovandermaas marnovandermaas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much for this PR. I really enjoyed the motivation sections you added. I put some of my thoughts in here, which I hope are useful.

Comment thread doc/proj/stages.md Outdated
Comment thread doc/proj/stages.md Outdated
Comment thread doc/proj/stages.md Outdated
The two key documents governing chip-level verification are:

- **Verification plan** (primary): [`hw/top_chip/dv/data/top_mocha_vplan.hjson`](../../hw/top_chip/dv/data/top_mocha_vplan.hjson) - defines the coverage metrics and their mapping to tests.
- **Testplan**: [`hw/top_chip/data/chip_testplan.hjson`](../../hw/top_chip/data/chip_testplan.hjson) - captures individual testpoints and their associated tests.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also doesn't exist yet right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not yet indeed, I am also already working on it

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good not to have a dead link so maybe you can say it will live at that path eventually.

Comment thread doc/proj/stages.md
Comment thread doc/proj/stages.md Outdated
|-----------|----------|----------------|
| V0 | Initial Work | <ul> <li> Chip-level testbench being set up </li> <li> Chip-level verification plan being written </li> <li> Chip-level testplan being written </li> </ul> |
| V1 | Smoke Passing | <ul> <li> All IPs smoke-tested at chip level </li> <li> Testbench infrastructure validated </li> <li> CI smoke regression running </li> </ul> |
| V2 | Integration Complete | <ul> <li> All planned chip-level tests passing </li> <li> All chip interfaces connected to an active agent and exercised end-to-end </li> <li> End-to-end interrupt routing confirmed for all interrupt-capable IPs </li> <li> Cross-IP integration paths and reset sequences exercised </li> <li> Chip-level coverage targets met </li> </ul> |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we say that the tests are passing with at least 90% of random seeds?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here I wanted to distinguish tests according to their Milestone. If they are mapped as V1 in the testplan then we should have 100% of them to signoff V1. For V2 we should have all V1 and all V2.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of the things we try to do with V2 is get to a very high level of verification but not necessarily go into the long tail of trying to hit 100% everywhere. This is why I suggest making it 90% especially in the case of full randomisation. This also aligns with our block-level definitions.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it differs from the block-level philosophy in the sense that top-level tests are directed and the randomization has barely no effect. So I think the tail is not that long and also, here we talk only about test passing rates, not about any other coverage metrics. Do you still think a wording adjustment is preferable?

Comment thread doc/proj/stages.md Outdated
| **Item name** | **Description** |
|---------------|-----------------|
| TOP_DV_DOC_DRAFTED | DV document drafted covering testbench architecture, agent topology, firmware-driven stimulus model, and chip-level coverage intent. |
| TOP_VPLAN_COMPLETED | Verification plan (`top_mocha_vplan.hjson`) complete with the metric-to-test mapping for each coverage item and milestone specified. Reviewed by designers, a peer DV engineer, firmware author, and chip architect. |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think completed is too ambitious here. I would like drafted here. That doesn't mean it cannot be complete but I think it might prevent us from doing the sign-off with a vplan that is good enough.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is maybe ambitious, but it should be among the first task we complete as the DV is then driven by that. I'd like to keep it as it is more or less. Also, a point to raise, having a vPlan written and reviewed doesn't mean that it shouldn't move at all. Of course in reality we'll have spec updates or we'll notice that we were wrong in the vPlan. Other I could reformulate slightly in that sense, but i feel that if we write "draft" people will assume that they only need to create the file with few titles, IMO it should be more than 90% done and a review with the stakeholders should have been done already. I don't want to end up driving the DV in a wrong direction or miss really major points. Does it sounds OK for you?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think drafted may actually not be the worst word here, but I agree we want more than just a file with a few titles. Maybe you can describe what needs to be achieved at this stage in the description?

@martin-velay martin-velay Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have edited the text in my last push into:

Verification plan (top_mocha_vplan.hjson) substantively complete (>90% of intended scope) with the metric-to-test mapping for each coverage item and milestone specified. Reviewed and approved by designers, a peer DV engineer, firmware author, and chip architect. Further evolution is expected as the design matures; the review ensures no major coverage gaps or methodological misalignments remain before DV execution begins.

Is it OK for you?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wording is much better. We may also want to reduce the number of people this needs to be reviewed by. I would make it be 3 reviewers and not necessarily specify the roles those people need to have.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I'll still add a note to say that it's preferable to get review from people from the different teams such as DV, DD and SW. This is a common perquisite as we need to make sure we're all aligned and nobody will complain about an obvious hole from their perspective later when it's too late

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've pushed my changes, I let you take a look

Comment thread doc/proj/stages.md Outdated
|---------------|-----------------|
| TOP_DV_DOC_DRAFTED | DV document drafted covering testbench architecture, agent topology, firmware-driven stimulus model, and chip-level coverage intent. |
| TOP_VPLAN_COMPLETED | Verification plan (`top_mocha_vplan.hjson`) complete with the metric-to-test mapping for each coverage item and milestone specified. Reviewed by designers, a peer DV engineer, firmware author, and chip architect. |
| TOP_TESTPLAN_COMPLETED | Chip-level testplan (`chip_testplan.hjson`) complete with at least one testpoint per integrated IP. Reviewed by designers, a peer DV engineer, firmware author, and chip architect. |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as for vplan.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have edited the text in my last push into:

Chip-level testplan (chip_testplan.hjson) substantively complete (>90% of intended scope) with at least one testpoint per integrated IP. Reviewed and approved by designers, a peer DV engineer, firmware author, and chip architect. Further evolution is expected as the design matures; the review ensures no major testpoint gaps remain before DV execution begins.

Is it OK for you?

Comment thread doc/proj/stages.md Outdated
Comment thread doc/proj/stages.md
Comment thread doc/proj/stages.md Outdated
| TOP_BOOT_INFRA_PASSING | The SW-to-DV pass/fail signalling mechanism is confirmed working before any other firmware-driven test result is trusted. |
| TOP_ALL_TESTS_PASSING_V1 | All V1 testpoints in the testplan passing. |
| TOP_VPLAN_COVERAGE_V1 | All V1 items defined in the verification plan achieved. |
| TOP_SMOKE_REGRESSION_IN_CI | V1 smoke suite runs automatically on PRs touching top-level RTL or testbench and failures block merge. |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we do the same with out current nightly setup?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean without it being part of the CI? I think it'd be good to have UVM top tests running for CI at some point (maybe in a private one). Don't you think so?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we want to run CI, but currently they only run in the nightly and not on each PR. I just don't want to say that we have to run it on every PR when we can probably make due with the CI we currently have right?

@martin-velay martin-velay marked this pull request as ready for review June 12, 2026 15:42
@martin-velay martin-velay force-pushed the top_level_stages branch 3 times, most recently from 3a5f103 to 274ac44 Compare June 15, 2026 11:46
@martin-velay

Copy link
Copy Markdown
Contributor Author

@marnovandermaas,

  • I have rebased on the main in the 1st push.
  • The 2nd and 3rd push address some comments. Let me know if you are happy with it? In that case could you mark the related comments as resolved?

Signed-off-by: martin-velay <mvelay@lowrisc.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants