Skip to content

Conversation

uenoku
Copy link
Member

@uenoku uenoku commented Jul 10, 2025

This commit introduces a standardized synthesis pipeline and restructures the codebase:

  • Creates a new SynthesisPipeline class 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.

@uenoku uenoku changed the title [circt-synth] Add synthesis pipeline and refactor the lib structure [circt-synth] [Synthesis] Add synthesis pipeline and refactor the lib structure Jul 10, 2025
@uenoku uenoku force-pushed the dev/hidetou/synth-pipeline branch 2 times, most recently from dab9a5b to 333cff1 Compare July 10, 2025 07:41
@uenoku uenoku requested review from fabianschuiki and maerhart July 10, 2025 07:43
@uenoku uenoku force-pushed the dev/hidetou/synth-pipeline branch 2 times, most recently from 75f2307 to 7391328 Compare July 10, 2025 07:56
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.
@uenoku uenoku force-pushed the dev/hidetou/synth-pipeline branch from 7391328 to 0c2ad6e Compare July 10, 2025 07:57
Copy link
Member

@maerhart maerhart left a 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.

Copy link
Contributor

@fabianschuiki fabianschuiki left a 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 😁

@uenoku uenoku force-pushed the dev/hidetou/synth-pipeline branch from 0c2ad6e to 7a25e6e Compare July 10, 2025 22:40
@uenoku uenoku force-pushed the dev/hidetou/synth-pipeline branch from 7a25e6e to f2438b5 Compare July 10, 2025 22:47
@uenoku
Copy link
Member Author

uenoku commented Jul 10, 2025

What kind of code do you expect to end up in the 'Synthesis' directory and what would be other tools next to circt-synth

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!!

@uenoku uenoku merged commit 1fb38a5 into main Jul 10, 2025
7 checks passed
@uenoku uenoku deleted the dev/hidetou/synth-pipeline branch July 10, 2025 23:16
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