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.
- lambdapdk/__init__.py +444 -113
- lambdapdk/asap7/__init__.py +73 -99
- lambdapdk/asap7/libs/asap7sc7p5t.py +124 -159
- lambdapdk/asap7/libs/fakeio7.py +260 -22
- lambdapdk/asap7/libs/fakekit7.py +14 -19
- lambdapdk/asap7/libs/fakeram7.py +233 -33
- lambdapdk/freepdk45/__init__.py +59 -89
- lambdapdk/freepdk45/libs/fakeram45.py +75 -27
- lambdapdk/freepdk45/libs/nangate45.py +90 -125
- lambdapdk/gf180/__init__.py +216 -131
- lambdapdk/gf180/libs/gf180io.py +744 -68
- lambdapdk/gf180/libs/gf180mcu.py +188 -138
- lambdapdk/gf180/libs/gf180sram.py +123 -63
- lambdapdk/ihp130/__init__.py +84 -119
- lambdapdk/ihp130/libs/sg13g2_io.py +450 -41
- lambdapdk/ihp130/libs/sg13g2_sram.py +97 -52
- lambdapdk/ihp130/libs/sg13g2_stdcell.py +117 -135
- lambdapdk/interposer/__init__.py +110 -74
- lambdapdk/interposer/libs/bumps.py +41 -26
- lambdapdk/sky130/__init__.py +70 -92
- lambdapdk/sky130/libs/sky130io.py +248 -37
- lambdapdk/sky130/libs/sky130sc.py +174 -206
- lambdapdk/sky130/libs/sky130sram.py +47 -34
- {lambdapdk-0.1.56.dist-info → lambdapdk-0.2.0.dist-info}/METADATA +5 -5
- lambdapdk-0.2.0.dist-info/RECORD +30 -0
- lambdapdk-0.2.0.dist-info/entry_points.txt +2 -0
- lambdapdk-0.1.56.dist-info/RECORD +0 -30
- lambdapdk-0.1.56.dist-info/entry_points.txt +0 -4
- {lambdapdk-0.1.56.dist-info → lambdapdk-0.2.0.dist-info}/WHEEL +0 -0
- {lambdapdk-0.1.56.dist-info → lambdapdk-0.2.0.dist-info}/licenses/LICENSE +0 -0
- {lambdapdk-0.1.56.dist-info → lambdapdk-0.2.0.dist-info}/top_level.txt +0 -0
lambdapdk/asap7/libs/fakeio7.py
CHANGED
|
@@ -1,35 +1,273 @@
|
|
|
1
|
-
import
|
|
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.asap7 import ASAP7PDK
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
|
|
9
|
+
class FakeIO7Library(LambdaLibrary):
|
|
7
10
|
'''
|
|
8
11
|
ASAP7 Fake I/O library.
|
|
9
12
|
'''
|
|
10
|
-
|
|
13
|
+
def __init__(self):
|
|
14
|
+
super().__init__()
|
|
15
|
+
self.set_name("fakeio7")
|
|
16
|
+
|
|
17
|
+
self.add_asic_pdk(ASAP7PDK())
|
|
18
|
+
|
|
19
|
+
path_base = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
20
|
+
|
|
21
|
+
with self.active_dataroot("lambdapdk"):
|
|
22
|
+
with self.active_fileset("models.physical"):
|
|
23
|
+
self.add_file(path_base / "lef" / "fakeio7.lef")
|
|
24
|
+
self.add_asic_aprfileset()
|
|
25
|
+
|
|
26
|
+
with self.active_fileset("models.blackbox"):
|
|
27
|
+
self.add_file(path_base / "blackbox" / "model.v")
|
|
28
|
+
self.add_yosys_blackbox_fileset("models.blackbox")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class FakeIO7Lambdalib_la_iovdd(LambalibTechLibrary, _LambdaPath):
|
|
32
|
+
def __init__(self):
|
|
33
|
+
super().__init__("la_iovdd", [FakeIO7Library])
|
|
34
|
+
self.set_name("fakeio7_la_iovdd")
|
|
35
|
+
|
|
36
|
+
# version
|
|
37
|
+
self.package.set_version("v1")
|
|
38
|
+
|
|
39
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
40
|
+
|
|
41
|
+
with self.active_dataroot("lambdapdk"):
|
|
42
|
+
with self.active_fileset("rtl"):
|
|
43
|
+
self.add_file(lib_path / "lambda" / "la_iovdd.v")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class FakeIO7Lambdalib_la_iopoc(LambalibTechLibrary, _LambdaPath):
|
|
47
|
+
def __init__(self):
|
|
48
|
+
super().__init__("la_iopoc", [FakeIO7Library])
|
|
49
|
+
self.set_name("fakeio7_la_iopoc")
|
|
50
|
+
|
|
51
|
+
# version
|
|
52
|
+
self.package.set_version("v1")
|
|
53
|
+
|
|
54
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
55
|
+
|
|
56
|
+
with self.active_dataroot("lambdapdk"):
|
|
57
|
+
with self.active_fileset("rtl"):
|
|
58
|
+
self.add_file(lib_path / "lambda" / "la_iopoc.v")
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class FakeIO7Lambdalib_la_iocorner(LambalibTechLibrary, _LambdaPath):
|
|
62
|
+
def __init__(self):
|
|
63
|
+
super().__init__("la_iocorner", [FakeIO7Library])
|
|
64
|
+
self.set_name("fakeio7_la_iocorner")
|
|
65
|
+
|
|
66
|
+
# version
|
|
67
|
+
self.package.set_version("v1")
|
|
68
|
+
|
|
69
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
70
|
+
|
|
71
|
+
with self.active_dataroot("lambdapdk"):
|
|
72
|
+
with self.active_fileset("rtl"):
|
|
73
|
+
self.add_file(lib_path / "lambda" / "la_iocorner.v")
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class FakeIO7Lambdalib_la_iotxdiff(LambalibTechLibrary, _LambdaPath):
|
|
77
|
+
def __init__(self):
|
|
78
|
+
super().__init__("la_iotxdiff", [FakeIO7Library])
|
|
79
|
+
self.set_name("fakeio7_la_iotxdiff")
|
|
80
|
+
|
|
81
|
+
# version
|
|
82
|
+
self.package.set_version("v1")
|
|
83
|
+
|
|
84
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
85
|
+
|
|
86
|
+
with self.active_dataroot("lambdapdk"):
|
|
87
|
+
with self.active_fileset("rtl"):
|
|
88
|
+
self.add_file(lib_path / "lambda" / "la_iotxdiff.v")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class FakeIO7Lambdalib_la_ioanalog(LambalibTechLibrary, _LambdaPath):
|
|
92
|
+
def __init__(self):
|
|
93
|
+
super().__init__("la_ioanalog", [FakeIO7Library])
|
|
94
|
+
self.set_name("fakeio7_la_ioanalog")
|
|
95
|
+
|
|
96
|
+
# version
|
|
97
|
+
self.package.set_version("v1")
|
|
98
|
+
|
|
99
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
100
|
+
|
|
101
|
+
with self.active_dataroot("lambdapdk"):
|
|
102
|
+
with self.active_fileset("rtl"):
|
|
103
|
+
self.add_file(lib_path / "lambda" / "la_ioanalog.v")
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class FakeIO7Lambdalib_la_ioinput(LambalibTechLibrary, _LambdaPath):
|
|
107
|
+
def __init__(self):
|
|
108
|
+
super().__init__("la_ioinput", [FakeIO7Library])
|
|
109
|
+
self.set_name("fakeio7_la_ioinput")
|
|
110
|
+
|
|
111
|
+
# version
|
|
112
|
+
self.package.set_version("v1")
|
|
113
|
+
|
|
114
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
115
|
+
|
|
116
|
+
with self.active_dataroot("lambdapdk"):
|
|
117
|
+
with self.active_fileset("rtl"):
|
|
118
|
+
self.add_file(lib_path / "lambda" / "la_ioinput.v")
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class FakeIO7Lambdalib_la_iocut(LambalibTechLibrary, _LambdaPath):
|
|
122
|
+
def __init__(self):
|
|
123
|
+
super().__init__("la_iocut", [FakeIO7Library])
|
|
124
|
+
self.set_name("fakeio7_la_iocut")
|
|
125
|
+
|
|
126
|
+
# version
|
|
127
|
+
self.package.set_version("v1")
|
|
128
|
+
|
|
129
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
130
|
+
|
|
131
|
+
with self.active_dataroot("lambdapdk"):
|
|
132
|
+
with self.active_fileset("rtl"):
|
|
133
|
+
self.add_file(lib_path / "lambda" / "la_iocut.v")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class FakeIO7Lambdalib_la_iovss(LambalibTechLibrary, _LambdaPath):
|
|
137
|
+
def __init__(self):
|
|
138
|
+
super().__init__("la_iovss", [FakeIO7Library])
|
|
139
|
+
self.set_name("fakeio7_la_iovss")
|
|
140
|
+
|
|
141
|
+
# version
|
|
142
|
+
self.package.set_version("v1")
|
|
143
|
+
|
|
144
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
145
|
+
|
|
146
|
+
with self.active_dataroot("lambdapdk"):
|
|
147
|
+
with self.active_fileset("rtl"):
|
|
148
|
+
self.add_file(lib_path / "lambda" / "la_iovss.v")
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
class FakeIO7Lambdalib_la_iovddio(LambalibTechLibrary, _LambdaPath):
|
|
152
|
+
def __init__(self):
|
|
153
|
+
super().__init__("la_iovddio", [FakeIO7Library])
|
|
154
|
+
self.set_name("fakeio7_la_iovddio")
|
|
155
|
+
|
|
156
|
+
# version
|
|
157
|
+
self.package.set_version("v1")
|
|
158
|
+
|
|
159
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
160
|
+
|
|
161
|
+
with self.active_dataroot("lambdapdk"):
|
|
162
|
+
with self.active_fileset("rtl"):
|
|
163
|
+
self.add_file(lib_path / "lambda" / "la_iovddio.v")
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class FakeIO7Lambdalib_la_iovssio(LambalibTechLibrary, _LambdaPath):
|
|
167
|
+
def __init__(self):
|
|
168
|
+
super().__init__("la_iovssio", [FakeIO7Library])
|
|
169
|
+
self.set_name("fakeio7_la_iovssio")
|
|
170
|
+
|
|
171
|
+
# version
|
|
172
|
+
self.package.set_version("v1")
|
|
173
|
+
|
|
174
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
175
|
+
|
|
176
|
+
with self.active_dataroot("lambdapdk"):
|
|
177
|
+
with self.active_fileset("rtl"):
|
|
178
|
+
self.add_file(lib_path / "lambda" / "la_iovssio.v")
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class FakeIO7Lambdalib_la_iovdda(LambalibTechLibrary, _LambdaPath):
|
|
182
|
+
def __init__(self):
|
|
183
|
+
super().__init__("la_iovdda", [FakeIO7Library])
|
|
184
|
+
self.set_name("fakeio7_la_iovdda")
|
|
185
|
+
|
|
186
|
+
# version
|
|
187
|
+
self.package.set_version("v1")
|
|
188
|
+
|
|
189
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
190
|
+
|
|
191
|
+
with self.active_dataroot("lambdapdk"):
|
|
192
|
+
with self.active_fileset("rtl"):
|
|
193
|
+
self.add_file(lib_path / "lambda" / "la_iovdda.v")
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class FakeIO7Lambdalib_la_iovssa(LambalibTechLibrary, _LambdaPath):
|
|
197
|
+
def __init__(self):
|
|
198
|
+
super().__init__("la_iovssa", [FakeIO7Library])
|
|
199
|
+
self.set_name("fakeio7_la_iovssa")
|
|
200
|
+
|
|
201
|
+
# version
|
|
202
|
+
self.package.set_version("v1")
|
|
203
|
+
|
|
204
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
205
|
+
|
|
206
|
+
with self.active_dataroot("lambdapdk"):
|
|
207
|
+
with self.active_fileset("rtl"):
|
|
208
|
+
self.add_file(lib_path / "lambda" / "la_iovssa.v")
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
class FakeIO7Lambdalib_la_ioclamp(LambalibTechLibrary, _LambdaPath):
|
|
212
|
+
def __init__(self):
|
|
213
|
+
super().__init__("la_ioclamp", [FakeIO7Library])
|
|
214
|
+
self.set_name("fakeio7_la_ioclamp")
|
|
215
|
+
|
|
216
|
+
# version
|
|
217
|
+
self.package.set_version("v1")
|
|
218
|
+
|
|
219
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
220
|
+
|
|
221
|
+
with self.active_dataroot("lambdapdk"):
|
|
222
|
+
with self.active_fileset("rtl"):
|
|
223
|
+
self.add_file(lib_path / "lambda" / "la_ioclamp.v")
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
class FakeIO7Lambdalib_la_iorxdiff(LambalibTechLibrary, _LambdaPath):
|
|
227
|
+
def __init__(self):
|
|
228
|
+
super().__init__("la_iorxdiff", [FakeIO7Library])
|
|
229
|
+
self.set_name("fakeio7_la_iorxdiff")
|
|
230
|
+
|
|
231
|
+
# version
|
|
232
|
+
self.package.set_version("v1")
|
|
233
|
+
|
|
234
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
11
235
|
|
|
12
|
-
|
|
13
|
-
|
|
236
|
+
with self.active_dataroot("lambdapdk"):
|
|
237
|
+
with self.active_fileset("rtl"):
|
|
238
|
+
self.add_file(lib_path / "lambda" / "la_iorxdiff.v")
|
|
14
239
|
|
|
15
|
-
# pdk
|
|
16
|
-
lib.set('option', 'pdk', 'asap7')
|
|
17
|
-
stackup = '10M'
|
|
18
240
|
|
|
19
|
-
|
|
241
|
+
class FakeIO7Lambdalib_la_iobidir(LambalibTechLibrary, _LambdaPath):
|
|
242
|
+
def __init__(self):
|
|
243
|
+
super().__init__("la_iobidir", [FakeIO7Library])
|
|
244
|
+
self.set_name("fakeio7_la_iobidir")
|
|
20
245
|
|
|
21
|
-
|
|
246
|
+
# version
|
|
247
|
+
self.package.set_version("v1")
|
|
22
248
|
|
|
23
|
-
|
|
24
|
-
register_data_source(lambda_lib)
|
|
25
|
-
lambda_lib.add('option', 'ydir', os.path.join(libdir, 'lambda'))
|
|
26
|
-
lambda_lib.use(lib)
|
|
27
|
-
lambda_lib.set('asic', 'macrolib', lib.design)
|
|
249
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeio7")
|
|
28
250
|
|
|
29
|
-
|
|
251
|
+
with self.active_dataroot("lambdapdk"):
|
|
252
|
+
with self.active_fileset("rtl"):
|
|
253
|
+
self.add_file(lib_path / "lambda" / "la_iobidir.v")
|
|
30
254
|
|
|
31
255
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
256
|
+
class FakeIO7Lambdalib_IO(LambalibTechLibrary):
|
|
257
|
+
@classmethod
|
|
258
|
+
def alias(cls, project: ASIC):
|
|
259
|
+
FakeIO7Lambdalib_la_iovdd.alias(project)
|
|
260
|
+
FakeIO7Lambdalib_la_iopoc.alias(project)
|
|
261
|
+
FakeIO7Lambdalib_la_iocorner.alias(project)
|
|
262
|
+
FakeIO7Lambdalib_la_iotxdiff.alias(project)
|
|
263
|
+
FakeIO7Lambdalib_la_ioanalog.alias(project)
|
|
264
|
+
FakeIO7Lambdalib_la_ioinput.alias(project)
|
|
265
|
+
FakeIO7Lambdalib_la_iocut.alias(project)
|
|
266
|
+
FakeIO7Lambdalib_la_iovss.alias(project)
|
|
267
|
+
FakeIO7Lambdalib_la_iovddio.alias(project)
|
|
268
|
+
FakeIO7Lambdalib_la_iovssio.alias(project)
|
|
269
|
+
FakeIO7Lambdalib_la_iovdda.alias(project)
|
|
270
|
+
FakeIO7Lambdalib_la_iovssa.alias(project)
|
|
271
|
+
FakeIO7Lambdalib_la_ioclamp.alias(project)
|
|
272
|
+
FakeIO7Lambdalib_la_iorxdiff.alias(project)
|
|
273
|
+
FakeIO7Lambdalib_la_iobidir.alias(project)
|
lambdapdk/asap7/libs/fakekit7.py
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import siliconcompiler
|
|
3
|
-
from lambdapdk import register_data_source
|
|
1
|
+
from pathlib import Path
|
|
4
2
|
|
|
3
|
+
from lambdapdk import LambdaLibrary
|
|
4
|
+
from lambdapdk.asap7 import ASAP7PDK
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
class FakeKit7Library(LambdaLibrary):
|
|
7
8
|
'''
|
|
8
9
|
ASAP7 Fake Chip Collatoral library.
|
|
9
10
|
'''
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
register_data_source(lib)
|
|
14
|
-
|
|
15
|
-
# pdk
|
|
16
|
-
lib.set('option', 'pdk', 'asap7')
|
|
17
|
-
stackup = '10M'
|
|
18
|
-
|
|
19
|
-
lib.set('output', stackup, 'lef', os.path.join(libdir, 'lef/tsv.lef'))
|
|
11
|
+
def __init__(self):
|
|
12
|
+
super().__init__()
|
|
13
|
+
self.set_name("fakekit7")
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
self.add_asic_pdk(ASAP7PDK())
|
|
22
16
|
|
|
17
|
+
path_base = Path("lambdapdk", "asap7", "libs", "fakekit7")
|
|
23
18
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
with self.active_dataroot("lambdapdk"):
|
|
20
|
+
with self.active_fileset("models.physical"):
|
|
21
|
+
self.add_file(path_base / "lef" / "tsv.lef")
|
|
22
|
+
self.add_asic_aprfileset()
|
lambdapdk/asap7/libs/fakeram7.py
CHANGED
|
@@ -1,43 +1,243 @@
|
|
|
1
|
-
from
|
|
2
|
-
from lambdapdk import register_data_source
|
|
1
|
+
from pathlib import Path
|
|
3
2
|
|
|
3
|
+
from lambdalib import LambalibTechLibrary
|
|
4
|
+
from lambdapdk import LambdaLibrary, _LambdaPath
|
|
5
|
+
from lambdapdk.asap7 import ASAP7PDK
|
|
4
6
|
|
|
5
|
-
def setup():
|
|
6
|
-
libs = []
|
|
7
|
-
stackup = '10M'
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
'4096x32', '4096x64',
|
|
14
|
-
'8192x32', '8192x64'):
|
|
15
|
-
for ramtype in ('dp', 'sp'):
|
|
16
|
-
mem_name = f'fakeram7_{ramtype}_{config}'
|
|
17
|
-
lib = Library(mem_name, package='lambdapdk')
|
|
18
|
-
register_data_source(lib)
|
|
19
|
-
path_base = 'lambdapdk/asap7/libs/fakeram7'
|
|
20
|
-
lib.add('output', stackup, 'lef', f'{path_base}/lef/{mem_name}.lef')
|
|
8
|
+
class _FakeRAM7Library(LambdaLibrary):
|
|
9
|
+
def __init__(self, config):
|
|
10
|
+
super().__init__()
|
|
11
|
+
self.set_name(f"fakeram7_{config}")
|
|
21
12
|
|
|
22
|
-
|
|
23
|
-
lib.add('output', corner, 'nldm', f'{path_base}/nldm/{mem_name}.lib')
|
|
13
|
+
self.add_asic_pdk(ASAP7PDK())
|
|
24
14
|
|
|
25
|
-
|
|
26
|
-
f'{path_base}/apr/openroad/pdngen.tcl')
|
|
27
|
-
lib.set('option', 'file', 'openroad_global_connect',
|
|
28
|
-
f'{path_base}/apr/openroad/global_connect.tcl')
|
|
15
|
+
path_base = Path("lambdapdk", "asap7", "libs", "fakeram7")
|
|
29
16
|
|
|
30
|
-
|
|
17
|
+
with self.active_dataroot("lambdapdk"):
|
|
18
|
+
with self.active_fileset("models.physical"):
|
|
19
|
+
self.add_file(path_base / "lef" / f"{self.name}.lef")
|
|
20
|
+
self.add_asic_aprfileset()
|
|
31
21
|
|
|
32
|
-
|
|
22
|
+
with self.active_fileset("models.timing.nldm"):
|
|
23
|
+
self.add_file(path_base / "nldm" / f"{self.name}.lib")
|
|
24
|
+
self.add_asic_libcornerfileset("generic", "nldm")
|
|
33
25
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
with self.active_fileset("openroad.powergrid"):
|
|
27
|
+
self.add_file(path_base / "apr" / "openroad" / "pdngen.tcl")
|
|
28
|
+
self.add_openroad_powergridfileset()
|
|
29
|
+
with self.active_fileset("openroad.globalconnect"):
|
|
30
|
+
self.add_file(path_base / "apr" / "openroad" / "global_connect.tcl")
|
|
31
|
+
self.add_openroad_globalconnectfileset()
|
|
40
32
|
|
|
41
|
-
|
|
33
|
+
self.add_klayout_allowmissingcell(self.name)
|
|
42
34
|
|
|
43
|
-
|
|
35
|
+
|
|
36
|
+
class FakeRAM7_dp_64x32(_FakeRAM7Library):
|
|
37
|
+
def __init__(self):
|
|
38
|
+
super().__init__("dp_64x32")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class FakeRAM7_sp_64x32(_FakeRAM7Library):
|
|
42
|
+
def __init__(self):
|
|
43
|
+
super().__init__("sp_64x32")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class FakeRAM7_dp_128x32(_FakeRAM7Library):
|
|
47
|
+
def __init__(self):
|
|
48
|
+
super().__init__("dp_128x32")
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class FakeRAM7_sp_128x32(_FakeRAM7Library):
|
|
52
|
+
def __init__(self):
|
|
53
|
+
super().__init__("sp_128x32")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class FakeRAM7_dp_256x32(_FakeRAM7Library):
|
|
57
|
+
def __init__(self):
|
|
58
|
+
super().__init__("dp_256x32")
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class FakeRAM7_sp_256x32(_FakeRAM7Library):
|
|
62
|
+
def __init__(self):
|
|
63
|
+
super().__init__("sp_256x32")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class FakeRAM7_dp_256x64(_FakeRAM7Library):
|
|
67
|
+
def __init__(self):
|
|
68
|
+
super().__init__("dp_256x64")
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class FakeRAM7_sp_256x64(_FakeRAM7Library):
|
|
72
|
+
def __init__(self):
|
|
73
|
+
super().__init__("sp_256x64")
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class FakeRAM7_dp_512x32(_FakeRAM7Library):
|
|
77
|
+
def __init__(self):
|
|
78
|
+
super().__init__("dp_512x32")
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class FakeRAM7_sp_512x32(_FakeRAM7Library):
|
|
82
|
+
def __init__(self):
|
|
83
|
+
super().__init__("sp_512x32")
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class FakeRAM7_dp_512x64(_FakeRAM7Library):
|
|
87
|
+
def __init__(self):
|
|
88
|
+
super().__init__("dp_512x64")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class FakeRAM7_sp_512x64(_FakeRAM7Library):
|
|
92
|
+
def __init__(self):
|
|
93
|
+
super().__init__("sp_512x64")
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class FakeRAM7_dp_512x128(_FakeRAM7Library):
|
|
97
|
+
def __init__(self):
|
|
98
|
+
super().__init__("dp_512x128")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class FakeRAM7_sp_512x128(_FakeRAM7Library):
|
|
102
|
+
def __init__(self):
|
|
103
|
+
super().__init__("sp_512x128")
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class FakeRAM7_dp_1024x32(_FakeRAM7Library):
|
|
107
|
+
def __init__(self):
|
|
108
|
+
super().__init__("dp_1024x32")
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class FakeRAM7_sp_1024x32(_FakeRAM7Library):
|
|
112
|
+
def __init__(self):
|
|
113
|
+
super().__init__("sp_1024x32")
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class FakeRAM7_dp_1024x64(_FakeRAM7Library):
|
|
117
|
+
def __init__(self):
|
|
118
|
+
super().__init__("dp_1024x64")
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class FakeRAM7_sp_1024x64(_FakeRAM7Library):
|
|
122
|
+
def __init__(self):
|
|
123
|
+
super().__init__("sp_1024x64")
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class FakeRAM7_dp_2048x32(_FakeRAM7Library):
|
|
127
|
+
def __init__(self):
|
|
128
|
+
super().__init__("dp_2048x32")
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class FakeRAM7_sp_2048x32(_FakeRAM7Library):
|
|
132
|
+
def __init__(self):
|
|
133
|
+
super().__init__("sp_2048x32")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class FakeRAM7_dp_2048x64(_FakeRAM7Library):
|
|
137
|
+
def __init__(self):
|
|
138
|
+
super().__init__("dp_2048x64")
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class FakeRAM7_sp_2048x64(_FakeRAM7Library):
|
|
142
|
+
def __init__(self):
|
|
143
|
+
super().__init__("sp_2048x64")
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
class FakeRAM7_dp_4096x32(_FakeRAM7Library):
|
|
147
|
+
def __init__(self):
|
|
148
|
+
super().__init__("dp_4096x32")
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
class FakeRAM7_sp_4096x32(_FakeRAM7Library):
|
|
152
|
+
def __init__(self):
|
|
153
|
+
super().__init__("sp_4096x32")
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class FakeRAM7_dp_4096x64(_FakeRAM7Library):
|
|
157
|
+
def __init__(self):
|
|
158
|
+
super().__init__("dp_4096x64")
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
class FakeRAM7_sp_4096x64(_FakeRAM7Library):
|
|
162
|
+
def __init__(self):
|
|
163
|
+
super().__init__("sp_4096x64")
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class FakeRAM7_dp_8192x32(_FakeRAM7Library):
|
|
167
|
+
def __init__(self):
|
|
168
|
+
super().__init__("dp_8192x32")
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class FakeRAM7_sp_8192x32(_FakeRAM7Library):
|
|
172
|
+
def __init__(self):
|
|
173
|
+
super().__init__("sp_8192x32")
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
class FakeRAM7_dp_8192x64(_FakeRAM7Library):
|
|
177
|
+
def __init__(self):
|
|
178
|
+
super().__init__("dp_8192x64")
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class FakeRAM7_sp_8192x64(_FakeRAM7Library):
|
|
182
|
+
def __init__(self):
|
|
183
|
+
super().__init__("sp_8192x64")
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
class FakeRAM7Lambdalib_SinglePort(LambalibTechLibrary, _LambdaPath):
|
|
187
|
+
def __init__(self):
|
|
188
|
+
super().__init__("la_spram", [
|
|
189
|
+
FakeRAM7_sp_64x32,
|
|
190
|
+
FakeRAM7_sp_128x32,
|
|
191
|
+
FakeRAM7_sp_256x32,
|
|
192
|
+
FakeRAM7_sp_256x64,
|
|
193
|
+
FakeRAM7_sp_512x32,
|
|
194
|
+
FakeRAM7_sp_512x64,
|
|
195
|
+
FakeRAM7_sp_512x128,
|
|
196
|
+
FakeRAM7_sp_1024x32,
|
|
197
|
+
FakeRAM7_sp_1024x64,
|
|
198
|
+
FakeRAM7_sp_2048x32,
|
|
199
|
+
FakeRAM7_sp_2048x64,
|
|
200
|
+
FakeRAM7_sp_4096x32,
|
|
201
|
+
FakeRAM7_sp_4096x64,
|
|
202
|
+
FakeRAM7_sp_8192x32,
|
|
203
|
+
FakeRAM7_sp_8192x64])
|
|
204
|
+
self.set_name("fakeram7_la_spram")
|
|
205
|
+
|
|
206
|
+
# version
|
|
207
|
+
self.package.set_version("v1")
|
|
208
|
+
|
|
209
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeram7")
|
|
210
|
+
|
|
211
|
+
with self.active_dataroot("lambdapdk"):
|
|
212
|
+
with self.active_fileset("rtl"):
|
|
213
|
+
self.add_file(lib_path / "lambda" / "la_spram.v")
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
class FakeRAM7Lambdalib_DoublePort(LambalibTechLibrary, _LambdaPath):
|
|
217
|
+
def __init__(self):
|
|
218
|
+
super().__init__("la_dpram", [
|
|
219
|
+
FakeRAM7_dp_64x32,
|
|
220
|
+
FakeRAM7_dp_128x32,
|
|
221
|
+
FakeRAM7_dp_256x32,
|
|
222
|
+
FakeRAM7_dp_256x64,
|
|
223
|
+
FakeRAM7_dp_512x32,
|
|
224
|
+
FakeRAM7_dp_512x64,
|
|
225
|
+
FakeRAM7_dp_512x128,
|
|
226
|
+
FakeRAM7_dp_1024x32,
|
|
227
|
+
FakeRAM7_dp_1024x64,
|
|
228
|
+
FakeRAM7_dp_2048x32,
|
|
229
|
+
FakeRAM7_dp_2048x64,
|
|
230
|
+
FakeRAM7_dp_4096x32,
|
|
231
|
+
FakeRAM7_dp_4096x64,
|
|
232
|
+
FakeRAM7_dp_8192x32,
|
|
233
|
+
FakeRAM7_dp_8192x64])
|
|
234
|
+
self.set_name("fakeram7_la_dpram")
|
|
235
|
+
|
|
236
|
+
# version
|
|
237
|
+
self.package.set_version("v1")
|
|
238
|
+
|
|
239
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakeram7")
|
|
240
|
+
|
|
241
|
+
with self.active_dataroot("lambdapdk"):
|
|
242
|
+
with self.active_fileset("rtl"):
|
|
243
|
+
self.add_file(lib_path / "lambda" / "la_dpram.v")
|