-
Notifications
You must be signed in to change notification settings - Fork 931
[AES/pre_sca/pre_syn] Integrate netlist generation and prolead evaluation to Bazel #29008
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
d33574b to
1bf7ab4
Compare
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>
1bf7ab4 to
bde3fa4
Compare
10c150b to
9850b3e
Compare
|
Hi @siemen11 , 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>
9850b3e to
43ee9fa
Compare
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.