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

Pass multiple lib files to ABC #2139

Closed
wants to merge 2 commits into from

Conversation

rovinski
Copy link
Collaborator

@rovinski rovinski commented Jul 13, 2024

Yosys allows for passing though multiple .lib files to ABC since version 0.41. Therefore, external liberty merging is no longer required in any part of the flow. This PR removes liberty merging and updates variable names

  • Change DONT_USE_* variables to PROCESSED_* variables to better reflect their meaning (we stopped modifying dont_use properties in lib files since syn: move dont_use processing to yosys #1813)
  • Remove the mergeLib rule in Makefile since there are no more users of it
  • Pass multiple libs into the abc options
  • Add a default DFF_LIB_FILE for asap7 because it appears that it was always supposed to have one, but it instead relied on the FF files being merged into the standard cell files

If/when dfflibmap supports reading multiple lib files, we can completely remove DFF_LIB_FILE and PROCESSED_SC_LIB variables. Restructure may lose some support but the underlying abc version would just have to be updated.

rovinski added 2 commits July 13, 2024 18:04
Yosys supports merging Liberty files in ABC since v0.41

Signed-off-by: Austin Rovinski <[email protected]>
Signed-off-by: Austin Rovinski <[email protected]>
@rovinski rovinski marked this pull request as draft July 13, 2024 22:11
@oharboe
Copy link
Collaborator

oharboe commented Jul 15, 2024

To see what is going on with the failures in projects with BLOCKS, run:

Run 'nuke' here so that submacros are erased too just to run a full test:

make nuke

Now build without the YOSYS_FLAGS that hide the error message we saw in CI:

make DESIGN_CONFIG=designs/asap7/aes-block/config.mk YOSYS_FLAGS= synth

Output:

BC: execution of command ""/home/oyvind/OpenROAD-flow-scripts/tools/install/yosys/bin/yosys-abc" -s -f /tmp/yosys-abc-ymYdUm/abc.script 2>&1" failed: return code 134.

Re-run that last command:

"/home/oyvind/OpenROAD-flow-scripts/tools/install/yosys/bin/yosys-abc" -s -f /tmp/yosys-abc-ymYdUm/abc.script

Output:

[deleted]
yosys-abc: /home/oyvind/OpenROAD-flow-scripts/tools/yosys/abc/src/misc/vec/vecStr.h:356: char abc::Vec_StrEntry(Vec_Str_t *, int): Assertion `i >= 0 && i < p->nSize' failed.
Aborted (core dumped)
cd flow
$ ../tools/install/yosys/bin/yosys -version
Yosys 0.43 (git sha1 ead4718e5, clang++ 16.0.6 -fPIC -Os)
$ ../tools/install/yosys/bin/yosys-abc
UC Berkeley, ABC 1.01 (compiled Jul 14 2024 13:19:17)

@oharboe
Copy link
Collaborator

oharboe commented Jul 15, 2024

@rovinski Filed berkeley-abc/abc#306

@maliberty
Copy link
Member

@rovinski do you plan to continue with this or close?

@rovinski
Copy link
Collaborator Author

I forgot this was open. I think it would be best to close because several things have changed with Yosys since then (dont use lists for several commands, new commands, etc.). If someone wants to investigate, they are welcome.

@rovinski rovinski closed this Feb 18, 2025
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.

3 participants