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

Add fusion-compiler script generator #160

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

uge
Copy link
Contributor

@uge uge commented Apr 8, 2024

This PR adds basic support for Synopsys Fusion Compiler based on the older Synopsys target. The main initial difference is the use of absolute paths throughout the generated script as the Synopsys target template prefixed $ROOT to paths incorrectly. Although this could have been fixed in the Synopsys target, we anticipate additional changes needed for Fusion Compiler specific difference even if the underlying PRESTO parser remains the same.

@micprog micprog requested a review from fischeti April 9, 2024 10:19
@fischeti
Copy link

Thanks for the PR. In general, it looks good to me. I just wanted to ask what kind of changes you expect for Fusion Compiler that would justify a new target. We have also been using Fusion Compiler for some projects, and so far the synopsys target provided all we need.

@uge
Copy link
Contributor Author

uge commented Apr 16, 2024

We have also been using Fusion Compiler for some projects, and so far the synopsys target provided all we need.

I suspect that would be the case since it's the likely exactly the same front end parser. We don't use dc_shell internally so we have no way to regression test changes for it and I assume it is still much more widely used that Fusion Compiler for now. At a very basic level, splitting it means that further contributions wouldn't have the potential to break the more widely used tool.

In a broader level, we're looking at adding some mixture of generation for physical related info that's more commonly used in a RTL->GDS flow. Bender is neat for what it does, but until the world becomes more rust-like, it's also questionable if we'll have internal resources to implement the changes in bender or will do it outside even though the natural place would be in the dependency management system. Having bender spit stuff out to feed FC's reference methodology flow would be great but certainly limited in appeal at this point.

@micprog
Copy link
Member

micprog commented Apr 18, 2024

Bender is generally designed to collect source files and provide these to the various tools. I don't know if it makes sense to provide the tools with physical related information, as there is currently no representation for this in bender. Adding this could be of interest, but I fear with varying technologies and parametrization of designs, even this physical information is more ideally suited to be handled outside of bender.

Nonetheless, we can add a custom script format for fusion-compiler. I do fear this can cause divergence; if the tools are similar and use the same commands for loading files, then improvements to one script format may get lost in the other. On the other hand, custom templates should now be an option, so this would be an alternative way to combine bender with additional outside information.

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