Skip to content

Commit d957ce8

Browse files
authored
Merge pull request #8053 from eder-matheus/dpl_fix
dpl: avoid padding violation on cells adjacent to the core edge
2 parents afd2740 + a99e304 commit d957ce8

24 files changed

+421
-342
lines changed

src/dpl/src/PlacementDRC.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,9 @@ bool PlacementDRC::checkPadding(const Node* cell,
302302
for (GridY grid_y{y}; grid_y < cell_y_end; grid_y++) {
303303
const Pixel* pixel = grid_->gridPixel(grid_x, grid_y);
304304
if (pixel == nullptr) { // at the core edge
305-
if (!cell->isFixed()) {
305+
const bool left_edge = x == 0;
306+
const bool right_edge = cell_x_end == grid_->getRowSiteCount();
307+
if (!cell->isFixed() && !left_edge && !right_edge) {
306308
// Padding violation with the core edge.
307309
return false;
308310
}

src/dpl/test/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ COMPULSORY_TESTS = [
5656
"pad06",
5757
"pad07",
5858
"pad08",
59+
"pad09",
5960
"regions1",
6061
"regions2",
6162
"regions3",

src/dpl/test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ or_integration_tests(
5959
pad06
6060
pad07
6161
pad08
62+
pad09
6263
regions1
6364
regions2
6465
regions3

src/dpl/test/fillers2.defok

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,14 @@ VIAS 3 ;
3333
- via5_960x2800 + VIARULE Via5Array-0 + CUTSIZE 280 280 + LAYERS metal5 metal6 via5 + CUTSPACING 320 320 + ENCLOSURE 40 60 40 60 + ROWCOL 5 2 ;
3434
- via6_960x2800 + VIARULE Via6Array-0 + CUTSIZE 280 280 + LAYERS metal6 metal7 via6 + CUTSPACING 320 320 + ENCLOSURE 340 360 340 360 + ROWCOL 4 1 ;
3535
END VIAS
36-
COMPONENTS 9 ;
37-
- FILLER_0_0 FILLCELL_X2 + SOURCE DIST + PLACED ( 3800 2800 ) FS ;
38-
- FILLER_0_25 FILLCELL_X4 + SOURCE DIST + PLACED ( 13300 2800 ) FS ;
39-
- FILLER_0_29 FILLCELL_X2 + SOURCE DIST + PLACED ( 14820 2800 ) FS ;
36+
COMPONENTS 7 ;
37+
- FILLER_0_23 FILLCELL_X8 + SOURCE DIST + PLACED ( 12540 2800 ) FS ;
4038
- FILLER_0_31 FILLCELL_X1 + SOURCE DIST + PLACED ( 15580 2800 ) FS ;
41-
- FILLER_0_9 FILLCELL_X16 + SOURCE DIST + PLACED ( 7220 2800 ) FS ;
39+
- FILLER_0_7 FILLCELL_X16 + SOURCE DIST + PLACED ( 6460 2800 ) FS ;
4240
- FILLER_1_0 FILLCELL_X32 + SOURCE DIST + PLACED ( 3800 5600 ) N ;
4341
- FILLER_2_0 FILLCELL_X32 + SOURCE DIST + PLACED ( 3800 8400 ) FS ;
4442
- FILLER_3_0 FILLCELL_X32 + SOURCE DIST + PLACED ( 3800 11200 ) N ;
45-
- _277_ BUF_X4 + PLACED ( 4560 2800 ) FS ;
43+
- _277_ BUF_X4 + PLACED ( 3800 2800 ) FS ;
4644
END COMPONENTS
4745
PINS 2 ;
4846
- input + NET input + DIRECTION INPUT + USE SIGNAL

src/dpl/test/fillers2.ok

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
[INFO ODB-0133] Created 2 nets and 2 connections.
77
Placement Analysis
88
---------------------------------
9-
total displacement 3.7 u
10-
average displacement 3.7 u
11-
max displacement 3.7 u
9+
total displacement 3.3 u
10+
average displacement 3.3 u
11+
max displacement 3.3 u
1212
original HPWL 2.3 u
13-
legalized HPWL 9.9 u
14-
delta HPWL 332 %
13+
legalized HPWL 9.1 u
14+
delta HPWL 299 %
1515

16-
[INFO DPL-0001] Placed 8 filler instances.
16+
[INFO DPL-0001] Placed 6 filler instances.
1717
No differences found.

src/dpl/test/fillers2_verbose.ok

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
[INFO ODB-0133] Created 2 nets and 2 connections.
77
Placement Analysis
88
---------------------------------
9-
total displacement 3.7 u
10-
average displacement 3.7 u
11-
max displacement 3.7 u
9+
total displacement 3.3 u
10+
average displacement 3.3 u
11+
max displacement 3.3 u
1212
original HPWL 2.3 u
13-
legalized HPWL 9.9 u
14-
delta HPWL 332 %
13+
legalized HPWL 9.1 u
14+
delta HPWL 299 %
1515

16-
[INFO DPL-0001] Placed 8 filler instances.
16+
[INFO DPL-0001] Placed 6 filler instances.
1717
Filler usage:
1818
FILLCELL_X1: 1
1919
FILLCELL_X16: 1
20-
FILLCELL_X2: 2
2120
FILLCELL_X32: 3
22-
FILLCELL_X4: 1
21+
FILLCELL_X8: 1

src/dpl/test/mirror2.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ VIAS 3 ;
3535
END VIAS
3636
COMPONENTS 2 ;
3737
- b1 BUF_X1 + PLACED ( 3800 2800 ) N ;
38-
- block1 BLOCK1 + FIXED ( 4940 2810 ) N ;
38+
- block1 BLOCK1 + FIXED ( 4560 2810 ) N ;
3939
END COMPONENTS
4040
PINS 2 ;
4141
- input + NET input + DIRECTION INPUT + USE SIGNAL + FIXED ( 0 -140 ) N + LAYER metal6 ( -140 -140 ) ( 140 140 ) ;

src/dpl/test/mirror2.ok

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
[INFO ODB-0133] Created 3 nets and 2 connections.
99
Placement Analysis
1010
---------------------------------
11-
total displacement 2.9 u
12-
average displacement 1.4 u
13-
max displacement 2.9 u
14-
original HPWL 0.9 u
11+
total displacement 2.7 u
12+
average displacement 1.3 u
13+
max displacement 2.7 u
14+
original HPWL 0.7 u
1515
legalized HPWL 2.1 u
16-
delta HPWL 136 %
16+
delta HPWL 199 %
1717

1818
block orient R0
1919
[INFO DPL-0020] Mirrored 1 instances

src/dpl/test/pad01.defok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ VIAS 3 ;
3434
- via6_960x2800 + VIARULE Via6Array-0 + CUTSIZE 280 280 + LAYERS metal6 metal7 via6 + CUTSPACING 320 320 + ENCLOSURE 340 360 340 360 + ROWCOL 4 1 ;
3535
END VIAS
3636
COMPONENTS 1 ;
37-
- _277_ BUF_X4 + PLACED ( 5700 2800 ) FS ;
37+
- _277_ BUF_X4 + PLACED ( 3800 2800 ) FS ;
3838
END COMPONENTS
3939
PINS 2 ;
4040
- input + NET input + DIRECTION INPUT + USE SIGNAL

src/dpl/test/pad01.ok

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
[INFO ODB-0133] Created 2 nets and 2 connections.
77
Placement Analysis
88
---------------------------------
9-
total displacement 4.2 u
10-
average displacement 4.2 u
11-
max displacement 4.2 u
9+
total displacement 3.3 u
10+
average displacement 3.3 u
11+
max displacement 3.3 u
1212
original HPWL 2.3 u
13-
legalized HPWL 11.0 u
14-
delta HPWL 382 %
13+
legalized HPWL 9.1 u
14+
delta HPWL 299 %
1515

1616
No differences found.

0 commit comments

Comments
 (0)