siliconcompiler 0.35.2__py3-none-any.whl → 0.35.3__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.
Files changed (33) hide show
  1. siliconcompiler/_metadata.py +1 -1
  2. siliconcompiler/apps/smake.py +106 -100
  3. siliconcompiler/flowgraph.py +418 -129
  4. siliconcompiler/library.py +5 -4
  5. siliconcompiler/package/https.py +10 -5
  6. siliconcompiler/project.py +83 -32
  7. siliconcompiler/remote/client.py +17 -6
  8. siliconcompiler/scheduler/scheduler.py +204 -55
  9. siliconcompiler/scheduler/schedulernode.py +63 -70
  10. siliconcompiler/schema/__init__.py +3 -2
  11. siliconcompiler/schema/_metadata.py +1 -1
  12. siliconcompiler/schema/baseschema.py +205 -93
  13. siliconcompiler/schema/namedschema.py +21 -13
  14. siliconcompiler/schema/safeschema.py +18 -7
  15. siliconcompiler/schema_support/dependencyschema.py +4 -3
  16. siliconcompiler/schema_support/pathschema.py +7 -2
  17. siliconcompiler/schema_support/record.py +5 -4
  18. siliconcompiler/targets/asap7_demo.py +4 -1
  19. siliconcompiler/tool.py +9 -4
  20. siliconcompiler/tools/builtin/__init__.py +2 -0
  21. siliconcompiler/tools/builtin/filter.py +8 -1
  22. siliconcompiler/tools/builtin/importfiles.py +2 -0
  23. siliconcompiler/tools/klayout/scripts/klayout_show.py +1 -1
  24. siliconcompiler/tools/klayout/show.py +17 -5
  25. siliconcompiler/tools/yosys/prepareLib.py +7 -2
  26. siliconcompiler/tools/yosys/syn_asic.py +20 -2
  27. siliconcompiler/toolscripts/_tools.json +4 -4
  28. {siliconcompiler-0.35.2.dist-info → siliconcompiler-0.35.3.dist-info}/METADATA +2 -2
  29. {siliconcompiler-0.35.2.dist-info → siliconcompiler-0.35.3.dist-info}/RECORD +33 -33
  30. {siliconcompiler-0.35.2.dist-info → siliconcompiler-0.35.3.dist-info}/WHEEL +0 -0
  31. {siliconcompiler-0.35.2.dist-info → siliconcompiler-0.35.3.dist-info}/entry_points.txt +0 -0
  32. {siliconcompiler-0.35.2.dist-info → siliconcompiler-0.35.3.dist-info}/licenses/LICENSE +0 -0
  33. {siliconcompiler-0.35.2.dist-info → siliconcompiler-0.35.3.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,7 @@ import os.path
2
2
 
3
3
  from typing import Dict, Union, Tuple, List, Optional, Set
4
4
 
5
- from siliconcompiler.schema.baseschema import BaseSchema
5
+ from siliconcompiler.schema.baseschema import BaseSchema, LazyLoad
6
6
  from siliconcompiler.schema.editableschema import EditableSchema
7
7
  from siliconcompiler.schema.parameter import Parameter, Scope
8
8
  from siliconcompiler.schema.namedschema import NamedSchema
@@ -33,7 +33,8 @@ class DependencySchema(BaseSchema):
33
33
 
34
34
  def _from_dict(self, manifest: Dict,
35
35
  keypath: Union[List[str], Tuple[str, ...]],
36
- version: Optional[Tuple[int, ...]] = None) \
36
+ version: Optional[Tuple[int, ...]] = None,
37
+ lazyload: LazyLoad = LazyLoad.ON) \
37
38
  -> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
38
39
  '''
39
40
  Internal helper to load schema from a dictionary manifest.
@@ -50,7 +51,7 @@ class DependencySchema(BaseSchema):
50
51
  The result of the parent class's _from_dict method.
51
52
  '''
52
53
  self.set("deps", False, field="lock")
53
- ret = super()._from_dict(manifest, keypath, version)
54
+ ret = super()._from_dict(manifest, keypath, version=version, lazyload=lazyload)
54
55
  self.set("deps", True, field="lock")
55
56
  return ret
56
57
 
@@ -392,7 +392,8 @@ class PathSchema(PathSchemaBase):
392
392
  resolver = Resolver.find_resolver(path)
393
393
  return resolver(name, schema._parent(root=True), path, tag).get_path()
394
394
 
395
- def _find_files_dataroot_resolvers(self) -> Dict[str, Union[str, Callable]]:
395
+ def _find_files_dataroot_resolvers(self, resolvers: bool = False) \
396
+ -> Dict[str, Union[str, Callable]]:
396
397
  """
397
398
  Returns a dictionary of path resolvers data directory handling for find_files
398
399
 
@@ -410,7 +411,11 @@ class PathSchema(PathSchemaBase):
410
411
  path = BaseSchema.get(schema, "dataroot", dataroot, "path")
411
412
  tag = BaseSchema.get(schema, "dataroot", dataroot, "tag")
412
413
  resolver = Resolver.find_resolver(path)
413
- resolver_map[dataroot] = resolver(dataroot, schema_root, path, tag).get_path
414
+ resolver_obj = resolver(dataroot, schema_root, path, tag)
415
+ if resolvers:
416
+ resolver_map[dataroot] = resolver_obj
417
+ else:
418
+ resolver_map[dataroot] = resolver_obj.get_path
414
419
  return resolver_map
415
420
 
416
421
  @contextlib.contextmanager
@@ -12,7 +12,7 @@ from typing import Dict, Union, List, Optional, Set, Tuple
12
12
  from datetime import datetime, timezone
13
13
  from enum import Enum
14
14
 
15
- from siliconcompiler.schema import BaseSchema
15
+ from siliconcompiler.schema import BaseSchema, LazyLoad
16
16
  from siliconcompiler.schema import EditableSchema, Parameter, PerNode, Scope
17
17
  from siliconcompiler.schema.utils import trim
18
18
 
@@ -53,7 +53,8 @@ class RecordSchema(BaseSchema):
53
53
 
54
54
  def _from_dict(self, manifest: Dict,
55
55
  keypath: Union[List[str], Tuple[str, ...]],
56
- version: Optional[Tuple[int, ...]] = None) \
56
+ version: Optional[Tuple[int, ...]] = None,
57
+ lazyload: LazyLoad = LazyLoad.ON) \
57
58
  -> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
58
59
  """
59
60
  Constructs a schema from a dictionary.
@@ -66,10 +67,10 @@ class RecordSchema(BaseSchema):
66
67
  Returns:
67
68
  dict: The constructed dictionary.
68
69
  """
69
- ret = super()._from_dict(manifest, keypath, version)
70
+ ret = super()._from_dict(manifest, keypath, version=version, lazyload=lazyload)
70
71
 
71
72
  # Correct for change specification
72
- if version and version < (0, 50, 4):
73
+ if not lazyload.is_enforced and version and version < (0, 50, 4):
73
74
  for timekey in RecordTime:
74
75
  start_param = self.get(timekey.value, field=None)
75
76
  for value, step, index in start_param.getvalues():
@@ -3,7 +3,9 @@ from siliconcompiler import ASIC
3
3
  from siliconcompiler.flows import asicflow, synflow
4
4
 
5
5
  from lambdapdk.asap7.libs.asap7sc7p5t import ASAP7SC7p5RVT, ASAP7SC7p5SLVT, ASAP7SC7p5LVT
6
- from lambdapdk.asap7.libs.fakeram7 import FakeRAM7Lambdalib_SinglePort, FakeRAM7Lambdalib_DoublePort
6
+ from lambdapdk.asap7.libs.fakeram7 import FakeRAM7Lambdalib_SinglePort, \
7
+ FakeRAM7Lambdalib_DoublePort, \
8
+ FakeRAM7Lambdalib_TrueDoublePort
7
9
  from lambdapdk.asap7.libs.fakeio7 import FakeIO7Lambdalib_IO
8
10
 
9
11
 
@@ -101,4 +103,5 @@ def asap7_demo(
101
103
  # for demonstration and academic purposes.
102
104
  FakeRAM7Lambdalib_SinglePort.alias(project)
103
105
  FakeRAM7Lambdalib_DoublePort.alias(project)
106
+ FakeRAM7Lambdalib_TrueDoublePort.alias(project)
104
107
  FakeIO7Lambdalib_IO.alias(project)
siliconcompiler/tool.py CHANGED
@@ -35,7 +35,7 @@ from packaging.specifiers import SpecifierSet, InvalidSpecifier
35
35
  from typing import List, Dict, Tuple, Union, Optional, Set, TextIO, Type, TypeVar, TYPE_CHECKING
36
36
  from pathlib import Path
37
37
 
38
- from siliconcompiler.schema import BaseSchema, NamedSchema, Journal, DocsSchema
38
+ from siliconcompiler.schema import BaseSchema, NamedSchema, Journal, DocsSchema, LazyLoad
39
39
  from siliconcompiler.schema import EditableSchema, Parameter, PerNode, Scope
40
40
  from siliconcompiler.schema.parametertype import NodeType
41
41
  from siliconcompiler.schema.utils import trim
@@ -147,13 +147,14 @@ class Task(NamedSchema, PathSchema, DocsSchema):
147
147
 
148
148
  def _from_dict(self, manifest: Dict,
149
149
  keypath: Union[List[str], Tuple[str, ...]],
150
- version: Optional[Tuple[int, ...]] = None) \
150
+ version: Optional[Tuple[int, ...]] = None,
151
+ lazyload: LazyLoad = LazyLoad.ON) \
151
152
  -> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
152
153
  """
153
154
  Populates the schema from a dictionary, dynamically adding 'var'
154
155
  parameters found in the manifest that are not already defined.
155
156
  """
156
- if "var" in manifest:
157
+ if not lazyload.is_enforced and "var" in manifest:
157
158
  # Collect existing and manifest var keys
158
159
  var_keys = [k[0] for k in self.allkeys("var")]
159
160
  manifest_keys = set(manifest["var"].keys())
@@ -171,7 +172,7 @@ class Task(NamedSchema, PathSchema, DocsSchema):
171
172
  if not manifest["var"]:
172
173
  del manifest["var"]
173
174
 
174
- return super()._from_dict(manifest, keypath, version)
175
+ return super()._from_dict(manifest, keypath, version=version, lazyload=lazyload)
175
176
 
176
177
  @contextlib.contextmanager
177
178
  def runtime(self, node: "SchedulerNode",
@@ -813,6 +814,10 @@ class Task(NamedSchema, PathSchema, DocsSchema):
813
814
  schema = root.copy()
814
815
 
815
816
  for keypath in root.allkeys():
817
+ if keypath[0] == "history":
818
+ # Ignore history as this is not relevant to the task
819
+ continue
820
+
816
821
  paramtype: str = schema.get(*keypath, field='type')
817
822
  if 'file' not in paramtype and 'dir' not in paramtype:
818
823
  continue
@@ -21,6 +21,8 @@ class BuiltinTask(Task):
21
21
 
22
22
  self._set_io_files()
23
23
 
24
+ self.set_threads(1)
25
+
24
26
  def _set_io_files(self):
25
27
  files = sorted(list(self.get_files_from_input_nodes().keys()))
26
28
  self.add_input_file(files)
@@ -50,14 +50,21 @@ class FilterTask(Task):
50
50
  def setup(self):
51
51
  super().setup()
52
52
 
53
+ self.set_threads(1)
54
+
55
+ flow = self.project.get("flowgraph", self.project.option.get_flow(), field="schema")
56
+ graph_node = flow.get_graph_node(self.step, self.index)
57
+
53
58
  if self.get("var", "keep"):
54
59
  self.add_required_key("var", "keep")
60
+ elif graph_node.get_args():
61
+ self.add_required_key(graph_node, "args")
55
62
 
56
63
  files = sorted(list(self.get_files_from_input_nodes().keys()))
57
64
  if not files:
58
65
  raise ValueError("task receives no files")
59
66
 
60
- filters: List[str] = self.get("var", "keep")
67
+ filters: List[str] = self.get("var", "keep") or graph_node.get_args()
61
68
  if not filters:
62
69
  filters = ["*"]
63
70
 
@@ -92,6 +92,8 @@ class ImportFilesTask(Task):
92
92
  """
93
93
  super().setup()
94
94
 
95
+ self.set_threads(1)
96
+
95
97
  if (self.step, self.index) not in self.schema_flow.get_entry_nodes():
96
98
  raise ValueError("task must be an entry node")
97
99
 
@@ -250,7 +250,7 @@ def main():
250
250
  sc_filename = schema.get('tool', 'klayout', 'task', task, 'var', 'showfilepath',
251
251
  step=step, index=index)
252
252
  else:
253
- for ext in (f'{sc_fileext}.gz', sc_fileext):
253
+ for ext in (f'{sc_fileext}.gz', sc_fileext, 'gds.gz', "gds", 'oas.gz', 'oas'):
254
254
  sc_filename = f"inputs/{design}.{ext}"
255
255
  if os.path.exists(sc_filename):
256
256
  break
@@ -15,6 +15,17 @@ class ShowTask(ShowTask, KLayoutTask):
15
15
 
16
16
  self.set_script("klayout_show.py")
17
17
 
18
+ if f"{self.design_topmodule}.gds.gz" in self.get_files_from_input_nodes():
19
+ self.add_input_file(ext="gds.gz")
20
+ elif f"{self.design_topmodule}.gds" in self.get_files_from_input_nodes():
21
+ self.add_input_file(ext="gds")
22
+ elif f"{self.design_topmodule}.oas.gz" in self.get_files_from_input_nodes():
23
+ self.add_input_file(ext="oas.gz")
24
+ elif f"{self.design_topmodule}.oas" in self.get_files_from_input_nodes():
25
+ self.add_input_file(ext="oas")
26
+ else:
27
+ self.add_required_key("var", "showfilepath")
28
+
18
29
  self.add_commandline_option(["-nc", "-rm"], clobber=True)
19
30
 
20
31
  def get_supported_show_extentions(self):
@@ -23,8 +34,9 @@ class ShowTask(ShowTask, KLayoutTask):
23
34
  def pre_process(self):
24
35
  super().pre_process()
25
36
 
26
- rel_path = os.path.dirname(self.get("var", "showfilepath"))
27
- for ext in ('lyt', 'lyp'):
28
- ext_file = os.path.join(rel_path, f'{self.design_topmodule}.{ext}')
29
- if ext_file and os.path.exists(ext_file):
30
- shutil.copy2(ext_file, f"inputs/{self.design_topmodule}.{ext}")
37
+ if self.get("var", "showfilepath"):
38
+ rel_path = os.path.dirname(self.get("var", "showfilepath"))
39
+ for ext in ('lyt', 'lyp'):
40
+ ext_file = os.path.join(rel_path, f'{self.design_topmodule}.{ext}')
41
+ if ext_file and os.path.exists(ext_file):
42
+ shutil.copy2(ext_file, f"inputs/{self.design_topmodule}.{ext}")
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  # Based on https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/84545863573a90bca3612298361adb35bf39e692/flow/util/markDontUse.py # noqa E501
3
3
 
4
+ import bz2
4
5
  import re
5
6
  import gzip
6
7
  import argparse # argument parsing
@@ -12,10 +13,14 @@ def process_liberty_file(input_file, logger=None):
12
13
  logger.info(f"Opening file for replace: {input_file}")
13
14
  if input_file.endswith(".gz") or input_file.endswith(".GZ"):
14
15
  f = gzip.open(input_file, 'rt', encoding="utf-8")
16
+ elif input_file.endswith(".bz2") or input_file.endswith(".BZ2"):
17
+ f = bz2.open(input_file, 'rt', encoding="utf-8")
15
18
  else:
16
19
  f = open(input_file, encoding="utf-8")
17
- content = f.read().encode("ascii", "ignore").decode("ascii")
18
- f.close()
20
+ try:
21
+ content = f.read().encode("ascii", "ignore").decode("ascii")
22
+ finally:
23
+ f.close()
19
24
 
20
25
  # Yosys-abc throws an error if original_pin is found within the liberty file.
21
26
  # removing
@@ -32,6 +32,18 @@ class _ASICTask(ASICTask, YosysTask):
32
32
  self.add_required_key("var", "synthesis_corner")
33
33
  self._determine_synthesis_corner()
34
34
 
35
+ self.add_required_key("asic", "delaymodel")
36
+ self.add_required_key("asic", "asiclib")
37
+
38
+ delaymodel = self.project.get("asic", "delaymodel")
39
+ for lib in self.project.get("asic", "asiclib"):
40
+ lib_obj = self.project.get("library", lib, field="schema")
41
+ for corner in self.get("var", "synthesis_corner"):
42
+ if lib_obj.get("asic", "libcornerfileset", corner, delaymodel):
43
+ self.add_required_key(lib_obj, "asic", "libcornerfileset", corner, delaymodel)
44
+ for fileset in lib_obj.get("asic", "libcornerfileset", corner, delaymodel):
45
+ self.add_required_key(lib_obj, "fileset", fileset, "file", "liberty")
46
+
35
47
  def _determine_synthesis_corner(self):
36
48
  if self.get("var", "synthesis_corner"):
37
49
  return
@@ -294,8 +306,6 @@ class ASICSynthesis(_ASICTask, YosysTask):
294
306
  self.set_script("sc_synth_asic.tcl")
295
307
 
296
308
  self.add_required_key("asic", "mainlib")
297
- self.add_required_key("asic", "asiclib")
298
- self.add_required_key("asic", "delaymodel")
299
309
 
300
310
  design = self.project.design
301
311
  fileset = self.project.get("option", "fileset")[0]
@@ -330,6 +340,14 @@ class ASICSynthesis(_ASICTask, YosysTask):
330
340
  self.add_required_key(mainlib, "tool", "yosys", "driver_cell")
331
341
  self.add_required_key("var", "abc_constraint_driver")
332
342
  self.set("var", "abc_constraint_driver", lib_driver)
343
+ if self.get("var", "abc_clock_period"):
344
+ self.add_required_key("var", "abc_clock_period")
345
+ else:
346
+ self.add_required_key(mainlib, "tool", "yosys", "abc_clock_multiplier")
347
+ self.add_required_key("var", "abc_clock_derating")
348
+ for lib, fileset in self.project.get_filesets():
349
+ if lib.has_file(fileset=fileset, filetype="sdc"):
350
+ self.add_required_key(lib, "fileset", fileset, "file", "sdc")
333
351
 
334
352
  if mainlib.get("tool", "yosys", "tristatebuffermap"):
335
353
  self.add_required_key(mainlib, "tool", "yosys", "tristatebuffermap")
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "openroad": {
3
3
  "git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
4
- "git-commit": "210a3d2cad93da3538e11dd3a8d630232b640108",
4
+ "git-commit": "f22f811d9d338b1dbc6fe854d35b53757596449d",
5
5
  "docker-cmds": [
6
6
  "# Remove OR-Tools files",
7
7
  "RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "opensta": {
19
19
  "git-url": "https://github.com/parallaxsw/OpenSTA.git",
20
- "git-commit": "de0f5440a6ecdfacf6752c09a3786858befe52bf",
20
+ "git-commit": "cf903f4db688e6f89d732ef28cce7b8185587201",
21
21
  "auto-update": true
22
22
  },
23
23
  "netgen": {
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "sv2v": {
57
57
  "git-url": "https://github.com/zachjs/sv2v.git",
58
- "git-commit": "80a2f0cf685f6d873b4ee37b76e6c18dc60e2555",
58
+ "git-commit": "c1ce7d067b0a7edf8d1589dcb5731265c854c490",
59
59
  "auto-update": true
60
60
  },
61
61
  "verilator": {
@@ -145,7 +145,7 @@
145
145
  },
146
146
  "yosys-slang": {
147
147
  "git-url": "https://github.com/povik/yosys-slang.git",
148
- "git-commit": "a55de5b523416745b7e62e94739b9c2d1aa87f91",
148
+ "git-commit": "f44908907726e684965ba71959cc147df50c0357",
149
149
  "docker-depends": "yosys",
150
150
  "auto-update": true
151
151
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.35.2
3
+ Version: 0.35.3
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author: Zero ASIC
6
6
  License: Apache License 2.0
@@ -37,7 +37,7 @@ Requires-Dist: PyYAML<7.0.0,>=6.0.0
37
37
  Requires-Dist: GitPython<3.2,>=3.1.44
38
38
  Requires-Dist: PyGithub<2.9.0,>=2.8.0
39
39
  Requires-Dist: urllib3>=1.26.0
40
- Requires-Dist: lambdapdk>=0.2.1
40
+ Requires-Dist: lambdapdk>=0.2.4
41
41
  Requires-Dist: fasteners>=0.20
42
42
  Requires-Dist: pandas>=1.1.5
43
43
  Requires-Dist: psutil>=5.8.0
@@ -1,16 +1,16 @@
1
1
  siliconcompiler/__init__.py,sha256=I1RN8BMRpuAx9tdx5CLNlpIqT-xg2EwvOB8TcqHQSN0,1114
2
2
  siliconcompiler/_common.py,sha256=1bY1qdFxnstAyhJrkJCBhSlZ614dlmcwL0Bf7NOneyY,1047
3
- siliconcompiler/_metadata.py,sha256=SRB68Y7rl2mXjbWKsgaUx7kEY9l2k2lZ4W5CRsUvpnw,1286
3
+ siliconcompiler/_metadata.py,sha256=me0mZsXtXvHJUlLtY9lFoe2_NdjSmCNju4hEeNZ5CzM,1286
4
4
  siliconcompiler/asic.py,sha256=KXs-mjFHjiCRlyUClNIb-Zvdkxa8dGafStHm-rX3vu8,28912
5
5
  siliconcompiler/checklist.py,sha256=KOBHvSnJQCwmhP5hERABk7tHIMHdWsFBhqzTJ687ewY,24887
6
6
  siliconcompiler/design.py,sha256=vFcenCV1Q3IVsdpeh4h9wCm4lyAfJMH5e-Oqg4Ji4sQ,34555
7
- siliconcompiler/flowgraph.py,sha256=lMbbvb4iUDlRa_w7cz81tl-O_xMUECJjveF6rmh_l0I,52257
7
+ siliconcompiler/flowgraph.py,sha256=OGaXd88alyrSQizHyeRPK9UkNz1fqrLg0AkIkrc70y4,63295
8
8
  siliconcompiler/fpga.py,sha256=8uvmIyvWOWx5X1JP3xaSpkA9hVyox4l-hK63aYzN8-w,9075
9
- siliconcompiler/library.py,sha256=lDcXR2f_Fezk4zi8NFdXHvObnpZqKGJ_3o5E2tHmeAA,15914
9
+ siliconcompiler/library.py,sha256=5MnryNBF9Dsg9mcD-Nl0NWrsE6hBlUo3tE2fdWXqt5E,16033
10
10
  siliconcompiler/pdk.py,sha256=rENDQve5edt7EkdgnNfW-mfgJVklShLbvYddaEA1-_k,31581
11
- siliconcompiler/project.py,sha256=HFh1DJHCWgc5TxMxrrDABB6TE_wsNNlxUO0iwcbqIP0,48947
11
+ siliconcompiler/project.py,sha256=WLP131DoQGa8rrafrCE7DZuPGqhWRyrK_f7DElHcc1E,51190
12
12
  siliconcompiler/schematic.py,sha256=0PVFqZvJZW_e2NRGvv6DJPHGjwOlao1qHgZLhgCaEcQ,18385
13
- siliconcompiler/tool.py,sha256=7ewONqteQbmQTMVNcdGZy50u1kttzAskZouVNQC8AdU,109555
13
+ siliconcompiler/tool.py,sha256=jzXR554oYqcUc23gGww9rv9HBPiXnMUoq6f9F771QFE,109809
14
14
  siliconcompiler/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  siliconcompiler/apps/_common.py,sha256=uldDgTeAEfo1Y0X_hxpr0yjSW0W0c5UaiuSpgk7aUuk,8605
16
16
  siliconcompiler/apps/sc_dashboard.py,sha256=BU3hPC7OzfUpkKEVsBD_46zd4OzHO86eJMB5CaWpVf0,3496
@@ -19,7 +19,7 @@ siliconcompiler/apps/sc_issue.py,sha256=_ClYgvpYC9z1KsM83AiTfcHG4tKp6NKIAiGfTq0b
19
19
  siliconcompiler/apps/sc_remote.py,sha256=ve-4Z3c79noYe9PcYY-V7DfkLMa603J16SiIpmOCLQg,6887
20
20
  siliconcompiler/apps/sc_server.py,sha256=Jup3QYs6R3LRbok4PO7h8l9-1Q1I82P9nJMjjojt4YA,814
21
21
  siliconcompiler/apps/sc_show.py,sha256=w-AuHjDEOiyHoKu68fWf_ImsbGgyfnrv5afI9Vr6Ib4,3506
22
- siliconcompiler/apps/smake.py,sha256=YNyl7Qir_sOmOq1LzIYEtESiU5biu56EmRm595ISjT0,9741
22
+ siliconcompiler/apps/smake.py,sha256=y1_XOJWFtLgPMDYFuit-Qj5ppWFXZ-shl9Lyzn9-N-Q,10167
23
23
  siliconcompiler/apps/utils/replay.py,sha256=jtWJCMeoLPLuV1hVZ-tqXzdXF8V_F-ShueFIVdfx8mM,5954
24
24
  siliconcompiler/apps/utils/summarize.py,sha256=NbY04DDRSjEDhu0at46dRXX8-0iHxWIcPYppsZPHdy8,830
25
25
  siliconcompiler/checklists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -85,9 +85,9 @@ siliconcompiler/optimizer/vizier.py,sha256=JtoPktsa-qHN0i4PsfRnxvQAT0yVvQVRfdyYN
85
85
  siliconcompiler/package/__init__.py,sha256=SKkoGECbYN6HEFmfx2ZZZ3DmKMpq8o0xtI8UQrAaiw0,25251
86
86
  siliconcompiler/package/git.py,sha256=xq8_qi-2pmhswJ9ssUtRgSUNxpMGKZLDmnkdFYeq9iA,5950
87
87
  siliconcompiler/package/github.py,sha256=bzV-XrcmFMloa7_yhdxFjfe4r9OH36xHGY6ZCgHv0mA,6785
88
- siliconcompiler/package/https.py,sha256=kSKXx-8SGylSN117uOJoKw_iSSTzIkKeLVks_8zE4_s,5504
88
+ siliconcompiler/package/https.py,sha256=OJL1PxOf6FbuGUrEx3gWpLEocd7p9gf9uvKh6a-7OQc,5753
89
89
  siliconcompiler/remote/__init__.py,sha256=FtA6sqSYDl3WFwGCrHkmWUEWmDCGm8oGa-oTaFWrtSw,1092
90
- siliconcompiler/remote/client.py,sha256=pK-b9j-GplBpSKngyxr0AfXqQGIMpFm8S4zAIJnMo9g,37098
90
+ siliconcompiler/remote/client.py,sha256=UWTSOYqsIsM_cdI1-n1c51ygWntGUbd8gn23gZoclKs,37616
91
91
  siliconcompiler/remote/schema.py,sha256=23aszXC2yRz5K_NEpRgc9hI9PK93hfbvUkRya_RdIBI,3300
92
92
  siliconcompiler/remote/server.py,sha256=Dx6P2eQw2oUUVMLvr2M-7NuR4FYd40jdworeoLdGy-o,21214
93
93
  siliconcompiler/remote/server_schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -129,39 +129,39 @@ siliconcompiler/scheduler/__init__.py,sha256=4ugpwR-X1BoSn38wEtR8nB1ZW77ktQW3eqA
129
129
  siliconcompiler/scheduler/docker.py,sha256=jVKiu-1OkoxieBm3tMnx_RvBpOqcKeDlCVbgJ9UHwXw,12706
130
130
  siliconcompiler/scheduler/error.py,sha256=B1DhBhzqK5f8OCodmQIXdrGzRwE2cnfL9zbHLLQZPzw,193
131
131
  siliconcompiler/scheduler/run_node.py,sha256=MALxjvpM-pFkT9qzCQ9l_N12NMbFek3h8VYk5S2X5Tg,5739
132
- siliconcompiler/scheduler/scheduler.py,sha256=As845Ihs7kjVcw5gb3xH_LILHtU-C_RZmfPJpo8X-hQ,35058
133
- siliconcompiler/scheduler/schedulernode.py,sha256=TV8OGGSKDrnC0LzSe8GHl_rwZWvnG2WANYrFcj1kvOA,54636
132
+ siliconcompiler/scheduler/scheduler.py,sha256=ePH5C6y7x20KQUpr_bwtXDgs1BEWSBbm3t4nQanqL7k,40752
133
+ siliconcompiler/scheduler/schedulernode.py,sha256=y-fCzPjIo-0xvl0p2feymomPPNrfdbzmpQ6YsfPmEhA,54580
134
134
  siliconcompiler/scheduler/send_messages.py,sha256=zK5JVHu9qKlwFDiDboGJcy32zdnHBKxnafOTfFNzMl8,9411
135
135
  siliconcompiler/scheduler/slurm.py,sha256=trbVdpHRDbJPbDr6qA0Dkvn-EjB-Q9sBFMPmaW7I9gE,8783
136
136
  siliconcompiler/scheduler/taskscheduler.py,sha256=jC70KTQvSQxaM9b_kCcR5D-XTl28I7JCJMywYk38epQ,17839
137
137
  siliconcompiler/scheduler/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
138
  siliconcompiler/scheduler/validation/email_credentials.json,sha256=hkJs0U2h2Bgm1zxeXvanIJ-prPhpn_aU6e3qwIs7qA0,1997
139
- siliconcompiler/schema/__init__.py,sha256=8lOmNA3wTmJTINZMw3wvBOMGRsWyG1kGV-S5s9ZwI1I,521
140
- siliconcompiler/schema/_metadata.py,sha256=7Oy3jNqt0AQZ-q1XuDXZ6SGoRGnaMbpnZknnhOqzvIg,63
141
- siliconcompiler/schema/baseschema.py,sha256=J-kXhTty8lhKDLrpvD9jzUbWLAL1C5STtLoIUDFHz6s,47893
139
+ siliconcompiler/schema/__init__.py,sha256=z5zc_4MG53d-Io5ZOFQT0suHkW8oN5CrdpJx28mwGUk,547
140
+ siliconcompiler/schema/_metadata.py,sha256=SFDemUQc9rU-_cnUpbqbcecVVB1ceLxzcuPZALPqzGI,63
141
+ siliconcompiler/schema/baseschema.py,sha256=ZSXwGaF7HiiSSxUFZwYczCOruxnnW1FnPz4_2MRKum8,51690
142
142
  siliconcompiler/schema/docschema.py,sha256=Hzmq_YDxXDol2iWAwP1grhqYga43NvqVtysCCVMBn3E,924
143
143
  siliconcompiler/schema/editableschema.py,sha256=2wZBSQ4SmUWEeMg7--klkBxZJHgIHEhDzRS3GSCjHgk,5116
144
144
  siliconcompiler/schema/journal.py,sha256=i3TYcuqdwq-FCCit8M02W8YbIUsY61mlPHSS-7Y0axc,6538
145
- siliconcompiler/schema/namedschema.py,sha256=cn67l1y_dBiKjJnby2KyJScojQL_0QBYxTPE_qXJXV8,3516
145
+ siliconcompiler/schema/namedschema.py,sha256=bu3x0D7UdnkeZs3RXksn_5llUFrWwO3QItOEEWKLCDw,3820
146
146
  siliconcompiler/schema/parameter.py,sha256=Y-TfK__m6NsudJXG3iTZHr5XlUg8JbIUZsg-VG6jnPo,34721
147
147
  siliconcompiler/schema/parametertype.py,sha256=oEkZN81sftAgnEEv84M9Vz8UPxwIRioxE6sJszV1A8o,11549
148
148
  siliconcompiler/schema/parametervalue.py,sha256=h1DvtB-z-SnGQLHomaF236G6FrNJK5EDprrZzUqAQAs,29837
149
- siliconcompiler/schema/safeschema.py,sha256=mZlzeKpBlPAVj1oPCXtH5C4Ho0LWYrtyYxp4aKOm2e4,2244
149
+ siliconcompiler/schema/safeschema.py,sha256=otjZCv2jS4qsqhbIfdoR8IQ2oPo5ee87BSm-bt-gQTU,2655
150
150
  siliconcompiler/schema/utils.py,sha256=-rNHCElu7z6Y5ig3lCZVxqIHq7VM6m7Wnyhll5VfxBM,1438
151
151
  siliconcompiler/schema/docs/__init__.py,sha256=alRd_dr35ryJDKRaMx1dPpQ-NMBI-ldwHpZQBRyi-qY,993
152
152
  siliconcompiler/schema/docs/schemagen.py,sha256=rLHnCabkvy0cTzkuzxXSCuI4qRaefdpTI_ijjZBrdfs,20859
153
153
  siliconcompiler/schema/docs/utils.py,sha256=SCR9hYlQHUWbC6fT7LttKIfktzhMfrCL0BVxynYWtLc,10142
154
154
  siliconcompiler/schema_support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
155
  siliconcompiler/schema_support/cmdlineschema.py,sha256=B4eQS7goBB4lq1tGb-qgssXrsP8hfPJhXH162yy6rG4,10815
156
- siliconcompiler/schema_support/dependencyschema.py,sha256=9Qu2tcpyJeRUVj2ak1Ki_iJeXpTfFJ_5zWWk1zdI5WQ,10148
156
+ siliconcompiler/schema_support/dependencyschema.py,sha256=KTpDV_e4frVnbHQLNcQPbC7uPKODWAvEqXmEHgiI8vo,10238
157
157
  siliconcompiler/schema_support/filesetschema.py,sha256=CE_JpDJYWqQzGgImgwPWOS7z_ymk4hY3H5I0qVU33Qo,11513
158
158
  siliconcompiler/schema_support/metric.py,sha256=mLzdtpM76l2cPINGWONrAjBMU28ZnQR_yLOGMYBLBV4,16158
159
159
  siliconcompiler/schema_support/option.py,sha256=lMB7Us3VPmxK56HK969YtmCcJ__nKfIT5Aa-qnYhNMY,53544
160
160
  siliconcompiler/schema_support/packageschema.py,sha256=tB6wYEhZliaUVZDq40DlEfoo8ken6-Xh6zIafBRrxr4,10508
161
- siliconcompiler/schema_support/pathschema.py,sha256=X2kNXL7TzloeunKpd_msx8pQTbS_fZ6S6g879qRlSHE,20942
162
- siliconcompiler/schema_support/record.py,sha256=QxEsTwqHKJET3qXqnn1Bw6OSotqLD436i51IEq3l-5E,19527
161
+ siliconcompiler/schema_support/pathschema.py,sha256=6ovpEjC1oDAxi5OaNpIrXmDSY8MaIxt_1KeNVZxQXBA,21123
162
+ siliconcompiler/schema_support/record.py,sha256=pmo353Rw2_ptAPCfc5e-odYSgsVD5vF38udpwJ5HIZw,19646
163
163
  siliconcompiler/targets/__init__.py,sha256=eWgvV4DeombChYqLxs5z_rOZ7Mt1q7N0WEetuBcNjZ4,1678
164
- siliconcompiler/targets/asap7_demo.py,sha256=kxZByaRCokyoenhvtJxoXYiWK4asIOE_ao6jTZJ8Dz8,4662
164
+ siliconcompiler/targets/asap7_demo.py,sha256=sG3GdqkqGjhco43JHVV6-ys734fYTksx68VIJpZ4_IU,4760
165
165
  siliconcompiler/targets/freepdk45_demo.py,sha256=U5Z-EMQ_FKzjYH3ofvlqECxelZKr0wZdAGVmVoSCnoE,3180
166
166
  siliconcompiler/targets/gf180_demo.py,sha256=ul2cu1JNn6sX3-gCWwvucvWBJ00mLCN2JVtJ5m8pCGA,4082
167
167
  siliconcompiler/targets/ihp130_demo.py,sha256=4k6XNk72eF13ifGn7a4cD6qlmItGp6ku18PgQctZkzg,4125
@@ -178,9 +178,9 @@ siliconcompiler/tools/bambu/__init__.py,sha256=BqeJXQ-y7C6uDszjsz-Y93tGhFGl6JTjo
178
178
  siliconcompiler/tools/bambu/convert.py,sha256=_5eQ69ZPD3CgNHqR3fDoLBvY3AcgsCzC4AZm0AmVUcQ,6366
179
179
  siliconcompiler/tools/bluespec/__init__.py,sha256=VQ_8j43wuZAWgDCOpK3JbamBQde-MAI_lZwbYFEoRkU,537
180
180
  siliconcompiler/tools/bluespec/convert.py,sha256=wKHcPRdXAWRUbTqtMmPm7v2m_kcXZiH-sju1bKXp44Q,4911
181
- siliconcompiler/tools/builtin/__init__.py,sha256=lrS8mEFzwJWON6_A7Rwo0dzCiOkoJTQB69omr9scPXg,5447
182
- siliconcompiler/tools/builtin/filter.py,sha256=ENaXrvIeMKQkxkhzQsoiXGlYsfbhdkavqUk_EqXqjJ0,3464
183
- siliconcompiler/tools/builtin/importfiles.py,sha256=3t2rGqfE0rXRAPWlqvUsii7PZ_J6EAb5WrOTd97ykm0,6361
181
+ siliconcompiler/tools/builtin/__init__.py,sha256=XvfR834zzV3AbX3UkeoKP2HqJNGU0ZqUvsuY1owIMYw,5476
182
+ siliconcompiler/tools/builtin/filter.py,sha256=hV3A9I-k8i3cNi9mADxjEbtE0inhVgayr6XedwX2XE0,3766
183
+ siliconcompiler/tools/builtin/importfiles.py,sha256=EmulgtToaSmM3PeeSuU2nbV7Y8Xi8x0WhluhI6Da018,6390
184
184
  siliconcompiler/tools/builtin/join.py,sha256=qr0z3QqSJM6TcDwRI9xmhDxpKSO6rY0aYHGDwY4eygk,242
185
185
  siliconcompiler/tools/builtin/maximum.py,sha256=8mUtrf_aurwmJZd8qhPz8NMVUF_voR9I2P3vNvtMc5s,733
186
186
  siliconcompiler/tools/builtin/minimum.py,sha256=B5l6VD55S1a5GqIxBrXYspBBVwHevpmb_PtJUXbWDvA,733
@@ -213,11 +213,11 @@ siliconcompiler/tools/klayout/drc.py,sha256=SbCl9PxlJ0irGmUZE-Ls8asF0M8jMorcQEWh
213
213
  siliconcompiler/tools/klayout/export.py,sha256=cdw-VcuBIybl2cAl923QpSnPHoRSfeok0003wkJXelg,3317
214
214
  siliconcompiler/tools/klayout/operations.py,sha256=Mjolv916cGpKSOI6b5o9KMWA5SXr_odW3wMFH8UbXmA,6942
215
215
  siliconcompiler/tools/klayout/screenshot.py,sha256=fZkvjvNuV93AlbE5WXZqDoTF2mRkJY0l-8OGF7ZOv-k,1910
216
- siliconcompiler/tools/klayout/show.py,sha256=W7GovNh_tk7pUx4sAXZlOogdUQKrHd7gtUbWSYfzGk8,848
216
+ siliconcompiler/tools/klayout/show.py,sha256=Lkmf90qOomLvrYELRhSSzH9F2i7cgsAfETHU2lVRxDs,1494
217
217
  siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py,sha256=YCWUyIoG8sUGRo3kCoCr4y9YixjVDgAdDia6aApD6OA,5748
218
218
  siliconcompiler/tools/klayout/scripts/klayout_export.py,sha256=GQTkNQLfvLyAPCoJsIHucKKtws4CV9s6phkdq-IHgnk,7494
219
219
  siliconcompiler/tools/klayout/scripts/klayout_operations.py,sha256=VpQb7e9M5qlNsNwu_TTHOJhhqe7sGoIoUGNF_okhkBA,13221
220
- siliconcompiler/tools/klayout/scripts/klayout_show.py,sha256=toX-IIfmTywbEuJOVAGzyeo91u2kd09JspZ_nqXLRnk,10155
220
+ siliconcompiler/tools/klayout/scripts/klayout_show.py,sha256=gzkFTpJPyFN1_5b0j4XBF_cs1hXT0fOMjHCRbHQpAL0,10189
221
221
  siliconcompiler/tools/klayout/scripts/klayout_utils.py,sha256=otiMTrdMkJ_kQRxhwqqKEqTXqBNnQfeLidlfMvXZDOg,7296
222
222
  siliconcompiler/tools/magic/__init__.py,sha256=NtsbRts5QE17ffDw08rtASAw2ZVDH0nTj3jYSb23r5o,3052
223
223
  siliconcompiler/tools/magic/drc.py,sha256=qqO7byf2OgrGXSjL-90Mx21CviEaP0dZZS9mJZjuBVY,626
@@ -341,8 +341,8 @@ siliconcompiler/tools/xyce/__init__.py,sha256=KSjHkueyWjTlH7ka7aBolRXwR3K5c0TgBZ
341
341
  siliconcompiler/tools/xyce/simulate.py,sha256=XzFcbmn9-BSTE9sqyPyL3WVbY6zE_3kjFx6_sG4jUcE,2173
342
342
  siliconcompiler/tools/yosys/__init__.py,sha256=prf36_x6A61lMnLXM3FRzlRZrJqEEMv-C7hyEi1b2Oo,18451
343
343
  siliconcompiler/tools/yosys/lec_asic.py,sha256=tA2N_nU3hkgv6DpJv68nEg_IJgLXV-9Lm1GE3HjHyFE,1593
344
- siliconcompiler/tools/yosys/prepareLib.py,sha256=yZGDNKCGpRr0_pWHfH-cM2rcJ7pqW0dteEQBntlMXAI,2271
345
- siliconcompiler/tools/yosys/syn_asic.py,sha256=fzAEhujphjAhfMG4rm4Zw6l4OYw8UY6seI8MCHq-IrA,17934
344
+ siliconcompiler/tools/yosys/prepareLib.py,sha256=8ppIR-o_EJiNZrpGg_sewJ4qyjtFXre9-iwo-a5Ev_g,2438
345
+ siliconcompiler/tools/yosys/syn_asic.py,sha256=os-xUull6pnIjZwrIWYMuu1ffVyCrfy6XjORSN2y57M,19034
346
346
  siliconcompiler/tools/yosys/syn_fpga.py,sha256=_6z9NWciUAcagQXTa9dzRetjRr1Dkxvv8odw6ECSPYg,3577
347
347
  siliconcompiler/tools/yosys/scripts/procs.tcl,sha256=oJZJrcMHUyBLEKlUEd3PwwNBIDSCUIZlpfjsAuM2WUQ,4607
348
348
  siliconcompiler/tools/yosys/scripts/sc_lec.tcl,sha256=K2gsSg2cs1Dx3g4MP1EbkSv-ZkYDnU4iSHepj20TXSE,2996
@@ -354,7 +354,7 @@ siliconcompiler/tools/yosys/techmaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
354
354
  siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v,sha256=M4T-ygiKmlsprl5eGGLaV5w6HVqlEepn0wlUDmOkapg,773
355
355
  siliconcompiler/tools/yosys/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
356
356
  siliconcompiler/tools/yosys/templates/abc.const,sha256=TAq9ThdLMYCJGrtToEU0gWcLuEtjE4Gk8huBbTm1v-I,116
357
- siliconcompiler/toolscripts/_tools.json,sha256=qwWzCsfhbhoWnQL4Tmh8vh_ttc1IKdBxv7XFXWGPQBg,5094
357
+ siliconcompiler/toolscripts/_tools.json,sha256=3ODm2JNw76BJfLN-XUZ1WMpLOW8gaEkFKCvqem5rW2s,5094
358
358
  siliconcompiler/toolscripts/_tools.py,sha256=P30KY_xbbjl8eHGsPAxDcAzWvJJpiL07ZfGZZDQbdR8,7174
359
359
  siliconcompiler/toolscripts/rhel8/install-chisel.sh,sha256=RJ7BiZhsXBLTgQhHUcRZmHqhKB6syVaC2nvVoGrIXOI,709
360
360
  siliconcompiler/toolscripts/rhel8/install-icarus.sh,sha256=EW7308IUGYOx7A22s7s0tNq90nHhrpHHUMrx3cd9lMM,962
@@ -472,9 +472,9 @@ siliconcompiler/utils/multiprocessing.py,sha256=u8hf1EX-0dWheNoHJ0LNfnQc4dqLsccJ
472
472
  siliconcompiler/utils/paths.py,sha256=_7UqxNzUnRFtdZAZSpI75lqs22YnKJBXJzkpoWbUIcU,4152
473
473
  siliconcompiler/utils/showtools.py,sha256=ZWD2frgt0t2Eh8S9Hl3CwGEa1cnNiQx-06pWtyDTiic,1375
474
474
  siliconcompiler/utils/units.py,sha256=mppo7T5xI2P2S7SweE_qsOuoTc7RezVX61G2whCzpV4,6261
475
- siliconcompiler-0.35.2.dist-info/licenses/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
476
- siliconcompiler-0.35.2.dist-info/METADATA,sha256=T9WGvW_Pfyq2DyuifFryff2juk6bpL86FvVvsLWuqhI,11251
477
- siliconcompiler-0.35.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
478
- siliconcompiler-0.35.2.dist-info/entry_points.txt,sha256=5I-z7cmFNPRpD_x1dMQnm-oLwTPOMURxD5frvUM0GE8,832
479
- siliconcompiler-0.35.2.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
480
- siliconcompiler-0.35.2.dist-info/RECORD,,
475
+ siliconcompiler-0.35.3.dist-info/licenses/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
476
+ siliconcompiler-0.35.3.dist-info/METADATA,sha256=4zk1eBcCNpNe_D56ebakCkq_3pMji90p9kF2LEz_Ipw,11251
477
+ siliconcompiler-0.35.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
478
+ siliconcompiler-0.35.3.dist-info/entry_points.txt,sha256=5I-z7cmFNPRpD_x1dMQnm-oLwTPOMURxD5frvUM0GE8,832
479
+ siliconcompiler-0.35.3.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
480
+ siliconcompiler-0.35.3.dist-info/RECORD,,