-
Notifications
You must be signed in to change notification settings - Fork 366
[circt-synth] [Synthesis] Add synthesis pipeline and refactor the lib structure #8681
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
Conversation
dab9a5b
to
333cff1
Compare
75f2307
to
7391328
Compare
This commit introduces a standardized synthesis pipeline and restructures the codebase: * Creates a new SynthesisPipeline class following RTGPipepline to define the default synthesis pipeline. This pipeline serves both circt-synth and is exposed through the C API for Python bindings. * Added a dedicated Synthesis directory under lib/ to house synthesis-related code. This architectural change is aimed to promote synthesis capabilities to a first-class component within CIRCT rather than limiting it to the circt-synth tool.
7391328
to
0c2ad6e
Compare
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.
Really nice!
What kind of code do you expect to end up in the 'Synthesis' directory and what would be other tools next to circt-synth that could take advantage of it? I'm wondering whether it's worth adding that already or if the pipeline definition should just be in the 'Transforms ' directory for now. But either way sounds fine to me.
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.
This is really cool! Can't wait for us to add a tech mapper, timing/area/power optimizer, and design constraint tracker to that synthesis directory 😁
0c2ad6e
to
7a25e6e
Compare
7a25e6e
to
f2438b5
Compare
I have a plan to add Mapper framework and eventually want to implement STA stuffs there. I considered putting under Transform too but I thought Synthesis pipeline might be too specific sets of pipelines for Transform. I may revisit later but please let me continue with the current structure. Thank you for the suggestion!! |
This commit introduces a standardized synthesis pipeline and restructures the codebase:
lib/
to house synthesis-related code. This architectural change is aimed to promote synthesis capabilities to a first-class component within CIRCT rather than limiting it to the circt-synth tool.