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 CHANGED
@@ -1,7 +1,7 @@
1
1
  import siliconcompiler.package as sc_package
2
2
 
3
3
 
4
- __version__ = "0.1.39"
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 get_pdks():
18
+ def setup_libs():
19
19
  '''
20
- Returns a list of pdk names in lambdapdk
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.design)
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': 0.506500,
98
- 'L': 0.519810,
99
- 'SL': 0.533411
94
+ 'R': "2.308fF",
95
+ 'L': "2.383fF",
96
+ 'SL': "2.464fF"
100
97
  }
101
- lib.set('option', 'var', 'yosys_abc_constraint_load', f"{4 * cap_table[suffix]}fF")
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.898fF") # BUF_X1 = 0.974659 x 4
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")
@@ -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 = { # __buf_1
116
- '7t': 2.521,
117
- '9t': 3.673
116
+ cap_table = { # __buf_4
117
+ '7t': "0.038pF",
118
+ '9t': "0.056pF"
118
119
  }
119
- lib.set('option', 'var', 'yosys_abc_constraint_load', f"{4 * cap_table[libtype]}fF")
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', "6.0fF") # BUF_X1 = 0.974659 x 4
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': 1.872,
168
- 'hdll': 1.911
168
+ 'hd': "0.011pF",
169
+ 'hdll': "0.011pF"
169
170
  }
170
- lib.set('option', 'var', 'yosys_abc_constraint_load', f"{4 * cap_table[libtype]}fF")
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lambdapdk
3
- Version: 0.1.39
3
+ Version: 0.1.41
4
4
  Summary: Library of open source Process Design Kits
5
5
  Author: Zero ASIC
6
6
  License: Apache License
@@ -1,27 +1,27 @@
1
- lambdapdk/__init__.py,sha256=Ub57VU23usHGYzywXktgCbnaRoi8-HQUBwdyfDlkzfI,1771
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=YCj1yCYLylF72EMJx2zY9KX1ZIkGsHuMDsCGrq9ud4E,6030
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=vh_OsCzTKInpAVt1oC6QOyPjEuxFzYRGY3Ngopffh-o,4638
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=g8s6xpH8Glj6m7aIubX2EmyG2eLXbVsZOSWKYhaujQ8,6604
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=un7-NQBTYCMWJOjLMgw1BcBdy1kjEX_kjoRY1QpDmXI,5134
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=GSgYjyPQPFzEKByP2P9VJVOIr1hqMe_glow6TSszIx4,9399
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.39.dist-info/LICENSE,sha256=2TIhku7H905BsYloYoCwat2JsdkGYc_qsnvU-p7P-IQ,10766
24
- lambdapdk-0.1.39.dist-info/METADATA,sha256=d2bajU8KNRguQHB5k40TTeM8APUAc9igQeLVHx25F1o,13947
25
- lambdapdk-0.1.39.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
26
- lambdapdk-0.1.39.dist-info/top_level.txt,sha256=5wk8psZwCcQgSjOlWTihBeDkSIViGn8I3j5yALbs59s,10
27
- lambdapdk-0.1.39.dist-info/RECORD,,
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,,