Skip to content

Conversation

@siemen11
Copy link
Contributor

@siemen11 siemen11 commented Dec 27, 2025

Prolead is a tool to verify whether RTL is secure against side-channel analysis by evaluating it (probabilistically) in the probing model. We already used this tool to evaluate the AES design.
Yosys is an open source synthesizer.
Skywater-pdk is an open source pdk.

Integrate these dependencies into Bazel.
Provide build targets for the AES netlist and area reports.
Provide build targets for PROLEAD analysis.

@siemen11 siemen11 force-pushed the prolead_integration branch from d33574b to 1bf7ab4 Compare December 27, 2025 20:42
Prolead is a tool to verify whether RTL is secure against side-channel
analysis by evaluating it (probabilistically) in the probing model.
We already used this tool to evaluate the AES design.

In order to have clean dependencies we add it to MODULE.bazel.

Signed-off-by: Siemen Dhooghe <sdhooghe@google.com>
In order to work with prolead and synthesize with yosys, we use sv2v to
transform the systemverilog source to verilog

Signed-off-by: Siemen Dhooghe <sdhooghe@google.com>
In order to have an open source manner of generating netlists, we add
yosys to the dependencies.

Signed-off-by: Siemen Dhooghe <sdhooghe@google.com>
@siemen11 siemen11 force-pushed the prolead_integration branch from 1bf7ab4 to bde3fa4 Compare December 28, 2025 11:09
@siemen11 siemen11 changed the title [Prolead] Add Prolead to MODULE.bazel [AES/pre_sca/pre_syn] Integrate netlist generation and prolead evaluation to Bazel Dec 28, 2025
@siemen11 siemen11 force-pushed the prolead_integration branch 4 times, most recently from 10c150b to 9850b3e Compare December 28, 2025 13:49
@siemen11 siemen11 marked this pull request as ready for review December 29, 2025 12:55
@siemen11 siemen11 marked this pull request as draft January 5, 2026 08:41
@vogelpi
Copy link
Contributor

vogelpi commented Jan 5, 2026

Hi @siemen11 ,
thanks for looking into this. Please note that we won't be able to re-distribute the nangate technology library (your [hw/ip/aes/pre_syn/nangate.lib](https://github.com/lowRISC/opentitan/pull/29008/changes#diff-597f318251597ce138d195c7eac6d6209db4c3aaf2b322192b327b720ba8959d) file) due to licensing restrictions.

Regarding adding this check into CI: AFAIK this adds quite some additional dependencies (e.g. Yosys) and I am not sure how much CI run time / compute is needed for that. IIRC, the Yosys synthesis alone takes multiple minutes on my laptop. So I am not sure this is a good thing to do.

However, whenever we make changes to such critical circuits (e.g. masking countermeasures) we repeat all the experiments we have. And this PR is a first step into the direction of automating this. Shall we discuss this in a working group meeting first?

@siemen11
Copy link
Contributor Author

siemen11 commented Jan 5, 2026

Hi @siemen11 , thanks for looking into this. Please note that we won't be able to re-distribute the nangate technology library (your [hw/ip/aes/pre_syn/nangate.lib](https://github.com/lowRISC/opentitan/pull/29008/changes#diff-597f318251597ce138d195c7eac6d6209db4c3aaf2b322192b327b720ba8959d) file) due to licensing restrictions.

Regarding adding this check into CI: AFAIK this adds quite some additional dependencies (e.g. Yosys) and I am not sure how much CI run time / compute is needed for that. IIRC, the Yosys synthesis alone takes multiple minutes on my laptop. So I am not sure this is a good thing to do.

However, whenever we make changes to such critical circuits (e.g. masking countermeasures) we repeat all the experiments we have. And this PR is a first step into the direction of automating this. Shall we discuss this in a working group meeting first?

Thanks for having a look Pirmin! It would be nice to discuss this. Pascal also noted the nangate license, I am looking into https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hd

The skywater pdk is an open-source pdk.
Add it to MODULE.bazel under a third_party dependency to generate
netlists.

Signed-off-by: Siemen Dhooghe <sdhooghe@google.com>
In the pre_syn folder from the AES there are bash scripts to generate
area and timing reports together with a netlist for the AES core using
OpenSTA and Yosys with the nangate45 library.

We change the syn_yosys and get_kge scripts to work with the skywater
library as well as the nangate45 library.

We then integrate these scripts using a Bazel target such that the reports
can be generated using dependencies all within Bazel.

This default Bazel target does not yet pull in OpenSTA, hence timing
results are not yet present but it generates the area reports and the
netlist.

Signed-off-by: Siemen Dhooghe <sdhooghe@google.com>
Make the full_evaluate_aes_cipher_core Bazel target to synthesize the
aes_cipher_core netlist and to evaluate it using PROLEAD.

Create the PROLEAD cell library for the skywater pdk.

Signed-off-by: Siemen Dhooghe <sdhooghe@google.com>
@siemen11 siemen11 force-pushed the prolead_integration branch from 9850b3e to 43ee9fa Compare January 5, 2026 13:17
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