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

rsz: Buffering and sizing improvements #6564

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
7422734
rsz: Factor out `areCellsSwappable`
povik Dec 9, 2024
7868c5c
rsz: Decouple resize to target slew from violation repair
povik Dec 9, 2024
ae6e4d8
rsz: Fix tidy warnings
povik Dec 9, 2024
cb30344
rsz: Account for margin in driver slew repair
povik Dec 9, 2024
e18f9b9
rsz: Pre-select buffers for gain buffering
povik Nov 5, 2024
6902eda
rsz: Use pre-selected buffers for rebuffering too
povik Nov 6, 2024
1256f39
rsz: Use fo4 on largest gate size to decide buffering need
povik Nov 6, 2024
6eea2d0
rsz: Apply gain-buffering to top inputs too
povik Nov 11, 2024
dad1cd4
rsz: Move to 'cap ratio' sizing and fix buffering
povik Nov 23, 2024
7e396b4
rsz: Move early sizing up front in `repair_design`
povik Jan 14, 2025
6f2afb7
rsz: Size buffers using higher cap ratio
povik Jan 18, 2025
d3c137c
rsz: Format
povik Jan 21, 2025
287d290
rsz: Update tests
povik Jan 21, 2025
5a18cf3
rsz: Rm commented-out target slew calls
povik Jan 21, 2025
f947840
rsz: Tidy
povik Jan 23, 2025
1b42e5e
rsz: Update tests
povik Jan 23, 2025
a36b2c3
Merge remote-tracking branch 'origin/master' into rsz-gain-buffer-cha…
povik Jan 23, 2025
a119c47
gpl: Update tests for resizer changes
povik Jan 23, 2025
bc21f9d
rsz: Add 'report_fast_buffer_sizes' debugging command
povik Jan 23, 2025
02fa259
gpl: Update test for resizer change
povik Jan 28, 2025
7944b04
Merge branch 'master' into rsz-gain-buffer-changes
povik Feb 18, 2025
acf0c1b
rsz, gpl: Update tests after merge
povik Feb 18, 2025
b1679cc
Merge branch 'master' into rsz-gain-buffer-changes
povik Feb 24, 2025
2920ae5
rsz, gpl: Update tests after merge
povik Feb 24, 2025
8f86f45
test: Update flow limits
povik Feb 24, 2025
94f32d1
Merge branch 'master' into rsz-gain-buffer-changes
povik Feb 24, 2025
0f9e2e1
rsz, gpl: Update tests after merge
povik Feb 24, 2025
676e14f
rsz, gpl: Fix "differences found" in test output
povik Feb 24, 2025
37604ab
rsz: Fix merge lossage
povik Feb 27, 2025
9db74ed
Merge branch 'master' into rsz-gain-buffer-changes
povik Feb 27, 2025
3d63a75
rsz: Remove `areCellsSwappable` after upstream changes
povik Feb 27, 2025
e8a39a0
rsz, gpl, test: Update tests after merge
povik Feb 27, 2025
1de0470
rsz: Remove hard-coded max_fanout
povik Feb 27, 2025
6a3d8dd
rsz: Incorporate review
povik Mar 4, 2025
971ae43
rsz: Go back to including original size in swappable list
povik Mar 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 65 additions & 65 deletions src/gpl/test/convergence01.defok
Original file line number Diff line number Diff line change
Expand Up @@ -160,71 +160,71 @@ COMPONENTS 145 ;
- PHY_79 TAPCELL_ASAP7_75t_R + SOURCE DIST + FIXED ( 11394 11070 ) S ;
- PHY_8 TAPCELL_ASAP7_75t_R + SOURCE DIST + FIXED ( 486 1620 ) N ;
- PHY_9 TAPCELL_ASAP7_75t_R + SOURCE DIST + FIXED ( 11394 1620 ) FN ;
- _33_ INVx3_ASAP7_75t_R + PLACED ( 4075 5663 ) N ;
- _34_ INVx3_ASAP7_75t_R + PLACED ( 7307 7219 ) N ;
- _35_ INVx3_ASAP7_75t_R + PLACED ( 7547 4689 ) N ;
- _36_ INVx3_ASAP7_75t_R + PLACED ( 4981 4421 ) N ;
- _37_ INVx3_ASAP7_75t_R + PLACED ( 7495 4651 ) N ;
- _38_ INVx3_ASAP7_75t_R + PLACED ( 4923 4581 ) N ;
- _39_ INVx3_ASAP7_75t_R + PLACED ( 4632 5953 ) N ;
- _40_ INVx3_ASAP7_75t_R + PLACED ( 7594 4721 ) N ;
- _41_ INVx3_ASAP7_75t_R + PLACED ( 7659 4691 ) N ;
- _42_ INVx3_ASAP7_75t_R + PLACED ( 4952 4498 ) N ;
- _43_ INVx3_ASAP7_75t_R + PLACED ( 7379 4442 ) N ;
- _44_ INVx3_ASAP7_75t_R + PLACED ( 5843 7119 ) N ;
- _45_ INVx3_ASAP7_75t_R + PLACED ( 7527 4672 ) N ;
- _46_ INVx3_ASAP7_75t_R + PLACED ( 7689 7185 ) N ;
- _47_ INVx2_ASAP7_75t_R + PLACED ( 5252 7328 ) N ;
- _48_ INVx2_ASAP7_75t_R + PLACED ( 4997 7364 ) N ;
- _49_ INVx2_ASAP7_75t_R + PLACED ( 5444 7337 ) N ;
- _50_ INVx2_ASAP7_75t_R + PLACED ( 4839 6539 ) N ;
- _51_ INVx2_ASAP7_75t_R + PLACED ( 4808 7271 ) N ;
- _52_ INVx2_ASAP7_75t_R + PLACED ( 5782 7349 ) N ;
- _53_ INVx2_ASAP7_75t_R + PLACED ( 4810 7281 ) N ;
- _54_ INVx2_ASAP7_75t_R + PLACED ( 4874 7294 ) N ;
- _55_ INVx3_ASAP7_75t_R + PLACED ( 7297 7318 ) N ;
- _56_ INVx2_ASAP7_75t_R + PLACED ( 5022 4490 ) N ;
- _57_ INVx2_ASAP7_75t_R + PLACED ( 5894 4307 ) N ;
- _58_ INVx2_ASAP7_75t_R + PLACED ( 5102 4654 ) N ;
- _59_ INVx3_ASAP7_75t_R + PLACED ( 7289 7319 ) N ;
- _60_ INVx2_ASAP7_75t_R + PLACED ( 4874 4329 ) N ;
- _61_ INVx2_ASAP7_75t_R + PLACED ( 4974 4250 ) N ;
- _62_ INVx2_ASAP7_75t_R + PLACED ( 4983 7461 ) N ;
- _63_ INVx3_ASAP7_75t_R + PLACED ( 7411 7150 ) N ;
- _64_ INVx3_ASAP7_75t_R + PLACED ( 7522 4666 ) N ;
- _65_ INVx3_ASAP7_75t_R + PLACED ( 7445 4588 ) N ;
- _66_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6443 4595 ) N ;
- _67_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6517 4671 ) N ;
- _68_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6416 7145 ) N ;
- _69_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3997 7440 ) N ;
- _70_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3992 4273 ) N ;
- _71_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3897 4345 ) N ;
- _72_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6298 7306 ) N ;
- _73_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4115 4656 ) N ;
- _74_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4901 4323 ) N ;
- _75_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4037 4497 ) N ;
- _76_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6307 7305 ) N ;
- _77_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3893 7284 ) N ;
- _78_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3831 7273 ) N ;
- _79_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4792 7337 ) N ;
- _80_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3829 7262 ) N ;
- _81_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3858 6542 ) N ;
- _82_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4449 7325 ) N ;
- _83_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4009 7350 ) N ;
- _84_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4259 7317 ) N ;
- _85_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6676 7179 ) N ;
- _86_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6521 4676 ) N ;
- _87_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5074 7453 ) N ;
- _88_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6381 4454 ) N ;
- _89_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3972 4509 ) N ;
- _90_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6646 4695 ) N ;
- _91_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6583 4723 ) N ;
- _92_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3665 5954 ) N ;
- _93_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3946 4588 ) N ;
- _94_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6491 4656 ) N ;
- _95_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3998 4431 ) N ;
- _96_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6539 4694 ) N ;
- _97_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6317 7211 ) N ;
- _33_ INVx3_ASAP7_75t_R + PLACED ( 4484 10071 ) N ;
- _34_ INVxp33_ASAP7_75t_R + PLACED ( 5517 7583 ) N ;
- _35_ INVxp33_ASAP7_75t_R + PLACED ( 5696 6964 ) N ;
- _36_ INVxp33_ASAP7_75t_R + PLACED ( 5582 7094 ) N ;
- _37_ INVxp33_ASAP7_75t_R + PLACED ( 5057 7757 ) N ;
- _38_ INVxp33_ASAP7_75t_R + PLACED ( 6340 7064 ) N ;
- _39_ INVxp33_ASAP7_75t_R + PLACED ( 8351 4866 ) N ;
- _40_ INVxp33_ASAP7_75t_R + PLACED ( 8283 5867 ) N ;
- _41_ INVxp33_ASAP7_75t_R + PLACED ( 8389 5774 ) N ;
- _42_ INVxp33_ASAP7_75t_R + PLACED ( 7162 5644 ) N ;
- _43_ INVxp33_ASAP7_75t_R + PLACED ( 8129 4692 ) N ;
- _44_ INVxp33_ASAP7_75t_R + PLACED ( 8098 5340 ) N ;
- _45_ INVxp33_ASAP7_75t_R + PLACED ( 7927 5435 ) N ;
- _46_ INVxp33_ASAP7_75t_R + PLACED ( 7391 4809 ) N ;
- _47_ INVxp33_ASAP7_75t_R + PLACED ( 2416 1359 ) N ;
- _48_ INVxp33_ASAP7_75t_R + PLACED ( 2492 1359 ) N ;
- _49_ INVxp33_ASAP7_75t_R + PLACED ( 2694 1359 ) N ;
- _50_ INVxp33_ASAP7_75t_R + PLACED ( 3068 1359 ) N ;
- _51_ INVxp33_ASAP7_75t_R + PLACED ( 2443 1361 ) N ;
- _52_ INVxp33_ASAP7_75t_R + PLACED ( 2685 1359 ) N ;
- _53_ INVxp33_ASAP7_75t_R + PLACED ( 2939 1359 ) N ;
- _54_ INVxp33_ASAP7_75t_R + PLACED ( 3064 1359 ) N ;
- _55_ INVxp33_ASAP7_75t_R + PLACED ( 3591 2403 ) N ;
- _56_ INVxp33_ASAP7_75t_R + PLACED ( 1974 3950 ) N ;
- _57_ INVxp33_ASAP7_75t_R + PLACED ( 3055 3625 ) N ;
- _58_ INVxp33_ASAP7_75t_R + PLACED ( 2803 3710 ) N ;
- _59_ INVxp33_ASAP7_75t_R + PLACED ( 3176 3190 ) N ;
- _60_ INVxp33_ASAP7_75t_R + PLACED ( 2371 3716 ) N ;
- _61_ INVxp33_ASAP7_75t_R + PLACED ( 2270 3018 ) N ;
- _62_ INVxp33_ASAP7_75t_R + PLACED ( 1367 3320 ) N ;
- _63_ INVxp33_ASAP7_75t_R + PLACED ( 5347 7907 ) N ;
- _64_ INVxp33_ASAP7_75t_R + PLACED ( 6941 6661 ) N ;
- _65_ INVxp33_ASAP7_75t_R + PLACED ( 5640 6874 ) N ;
- _66_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5503 6197 ) N ;
- _67_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6672 5200 ) N ;
- _68_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5051 5378 ) N ;
- _69_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3182 1646 ) N ;
- _70_ DFFLQNx1_ASAP7_75t_R + PLACED ( 2759 2240 ) N ;
- _71_ DFFLQNx1_ASAP7_75t_R + PLACED ( 2856 1376 ) N ;
- _72_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3522 1832 ) N ;
- _73_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3399 2095 ) N ;
- _74_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3247 2683 ) N ;
- _75_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3003 1432 ) N ;
- _76_ DFFLQNx1_ASAP7_75t_R + PLACED ( 3848 1412 ) N ;
- _77_ DFFLQNx1_ASAP7_75t_R + PLACED ( 1219 2000 ) N ;
- _78_ DFFLQNx1_ASAP7_75t_R + PLACED ( 1019 2007 ) N ;
- _79_ DFFLQNx1_ASAP7_75t_R + PLACED ( 941 1811 ) N ;
- _80_ DFFLQNx1_ASAP7_75t_R + PLACED ( 919 2608 ) N ;
- _81_ DFFLQNx1_ASAP7_75t_R + PLACED ( 965 3138 ) N ;
- _82_ DFFLQNx1_ASAP7_75t_R + PLACED ( 919 1855 ) N ;
- _83_ DFFLQNx1_ASAP7_75t_R + PLACED ( 919 2838 ) N ;
- _84_ DFFLQNx1_ASAP7_75t_R + PLACED ( 919 1865 ) N ;
- _85_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4193 5944 ) N ;
- _86_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5705 6183 ) N ;
- _87_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4104 7666 ) N ;
- _88_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5521 6128 ) N ;
- _89_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5488 6869 ) N ;
- _90_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4280 6532 ) N ;
- _91_ DFFLQNx1_ASAP7_75t_R + PLACED ( 4201 6557 ) N ;
- _92_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5446 7611 ) N ;
- _93_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6387 5683 ) N ;
- _94_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5559 6592 ) N ;
- _95_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6683 4845 ) N ;
- _96_ DFFLQNx1_ASAP7_75t_R + PLACED ( 6311 5447 ) N ;
- _97_ DFFLQNx1_ASAP7_75t_R + PLACED ( 5270 5142 ) N ;
END COMPONENTS
PINS 65 ;
- clock + NET clock + DIRECTION INPUT + USE SIGNAL
Expand Down
38 changes: 8 additions & 30 deletions src/gpl/test/convergence01.ok
Original file line number Diff line number Diff line change
Expand Up @@ -54,40 +54,18 @@
Iteration | Area | Resized | Buffers | Nets repaired | Remaining
---------------------------------------------------------------------
0 | +0.0% | 0 | 0 | 0 | 98
<<<<<<< HEAD
final | -79.5% | 32 | 0 | 0 | 0
=======
final | -1.7% | 14 | 0 | 0 | 0
>>>>>>> master
---------------------------------------------------------------------
[INFO RSZ-0039] Resized 14 instances.
[INFO RSZ-0039] Resized 32 instances.
[INFO GPL-0106] Timing-driven: worst slack 6.35e-09
[INFO GPL-0103] Timing-driven: weighted 4 nets.
[INFO GPL-0107] Timing-driven: repair_design delta area: -1.021 um^2 (-6.57%)
[INFO GPL-0107] Timing-driven: repair_design delta area: -2.799 um^2 (-18.03%)
[INFO GPL-0108] Timing-driven: repair_design, gpl cells created: 0 (+0.00%)
[INFO GPL-0109] Timing-driven: inserted buffers as reported by repair_design: 0
[INFO GPL-0110] Timing-driven: new target density: 0.49125
[NesterovSolve] Iter: 10 overflow: 0.379 HPWL: 13036
[NesterovSolve] Iter: 20 overflow: 0.522 HPWL: 6251
[NesterovSolve] Iter: 30 overflow: 0.726 HPWL: 1966
[NesterovSolve] Iter: 40 overflow: 0.710 HPWL: 2056
[NesterovSolve] Iter: 50 overflow: 0.745 HPWL: 759
[NesterovSolve] Iter: 60 overflow: 0.743 HPWL: 1255
[NesterovSolve] Iter: 70 overflow: 0.745 HPWL: 741
[NesterovSolve] Iter: 80 overflow: 0.743 HPWL: 933
[NesterovSolve] Iter: 90 overflow: 0.739 HPWL: 848
[NesterovSolve] Iter: 100 overflow: 0.729 HPWL: 841
[NesterovSolve] Iter: 110 overflow: 0.719 HPWL: 683
[NesterovSolve] Iter: 120 overflow: 0.697 HPWL: 693
[NesterovSolve] Iter: 130 overflow: 0.693 HPWL: 807
[NesterovSolve] Iter: 140 overflow: 0.700 HPWL: 982
[NesterovSolve] Iter: 150 overflow: 0.684 HPWL: 1389
[NesterovSolve] Iter: 160 overflow: 0.630 HPWL: 2178
[NesterovSolve] Iter: 170 overflow: 0.521 HPWL: 3636
[NesterovSolve] Iter: 180 overflow: 0.505 HPWL: 3978
[NesterovSolve] Iter: 190 overflow: 0.500 HPWL: 4651
[NesterovSolve] Iter: 200 overflow: 0.460 HPWL: 6865
[NesterovSolve] Iter: 210 overflow: 0.429 HPWL: 7570
[NesterovSolve] Iter: 220 overflow: 0.335 HPWL: 7626
[NesterovSolve] Iter: 230 overflow: 0.312 HPWL: 7462
[NesterovSolve] Iter: 240 overflow: 0.239 HPWL: 7418
[NesterovSolve] Iter: 250 overflow: 0.199 HPWL: 7411
[NesterovSolve] Iter: 260 overflow: 0.106 HPWL: 7276
[NesterovSolve] Finished with Overflow: 0.098768
[INFO GPL-0110] Timing-driven: new target density: 0.476
[NesterovSolve] Finished with Overflow: 0.093288
No differences found.
Loading