Skip to content

Jumper insertion: modifications in DRT and ODB #6138

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

Merged

Conversation

luis201420
Copy link
Contributor

@luis201420 luis201420 commented Nov 11, 2024

Fixes The-OpenROAD-Project/OpenROAD-flow-scripts#2477
It contains the modifications required to use jumper insertion in the flow.
ODB:

  • Added a flag in dbNet to check if a net has jumpers in its guide.
  • Added a flag in dbGuide to check if the guide is a jumper.

DRT:

  • Using the dbNet flag to increase the cost of not using a guide when routing a net with a jumper.

GRT:

  • Running jumper insertion in repair antenna iterations when you have new nets with a violation.

Results:
I ran a test-branch with the modifications, the reduction of diodes for sky130hd are:

  • aes:
    GRT diodes: from 190 to 138
    DRT diodes: from 8 to 13
    Total diodes: from 198 to 151 (23.74%)
  • chameleon:
    GRT diodes: from 429 to 108
    DRT diodes: from 38 to 108
    Total diodes: from 467 to 216 (53.75%)
  • jpeg:
    GRT diodes: from 234 to 61
    DRT diodes: from 49 to 64
    Total diodes: from 283 to 125 (55.83%)
  • ibex:
    GRT diodes: from 113 to 51
    DRT diodes: from 35 to 47
    Total diodes: from 148 to 98 (33.8%)
  • microwatt:
    GRT diodes: from 7205 to 4163
    DRT diodes: from 1379 to 1849
    Total diodes: from 8584 to 6012 (30%)
    This design is ending with 3 antenna violations after DRT.

Future works:

  • Use the dbGuide flag in DRT to increase the cost of not using guides when routing a guide.
  • Improve jumper insertion to reduce the number of diodes used.

Signed-off-by: luis201420 <[email protected]>
Signed-off-by: luis201420 <[email protected]>
Signed-off-by: luis201420 <[email protected]>
Signed-off-by: luis201420 <[email protected]>
Signed-off-by: luis201420 <[email protected]>
@luis201420 luis201420 marked this pull request as draft November 11, 2024 19:15
@luis201420 luis201420 marked this pull request as ready for review November 11, 2024 19:16
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Copy link
Contributor

@eder-matheus eder-matheus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@luis201420 Please start a new ecure-ci run to ensure it will not break any design.

Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@luis201420
Copy link
Contributor Author

@luis201420 Please start a new ecure-ci run to ensure it will not break any design.

Ok, I ran a new secure-ci to verify the designs.

@luis201420 luis201420 marked this pull request as ready for review November 18, 2024 23:00
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@luis201420
Copy link
Contributor Author

luis201420 commented Nov 28, 2024

@eder-matheus I ran a secure-CI with the new updates. The results for the sky130hd/microwatt design are:

  • Total diodes: from 8440 to 4818 (42.91%)
  • The final number of antenna violations is reduced from 2 to 1 violation.
  • The runtime increases from 3h 23min to 4h 32min.
    The reduction in the number of diodes used on average is around 45% in the public designs.

@eder-matheus eder-matheus merged commit 0b348c1 into The-OpenROAD-Project:master Nov 29, 2024
11 checks passed
@luis201420 luis201420 deleted the drt_jumper_insertion branch December 2, 2024 15:39
@luis201420 luis201420 restored the drt_jumper_insertion branch December 2, 2024 15:39
@luis201420 luis201420 deleted the drt_jumper_insertion branch December 2, 2024 15:40
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.

Enable repair_antennas with jumper insertion by default
3 participants