lambdapdk 0.1.56__py3-none-any.whl → 0.2.0__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.
@@ -1,73 +1,749 @@
1
- import os
2
- import siliconcompiler
3
- from lambdapdk import register_data_source
1
+ from pathlib import Path
4
2
 
3
+ from siliconcompiler import ASIC
4
+ from lambdalib import LambalibTechLibrary
5
+ from lambdapdk import LambdaLibrary, _LambdaPath
6
+ from lambdapdk.gf180 import GF180_3LM_1TM_6K_7t, \
7
+ GF180_3LM_1TM_6K_9t, \
8
+ GF180_3LM_1TM_9K_7t, \
9
+ GF180_3LM_1TM_9K_9t, \
10
+ GF180_3LM_1TM_11K_7t, \
11
+ GF180_3LM_1TM_11K_9t, \
12
+ GF180_3LM_1TM_30K_7t, \
13
+ GF180_3LM_1TM_30K_9t, \
14
+ GF180_4LM_1TM_6K_7t, \
15
+ GF180_4LM_1TM_6K_9t, \
16
+ GF180_4LM_1TM_9K_7t, \
17
+ GF180_4LM_1TM_9K_9t, \
18
+ GF180_4LM_1TM_11K_7t, \
19
+ GF180_4LM_1TM_11K_9t, \
20
+ GF180_4LM_1TM_30K_7t, \
21
+ GF180_4LM_1TM_30K_9t, \
22
+ GF180_5LM_1TM_9K_7t, \
23
+ GF180_5LM_1TM_9K_9t, \
24
+ GF180_5LM_1TM_11K_7t, \
25
+ GF180_5LM_1TM_11K_9t
5
26
 
6
- def setup():
27
+
28
+ class _GF180IOLibrary(LambdaLibrary):
7
29
  '''
8
30
  GloabalFoundries 180 I/O library.
9
31
  '''
10
- libdir = "lambdapdk/gf180/libs/gf180mcu_fd_io/"
11
-
12
- libs = []
13
- for substack in ("3LM", "4LM", "5LM"):
14
- lib = siliconcompiler.Library(f'gf180mcu_fd_io_{substack}', package='lambdapdk')
15
- register_data_source(lib)
16
-
17
- # pdk
18
- lib.set('option', 'pdk', 'gf180')
19
-
20
- lib.set('output', 'slow', 'nldm',
21
- os.path.join(libdir, 'nldm/gf180mcu_fd_io__ss_125C_2v97.lib.gz'))
22
- lib.set('output', 'typical', 'nldm',
23
- os.path.join(libdir, 'nldm/gf180mcu_fd_io__tt_025C_3v30.lib.gz'))
24
- lib.set('output', 'fast', 'nldm',
25
- os.path.join(libdir, 'nldm/gf180mcu_fd_io__ff_125C_3v63.lib.gz'))
26
-
27
- for corner in ('slow', 'typical', 'fast'):
28
- lib.set('output', corner, 'spice',
29
- os.path.join(libdir, f'spice/{substack}/gf180mcu_fd_io.spice'))
30
-
31
- for stackup in ("3LM_1TM_6K",
32
- "3LM_1TM_9K",
33
- "3LM_1TM_11K",
34
- "3LM_1TM_30K",
35
- "4LM_1TM_6K",
36
- "4LM_1TM_9K",
37
- "4LM_1TM_11K",
38
- "4LM_1TM_30K",
39
- "5LM_1TM_9K",
40
- "5LM_1TM_11K"):
41
- stackup_start = stackup[0:3]
42
- if substack != stackup_start:
43
- continue
44
- lib.set('output', stackup, 'lef',
45
- os.path.join(libdir, f'lef/{stackup_start}/gf180mcu_fd_io.lef'))
46
- lib.set('output', stackup, 'cdl', os.path.join(libdir, 'cdl/gf180mcu_fd_io.cdl'))
47
-
48
- lib.add('output', stackup, 'gds',
49
- os.path.join(libdir, f'gds/{stackup_start}/gf180mcu_fd_io.gds.gz'))
50
-
51
- lib.set('asic', 'cells', 'filler', ['gf180mcu_fd_io__fill1',
52
- 'gf180mcu_fd_io__fill5',
53
- 'gf180mcu_fd_io__fill10',
54
- 'gf180mcu_fd_io__fillnc'])
55
-
56
- lib.set('output', 'blackbox', 'verilog',
57
- os.path.join(libdir, 'blackbox', f'{stackup_start}.v'))
58
-
59
- libs.append(lib)
60
-
61
- lambda_lib = siliconcompiler.Library('lambdalib_gf180mcu_fd_io', package='lambdapdk')
62
- register_data_source(lambda_lib)
63
- lambda_lib.add('option', 'ydir', 'lambdapdk/gf180/libs/gf180mcu_fd_io/lambda')
64
- lambda_lib.use(lib)
65
- lambda_lib.set('asic', 'macrolib', lib.design)
66
-
67
- return [*libs, lambda_lib]
68
-
69
-
70
- #########################
71
- if __name__ == "__main__":
72
- for lib in setup(siliconcompiler.Chip('<lib>')):
73
- lib.write_manifest(f'{lib.top()}.json')
32
+ def __init__(self, stackup):
33
+ super().__init__()
34
+ self.set_name(f"gf180mcu_fd_io_{stackup}")
35
+
36
+ path_base = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
37
+
38
+ if stackup == "3LM":
39
+ self.add_asic_pdk(GF180_3LM_1TM_6K_7t(), default=False)
40
+ self.add_asic_pdk(GF180_3LM_1TM_6K_9t(), default=False)
41
+ self.add_asic_pdk(GF180_3LM_1TM_9K_7t(), default=False)
42
+ self.add_asic_pdk(GF180_3LM_1TM_9K_9t(), default=False)
43
+ self.add_asic_pdk(GF180_3LM_1TM_11K_7t(), default=False)
44
+ self.add_asic_pdk(GF180_3LM_1TM_11K_9t(), default=False)
45
+ self.add_asic_pdk(GF180_3LM_1TM_30K_7t(), default=False)
46
+ self.add_asic_pdk(GF180_3LM_1TM_30K_9t(), default=False)
47
+ elif stackup == "4LM":
48
+ self.add_asic_pdk(GF180_4LM_1TM_6K_7t(), default=False)
49
+ self.add_asic_pdk(GF180_4LM_1TM_6K_9t(), default=False)
50
+ self.add_asic_pdk(GF180_4LM_1TM_9K_7t(), default=False)
51
+ self.add_asic_pdk(GF180_4LM_1TM_9K_9t(), default=False)
52
+ self.add_asic_pdk(GF180_4LM_1TM_11K_7t(), default=False)
53
+ self.add_asic_pdk(GF180_4LM_1TM_11K_9t(), default=False)
54
+ self.add_asic_pdk(GF180_4LM_1TM_30K_7t(), default=False)
55
+ self.add_asic_pdk(GF180_4LM_1TM_30K_9t(), default=False)
56
+ elif stackup == "5LM":
57
+ self.add_asic_pdk(GF180_5LM_1TM_9K_7t(), default=False)
58
+ self.add_asic_pdk(GF180_5LM_1TM_9K_9t(), default=False)
59
+ self.add_asic_pdk(GF180_5LM_1TM_11K_7t(), default=False)
60
+ self.add_asic_pdk(GF180_5LM_1TM_11K_9t(), default=False)
61
+ else:
62
+ raise ValueError(f"{stackup} is not supported")
63
+
64
+ with self.active_dataroot("lambdapdk"):
65
+ for corner_name, filename in [
66
+ ('slow', 'gf180mcu_fd_io__ss_125C_2v97.lib.gz'),
67
+ ('typical', 'gf180mcu_fd_io__tt_025C_3v30.lib.gz'),
68
+ ('fast', 'gf180mcu_fd_io__ff_125C_3v63.lib.gz')]:
69
+ with self.active_fileset(f"models.timing.{corner_name}.nldm"):
70
+ self.add_file(path_base / "nldm" / filename)
71
+ self.add_asic_libcornerfileset(corner_name, "nldm")
72
+
73
+ with self.active_fileset("models.spice"):
74
+ self.add_file(path_base / "spice" / stackup / "gf180mcu_fd_io.spice")
75
+
76
+ with self.active_dataroot("lambdapdk"):
77
+ with self.active_fileset("models.physical"):
78
+ self.add_file(path_base / "lef" / stackup / "gf180mcu_fd_io.lef")
79
+ self.add_file(path_base / "gds" / stackup / "gf180mcu_fd_io.gds.gz")
80
+ self.add_asic_aprfileset()
81
+
82
+ with self.active_fileset("models.lvs"):
83
+ self.add_file(path_base / "cdl" / "gf180mcu_fd_io.cdl")
84
+ self.add_asic_aprfileset()
85
+
86
+ self.add_asic_celllist("filler", [
87
+ 'gf180mcu_fd_io__fill1',
88
+ 'gf180mcu_fd_io__fill5',
89
+ 'gf180mcu_fd_io__fill10',
90
+ 'gf180mcu_fd_io__fillnc'])
91
+
92
+ with self.active_dataroot("lambdapdk"):
93
+ with self.active_fileset("models.blackbox"):
94
+ self.add_file(path_base / "blackbox" / f"{stackup}.v")
95
+ self.add_yosys_blackbox_fileset("models.blackbox")
96
+
97
+
98
+ class GF180_IO_3LM(_GF180IOLibrary):
99
+ def __init__(self):
100
+ super().__init__("3LM")
101
+
102
+
103
+ class GF180_IO_4LM(_GF180IOLibrary):
104
+ def __init__(self):
105
+ super().__init__("4LM")
106
+
107
+
108
+ class GF180_IO_5LM(_GF180IOLibrary):
109
+ def __init__(self):
110
+ super().__init__("5LM")
111
+
112
+
113
+ class GF180Lambdalib_la_iovdd_3LM(LambalibTechLibrary, _LambdaPath):
114
+ def __init__(self):
115
+ super().__init__("la_iovdd", [GF180_IO_3LM])
116
+ self.set_name("gf180_3LM_la_iovdd")
117
+
118
+ # version
119
+ self.package.set_version("v1")
120
+
121
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
122
+
123
+ with self.active_dataroot("lambdapdk"):
124
+ with self.active_fileset("rtl"):
125
+ self.add_file(lib_path / "lambda" / "la_iovdd.v")
126
+
127
+
128
+ class GF180Lambdalib_la_iocorner_3LM(LambalibTechLibrary, _LambdaPath):
129
+ def __init__(self):
130
+ super().__init__("la_iocorner", [GF180_IO_3LM])
131
+ self.set_name("gf180_3LM_la_iocorner")
132
+
133
+ # version
134
+ self.package.set_version("v1")
135
+
136
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
137
+
138
+ with self.active_dataroot("lambdapdk"):
139
+ with self.active_fileset("rtl"):
140
+ self.add_file(lib_path / "lambda" / "la_iocorner.v")
141
+
142
+
143
+ class GF180Lambdalib_la_iotxdiff_3LM(LambalibTechLibrary, _LambdaPath):
144
+ def __init__(self):
145
+ super().__init__("la_iotxdiff", [GF180_IO_3LM])
146
+ self.set_name("gf180_3LM_la_iotxdiff")
147
+
148
+ # version
149
+ self.package.set_version("v1")
150
+
151
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
152
+
153
+ with self.active_dataroot("lambdapdk"):
154
+ with self.active_fileset("rtl"):
155
+ self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
156
+
157
+
158
+ class GF180Lambdalib_la_ioanalog_3LM(LambalibTechLibrary, _LambdaPath):
159
+ def __init__(self):
160
+ super().__init__("la_ioanalog", [GF180_IO_3LM])
161
+ self.set_name("gf180_3LM_la_ioanalog")
162
+
163
+ # version
164
+ self.package.set_version("v1")
165
+
166
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
167
+
168
+ with self.active_dataroot("lambdapdk"):
169
+ with self.active_fileset("rtl"):
170
+ self.add_file(lib_path / "lambda" / "la_ioanalog.v")
171
+
172
+
173
+ class GF180Lambdalib_la_ioinput_3LM(LambalibTechLibrary, _LambdaPath):
174
+ def __init__(self):
175
+ super().__init__("la_ioinput", [GF180_IO_3LM])
176
+ self.set_name("gf180_3LM_la_ioinput")
177
+
178
+ # version
179
+ self.package.set_version("v1")
180
+
181
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
182
+
183
+ with self.active_dataroot("lambdapdk"):
184
+ with self.active_fileset("rtl"):
185
+ self.add_file(lib_path / "lambda" / "la_ioinput.v")
186
+
187
+
188
+ class GF180Lambdalib_la_iocut_3LM(LambalibTechLibrary, _LambdaPath):
189
+ def __init__(self):
190
+ super().__init__("la_iocut", [GF180_IO_3LM])
191
+ self.set_name("gf180_3LM_la_iocut")
192
+
193
+ # version
194
+ self.package.set_version("v1")
195
+
196
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
197
+
198
+ with self.active_dataroot("lambdapdk"):
199
+ with self.active_fileset("rtl"):
200
+ self.add_file(lib_path / "lambda" / "la_iocut.v")
201
+
202
+
203
+ class GF180Lambdalib_la_iovss_3LM(LambalibTechLibrary, _LambdaPath):
204
+ def __init__(self):
205
+ super().__init__("la_iovss", [GF180_IO_3LM])
206
+ self.set_name("gf180_3LM_la_iovss")
207
+
208
+ # version
209
+ self.package.set_version("v1")
210
+
211
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
212
+
213
+ with self.active_dataroot("lambdapdk"):
214
+ with self.active_fileset("rtl"):
215
+ self.add_file(lib_path / "lambda" / "la_iovss.v")
216
+
217
+
218
+ class GF180Lambdalib_la_iovddio_3LM(LambalibTechLibrary, _LambdaPath):
219
+ def __init__(self):
220
+ super().__init__("la_iovddio", [GF180_IO_3LM])
221
+ self.set_name("gf180_3LM_la_iovddio")
222
+
223
+ # version
224
+ self.package.set_version("v1")
225
+
226
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
227
+
228
+ with self.active_dataroot("lambdapdk"):
229
+ with self.active_fileset("rtl"):
230
+ self.add_file(lib_path / "lambda" / "la_iovddio.v")
231
+
232
+
233
+ class GF180Lambdalib_la_iovssio_3LM(LambalibTechLibrary, _LambdaPath):
234
+ def __init__(self):
235
+ super().__init__("la_iovssio", [GF180_IO_3LM])
236
+ self.set_name("gf180_3LM_la_iovssio")
237
+
238
+ # version
239
+ self.package.set_version("v1")
240
+
241
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
242
+
243
+ with self.active_dataroot("lambdapdk"):
244
+ with self.active_fileset("rtl"):
245
+ self.add_file(lib_path / "lambda" / "la_iovssio.v")
246
+
247
+
248
+ class GF180Lambdalib_la_iovdda_3LM(LambalibTechLibrary, _LambdaPath):
249
+ def __init__(self):
250
+ super().__init__("la_iovdda", [GF180_IO_3LM])
251
+ self.set_name("gf180_3LM_la_iovdda")
252
+
253
+ # version
254
+ self.package.set_version("v1")
255
+
256
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
257
+
258
+ with self.active_dataroot("lambdapdk"):
259
+ with self.active_fileset("rtl"):
260
+ self.add_file(lib_path / "lambda" / "la_iovdda.v")
261
+
262
+
263
+ class GF180Lambdalib_la_iovssa_3LM(LambalibTechLibrary, _LambdaPath):
264
+ def __init__(self):
265
+ super().__init__("la_iovssa", [GF180_IO_3LM])
266
+ self.set_name("gf180_3LM_la_iovssa")
267
+
268
+ # version
269
+ self.package.set_version("v1")
270
+
271
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
272
+
273
+ with self.active_dataroot("lambdapdk"):
274
+ with self.active_fileset("rtl"):
275
+ self.add_file(lib_path / "lambda" / "la_iovssa.v")
276
+
277
+
278
+ class GF180Lambdalib_la_iorxdiff_3LM(LambalibTechLibrary, _LambdaPath):
279
+ def __init__(self):
280
+ super().__init__("la_iorxdiff", [GF180_IO_3LM])
281
+ self.set_name("gf180_3LM_la_iorxdiff")
282
+
283
+ # version
284
+ self.package.set_version("v1")
285
+
286
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
287
+
288
+ with self.active_dataroot("lambdapdk"):
289
+ with self.active_fileset("rtl"):
290
+ self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
291
+
292
+
293
+ class GF180Lambdalib_la_iobidir_3LM(LambalibTechLibrary, _LambdaPath):
294
+ def __init__(self):
295
+ super().__init__("la_iobidir", [GF180_IO_3LM])
296
+ self.set_name("gf180_3LM_la_iobidir")
297
+
298
+ # version
299
+ self.package.set_version("v1")
300
+
301
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
302
+
303
+ with self.active_dataroot("lambdapdk"):
304
+ with self.active_fileset("rtl"):
305
+ self.add_file(lib_path / "lambda" / "la_iobidir.v")
306
+
307
+
308
+ class GF180Lambdalib_IO_3LM(LambalibTechLibrary):
309
+ @classmethod
310
+ def alias(cls, project: ASIC):
311
+ GF180Lambdalib_la_iovdd_3LM.alias(project)
312
+ GF180Lambdalib_la_iocorner_3LM.alias(project)
313
+ GF180Lambdalib_la_iotxdiff_3LM.alias(project)
314
+ GF180Lambdalib_la_ioanalog_3LM.alias(project)
315
+ GF180Lambdalib_la_ioinput_3LM.alias(project)
316
+ GF180Lambdalib_la_iocut_3LM.alias(project)
317
+ GF180Lambdalib_la_iovss_3LM.alias(project)
318
+ GF180Lambdalib_la_iovddio_3LM.alias(project)
319
+ GF180Lambdalib_la_iovssio_3LM.alias(project)
320
+ GF180Lambdalib_la_iovdda_3LM.alias(project)
321
+ GF180Lambdalib_la_iovssa_3LM.alias(project)
322
+ GF180Lambdalib_la_iorxdiff_3LM.alias(project)
323
+ GF180Lambdalib_la_iobidir_3LM.alias(project)
324
+
325
+
326
+ class GF180Lambdalib_la_iovdd_4LM(LambalibTechLibrary, _LambdaPath):
327
+ def __init__(self):
328
+ super().__init__("la_iovdd", [GF180_IO_4LM])
329
+ self.set_name("gf180_4LM_la_iovdd")
330
+
331
+ # version
332
+ self.package.set_version("v1")
333
+
334
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
335
+
336
+ with self.active_dataroot("lambdapdk"):
337
+ with self.active_fileset("rtl"):
338
+ self.add_file(lib_path / "lambda" / "la_iovdd.v")
339
+
340
+
341
+ class GF180Lambdalib_la_iocorner_4LM(LambalibTechLibrary, _LambdaPath):
342
+ def __init__(self):
343
+ super().__init__("la_iocorner", [GF180_IO_4LM])
344
+ self.set_name("gf180_4LM_la_iocorner")
345
+
346
+ # version
347
+ self.package.set_version("v1")
348
+
349
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
350
+
351
+ with self.active_dataroot("lambdapdk"):
352
+ with self.active_fileset("rtl"):
353
+ self.add_file(lib_path / "lambda" / "la_iocorner.v")
354
+
355
+
356
+ class GF180Lambdalib_la_iotxdiff_4LM(LambalibTechLibrary, _LambdaPath):
357
+ def __init__(self):
358
+ super().__init__("la_iotxdiff", [GF180_IO_4LM])
359
+ self.set_name("gf180_4LM_la_iotxdiff")
360
+
361
+ # version
362
+ self.package.set_version("v1")
363
+
364
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
365
+
366
+ with self.active_dataroot("lambdapdk"):
367
+ with self.active_fileset("rtl"):
368
+ self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
369
+
370
+
371
+ class GF180Lambdalib_la_ioanalog_4LM(LambalibTechLibrary, _LambdaPath):
372
+ def __init__(self):
373
+ super().__init__("la_ioanalog", [GF180_IO_4LM])
374
+ self.set_name("gf180_4LM_la_ioanalog")
375
+
376
+ # version
377
+ self.package.set_version("v1")
378
+
379
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
380
+
381
+ with self.active_dataroot("lambdapdk"):
382
+ with self.active_fileset("rtl"):
383
+ self.add_file(lib_path / "lambda" / "la_ioanalog.v")
384
+
385
+
386
+ class GF180Lambdalib_la_ioinput_4LM(LambalibTechLibrary, _LambdaPath):
387
+ def __init__(self):
388
+ super().__init__("la_ioinput", [GF180_IO_4LM])
389
+ self.set_name("gf180_4LM_la_ioinput")
390
+
391
+ # version
392
+ self.package.set_version("v1")
393
+
394
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
395
+
396
+ with self.active_dataroot("lambdapdk"):
397
+ with self.active_fileset("rtl"):
398
+ self.add_file(lib_path / "lambda" / "la_ioinput.v")
399
+
400
+
401
+ class GF180Lambdalib_la_iocut_4LM(LambalibTechLibrary, _LambdaPath):
402
+ def __init__(self):
403
+ super().__init__("la_iocut", [GF180_IO_4LM])
404
+ self.set_name("gf180_4LM_la_iocut")
405
+
406
+ # version
407
+ self.package.set_version("v1")
408
+
409
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
410
+
411
+ with self.active_dataroot("lambdapdk"):
412
+ with self.active_fileset("rtl"):
413
+ self.add_file(lib_path / "lambda" / "la_iocut.v")
414
+
415
+
416
+ class GF180Lambdalib_la_iovss_4LM(LambalibTechLibrary, _LambdaPath):
417
+ def __init__(self):
418
+ super().__init__("la_iovss", [GF180_IO_4LM])
419
+ self.set_name("gf180_4LM_la_iovss")
420
+
421
+ # version
422
+ self.package.set_version("v1")
423
+
424
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
425
+
426
+ with self.active_dataroot("lambdapdk"):
427
+ with self.active_fileset("rtl"):
428
+ self.add_file(lib_path / "lambda" / "la_iovss.v")
429
+
430
+
431
+ class GF180Lambdalib_la_iovddio_4LM(LambalibTechLibrary, _LambdaPath):
432
+ def __init__(self):
433
+ super().__init__("la_iovddio", [GF180_IO_4LM])
434
+ self.set_name("gf180_4LM_la_iovddio")
435
+
436
+ # version
437
+ self.package.set_version("v1")
438
+
439
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
440
+
441
+ with self.active_dataroot("lambdapdk"):
442
+ with self.active_fileset("rtl"):
443
+ self.add_file(lib_path / "lambda" / "la_iovddio.v")
444
+
445
+
446
+ class GF180Lambdalib_la_iovssio_4LM(LambalibTechLibrary, _LambdaPath):
447
+ def __init__(self):
448
+ super().__init__("la_iovssio", [GF180_IO_4LM])
449
+ self.set_name("gf180_4LM_la_iovssio")
450
+
451
+ # version
452
+ self.package.set_version("v1")
453
+
454
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
455
+
456
+ with self.active_dataroot("lambdapdk"):
457
+ with self.active_fileset("rtl"):
458
+ self.add_file(lib_path / "lambda" / "la_iovssio.v")
459
+
460
+
461
+ class GF180Lambdalib_la_iovdda_4LM(LambalibTechLibrary, _LambdaPath):
462
+ def __init__(self):
463
+ super().__init__("la_iovdda", [GF180_IO_4LM])
464
+ self.set_name("gf180_4LM_la_iovdda")
465
+
466
+ # version
467
+ self.package.set_version("v1")
468
+
469
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
470
+
471
+ with self.active_dataroot("lambdapdk"):
472
+ with self.active_fileset("rtl"):
473
+ self.add_file(lib_path / "lambda" / "la_iovdda.v")
474
+
475
+
476
+ class GF180Lambdalib_la_iovssa_4LM(LambalibTechLibrary, _LambdaPath):
477
+ def __init__(self):
478
+ super().__init__("la_iovssa", [GF180_IO_4LM])
479
+ self.set_name("gf180_4LM_la_iovssa")
480
+
481
+ # version
482
+ self.package.set_version("v1")
483
+
484
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
485
+
486
+ with self.active_dataroot("lambdapdk"):
487
+ with self.active_fileset("rtl"):
488
+ self.add_file(lib_path / "lambda" / "la_iovssa.v")
489
+
490
+
491
+ class GF180Lambdalib_la_iorxdiff_4LM(LambalibTechLibrary, _LambdaPath):
492
+ def __init__(self):
493
+ super().__init__("la_iorxdiff", [GF180_IO_4LM])
494
+ self.set_name("gf180_4LM_la_iorxdiff")
495
+
496
+ # version
497
+ self.package.set_version("v1")
498
+
499
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
500
+
501
+ with self.active_dataroot("lambdapdk"):
502
+ with self.active_fileset("rtl"):
503
+ self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
504
+
505
+
506
+ class GF180Lambdalib_la_iobidir_4LM(LambalibTechLibrary, _LambdaPath):
507
+ def __init__(self):
508
+ super().__init__("la_iobidir", [GF180_IO_4LM])
509
+ self.set_name("gf180_4LM_la_iobidir")
510
+
511
+ # version
512
+ self.package.set_version("v1")
513
+
514
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
515
+
516
+ with self.active_dataroot("lambdapdk"):
517
+ with self.active_fileset("rtl"):
518
+ self.add_file(lib_path / "lambda" / "la_iobidir.v")
519
+
520
+
521
+ class GF180Lambdalib_IO_4LM(LambalibTechLibrary):
522
+ @classmethod
523
+ def alias(cls, project: ASIC):
524
+ GF180Lambdalib_la_iovdd_4LM.alias(project)
525
+ GF180Lambdalib_la_iocorner_4LM.alias(project)
526
+ GF180Lambdalib_la_iotxdiff_4LM.alias(project)
527
+ GF180Lambdalib_la_ioanalog_4LM.alias(project)
528
+ GF180Lambdalib_la_ioinput_4LM.alias(project)
529
+ GF180Lambdalib_la_iocut_4LM.alias(project)
530
+ GF180Lambdalib_la_iovss_4LM.alias(project)
531
+ GF180Lambdalib_la_iovddio_4LM.alias(project)
532
+ GF180Lambdalib_la_iovssio_4LM.alias(project)
533
+ GF180Lambdalib_la_iovdda_4LM.alias(project)
534
+ GF180Lambdalib_la_iovssa_4LM.alias(project)
535
+ GF180Lambdalib_la_iorxdiff_4LM.alias(project)
536
+ GF180Lambdalib_la_iobidir_4LM.alias(project)
537
+
538
+
539
+ class GF180Lambdalib_la_iovdd_5LM(LambalibTechLibrary, _LambdaPath):
540
+ def __init__(self):
541
+ super().__init__("la_iovdd", [GF180_IO_5LM])
542
+ self.set_name("gf180_5LM_la_iovdd")
543
+
544
+ # version
545
+ self.package.set_version("v1")
546
+
547
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
548
+
549
+ with self.active_dataroot("lambdapdk"):
550
+ with self.active_fileset("rtl"):
551
+ self.add_file(lib_path / "lambda" / "la_iovdd.v")
552
+
553
+
554
+ class GF180Lambdalib_la_iocorner_5LM(LambalibTechLibrary, _LambdaPath):
555
+ def __init__(self):
556
+ super().__init__("la_iocorner", [GF180_IO_5LM])
557
+ self.set_name("gf180_5LM_la_iocorner")
558
+
559
+ # version
560
+ self.package.set_version("v1")
561
+
562
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
563
+
564
+ with self.active_dataroot("lambdapdk"):
565
+ with self.active_fileset("rtl"):
566
+ self.add_file(lib_path / "lambda" / "la_iocorner.v")
567
+
568
+
569
+ class GF180Lambdalib_la_iotxdiff_5LM(LambalibTechLibrary, _LambdaPath):
570
+ def __init__(self):
571
+ super().__init__("la_iotxdiff", [GF180_IO_5LM])
572
+ self.set_name("gf180_5LM_la_iotxdiff")
573
+
574
+ # version
575
+ self.package.set_version("v1")
576
+
577
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
578
+
579
+ with self.active_dataroot("lambdapdk"):
580
+ with self.active_fileset("rtl"):
581
+ self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
582
+
583
+
584
+ class GF180Lambdalib_la_ioanalog_5LM(LambalibTechLibrary, _LambdaPath):
585
+ def __init__(self):
586
+ super().__init__("la_ioanalog", [GF180_IO_5LM])
587
+ self.set_name("gf180_5LM_la_ioanalog")
588
+
589
+ # version
590
+ self.package.set_version("v1")
591
+
592
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
593
+
594
+ with self.active_dataroot("lambdapdk"):
595
+ with self.active_fileset("rtl"):
596
+ self.add_file(lib_path / "lambda" / "la_ioanalog.v")
597
+
598
+
599
+ class GF180Lambdalib_la_ioinput_5LM(LambalibTechLibrary, _LambdaPath):
600
+ def __init__(self):
601
+ super().__init__("la_ioinput", [GF180_IO_5LM])
602
+ self.set_name("gf180_5LM_la_ioinput")
603
+
604
+ # version
605
+ self.package.set_version("v1")
606
+
607
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
608
+
609
+ with self.active_dataroot("lambdapdk"):
610
+ with self.active_fileset("rtl"):
611
+ self.add_file(lib_path / "lambda" / "la_ioinput.v")
612
+
613
+
614
+ class GF180Lambdalib_la_iocut_5LM(LambalibTechLibrary, _LambdaPath):
615
+ def __init__(self):
616
+ super().__init__("la_iocut", [GF180_IO_5LM])
617
+ self.set_name("gf180_5LM_la_iocut")
618
+
619
+ # version
620
+ self.package.set_version("v1")
621
+
622
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
623
+
624
+ with self.active_dataroot("lambdapdk"):
625
+ with self.active_fileset("rtl"):
626
+ self.add_file(lib_path / "lambda" / "la_iocut.v")
627
+
628
+
629
+ class GF180Lambdalib_la_iovss_5LM(LambalibTechLibrary, _LambdaPath):
630
+ def __init__(self):
631
+ super().__init__("la_iovss", [GF180_IO_5LM])
632
+ self.set_name("gf180_5LM_la_iovss")
633
+
634
+ # version
635
+ self.package.set_version("v1")
636
+
637
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
638
+
639
+ with self.active_dataroot("lambdapdk"):
640
+ with self.active_fileset("rtl"):
641
+ self.add_file(lib_path / "lambda" / "la_iovss.v")
642
+
643
+
644
+ class GF180Lambdalib_la_iovddio_5LM(LambalibTechLibrary, _LambdaPath):
645
+ def __init__(self):
646
+ super().__init__("la_iovddio", [GF180_IO_5LM])
647
+ self.set_name("gf180_5LM_la_iovddio")
648
+
649
+ # version
650
+ self.package.set_version("v1")
651
+
652
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
653
+
654
+ with self.active_dataroot("lambdapdk"):
655
+ with self.active_fileset("rtl"):
656
+ self.add_file(lib_path / "lambda" / "la_iovddio.v")
657
+
658
+
659
+ class GF180Lambdalib_la_iovssio_5LM(LambalibTechLibrary, _LambdaPath):
660
+ def __init__(self):
661
+ super().__init__("la_iovssio", [GF180_IO_5LM])
662
+ self.set_name("gf180_5LM_la_iovssio")
663
+
664
+ # version
665
+ self.package.set_version("v1")
666
+
667
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
668
+
669
+ with self.active_dataroot("lambdapdk"):
670
+ with self.active_fileset("rtl"):
671
+ self.add_file(lib_path / "lambda" / "la_iovssio.v")
672
+
673
+
674
+ class GF180Lambdalib_la_iovdda_5LM(LambalibTechLibrary, _LambdaPath):
675
+ def __init__(self):
676
+ super().__init__("la_iovdda", [GF180_IO_5LM])
677
+ self.set_name("gf180_5LM_la_iovdda")
678
+
679
+ # version
680
+ self.package.set_version("v1")
681
+
682
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
683
+
684
+ with self.active_dataroot("lambdapdk"):
685
+ with self.active_fileset("rtl"):
686
+ self.add_file(lib_path / "lambda" / "la_iovdda.v")
687
+
688
+
689
+ class GF180Lambdalib_la_iovssa_5LM(LambalibTechLibrary, _LambdaPath):
690
+ def __init__(self):
691
+ super().__init__("la_iovssa", [GF180_IO_5LM])
692
+ self.set_name("gf180_5LM_la_iovssa")
693
+
694
+ # version
695
+ self.package.set_version("v1")
696
+
697
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
698
+
699
+ with self.active_dataroot("lambdapdk"):
700
+ with self.active_fileset("rtl"):
701
+ self.add_file(lib_path / "lambda" / "la_iovssa.v")
702
+
703
+
704
+ class GF180Lambdalib_la_iorxdiff_5LM(LambalibTechLibrary, _LambdaPath):
705
+ def __init__(self):
706
+ super().__init__("la_iorxdiff", [GF180_IO_5LM])
707
+ self.set_name("gf180_5LM_la_iorxdiff")
708
+
709
+ # version
710
+ self.package.set_version("v1")
711
+
712
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
713
+
714
+ with self.active_dataroot("lambdapdk"):
715
+ with self.active_fileset("rtl"):
716
+ self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
717
+
718
+
719
+ class GF180Lambdalib_la_iobidir_5LM(LambalibTechLibrary, _LambdaPath):
720
+ def __init__(self):
721
+ super().__init__("la_iobidir", [GF180_IO_5LM])
722
+ self.set_name("gf180_5LM_la_iobidir")
723
+
724
+ # version
725
+ self.package.set_version("v1")
726
+
727
+ lib_path = Path("lambdapdk", "gf180", "libs", "gf180mcu_fd_io")
728
+
729
+ with self.active_dataroot("lambdapdk"):
730
+ with self.active_fileset("rtl"):
731
+ self.add_file(lib_path / "lambda" / "la_iobidir.v")
732
+
733
+
734
+ class GF180Lambdalib_IO_5LM(LambalibTechLibrary):
735
+ @classmethod
736
+ def alias(cls, project: ASIC):
737
+ GF180Lambdalib_la_iovdd_5LM.alias(project)
738
+ GF180Lambdalib_la_iocorner_5LM.alias(project)
739
+ GF180Lambdalib_la_iotxdiff_5LM.alias(project)
740
+ GF180Lambdalib_la_ioanalog_5LM.alias(project)
741
+ GF180Lambdalib_la_ioinput_5LM.alias(project)
742
+ GF180Lambdalib_la_iocut_5LM.alias(project)
743
+ GF180Lambdalib_la_iovss_5LM.alias(project)
744
+ GF180Lambdalib_la_iovddio_5LM.alias(project)
745
+ GF180Lambdalib_la_iovssio_5LM.alias(project)
746
+ GF180Lambdalib_la_iovdda_5LM.alias(project)
747
+ GF180Lambdalib_la_iovssa_5LM.alias(project)
748
+ GF180Lambdalib_la_iorxdiff_5LM.alias(project)
749
+ GF180Lambdalib_la_iobidir_5LM.alias(project)