Skip to content

Commit 0c876d6

Browse files
authored
Merge pull request #25 from siliconcompiler/lambdalib-softlib
add lambdalib soft library to all pdk libs.
2 parents b105a89 + 44c4694 commit 0c876d6

File tree

12 files changed

+101
-32
lines changed

12 files changed

+101
-32
lines changed

lambdapdk/asap7/libs/asap7sc7p5t.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ def _setup_lib(chip, libname, suffix):
114114
lib.set('option', 'file', 'openroad_global_connect',
115115
libdir + '/apr/openroad/global_connect.tcl')
116116

117-
return lib
117+
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk')
118+
register_data_source(lambda_lib)
119+
lambda_lib.add('option', 'ydir', libdir + '/lambda')
120+
121+
return [lib, lambda_lib]
118122

119123

120124
def setup(chip):
@@ -129,7 +133,7 @@ def setup(chip):
129133

130134
libs = []
131135
for libname, suffix in all_libs.items():
132-
libs.append(_setup_lib(chip, libname, suffix))
136+
libs.extend(_setup_lib(chip, libname, suffix))
133137

134138
return libs
135139

lambdapdk/asap7/libs/fakeram7.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@ def setup(chip):
2020

2121
lib.set('option', 'var', 'klayout_allow_missing_cell', mem_name)
2222

23-
lib.set('option', 'ydir', f'{path_base}/lambda')
24-
2523
libs.append(lib)
2624

25+
lambda_lib = Library(chip, 'lambdalib_fakeram7', package='lambdapdk')
26+
register_data_source(lambda_lib)
27+
lambda_lib.add('option', 'ydir', 'lambdapdk/asap7/libs/fakeram7/lambda')
28+
29+
libs.append(lambda_lib)
30+
2731
return libs

lambdapdk/freepdk45/libs/fakeram45.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@ def setup(chip):
1919

2020
lib.set('option', 'var', 'klayout_allow_missing_cell', mem_name)
2121

22-
lib.set('option', 'ydir', f'{path_base}/lambda')
23-
2422
libs.append(lib)
2523

24+
lambda_lib = Library(chip, 'lambdalib_fakeram45', package='lambdapdk')
25+
register_data_source(lambda_lib)
26+
lambda_lib.add('option', 'ydir', 'lambdapdk/freepdk45/libs/fakeram45/lambda')
27+
28+
libs.append(lambda_lib)
29+
2630
return libs

lambdapdk/freepdk45/libs/nangate45.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ def setup(chip):
9898
lib.set('option', 'var', f'{tool}_tielow_cell', "LOGIC0_X1")
9999
lib.set('option', 'var', f'{tool}_tielow_port', "Z")
100100

101-
return lib
101+
lambda_lib = siliconcompiler.Library(chip, 'lambdalib_nangate45', package='lambdapdk')
102+
register_data_source(lambda_lib)
103+
lambda_lib.add('option', 'ydir', 'lambdapdk/freepdk45/libs/nangate45/lambda')
104+
105+
return [lib, lambda_lib]
102106

103107

104108
#########################

lambdapdk/gf180/libs/gf180io.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,16 @@ def setup(chip):
5252
'gf180mcu_fd_io__fill5',
5353
'gf180mcu_fd_io__fill10',
5454
'gf180mcu_fd_io__fillnc'])
55-
56-
lib.set('option', 'ydir', os.path.join(libdir, 'lambda'))
57-
lib.set('option', 'idir', os.path.join(libdir, 'lambda'))
58-
5955
libs.append(lib)
6056

61-
return libs
57+
lambda_lib = siliconcompiler.Library(chip, 'lambdalib_gf180mcu_fd_io', package='lambdapdk')
58+
register_data_source(lambda_lib)
59+
lambda_lib.add('option', 'ydir', 'lambdapdk/gf180/libs/gf180mcu_fd_io/lambda')
60+
61+
return [*libs, lambda_lib]
6262

6363

6464
#########################
6565
if __name__ == "__main__":
66-
lib = setup(siliconcompiler.Chip('<lib>'))
67-
lib.write_manifest(f'{lib.top()}.json')
68-
lib.check_filepaths()
66+
for lib in setup(siliconcompiler.Chip('<lib>')):
67+
lib.write_manifest(f'{lib.top()}.json')

lambdapdk/gf180/libs/gf180mcu.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,12 @@ def setup(chip):
129129

130130
libs.append(lib)
131131

132+
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk')
133+
register_data_source(lambda_lib)
134+
lambda_lib.add('option', 'ydir', libdir + '/lambda')
135+
136+
libs.append(lambda_lib)
137+
132138
return libs
133139

134140

lambdapdk/gf180/libs/gf180sram.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from siliconcompiler import Library
1+
from siliconcompiler import Chip, Library
22
from lambdapdk import register_data_source
33

44

@@ -40,8 +40,18 @@ def setup(chip):
4040

4141
lib.set('option', 'file', 'openroad_pdngen', f'{path_base}/pdngen.tcl')
4242

43-
lib.set('option', 'ydir', f'{path_base}/lambda')
44-
4543
libs.append(lib)
4644

45+
lambda_lib = Library(chip, 'lambdalib_gf180sram', package='lambdapdk')
46+
register_data_source(lambda_lib)
47+
lambda_lib.add('option', 'ydir', 'lambdapdk/gf180/libs/gf180mcu_fd_ip_sram/lambda')
48+
49+
libs.append(lambda_lib)
50+
4751
return libs
52+
53+
54+
#########################
55+
if __name__ == "__main__":
56+
for lib in setup(Chip('<lib>')):
57+
lib.write_manifest(f'{lib.top()}.json')

lambdapdk/sky130/libs/sky130hd.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,14 @@ def setup(chip):
145145
lib.set('option', 'var', f'{tool}_tielow_cell', "sky130_fd_sc_hd__conb_1")
146146
lib.set('option', 'var', f'{tool}_tielow_port', "LO")
147147

148-
return lib
148+
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk')
149+
register_data_source(lambda_lib)
150+
lambda_lib.add('option', 'ydir', 'lambdapdk/sky130/libs/sky130hd/lambda')
151+
152+
return [lib, lambda_lib]
149153

150154

151155
#########################
152156
if __name__ == "__main__":
153-
lib = setup(siliconcompiler.Chip('<lib>'))
154-
lib.write_manifest(f'{lib.top()}.json')
157+
for lib in setup(siliconcompiler.Chip('<lib>')):
158+
lib.write_manifest(f'{lib.top()}.json')

lambdapdk/sky130/libs/sky130io.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@ def setup(chip):
3737

3838
lib.set('output', 'blackbox', 'verilog', os.path.join(libdir, 'bb', 'sky130_io.blackbox.v'))
3939

40-
return lib
40+
lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk')
41+
register_data_source(lambda_lib)
42+
lambda_lib.add('option', 'ydir', 'lambdapdk/sky130/libs/sky130io/lambda')
43+
44+
return [lib, lambda_lib]
4145

4246

4347
#########################
4448
if __name__ == "__main__":
45-
lib = setup(siliconcompiler.Chip('<lib>'))
46-
lib.write_manifest(f'{lib.top()}.json')
49+
for lib in setup(siliconcompiler.Chip('<lib>')):
50+
lib.write_manifest(f'{lib.top()}.json')

lambdapdk/sky130/libs/sky130sram.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from siliconcompiler import Library
1+
from siliconcompiler import Chip, Library
22
from lambdapdk import register_data_source
33

44

@@ -22,8 +22,18 @@ def setup(chip):
2222

2323
lib.set('option', 'file', 'openroad_pdngen', f'{path_base}/pdngen.tcl')
2424

25-
lib.set('option', 'ydir', f'{path_base}/lambda')
26-
2725
libs.append(lib)
2826

27+
lambda_lib = Library(chip, 'lambdalib_gf130sram', package='lambdapdk')
28+
register_data_source(lambda_lib)
29+
lambda_lib.add('option', 'ydir', 'lambdapdk/sky130/libs/sky130sram/lambda')
30+
31+
libs.append(lambda_lib)
32+
2933
return libs
34+
35+
36+
#########################
37+
if __name__ == "__main__":
38+
for lib in setup(Chip('<lib>')):
39+
lib.write_manifest(f'{lib.top()}.json')

0 commit comments

Comments
 (0)