Skip to content

Cv32a65x-act4#3265

Open
arshiarifat-10x wants to merge 22 commits into
openhwgroup:masterfrom
arshiarifat-10x:cv32a65x-act4
Open

Cv32a65x-act4#3265
arshiarifat-10x wants to merge 22 commits into
openhwgroup:masterfrom
arshiarifat-10x:cv32a65x-act4

Conversation

@arshiarifat-10x
Copy link
Copy Markdown

@arshiarifat-10x arshiarifat-10x commented Apr 7, 2026

This PR integrates the RISC-V Architectural Compatibility Test (ACT) v4.0 framework for the CV32A65x configuration of the CVA6 core, enabling architecture compliance test generation and execution within the CVA6 simulation environment.

Copy link
Copy Markdown
Contributor

@cainria cainria left a comment

Choose a reason for hiding this comment

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

Hi @arshiarifat-10x

Please add a description to this pull request so that we can understand the rationale of these changes and discuss them.

Comment thread .gitmodules Outdated
@JeanRochCoulon
Copy link
Copy Markdown
Contributor

Hello @arshiarifat-10x
Thanks for your interest in cva6.
It would be useful to integrate your tests, or a part of them (depend on the duration), to the Github Actions CI. The scope is to prevent regression. Of course, to run on Github Actions, they should be executed with Verilator (possible?)

@arshiarifat-10x
Copy link
Copy Markdown
Author

arshiarifat-10x commented Apr 17, 2026

@JeanRochCoulon
I have integrated all the tests into the GitHub Actions CI using Verilator.
The current full regression takes approximately ~25 minutes to complete in CI. This is within a workable range, but if needed, we can later review the suite and discuss trimming specific tests to optimize runtime while preserving regression coverage.

@JeanRochCoulon
Copy link
Copy Markdown
Contributor

As specified in CONTRIBUTING.md, can you give me the right to rebase your branch.

@arshiarifat-10x
Copy link
Copy Markdown
Author

@JeanRochCoulon
Yes, I’ve enabled maintainer access for rebasing.

@arshiarifat-10x arshiarifat-10x requested a review from cainria April 20, 2026 14:14
Copy link
Copy Markdown
Contributor

@cainria cainria left a comment

Choose a reason for hiding this comment

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

Shouldn't we add a README to document how to use this new testing framework?

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .gitmodules Outdated
Comment thread verif/regress/wrapper-cv32a65x-act.sh Outdated
Comment thread verif/regress/wrapper-cv32a65x-act.sh Outdated
Comment thread verif/regress/wrapper-cv32a65x-act.sh Outdated
Comment thread verif/sim/Makefile
Comment thread verif/sim/Makefile Outdated
Comment thread verif/sim/Makefile Outdated
Comment thread verif/sim/Makefile
@echo "$(BANNER)"
@echo "* Running ALL compliance ELFs with CVA6 Verilator Model"
@echo "$(BANNER)"
@set -e; \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think this recipe should be moved to a new script file. What do you think about it?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Keeping the logic in the Makefile allows developers to see the entire execution flow( from address discovery to signature validation) in a single place without needing to track down external helper scripts.
As we integrate this into GitHub Actions, having a self-contained Makefile target ensures that the CI runner only needs to execute make certify. This avoids the overhead of managing absolute/relative pathing issues across different environments.

Copy link
Copy Markdown
Author

@arshiarifat-10x arshiarifat-10x Apr 21, 2026

Choose a reason for hiding this comment

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

But if you suggest i can move this recipe to new script file. However, I am open to either approach. Would you prefer:
1- A clean separate script (e.g., verif/sim/run_certification.sh) with the Makefile target acting as a simple wrapper?
2- Keeping it in the Makefile to match the existing simulation target patterns in this repository?
Please let me know which direction aligns better with the project's long-term coding standards, and I will
update the PR accordingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We have a lot of scripts in verif/regress/, you might be interested in looking at these. Maybe verif/regress/ is a suitable place to add certify.sh?

For CVA6 designers, these scripts are our entry points to run most simulations: they call the relevant tools (cva6.py and make) for us.
So I think we do not need a Makefile wrapper as make it is not the user-facing entry to run simulations.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The current implementation is already aligned with the verif/regress/ flow, the wrapper is placed there intentionally and acts as a standard entry point, similar to existing scripts. It handles environment setup and then invokes the existing Makefile targets (gen and certify) under the hood.

From a user perspective, this keeps the interface consistent with other regression flows:

bash verif/regress/wrapper-cv32a65x-act.sh

So users are not expected to interact with the Makefile directly.

I’ll add a short README section to make the flow and entry point clearer.

arshiarifat-10x and others added 12 commits April 21, 2026 11:18
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
Co-authored-by: Côme <come.allart@inria.fr>
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.

3 participants