-
Notifications
You must be signed in to change notification settings - Fork 25
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
✨ SAT-based clock number assignment #381
Conversation
…ayout` while disregarding the underlying clocking scheme
… scheme (clock number assignment) for a given unclocked gate-level layout
…signment of crossing tiles' clock zones
… starting clock of 1 instead of 0
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.
clang-tidy made some suggestions
include/fiction/algorithms/physical_design/determine_clocking.hpp
Outdated
Show resolved
Hide resolved
include/fiction/algorithms/physical_design/determine_clocking.hpp
Outdated
Show resolved
Hide resolved
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.
clang-tidy made some suggestions
include/fiction/algorithms/physical_design/determine_clocking.hpp
Outdated
Show resolved
Hide resolved
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.
Thanks a lot for the addition @marcelwa.
Looks really good 👍
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.
clang-tidy made some suggestions
…efault SAT solver because of its slight performance advantage
…efault SAT solver because of its slight performance advantage
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.
LGTM, thanks for implementing this!
Description
This PR introduces a new SAT-based algorithm that can determine valid clock number assignments to gate-level layouts. It ignores the present clocking information of the given layout and only looks at the gate-wire connections present in the layout. Based on these connections, it creates a SAT instance that formulates the clock number assignment problem. This algorithm is exact; that is, if a valid clock number assignment exists, it will eventually be found. Vice versa, if no clock number assignment can be found, none exists. In the former case, the algorithm will override the clocking information present in the layout via the assignment of an irregular clock map.
Checklist: