-
Notifications
You must be signed in to change notification settings - Fork 893
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
ABC full custom flow #4592
base: main
Are you sure you want to change the base?
ABC full custom flow #4592
Conversation
Previously, the lack of filesystem support on WASI was discussed in #4571 |
Note that WASI does support the filesystem (otherwise Yosys and nextpnr could not work at all), but doesn't support |
@whitequark should I manually implement it and just find the last |
Last Windows does recognize |
Searching for
It might make sense to move the implementation from |
Sounds good to me. |
-> #4596 |
3ffa48a
to
a8bb683
Compare
It is still possible to have it in CWD if TMPDIR is set to CWD. The way it was is not ideal for logging purposes of large projects, as this can create huge amounts of data best stored on some scratch disk instead of the main drive.
Why?
This is a spiritual successor to #4343.
We are trying to integrate a ABC+Mockturtle flow so we can use both logic optimizers in tandem.
Additionally, I think it makes sense to also try to cover the custom liberty args in the ABC script as in #4343.
This lead me to a more general solution that allows an essentially full customization of an ABC flow. Meaning everything besides the writeout of a snippet and the readback can be customized with whatever scripts the user want.
In principle this would also support the integration of more complex script that can directly invoke multiple ABC scripts and then use something like OpenSTA to evaluate them and hand Yosys the best version back.
How?
To achieve this multiple changes are needed:
-script
and any number of additional-helper
, all are copied to the temporary directory{D}
) defining the directory the script is in and the input and output file locationExample
An example flow using the above features can be found here:
https://github.com/pulp-platform/croc/blob/53882e795aeffaa1e2b205dfb1a563f466cad6e9/yosys/scripts/yosys_synthesis_mockturtle.tcl#L146
It first calls a shell script here:
https://github.com/pulp-platform/croc/blob/phsauter/experimental/yosys/scripts/abc_mockturtle.tcl
Which in turn calls the ABC and mockturtle scripts.
Points of discussion:
ABC
could be a specialization of itTodo: