lambdapdk 0.1.53__tar.gz → 0.1.54__tar.gz

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.
Files changed (41) hide show
  1. {lambdapdk-0.1.53/lambdapdk.egg-info → lambdapdk-0.1.54}/PKG-INFO +2 -2
  2. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/__init__.py +5 -4
  3. lambdapdk-0.1.54/lambdapdk/asap7/libs/fakeram7.py +43 -0
  4. lambdapdk-0.1.54/lambdapdk/ihp130/libs/sg13g2_io.py +57 -0
  5. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/ihp130/libs/sg13g2_stdcell.py +1 -1
  6. {lambdapdk-0.1.53 → lambdapdk-0.1.54/lambdapdk.egg-info}/PKG-INFO +2 -2
  7. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk.egg-info/SOURCES.txt +1 -0
  8. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk.egg-info/requires.txt +1 -1
  9. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/pyproject.toml +1 -1
  10. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/tests/test_getters.py +2 -2
  11. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/tests/test_lambda.py +3 -2
  12. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/tests/test_paths.py +2 -2
  13. lambdapdk-0.1.53/lambdapdk/asap7/libs/fakeram7.py +0 -37
  14. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/LICENSE +0 -0
  15. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/MANIFEST.in +0 -0
  16. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/README.md +0 -0
  17. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/asap7/__init__.py +0 -0
  18. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/asap7/libs/asap7sc7p5t.py +0 -0
  19. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/asap7/libs/fakeio7.py +0 -0
  20. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/asap7/libs/fakekit7.py +0 -0
  21. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/freepdk45/__init__.py +0 -0
  22. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/freepdk45/libs/fakeram45.py +0 -0
  23. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/freepdk45/libs/nangate45.py +0 -0
  24. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/gf180/__init__.py +0 -0
  25. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/gf180/libs/gf180io.py +0 -0
  26. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/gf180/libs/gf180mcu.py +0 -0
  27. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/gf180/libs/gf180sram.py +0 -0
  28. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/ihp130/__init__.py +0 -0
  29. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/ihp130/libs/sg13g2_sram.py +0 -0
  30. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/interposer/__init__.py +0 -0
  31. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/interposer/_generator.py +0 -0
  32. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/interposer/libs/bumps.py +0 -0
  33. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/sky130/__init__.py +0 -0
  34. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/sky130/libs/sky130io.py +0 -0
  35. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/sky130/libs/sky130sc.py +0 -0
  36. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk/sky130/libs/sky130sram.py +0 -0
  37. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk.egg-info/dependency_links.txt +0 -0
  38. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk.egg-info/entry_points.txt +0 -0
  39. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/lambdapdk.egg-info/top_level.txt +0 -0
  40. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/setup.cfg +0 -0
  41. {lambdapdk-0.1.53 → lambdapdk-0.1.54}/tests/test_local_detect.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lambdapdk
3
- Version: 0.1.53
3
+ Version: 0.1.54
4
4
  Summary: Library of open source Process Design Kits
5
5
  Author: Zero ASIC
6
6
  License: Apache License
@@ -201,7 +201,7 @@ License-File: LICENSE
201
201
  Requires-Dist: siliconcompiler>=0.27.0
202
202
  Provides-Extra: test
203
203
  Requires-Dist: flake8==7.2.0; extra == "test"
204
- Requires-Dist: pytest==8.3.5; extra == "test"
204
+ Requires-Dist: pytest==8.4.0; extra == "test"
205
205
  Requires-Dist: pytest-timeout==2.4.0; extra == "test"
206
206
  Requires-Dist: tclint==0.5.4; extra == "test"
207
207
  Requires-Dist: lambdalib==0.3.4; extra == "test"
@@ -2,7 +2,7 @@ import os.path
2
2
  import siliconcompiler.package as sc_package
3
3
 
4
4
 
5
- __version__ = "0.1.53"
5
+ __version__ = "0.1.54"
6
6
 
7
7
 
8
8
  def register_data_source(chip):
@@ -25,7 +25,7 @@ def setup_libs():
25
25
  from lambdapdk.freepdk45.libs import nangate45, fakeram45
26
26
  from lambdapdk.sky130.libs import sky130sc, sky130io, sky130sram
27
27
  from lambdapdk.gf180.libs import gf180mcu, gf180io, gf180sram
28
- from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram
28
+ from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram, sg13g2_io
29
29
  from lambdapdk.interposer.libs import bumps as interposer_bumps
30
30
 
31
31
  all_libs = []
@@ -34,7 +34,7 @@ def setup_libs():
34
34
  nangate45, fakeram45,
35
35
  sky130sc, sky130io, sky130sram,
36
36
  gf180mcu, gf180io, gf180sram,
37
- sg13g2_stdcell, sg13g2_sram,
37
+ sg13g2_stdcell, sg13g2_sram, sg13g2_io,
38
38
  interposer_bumps]:
39
39
  libs = lib_mod.setup()
40
40
  if not isinstance(libs, (list, tuple)):
@@ -138,7 +138,7 @@ def get_docs_libraries():
138
138
  from lambdapdk.freepdk45.libs import nangate45, fakeram45
139
139
  from lambdapdk.sky130.libs import sky130sc, sky130io, sky130sram
140
140
  from lambdapdk.gf180.libs import gf180mcu, gf180io, gf180sram
141
- from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram
141
+ from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram, sg13g2_io
142
142
  from lambdapdk.interposer.libs import bumps as interposer_bumps
143
143
 
144
144
  return [
@@ -156,5 +156,6 @@ def get_docs_libraries():
156
156
  (gf180sram, "gf180sram"),
157
157
  (sg13g2_stdcell, "sg13g2_stdcell"),
158
158
  (sg13g2_sram, "sg13g2_sram"),
159
+ (sg13g2_io, "sg13g2_io"),
159
160
  (interposer_bumps, "interposer_bumps")
160
161
  ]
@@ -0,0 +1,43 @@
1
+ from siliconcompiler import Library
2
+ from lambdapdk import register_data_source
3
+
4
+
5
+ def setup():
6
+ libs = []
7
+ stackup = '10M'
8
+
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')
21
+
22
+ for corner in ('slow', 'fast', 'typical'):
23
+ lib.add('output', corner, 'nldm', f'{path_base}/nldm/{mem_name}.lib')
24
+
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')
29
+
30
+ lib.set('option', 'var', 'klayout_allow_missing_cell', mem_name)
31
+
32
+ libs.append(lib)
33
+
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)
40
+
41
+ libs.append(lambda_lib)
42
+
43
+ return libs
@@ -0,0 +1,57 @@
1
+ import os
2
+ import siliconcompiler
3
+ from lambdapdk import register_data_source
4
+ from lambdapdk.ihp130 import register_ihp130_data_source
5
+
6
+
7
+ def setup():
8
+ '''
9
+ IHP 130 IO Cells
10
+ '''
11
+ libdir = "lambdapdk/ihp130/libs/sg13g2_io"
12
+
13
+ lib = siliconcompiler.Library('sg13g2_io', package='ihp130')
14
+ register_ihp130_data_source(lib)
15
+ register_data_source(lib)
16
+
17
+ # pdk
18
+ lib.set('option', 'pdk', 'ihp130')
19
+
20
+ lib.set('output', 'slow', 'nldm',
21
+ 'ihp-sg13g2/libs.ref/sg13g2_io/lib/sg13g2_io_slow_1p08V_3p0V_125C.lib')
22
+ lib.set('output', 'typical', 'nldm',
23
+ 'ihp-sg13g2/libs.ref/sg13g2_io/lib/sg13g2_io_typ_1p5V_3p3V_25C.lib')
24
+ lib.set('output', 'fast', 'nldm',
25
+ 'ihp-sg13g2/libs.ref/sg13g2_io/lib/sg13g2_io_fast_1p32V_3p6V_m40C.lib')
26
+
27
+ for corner in ('slow', 'typical', 'fast'):
28
+ lib.set('output', corner, 'spice',
29
+ 'ihp-sg13g2/libs.ref/sg13g2_io/spice/sg13g2_io.spi')
30
+
31
+ lib.set('output', '5M2TL', 'lef', 'ihp-sg13g2/libs.ref/sg13g2_io/lef/sg13g2_io.lef')
32
+ lib.set('output', '5M2TL', 'cdl', 'ihp-sg13g2/libs.ref/sg13g2_io/cdl/sg13g2_io.cdl')
33
+ lib.add('output', '5M2TL', 'gds', 'ihp-sg13g2/libs.ref/sg13g2_io/gds/sg13g2_io.gds')
34
+
35
+ lib.set('asic', 'cells', 'filler', ['sg13g2_Filler200',
36
+ 'sg13g2_Filler400',
37
+ 'sg13g2_Filler1000',
38
+ 'sg13g2_Filler2000',
39
+ 'sg13g2_Filler4000',
40
+ 'sg13g2_Filler10000'])
41
+
42
+ lib.set('output', 'blackbox', 'verilog',
43
+ os.path.join(libdir, 'blackbox', 'sg13g2_io.v'), package='lambdapdk')
44
+
45
+ lambda_lib = siliconcompiler.Library('lambdalib_sg13g2_io', package='lambdapdk')
46
+ register_data_source(lambda_lib)
47
+ lambda_lib.add('option', 'ydir', os.path.join(libdir, 'lambda'))
48
+ lambda_lib.use(lib)
49
+ lambda_lib.set('asic', 'macrolib', lib.design)
50
+
51
+ return [lib, lambda_lib]
52
+
53
+
54
+ #########################
55
+ if __name__ == "__main__":
56
+ for lib in setup(siliconcompiler.Chip('<lib>')):
57
+ lib.write_manifest(f'{lib.top()}.json')
@@ -6,7 +6,7 @@ from lambdapdk.ihp130 import register_ihp130_data_source
6
6
 
7
7
  def setup():
8
8
  '''
9
- Nangate open standard cell library for FreePDK45.
9
+ Standrad cell library for IHP130
10
10
  '''
11
11
  libname = 'sg13g2_stdcell'
12
12
  process = 'ihp130'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lambdapdk
3
- Version: 0.1.53
3
+ Version: 0.1.54
4
4
  Summary: Library of open source Process Design Kits
5
5
  Author: Zero ASIC
6
6
  License: Apache License
@@ -201,7 +201,7 @@ License-File: LICENSE
201
201
  Requires-Dist: siliconcompiler>=0.27.0
202
202
  Provides-Extra: test
203
203
  Requires-Dist: flake8==7.2.0; extra == "test"
204
- Requires-Dist: pytest==8.3.5; extra == "test"
204
+ Requires-Dist: pytest==8.4.0; extra == "test"
205
205
  Requires-Dist: pytest-timeout==2.4.0; extra == "test"
206
206
  Requires-Dist: tclint==0.5.4; extra == "test"
207
207
  Requires-Dist: lambdalib==0.3.4; extra == "test"
@@ -22,6 +22,7 @@ lambdapdk/gf180/libs/gf180io.py
22
22
  lambdapdk/gf180/libs/gf180mcu.py
23
23
  lambdapdk/gf180/libs/gf180sram.py
24
24
  lambdapdk/ihp130/__init__.py
25
+ lambdapdk/ihp130/libs/sg13g2_io.py
25
26
  lambdapdk/ihp130/libs/sg13g2_sram.py
26
27
  lambdapdk/ihp130/libs/sg13g2_stdcell.py
27
28
  lambdapdk/interposer/__init__.py
@@ -2,7 +2,7 @@ siliconcompiler>=0.27.0
2
2
 
3
3
  [test]
4
4
  flake8==7.2.0
5
- pytest==8.3.5
5
+ pytest==8.4.0
6
6
  pytest-timeout==2.4.0
7
7
  tclint==0.5.4
8
8
  lambdalib==0.3.4
@@ -33,7 +33,7 @@ timeout = "180"
33
33
  # Test dependencies.
34
34
  test = [
35
35
  "flake8 == 7.2.0",
36
- "pytest == 8.3.5",
36
+ "pytest == 8.4.0",
37
37
  "pytest-timeout == 2.4.0",
38
38
  "tclint == 0.5.4",
39
39
  "lambdalib == 0.3.4",
@@ -7,7 +7,7 @@ from lambdapdk.asap7.libs import asap7sc7p5t, fakeram7, fakeio7, fakekit7
7
7
  from lambdapdk.freepdk45.libs import nangate45, fakeram45
8
8
  from lambdapdk.sky130.libs import sky130sc, sky130io, sky130sram
9
9
  from lambdapdk.gf180.libs import gf180mcu, gf180io, gf180sram
10
- from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram
10
+ from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram, sg13g2_io
11
11
  from lambdapdk.interposer.libs import bumps as interposer_bumps
12
12
 
13
13
 
@@ -16,7 +16,7 @@ all_libs = [
16
16
  nangate45, fakeram45, # freepdk45
17
17
  sky130sc, sky130io, sky130sram, # sky130
18
18
  gf180mcu, gf180io, gf180sram, # gf180
19
- sg13g2_stdcell, sg13g2_sram, # ihp130
19
+ sg13g2_stdcell, sg13g2_sram, sg13g2_io, # ihp130
20
20
  interposer_bumps # interposer
21
21
  ]
22
22
 
@@ -7,7 +7,7 @@ from lambdapdk.asap7.libs import asap7sc7p5t, fakeram7
7
7
  from lambdapdk.freepdk45.libs import nangate45, fakeram45
8
8
  from lambdapdk.gf180.libs import gf180mcu, gf180io, gf180sram
9
9
  from lambdapdk.sky130.libs import sky130sc, sky130io, sky130sram
10
- from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram
10
+ from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram, sg13g2_io
11
11
 
12
12
 
13
13
  @pytest.mark.parametrize('module,path', [
@@ -64,6 +64,7 @@ def test_la_ramlib(path, rootdir):
64
64
  'lambdapdk/sky130/libs/sky130io/lambda',
65
65
  'lambdapdk/gf180/libs/gf180mcu_fd_io/lambda',
66
66
  'lambdapdk/asap7/libs/fakeio7/lambda',
67
+ 'lambdapdk/ihp130/libs/sg13g2_io/lambda',
67
68
  ])
68
69
  def test_la_iolib(path, rootdir):
69
70
  assert lambdalib.check(
@@ -75,7 +76,7 @@ def test_la_iolib(path, rootdir):
75
76
  nangate45, fakeram45,
76
77
  gf180mcu, gf180io, gf180sram,
77
78
  sky130sc, sky130io, sky130sram,
78
- sg13g2_stdcell, sg13g2_sram
79
+ sg13g2_stdcell, sg13g2_sram, sg13g2_io
79
80
  ])
80
81
  def test_lambdalib_is_present(module):
81
82
  chip = Chip('<lib>')
@@ -7,7 +7,7 @@ from lambdapdk.asap7.libs import asap7sc7p5t, fakeram7, fakeio7, fakekit7
7
7
  from lambdapdk.freepdk45.libs import nangate45, fakeram45
8
8
  from lambdapdk.sky130.libs import sky130sc, sky130io, sky130sram
9
9
  from lambdapdk.gf180.libs import gf180mcu, gf180io, gf180sram
10
- from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram
10
+ from lambdapdk.ihp130.libs import sg13g2_stdcell, sg13g2_sram, sg13g2_io
11
11
  from lambdapdk.interposer.libs import bumps as interposer_bumps
12
12
 
13
13
 
@@ -25,7 +25,7 @@ def test_pdk_paths(pdk):
25
25
  nangate45, fakeram45, # freepdk45
26
26
  sky130sc, sky130io, sky130sram, # sky130
27
27
  gf180mcu, gf180io, gf180sram, # gf180
28
- sg13g2_stdcell, sg13g2_sram, # ihp130
28
+ sg13g2_stdcell, sg13g2_sram, sg13g2_io, # ihp130
29
29
  interposer_bumps
30
30
  ])
31
31
  def test_lib_paths(lib):
@@ -1,37 +0,0 @@
1
- from siliconcompiler import Library
2
- from lambdapdk import register_data_source
3
-
4
-
5
- def setup():
6
- libs = []
7
- stackup = '10M'
8
-
9
- for config in ('64x32', '128x32', '256x32', '256x64', '512x32', '512x64'):
10
- mem_name = f'fakeram7_{config}'
11
- lib = Library(mem_name, package='lambdapdk')
12
- register_data_source(lib)
13
- path_base = 'lambdapdk/asap7/libs/fakeram7'
14
- lib.add('output', stackup, 'lef', f'{path_base}/lef/{mem_name}.lef')
15
-
16
- for corner in ('slow', 'fast', 'typical'):
17
- lib.add('output', corner, 'nldm', f'{path_base}/nldm/{mem_name}.lib')
18
-
19
- lib.set('option', 'file', 'openroad_pdngen',
20
- f'{path_base}/apr/openroad/pdngen.tcl')
21
- lib.set('option', 'file', 'openroad_global_connect',
22
- f'{path_base}/apr/openroad/global_connect.tcl')
23
-
24
- lib.set('option', 'var', 'klayout_allow_missing_cell', mem_name)
25
-
26
- libs.append(lib)
27
-
28
- lambda_lib = Library('lambdalib_fakeram7', package='lambdapdk')
29
- register_data_source(lambda_lib)
30
- lambda_lib.add('option', 'ydir', 'lambdapdk/asap7/libs/fakeram7/lambda')
31
- for lib in libs:
32
- lambda_lib.use(lib)
33
- lambda_lib.add('asic', 'macrolib', lib.design)
34
-
35
- libs.append(lambda_lib)
36
-
37
- return libs
File without changes
File without changes
File without changes
File without changes