1source "helpers.tcl"
2
3read_lef NangateOpenCellLibrary.mod.lef
4read_lef dummy_pads.lef
5
6read_liberty dummy_pads.lib
7
8
9# Load library defintions
10define_pad_cell \
11  -name PAD \
12  -orient {bottom R0 right R90 top R180 left R270} \
13  -bondpad \
14  -pad_pin_name PAD
15
16catch {define_pad_cell \
17  -name PADCELL_SIG \
18  type sig \
19  -cell_name {top PADCELL_SIG_V bottom PADCELL_SIG_V left PADCELL_SIG_H right PADCELL_SIG_H} \
20  -orient {bottom R0 right R90 top R180 left R270} \
21  -pad_pin_name PAD
22}
23
24define_pad_cell \
25  -name PADCELL_SIG \
26  -type sig \
27  -cell_name {top PADCELL_SIG_V bottom PADCELL_SIG_V left PADCELL_SIG_H right PADCELL_SIG_H} \
28  -orient {bottom R0 right R90 top R180 left R270} \
29  -pad_pin_name PAD
30
31define_pad_cell \
32  -name PADCELL_VDD \
33  -type vdd \
34  -cell_name {top PADCELL_VDD_V bottom PADCELL_VDD_V left PADCELL_VDD_H right PADCELL_VDD_H} \
35  -orient {bottom R0 right R90 top R180 left R270} \
36  -pad_pin_name VDD
37
38define_pad_cell \
39  -name PADCELL_VSS \
40  -type vss \
41  -cell_name {top PADCELL_VSS_V bottom PADCELL_VSS_V left PADCELL_VSS_H right PADCELL_VSS_H} \
42  -orient {bottom R0 right R90 top R180 left R270} \
43  -pad_pin_name VSS
44
45define_pad_cell \
46  -name PADCELL_VDDIO \
47  -type vddio \
48  -cell_name {top PADCELL_VDDIO_V bottom PADCELL_VDDIO_V left PADCELL_VDDIO_H right PADCELL_VDDIO_H} \
49  -orient {bottom R0 right R90 top R180 left R270} \
50  -pad_pin_name DVDD
51
52define_pad_cell \
53  -name PADCELL_VSSIO \
54  -type vssio \
55  -cell_name {top PADCELL_VSSIO_V bottom PADCELL_VSSIO_V left PADCELL_VSSIO_H right PADCELL_VSSIO_H} \
56  -orient {bottom R0 right R90 top R180 left R270} \
57  -pad_pin_name DVSS
58
59define_pad_cell \
60  -name PADCELL_CBRK \
61  -type cbk \
62  -cell_name {bottom PADCELL_CBRK_V right PADCELL_CBRK_H top PADCELL_CBRK_V left PADCELL_CBRK_H} \
63  -orient {bottom R0 right R90 top R180 left R270} \
64  -break_signals {RETN {RETNA RETNB} SNS {SNSA SNSB}} \
65  -physical_only
66
67define_pad_cell \
68  -name PADCELL_PWRDET \
69  -type pdt \
70  -cell_name {bottom PADCELL_PWRDET_V right PADCELL_PWRDET_H top PADCELL_PWRDET_V left PADCELL_PWRDET_H} \
71  -orient {bottom R0 right R90 top R180 left R270} \
72  -physical_only
73
74define_pad_cell \
75  -name PADCELL_FBRK \
76  -type fbk \
77  -cell_name {bottom PADCELL_FBRK_V right PADCELL_FBRK_H top PADCELL_FBRK_V left PADCELL_FBRK_H} \
78  -orient {bottom R0 right R90 top R180 left R270} \
79  -break_signals {RETN {RETNA RETNB} SNS {SNSA SNSB} DVDD {DVDDA DVDDB} DVSS {DVSSA DVSSB}} \
80  -physical_only
81
82define_pad_cell \
83  -name PAD_FILL5 \
84  -fill \
85  -cell_name {bottom PAD_FILL5_V right PAD_FILL5_H top PAD_FILL5_V left PAD_FILL5_H} \
86  -orient {bottom R0 right MY top R180 left MX} \
87  -physical_only
88
89define_pad_cell \
90  -name PAD_FILL1 \
91  -fill \
92  -cell_name {bottom PAD_FILL1_V right PAD_FILL1_H top PAD_FILL1_V left PAD_FILL1_H} \
93  -orient {bottom R0 right MY top R180 left MX} \
94  -physical_only
95
96define_pad_cell \
97  -name PAD_CORNER \
98  -corner \
99  -orient {ll R0 lr R90 ur R180 ul R270} \
100  -physical_only
101
102define_pad_cell \
103  -name DUMMY_BUMP \
104  -bump \
105  -physical_only
106
107# Test help messages
108help define_pad_cell
109help set_bump_options
110help set_padring_options
111help place_cell
112help add_pad
113help initialize_padring
114
115read_verilog soc_bsg_black_parrot_nangate45/soc_bsg_black_parrot.v
116
117link_design soc_bsg_black_parrot
118
119catch {set_padring_options -type Wirebond -power_nets  {VDD DVDD_0 DVDD_1} -ground_nets {VSS DVSS_0 DVSS_1} -offsets 35 -pin_layer metal10 -pad_inst_pattern "%s"}
120catch {set_padring_options -type Wirebond -offsets {35 36 37} -pin_layer metal10 -pad_inst_pattern "%s"}
121
122catch {set_padring_options \
123  -type wirebond \
124  -power  {VDD DVDD_0 DVDD_1} \
125  -ground {VSS DVSS_0 DVSS_1} \
126  offsets 35 \
127  -pin_layer metal10 \
128  -pad_inst_pattern "%s" \
129  -pad_pin_pattern "p_%s" \
130  -connect_by_abutment {SNS RETN DVDD DVSS}
131}
132
133set_padring_options \
134  -type wirebond \
135  -power  {VDD DVDD_0 DVDD_1} \
136  -ground {VSS DVSS_0 DVSS_1} \
137  -offsets 35 \
138  -pin_layer metal10 \
139  -pad_inst_pattern "%s" \
140  -connect_by_abutment {SNS RETN DVDD DVSS}
141
142place_cell -cell MARKER -inst_name u_marker_0 -origin {1197.5 1199.3} -orient R0 -status FIRM
143
144puts "Trigger errors"
145# Trigger errors
146catch {add_pad -edge other  -signal p_ddr_dm_1_o         -type sig   -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
147catch {add_pad -edge bottom -signal dr_dm_1_o            -type sig   -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
148catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sign  -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
149catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location somewhere                        -bondpad {centre {x  292.000 y   63.293}}}
150catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre}                         -bondpad {centre {x  292.000 y   63.293}}}
151catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {origin}                         -bondpad {centre {x  292.000 y   63.293}}}
152catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {292.000 105.000}}       -bondpad {centre {x  292.000 y   63.293}}}
153catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {X  292.000 Y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
154catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {x  292.000 Y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
155catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {X  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
156catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}} -bump not_allowed_for_wirebond}
157catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {origin}                         -bondpad {centre {x  292.000 y   63.293}}}
158catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {origin {292.000 105.000}}       -bondpad {centre {x  292.000 y   63.293}}}
159catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {origin {X  292.000 Y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
160catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {x  292.000 Y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
161catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {X  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
162catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {x  292.000 y  105.000} orient no} -bondpad {centre {x  292.000 y   63.293}}}
163catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -cell SIG         -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
164catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -cell PADCELL_VDD -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
165catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -cell PADCELL_SIG -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
166
167puts "This one is correct"
168add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -cell PADCELL_SIG_V -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}
169
170puts "Detect duplicates"
171catch {add_pad -edge bottom -signal p_ddr_dm_1_o         -type sig   -location {centre {x  292.000 y  105.000}} -bondpad {centre {x  292.000 y   63.293}}}
172catch {add_pad -edge bottom -signal p_ddr_dqs_n_1_io     -type sig   -location {centre {x  362.000 y  105.000}} bondpad {centre {x  362.000 y   63.293}}}
173
174puts "No more errors expected"
175
176# Define the same padring for soc_bsg_black_parrot_nangate45 using TCL commands, rather than strategy file.
177#
178add_pad -edge bottom -signal p_ddr_dqs_n_1_io     -type sig   -location {centre {x  362.000 y  105.000}} -bondpad {centre {x  362.000 y   63.293}}
179add_pad -edge bottom -signal p_ddr_dqs_p_1_io     -type sig   -location {centre {x  432.000 y  105.000}} -bondpad {centre {x  432.000 y   63.293}}
180add_pad -edge bottom -signal p_ddr_ba_2_o         -type sig   -location {centre {x  502.000 y  105.000}} -bondpad {centre {x  502.000 y   63.293}}
181add_pad -edge bottom -signal p_ddr_ba_1_o         -type sig   -location {centre {x  607.000 y  105.000}} -bondpad {centre {x  607.000 y   63.293}}
182add_pad -edge bottom -signal p_ddr_ba_0_o         -type sig   -location {centre {x  677.000 y  105.000}} -bondpad {centre {x  677.000 y   63.293}}
183add_pad -edge bottom -signal p_ddr_addr_15_o      -type sig   -location {centre {x  747.000 y  105.000}} -bondpad {centre {x  747.000 y   63.293}}
184add_pad -edge bottom -signal p_ddr_addr_14_o      -type sig   -location {centre {x  817.000 y  105.000}} -bondpad {centre {x  817.000 y   63.293}}
185add_pad -edge bottom -signal p_ddr_addr_13_o      -type sig   -location {centre {x  887.000 y  105.000}} -bondpad {centre {x  887.000 y   63.293}}
186add_pad -edge bottom -signal p_ddr_addr_12_o      -type sig   -location {centre {x  957.000 y  105.000}} -bondpad {centre {x  957.000 y   63.293}}
187add_pad -edge bottom -signal p_ddr_addr_11_o      -type sig   -location {centre {x 1027.000 y  105.000}} -bondpad {centre {x 1027.000 y   63.293}}
188add_pad -edge bottom -signal p_ddr_addr_10_o      -type sig   -location {centre {x 1097.000 y  105.000}} -bondpad {centre {x 1097.000 y   63.293}}
189add_pad -edge bottom -signal p_ddr_addr_9_o       -type sig   -location {centre {x 1167.000 y  105.000}} -bondpad {centre {x 1167.000 y   63.293}}
190add_pad -edge bottom -signal p_ddr_addr_8_o       -type sig   -location {centre {x 1272.000 y  105.000}} -bondpad {centre {x 1272.000 y   63.293}}
191add_pad -edge bottom -signal p_ddr_addr_7_o       -type sig   -location {centre {x 1342.000 y  105.000}} -bondpad {centre {x 1342.000 y   63.293}}
192add_pad -edge bottom -signal p_ddr_addr_6_o       -type sig   -location {centre {x 1412.000 y  105.000}} -bondpad {centre {x 1412.000 y   63.293}}
193add_pad -edge bottom -signal p_ddr_addr_5_o       -type sig   -location {centre {x 1482.000 y  105.000}} -bondpad {centre {x 1482.000 y   63.293}}
194add_pad -edge bottom -signal p_ddr_addr_4_o       -type sig   -location {centre {x 1552.000 y  105.000}} -bondpad {centre {x 1552.000 y   63.293}}
195add_pad -edge bottom -signal p_ddr_addr_3_o       -type sig   -location {centre {x 1622.000 y  105.000}} -bondpad {centre {x 1622.000 y   63.293}}
196add_pad -edge bottom -signal p_ddr_addr_2_o       -type sig   -location {centre {x 1692.000 y  105.000}} -bondpad {centre {x 1692.000 y   63.293}}
197add_pad -edge bottom -signal p_ddr_addr_1_o       -type sig   -location {centre {x 1762.000 y  105.000}} -bondpad {centre {x 1762.000 y   63.293}}
198add_pad -edge bottom -signal p_ddr_addr_0_o       -type sig   -location {centre {x 1867.000 y  105.000}} -bondpad {centre {x 1867.000 y   63.293}}
199add_pad -edge bottom -signal p_ddr_odt_o          -type sig   -location {centre {x 1937.000 y  105.000}} -bondpad {centre {x 1937.000 y   63.293}}
200add_pad -edge bottom -signal p_ddr_reset_n_o      -type sig   -location {centre {x 2007.000 y  105.000}} -bondpad {centre {x 2007.000 y   63.293}}
201add_pad -edge bottom -signal p_ddr_we_n_o         -type sig   -location {centre {x 2077.000 y  105.000}} -bondpad {centre {x 2077.000 y   63.293}}
202add_pad -edge bottom -signal p_ddr_cas_n_o        -type sig   -location {centre {x 2147.000 y  105.000}} -bondpad {centre {x 2147.000 y   63.293}}
203add_pad -edge bottom -signal p_ddr_ras_n_o        -type sig   -location {centre {x 2217.000 y  105.000}} -bondpad {centre {x 2217.000 y   63.293}}
204add_pad -edge bottom -signal p_ddr_cs_n_o         -type sig   -location {centre {x 2287.000 y  105.000}} -bondpad {centre {x 2287.000 y   63.293}}
205add_pad -edge bottom -signal p_ddr_cke_o          -type sig   -location {centre {x 2357.000 y  105.000}} -bondpad {centre {x 2357.000 y   63.293}}
206add_pad -edge bottom -signal p_ddr_ck_n_o         -type sig   -location {centre {x 2427.000 y  105.000}} -bondpad {centre {x 2427.000 y   63.293}}
207add_pad -edge bottom -signal p_ddr_ck_p_o         -type sig   -location {centre {x 2532.000 y  105.000}} -bondpad {centre {x 2532.000 y   63.293}}
208add_pad -edge bottom -signal p_ddr_dqs_n_2_io     -type sig   -location {centre {x 2602.000 y  105.000}} -bondpad {centre {x 2602.000 y   63.293}}
209add_pad -edge bottom -signal p_ddr_dqs_p_2_io     -type sig   -location {centre {x 2672.000 y  105.000}} -bondpad {centre {x 2672.000 y   63.293}}
210add_pad -edge bottom -signal p_ddr_dm_2_o         -type sig   -location {centre {x 2742.000 y  105.000}} -bondpad {centre {x 2742.000 y   63.293}}
211add_pad -edge bottom -inst_name u_vzz_0   -signal DVSS_0               -type vssio -location {centre {x  257.000 y  105.000}} -bondpad {centre {x  257.000 y  149.893}}
212add_pad -edge bottom -inst_name u_v18_0   -signal DVDD_0               -type vddio -location {centre {x  327.000 y  105.000}} -bondpad {centre {x  327.000 y  149.893}}
213add_pad -edge bottom -inst_name u_vss_0   -signal VSS                  -type vss   -location {centre {x  397.000 y  105.000}} -bondpad {centre {x  397.000 y  149.893}}
214add_pad -edge bottom -inst_name u_vdd_0   -signal VDD                  -type vdd   -location {centre {x  467.000 y  105.000}} -bondpad {centre {x  467.000 y  149.893}}
215add_pad -edge bottom -inst_name u_vzz_1   -signal DVSS_0               -type vssio -location {centre {x  537.000 y  105.000}} -bondpad {centre {x  537.000 y  149.893}}
216add_pad -edge bottom -inst_name u_v18_1   -signal DVDD_0               -type vddio -location {centre {x  642.000 y  105.000}} -bondpad {centre {x  642.000 y  149.893}}
217add_pad -edge bottom -inst_name u_vss_1   -signal VSS                  -type vss   -location {centre {x  712.000 y  105.000}} -bondpad {centre {x  712.000 y  149.893}}
218add_pad -edge bottom -inst_name u_vdd_1   -signal VDD                  -type vdd   -location {centre {x  782.000 y  105.000}} -bondpad {centre {x  782.000 y  149.893}}
219add_pad -edge bottom -inst_name u_vzz_2   -signal DVSS_0               -type vssio -location {centre {x  852.000 y  105.000}} -bondpad {centre {x  852.000 y  149.893}}
220add_pad -edge bottom -inst_name u_v18_2   -signal DVDD_0               -type vddio -location {centre {x  922.000 y  105.000}} -bondpad {centre {x  922.000 y  149.893}}
221add_pad -edge bottom -inst_name u_vss_2   -signal VSS                  -type vss   -location {centre {x  992.000 y  105.000}} -bondpad {centre {x  992.000 y  149.893}}
222add_pad -edge bottom -inst_name u_vdd_2   -signal VDD                  -type vdd   -location {centre {x 1062.000 y  105.000}} -bondpad {centre {x 1062.000 y  149.893}}
223add_pad -edge bottom -inst_name u_vzz_3   -signal DVSS_0               -type vssio -location {centre {x 1132.000 y  105.000}} -bondpad {centre {x 1132.000 y  149.893}}
224add_pad -edge bottom -inst_name u_v18_3   -signal DVDD_0               -type vddio -location {centre {x 1237.000 y  105.000}} -bondpad {centre {x 1237.000 y  149.893}}
225add_pad -edge bottom -inst_name u_vss_3   -signal VSS                  -type vss   -location {centre {x 1307.000 y  105.000}} -bondpad {centre {x 1307.000 y  149.893}}
226add_pad -edge bottom -inst_name u_vdd_3   -signal VDD                  -type vdd   -location {centre {x 1377.000 y  105.000}} -bondpad {centre {x 1377.000 y  149.893}}
227add_pad -edge bottom -inst_name u_vzz_4   -signal DVSS_0               -type vssio -location {centre {x 1447.000 y  105.000}} -bondpad {centre {x 1447.000 y  149.893}}
228add_pad -edge bottom -inst_name u_v18_4   -signal DVDD_0               -type vddio -location {centre {x 1517.000 y  105.000}} -bondpad {centre {x 1517.000 y  149.893}}
229add_pad -edge bottom -inst_name u_vss_4   -signal VSS                  -type vss   -location {centre {x 1587.000 y  105.000}} -bondpad {centre {x 1587.000 y  149.893}}
230add_pad -edge bottom -inst_name u_vdd_4   -signal VDD                  -type vdd   -location {centre {x 1657.000 y  105.000}} -bondpad {centre {x 1657.000 y  149.893}}
231add_pad -edge bottom -inst_name u_vzz_5   -signal DVSS_0               -type vssio -location {centre {x 1727.000 y  105.000}} -bondpad {centre {x 1727.000 y  149.893}}
232add_pad -edge bottom -inst_name u_v18_5   -signal DVDD_0               -type vddio -location {centre {x 1797.000 y  105.000}} -bondpad {centre {x 1797.000 y  149.893}}
233add_pad -edge bottom -inst_name u_vss_5   -signal VSS                  -type vss   -location {centre {x 1902.000 y  105.000}} -bondpad {centre {x 1902.000 y  149.893}}
234add_pad -edge bottom -inst_name u_vdd_5   -signal VDD                  -type vdd   -location {centre {x 1972.000 y  105.000}} -bondpad {centre {x 1972.000 y  149.893}}
235add_pad -edge bottom -inst_name u_vzz_6   -signal DVSS_0               -type vssio -location {centre {x 2042.000 y  105.000}} -bondpad {centre {x 2042.000 y  149.893}}
236add_pad -edge bottom -inst_name u_v18_6   -signal DVDD_0               -type vddio -location {centre {x 2112.000 y  105.000}} -bondpad {centre {x 2112.000 y  149.893}}
237add_pad -edge bottom -inst_name u_vss_6   -signal VSS                  -type vss   -location {centre {x 2182.000 y  105.000}} -bondpad {centre {x 2182.000 y  149.893}}
238add_pad -edge bottom -inst_name u_vdd_6   -signal VDD                  -type vdd   -location {centre {x 2252.000 y  105.000}} -bondpad {centre {x 2252.000 y  149.893}}
239add_pad -edge bottom -inst_name u_vzz_7   -signal DVSS_0               -type vssio -location {centre {x 2322.000 y  105.000}} -bondpad {centre {x 2322.000 y  149.893}}
240add_pad -edge bottom -inst_name u_v18_7   -signal DVDD_0               -type vddio -location {centre {x 2392.000 y  105.000}} -bondpad {centre {x 2392.000 y  149.893}}
241add_pad -edge bottom -inst_name u_vss_7   -signal VSS                  -type vss   -location {centre {x 2497.000 y  105.000}} -bondpad {centre {x 2497.000 y  149.893}}
242add_pad -edge bottom -inst_name u_vdd_7   -signal VDD                  -type vdd   -location {centre {x 2567.000 y  105.000}} -bondpad {centre {x 2567.000 y  149.893}}
243add_pad -edge bottom -inst_name u_vzz_8   -signal DVSS_0               -type vssio -location {centre {x 2637.000 y  105.000}} -bondpad {centre {x 2637.000 y  149.893}}
244add_pad -edge bottom -inst_name u_v18_8   -signal DVDD_0               -type vddio -location {centre {x 2707.000 y  105.000}} -bondpad {centre {x 2707.000 y  149.893}}
245add_pad -edge bottom -inst_name u_cbrk0                -type cbk   -location {centre {x  239.500 y  105.000}}
246add_pad -edge bottom -inst_name u_cbrk1                -type cbk   -location {centre {x  869.500 y  105.000}}
247add_pad -edge bottom -inst_name u_cbrk2                -type cbk   -location {centre {x 1499.500 y  105.000}}
248add_pad -edge bottom -inst_name u_cbrk3                -type cbk   -location {centre {x 2129.500 y  105.000}}
249add_pad -edge bottom -inst_name u_cbrk4                -type cbk   -location {centre {x 2759.500 y  105.000}}
250add_pad -edge bottom -inst_name u_pwrdet0              -type pdt   -location {centre {x  572.000 y  105.000}}
251add_pad -edge bottom -inst_name u_pwrdet1              -type pdt   -location {centre {x 1202.000 y  105.000}}
252add_pad -edge bottom -inst_name u_pwrdet2              -type pdt   -location {centre {x 1832.000 y  105.000}}
253add_pad -edge bottom -inst_name u_pwrdet3              -type pdt   -location {centre {x 2462.000 y  105.000}}
254add_pad -edge right  -signal p_ddr_dq_23_io       -type sig   -location {centre {x 2895.000 y  292.000}} -bondpad {centre {x 2936.707 y  292.000}}
255add_pad -edge right  -signal p_ddr_dq_22_io       -type sig   -location {centre {x 2895.000 y  362.000}} -bondpad {centre {x 2936.707 y  362.000}}
256add_pad -edge right  -signal p_ddr_dq_21_io       -type sig   -location {centre {x 2895.000 y  432.000}} -bondpad {centre {x 2936.707 y  432.000}}
257add_pad -edge right  -signal p_ddr_dq_20_io       -type sig   -location {centre {x 2895.000 y  502.000}} -bondpad {centre {x 2936.707 y  502.000}}
258add_pad -edge right  -signal p_ddr_dq_19_io       -type sig   -location {centre {x 2895.000 y  607.000}} -bondpad {centre {x 2936.707 y  607.000}}
259add_pad -edge right  -signal p_ddr_dq_18_io       -type sig   -location {centre {x 2895.000 y  677.000}} -bondpad {centre {x 2936.707 y  677.000}}
260add_pad -edge right  -signal p_ddr_dq_17_io       -type sig   -location {centre {x 2895.000 y  747.000}} -bondpad {centre {x 2936.707 y  747.000}}
261add_pad -edge right  -signal p_ddr_dq_16_io       -type sig   -location {centre {x 2895.000 y  817.000}} -bondpad {centre {x 2936.707 y  817.000}}
262add_pad -edge right  -signal p_ddr_dq_31_io       -type sig   -location {centre {x 2895.000 y  887.000}} -bondpad {centre {x 2936.707 y  887.000}}
263add_pad -edge right  -signal p_ddr_dq_30_io       -type sig   -location {centre {x 2895.000 y  957.000}} -bondpad {centre {x 2936.707 y  957.000}}
264add_pad -edge right  -signal p_ddr_dq_29_io       -type sig   -location {centre {x 2895.000 y 1027.000}} -bondpad {centre {x 2936.707 y 1027.000}}
265add_pad -edge right  -signal p_ddr_dq_28_io       -type sig   -location {centre {x 2895.000 y 1097.000}} -bondpad {centre {x 2936.707 y 1097.000}}
266add_pad -edge right  -signal p_ddr_dq_27_io       -type sig   -location {centre {x 2895.000 y 1167.000}} -bondpad {centre {x 2936.707 y 1167.000}}
267add_pad -edge right  -signal p_ddr_dq_26_io       -type sig   -location {centre {x 2895.000 y 1272.000}} -bondpad {centre {x 2936.707 y 1272.000}}
268add_pad -edge right  -signal p_ddr_dq_25_io       -type sig   -location {centre {x 2895.000 y 1342.000}} -bondpad {centre {x 2936.707 y 1342.000}}
269add_pad -edge right  -signal p_ddr_dq_24_io       -type sig   -location {centre {x 2895.000 y 1412.000}} -bondpad {centre {x 2936.707 y 1412.000}}
270add_pad -edge right  -signal p_ddr_dqs_n_3_io     -type sig   -location {centre {x 2895.000 y 1482.000}} -bondpad {centre {x 2936.707 y 1482.000}}
271add_pad -edge right  -signal p_ddr_dqs_p_3_io     -type sig   -location {centre {x 2895.000 y 1552.000}} -bondpad {centre {x 2936.707 y 1552.000}}
272add_pad -edge right  -signal p_ddr_dm_3_o         -type sig   -location {centre {x 2895.000 y 1622.000}} -bondpad {centre {x 2936.707 y 1622.000}}
273add_pad -edge right  -signal p_bsg_tag_clk_i      -type sig   -location {centre {x 2895.000 y 1692.000}} -bondpad {centre {x 2936.707 y 1692.000}}
274add_pad -edge right  -signal p_bsg_tag_data_i     -type sig   -location {centre {x 2895.000 y 1762.000}} -bondpad {centre {x 2936.707 y 1762.000}}
275add_pad -edge right  -signal p_bsg_tag_en_i       -type sig   -location {centre {x 2895.000 y 1867.000}} -bondpad {centre {x 2936.707 y 1867.000}}
276add_pad -edge right  -signal p_ci_8_i             -type sig   -location {centre {x 2895.000 y 1937.000}} -bondpad {centre {x 2936.707 y 1937.000}}
277add_pad -edge right  -signal p_ci_7_i             -type sig   -location {centre {x 2895.000 y 2007.000}} -bondpad {centre {x 2936.707 y 2007.000}}
278add_pad -edge right  -signal p_ci_6_i             -type sig   -location {centre {x 2895.000 y 2077.000}} -bondpad {centre {x 2936.707 y 2077.000}}
279add_pad -edge right  -signal p_ci_5_i             -type sig   -location {centre {x 2895.000 y 2147.000}} -bondpad {centre {x 2936.707 y 2147.000}}
280add_pad -edge right  -signal p_ci_v_i             -type sig   -location {centre {x 2895.000 y 2217.000}} -bondpad {centre {x 2936.707 y 2217.000}}
281add_pad -edge right  -signal p_ci_tkn_o           -type sig   -location {centre {x 2895.000 y 2287.000}} -bondpad {centre {x 2936.707 y 2287.000}}
282add_pad -edge right  -signal p_ci_clk_i           -type sig   -location {centre {x 2895.000 y 2357.000}} -bondpad {centre {x 2936.707 y 2357.000}}
283add_pad -edge right  -signal p_ci_4_i             -type sig   -location {centre {x 2895.000 y 2427.000}} -bondpad {centre {x 2936.707 y 2427.000}}
284add_pad -edge right  -signal p_ci_3_i             -type sig   -location {centre {x 2895.000 y 2532.000}} -bondpad {centre {x 2936.707 y 2532.000}}
285add_pad -edge right  -signal p_ci_2_i             -type sig   -location {centre {x 2895.000 y 2602.000}} -bondpad {centre {x 2936.707 y 2602.000}}
286add_pad -edge right  -signal p_ci_1_i             -type sig   -location {centre {x 2895.000 y 2672.000}} -bondpad {centre {x 2936.707 y 2672.000}}
287add_pad -edge right  -signal p_ci_0_i             -type sig   -location {centre {x 2895.000 y 2742.000}} -bondpad {centre {x 2936.707 y 2742.000}}
288add_pad -edge right  -inst_name u_vss_8   -signal VSS                  -type vss   -location {centre {x 2895.000 y  257.000}} -bondpad {centre {x 2850.161 y  257.000}}
289add_pad -edge right  -inst_name u_vdd_8   -signal VDD                  -type vdd   -location {centre {x 2895.000 y  327.000}} -bondpad {centre {x 2850.161 y  327.000}}
290add_pad -edge right  -inst_name u_vzz_9   -signal DVSS_0               -type vssio -location {centre {x 2895.000 y  397.000}} -bondpad {centre {x 2850.161 y  397.000}}
291add_pad -edge right  -inst_name u_v18_9   -signal DVDD_0               -type vddio -location {centre {x 2895.000 y  467.000}} -bondpad {centre {x 2850.161 y  467.000}}
292add_pad -edge right  -inst_name u_vss_9   -signal VSS                  -type vss   -location {centre {x 2895.000 y  537.000}} -bondpad {centre {x 2850.161 y  537.000}}
293add_pad -edge right  -inst_name u_vdd_9   -signal VDD                  -type vdd   -location {centre {x 2895.000 y  642.000}} -bondpad {centre {x 2850.161 y  642.000}}
294add_pad -edge right  -inst_name u_vzz_10  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y  712.000}} -bondpad {centre {x 2850.161 y  712.000}}
295add_pad -edge right  -inst_name u_v18_10  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y  782.000}} -bondpad {centre {x 2850.161 y  782.000}}
296add_pad -edge right  -inst_name u_vss_10  -signal VSS                  -type vss   -location {centre {x 2895.000 y  852.000}} -bondpad {centre {x 2850.161 y  852.000}}
297add_pad -edge right  -inst_name u_vdd_10  -signal VDD                  -type vdd   -location {centre {x 2895.000 y  922.000}} -bondpad {centre {x 2850.161 y  922.000}}
298add_pad -edge right  -inst_name u_vzz_11  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y  992.000}} -bondpad {centre {x 2850.161 y  992.000}}
299add_pad -edge right  -inst_name u_v18_11  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y 1062.000}} -bondpad {centre {x 2850.161 y 1062.000}}
300add_pad -edge right  -inst_name u_vss_11  -signal VSS                  -type vss   -location {centre {x 2895.000 y 1132.000}} -bondpad {centre {x 2850.161 y 1132.000}}
301add_pad -edge right  -inst_name u_vdd_11  -signal VDD                  -type vdd   -location {centre {x 2895.000 y 1237.000}} -bondpad {centre {x 2850.161 y 1237.000}}
302add_pad -edge right  -inst_name u_vzz_12  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y 1307.000}} -bondpad {centre {x 2850.161 y 1307.000}}
303add_pad -edge right  -inst_name u_v18_12  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y 1377.000}} -bondpad {centre {x 2850.161 y 1377.000}}
304add_pad -edge right  -inst_name u_vss_12  -signal VSS                  -type vss   -location {centre {x 2895.000 y 1447.000}} -bondpad {centre {x 2850.161 y 1447.000}}
305add_pad -edge right  -inst_name u_vdd_12  -signal VDD                  -type vdd   -location {centre {x 2895.000 y 1517.000}} -bondpad {centre {x 2850.161 y 1517.000}}
306add_pad -edge right  -inst_name u_vzz_13  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y 1587.000}} -bondpad {centre {x 2850.161 y 1587.000}}
307add_pad -edge right  -inst_name u_v18_13  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y 1657.000}} -bondpad {centre {x 2850.161 y 1657.000}}
308add_pad -edge right  -inst_name u_vss_13  -signal VSS                  -type vss   -location {centre {x 2895.000 y 1727.000}} -bondpad {centre {x 2850.161 y 1727.000}}
309add_pad -edge right  -inst_name u_vdd_13  -signal VDD                  -type vdd   -location {centre {x 2895.000 y 1797.000}} -bondpad {centre {x 2850.161 y 1797.000}}
310add_pad -edge right  -inst_name u_vzz_14  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y 1902.000}} -bondpad {centre {x 2850.161 y 1902.000}}
311add_pad -edge right  -inst_name u_v18_14  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y 1972.000}} -bondpad {centre {x 2850.161 y 1972.000}}
312add_pad -edge right  -inst_name u_vss_14  -signal VSS                  -type vss   -location {centre {x 2895.000 y 2042.000}} -bondpad {centre {x 2850.161 y 2042.000}}
313add_pad -edge right  -inst_name u_vdd_14  -signal VDD                  -type vdd   -location {centre {x 2895.000 y 2112.000}} -bondpad {centre {x 2850.161 y 2112.000}}
314add_pad -edge right  -inst_name u_vzz_15  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y 2182.000}} -bondpad {centre {x 2850.161 y 2182.000}}
315add_pad -edge right  -inst_name u_v18_15  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y 2252.000}} -bondpad {centre {x 2850.161 y 2252.000}}
316add_pad -edge right  -inst_name u_vss_15  -signal VSS                  -type vss   -location {centre {x 2895.000 y 2322.000}} -bondpad {centre {x 2850.161 y 2322.000}}
317add_pad -edge right  -inst_name u_vdd_15  -signal VDD                  -type vdd   -location {centre {x 2895.000 y 2392.000}} -bondpad {centre {x 2850.161 y 2392.000}}
318add_pad -edge right  -inst_name u_vzz_16  -signal DVSS_0               -type vssio -location {centre {x 2895.000 y 2497.000}} -bondpad {centre {x 2850.161 y 2497.000}}
319add_pad -edge right  -inst_name u_v18_16  -signal DVDD_0               -type vddio -location {centre {x 2895.000 y 2567.000}} -bondpad {centre {x 2850.161 y 2567.000}}
320add_pad -edge right  -inst_name u_vss_16  -signal VSS                  -type vss   -location {centre {x 2895.000 y 2637.000}} -bondpad {centre {x 2850.161 y 2637.000}}
321add_pad -edge right  -inst_name u_vdd_16  -signal VDD                  -type vdd   -location {centre {x 2895.000 y 2707.000}} -bondpad {centre {x 2850.161 y 2707.000}}
322add_pad -edge right  -inst_name u_cbrk5                -type cbk   -location {centre {x 2895.000 y  239.500}}
323add_pad -edge right  -inst_name u_cbrk6                -type cbk   -location {centre {x 2895.000 y  869.500}}
324add_pad -edge right  -inst_name u_cbrk7                -type cbk   -location {centre {x 2895.000 y 1499.500}}
325add_pad -edge right  -inst_name u_cbrk8                -type cbk   -location {centre {x 2895.000 y 2129.500}}
326add_pad -edge right  -inst_name u_cbrk9                -type cbk   -location {centre {x 2895.000 y 2759.500}}
327add_pad -edge right  -inst_name u_pwrdet4              -type pdt   -location {centre {x 2895.000 y  572.000}}
328add_pad -edge right  -inst_name u_pwrdet5              -type pdt   -location {centre {x 2895.000 y 1202.000}}
329add_pad -edge right  -inst_name u_pwrdet6              -type pdt   -location {centre {x 2895.000 y 1832.000}}
330add_pad -edge right  -inst_name u_pwrdet7              -type pdt   -location {centre {x 2895.000 y 2462.000}}
331add_pad -edge top    -signal p_ci2_8_o            -type sig   -location {centre {x 2760.000 y 2895.000}} -bondpad {centre {x 2760.000 y 2850.161}}
332add_pad -edge top    -signal p_ci2_7_o            -type sig   -location {centre {x 2690.000 y 2895.000}} -bondpad {centre {x 2690.000 y 2850.161}}
333add_pad -edge top    -signal p_ci2_6_o            -type sig   -location {centre {x 2620.000 y 2895.000}} -bondpad {centre {x 2620.000 y 2850.161}}
334add_pad -edge top    -signal p_ci2_5_o            -type sig   -location {centre {x 2550.000 y 2895.000}} -bondpad {centre {x 2550.000 y 2850.161}}
335add_pad -edge top    -signal p_ci2_v_o            -type sig   -location {centre {x 2445.000 y 2895.000}} -bondpad {centre {x 2445.000 y 2850.161}}
336add_pad -edge top    -signal p_ci2_tkn_i          -type sig   -location {centre {x 2375.000 y 2895.000}} -bondpad {centre {x 2375.000 y 2850.161}}
337add_pad -edge top    -signal p_ci2_clk_o          -type sig   -location {centre {x 2305.000 y 2895.000}} -bondpad {centre {x 2305.000 y 2850.161}}
338add_pad -edge top    -signal p_ci2_4_o            -type sig   -location {centre {x 2235.000 y 2895.000}} -bondpad {centre {x 2235.000 y 2850.161}}
339add_pad -edge top    -signal p_ci2_3_o            -type sig   -location {centre {x 2165.000 y 2895.000}} -bondpad {centre {x 2165.000 y 2850.161}}
340add_pad -edge top    -signal p_ci2_2_o            -type sig   -location {centre {x 2095.000 y 2895.000}} -bondpad {centre {x 2095.000 y 2850.161}}
341add_pad -edge top    -signal p_ci2_1_o            -type sig   -location {centre {x 2025.000 y 2895.000}} -bondpad {centre {x 2025.000 y 2850.161}}
342add_pad -edge top    -signal p_ci2_0_o            -type sig   -location {centre {x 1955.000 y 2895.000}} -bondpad {centre {x 1955.000 y 2850.161}}
343add_pad -edge top    -signal p_core_async_reset_i -type sig   -location {centre {x 1850.000 y 2895.000}} -bondpad {centre {x 1850.000 y 2850.161}}
344add_pad -edge top    -signal p_sel_2_i            -type sig   -location {centre {x 1780.000 y 2895.000}} -bondpad {centre {x 1780.000 y 2850.161}}
345add_pad -edge top    -signal p_sel_1_i            -type sig   -location {centre {x 1710.000 y 2895.000}} -bondpad {centre {x 1710.000 y 2850.161}}
346add_pad -edge top    -signal p_sel_0_i            -type sig   -location {centre {x 1640.000 y 2895.000}} -bondpad {centre {x 1640.000 y 2850.161}}
347add_pad -edge top    -signal p_misc_o             -type sig   -location {centre {x 1570.000 y 2895.000}} -bondpad {centre {x 1570.000 y 2850.161}}
348add_pad -edge top    -signal p_clk_async_reset_i  -type sig   -location {centre {x 1500.000 y 2895.000}} -bondpad {centre {x 1500.000 y 2850.161}}
349add_pad -edge top    -signal p_clk_o              -type sig   -location {centre {x 1395.000 y 2895.000}} -bondpad {centre {x 1395.000 y 2850.161}}
350add_pad -edge top    -signal p_clk_C_i            -type sig   -location {centre {x 1325.000 y 2895.000}} -bondpad {centre {x 1325.000 y 2850.161}}
351add_pad -edge top    -signal p_clk_B_i            -type sig   -location {centre {x 1255.000 y 2895.000}} -bondpad {centre {x 1255.000 y 2850.161}}
352add_pad -edge top    -signal p_clk_A_i            -type sig   -location {centre {x 1185.000 y 2895.000}} -bondpad {centre {x 1185.000 y 2850.161}}
353add_pad -edge top    -signal p_co_8_i             -type sig   -location {centre {x 1115.000 y 2895.000}} -bondpad {centre {x 1115.000 y 2850.161}}
354add_pad -edge top    -signal p_co_7_i             -type sig   -location {centre {x 1045.000 y 2895.000}} -bondpad {centre {x 1045.000 y 2850.161}}
355add_pad -edge top    -signal p_co_6_i             -type sig   -location {centre {x  940.000 y 2895.000}} -bondpad {centre {x  940.000 y 2850.161}}
356add_pad -edge top    -signal p_co_5_i             -type sig   -location {centre {x  870.000 y 2895.000}} -bondpad {centre {x  870.000 y 2850.161}}
357add_pad -edge top    -signal p_co_v_i             -type sig   -location {centre {x  800.000 y 2895.000}} -bondpad {centre {x  800.000 y 2850.161}}
358add_pad -edge top    -signal p_co_tkn_o           -type sig   -location {centre {x  730.000 y 2895.000}} -bondpad {centre {x  730.000 y 2850.161}}
359add_pad -edge top    -signal p_co_clk_i           -type sig   -location {centre {x  660.000 y 2895.000}} -bondpad {centre {x  660.000 y 2850.161}}
360add_pad -edge top    -signal p_co_4_i             -type sig   -location {centre {x  590.000 y 2895.000}} -bondpad {centre {x  590.000 y 2850.161}}
361add_pad -edge top    -signal p_co_3_i             -type sig   -location {centre {x  520.000 y 2895.000}} -bondpad {centre {x  520.000 y 2850.161}}
362add_pad -edge top    -signal p_co_2_i             -type sig   -location {centre {x  415.000 y 2895.000}} -bondpad {centre {x  415.000 y 2850.161}}
363add_pad -edge top    -signal p_co_1_i             -type sig   -location {centre {x  345.000 y 2895.000}} -bondpad {centre {x  345.000 y 2850.161}}
364add_pad -edge top    -signal p_co_0_i             -type sig   -location {centre {x  275.000 y 2895.000}} -bondpad {centre {x  275.000 y 2850.161}}
365add_pad -edge top    -inst_name u_vzz_17  -signal DVSS_0               -type vssio -location {centre {x 2725.000 y 2895.000}} -bondpad {centre {x 2725.000 y 2936.707}}
366add_pad -edge top    -inst_name u_v18_17  -signal DVDD_0               -type vddio -location {centre {x 2655.000 y 2895.000}} -bondpad {centre {x 2655.000 y 2936.707}}
367add_pad -edge top    -inst_name u_vss_17  -signal VSS                  -type vss   -location {centre {x 2585.000 y 2895.000}} -bondpad {centre {x 2585.000 y 2936.707}}
368add_pad -edge top    -inst_name u_vdd_17  -signal VDD                  -type vdd   -location {centre {x 2515.000 y 2895.000}} -bondpad {centre {x 2515.000 y 2936.707}}
369add_pad -edge top    -inst_name u_vzz_18  -signal DVSS_0               -type vssio -location {centre {x 2410.000 y 2895.000}} -bondpad {centre {x 2410.000 y 2936.707}}
370add_pad -edge top    -inst_name u_v18_18  -signal DVDD_0               -type vddio -location {centre {x 2340.000 y 2895.000}} -bondpad {centre {x 2340.000 y 2936.707}}
371add_pad -edge top    -inst_name u_vss_18  -signal VSS                  -type vss   -location {centre {x 2270.000 y 2895.000}} -bondpad {centre {x 2270.000 y 2936.707}}
372add_pad -edge top    -inst_name u_vdd_18  -signal VDD                  -type vdd   -location {centre {x 2200.000 y 2895.000}} -bondpad {centre {x 2200.000 y 2936.707}}
373add_pad -edge top    -inst_name u_vzz_19  -signal DVSS_0               -type vssio -location {centre {x 2130.000 y 2895.000}} -bondpad {centre {x 2130.000 y 2936.707}}
374add_pad -edge top    -inst_name u_v18_19  -signal DVDD_0               -type vddio -location {centre {x 2060.000 y 2895.000}} -bondpad {centre {x 2060.000 y 2936.707}}
375add_pad -edge top    -inst_name u_vss_19  -signal VSS                  -type vss   -location {centre {x 1990.000 y 2895.000}} -bondpad {centre {x 1990.000 y 2936.707}}
376add_pad -edge top    -inst_name u_vdd_19  -signal VDD                  -type vdd   -location {centre {x 1920.000 y 2895.000}} -bondpad {centre {x 1920.000 y 2936.707}}
377add_pad -edge top    -inst_name u_vzz_20  -signal DVSS_0               -type vssio -location {centre {x 1815.000 y 2895.000}} -bondpad {centre {x 1815.000 y 2936.707}}
378add_pad -edge top    -inst_name u_v18_20  -signal DVDD_0               -type vddio -location {centre {x 1745.000 y 2895.000}} -bondpad {centre {x 1745.000 y 2936.707}}
379add_pad -edge top    -inst_name u_vss_20  -signal VSS                  -type vss   -location {centre {x 1675.000 y 2895.000}} -bondpad {centre {x 1675.000 y 2936.707}}
380add_pad -edge top    -inst_name u_vdd_20  -signal VDD                  -type vdd   -location {centre {x 1605.000 y 2895.000}} -bondpad {centre {x 1605.000 y 2936.707}}
381add_pad -edge top    -inst_name u_vss_pll -signal VSS                  -type vss   -location {centre {x 1535.000 y 2895.000}} -bondpad {centre {x 1535.000 y 2936.707}}
382add_pad -edge top    -inst_name u_vdd_pll -signal VDD                  -type vdd   -location {centre {x 1465.000 y 2895.000}} -bondpad {centre {x 1465.000 y 2936.707}}
383add_pad -edge top    -inst_name u_vzz_21  -signal DVSS_1               -type vssio -location {centre {x 1360.000 y 2895.000}} -bondpad {centre {x 1360.000 y 2936.707}}
384add_pad -edge top    -inst_name u_v18_21  -signal DVDD_1               -type vddio -location {centre {x 1290.000 y 2895.000}} -bondpad {centre {x 1290.000 y 2936.707}}
385add_pad -edge top    -inst_name u_vss_21  -signal VSS                  -type vss   -location {centre {x 1220.000 y 2895.000}} -bondpad {centre {x 1220.000 y 2936.707}}
386add_pad -edge top    -inst_name u_vdd_21  -signal VDD                  -type vdd   -location {centre {x 1150.000 y 2895.000}} -bondpad {centre {x 1150.000 y 2936.707}}
387add_pad -edge top    -inst_name u_vzz_22  -signal DVSS_0               -type vssio -location {centre {x 1080.000 y 2895.000}} -bondpad {centre {x 1080.000 y 2936.707}}
388add_pad -edge top    -inst_name u_v18_22  -signal DVDD_0               -type vddio -location {centre {x  975.000 y 2895.000}} -bondpad {centre {x  975.000 y 2936.707}}
389add_pad -edge top    -inst_name u_vss_22  -signal VSS                  -type vss   -location {centre {x  905.000 y 2895.000}} -bondpad {centre {x  905.000 y 2936.707}}
390add_pad -edge top    -inst_name u_vdd_22  -signal VDD                  -type vdd   -location {centre {x  835.000 y 2895.000}} -bondpad {centre {x  835.000 y 2936.707}}
391add_pad -edge top    -inst_name u_vzz_23  -signal DVSS_0               -type vssio -location {centre {x  765.000 y 2895.000}} -bondpad {centre {x  765.000 y 2936.707}}
392add_pad -edge top    -inst_name u_v18_23  -signal DVDD_0               -type vddio -location {centre {x  695.000 y 2895.000}} -bondpad {centre {x  695.000 y 2936.707}}
393add_pad -edge top    -inst_name u_vss_23  -signal VSS                  -type vss   -location {centre {x  625.000 y 2895.000}} -bondpad {centre {x  625.000 y 2936.707}}
394add_pad -edge top    -inst_name u_vdd_23  -signal VDD                  -type vdd   -location {centre {x  555.000 y 2895.000}} -bondpad {centre {x  555.000 y 2936.707}}
395add_pad -edge top    -inst_name u_vzz_24  -signal DVSS_0               -type vssio -location {centre {x  450.000 y 2895.000}} -bondpad {centre {x  450.000 y 2936.707}}
396add_pad -edge top    -inst_name u_v18_24  -signal DVDD_0               -type vddio -location {centre {x  380.000 y 2895.000}} -bondpad {centre {x  380.000 y 2936.707}}
397add_pad -edge top    -inst_name u_vss_24  -signal VSS                  -type vss   -location {centre {x  310.000 y 2895.000}} -bondpad {centre {x  310.000 y 2936.707}}
398add_pad -edge top    -inst_name u_vdd_24  -signal VDD                  -type vdd   -location {centre {x  240.000 y 2895.000}} -bondpad {centre {x  240.000 y 2936.707}}
399add_pad -edge top    -inst_name u_cbrk10               -type cbk   -location {centre {x 2777.500 y 2895.000}}
400add_pad -edge top    -inst_name u_cbrk11               -type cbk   -location {centre {x 2182.500 y 2895.000}}
401add_pad -edge top    -inst_name u_brk0                 -type fbk   -location {centre {x 1587.500 y 2895.000}}
402add_pad -edge top    -inst_name u_brk1                 -type fbk   -location {centre {x 1272.500 y 2895.000}}
403add_pad -edge top    -inst_name u_cbrk12               -type cbk   -location {centre {x  747.500 y 2895.000}}
404add_pad -edge top    -inst_name u_cbrk13               -type cbk   -location {centre {x  222.500 y 2895.000}}
405add_pad -edge top    -inst_name u_pwrdet8              -type pdt   -location {centre {x  485.000 y 2895.000}}
406add_pad -edge top    -inst_name u_pwrdet9              -type pdt   -location {centre {x 1010.000 y 2895.000}}
407add_pad -edge top    -inst_name u_pwrdet10             -type pdt   -location {centre {x 1430.000 y 2895.000}}
408add_pad -edge top    -inst_name u_pwrdet11             -type pdt   -location {centre {x 1885.000 y 2895.000}}
409add_pad -edge top    -inst_name u_pwrdet12             -type pdt   -location {centre {x 2480.000 y 2895.000}}
410add_pad -edge left   -signal p_co2_8_o            -type sig   -location {centre {x  105.000 y 2755.000}} -bondpad {centre {x  63.293 y 2755.000}}
411add_pad -edge left   -signal p_co2_7_o            -type sig   -location {centre {x  105.000 y 2681.000}} -bondpad {centre {x  63.293 y 2681.000}}
412add_pad -edge left   -signal p_co2_6_o            -type sig   -location {centre {x  105.000 y 2607.000}} -bondpad {centre {x  63.293 y 2607.000}}
413add_pad -edge left   -signal p_co2_5_o            -type sig   -location {centre {x  105.000 y 2533.000}} -bondpad {centre {x  63.293 y 2533.000}}
414add_pad -edge left   -signal p_co2_v_o            -type sig   -location {centre {x  105.000 y 2422.000}} -bondpad {centre {x  63.293 y 2422.000}}
415add_pad -edge left   -signal p_co2_tkn_i          -type sig   -location {centre {x  105.000 y 2348.000}} -bondpad {centre {x  63.293 y 2348.000}}
416add_pad -edge left   -signal p_co2_clk_o          -type sig   -location {centre {x  105.000 y 2274.000}} -bondpad {centre {x  63.293 y 2274.000}}
417add_pad -edge left   -signal p_co2_4_o            -type sig   -location {centre {x  105.000 y 2200.000}} -bondpad {centre {x  63.293 y 2200.000}}
418add_pad -edge left   -signal p_co2_3_o            -type sig   -location {centre {x  105.000 y 2128.000}} -bondpad {centre {x  63.293 y 2128.000}}
419add_pad -edge left   -signal p_co2_2_o            -type sig   -location {centre {x  105.000 y 2054.000}} -bondpad {centre {x  63.293 y 2054.000}}
420add_pad -edge left   -signal p_co2_1_o            -type sig   -location {centre {x  105.000 y 1980.000}} -bondpad {centre {x  63.293 y 1980.000}}
421add_pad -edge left   -signal p_co2_0_o            -type sig   -location {centre {x  105.000 y 1906.000}} -bondpad {centre {x  63.293 y 1906.000}}
422add_pad -edge left   -signal p_bsg_tag_clk_o      -type sig   -location {centre {x  105.000 y 1795.000}} -bondpad {centre {x  63.293 y 1795.000}}
423add_pad -edge left   -signal p_bsg_tag_data_o     -type sig   -location {centre {x  105.000 y 1721.000}} -bondpad {centre {x  63.293 y 1721.000}}
424add_pad -edge left   -signal p_ddr_dq_7_io        -type sig   -location {centre {x  105.000 y 1647.000}} -bondpad {centre {x  63.293 y 1647.000}}
425add_pad -edge left   -signal p_ddr_dq_6_io        -type sig   -location {centre {x  105.000 y 1573.000}} -bondpad {centre {x  63.293 y 1573.000}}
426add_pad -edge left   -signal p_ddr_dq_5_io        -type sig   -location {centre {x  105.000 y 1501.000}} -bondpad {centre {x  63.293 y 1501.000}}
427add_pad -edge left   -signal p_ddr_dq_4_io        -type sig   -location {centre {x  105.000 y 1427.000}} -bondpad {centre {x  63.293 y 1427.000}}
428add_pad -edge left   -signal p_ddr_dq_3_io        -type sig   -location {centre {x  105.000 y 1353.000}} -bondpad {centre {x  63.293 y 1353.000}}
429add_pad -edge left   -signal p_ddr_dq_2_io        -type sig   -location {centre {x  105.000 y 1279.000}} -bondpad {centre {x  63.293 y 1279.000}}
430add_pad -edge left   -signal p_ddr_dq_1_io        -type sig   -location {centre {x  105.000 y 1168.000}} -bondpad {centre {x  63.293 y 1168.000}}
431add_pad -edge left   -signal p_ddr_dq_0_io        -type sig   -location {centre {x  105.000 y 1094.000}} -bondpad {centre {x  63.293 y 1094.000}}
432add_pad -edge left   -signal p_ddr_dm_0_o         -type sig   -location {centre {x  105.000 y 1020.000}} -bondpad {centre {x  63.293 y 1020.000}}
433add_pad -edge left   -signal p_ddr_dqs_n_0_io     -type sig   -location {centre {x  105.000 y  946.000}} -bondpad {centre {x  63.293 y  946.000}}
434add_pad -edge left   -signal p_ddr_dqs_p_0_io     -type sig   -location {centre {x  105.000 y  874.000}} -bondpad {centre {x  63.293 y  874.000}}
435add_pad -edge left   -signal p_ddr_dq_15_io       -type sig   -location {centre {x  105.000 y  800.000}} -bondpad {centre {x  63.293 y  800.000}}
436add_pad -edge left   -signal p_ddr_dq_14_io       -type sig   -location {centre {x  105.000 y  726.000}} -bondpad {centre {x  63.293 y  726.000}}
437add_pad -edge left   -signal p_ddr_dq_13_io       -type sig   -location {centre {x  105.000 y  652.000}} -bondpad {centre {x  63.293 y  652.000}}
438add_pad -edge left   -signal p_ddr_dq_12_io       -type sig   -location {centre {x  105.000 y  578.000}} -bondpad {centre {x  63.293 y  578.000}}
439add_pad -edge left   -signal p_ddr_dq_11_io       -type sig   -location {centre {x  105.000 y  467.000}} -bondpad {centre {x  63.293 y  467.000}}
440add_pad -edge left   -signal p_ddr_dq_10_io       -type sig   -location {centre {x  105.000 y  393.000}} -bondpad {centre {x  63.293 y  393.000}}
441add_pad -edge left   -signal p_ddr_dq_9_io        -type sig   -location {centre {x  105.000 y  319.000}} -bondpad {centre {x  63.293 y  319.000}}
442add_pad -edge left   -signal p_ddr_dq_8_io        -type sig   -location {centre {x  105.000 y  245.000}} -bondpad {centre {x  63.293 y  245.000}}
443puts "Detect duplicate signal name (not power/ground) specified"
444catch {add_pad -edge left   -signal p_ddr_dq_8_io        -type sig   -location {centre {x  105.000 y  245.000}} -bondpad {centre {x  63.293 y  245.000}}}
445add_pad -edge left   -inst_name u_vzz_25  -signal DVSS_0               -type vssio -location {centre {x  105.000 y 2718.000}} -bondpad {centre {x 149.893 y 2718.000}}
446add_pad -edge left   -inst_name u_v18_25  -signal DVDD_0               -type vddio -location {centre {x  105.000 y 2644.000}} -bondpad {centre {x 149.893 y 2644.000}}
447add_pad -edge left   -inst_name u_vss_25  -signal VSS                  -type vss   -location {centre {x  105.000 y 2570.000}} -bondpad {centre {x 149.893 y 2570.000}}
448add_pad -edge left   -inst_name u_vdd_25  -signal VDD                  -type vdd   -location {centre {x  105.000 y 2496.000}} -bondpad {centre {x 149.893 y 2496.000}}
449add_pad -edge left   -inst_name u_vzz_26  -signal DVSS_0               -type vssio -location {centre {x  105.000 y 2385.000}} -bondpad {centre {x 149.893 y 2385.000}}
450add_pad -edge left   -inst_name u_v18_26  -signal DVDD_0               -type vddio -location {centre {x  105.000 y 2311.000}} -bondpad {centre {x 149.893 y 2311.000}}
451add_pad -edge left   -inst_name u_vss_26  -signal VSS                  -type vss   -location {centre {x  105.000 y 2237.000}} -bondpad {centre {x 149.893 y 2237.000}}
452add_pad -edge left   -inst_name u_vdd_26  -signal VDD                  -type vdd   -location {centre {x  105.000 y 2163.000}} -bondpad {centre {x 149.893 y 2163.000}}
453add_pad -edge left   -inst_name u_vzz_27  -signal DVSS_0               -type vssio -location {centre {x  105.000 y 2091.000}} -bondpad {centre {x 149.893 y 2091.000}}
454add_pad -edge left   -inst_name u_v18_27  -signal DVDD_0               -type vddio -location {centre {x  105.000 y 2017.000}} -bondpad {centre {x 149.893 y 2017.000}}
455add_pad -edge left   -inst_name u_vss_27  -signal VSS                  -type vss   -location {centre {x  105.000 y 1943.000}} -bondpad {centre {x 149.893 y 1943.000}}
456add_pad -edge left   -inst_name u_vdd_27  -signal VDD                  -type vdd   -location {centre {x  105.000 y 1869.000}} -bondpad {centre {x 149.893 y 1869.000}}
457add_pad -edge left   -inst_name u_vzz_28  -signal DVSS_0               -type vssio -location {centre {x  105.000 y 1758.000}} -bondpad {centre {x 149.893 y 1758.000}}
458add_pad -edge left   -inst_name u_v18_28  -signal DVDD_0               -type vddio -location {centre {x  105.000 y 1684.000}} -bondpad {centre {x 149.893 y 1684.000}}
459add_pad -edge left   -inst_name u_vss_28  -signal VSS                  -type vss   -location {centre {x  105.000 y 1610.000}} -bondpad {centre {x 149.893 y 1610.000}}
460add_pad -edge left   -inst_name u_vdd_28  -signal VDD                  -type vdd   -location {centre {x  105.000 y 1536.000}} -bondpad {centre {x 149.893 y 1536.000}}
461add_pad -edge left   -inst_name u_vzz_29  -signal DVSS_0               -type vssio -location {centre {x  105.000 y 1464.000}} -bondpad {centre {x 149.893 y 1464.000}}
462add_pad -edge left   -inst_name u_v18_29  -signal DVDD_0               -type vddio -location {centre {x  105.000 y 1390.000}} -bondpad {centre {x 149.893 y 1390.000}}
463add_pad -edge left   -inst_name u_vss_29  -signal VSS                  -type vssio -location {centre {x  105.000 y 1316.000}} -bondpad {centre {x 149.893 y 1316.000}}
464add_pad -edge left   -inst_name u_vdd_29  -signal VDD                  -type vddio -location {centre {x  105.000 y 1242.000}} -bondpad {centre {x 149.893 y 1242.000}}
465add_pad -edge left   -inst_name u_vzz_30  -signal DVSS_0               -type vss   -location {centre {x  105.000 y 1131.000}} -bondpad {centre {x 149.893 y 1131.000}}
466add_pad -edge left   -inst_name u_v18_30  -signal DVDD_0               -type vdd   -location {centre {x  105.000 y 1057.000}} -bondpad {centre {x 149.893 y 1057.000}}
467add_pad -edge left   -inst_name u_vss_30  -signal VSS                  -type vssio -location {centre {x  105.000 y  983.000}} -bondpad {centre {x 149.893 y  983.000}}
468add_pad -edge left   -inst_name u_vdd_30  -signal VDD                  -type vddio -location {centre {x  105.000 y  909.000}} -bondpad {centre {x 149.893 y  909.000}}
469add_pad -edge left   -inst_name u_vzz_31  -signal DVSS_0               -type vss   -location {centre {x  105.000 y  837.000}} -bondpad {centre {x 149.893 y  837.000}}
470add_pad -edge left   -inst_name u_v18_31  -signal DVDD_0               -type vdd   -location {centre {x  105.000 y  763.000}} -bondpad {centre {x 149.893 y  763.000}}
471add_pad -edge left   -inst_name u_vss_31  -signal VSS                  -type vssio -location {centre {x  105.000 y  689.000}} -bondpad {centre {x 149.893 y  689.000}}
472add_pad -edge left   -inst_name u_vdd_31  -signal VDD                  -type vddio -location {centre {x  105.000 y  615.000}} -bondpad {centre {x 149.893 y  615.000}}
473add_pad -edge left   -inst_name u_vzz_32  -signal DVSS_0               -type vss   -location {centre {x  105.000 y  504.000}} -bondpad {centre {x 149.893 y  504.000}}
474add_pad -edge left   -inst_name u_v18_32  -signal DVDD_0               -type vdd   -location {centre {x  105.000 y  430.000}} -bondpad {centre {x 149.893 y  430.000}}
475add_pad -edge left   -inst_name u_vss_32  -signal VSS                  -type vssio -location {centre {x  105.000 y  356.000}} -bondpad {centre {x 149.893 y  356.000}}
476add_pad -edge left   -inst_name u_vdd_32  -signal VDD                  -type vddio -location {centre {x  105.000 y  282.000}} -bondpad {centre {x 149.893 y  282.000}}
477add_pad -edge left   -inst_name u_cbrk14               -type cbk   -location {centre {x  105.000 y 2772.500}}
478puts "Detect duplicate inst_name specified"
479catch {add_pad -edge left   -inst_name u_cbrk14               -type cbk   -location {centre {x  105.000 y 2772.500}}}
480add_pad -edge left   -inst_name u_cbrk15               -type cbk   -location {centre {x  105.000 y 2145.500}}
481add_pad -edge left   -inst_name u_cbrk16               -type cbk   -location {centre {x  105.000 y 1518.500}}
482add_pad -edge left   -inst_name u_cbrk17               -type cbk   -location {centre {x  105.000 y  891.500}}
483add_pad -edge left   -inst_name u_cbrk18               -type cbk   -location {centre {x  105.000 y  227.500}}
484add_pad -edge left   -inst_name u_pwrdet13             -type pdt   -location {centre {x  105.000 y 2459.000}}
485add_pad -edge left   -inst_name u_pwrdet14             -type pdt   -location {centre {x  105.000 y 1832.000}}
486add_pad -edge left   -inst_name u_pwrdet15             -type pdt   -location {centre {x  105.000 y 1205.000}}
487add_pad -edge left   -inst_name u_pwrdet16             -type pdt   -location {centre {x  105.000 y  541.000}}
488
489initialize_floorplan \
490  -die_area  {0 0 3000.000 3000.000} \
491  -core_area {180.012 180.096 2819.964 2819.712} \
492  -site      FreePDK45_38x28_10R_NP_162NW_34O
493make_tracks
494
495if {[catch {initialize_padring} msg]} {
496  puts $errorInfo
497  puts $msg
498  return
499}
500
501set def_file [make_result_file "tcl_interface.def"]
502
503write_def $def_file
504diff_files $def_file "tcl_interface.defok"
505
506