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

✨ SAT-based clock number assignment #381

Merged
merged 17 commits into from
Feb 14, 2024
Merged

✨ SAT-based clock number assignment #381

merged 17 commits into from
Feb 14, 2024

Conversation

marcelwa
Copy link
Collaborator

@marcelwa marcelwa commented Feb 13, 2024

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:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

@marcelwa marcelwa added the enhancement New feature or request label Feb 13, 2024
@marcelwa marcelwa self-assigned this Feb 13, 2024
Copy link
Contributor

@github-actions github-actions bot left a 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

Copy link
Contributor

@github-actions github-actions bot left a 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

simon1hofmann
simon1hofmann previously approved these changes Feb 14, 2024
Copy link
Collaborator

@simon1hofmann simon1hofmann left a 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 👍

Copy link
Contributor

@github-actions github-actions bot left a 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
@marcelwa marcelwa requested a review from Drewniok February 14, 2024 14:49
Copy link
Collaborator

@Drewniok Drewniok left a 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!

@marcelwa marcelwa merged commit 6c1d123 into main Feb 14, 2024
60 checks passed
@marcelwa marcelwa deleted the sat-clocking branch February 14, 2024 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants