lambdapdk 0.1.39__py3-none-any.whl → 0.1.41__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 +57 -22
- lambdapdk/asap7/libs/asap7sc7p5t.py +4 -7
- lambdapdk/freepdk45/libs/nangate45.py +2 -1
- lambdapdk/gf180/libs/gf180mcu.py +5 -4
- lambdapdk/ihp130/libs/sg13g2_stdcell.py +4 -5
- lambdapdk/sky130/libs/sky130sc.py +4 -3
- {lambdapdk-0.1.39.dist-info → lambdapdk-0.1.41.dist-info}/METADATA +1 -1
- {lambdapdk-0.1.39.dist-info → lambdapdk-0.1.41.dist-info}/RECORD +11 -11
- {lambdapdk-0.1.39.dist-info → lambdapdk-0.1.41.dist-info}/LICENSE +0 -0
- {lambdapdk-0.1.39.dist-info → lambdapdk-0.1.41.dist-info}/WHEEL +0 -0
- {lambdapdk-0.1.39.dist-info → lambdapdk-0.1.41.dist-info}/top_level.txt +0 -0
lambdapdk/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import siliconcompiler.package as sc_package
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
__version__ = "0.1.
|
|
4
|
+
__version__ = "0.1.41"
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
def register_data_source(chip):
|
|
@@ -15,27 +15,9 @@ def register_data_source(chip):
|
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
def
|
|
18
|
+
def setup_libs():
|
|
19
19
|
'''
|
|
20
|
-
Returns a list of
|
|
21
|
-
'''
|
|
22
|
-
|
|
23
|
-
from lambdapdk import asap7, freepdk45, sky130, gf180, ihp130, interposer
|
|
24
|
-
|
|
25
|
-
all_pdks = []
|
|
26
|
-
for pdk_mod in [asap7, freepdk45, sky130, gf180, ihp130, interposer]:
|
|
27
|
-
pdks = pdk_mod.setup()
|
|
28
|
-
if not isinstance(pdks, (list, tuple)):
|
|
29
|
-
pdks = [pdks]
|
|
30
|
-
for pdk in pdks:
|
|
31
|
-
all_pdks.append(pdk.design)
|
|
32
|
-
|
|
33
|
-
return set(all_pdks)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def get_libs():
|
|
37
|
-
'''
|
|
38
|
-
Returns a list of libraries names in lambdapdk
|
|
20
|
+
Returns a list of libraries in lambdapdk
|
|
39
21
|
'''
|
|
40
22
|
|
|
41
23
|
from lambdapdk.asap7.libs import asap7sc7p5t, fakeram7, fakeio7
|
|
@@ -57,6 +39,59 @@ def get_libs():
|
|
|
57
39
|
if not isinstance(libs, (list, tuple)):
|
|
58
40
|
libs = [libs]
|
|
59
41
|
for lib in libs:
|
|
60
|
-
all_libs.append(lib
|
|
42
|
+
all_libs.append(lib)
|
|
43
|
+
|
|
44
|
+
return all_libs
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def setup_pdks():
|
|
48
|
+
'''
|
|
49
|
+
Returns a list of pdks in lambdapdk
|
|
50
|
+
'''
|
|
51
|
+
|
|
52
|
+
from lambdapdk import asap7, freepdk45, sky130, gf180, ihp130, interposer
|
|
53
|
+
|
|
54
|
+
all_pdks = []
|
|
55
|
+
for pdk_mod in [asap7, freepdk45, sky130, gf180, ihp130, interposer]:
|
|
56
|
+
pdks = pdk_mod.setup()
|
|
57
|
+
if not isinstance(pdks, (list, tuple)):
|
|
58
|
+
pdks = [pdks]
|
|
59
|
+
for pdk in pdks:
|
|
60
|
+
all_pdks.append(pdk)
|
|
61
|
+
|
|
62
|
+
return all_pdks
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def setup():
|
|
66
|
+
'''
|
|
67
|
+
Returns a list of all pdks and libraries in lambdapdk
|
|
68
|
+
'''
|
|
69
|
+
|
|
70
|
+
return [
|
|
71
|
+
*setup_pdks(),
|
|
72
|
+
*setup_libs()
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def get_pdks():
|
|
77
|
+
'''
|
|
78
|
+
Returns a list of pdk names in lambdapdk
|
|
79
|
+
'''
|
|
80
|
+
|
|
81
|
+
all_pdks = []
|
|
82
|
+
for pdk in setup_pdks():
|
|
83
|
+
all_pdks.append(pdk.design)
|
|
84
|
+
|
|
85
|
+
return set(all_pdks)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def get_libs():
|
|
89
|
+
'''
|
|
90
|
+
Returns a list of libraries names in lambdapdk
|
|
91
|
+
'''
|
|
92
|
+
|
|
93
|
+
all_libs = []
|
|
94
|
+
for lib in setup_libs():
|
|
95
|
+
all_libs.append(lib.design)
|
|
61
96
|
|
|
62
97
|
return set(all_libs)
|
|
@@ -46,9 +46,6 @@ def _setup_lib(libname, suffix):
|
|
|
46
46
|
# site name
|
|
47
47
|
lib.set('asic', 'site', libtype, 'asap7sc7p5t')
|
|
48
48
|
|
|
49
|
-
# clock buffers - remove once openroad driver supports it
|
|
50
|
-
lib.add('asic', 'cells', 'clkbuf', f"BUFx4_ASAP7_75t_{suffix}")
|
|
51
|
-
|
|
52
49
|
# tie cells
|
|
53
50
|
lib.add('asic', 'cells', 'tie', [f"TIEHIx1_ASAP7_75t_{suffix}",
|
|
54
51
|
f"TIELOx1_ASAP7_75t_{suffix}"])
|
|
@@ -94,11 +91,11 @@ def _setup_lib(libname, suffix):
|
|
|
94
91
|
lib.set('option', 'var', 'yosys_abc_clock_multiplier', "1") # convert from ps -> ps
|
|
95
92
|
|
|
96
93
|
cap_table = { # BUFx2_ASAP7_75t_
|
|
97
|
-
'R':
|
|
98
|
-
'L':
|
|
99
|
-
'SL':
|
|
94
|
+
'R': "2.308fF",
|
|
95
|
+
'L': "2.383fF",
|
|
96
|
+
'SL': "2.464fF"
|
|
100
97
|
}
|
|
101
|
-
lib.set('option', 'var', 'yosys_abc_constraint_load',
|
|
98
|
+
lib.set('option', 'var', 'yosys_abc_constraint_load', cap_table[suffix])
|
|
102
99
|
lib.set('option', 'var', 'yosys_driver_cell', f"BUFx2_ASAP7_75t_{suffix}")
|
|
103
100
|
lib.set('option', 'var', 'yosys_buffer_cell', f"BUFx2_ASAP7_75t_{suffix}")
|
|
104
101
|
lib.set('option', 'var', 'yosys_buffer_input', "A")
|
|
@@ -73,6 +73,7 @@ def setup():
|
|
|
73
73
|
# Techmap
|
|
74
74
|
lib.add('option', 'file', 'yosys_techmap', libdir + '/techmap/yosys/cells_latch.v')
|
|
75
75
|
lib.add('option', 'file', 'yosys_addermap', libdir + '/techmap/yosys/cells_adders.v')
|
|
76
|
+
lib.add('option', 'file', 'yosys_tbufmap', libdir + '/techmap/yosys/cells_tristatebuf.v')
|
|
76
77
|
|
|
77
78
|
# Defaults for OpenROAD tool variables
|
|
78
79
|
lib.set('option', 'var', 'openroad_place_density', '0.50')
|
|
@@ -87,7 +88,7 @@ def setup():
|
|
|
87
88
|
libdir + '/apr/openroad/global_connect.tcl')
|
|
88
89
|
|
|
89
90
|
lib.set('option', 'var', 'yosys_abc_clock_multiplier', "1000") # convert from ns -> ps
|
|
90
|
-
lib.set('option', 'var', 'yosys_abc_constraint_load', "3.
|
|
91
|
+
lib.set('option', 'var', 'yosys_abc_constraint_load', "3.899fF") # BUF_X1 = 0.974659 x 4
|
|
91
92
|
lib.set('option', 'var', 'yosys_driver_cell', "BUF_X4")
|
|
92
93
|
lib.set('option', 'var', 'yosys_buffer_cell', "BUF_X1")
|
|
93
94
|
lib.set('option', 'var', 'yosys_buffer_input', "A")
|
lambdapdk/gf180/libs/gf180mcu.py
CHANGED
|
@@ -99,6 +99,7 @@ def setup():
|
|
|
99
99
|
# Yosys techmap
|
|
100
100
|
lib.add('option', 'file', 'yosys_techmap', libdir + '/techmap/yosys/cells_latch.v')
|
|
101
101
|
lib.add('option', 'file', 'yosys_addermap', libdir + '/techmap/yosys/cells_adders.v')
|
|
102
|
+
lib.add('option', 'file', 'yosys_tbufmap', libdir + '/techmap/yosys/cells_tristatebuf.v')
|
|
102
103
|
|
|
103
104
|
# Openroad specific files
|
|
104
105
|
lib.set('option', 'file', 'openroad_pdngen',
|
|
@@ -112,11 +113,11 @@ def setup():
|
|
|
112
113
|
|
|
113
114
|
lib.set('option', 'var', 'yosys_abc_clock_multiplier', "1000") # convert from ns -> ps
|
|
114
115
|
|
|
115
|
-
cap_table = { #
|
|
116
|
-
'7t':
|
|
117
|
-
'9t':
|
|
116
|
+
cap_table = { # __buf_4
|
|
117
|
+
'7t': "0.038pF",
|
|
118
|
+
'9t': "0.056pF"
|
|
118
119
|
}
|
|
119
|
-
lib.set('option', 'var', 'yosys_abc_constraint_load',
|
|
120
|
+
lib.set('option', 'var', 'yosys_abc_constraint_load', cap_table[libtype])
|
|
120
121
|
lib.set('option', 'var', 'yosys_driver_cell', f"gf180mcu_fd_sc_mcu{libtype}5v0__buf_4")
|
|
121
122
|
lib.set('option', 'var', 'yosys_buffer_cell', f"gf180mcu_fd_sc_mcu{libtype}5v0__buf_4")
|
|
122
123
|
lib.set('option', 'var', 'yosys_buffer_input', "I")
|
|
@@ -56,10 +56,6 @@ def setup():
|
|
|
56
56
|
lib.add('output', 'rtl', 'verilog',
|
|
57
57
|
'ihp-sg13g2/libs.ref/sg13g2_stdcell/verilog/sg13g2_stdcell.v')
|
|
58
58
|
|
|
59
|
-
# clock buffers - remove once openroad driver supports it
|
|
60
|
-
lib.add('asic', 'cells', 'clkbuf', ["sg13g2_buf_2",
|
|
61
|
-
"sg13g2_buf_4"])
|
|
62
|
-
|
|
63
59
|
# tie cells
|
|
64
60
|
lib.add('asic', 'cells', 'tie', ["LOGIC1_X1",
|
|
65
61
|
"LOGIC0_X1"])
|
|
@@ -92,6 +88,9 @@ def setup():
|
|
|
92
88
|
lib.add('option', 'file', 'yosys_techmap',
|
|
93
89
|
libdir + '/techmap/yosys/cells_latch.v',
|
|
94
90
|
package='lambdapdk')
|
|
91
|
+
lib.add('option', 'file', 'yosys_tbufmap',
|
|
92
|
+
libdir + '/techmap/yosys/cells_tristatebuf.v',
|
|
93
|
+
package='lambdapdk')
|
|
95
94
|
|
|
96
95
|
# Defaults for OpenROAD tool variables
|
|
97
96
|
lib.set('option', 'var', 'openroad_place_density', '0.65')
|
|
@@ -110,7 +109,7 @@ def setup():
|
|
|
110
109
|
package='lambdapdk')
|
|
111
110
|
|
|
112
111
|
lib.set('option', 'var', 'yosys_abc_clock_multiplier', "1000") # convert from ns -> ps
|
|
113
|
-
lib.set('option', 'var', 'yosys_abc_constraint_load', "
|
|
112
|
+
lib.set('option', 'var', 'yosys_abc_constraint_load', "0.017pF")
|
|
114
113
|
lib.set('option', 'var', 'yosys_driver_cell', "sg13g2_buf_4")
|
|
115
114
|
lib.set('option', 'var', 'yosys_buffer_cell', "sg13g2_buf_4")
|
|
116
115
|
lib.set('option', 'var', 'yosys_buffer_input', "A")
|
|
@@ -150,6 +150,7 @@ def setup():
|
|
|
150
150
|
# Yosys techmap
|
|
151
151
|
# TODO: separate this out properly for the different libraries
|
|
152
152
|
lib.add('option', 'file', 'yosys_techmap', libdir + '/techmap/yosys/cells_latch.v')
|
|
153
|
+
lib.add('option', 'file', 'yosys_tbufmap', libdir + '/techmap/yosys/cells_tristatebuf.v')
|
|
153
154
|
if libtype == "hd":
|
|
154
155
|
lib.add('option', 'file', 'yosys_addermap', libdir + '/techmap/yosys/cells_adders.v')
|
|
155
156
|
|
|
@@ -164,10 +165,10 @@ def setup():
|
|
|
164
165
|
lib.set('option', 'var', 'yosys_abc_clock_multiplier', "1000") # convert from ns -> ps
|
|
165
166
|
|
|
166
167
|
cap_table = {
|
|
167
|
-
'hd':
|
|
168
|
-
'hdll':
|
|
168
|
+
'hd': "0.011pF",
|
|
169
|
+
'hdll': "0.011pF"
|
|
169
170
|
}
|
|
170
|
-
lib.set('option', 'var', 'yosys_abc_constraint_load',
|
|
171
|
+
lib.set('option', 'var', 'yosys_abc_constraint_load', cap_table[libtype])
|
|
171
172
|
|
|
172
173
|
lib.set('option', 'var', 'yosys_driver_cell', f"sky130_fd_sc_{libtype}__buf_4")
|
|
173
174
|
lib.set('option', 'var', 'yosys_buffer_cell', f"sky130_fd_sc_{libtype}__buf_4")
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
lambdapdk/__init__.py,sha256=
|
|
1
|
+
lambdapdk/__init__.py,sha256=xXWVORPUt2ZG46h2X8AtvHvxB7ebwXG4iONIAaLtqr8,2278
|
|
2
2
|
lambdapdk/asap7/__init__.py,sha256=RrRTx_dFEsHnTWCGwzNUVmY8-2lOAd2EcWs7w8KwRPI,4736
|
|
3
|
-
lambdapdk/asap7/libs/asap7sc7p5t.py,sha256=
|
|
3
|
+
lambdapdk/asap7/libs/asap7sc7p5t.py,sha256=9ce81ALE6zIKD7W0MWXApmbssuzfdJfHQnQ6SsjLKWw,5891
|
|
4
4
|
lambdapdk/asap7/libs/fakeio7.py,sha256=t4OQ7uljg4jh14bf3o4wsnI5gNkLEVpMs1drispc7LE,978
|
|
5
5
|
lambdapdk/asap7/libs/fakeram7.py,sha256=thOHy0XyV2-pakoxrttGL3qU9C2OeL1-MVtlrSiTMu8,1112
|
|
6
6
|
lambdapdk/freepdk45/__init__.py,sha256=5lbmMi3tGM1mJoM1wOGG0GhjKaFc2Qi3x-tRO8kKSDs,3673
|
|
7
7
|
lambdapdk/freepdk45/libs/fakeram45.py,sha256=CqX9YTFLQFlmGn4IZDjEI1OXv43mg3aWdbVfMrBKNSU,1091
|
|
8
|
-
lambdapdk/freepdk45/libs/nangate45.py,sha256=
|
|
8
|
+
lambdapdk/freepdk45/libs/nangate45.py,sha256=u3iuke0Z6XKyshBlOQ2GVqC0ut01lAP4qRSvUGuDG-E,4732
|
|
9
9
|
lambdapdk/gf180/__init__.py,sha256=fbJ4z0kXBftIHAsgyqJmbpZfpWf9PWuxXgoQoG3IhQ0,7963
|
|
10
10
|
lambdapdk/gf180/libs/gf180io.py,sha256=6WgsALOaKWYG6RfNFz6sg36zmfZZFl2HnsDWOWYy1UM,2751
|
|
11
|
-
lambdapdk/gf180/libs/gf180mcu.py,sha256=
|
|
11
|
+
lambdapdk/gf180/libs/gf180mcu.py,sha256=QFRxZfk2n9V_uAhSB8P-4isQi61CsaGp2tw9vAXlbIU,6699
|
|
12
12
|
lambdapdk/gf180/libs/gf180sram.py,sha256=uNtf4JOaT6wlD7D6hN5XwCoIOPmAXkVxSJXQuqNdY6k,2140
|
|
13
13
|
lambdapdk/ihp130/__init__.py,sha256=dSXwH5rYOrJc9C3FTe9bxCJw9VZaK0fnRBMWaWT9NY8,5500
|
|
14
14
|
lambdapdk/ihp130/libs/sg13g2_sram.py,sha256=oFg89-kKvuBBI9IsdGkuTsG9Q8i4gzImF66MXMXY4Fk,1885
|
|
15
|
-
lambdapdk/ihp130/libs/sg13g2_stdcell.py,sha256=
|
|
15
|
+
lambdapdk/ihp130/libs/sg13g2_stdcell.py,sha256=T7I_dEioXMJ9TCxx5RlAqMgFT4ucIIITzR2MREgJTl4,5074
|
|
16
16
|
lambdapdk/interposer/__init__.py,sha256=UEAxcCLo-0OheGNCOTLpwnF05HFAz3agStFBTdcgS58,4039
|
|
17
17
|
lambdapdk/interposer/_generator.py,sha256=Uf9i7gfjgntUpLmxsRmOfzfgh26iQ3nfZmrdIx59UtA,15016
|
|
18
18
|
lambdapdk/interposer/libs/bumps.py,sha256=-b3cNOUBKhzzxoWI1Y047g9Ev3a_mXBMLKO3BaHo1sI,771
|
|
19
19
|
lambdapdk/sky130/__init__.py,sha256=PXJEa-siz7HStlvDTCI794evU8qbHl472gHckSrZFWc,4124
|
|
20
20
|
lambdapdk/sky130/libs/sky130io.py,sha256=wFmN9RC98f6OFM5E5acCUgPe35tVTKciJzIcUBlmumo,2029
|
|
21
|
-
lambdapdk/sky130/libs/sky130sc.py,sha256=
|
|
21
|
+
lambdapdk/sky130/libs/sky130sc.py,sha256=HlUtdoy_WGO6Rnhyb2pn4-hNvsTvAw667TZGIDBqGiw,9494
|
|
22
22
|
lambdapdk/sky130/libs/sky130sram.py,sha256=ILjAjbgDdvfiWqmjmj8mmHvU7YiYGZVHGO7jmyajnaY,1489
|
|
23
|
-
lambdapdk-0.1.
|
|
24
|
-
lambdapdk-0.1.
|
|
25
|
-
lambdapdk-0.1.
|
|
26
|
-
lambdapdk-0.1.
|
|
27
|
-
lambdapdk-0.1.
|
|
23
|
+
lambdapdk-0.1.41.dist-info/LICENSE,sha256=2TIhku7H905BsYloYoCwat2JsdkGYc_qsnvU-p7P-IQ,10766
|
|
24
|
+
lambdapdk-0.1.41.dist-info/METADATA,sha256=awq3uxcV5-WG4TwAzrERAHtkQvzCrwCgitFXOHi2pc8,13947
|
|
25
|
+
lambdapdk-0.1.41.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
26
|
+
lambdapdk-0.1.41.dist-info/top_level.txt,sha256=5wk8psZwCcQgSjOlWTihBeDkSIViGn8I3j5yALbs59s,10
|
|
27
|
+
lambdapdk-0.1.41.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|