Skip to content

[ci,acc] Adds support for ACC PQC smoke test in Verilator and adds it to CI#217

Open
apinise wants to merge 3 commits intomasterfrom
eapinis/acc-verilator-pqc
Open

[ci,acc] Adds support for ACC PQC smoke test in Verilator and adds it to CI#217
apinise wants to merge 3 commits intomasterfrom
eapinis/acc-verilator-pqc

Conversation

@apinise
Copy link
Copy Markdown
Contributor

@apinise apinise commented Mar 17, 2026

This PR restructures the previous configuration for passing the PQC parameter from a simulation config to the DV environment.

  • Removes the use of environment variable and instead adds a -CFLAG to configure the iss_wrapper.cc at build time which will create the accsim ISS model.
  • Verilator pre_dv fusesoc core now accepts a --flag pqc to configure the ACC instantiation and appropriate core dependencies/-CFLAG options.

It also updates the smoke_pqc directory to use the appropriate fusesoc invocation and integrates into CI

  • Updated the Verilator waiver to prevent warnings with KMAC after instantiating into the testbench. Warnings consisted of UNUSED for signals in the top-level testbench used for visibility, UNOPTFLAT for combinational assignments to struct fields that rely on the value of other fields in the same struct, and VARHIDDEN for having multiple FSM in KMAC that share state names in their enum declarations.
  • Updated the expected smoke_pqc/smoke_test.s results based on model behavior after adding a KMAC transaction and the vector instructions.
  • Added a new CI test to run the ACC PQC smoke test on verilator with the vector ISA hardware.

The existing ci.yml file had a typo in OTBN having been named OBTN and the name was updated to ACC. The same typo existed in the sw/device/tests/penetrationtests/firmware/fi/acc/*.s assembly files and has been updated as well.

@apinise apinise force-pushed the eapinis/acc-verilator-pqc branch 3 times, most recently from 991fbca to c579fb5 Compare March 18, 2026 16:46
Added PQC support to verilator environment by adding a KMAC
to the testbench and extending the fusesoc core.
Replaced the old use of a global environment variable to configure
the ISS wrapper model with a -CFLAG for build time changes.
Updated the existing DV simulation configs to comply with the new
configuration method.

Signed-off-by: Evan Apinis <eapinis@zerorisc.com>
@apinise apinise force-pushed the eapinis/acc-verilator-pqc branch from c579fb5 to deb127d Compare March 18, 2026 17:01
apinise added 2 commits March 26, 2026 10:04
Standalone Verilator warnings from PQC mode enabled were removed with
waivers and/or updating the RTL. Most warnings are from the addition
of KMAC which has combinational assignements from struct ports.
Additional waivers were made for prim IP related issues.

Signed-off-by: Evan Apinis <eapinis@zerorisc.com>
Signed-off-by: Evan Apinis <eapinis@zerorisc.com>
@apinise apinise force-pushed the eapinis/acc-verilator-pqc branch from deb127d to c170aa0 Compare March 26, 2026 14:06
@apinise apinise requested review from LouisTheLuis March 30, 2026 18:19
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.

1 participant