lambdapdk 0.2.0rc2__py3-none-any.whl → 0.2.0rc4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lambdapdk/__init__.py +188 -6
- lambdapdk/asap7/libs/fakeio7.py +248 -1
- lambdapdk/gf180/libs/gf180io.py +642 -1
- lambdapdk/ihp130/libs/sg13g2_io.py +397 -1
- lambdapdk/sky130/libs/sky130io.py +216 -1
- {lambdapdk-0.2.0rc2.dist-info → lambdapdk-0.2.0rc4.dist-info}/METADATA +1 -1
- {lambdapdk-0.2.0rc2.dist-info → lambdapdk-0.2.0rc4.dist-info}/RECORD +11 -11
- {lambdapdk-0.2.0rc2.dist-info → lambdapdk-0.2.0rc4.dist-info}/WHEEL +0 -0
- {lambdapdk-0.2.0rc2.dist-info → lambdapdk-0.2.0rc4.dist-info}/entry_points.txt +0 -0
- {lambdapdk-0.2.0rc2.dist-info → lambdapdk-0.2.0rc4.dist-info}/licenses/LICENSE +0 -0
- {lambdapdk-0.2.0rc2.dist-info → lambdapdk-0.2.0rc4.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from siliconcompiler import ASICProject
|
|
4
|
+
from lambdalib import LambalibTechLibrary
|
|
5
|
+
from lambdapdk import LambdaLibrary, _LambdaPath
|
|
4
6
|
from lambdapdk.ihp130 import IHP130PDK, _IHP130Path
|
|
5
7
|
|
|
6
8
|
|
|
@@ -68,3 +70,397 @@ class IHP130_IO_1p2(_IHP130_IOLibrary):
|
|
|
68
70
|
class IHP130_IO_1p5(_IHP130_IOLibrary):
|
|
69
71
|
def __init__(self):
|
|
70
72
|
super().__init__("1p5")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class IHP130Lambdalib_la_iovdd_1p2(LambalibTechLibrary, _LambdaPath):
|
|
76
|
+
def __init__(self):
|
|
77
|
+
super().__init__("la_iovdd", [IHP130_IO_1p2])
|
|
78
|
+
self.set_name("ihp130_1p2_la_iovdd")
|
|
79
|
+
|
|
80
|
+
# version
|
|
81
|
+
self.set_version("v1")
|
|
82
|
+
|
|
83
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
84
|
+
|
|
85
|
+
with self.active_dataroot("lambdapdk"):
|
|
86
|
+
with self.active_fileset("rtl"):
|
|
87
|
+
self.add_file(lib_path / "lambda" / "la_iovdd.v")
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class IHP130Lambdalib_la_iocorner_1p2(LambalibTechLibrary, _LambdaPath):
|
|
91
|
+
def __init__(self):
|
|
92
|
+
super().__init__("la_iocorner", [IHP130_IO_1p2])
|
|
93
|
+
self.set_name("ihp130_1p2_la_iocorner")
|
|
94
|
+
|
|
95
|
+
# version
|
|
96
|
+
self.set_version("v1")
|
|
97
|
+
|
|
98
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
99
|
+
|
|
100
|
+
with self.active_dataroot("lambdapdk"):
|
|
101
|
+
with self.active_fileset("rtl"):
|
|
102
|
+
self.add_file(lib_path / "lambda" / "la_iocorner.v")
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class IHP130Lambdalib_la_iotxdiff_1p2(LambalibTechLibrary, _LambdaPath):
|
|
106
|
+
def __init__(self):
|
|
107
|
+
super().__init__("la_iotxdiff", [IHP130_IO_1p2])
|
|
108
|
+
self.set_name("ihp130_1p2_la_iotxdiff")
|
|
109
|
+
|
|
110
|
+
# version
|
|
111
|
+
self.set_version("v1")
|
|
112
|
+
|
|
113
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
114
|
+
|
|
115
|
+
with self.active_dataroot("lambdapdk"):
|
|
116
|
+
with self.active_fileset("rtl"):
|
|
117
|
+
self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class IHP130Lambdalib_la_ioanalog_1p2(LambalibTechLibrary, _LambdaPath):
|
|
121
|
+
def __init__(self):
|
|
122
|
+
super().__init__("la_ioanalog", [IHP130_IO_1p2])
|
|
123
|
+
self.set_name("ihp130_1p2_la_ioanalog")
|
|
124
|
+
|
|
125
|
+
# version
|
|
126
|
+
self.set_version("v1")
|
|
127
|
+
|
|
128
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
129
|
+
|
|
130
|
+
with self.active_dataroot("lambdapdk"):
|
|
131
|
+
with self.active_fileset("rtl"):
|
|
132
|
+
self.add_file(lib_path / "lambda" / "la_ioanalog.v")
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class IHP130Lambdalib_la_ioinput_1p2(LambalibTechLibrary, _LambdaPath):
|
|
136
|
+
def __init__(self):
|
|
137
|
+
super().__init__("la_ioinput", [IHP130_IO_1p2])
|
|
138
|
+
self.set_name("ihp130_1p2_la_ioinput")
|
|
139
|
+
|
|
140
|
+
# version
|
|
141
|
+
self.set_version("v1")
|
|
142
|
+
|
|
143
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
144
|
+
|
|
145
|
+
with self.active_dataroot("lambdapdk"):
|
|
146
|
+
with self.active_fileset("rtl"):
|
|
147
|
+
self.add_file(lib_path / "lambda" / "la_ioinput.v")
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class IHP130Lambdalib_la_iovss_1p2(LambalibTechLibrary, _LambdaPath):
|
|
151
|
+
def __init__(self):
|
|
152
|
+
super().__init__("la_iovss", [IHP130_IO_1p2])
|
|
153
|
+
self.set_name("ihp130_1p2_la_iovss")
|
|
154
|
+
|
|
155
|
+
# version
|
|
156
|
+
self.set_version("v1")
|
|
157
|
+
|
|
158
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
159
|
+
|
|
160
|
+
with self.active_dataroot("lambdapdk"):
|
|
161
|
+
with self.active_fileset("rtl"):
|
|
162
|
+
self.add_file(lib_path / "lambda" / "la_iovss.v")
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class IHP130Lambdalib_la_iovddio_1p2(LambalibTechLibrary, _LambdaPath):
|
|
166
|
+
def __init__(self):
|
|
167
|
+
super().__init__("la_iovddio", [IHP130_IO_1p2])
|
|
168
|
+
self.set_name("ihp130_1p2_la_iovddio")
|
|
169
|
+
|
|
170
|
+
# version
|
|
171
|
+
self.set_version("v1")
|
|
172
|
+
|
|
173
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
174
|
+
|
|
175
|
+
with self.active_dataroot("lambdapdk"):
|
|
176
|
+
with self.active_fileset("rtl"):
|
|
177
|
+
self.add_file(lib_path / "lambda" / "la_iovddio.v")
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class IHP130Lambdalib_la_iovssio_1p2(LambalibTechLibrary, _LambdaPath):
|
|
181
|
+
def __init__(self):
|
|
182
|
+
super().__init__("la_iovssio", [IHP130_IO_1p2])
|
|
183
|
+
self.set_name("ihp130_1p2_la_iovssio")
|
|
184
|
+
|
|
185
|
+
# version
|
|
186
|
+
self.set_version("v1")
|
|
187
|
+
|
|
188
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
189
|
+
|
|
190
|
+
with self.active_dataroot("lambdapdk"):
|
|
191
|
+
with self.active_fileset("rtl"):
|
|
192
|
+
self.add_file(lib_path / "lambda" / "la_iovssio.v")
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class IHP130Lambdalib_la_iovdda_1p2(LambalibTechLibrary, _LambdaPath):
|
|
196
|
+
def __init__(self):
|
|
197
|
+
super().__init__("la_iovdda", [IHP130_IO_1p2])
|
|
198
|
+
self.set_name("ihp130_1p2_la_iovdda")
|
|
199
|
+
|
|
200
|
+
# version
|
|
201
|
+
self.set_version("v1")
|
|
202
|
+
|
|
203
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
204
|
+
|
|
205
|
+
with self.active_dataroot("lambdapdk"):
|
|
206
|
+
with self.active_fileset("rtl"):
|
|
207
|
+
self.add_file(lib_path / "lambda" / "la_iovdda.v")
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
class IHP130Lambdalib_la_iovssa_1p2(LambalibTechLibrary, _LambdaPath):
|
|
211
|
+
def __init__(self):
|
|
212
|
+
super().__init__("la_iovssa", [IHP130_IO_1p2])
|
|
213
|
+
self.set_name("ihp130_1p2_la_iovssa")
|
|
214
|
+
|
|
215
|
+
# version
|
|
216
|
+
self.set_version("v1")
|
|
217
|
+
|
|
218
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
219
|
+
|
|
220
|
+
with self.active_dataroot("lambdapdk"):
|
|
221
|
+
with self.active_fileset("rtl"):
|
|
222
|
+
self.add_file(lib_path / "lambda" / "la_iovssa.v")
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
class IHP130Lambdalib_la_iorxdiff_1p2(LambalibTechLibrary, _LambdaPath):
|
|
226
|
+
def __init__(self):
|
|
227
|
+
super().__init__("la_iorxdiff", [IHP130_IO_1p2])
|
|
228
|
+
self.set_name("ihp130_1p2_la_iorxdiff")
|
|
229
|
+
|
|
230
|
+
# version
|
|
231
|
+
self.set_version("v1")
|
|
232
|
+
|
|
233
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
234
|
+
|
|
235
|
+
with self.active_dataroot("lambdapdk"):
|
|
236
|
+
with self.active_fileset("rtl"):
|
|
237
|
+
self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
class IHP130Lambdalib_la_iobidir_1p2(LambalibTechLibrary, _LambdaPath):
|
|
241
|
+
def __init__(self):
|
|
242
|
+
super().__init__("la_iobidir", [IHP130_IO_1p2])
|
|
243
|
+
self.set_name("ihp130_1p2_la_iobidir")
|
|
244
|
+
|
|
245
|
+
# version
|
|
246
|
+
self.set_version("v1")
|
|
247
|
+
|
|
248
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
249
|
+
|
|
250
|
+
with self.active_dataroot("lambdapdk"):
|
|
251
|
+
with self.active_fileset("rtl"):
|
|
252
|
+
self.add_file(lib_path / "lambda" / "la_iobidir.v")
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
class IHP130LambdaLib_IO_1p2(LambalibTechLibrary):
|
|
256
|
+
@classmethod
|
|
257
|
+
def alias(cls, project: ASICProject):
|
|
258
|
+
IHP130Lambdalib_la_iovdd_1p2.alias(project)
|
|
259
|
+
IHP130Lambdalib_la_iocorner_1p2.alias(project)
|
|
260
|
+
IHP130Lambdalib_la_iotxdiff_1p2.alias(project)
|
|
261
|
+
IHP130Lambdalib_la_ioanalog_1p2.alias(project)
|
|
262
|
+
IHP130Lambdalib_la_ioinput_1p2.alias(project)
|
|
263
|
+
IHP130Lambdalib_la_iovss_1p2.alias(project)
|
|
264
|
+
IHP130Lambdalib_la_iovddio_1p2.alias(project)
|
|
265
|
+
IHP130Lambdalib_la_iovssio_1p2.alias(project)
|
|
266
|
+
IHP130Lambdalib_la_iovdda_1p2.alias(project)
|
|
267
|
+
IHP130Lambdalib_la_iovssa_1p2.alias(project)
|
|
268
|
+
IHP130Lambdalib_la_iorxdiff_1p2.alias(project)
|
|
269
|
+
IHP130Lambdalib_la_iobidir_1p2.alias(project)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
class IHP130Lambdalib_la_iovdd_1p5(LambalibTechLibrary, _LambdaPath):
|
|
273
|
+
def __init__(self):
|
|
274
|
+
super().__init__("la_iovdd", [IHP130_IO_1p5])
|
|
275
|
+
self.set_name("ihp130_1p5_la_iovdd")
|
|
276
|
+
|
|
277
|
+
# version
|
|
278
|
+
self.set_version("v1")
|
|
279
|
+
|
|
280
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
281
|
+
|
|
282
|
+
with self.active_dataroot("lambdapdk"):
|
|
283
|
+
with self.active_fileset("rtl"):
|
|
284
|
+
self.add_file(lib_path / "lambda" / "la_iovdd.v")
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
class IHP130Lambdalib_la_iocorner_1p5(LambalibTechLibrary, _LambdaPath):
|
|
288
|
+
def __init__(self):
|
|
289
|
+
super().__init__("la_iocorner", [IHP130_IO_1p5])
|
|
290
|
+
self.set_name("ihp130_1p5_la_iocorner")
|
|
291
|
+
|
|
292
|
+
# version
|
|
293
|
+
self.set_version("v1")
|
|
294
|
+
|
|
295
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
296
|
+
|
|
297
|
+
with self.active_dataroot("lambdapdk"):
|
|
298
|
+
with self.active_fileset("rtl"):
|
|
299
|
+
self.add_file(lib_path / "lambda" / "la_iocorner.v")
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
class IHP130Lambdalib_la_iotxdiff_1p5(LambalibTechLibrary, _LambdaPath):
|
|
303
|
+
def __init__(self):
|
|
304
|
+
super().__init__("la_iotxdiff", [IHP130_IO_1p5])
|
|
305
|
+
self.set_name("ihp130_1p5_la_iotxdiff")
|
|
306
|
+
|
|
307
|
+
# version
|
|
308
|
+
self.set_version("v1")
|
|
309
|
+
|
|
310
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
311
|
+
|
|
312
|
+
with self.active_dataroot("lambdapdk"):
|
|
313
|
+
with self.active_fileset("rtl"):
|
|
314
|
+
self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
class IHP130Lambdalib_la_ioanalog_1p5(LambalibTechLibrary, _LambdaPath):
|
|
318
|
+
def __init__(self):
|
|
319
|
+
super().__init__("la_ioanalog", [IHP130_IO_1p5])
|
|
320
|
+
self.set_name("ihp130_1p5_la_ioanalog")
|
|
321
|
+
|
|
322
|
+
# version
|
|
323
|
+
self.set_version("v1")
|
|
324
|
+
|
|
325
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
326
|
+
|
|
327
|
+
with self.active_dataroot("lambdapdk"):
|
|
328
|
+
with self.active_fileset("rtl"):
|
|
329
|
+
self.add_file(lib_path / "lambda" / "la_ioanalog.v")
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
class IHP130Lambdalib_la_ioinput_1p5(LambalibTechLibrary, _LambdaPath):
|
|
333
|
+
def __init__(self):
|
|
334
|
+
super().__init__("la_ioinput", [IHP130_IO_1p5])
|
|
335
|
+
self.set_name("ihp130_1p5_la_ioinput")
|
|
336
|
+
|
|
337
|
+
# version
|
|
338
|
+
self.set_version("v1")
|
|
339
|
+
|
|
340
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
341
|
+
|
|
342
|
+
with self.active_dataroot("lambdapdk"):
|
|
343
|
+
with self.active_fileset("rtl"):
|
|
344
|
+
self.add_file(lib_path / "lambda" / "la_ioinput.v")
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
class IHP130Lambdalib_la_iovss_1p5(LambalibTechLibrary, _LambdaPath):
|
|
348
|
+
def __init__(self):
|
|
349
|
+
super().__init__("la_iovss", [IHP130_IO_1p5])
|
|
350
|
+
self.set_name("ihp130_1p5_la_iovss")
|
|
351
|
+
|
|
352
|
+
# version
|
|
353
|
+
self.set_version("v1")
|
|
354
|
+
|
|
355
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
356
|
+
|
|
357
|
+
with self.active_dataroot("lambdapdk"):
|
|
358
|
+
with self.active_fileset("rtl"):
|
|
359
|
+
self.add_file(lib_path / "lambda" / "la_iovss.v")
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
class IHP130Lambdalib_la_iovddio_1p5(LambalibTechLibrary, _LambdaPath):
|
|
363
|
+
def __init__(self):
|
|
364
|
+
super().__init__("la_iovddio", [IHP130_IO_1p5])
|
|
365
|
+
self.set_name("ihp130_1p5_la_iovddio")
|
|
366
|
+
|
|
367
|
+
# version
|
|
368
|
+
self.set_version("v1")
|
|
369
|
+
|
|
370
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
371
|
+
|
|
372
|
+
with self.active_dataroot("lambdapdk"):
|
|
373
|
+
with self.active_fileset("rtl"):
|
|
374
|
+
self.add_file(lib_path / "lambda" / "la_iovddio.v")
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
class IHP130Lambdalib_la_iovssio_1p5(LambalibTechLibrary, _LambdaPath):
|
|
378
|
+
def __init__(self):
|
|
379
|
+
super().__init__("la_iovssio", [IHP130_IO_1p5])
|
|
380
|
+
self.set_name("ihp130_1p5_la_iovssio")
|
|
381
|
+
|
|
382
|
+
# version
|
|
383
|
+
self.set_version("v1")
|
|
384
|
+
|
|
385
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
386
|
+
|
|
387
|
+
with self.active_dataroot("lambdapdk"):
|
|
388
|
+
with self.active_fileset("rtl"):
|
|
389
|
+
self.add_file(lib_path / "lambda" / "la_iovssio.v")
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
class IHP130Lambdalib_la_iovdda_1p5(LambalibTechLibrary, _LambdaPath):
|
|
393
|
+
def __init__(self):
|
|
394
|
+
super().__init__("la_iovdda", [IHP130_IO_1p5])
|
|
395
|
+
self.set_name("ihp130_1p5_la_iovdda")
|
|
396
|
+
|
|
397
|
+
# version
|
|
398
|
+
self.set_version("v1")
|
|
399
|
+
|
|
400
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
401
|
+
|
|
402
|
+
with self.active_dataroot("lambdapdk"):
|
|
403
|
+
with self.active_fileset("rtl"):
|
|
404
|
+
self.add_file(lib_path / "lambda" / "la_iovdda.v")
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
class IHP130Lambdalib_la_iovssa_1p5(LambalibTechLibrary, _LambdaPath):
|
|
408
|
+
def __init__(self):
|
|
409
|
+
super().__init__("la_iovssa", [IHP130_IO_1p5])
|
|
410
|
+
self.set_name("ihp130_1p5_la_iovssa")
|
|
411
|
+
|
|
412
|
+
# version
|
|
413
|
+
self.set_version("v1")
|
|
414
|
+
|
|
415
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
416
|
+
|
|
417
|
+
with self.active_dataroot("lambdapdk"):
|
|
418
|
+
with self.active_fileset("rtl"):
|
|
419
|
+
self.add_file(lib_path / "lambda" / "la_iovssa.v")
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
class IHP130Lambdalib_la_iorxdiff_1p5(LambalibTechLibrary, _LambdaPath):
|
|
423
|
+
def __init__(self):
|
|
424
|
+
super().__init__("la_iorxdiff", [IHP130_IO_1p5])
|
|
425
|
+
self.set_name("ihp130_1p5_la_iorxdiff")
|
|
426
|
+
|
|
427
|
+
# version
|
|
428
|
+
self.set_version("v1")
|
|
429
|
+
|
|
430
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
431
|
+
|
|
432
|
+
with self.active_dataroot("lambdapdk"):
|
|
433
|
+
with self.active_fileset("rtl"):
|
|
434
|
+
self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
class IHP130Lambdalib_la_iobidir_1p5(LambalibTechLibrary, _LambdaPath):
|
|
438
|
+
def __init__(self):
|
|
439
|
+
super().__init__("la_iobidir", [IHP130_IO_1p5])
|
|
440
|
+
self.set_name("ihp130_1p5_la_iobidir")
|
|
441
|
+
|
|
442
|
+
# version
|
|
443
|
+
self.set_version("v1")
|
|
444
|
+
|
|
445
|
+
lib_path = Path("lambdapdk", "ihp130", "libs", "sg13g2_io")
|
|
446
|
+
|
|
447
|
+
with self.active_dataroot("lambdapdk"):
|
|
448
|
+
with self.active_fileset("rtl"):
|
|
449
|
+
self.add_file(lib_path / "lambda" / "la_iobidir.v")
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
class IHP130LambdaLib_IO_1p5(LambalibTechLibrary):
|
|
453
|
+
@classmethod
|
|
454
|
+
def alias(cls, project: ASICProject):
|
|
455
|
+
IHP130Lambdalib_la_iovdd_1p5.alias(project)
|
|
456
|
+
IHP130Lambdalib_la_iocorner_1p5.alias(project)
|
|
457
|
+
IHP130Lambdalib_la_iotxdiff_1p5.alias(project)
|
|
458
|
+
IHP130Lambdalib_la_ioanalog_1p5.alias(project)
|
|
459
|
+
IHP130Lambdalib_la_ioinput_1p5.alias(project)
|
|
460
|
+
IHP130Lambdalib_la_iovss_1p5.alias(project)
|
|
461
|
+
IHP130Lambdalib_la_iovddio_1p5.alias(project)
|
|
462
|
+
IHP130Lambdalib_la_iovssio_1p5.alias(project)
|
|
463
|
+
IHP130Lambdalib_la_iovdda_1p5.alias(project)
|
|
464
|
+
IHP130Lambdalib_la_iovssa_1p5.alias(project)
|
|
465
|
+
IHP130Lambdalib_la_iorxdiff_1p5.alias(project)
|
|
466
|
+
IHP130Lambdalib_la_iobidir_1p5.alias(project)
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from siliconcompiler import ASICProject
|
|
4
|
+
from lambdalib import LambalibTechLibrary
|
|
5
|
+
from lambdapdk import LambdaLibrary, _LambdaPath
|
|
4
6
|
from lambdapdk.sky130 import Sky130PDK
|
|
5
7
|
|
|
6
8
|
|
|
@@ -47,3 +49,216 @@ class Sky130_IOLibrary(LambdaLibrary):
|
|
|
47
49
|
self.add_file(path_base / "blackbox" / "sky130_ef_io.v")
|
|
48
50
|
self.add_file(path_base / "blackbox" / "sky130_fd_io.v")
|
|
49
51
|
self.add_yosys_blackbox_fileset("models.blackbox")
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class Sky130Lambdalib_la_ioanalog(LambalibTechLibrary, _LambdaPath):
|
|
55
|
+
def __init__(self):
|
|
56
|
+
super().__init__("la_ioanalog", [Sky130_IOLibrary])
|
|
57
|
+
self.set_name("sky130_la_ioanalog")
|
|
58
|
+
|
|
59
|
+
# version
|
|
60
|
+
self.set_version("v1")
|
|
61
|
+
|
|
62
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
63
|
+
|
|
64
|
+
with self.active_dataroot("lambdapdk"):
|
|
65
|
+
with self.active_fileset("rtl"):
|
|
66
|
+
self.add_file(lib_path / "lambda" / "la_ioanalog.v")
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class Sky130Lambdalib_la_iobidir(LambalibTechLibrary, _LambdaPath):
|
|
70
|
+
def __init__(self):
|
|
71
|
+
super().__init__("la_iobidir", [Sky130_IOLibrary])
|
|
72
|
+
self.set_name("sky130_la_iobidir")
|
|
73
|
+
|
|
74
|
+
# version
|
|
75
|
+
self.set_version("v1")
|
|
76
|
+
|
|
77
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
78
|
+
|
|
79
|
+
with self.active_dataroot("lambdapdk"):
|
|
80
|
+
with self.active_fileset("rtl"):
|
|
81
|
+
self.add_file(lib_path / "lambda" / "la_iobidir.v")
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class Sky130Lambdalib_la_ioclamp(LambalibTechLibrary, _LambdaPath):
|
|
85
|
+
def __init__(self):
|
|
86
|
+
super().__init__("la_ioclamp", [Sky130_IOLibrary])
|
|
87
|
+
self.set_name("sky130_la_ioclamp")
|
|
88
|
+
|
|
89
|
+
# version
|
|
90
|
+
self.set_version("v1")
|
|
91
|
+
|
|
92
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
93
|
+
|
|
94
|
+
with self.active_dataroot("lambdapdk"):
|
|
95
|
+
with self.active_fileset("rtl"):
|
|
96
|
+
self.add_file(lib_path / "lambda" / "la_ioclamp.v")
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class Sky130Lambdalib_la_iocorner(LambalibTechLibrary, _LambdaPath):
|
|
100
|
+
def __init__(self):
|
|
101
|
+
super().__init__("la_iocorner", [Sky130_IOLibrary])
|
|
102
|
+
self.set_name("sky130_la_iocorner")
|
|
103
|
+
|
|
104
|
+
# version
|
|
105
|
+
self.set_version("v1")
|
|
106
|
+
|
|
107
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
108
|
+
|
|
109
|
+
with self.active_dataroot("lambdapdk"):
|
|
110
|
+
with self.active_fileset("rtl"):
|
|
111
|
+
self.add_file(lib_path / "lambda" / "la_iocorner.v")
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class Sky130Lambdalib_la_ioinput(LambalibTechLibrary, _LambdaPath):
|
|
115
|
+
def __init__(self):
|
|
116
|
+
super().__init__("la_ioinput", [Sky130_IOLibrary])
|
|
117
|
+
self.set_name("sky130_la_ioinput")
|
|
118
|
+
|
|
119
|
+
# version
|
|
120
|
+
self.set_version("v1")
|
|
121
|
+
|
|
122
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
123
|
+
|
|
124
|
+
with self.active_dataroot("lambdapdk"):
|
|
125
|
+
with self.active_fileset("rtl"):
|
|
126
|
+
self.add_file(lib_path / "lambda" / "la_ioinput.v")
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class Sky130Lambdalib_la_iorxdiff(LambalibTechLibrary, _LambdaPath):
|
|
130
|
+
def __init__(self):
|
|
131
|
+
super().__init__("la_iorxdiff", [Sky130_IOLibrary])
|
|
132
|
+
self.set_name("sky130_la_iorxdiff")
|
|
133
|
+
|
|
134
|
+
# version
|
|
135
|
+
self.set_version("v1")
|
|
136
|
+
|
|
137
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
138
|
+
|
|
139
|
+
with self.active_dataroot("lambdapdk"):
|
|
140
|
+
with self.active_fileset("rtl"):
|
|
141
|
+
self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class Sky130Lambdalib_la_iotxdiff(LambalibTechLibrary, _LambdaPath):
|
|
145
|
+
def __init__(self):
|
|
146
|
+
super().__init__("la_iotxdiff", [Sky130_IOLibrary])
|
|
147
|
+
self.set_name("sky130_la_iotxdiff")
|
|
148
|
+
|
|
149
|
+
# version
|
|
150
|
+
self.set_version("v1")
|
|
151
|
+
|
|
152
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
153
|
+
|
|
154
|
+
with self.active_dataroot("lambdapdk"):
|
|
155
|
+
with self.active_fileset("rtl"):
|
|
156
|
+
self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
class Sky130Lambdalib_la_iovdd(LambalibTechLibrary, _LambdaPath):
|
|
160
|
+
def __init__(self):
|
|
161
|
+
super().__init__("la_iovdd", [Sky130_IOLibrary])
|
|
162
|
+
self.set_name("sky130_la_iovdd")
|
|
163
|
+
|
|
164
|
+
# version
|
|
165
|
+
self.set_version("v1")
|
|
166
|
+
|
|
167
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
168
|
+
|
|
169
|
+
with self.active_dataroot("lambdapdk"):
|
|
170
|
+
with self.active_fileset("rtl"):
|
|
171
|
+
self.add_file(lib_path / "lambda" / "la_iovdd.v")
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class Sky130Lambdalib_la_iovdda(LambalibTechLibrary, _LambdaPath):
|
|
175
|
+
def __init__(self):
|
|
176
|
+
super().__init__("la_iovdda", [Sky130_IOLibrary])
|
|
177
|
+
self.set_name("sky130_la_iovdda")
|
|
178
|
+
|
|
179
|
+
# version
|
|
180
|
+
self.set_version("v1")
|
|
181
|
+
|
|
182
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
183
|
+
|
|
184
|
+
with self.active_dataroot("lambdapdk"):
|
|
185
|
+
with self.active_fileset("rtl"):
|
|
186
|
+
self.add_file(lib_path / "lambda" / "la_iovdda.v")
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
class Sky130Lambdalib_la_iovddio(LambalibTechLibrary, _LambdaPath):
|
|
190
|
+
def __init__(self):
|
|
191
|
+
super().__init__("la_iovddio", [Sky130_IOLibrary])
|
|
192
|
+
self.set_name("sky130_la_iovddio")
|
|
193
|
+
|
|
194
|
+
# version
|
|
195
|
+
self.set_version("v1")
|
|
196
|
+
|
|
197
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
198
|
+
|
|
199
|
+
with self.active_dataroot("lambdapdk"):
|
|
200
|
+
with self.active_fileset("rtl"):
|
|
201
|
+
self.add_file(lib_path / "lambda" / "la_iovddio.v")
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class Sky130Lambdalib_la_iovss(LambalibTechLibrary, _LambdaPath):
|
|
205
|
+
def __init__(self):
|
|
206
|
+
super().__init__("la_iovss", [Sky130_IOLibrary])
|
|
207
|
+
self.set_name("sky130_la_iovss")
|
|
208
|
+
|
|
209
|
+
# version
|
|
210
|
+
self.set_version("v1")
|
|
211
|
+
|
|
212
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
213
|
+
|
|
214
|
+
with self.active_dataroot("lambdapdk"):
|
|
215
|
+
with self.active_fileset("rtl"):
|
|
216
|
+
self.add_file(lib_path / "lambda" / "la_iovss.v")
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
class Sky130Lambdalib_la_iovssa(LambalibTechLibrary, _LambdaPath):
|
|
220
|
+
def __init__(self):
|
|
221
|
+
super().__init__("la_iovssa", [Sky130_IOLibrary])
|
|
222
|
+
self.set_name("sky130_la_iovssa")
|
|
223
|
+
|
|
224
|
+
# version
|
|
225
|
+
self.set_version("v1")
|
|
226
|
+
|
|
227
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
228
|
+
|
|
229
|
+
with self.active_dataroot("lambdapdk"):
|
|
230
|
+
with self.active_fileset("rtl"):
|
|
231
|
+
self.add_file(lib_path / "lambda" / "la_iovssa.v")
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
class Sky130Lambdalib_la_iovssio(LambalibTechLibrary, _LambdaPath):
|
|
235
|
+
def __init__(self):
|
|
236
|
+
super().__init__("la_iovssio", [Sky130_IOLibrary])
|
|
237
|
+
self.set_name("sky130_la_iovssio")
|
|
238
|
+
|
|
239
|
+
# version
|
|
240
|
+
self.set_version("v1")
|
|
241
|
+
|
|
242
|
+
lib_path = Path("lambdapdk", "sky130", "libs", "sky130io")
|
|
243
|
+
|
|
244
|
+
with self.active_dataroot("lambdapdk"):
|
|
245
|
+
with self.active_fileset("rtl"):
|
|
246
|
+
self.add_file(lib_path / "lambda" / "la_iovssio.v")
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
class Sky130LambdaLib_IO(LambalibTechLibrary):
|
|
250
|
+
@classmethod
|
|
251
|
+
def alias(cls, project: ASICProject):
|
|
252
|
+
Sky130Lambdalib_la_ioanalog.alias(project)
|
|
253
|
+
Sky130Lambdalib_la_iobidir.alias(project)
|
|
254
|
+
Sky130Lambdalib_la_ioclamp.alias(project)
|
|
255
|
+
Sky130Lambdalib_la_iocorner.alias(project)
|
|
256
|
+
Sky130Lambdalib_la_ioinput.alias(project)
|
|
257
|
+
Sky130Lambdalib_la_iorxdiff.alias(project)
|
|
258
|
+
Sky130Lambdalib_la_iotxdiff.alias(project)
|
|
259
|
+
Sky130Lambdalib_la_iovdd.alias(project)
|
|
260
|
+
Sky130Lambdalib_la_iovdda.alias(project)
|
|
261
|
+
Sky130Lambdalib_la_iovddio.alias(project)
|
|
262
|
+
Sky130Lambdalib_la_iovss.alias(project)
|
|
263
|
+
Sky130Lambdalib_la_iovssa.alias(project)
|
|
264
|
+
Sky130Lambdalib_la_iovssio.alias(project)
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
lambdapdk/__init__.py,sha256=
|
|
1
|
+
lambdapdk/__init__.py,sha256=U1bjM0Zjl2CpGM3Um8EG2280tz8qGoHN8mYcjKIBMcw,17154
|
|
2
2
|
lambdapdk/asap7/__init__.py,sha256=UprA-NESlw20dBdqhXhx-bfJ4d7KWotJYrWGmVbYbG8,4304
|
|
3
3
|
lambdapdk/asap7/libs/asap7sc7p5t.py,sha256=x1sOg01b0ayYUOe38WweazGu51VmOkgthrBEk3bbcBY,4858
|
|
4
|
-
lambdapdk/asap7/libs/fakeio7.py,sha256=
|
|
4
|
+
lambdapdk/asap7/libs/fakeio7.py,sha256=j7v2Tgiq7Svc2pjDMe5YUHdk-26eG_YWQ3XmhB5DcJg,8822
|
|
5
5
|
lambdapdk/asap7/libs/fakekit7.py,sha256=3AG-xHYw9PyCwdMKeo529DiXreejYUxd16uS2t1Bt1M,597
|
|
6
6
|
lambdapdk/asap7/libs/fakeram7.py,sha256=JWENktqmrc_qzEG7X_ZAdBQJdLuvCl2UpXtWeM8y3Xo,6268
|
|
7
7
|
lambdapdk/freepdk45/__init__.py,sha256=mtdE-xFQRn7nnHsT8izcLJ1hBd_DNL13NHijh6hsmZE,3159
|
|
8
8
|
lambdapdk/freepdk45/libs/fakeram45.py,sha256=hJD7NuVI-JdXNR2t4a3I8_vgfHEESZL7HQ5SGnsGVQg,2391
|
|
9
9
|
lambdapdk/freepdk45/libs/nangate45.py,sha256=RCgqS616U9N_rEyyCoEsyXHMoDobtXUKDoJPKT0yYEY,3551
|
|
10
10
|
lambdapdk/gf180/__init__.py,sha256=uuF94SUCl0U1ibBFLfIVHjcXlAJLNtwogn9ZZBuh0j0,9154
|
|
11
|
-
lambdapdk/gf180/libs/gf180io.py,sha256=
|
|
11
|
+
lambdapdk/gf180/libs/gf180io.py,sha256=qZrV6ZO20BU1QgH9V82uR7es6K66DlxEBHjsPpf4LkE,25584
|
|
12
12
|
lambdapdk/gf180/libs/gf180mcu.py,sha256=Xt0jorrrJhK0R2UDAE-LslrY3S_1yXC4LQi-TQ1ARRw,8419
|
|
13
13
|
lambdapdk/gf180/libs/gf180sram.py,sha256=72mAAov8QZgIQczeUJZxWWikqYekQYFvnXarCzl2jTo,4664
|
|
14
14
|
lambdapdk/ihp130/__init__.py,sha256=3IdnV5_rKzxwBD3pD2SX7LsQfYlUd-YZF0m96fH3KoE,4697
|
|
15
|
-
lambdapdk/ihp130/libs/sg13g2_io.py,sha256=
|
|
15
|
+
lambdapdk/ihp130/libs/sg13g2_io.py,sha256=ksUsikkUb2kZonhPFqSVedbMYynI9hv5VKDiZJyRp8E,16158
|
|
16
16
|
lambdapdk/ihp130/libs/sg13g2_sram.py,sha256=SabP-8icWhhGpBiMZkFlgSAYVGBg7vxVTOdPAixwq9g,3273
|
|
17
17
|
lambdapdk/ihp130/libs/sg13g2_stdcell.py,sha256=dA8yOp2VHfFZn0K3LF1sp-ril0JP6DT86BZHr9A_Z2k,5010
|
|
18
18
|
lambdapdk/interposer/__init__.py,sha256=woXKReyGw3yuoaQ6FZIFWJ7twxCdtx_tmVFSwhyJTJ0,4739
|
|
19
19
|
lambdapdk/interposer/_generator.py,sha256=Uf9i7gfjgntUpLmxsRmOfzfgh26iQ3nfZmrdIx59UtA,15016
|
|
20
20
|
lambdapdk/interposer/libs/bumps.py,sha256=gLz05sR72NFVZkbEXB1LRUQVkIegrE8JeH5gyBOVRWE,1730
|
|
21
21
|
lambdapdk/sky130/__init__.py,sha256=85rjv0QvpP4VWG0N7UBSyWCH5YATZW8jlXA1O-54nXU,3790
|
|
22
|
-
lambdapdk/sky130/libs/sky130io.py,sha256=
|
|
22
|
+
lambdapdk/sky130/libs/sky130io.py,sha256=ODD7FqCxc97NgLDaysadJnLFjNhy6rjBLqW2cFZDrpU,9136
|
|
23
23
|
lambdapdk/sky130/libs/sky130sc.py,sha256=msRNxMT6MtbGEhX3hfMOo2JL5EQpAaqYhy-hGxcAjAI,8553
|
|
24
24
|
lambdapdk/sky130/libs/sky130sram.py,sha256=jvAI4RyQMOrQl6u9dZtZaOr7-uAfPB-9iZhsVgu7g8I,2117
|
|
25
|
-
lambdapdk-0.2.
|
|
26
|
-
lambdapdk-0.2.
|
|
27
|
-
lambdapdk-0.2.
|
|
28
|
-
lambdapdk-0.2.
|
|
29
|
-
lambdapdk-0.2.
|
|
30
|
-
lambdapdk-0.2.
|
|
25
|
+
lambdapdk-0.2.0rc4.dist-info/licenses/LICENSE,sha256=2TIhku7H905BsYloYoCwat2JsdkGYc_qsnvU-p7P-IQ,10766
|
|
26
|
+
lambdapdk-0.2.0rc4.dist-info/METADATA,sha256=MJMJfwTbbDrZyQG6Wi3fBamltGD1uaAu58RtVqbJQ0U,13953
|
|
27
|
+
lambdapdk-0.2.0rc4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
28
|
+
lambdapdk-0.2.0rc4.dist-info/entry_points.txt,sha256=M3DJNwBP0Yv7_3UQ4scoJihxcHncDMkD2cEAbaK2XOw,61
|
|
29
|
+
lambdapdk-0.2.0rc4.dist-info/top_level.txt,sha256=5wk8psZwCcQgSjOlWTihBeDkSIViGn8I3j5yALbs59s,10
|
|
30
|
+
lambdapdk-0.2.0rc4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|