-
Notifications
You must be signed in to change notification settings - Fork 339
Integrate yosys-slang #3076
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
Integrate yosys-slang #3076
Conversation
Marking this as do not merge pending the resolution of povik/yosys-slang#120 which breaks EDIT: resolved |
non-sequitor: Longer term I'd like to see builds moved to bazel where there's no need to add submodules, just specify version and URLs + any patches of dependencies in MODULE.bazel. |
Because we've reordered commands in the synthesis script, the change impacts non-slang designs too.
|
My thinking is that this is already reported The-OpenROAD-Project/OpenROAD#6991 |
Thanks, looks to be the same issue |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not too many comments...
How about leaving src/ibex unmodified and adding a src/ibex_sv?
Those really are different test cases and it could be interesting to do an A/B comparison in the future.
What's there to test? I don't want to support sv2v processed sources when I'm already aware of the drawbacks of that method, and it's the motivation behind yosys-slang existence. I'll let @maliberty make the call. |
I see. I would consider using a new folder name as it is not a new version of the same, but something completely new. |
It should be the same design in the same version with a changed flow (instead of sv2v+read_verilog we do read_slang). In any case we can put the sources into a new folder. |
Signed-off-by: Martin Povišer <povik@cutebit.org>
Add option to read the design via yosys-slang. Reorder read_liberty ahead of design read-in so that Liberty cell definitions are available when elaborating. Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
@povik, we might have talked about this a while back, but I can't remember. But, can we change the flow variable SYNTH_USE_SLANG to something that could be used for both yosys-slang and Verific? In other words, something like SYNTH_SV_FRONTEND which could be yosys-slang or verific (can default to yosys-slang). |
@jeffng-or Definitely. Let me make the change |
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
Is this truly something new or just the same thing in sv instead of v? I won't hold up this PR but I am unclear if this rename was needed. |
designs/gf180/ibex/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__route__drc_errors | 0 | 2 | Failing | | finish__timing__setup__ws | -1.58 | -1.31 | Tighten | | finish__timing__drv__setup_violation_count | 1013 | 785 | Tighten | | finish__timing__wns_percent_delay | -21.3 | -18.32 | Tighten | designs/ihp-sg13g2/ibex/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | globalroute__antenna_diodes_count | 1215 | 468 | Tighten | | detailedroute__route__wirelength | 1304850 | 1195027 | Tighten | | detailedroute__antenna__violating__nets | 48 | 42 | Tighten | | finish__timing__setup__ws | -0.55 | -1.1 | Failing | | finish__design__instance__area | 646738 | 645780 | Tighten | | finish__timing__drv__setup_violation_count | 1056 | 986 | Tighten | designs/sky130hd/microwatt/rules-base.json updates: | Metric | Old | New | Type | | ------ | --- | --- | ---- | | detailedroute__route__wirelength | 9717698 | 11718141 | Failing | | detailedroute__antenna__violating__nets | 5 | 1 | Tighten | | finish__timing__setup__ws | -3.56 | -2.44 | Tighten | | finish__timing__wns_percent_delay | -21.23 | -20.52 | Tighten | Signed-off-by: Martin Povišer <povik@cutebit.org>
Head branch was pushed to by a user without write access
Signed-off-by: Martin Povišer <povik@cutebit.org>
Hooray! Now we can enable asap7/cva6 in the CI. I'm not sure about the steps required. |
What is the runtime for asap7/cva6? |
Jeff reported 50 minutes for the full flow |
Nice! A few post-merge notes:
|
I confirm seeing the same on my end. I'll take a look. |
The cause is Yosys headers getting updated so yosys-slang sees it needs to recompile all the |
Add yosys-slang as a submodule and provide
SYNTH_USE_SLANG
option.Changes from #2875 (now superseded):
VERILOG_DEFINES
variable piped into both yosys-slang and Yosys frontendRTLIL_FILE
fromVERILOG_FILES
I've tested with @jeffng-or's cva6 config from #2939