Skip to content

Commit 97d8303

Browse files
committed
mpl: fix orientation improvement and add tests
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
1 parent a5258d6 commit 97d8303

10 files changed

+715
-8
lines changed

src/mpl/src/hier_rtlmp.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2771,12 +2771,12 @@ float HierRTLMP::calculateRealMacroWirelength(odb::dbInst* macro)
27712771
{
27722772
float wirelength = 0.0f;
27732773

2774-
for (odb::dbITerm* iterm : macro->getITerms()) {
2775-
if (iterm->getSigType() != odb::dbSigType::SIGNAL) {
2774+
for (odb::dbITerm* macro_pin : macro->getITerms()) {
2775+
if (macro_pin->getSigType() != odb::dbSigType::SIGNAL) {
27762776
continue;
27772777
}
27782778

2779-
odb::dbNet* net = iterm->getNet();
2779+
odb::dbNet* net = macro_pin->getNet();
27802780
if (net != nullptr) {
27812781
// Mimic dbNet::getTermBBox() behavior, but considering
27822782
// the pin constraint region instead of its position.
@@ -2799,10 +2799,10 @@ float HierRTLMP::calculateRealMacroWirelength(odb::dbInst* macro)
27992799
odb::Rect region_rect(x, y, x, y);
28002800
net_box.merge(region_rect);
28012801
} else {
2802-
odb::Point bterm_location(bterm->getBBox().xCenter(),
2803-
bterm->getBBox().yCenter());
2804-
Boundary closest_boundary
2805-
= getClosestBoundary(bterm_location, tree_->unblocked_boundaries);
2802+
odb::Point macro_pin_location(macro_pin->getBBox().xCenter(),
2803+
macro_pin->getBBox().yCenter());
2804+
Boundary closest_boundary = getClosestBoundary(
2805+
macro_pin_location, tree_->unblocked_boundaries);
28062806

28072807
// As we classify the blocked/unblocked state of the boundary based on
28082808
// the extension of the -exclude constraint, it's possible to have
@@ -2814,7 +2814,7 @@ float HierRTLMP::calculateRealMacroWirelength(odb::dbInst* macro)
28142814
}
28152815

28162816
odb::Point closest_point
2817-
= getClosestBoundaryPoint(bterm_location, closest_boundary);
2817+
= getClosestBoundaryPoint(macro_pin_location, closest_boundary);
28182818
odb::Rect closest_point_rect(closest_point, closest_point);
28192819
net_box.merge(closest_point_rect);
28202820
}

src/mpl/test/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ or_integration_tests(
88
io_constraints1
99
io_constraints2
1010
io_pads1
11+
orientation_improve1
12+
orientation_improve2
1113
)
1214

1315
# Skipped
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
VERSION 5.8 ;
2+
DIVIDERCHAR "/" ;
3+
BUSBITCHARS "[]" ;
4+
DESIGN io_constraints1 ;
5+
UNITS DISTANCE MICRONS 2000 ;
6+
DIEAREA ( 0 0 ) ( 240000 240000 ) ;
7+
ROW ROW_7 FreePDK45_38x28_10R_NP_162NW_34O 18000 19600 FS DO 536 BY 1 STEP 380 0 ;
8+
ROW ROW_8 FreePDK45_38x28_10R_NP_162NW_34O 18000 22400 N DO 536 BY 1 STEP 380 0 ;
9+
ROW ROW_9 FreePDK45_38x28_10R_NP_162NW_34O 18000 25200 FS DO 536 BY 1 STEP 380 0 ;
10+
ROW ROW_10 FreePDK45_38x28_10R_NP_162NW_34O 18000 28000 N DO 536 BY 1 STEP 380 0 ;
11+
ROW ROW_11 FreePDK45_38x28_10R_NP_162NW_34O 18000 30800 FS DO 536 BY 1 STEP 380 0 ;
12+
ROW ROW_12 FreePDK45_38x28_10R_NP_162NW_34O 18000 33600 N DO 536 BY 1 STEP 380 0 ;
13+
ROW ROW_13 FreePDK45_38x28_10R_NP_162NW_34O 18000 36400 FS DO 536 BY 1 STEP 380 0 ;
14+
ROW ROW_14 FreePDK45_38x28_10R_NP_162NW_34O 18000 39200 N DO 536 BY 1 STEP 380 0 ;
15+
ROW ROW_15 FreePDK45_38x28_10R_NP_162NW_34O 18000 42000 FS DO 536 BY 1 STEP 380 0 ;
16+
ROW ROW_16 FreePDK45_38x28_10R_NP_162NW_34O 18000 44800 N DO 536 BY 1 STEP 380 0 ;
17+
ROW ROW_17 FreePDK45_38x28_10R_NP_162NW_34O 18000 47600 FS DO 536 BY 1 STEP 380 0 ;
18+
ROW ROW_18 FreePDK45_38x28_10R_NP_162NW_34O 18000 50400 N DO 536 BY 1 STEP 380 0 ;
19+
ROW ROW_19 FreePDK45_38x28_10R_NP_162NW_34O 18000 53200 FS DO 536 BY 1 STEP 380 0 ;
20+
ROW ROW_20 FreePDK45_38x28_10R_NP_162NW_34O 18000 56000 N DO 536 BY 1 STEP 380 0 ;
21+
ROW ROW_21 FreePDK45_38x28_10R_NP_162NW_34O 18000 58800 FS DO 536 BY 1 STEP 380 0 ;
22+
ROW ROW_22 FreePDK45_38x28_10R_NP_162NW_34O 18000 61600 N DO 536 BY 1 STEP 380 0 ;
23+
ROW ROW_23 FreePDK45_38x28_10R_NP_162NW_34O 18000 64400 FS DO 536 BY 1 STEP 380 0 ;
24+
ROW ROW_24 FreePDK45_38x28_10R_NP_162NW_34O 18000 67200 N DO 536 BY 1 STEP 380 0 ;
25+
ROW ROW_25 FreePDK45_38x28_10R_NP_162NW_34O 18000 70000 FS DO 536 BY 1 STEP 380 0 ;
26+
ROW ROW_26 FreePDK45_38x28_10R_NP_162NW_34O 18000 72800 N DO 536 BY 1 STEP 380 0 ;
27+
ROW ROW_27 FreePDK45_38x28_10R_NP_162NW_34O 18000 75600 FS DO 536 BY 1 STEP 380 0 ;
28+
ROW ROW_28 FreePDK45_38x28_10R_NP_162NW_34O 18000 78400 N DO 536 BY 1 STEP 380 0 ;
29+
ROW ROW_29 FreePDK45_38x28_10R_NP_162NW_34O 18000 81200 FS DO 536 BY 1 STEP 380 0 ;
30+
ROW ROW_30 FreePDK45_38x28_10R_NP_162NW_34O 18000 84000 N DO 536 BY 1 STEP 380 0 ;
31+
ROW ROW_31 FreePDK45_38x28_10R_NP_162NW_34O 18000 86800 FS DO 536 BY 1 STEP 380 0 ;
32+
ROW ROW_32 FreePDK45_38x28_10R_NP_162NW_34O 18000 89600 N DO 536 BY 1 STEP 380 0 ;
33+
ROW ROW_33 FreePDK45_38x28_10R_NP_162NW_34O 18000 92400 FS DO 536 BY 1 STEP 380 0 ;
34+
ROW ROW_34 FreePDK45_38x28_10R_NP_162NW_34O 18000 95200 N DO 536 BY 1 STEP 380 0 ;
35+
ROW ROW_35 FreePDK45_38x28_10R_NP_162NW_34O 18000 98000 FS DO 536 BY 1 STEP 380 0 ;
36+
ROW ROW_36 FreePDK45_38x28_10R_NP_162NW_34O 18000 100800 N DO 536 BY 1 STEP 380 0 ;
37+
ROW ROW_37 FreePDK45_38x28_10R_NP_162NW_34O 18000 103600 FS DO 536 BY 1 STEP 380 0 ;
38+
ROW ROW_38 FreePDK45_38x28_10R_NP_162NW_34O 18000 106400 N DO 536 BY 1 STEP 380 0 ;
39+
ROW ROW_39 FreePDK45_38x28_10R_NP_162NW_34O 18000 109200 FS DO 536 BY 1 STEP 380 0 ;
40+
ROW ROW_40 FreePDK45_38x28_10R_NP_162NW_34O 18000 112000 N DO 536 BY 1 STEP 380 0 ;
41+
ROW ROW_41 FreePDK45_38x28_10R_NP_162NW_34O 18000 114800 FS DO 536 BY 1 STEP 380 0 ;
42+
ROW ROW_42 FreePDK45_38x28_10R_NP_162NW_34O 18000 117600 N DO 536 BY 1 STEP 380 0 ;
43+
ROW ROW_43 FreePDK45_38x28_10R_NP_162NW_34O 18000 120400 FS DO 536 BY 1 STEP 380 0 ;
44+
ROW ROW_44 FreePDK45_38x28_10R_NP_162NW_34O 18000 123200 N DO 536 BY 1 STEP 380 0 ;
45+
ROW ROW_45 FreePDK45_38x28_10R_NP_162NW_34O 18000 126000 FS DO 536 BY 1 STEP 380 0 ;
46+
ROW ROW_46 FreePDK45_38x28_10R_NP_162NW_34O 18000 128800 N DO 536 BY 1 STEP 380 0 ;
47+
ROW ROW_47 FreePDK45_38x28_10R_NP_162NW_34O 18000 131600 FS DO 536 BY 1 STEP 380 0 ;
48+
ROW ROW_48 FreePDK45_38x28_10R_NP_162NW_34O 18000 134400 N DO 536 BY 1 STEP 380 0 ;
49+
ROW ROW_49 FreePDK45_38x28_10R_NP_162NW_34O 18000 137200 FS DO 536 BY 1 STEP 380 0 ;
50+
ROW ROW_50 FreePDK45_38x28_10R_NP_162NW_34O 18000 140000 N DO 536 BY 1 STEP 380 0 ;
51+
ROW ROW_51 FreePDK45_38x28_10R_NP_162NW_34O 18000 142800 FS DO 536 BY 1 STEP 380 0 ;
52+
ROW ROW_52 FreePDK45_38x28_10R_NP_162NW_34O 18000 145600 N DO 536 BY 1 STEP 380 0 ;
53+
ROW ROW_53 FreePDK45_38x28_10R_NP_162NW_34O 18000 148400 FS DO 536 BY 1 STEP 380 0 ;
54+
ROW ROW_54 FreePDK45_38x28_10R_NP_162NW_34O 18000 151200 N DO 536 BY 1 STEP 380 0 ;
55+
ROW ROW_55 FreePDK45_38x28_10R_NP_162NW_34O 18000 154000 FS DO 536 BY 1 STEP 380 0 ;
56+
ROW ROW_56 FreePDK45_38x28_10R_NP_162NW_34O 18000 156800 N DO 536 BY 1 STEP 380 0 ;
57+
ROW ROW_57 FreePDK45_38x28_10R_NP_162NW_34O 18000 159600 FS DO 536 BY 1 STEP 380 0 ;
58+
ROW ROW_58 FreePDK45_38x28_10R_NP_162NW_34O 18000 162400 N DO 536 BY 1 STEP 380 0 ;
59+
ROW ROW_59 FreePDK45_38x28_10R_NP_162NW_34O 18000 165200 FS DO 536 BY 1 STEP 380 0 ;
60+
ROW ROW_60 FreePDK45_38x28_10R_NP_162NW_34O 18000 168000 N DO 536 BY 1 STEP 380 0 ;
61+
ROW ROW_61 FreePDK45_38x28_10R_NP_162NW_34O 18000 170800 FS DO 536 BY 1 STEP 380 0 ;
62+
ROW ROW_62 FreePDK45_38x28_10R_NP_162NW_34O 18000 173600 N DO 536 BY 1 STEP 380 0 ;
63+
ROW ROW_63 FreePDK45_38x28_10R_NP_162NW_34O 18000 176400 FS DO 536 BY 1 STEP 380 0 ;
64+
ROW ROW_64 FreePDK45_38x28_10R_NP_162NW_34O 18000 179200 N DO 536 BY 1 STEP 380 0 ;
65+
ROW ROW_65 FreePDK45_38x28_10R_NP_162NW_34O 18000 182000 FS DO 536 BY 1 STEP 380 0 ;
66+
ROW ROW_66 FreePDK45_38x28_10R_NP_162NW_34O 18000 184800 N DO 536 BY 1 STEP 380 0 ;
67+
ROW ROW_67 FreePDK45_38x28_10R_NP_162NW_34O 18000 187600 FS DO 536 BY 1 STEP 380 0 ;
68+
ROW ROW_68 FreePDK45_38x28_10R_NP_162NW_34O 18000 190400 N DO 536 BY 1 STEP 380 0 ;
69+
ROW ROW_69 FreePDK45_38x28_10R_NP_162NW_34O 18000 193200 FS DO 536 BY 1 STEP 380 0 ;
70+
ROW ROW_70 FreePDK45_38x28_10R_NP_162NW_34O 18000 196000 N DO 536 BY 1 STEP 380 0 ;
71+
ROW ROW_71 FreePDK45_38x28_10R_NP_162NW_34O 18000 198800 FS DO 536 BY 1 STEP 380 0 ;
72+
ROW ROW_72 FreePDK45_38x28_10R_NP_162NW_34O 18000 201600 N DO 536 BY 1 STEP 380 0 ;
73+
ROW ROW_73 FreePDK45_38x28_10R_NP_162NW_34O 18000 204400 FS DO 536 BY 1 STEP 380 0 ;
74+
ROW ROW_74 FreePDK45_38x28_10R_NP_162NW_34O 18000 207200 N DO 536 BY 1 STEP 380 0 ;
75+
ROW ROW_75 FreePDK45_38x28_10R_NP_162NW_34O 18000 210000 FS DO 536 BY 1 STEP 380 0 ;
76+
ROW ROW_76 FreePDK45_38x28_10R_NP_162NW_34O 18000 212800 N DO 536 BY 1 STEP 380 0 ;
77+
ROW ROW_77 FreePDK45_38x28_10R_NP_162NW_34O 18000 215600 FS DO 536 BY 1 STEP 380 0 ;
78+
ROW ROW_78 FreePDK45_38x28_10R_NP_162NW_34O 18000 218400 N DO 536 BY 1 STEP 380 0 ;
79+
TRACKS X 190 DO 2368 STEP 380 LAYER metal1 ;
80+
TRACKS Y 140 DO 3214 STEP 280 LAYER metal1 ;
81+
TRACKS X 190 DO 2368 STEP 380 LAYER metal2 ;
82+
TRACKS Y 140 DO 3214 STEP 280 LAYER metal2 ;
83+
TRACKS X 190 DO 2368 STEP 380 LAYER metal3 ;
84+
TRACKS Y 140 DO 3214 STEP 280 LAYER metal3 ;
85+
TRACKS X 190 DO 1607 STEP 560 LAYER metal4 ;
86+
TRACKS Y 140 DO 1607 STEP 560 LAYER metal4 ;
87+
TRACKS X 190 DO 1607 STEP 560 LAYER metal5 ;
88+
TRACKS Y 140 DO 1607 STEP 560 LAYER metal5 ;
89+
TRACKS X 190 DO 1607 STEP 560 LAYER metal6 ;
90+
TRACKS Y 140 DO 1607 STEP 560 LAYER metal6 ;
91+
TRACKS X 190 DO 563 STEP 1600 LAYER metal7 ;
92+
TRACKS Y 140 DO 563 STEP 1600 LAYER metal7 ;
93+
TRACKS X 190 DO 563 STEP 1600 LAYER metal8 ;
94+
TRACKS Y 140 DO 563 STEP 1600 LAYER metal8 ;
95+
TRACKS X 190 DO 282 STEP 3200 LAYER metal9 ;
96+
TRACKS Y 140 DO 282 STEP 3200 LAYER metal9 ;
97+
TRACKS X 190 DO 282 STEP 3200 LAYER metal10 ;
98+
TRACKS Y 140 DO 282 STEP 3200 LAYER metal10 ;
99+
COMPONENTS 1 ;
100+
- MACRO_1 HM_100x100_1x1 + FIXED ( 21080 21050 ) S ;
101+
END COMPONENTS
102+
PINS 1 ;
103+
- io_1 + NET io_1 + DIRECTION INPUT + USE SIGNAL
104+
+ PORT
105+
+ LAYER metal5 ( -140 -140 ) ( 140 140 )
106+
+ PLACED ( 239860 34860 ) N ;
107+
END PINS
108+
NETS 1 ;
109+
- io_1 ( PIN io_1 ) ( MACRO_1 I1 ) + USE SIGNAL ;
110+
END NETS
111+
END DESIGN
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[INFO ODB-0227] LEF file: ./Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells
2+
[INFO ODB-0227] LEF file: ./testcases/orientation_improve1.lef, created 9 library cells
3+
[INFO ODB-0128] Design: io_constraints1
4+
[INFO ODB-0130] Created 1 pins.
5+
[INFO ODB-0131] Created 1 components and 2 component-terminals.
6+
[INFO ODB-0133] Created 1 nets and 1 connections.
7+
[INFO PPL-0067] Restrict INPUT pins to region 10.00u-30.00u, in the RIGHT edge.
8+
Found 1 macro blocks.
9+
Using 2 tracks default min distance between IO pins.
10+
[INFO PPL-0001] Number of slots 842
11+
[INFO PPL-0002] Number of I/O 1
12+
[INFO PPL-0003] Number of I/O w/sink 1
13+
[INFO PPL-0004] Number of I/O w/o sink 0
14+
[INFO PPL-0012] I/O nets HPWL: 102.57 um.
15+
Die Area: (0.00, 0.00) (120.00, 120.00), Floorplan Area: (9.00, 9.80) (110.84, 110.60)
16+
Number of std cell instances: 0
17+
Area of std cell instances: 0.00
18+
Number of macros: 1
19+
Area of macros: 10000.00
20+
Halo width: 0.30
21+
Halo height: 0.30
22+
Area of macros with halos: 10120.36
23+
Area of std cell instances + Area of macros: 10000.00
24+
Floorplan area: 10265.47
25+
Design Utilization: 0.97
26+
Floorplan Utilization: 0.00
27+
Manufacturing Grid: 10
28+
29+
[WARNING MPL-0025] Design has no standard cells!
30+
No differences found.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Test orientation improvement with one constrained pin.
2+
source "helpers.tcl"
3+
4+
read_lef "./Nangate45/Nangate45.lef"
5+
read_lef "./testcases/orientation_improve1.lef"
6+
7+
read_def "./testcases/orientation_improve1.def"
8+
9+
# Run random PPL to incorporate the constraints into ODB
10+
set_io_pin_constraint -direction INPUT -region right:10-30*
11+
place_pins -annealing -random -hor_layers metal5 -ver_layer metal6
12+
13+
set_thread_count 0
14+
rtl_macro_placer -report_directory results/orientation_improve1 -halo_width 0.3
15+
16+
set def_file [make_result_file orientation_improve1.def]
17+
write_def $def_file
18+
19+
diff_files orientation_improve1.defok $def_file
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
VERSION 5.8 ;
2+
DIVIDERCHAR "/" ;
3+
BUSBITCHARS "[]" ;
4+
DESIGN io_constraints1 ;
5+
UNITS DISTANCE MICRONS 2000 ;
6+
DIEAREA ( 0 0 ) ( 240000 240000 ) ;
7+
ROW ROW_7 FreePDK45_38x28_10R_NP_162NW_34O 18000 19600 FS DO 536 BY 1 STEP 380 0 ;
8+
ROW ROW_8 FreePDK45_38x28_10R_NP_162NW_34O 18000 22400 N DO 536 BY 1 STEP 380 0 ;
9+
ROW ROW_9 FreePDK45_38x28_10R_NP_162NW_34O 18000 25200 FS DO 536 BY 1 STEP 380 0 ;
10+
ROW ROW_10 FreePDK45_38x28_10R_NP_162NW_34O 18000 28000 N DO 536 BY 1 STEP 380 0 ;
11+
ROW ROW_11 FreePDK45_38x28_10R_NP_162NW_34O 18000 30800 FS DO 536 BY 1 STEP 380 0 ;
12+
ROW ROW_12 FreePDK45_38x28_10R_NP_162NW_34O 18000 33600 N DO 536 BY 1 STEP 380 0 ;
13+
ROW ROW_13 FreePDK45_38x28_10R_NP_162NW_34O 18000 36400 FS DO 536 BY 1 STEP 380 0 ;
14+
ROW ROW_14 FreePDK45_38x28_10R_NP_162NW_34O 18000 39200 N DO 536 BY 1 STEP 380 0 ;
15+
ROW ROW_15 FreePDK45_38x28_10R_NP_162NW_34O 18000 42000 FS DO 536 BY 1 STEP 380 0 ;
16+
ROW ROW_16 FreePDK45_38x28_10R_NP_162NW_34O 18000 44800 N DO 536 BY 1 STEP 380 0 ;
17+
ROW ROW_17 FreePDK45_38x28_10R_NP_162NW_34O 18000 47600 FS DO 536 BY 1 STEP 380 0 ;
18+
ROW ROW_18 FreePDK45_38x28_10R_NP_162NW_34O 18000 50400 N DO 536 BY 1 STEP 380 0 ;
19+
ROW ROW_19 FreePDK45_38x28_10R_NP_162NW_34O 18000 53200 FS DO 536 BY 1 STEP 380 0 ;
20+
ROW ROW_20 FreePDK45_38x28_10R_NP_162NW_34O 18000 56000 N DO 536 BY 1 STEP 380 0 ;
21+
ROW ROW_21 FreePDK45_38x28_10R_NP_162NW_34O 18000 58800 FS DO 536 BY 1 STEP 380 0 ;
22+
ROW ROW_22 FreePDK45_38x28_10R_NP_162NW_34O 18000 61600 N DO 536 BY 1 STEP 380 0 ;
23+
ROW ROW_23 FreePDK45_38x28_10R_NP_162NW_34O 18000 64400 FS DO 536 BY 1 STEP 380 0 ;
24+
ROW ROW_24 FreePDK45_38x28_10R_NP_162NW_34O 18000 67200 N DO 536 BY 1 STEP 380 0 ;
25+
ROW ROW_25 FreePDK45_38x28_10R_NP_162NW_34O 18000 70000 FS DO 536 BY 1 STEP 380 0 ;
26+
ROW ROW_26 FreePDK45_38x28_10R_NP_162NW_34O 18000 72800 N DO 536 BY 1 STEP 380 0 ;
27+
ROW ROW_27 FreePDK45_38x28_10R_NP_162NW_34O 18000 75600 FS DO 536 BY 1 STEP 380 0 ;
28+
ROW ROW_28 FreePDK45_38x28_10R_NP_162NW_34O 18000 78400 N DO 536 BY 1 STEP 380 0 ;
29+
ROW ROW_29 FreePDK45_38x28_10R_NP_162NW_34O 18000 81200 FS DO 536 BY 1 STEP 380 0 ;
30+
ROW ROW_30 FreePDK45_38x28_10R_NP_162NW_34O 18000 84000 N DO 536 BY 1 STEP 380 0 ;
31+
ROW ROW_31 FreePDK45_38x28_10R_NP_162NW_34O 18000 86800 FS DO 536 BY 1 STEP 380 0 ;
32+
ROW ROW_32 FreePDK45_38x28_10R_NP_162NW_34O 18000 89600 N DO 536 BY 1 STEP 380 0 ;
33+
ROW ROW_33 FreePDK45_38x28_10R_NP_162NW_34O 18000 92400 FS DO 536 BY 1 STEP 380 0 ;
34+
ROW ROW_34 FreePDK45_38x28_10R_NP_162NW_34O 18000 95200 N DO 536 BY 1 STEP 380 0 ;
35+
ROW ROW_35 FreePDK45_38x28_10R_NP_162NW_34O 18000 98000 FS DO 536 BY 1 STEP 380 0 ;
36+
ROW ROW_36 FreePDK45_38x28_10R_NP_162NW_34O 18000 100800 N DO 536 BY 1 STEP 380 0 ;
37+
ROW ROW_37 FreePDK45_38x28_10R_NP_162NW_34O 18000 103600 FS DO 536 BY 1 STEP 380 0 ;
38+
ROW ROW_38 FreePDK45_38x28_10R_NP_162NW_34O 18000 106400 N DO 536 BY 1 STEP 380 0 ;
39+
ROW ROW_39 FreePDK45_38x28_10R_NP_162NW_34O 18000 109200 FS DO 536 BY 1 STEP 380 0 ;
40+
ROW ROW_40 FreePDK45_38x28_10R_NP_162NW_34O 18000 112000 N DO 536 BY 1 STEP 380 0 ;
41+
ROW ROW_41 FreePDK45_38x28_10R_NP_162NW_34O 18000 114800 FS DO 536 BY 1 STEP 380 0 ;
42+
ROW ROW_42 FreePDK45_38x28_10R_NP_162NW_34O 18000 117600 N DO 536 BY 1 STEP 380 0 ;
43+
ROW ROW_43 FreePDK45_38x28_10R_NP_162NW_34O 18000 120400 FS DO 536 BY 1 STEP 380 0 ;
44+
ROW ROW_44 FreePDK45_38x28_10R_NP_162NW_34O 18000 123200 N DO 536 BY 1 STEP 380 0 ;
45+
ROW ROW_45 FreePDK45_38x28_10R_NP_162NW_34O 18000 126000 FS DO 536 BY 1 STEP 380 0 ;
46+
ROW ROW_46 FreePDK45_38x28_10R_NP_162NW_34O 18000 128800 N DO 536 BY 1 STEP 380 0 ;
47+
ROW ROW_47 FreePDK45_38x28_10R_NP_162NW_34O 18000 131600 FS DO 536 BY 1 STEP 380 0 ;
48+
ROW ROW_48 FreePDK45_38x28_10R_NP_162NW_34O 18000 134400 N DO 536 BY 1 STEP 380 0 ;
49+
ROW ROW_49 FreePDK45_38x28_10R_NP_162NW_34O 18000 137200 FS DO 536 BY 1 STEP 380 0 ;
50+
ROW ROW_50 FreePDK45_38x28_10R_NP_162NW_34O 18000 140000 N DO 536 BY 1 STEP 380 0 ;
51+
ROW ROW_51 FreePDK45_38x28_10R_NP_162NW_34O 18000 142800 FS DO 536 BY 1 STEP 380 0 ;
52+
ROW ROW_52 FreePDK45_38x28_10R_NP_162NW_34O 18000 145600 N DO 536 BY 1 STEP 380 0 ;
53+
ROW ROW_53 FreePDK45_38x28_10R_NP_162NW_34O 18000 148400 FS DO 536 BY 1 STEP 380 0 ;
54+
ROW ROW_54 FreePDK45_38x28_10R_NP_162NW_34O 18000 151200 N DO 536 BY 1 STEP 380 0 ;
55+
ROW ROW_55 FreePDK45_38x28_10R_NP_162NW_34O 18000 154000 FS DO 536 BY 1 STEP 380 0 ;
56+
ROW ROW_56 FreePDK45_38x28_10R_NP_162NW_34O 18000 156800 N DO 536 BY 1 STEP 380 0 ;
57+
ROW ROW_57 FreePDK45_38x28_10R_NP_162NW_34O 18000 159600 FS DO 536 BY 1 STEP 380 0 ;
58+
ROW ROW_58 FreePDK45_38x28_10R_NP_162NW_34O 18000 162400 N DO 536 BY 1 STEP 380 0 ;
59+
ROW ROW_59 FreePDK45_38x28_10R_NP_162NW_34O 18000 165200 FS DO 536 BY 1 STEP 380 0 ;
60+
ROW ROW_60 FreePDK45_38x28_10R_NP_162NW_34O 18000 168000 N DO 536 BY 1 STEP 380 0 ;
61+
ROW ROW_61 FreePDK45_38x28_10R_NP_162NW_34O 18000 170800 FS DO 536 BY 1 STEP 380 0 ;
62+
ROW ROW_62 FreePDK45_38x28_10R_NP_162NW_34O 18000 173600 N DO 536 BY 1 STEP 380 0 ;
63+
ROW ROW_63 FreePDK45_38x28_10R_NP_162NW_34O 18000 176400 FS DO 536 BY 1 STEP 380 0 ;
64+
ROW ROW_64 FreePDK45_38x28_10R_NP_162NW_34O 18000 179200 N DO 536 BY 1 STEP 380 0 ;
65+
ROW ROW_65 FreePDK45_38x28_10R_NP_162NW_34O 18000 182000 FS DO 536 BY 1 STEP 380 0 ;
66+
ROW ROW_66 FreePDK45_38x28_10R_NP_162NW_34O 18000 184800 N DO 536 BY 1 STEP 380 0 ;
67+
ROW ROW_67 FreePDK45_38x28_10R_NP_162NW_34O 18000 187600 FS DO 536 BY 1 STEP 380 0 ;
68+
ROW ROW_68 FreePDK45_38x28_10R_NP_162NW_34O 18000 190400 N DO 536 BY 1 STEP 380 0 ;
69+
ROW ROW_69 FreePDK45_38x28_10R_NP_162NW_34O 18000 193200 FS DO 536 BY 1 STEP 380 0 ;
70+
ROW ROW_70 FreePDK45_38x28_10R_NP_162NW_34O 18000 196000 N DO 536 BY 1 STEP 380 0 ;
71+
ROW ROW_71 FreePDK45_38x28_10R_NP_162NW_34O 18000 198800 FS DO 536 BY 1 STEP 380 0 ;
72+
ROW ROW_72 FreePDK45_38x28_10R_NP_162NW_34O 18000 201600 N DO 536 BY 1 STEP 380 0 ;
73+
ROW ROW_73 FreePDK45_38x28_10R_NP_162NW_34O 18000 204400 FS DO 536 BY 1 STEP 380 0 ;
74+
ROW ROW_74 FreePDK45_38x28_10R_NP_162NW_34O 18000 207200 N DO 536 BY 1 STEP 380 0 ;
75+
ROW ROW_75 FreePDK45_38x28_10R_NP_162NW_34O 18000 210000 FS DO 536 BY 1 STEP 380 0 ;
76+
ROW ROW_76 FreePDK45_38x28_10R_NP_162NW_34O 18000 212800 N DO 536 BY 1 STEP 380 0 ;
77+
ROW ROW_77 FreePDK45_38x28_10R_NP_162NW_34O 18000 215600 FS DO 536 BY 1 STEP 380 0 ;
78+
ROW ROW_78 FreePDK45_38x28_10R_NP_162NW_34O 18000 218400 N DO 536 BY 1 STEP 380 0 ;
79+
TRACKS X 190 DO 2368 STEP 380 LAYER metal1 ;
80+
TRACKS Y 140 DO 3214 STEP 280 LAYER metal1 ;
81+
TRACKS X 190 DO 2368 STEP 380 LAYER metal2 ;
82+
TRACKS Y 140 DO 3214 STEP 280 LAYER metal2 ;
83+
TRACKS X 190 DO 2368 STEP 380 LAYER metal3 ;
84+
TRACKS Y 140 DO 3214 STEP 280 LAYER metal3 ;
85+
TRACKS X 190 DO 1607 STEP 560 LAYER metal4 ;
86+
TRACKS Y 140 DO 1607 STEP 560 LAYER metal4 ;
87+
TRACKS X 190 DO 1607 STEP 560 LAYER metal5 ;
88+
TRACKS Y 140 DO 1607 STEP 560 LAYER metal5 ;
89+
TRACKS X 190 DO 1607 STEP 560 LAYER metal6 ;
90+
TRACKS Y 140 DO 1607 STEP 560 LAYER metal6 ;
91+
TRACKS X 190 DO 563 STEP 1600 LAYER metal7 ;
92+
TRACKS Y 140 DO 563 STEP 1600 LAYER metal7 ;
93+
TRACKS X 190 DO 563 STEP 1600 LAYER metal8 ;
94+
TRACKS Y 140 DO 563 STEP 1600 LAYER metal8 ;
95+
TRACKS X 190 DO 282 STEP 3200 LAYER metal9 ;
96+
TRACKS Y 140 DO 282 STEP 3200 LAYER metal9 ;
97+
TRACKS X 190 DO 282 STEP 3200 LAYER metal10 ;
98+
TRACKS Y 140 DO 282 STEP 3200 LAYER metal10 ;
99+
COMPONENTS 1 ;
100+
- MACRO_1 HM_100x100_1x1 + FIXED ( 18600 20490 ) FS ;
101+
END COMPONENTS
102+
PINS 1 ;
103+
- io_1 + NET io_1 + DIRECTION INPUT + USE SIGNAL
104+
+ PORT
105+
+ LAYER metal5 ( -140 -140 ) ( 140 140 )
106+
+ PLACED ( 140 154700 ) N ;
107+
END PINS
108+
NETS 1 ;
109+
- io_1 ( PIN io_1 ) ( MACRO_1 I1 ) + USE SIGNAL ;
110+
END NETS
111+
END DESIGN
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
[INFO ODB-0227] LEF file: ./Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells
2+
[INFO ODB-0227] LEF file: ./testcases/orientation_improve1.lef, created 9 library cells
3+
[INFO ODB-0128] Design: io_constraints1
4+
[INFO ODB-0130] Created 1 pins.
5+
[INFO ODB-0131] Created 1 components and 2 component-terminals.
6+
[INFO ODB-0133] Created 1 nets and 1 connections.
7+
Found 1 macro blocks.
8+
Using 2 tracks default min distance between IO pins.
9+
[INFO PPL-0001] Number of slots 842
10+
[INFO PPL-0002] Number of I/O 1
11+
[INFO PPL-0003] Number of I/O w/sink 1
12+
[INFO PPL-0004] Number of I/O w/o sink 0
13+
[INFO PPL-0012] I/O nets HPWL: 77.35 um.
14+
Die Area: (0.00, 0.00) (120.00, 120.00), Floorplan Area: (9.00, 9.80) (110.84, 110.60)
15+
Number of std cell instances: 0
16+
Area of std cell instances: 0.00
17+
Number of macros: 1
18+
Area of macros: 10000.00
19+
Halo width: 0.30
20+
Halo height: 0.30
21+
Area of macros with halos: 10120.36
22+
Area of std cell instances + Area of macros: 10000.00
23+
Floorplan area: 10265.47
24+
Design Utilization: 0.97
25+
Floorplan Utilization: 0.00
26+
Manufacturing Grid: 10
27+
28+
[WARNING MPL-0025] Design has no standard cells!
29+
No differences found.

0 commit comments

Comments
 (0)