Skip to content
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

CVA6 synthesis #2487

Open
1 task done
hhhsiang opened this issue Aug 31, 2024 · 8 comments
Open
1 task done

CVA6 synthesis #2487

hhhsiang opened this issue Aug 31, 2024 · 8 comments
Labels
Type:Bug For bugs in the RTL, Documentation, Verification environment or Tool and Build system

Comments

@hhhsiang
Copy link

Is there an existing CVA6 bug for this?

  • I have searched the existing bug issues

Bug Description

I'm looking to synthesize the CVA6 core and perform gate-level simulation. According to the guidelines, the following command is recommended for synthesis: make -C pd/synth cva6_synth FOUNDRY_PATH=/your/techno/basepath/ TECH_NAME=yourTechnoName TARGET_LIBRARY_FILES="yourLib1.db\ yourLib2.db" PERIOD=10 NAND2_AREA=650 TARGET=cv64a6_imafdc_sv39 ADDITIONAL_SEARCH_PATH="others/libs/paths/one\ others/libs/paths/two" However, upon inspecting the Makefile in /cva6/pd/synth/, I noticed a # Deprecated comment above the cva6_synth entry. Does this mean that the cva6_synth command is outdated? Is there a different command recommended for synthesizing the CVA6 now?

@hhhsiang hhhsiang added the Type:Bug For bugs in the RTL, Documentation, Verification environment or Tool and Build system label Aug 31, 2024
@ibooga
Copy link

ibooga commented Sep 17, 2024

I'm curious about this as well. I would like to perform synthesis and layout, ideally with the cv32a60x

@Gchauvon
Copy link
Contributor

We are synthesizing the cv32a65x in Continuous integration with the rm_synth target in the Makefile.
Therefore we are not updating nor supporting the "old" cva6_synth target.

However you can still use the the cva6_synth target. It will call the cva6_synth.tcl and run a synthesis with Synopsis DC_Shell. Maybe some variables and/or path are outdated, but you can adjust this script to your liking

@ibooga
Copy link

ibooga commented Sep 18, 2024

Great, thanks for the advice.

An additional question, if I may.

Are there any examples of a (verified?) cva6 that have been brought close to tape out that provide GDS2 files or something similar? It would be nice to have a frame of reference while synthesizing and verifying my variations.

Thank you for your help, cheers

@Gchauvon
Copy link
Contributor

There have been cva6 that have been put to silicon. However I do not have anything to share to you.

@hhhsiang
Copy link
Author

Hi @Gchauvon, I noticed your comment about no longer updating or supporting the "old" cva6_synth target. Does that mean you will not synthesize cva6 core and run gate simulation anymore? Given that the cva6 core is a 64-bit CPU, distinct from the 32-bit cv32a65x, does this indicate that the cv64a6 core will not be maintained in the future? Thanks for clarifying!

@Gchauvon
Copy link
Contributor

The 64 bits version is maintained. There are non-regression tests that are run in CI on the cv64a6_imafdc_sv39 target.
However core verification is dedicated to the cv32a65x target. Thales CI only do synthesis and gate simulation for the cv32a65x target today.

@hhhsiang
Copy link
Author

@Gchauvon, I'm curious why the cv64a6 core is maintained but you don't run CI on the cv64a6_imafdc_sv39 target, and there is no synthesis or gate-level simulation. What if the RTL design is correct but issues arise at the gate level? How do you ensure the design's functionality without these steps? Could you provide more insights into the reasoning behind this decision and its potential impact on the project? Thank you!

@Gchauvon
Copy link
Contributor

There are non-regression tests on CI with the cv64a6_imafdc_sv39 target. This is to be sure we do not break this target at simulation level. We do not guarantee that the design is correct at gate level.
In Thales, we don't have the ressource to verify all posible configuration so we have decided to verify only cv32a65x. Other target may be used and maintained by other people.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type:Bug For bugs in the RTL, Documentation, Verification environment or Tool and Build system
Projects
None yet
Development

No branches or pull requests

3 participants