lambdapdk 0.1.55__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,35 +1,273 @@
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.asap7 import ASAP7PDK
5
7
 
6
- def setup():
8
+
9
+ class FakeIO7Library(LambdaLibrary):
7
10
  '''
8
11
  ASAP7 Fake I/O library.
9
12
  '''
10
- libdir = "lambdapdk/asap7/libs/fakeio7/"
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
- lib = siliconcompiler.Library('asap7_fakeio7', package='lambdapdk')
13
- register_data_source(lib)
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
- lib.set('output', stackup, 'lef', os.path.join(libdir, 'lef/fakeio7.lef'))
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
- lib.set('output', 'blackbox', 'verilog', os.path.join(libdir, 'blackbox', 'model.v'))
246
+ # version
247
+ self.package.set_version("v1")
22
248
 
23
- lambda_lib = siliconcompiler.Library('lambdalib_iolib_asap7', package='lambdapdk')
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
- return [lib, lambda_lib]
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
- if __name__ == "__main__":
34
- for lib in setup(siliconcompiler.Chip('<lib>')):
35
- lib.write_manifest(f'{lib.top()}.json')
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)
@@ -1,27 +1,22 @@
1
- import os
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
- def setup():
6
+
7
+ class FakeKit7Library(LambdaLibrary):
7
8
  '''
8
9
  ASAP7 Fake Chip Collatoral library.
9
10
  '''
10
- libdir = "lambdapdk/asap7/libs/fakekit7/"
11
-
12
- lib = siliconcompiler.Library('asap7_fakekit7', package='lambdapdk')
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
- return lib
15
+ self.add_asic_pdk(ASAP7PDK())
22
16
 
17
+ path_base = Path("lambdapdk", "asap7", "libs", "fakekit7")
23
18
 
24
- #########################
25
- if __name__ == "__main__":
26
- lib = setup(siliconcompiler.Chip('<lib>'))
27
- lib.write_manifest(f'{lib.top()}.json')
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()
@@ -1,43 +1,243 @@
1
- from siliconcompiler import Library
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
- for config in ('64x32', '128x32', '256x32', '256x64',
10
- '512x32', '512x64', '512x128',
11
- '1024x32', '1024x64',
12
- '2048x32', '2048x64',
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
- for corner in ('slow', 'fast', 'typical'):
23
- lib.add('output', corner, 'nldm', f'{path_base}/nldm/{mem_name}.lib')
13
+ self.add_asic_pdk(ASAP7PDK())
24
14
 
25
- lib.set('option', 'file', 'openroad_pdngen',
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
- lib.set('option', 'var', 'klayout_allow_missing_cell', mem_name)
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
- libs.append(lib)
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
- lambda_lib = Library('lambdalib_fakeram7', package='lambdapdk')
35
- register_data_source(lambda_lib)
36
- lambda_lib.add('option', 'ydir', 'lambdapdk/asap7/libs/fakeram7/lambda')
37
- for lib in libs:
38
- lambda_lib.use(lib)
39
- lambda_lib.add('asic', 'macrolib', lib.design)
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
- libs.append(lambda_lib)
33
+ self.add_klayout_allowmissingcell(self.name)
42
34
 
43
- return libs
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")