blob: 9bf5d393e662989be7435d055270fceaaf8cffa7 [file] [log] [blame]
Staf Verhaegenca4be482022-03-20 16:50:53 +01001# SPDX-License-Identifier: LGPL-2.1-or-later
2from pdkmaster.technology import geometry as _geo
3
4
5__all__ = ["boundary", "toppins"]
6
7
8# The metal3 pins for the IOs
9boundary = _geo.Rect(left=0.0, bottom=0.0, right=2920.0, top=3520.0)
10toppins = {
11 "io_in_3v3[0]": _geo.Rect(left=2917.60, bottom=7.72, right=2924.00, top=8.28),
12 "io_in[0]": _geo.Rect(left=2917.60, bottom=13.63, right=2924.00, top=14.19),
13 "io_out[0]": _geo.Rect(left=2917.60, bottom=19.54, right=2924.00, top=20.10),
14 "io_oeb[0]": _geo.Rect(left=2917.60, bottom=25.45, right=2924.00, top=26.01),
15 "io_in_3v3[1]": _geo.Rect(left=2917.60, bottom=31.36, right=2924.00, top=31.92),
16 "io_in[1]": _geo.Rect(left=2917.60, bottom=37.27, right=2924.00, top=37.83),
17 "io_out[1]": _geo.Rect(left=2917.60, bottom=43.18, right=2924.00, top=43.74),
18 "io_oeb[1]": _geo.Rect(left=2917.60, bottom=49.09, right=2924.00, top=49.65),
19 "io_in_3v3[2]": _geo.Rect(left=2917.60, bottom=55.00, right=2924.00, top=55.56),
20 "io_in[2]": _geo.Rect(left=2917.60, bottom=60.91, right=2924.00, top=61.47),
21 "io_out[2]": _geo.Rect(left=2917.60, bottom=66.82, right=2924.00, top=67.38),
22 "io_oeb[2]": _geo.Rect(left=2917.60, bottom=72.73, right=2924.00, top=73.29),
23 "io_in_3v3[3]": _geo.Rect(left=2917.60, bottom=78.64, right=2924.00, top=79.20),
24 "io_in[3]": _geo.Rect(left=2917.60, bottom=84.55, right=2924.00, top=85.11),
25 "io_out[3]": _geo.Rect(left=2917.60, bottom=90.46, right=2924.00, top=91.02),
26 "io_oeb[3]": _geo.Rect(left=2917.60, bottom=96.37, right=2924.00, top=96.93),
27 "io_in_3v3[4]": _geo.Rect(left=2917.60, bottom=102.28, right=2924.00, top=102.84),
28 "io_in[4]": _geo.Rect(left=2917.60, bottom=108.19, right=2924.00, top=108.75),
29 "io_out[4]": _geo.Rect(left=2917.60, bottom=114.10, right=2924.00, top=114.66),
30 "io_oeb[4]": _geo.Rect(left=2917.60, bottom=120.01, right=2924.00, top=120.57),
31 "io_in_3v3[5]": _geo.Rect(left=2917.60, bottom=234.57, right=2924.00, top=235.13),
32 "io_in[5]": _geo.Rect(left=2917.60, bottom=240.48, right=2924.00, top=241.04),
33 "io_out[5]": _geo.Rect(left=2917.60, bottom=246.39, right=2924.00, top=246.95),
34 "io_oeb[5]": _geo.Rect(left=2917.60, bottom=252.30, right=2924.00, top=252.86),
35 "io_in_3v3[6]": _geo.Rect(left=2917.60, bottom=457.86, right=2924.00, top=458.42),
36 "io_in[6]": _geo.Rect(left=2917.60, bottom=463.77, right=2924.00, top=464.33),
37 "io_out[6]": _geo.Rect(left=2917.60, bottom=469.68, right=2924.00, top=470.24),
38 "io_oeb[6]": _geo.Rect(left=2917.60, bottom=475.59, right=2924.00, top=476.15),
39 "gpio_analog[0]": _geo.Rect(left=2917.60, bottom=1346.15, right=2924.00, top=1346.71),
40 "gpio_noesd[0]": _geo.Rect(left=2917.60, bottom=1352.06, right=2924.00, top=1352.62),
41 "io_in_3v3[7]": _geo.Rect(left=2917.60, bottom=1357.97, right=2924.00, top=1358.53),
42 "io_in[7]": _geo.Rect(left=2917.60, bottom=1363.88, right=2924.00, top=1364.44),
43 "io_out[7]": _geo.Rect(left=2917.60, bottom=1369.79, right=2924.00, top=1370.35),
44 "io_oeb[7]": _geo.Rect(left=2917.60, bottom=1375.70, right=2924.00, top=1376.26),
45 "gpio_analog[1]": _geo.Rect(left=2917.60, bottom=1568.26, right=2924.00, top=1568.82),
46 "gpio_noesd[1]": _geo.Rect(left=2917.60, bottom=1574.17, right=2924.00, top=1574.73),
47 "io_in_3v3[8]": _geo.Rect(left=2917.60, bottom=1580.08, right=2924.00, top=1580.64),
48 "io_in[8]": _geo.Rect(left=2917.60, bottom=1585.99, right=2924.00, top=1586.55),
49 "io_out[8]": _geo.Rect(left=2917.60, bottom=1591.90, right=2924.00, top=1592.46),
50 "io_oeb[8]": _geo.Rect(left=2917.60, bottom=1597.81, right=2924.00, top=1598.37),
51 "gpio_analog[2]": _geo.Rect(left=2917.60, bottom=1794.37, right=2924.00, top=1794.93),
52 "gpio_noesd[2]": _geo.Rect(left=2917.60, bottom=1800.28, right=2924.00, top=1800.84),
53 "io_in_3v3[9]": _geo.Rect(left=2917.60, bottom=1806.19, right=2924.00, top=1806.75),
54 "io_in[9]": _geo.Rect(left=2917.60, bottom=1812.10, right=2924.00, top=1812.66),
55 "io_out[9]": _geo.Rect(left=2917.60, bottom=1818.01, right=2924.00, top=1818.57),
56 "io_oeb[9]": _geo.Rect(left=2917.60, bottom=1823.92, right=2924.00, top=1824.48),
57 "gpio_analog[3]": _geo.Rect(left=2917.60, bottom=2026.48, right=2924.00, top=2027.04),
58 "gpio_noesd[3]": _geo.Rect(left=2917.60, bottom=2032.39, right=2924.00, top=2032.95),
59 "io_in_3v3[10]": _geo.Rect(left=2917.60, bottom=2038.30, right=2924.00, top=2039.86),
60 "io_in[10]": _geo.Rect(left=2917.60, bottom=2044.21, right=2924.00, top=2044.77),
61 "io_out[10]": _geo.Rect(left=2917.60, bottom=2050.12, right=2924.00, top=2050.68),
62 "io_oeb[10]": _geo.Rect(left=2917.60, bottom=2056.03, right=2924.00, top=2056.59),
63 "gpio_analog[4]": _geo.Rect(left=2917.60, bottom=2248.59, right=2924.00, top=2249.15),
64 "gpio_noesd[4]": _geo.Rect(left=2917.60, bottom=2254.50, right=2924.00, top=2255.06),
65 "io_in_3v3[11]": _geo.Rect(left=2917.60, bottom=2260.41, right=2924.00, top=2260.97),
66 "io_in[11]": _geo.Rect(left=2917.60, bottom=2266.32, right=2924.00, top=2266.88),
67 "io_out[11]": _geo.Rect(left=2917.60, bottom=2272.23, right=2924.00, top=2272.79),
68 "io_oeb[11]": _geo.Rect(left=2917.60, bottom=2278.14, right=2924.00, top=2278.70),
69 "gpio_analog[5]": _geo.Rect(left=2917.60, bottom=2470.70, right=2924.00, top=2471.26),
70 "gpio_noesd[5]": _geo.Rect(left=2917.60, bottom=2476.61, right=2924.00, top=2477.17),
71 "io_in_3v3[12]": _geo.Rect(left=2917.60, bottom=2482.52, right=2924.00, top=2483.08),
72 "io_in[12]": _geo.Rect(left=2917.60, bottom=2488.43, right=2924.00, top=2488.99),
73 "io_out[12]": _geo.Rect(left=2917.60, bottom=2494.34, right=2924.00, top=2494.90),
74 "io_oeb[12]": _geo.Rect(left=2917.60, bottom=2500.25, right=2924.00, top=2500.81),
75 "gpio_analog[6]": _geo.Rect(left=2917.60, bottom=2917.81, right=2924.00, top=2918.37),
76 "gpio_noesd[6]": _geo.Rect(left=2917.60, bottom=2923.72, right=2924.00, top=2924.28),
77 "io_in_3v3[13]": _geo.Rect(left=2917.60, bottom=2929.63, right=2924.00, top=2930.19),
78 "io_in[13]": _geo.Rect(left=2917.60, bottom=2935.54, right=2924.00, top=2936.10),
79 "io_out[13]": _geo.Rect(left=2917.60, bottom=2941.45, right=2924.00, top=2942.01),
80 "io_oeb[13]": _geo.Rect(left=2917.60, bottom=2947.36, right=2924.00, top=2947.92),
81 "io_analog[0]": _geo.Rect(left=2911.50, bottom=3389.92, right=2924.00, top=3414.92),
82 "io_analog[1]": _geo.Rect(left=2832.97, bottom=3511.50, right=2857.97, top=3524.00),
83 "io_analog[2]": _geo.Rect(left=2326.97, bottom=3511.50, right=2351.97, top=3524.00),
84 "io_analog[3]": _geo.Rect(left=2066.97, bottom=3511.50, right=2091.97, top=3524.00),
85 "io_analog[4]": _geo.Rect(left=1594.97, bottom=3511.50, right=1619.97, top=3524.00),
Staf Verhaegenc0e0fff2022-03-23 10:43:13 +010086 "io_clamp_low[0]": _geo.Rect(left=1621.47, bottom=3511.50, right=1632.47, top=3524.00),
87 "io_clamp_high[0]": _geo.Rect(left=1633.97, bottom=3511.50, right=1644.97, top=3524.00),
Staf Verhaegenca4be482022-03-20 16:50:53 +010088 "io_analog[5]": _geo.Rect(left=1086.47, bottom=3511.50, right=1111.47, top=3524.00),
Staf Verhaegenc0e0fff2022-03-23 10:43:13 +010089 "io_clamp_low[1]": _geo.Rect(left=1112.97, bottom=3511.50, right=1123.97, top=3524.00),
90 "io_clamp_high[1]": _geo.Rect(left=1125.47, bottom=3511.50, right=1136.47, top=3524.00),
Staf Verhaegenca4be482022-03-20 16:50:53 +010091 "io_analog[6]": _geo.Rect(left=827.97, bottom=3511.50, right=852.97, top=3524.00),
Staf Verhaegenc0e0fff2022-03-23 10:43:13 +010092 "io_clamp_low[2]": _geo.Rect(left=854.47, bottom=3511.50, right=865.47, top=3524.00),
93 "io_clamp_high[2]": _geo.Rect(left=866.97, bottom=3511.50, right=877.97, top=3524.00),
Staf Verhaegenca4be482022-03-20 16:50:53 +010094 "io_analog[7]": _geo.Rect(left=600.97, bottom=3511.50, right=625.97, top=3524.00),
95 "io_analog[8]": _geo.Rect(left=340.97, bottom=3511.50, right=365.97, top=3524.00),
96 "io_analog[9]": _geo.Rect(left=80.97, bottom=3511.50, right=105.97, top=3524.00),
97 "io_analog[10]": _geo.Rect(left=-4.00, bottom=3401.21, right=8.50, top=3426.21),
98 "io_oeb[14]": _geo.Rect(left=-4.00, bottom=2528.10, right=2.40, top=2528.66),
99 "io_out[14]": _geo.Rect(left=-4.00, bottom=2534.01, right=2.40, top=2534.57),
100 "io_in[14]": _geo.Rect(left=-4.00, bottom=2539.92, right=2.40, top=2540.48),
101 "io_in_3v3[14]": _geo.Rect(left=-4.00, bottom=2545.83, right=2.40, top=2546.39),
102 "gpio_noesd[7]": _geo.Rect(left=-4.00, bottom=2551.74, right=2.40, top=2552.30),
103 "gpio_analog[7]": _geo.Rect(left=-4.00, bottom=2557.65, right=2.40, top=2558.21),
104 "io_oeb[15]": _geo.Rect(left=-4.00, bottom=2311.99, right=2.40, top=2312.55),
105 "io_out[15]": _geo.Rect(left=-4.00, bottom=2317.90, right=2.40, top=2318.46),
106 "io_in[15]": _geo.Rect(left=-4.00, bottom=2323.81, right=2.40, top=2324.37),
107 "io_in_3v3[15]": _geo.Rect(left=-4.00, bottom=2329.72, right=2.40, top=2330.28),
108 "gpio_noesd[8]": _geo.Rect(left=-4.00, bottom=2335.63, right=2.40, top=2336.19),
109 "gpio_analog[8]": _geo.Rect(left=-4.00, bottom=2341.54, right=2.40, top=2342.10),
110 "io_oeb[16]": _geo.Rect(left=-4.00, bottom=2095.88, right=2.40, top=2096.44),
111 "io_out[16]": _geo.Rect(left=-4.00, bottom=2101.79, right=2.40, top=2102.35),
112 "io_in[16]": _geo.Rect(left=-4.00, bottom=2107.70, right=2.40, top=2108.26),
113 "io_in_3v3[16]": _geo.Rect(left=-4.00, bottom=2113.61, right=2.40, top=2114.17),
114 "gpio_noesd[9]": _geo.Rect(left=-4.00, bottom=2119.52, right=2.40, top=2120.08),
115 "gpio_analog[9]": _geo.Rect(left=-4.00, bottom=2125.43, right=2.40, top=2125.99),
116 "io_oeb[17]": _geo.Rect(left=-4.00, bottom=1879.77, right=2.40, top=1880.33),
117 "io_out[17]": _geo.Rect(left=-4.00, bottom=1885.68, right=2.40, top=1886.24),
118 "io_in[17]": _geo.Rect(left=-4.00, bottom=1891.59, right=2.40, top=1892.15),
119 "io_in_3v3[17]": _geo.Rect(left=-4.00, bottom=1897.50, right=2.40, top=1898.06),
120 "gpio_noesd[10]": _geo.Rect(left=-4.00, bottom=1903.41, right=2.40, top=1903.97),
121 "gpio_analog[10]": _geo.Rect(left=-4.00, bottom=1909.32, right=2.40, top=1909.88),
122 "io_oeb[18]": _geo.Rect(left=-4.00, bottom=1663.66, right=2.40, top=1664.22),
123 "io_out[18]": _geo.Rect(left=-4.00, bottom=1669.57, right=2.40, top=1670.13),
124 "io_in[18]": _geo.Rect(left=-4.00, bottom=1675.48, right=2.40, top=1676.04),
125 "io_in_3v3[18]": _geo.Rect(left=-4.00, bottom=1681.39, right=2.40, top=1681.95),
126 "gpio_noesd[11]": _geo.Rect(left=-4.00, bottom=1687.30, right=2.40, top=1687.86),
127 "gpio_analog[11]": _geo.Rect(left=-4.00, bottom=1693.21, right=2.40, top=1693.77),
128 "io_oeb[19]": _geo.Rect(left=-4.00, bottom=1447.55, right=2.40, top=1448.11),
129 "io_out[19]": _geo.Rect(left=-4.00, bottom=1453.46, right=2.40, top=1454.02),
130 "io_in[19]": _geo.Rect(left=-4.00, bottom=1459.37, right=2.40, top=1459.93),
131 "io_in_3v3[19]": _geo.Rect(left=-4.00, bottom=1465.28, right=2.40, top=1465.84),
132 "gpio_noesd[12]": _geo.Rect(left=-4.00, bottom=1471.19, right=2.40, top=1471.75),
133 "gpio_analog[12]": _geo.Rect(left=-4.00, bottom=1477.10, right=2.40, top=1477.66),
134 "io_oeb[20]": _geo.Rect(left=-4.00, bottom=1232.44, right=2.40, top=1233.00),
135 "io_out[20]": _geo.Rect(left=-4.00, bottom=1238.35, right=2.40, top=1238.91),
136 "io_in[20]": _geo.Rect(left=-4.00, bottom=1244.26, right=2.40, top=1244.82),
137 "io_in_3v3[20]": _geo.Rect(left=-4.00, bottom=1250.17, right=2.40, top=1250.73),
138 "gpio_noesd[13]": _geo.Rect(left=-4.00, bottom=1256.08, right=2.40, top=1256.64),
139 "gpio_analog[13]": _geo.Rect(left=-4.00, bottom=1261.99, right=2.40, top=1262.55),
140 "io_oeb[21]": _geo.Rect(left=-4.00, bottom=594.33, right=2.40, top=594.89),
141 "io_out[21]": _geo.Rect(left=-4.00, bottom=600.24, right=2.40, top=600.80),
142 "io_in[21]": _geo.Rect(left=-4.00, bottom=606.15, right=2.40, top=606.71),
143 "io_in_3v3[21]": _geo.Rect(left=-4.00, bottom=612.06, right=2.40, top=612.62),
144 "gpio_noesd[14]": _geo.Rect(left=-4.00, bottom=617.97, right=2.40, top=618.53),
145 "gpio_analog[14]": _geo.Rect(left=-4.00, bottom=623.88, right=2.40, top=624.44),
146 "io_oeb[22]": _geo.Rect(left=-4.00, bottom=378.22, right=2.40, top=378.78),
147 "io_out[22]": _geo.Rect(left=-4.00, bottom=384.13, right=2.40, top=384.69),
148 "io_in[22]": _geo.Rect(left=-4.00, bottom=390.04, right=2.40, top=390.60),
149 "io_in_3v3[22]": _geo.Rect(left=-4.00, bottom=395.95, right=2.40, top=396.51),
150 "gpio_noesd[15]": _geo.Rect(left=-4.00, bottom=401.86, right=2.40, top=402.42),
151 "gpio_analog[15]": _geo.Rect(left=-4.00, bottom=407.77, right=2.40, top=408.33),
152 "io_oeb[23]": _geo.Rect(left=-4.00, bottom=162.11, right=2.40, top=162.67),
153 "io_out[23]": _geo.Rect(left=-4.00, bottom=168.02, right=2.40, top=168.58),
154 "io_in[23]": _geo.Rect(left=-4.00, bottom=173.93, right=2.40, top=174.49),
155 "io_in_3v3[23]": _geo.Rect(left=-4.00, bottom=179.84, right=2.40, top=180.40),
156 "gpio_noesd[16]": _geo.Rect(left=-4.00, bottom=185.75, right=2.40, top=186.31),
157 "gpio_analog[16]": _geo.Rect(left=-4.00, bottom=191.66, right=2.40, top=192.22),
158 "io_oeb[24]": _geo.Rect(left=-4.00, bottom=55.00, right=2.40, top=55.56),
159 "io_out[24]": _geo.Rect(left=-4.00, bottom=60.91, right=2.40, top=61.47),
160 "io_in[24]": _geo.Rect(left=-4.00, bottom=66.82, right=2.40, top=67.38),
161 "io_in_3v3[24]": _geo.Rect(left=-4.00, bottom=72.73, right=2.40, top=73.29),
162 "gpio_noesd[17]": _geo.Rect(left=-4.00, bottom=78.64, right=2.40, top=79.20),
163 "gpio_analog[17]": _geo.Rect(left=-4.00, bottom=84.55, right=2.40, top=85.11),
164 "io_oeb[25]": _geo.Rect(left=-4.00, bottom=31.36, right=2.40, top=31.92),
165 "io_out[25]": _geo.Rect(left=-4.00, bottom=37.27, right=2.40, top=37.83),
166 "io_in[25]": _geo.Rect(left=-4.00, bottom=43.18, right=2.40, top=43.74),
167 "io_in_3v3[25]": _geo.Rect(left=-4.00, bottom=49.09, right=2.40, top=49.65),
168 "io_oeb[26]": _geo.Rect(left=-4.00, bottom=7.72, right=2.40, top=8.28),
169 "io_out[26]": _geo.Rect(left=-4.00, bottom=13.63, right=2.40, top=14.19),
170 "io_in[26]": _geo.Rect(left=-4.00, bottom=19.54, right=2.40, top=20.10),
171 "io_in_3v3[26]": _geo.Rect(left=-4.00, bottom=25.45, right=2.40, top=26.01),
Staf Verhaegencfb4bae2022-03-21 21:27:16 +0100172 # TODO: vss*, vdd*, ioclamp*, wb(s)_*, la_data*, user_clock2, user_irq
Staf Verhaegenfbf90192022-03-22 21:47:45 +0100173 "vccd1": _geo.Rect(left=2911.70, bottom=3148.92, right=2924.00, top=3172.92),
174 "vssd1": _geo.Rect(left=2911.70, bottom=957.15, right=2924.00, top=981.15),
Staf Verhaegenca4be482022-03-20 16:50:53 +0100175 # "vdda2": _geo.Rect(left=-4.00, bottom=1074.44, right=8.30, top=1098.44),
176 # "vdda2": _geo.Rect(left=-4.00, bottom=1024.44, right=8.30, top=1048.44),
177 # "vssd2": _geo.Rect(left=-4.00, bottom=864.44, right=8.30, top=888.44),
178 # "vssd2": _geo.Rect(left=-4.00, bottom=814.44, right=8.30, top=838.44),
179}