siliconcompiler 0.35.4__py3-none-any.whl → 0.36.0__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 (59) hide show
  1. siliconcompiler/_metadata.py +1 -1
  2. siliconcompiler/constraints/__init__.py +4 -1
  3. siliconcompiler/constraints/asic_timing.py +230 -38
  4. siliconcompiler/constraints/fpga_timing.py +209 -14
  5. siliconcompiler/constraints/timing_mode.py +82 -0
  6. siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -6
  7. siliconcompiler/flowgraph.py +95 -42
  8. siliconcompiler/flows/generate_openroad_rcx.py +2 -2
  9. siliconcompiler/flows/highresscreenshotflow.py +37 -0
  10. siliconcompiler/library.py +2 -1
  11. siliconcompiler/package/__init__.py +39 -45
  12. siliconcompiler/project.py +4 -1
  13. siliconcompiler/scheduler/scheduler.py +64 -35
  14. siliconcompiler/scheduler/schedulernode.py +5 -2
  15. siliconcompiler/scheduler/slurm.py +7 -6
  16. siliconcompiler/scheduler/taskscheduler.py +19 -16
  17. siliconcompiler/schema/_metadata.py +1 -1
  18. siliconcompiler/schema/namedschema.py +2 -4
  19. siliconcompiler/schema_support/cmdlineschema.py +0 -3
  20. siliconcompiler/schema_support/dependencyschema.py +0 -6
  21. siliconcompiler/schema_support/record.py +4 -3
  22. siliconcompiler/tool.py +58 -27
  23. siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -6
  24. siliconcompiler/tools/keplerformal/__init__.py +7 -0
  25. siliconcompiler/tools/keplerformal/lec.py +112 -0
  26. siliconcompiler/tools/klayout/screenshot.py +66 -1
  27. siliconcompiler/tools/klayout/scripts/klayout_export.py +10 -40
  28. siliconcompiler/tools/klayout/scripts/klayout_show.py +4 -4
  29. siliconcompiler/tools/klayout/scripts/klayout_utils.py +13 -1
  30. siliconcompiler/tools/montage/tile.py +26 -12
  31. siliconcompiler/tools/openroad/_apr.py +26 -10
  32. siliconcompiler/tools/openroad/init_floorplan.py +5 -2
  33. siliconcompiler/tools/openroad/power_grid_analysis.py +1 -1
  34. siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +49 -14
  35. siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +6 -4
  36. siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +4 -4
  37. siliconcompiler/tools/openroad/scripts/common/procs.tcl +14 -5
  38. siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +2 -2
  39. siliconcompiler/tools/openroad/scripts/common/reports.tcl +6 -3
  40. siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +1 -1
  41. siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +8 -0
  42. siliconcompiler/tools/openroad/scripts/common/write_images.tcl +16 -12
  43. siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -1
  44. siliconcompiler/tools/openroad/write_data.py +2 -2
  45. siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +2 -2
  46. siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +2 -2
  47. siliconcompiler/tools/opensta/scripts/sc_timing.tcl +12 -14
  48. siliconcompiler/tools/opensta/timing.py +6 -2
  49. siliconcompiler/toolscripts/_tools.json +9 -4
  50. siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +72 -0
  51. siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +72 -0
  52. siliconcompiler/utils/multiprocessing.py +11 -0
  53. siliconcompiler/utils/settings.py +70 -49
  54. {siliconcompiler-0.35.4.dist-info → siliconcompiler-0.36.0.dist-info}/METADATA +3 -3
  55. {siliconcompiler-0.35.4.dist-info → siliconcompiler-0.36.0.dist-info}/RECORD +59 -53
  56. {siliconcompiler-0.35.4.dist-info → siliconcompiler-0.36.0.dist-info}/WHEEL +0 -0
  57. {siliconcompiler-0.35.4.dist-info → siliconcompiler-0.36.0.dist-info}/entry_points.txt +0 -0
  58. {siliconcompiler-0.35.4.dist-info → siliconcompiler-0.36.0.dist-info}/licenses/LICENSE +0 -0
  59. {siliconcompiler-0.35.4.dist-info → siliconcompiler-0.36.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,7 @@
1
1
  import json
2
2
  import os
3
3
  import logging
4
+ import threading
4
5
 
5
6
  import os.path
6
7
 
@@ -24,9 +25,14 @@ class SettingsManager:
24
25
 
25
26
  Args:
26
27
  filepath (str): The path to the JSON file where settings are stored.
28
+ If None, settings are kept in memory only.
29
+ logger (logging.Logger): Logger for logging errors and information.
30
+ timeout (float): Timeout in seconds for acquiring the file lock.
27
31
  """
28
32
  self.__filepath = filepath
29
- self.__lock = InterProcessLock(self.__filepath + ".lock")
33
+ if self.__filepath is not None:
34
+ self.__lock = InterProcessLock(self.__filepath + ".lock")
35
+ self.__settings_lock = threading.Lock()
30
36
  self.__timeout = timeout
31
37
  self.__logger = logger.getChild("settings")
32
38
  self.__settings = {}
@@ -37,58 +43,63 @@ class SettingsManager:
37
43
  Internal method to load settings from disk.
38
44
  It handles missing files and malformed JSON gracefully.
39
45
  """
40
- if not os.path.exists(self.__filepath):
46
+ if self.__filepath is None or not os.path.exists(self.__filepath):
41
47
  self.__settings = {}
42
48
  return
43
49
 
44
- try:
45
- if self.__lock.acquire(timeout=self.__timeout):
46
- try:
47
- with sc_open(self.__filepath, encoding='utf-8') as f:
48
- data = json.load(f)
49
- finally:
50
- self.__lock.release()
51
- else:
52
- self.__logger.error(f"Timeout acquiring lock for {self.__filepath}. "
50
+ with self.__settings_lock:
51
+ try:
52
+ if self.__lock.acquire(timeout=self.__timeout):
53
+ try:
54
+ with sc_open(self.__filepath, encoding='utf-8') as f:
55
+ data = json.load(f)
56
+ finally:
57
+ self.__lock.release()
58
+ else:
59
+ self.__logger.error(f"Timeout acquiring lock for {self.__filepath}. "
60
+ "Starting with empty settings.")
61
+ data = {}
62
+
63
+ # Ensure the loaded data is actually a dictionary
64
+ if isinstance(data, dict):
65
+ self.__settings = data
66
+ else:
67
+ # If valid JSON but not a dict (e.g. a list), reset to empty
68
+ self.__logger.warning(f"File {self.__filepath} did not contain a JSON object. "
69
+ "Resetting.")
70
+ self.__settings = {}
71
+
72
+ except json.JSONDecodeError:
73
+ self.__logger.error(f"File {self.__filepath} is malformed. "
53
74
  "Starting with empty settings.")
54
- data = {}
55
-
56
- # Ensure the loaded data is actually a dictionary
57
- if isinstance(data, dict):
58
- self.__settings = data
59
- else:
60
- # If valid JSON but not a dict (e.g. a list), reset to empty
61
- self.__logger.warning(f"File {self.__filepath} did not contain a JSON object. "
62
- "Resetting.")
63
75
  self.__settings = {}
64
-
65
- except json.JSONDecodeError:
66
- self.__logger.error(f"File {self.__filepath} is malformed. "
67
- "Starting with empty settings.")
68
- self.__settings = {}
69
- except Exception as e:
70
- # Catch-all for permission errors, etc., to ensure __init__ doesn't crash
71
- self.__logger.error(f"Unexpected error loading settings: {e}")
72
- self.__settings = {}
76
+ except Exception as e:
77
+ # Catch-all for permission errors, etc., to ensure __init__ doesn't crash
78
+ self.__logger.error(f"Unexpected error loading settings: {e}")
79
+ self.__settings = {}
73
80
 
74
81
  def save(self):
75
82
  """
76
83
  Save the current settings to the disk in JSON format.
77
84
  """
85
+ if self.__filepath is None:
86
+ return
87
+
78
88
  try:
79
89
  # Ensure directory exists
80
90
  directory = os.path.dirname(self.__filepath)
81
91
  if directory and not os.path.exists(directory):
82
92
  os.makedirs(directory)
83
93
 
84
- with self.__lock:
85
- with open(self.__filepath, 'w', encoding='utf-8') as f:
86
- json.dump(self.__settings, f, indent=4)
94
+ with self.__settings_lock:
95
+ with self.__lock:
96
+ with open(self.__filepath, 'w', encoding='utf-8') as f:
97
+ json.dump(self.__settings, f, indent=4)
87
98
  except Exception as e:
88
99
  self.__logger.error(f"Failed to save settings to {self.__filepath}: {e}")
89
100
  raise e
90
101
 
91
- def set(self, category: str, key: str, value):
102
+ def set(self, category: str, key: str, value, keep: bool = False):
92
103
  """
93
104
  Set a specific setting within a category.
94
105
 
@@ -96,11 +107,15 @@ class SettingsManager:
96
107
  category (str): The group name (e.g., 'showtools', 'options').
97
108
  key (str): The specific setting name.
98
109
  value: The value to store (must be JSON serializable).
110
+ keep (bool): If True, do not overwrite existing value.
99
111
  """
100
- if category not in self.__settings:
101
- self.__settings[category] = {}
112
+ with self.__settings_lock:
113
+ if category not in self.__settings:
114
+ self.__settings[category] = {}
102
115
 
103
- self.__settings[category][key] = value
116
+ if keep and key in self.__settings[category]:
117
+ return
118
+ self.__settings[category][key] = value
104
119
 
105
120
  def get(self, category: str, key: str, default=None):
106
121
  """
@@ -114,28 +129,34 @@ class SettingsManager:
114
129
  Returns:
115
130
  The stored value or the default.
116
131
  """
117
- if category not in self.__settings:
118
- return default
132
+ with self.__settings_lock:
133
+ if category not in self.__settings:
134
+ return default
119
135
 
120
- return self.__settings[category].get(key, default)
136
+ return self.__settings[category].get(key, default)
121
137
 
122
138
  def get_category(self, category: str):
123
139
  """
124
140
  Retrieve all settings for a specific category.
125
141
  Returns an empty dict if category does not exist.
126
142
  """
127
- return self.__settings.get(category, {})
143
+ with self.__settings_lock:
144
+ if category not in self.__settings:
145
+ self.__settings[category] = {}
146
+
147
+ return self.__settings.get(category).copy()
128
148
 
129
149
  def delete(self, category: str, key: Optional[str] = None):
130
150
  """
131
151
  Remove a setting.
132
152
  """
133
- if category in self.__settings:
134
- if key:
135
- if key in self.__settings[category]:
136
- del self.__settings[category][key]
137
- # Clean up empty categories
138
- if not self.__settings[category]:
139
- del self.__settings[category]
140
- else:
141
- del self.__settings[category]
153
+ with self.__settings_lock:
154
+ if category in self.__settings:
155
+ if key:
156
+ if key in self.__settings[category]:
157
+ del self.__settings[category][key]
158
+ # Clean up empty categories
159
+ if not self.__settings[category]:
160
+ del self.__settings[category]
161
+ else:
162
+ del self.__settings[category]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.35.4
3
+ Version: 0.36.0
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
@@ -38,7 +38,7 @@ Requires-Dist: PyYAML<7.0.0,>=6.0.0
38
38
  Requires-Dist: GitPython<3.2,>=3.1.44
39
39
  Requires-Dist: PyGithub<2.9.0,>=2.8.0
40
40
  Requires-Dist: urllib3>=1.26.0
41
- Requires-Dist: lambdapdk>=0.2.4
41
+ Requires-Dist: lambdapdk>=0.2.6
42
42
  Requires-Dist: fasteners>=0.20
43
43
  Requires-Dist: pandas>=1.1.5
44
44
  Requires-Dist: psutil>=5.8.0
@@ -61,7 +61,7 @@ Requires-Dist: responses==0.25.8; extra == "test"
61
61
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
62
62
  Provides-Extra: lint
63
63
  Requires-Dist: flake8==7.3.0; extra == "lint"
64
- Requires-Dist: tclint==0.6.2; extra == "lint"
64
+ Requires-Dist: tclint==0.7.0; extra == "lint"
65
65
  Requires-Dist: codespell==2.4.1; extra == "lint"
66
66
  Provides-Extra: docs
67
67
  Requires-Dist: Sphinx<8.3,>=7.4; extra == "docs"
@@ -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=41z6X_WgZYacn-LI3m1ax_ddyf9ye0qU76KAk8jtc84,1286
3
+ siliconcompiler/_metadata.py,sha256=Rfx4HOcCBYofpZGGNVyh4vyUvommp9G8I-eV4yzRSGg,1286
4
4
  siliconcompiler/asic.py,sha256=KXs-mjFHjiCRlyUClNIb-Zvdkxa8dGafStHm-rX3vu8,28912
5
5
  siliconcompiler/checklist.py,sha256=MD0cVYm5RrxSDCBVO1nakGC6LH5hWnzisaF4e0V6eV8,24909
6
6
  siliconcompiler/design.py,sha256=vFcenCV1Q3IVsdpeh4h9wCm4lyAfJMH5e-Oqg4Ji4sQ,34555
7
- siliconcompiler/flowgraph.py,sha256=OGaXd88alyrSQizHyeRPK9UkNz1fqrLg0AkIkrc70y4,63295
7
+ siliconcompiler/flowgraph.py,sha256=oGWC84amHIcx2gUO7QMkJ7vphfaOzrkp0LXHPsIZVpU,65557
8
8
  siliconcompiler/fpga.py,sha256=8uvmIyvWOWx5X1JP3xaSpkA9hVyox4l-hK63aYzN8-w,9075
9
- siliconcompiler/library.py,sha256=5MnryNBF9Dsg9mcD-Nl0NWrsE6hBlUo3tE2fdWXqt5E,16033
9
+ siliconcompiler/library.py,sha256=pPzUaVZXizS6eRLsnSrILwCgBtHfOzWk9CwC5COoHOk,16065
10
10
  siliconcompiler/pdk.py,sha256=rENDQve5edt7EkdgnNfW-mfgJVklShLbvYddaEA1-_k,31581
11
- siliconcompiler/project.py,sha256=2qtXA_J-biNj5yjSPAL3GSVAsjphyu9Zsn0sqyAUjho,51678
11
+ siliconcompiler/project.py,sha256=dyqKwlKnv23ccvWs-8jghmE8_16qcMGCfdz_azGLMCE,51820
12
12
  siliconcompiler/schematic.py,sha256=0PVFqZvJZW_e2NRGvv6DJPHGjwOlao1qHgZLhgCaEcQ,18385
13
- siliconcompiler/tool.py,sha256=sS6oOX9gvGn29WGawL11OWm8DcDFZmLP1_hsOoNpzp8,110305
13
+ siliconcompiler/tool.py,sha256=U56aDkSm2kkn_BdmBgxV0id9CmgKLw6JSWUV5F_1Y58,111684
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
@@ -24,12 +24,13 @@ siliconcompiler/apps/utils/replay.py,sha256=jtWJCMeoLPLuV1hVZ-tqXzdXF8V_F-ShueFI
24
24
  siliconcompiler/apps/utils/summarize.py,sha256=NbY04DDRSjEDhu0at46dRXX8-0iHxWIcPYppsZPHdy8,830
25
25
  siliconcompiler/checklists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  siliconcompiler/checklists/oh_tapeout.py,sha256=mw2JX9wy2rhRhHZ0kmfifDoi9l8yasM0ci1G1gGPDls,968
27
- siliconcompiler/constraints/__init__.py,sha256=Tc8QtY-DGcluZqJTpZvst4h3F8pbiiTgH3dm2F0aB74,940
27
+ siliconcompiler/constraints/__init__.py,sha256=rRfY3tq-Qk_32SdD2air8TZQuyA-XwCCHGVl_I0pxGU,1034
28
28
  siliconcompiler/constraints/asic_component.py,sha256=VPied32JQdoFBo8LsBKjo8r1-f9PXMdxCXpsOjUqwxA,17872
29
29
  siliconcompiler/constraints/asic_floorplan.py,sha256=79Qqm3MhWrXDXBEG3tkoIFcxg5GGRqZZzrrzuVn0tww,21507
30
30
  siliconcompiler/constraints/asic_pins.py,sha256=hpJ1tWcAt45EInHGLcRBtY5xgvff3_QuOF8eeHZbuW8,21179
31
- siliconcompiler/constraints/asic_timing.py,sha256=Vgdlg_Z7ncLyIEZU5M8Pv6q0jP9wKH7bc-V9bPpT_FY,21768
32
- siliconcompiler/constraints/fpga_timing.py,sha256=x36PVBYaR2JPCFOY8V59lyyPfj-fq3cPgsYMxLV-p90,7310
31
+ siliconcompiler/constraints/asic_timing.py,sha256=ML6mmbro5eXMAkPlEuE1JKM0bSRpHDVrro80HXbpEMo,29732
32
+ siliconcompiler/constraints/fpga_timing.py,sha256=4vNMuGWMZU7gxp3v8JEIaFF1p4_6IobJ5SsgPm0E0uI,15426
33
+ siliconcompiler/constraints/timing_mode.py,sha256=xNbjacDCCXCb24-eLzQKB6ieQNJnU8vITQdm9SBhVpg,3206
33
34
  siliconcompiler/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
35
  siliconcompiler/data/heartbeat.sdc,sha256=4VirwToHzr1PI4sxiEx8ArRoDdxbIPnMiNKaMVUs22g,139
35
36
  siliconcompiler/data/heartbeat.v,sha256=6HKc1j1JuuCj8oTIsbFBlDEoytzzEheUyTyokte2b18,420
@@ -60,7 +61,7 @@ siliconcompiler/data/templates/replay/setup.sh,sha256=bZMAd_moGtqDB8wRWMJBbktdFw
60
61
  siliconcompiler/data/templates/slurm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
62
  siliconcompiler/data/templates/slurm/run.sh,sha256=uXs91H0vjLB8G8vaezxXSr3XNR2EUiXH1dyfOSHYYnk,214
62
63
  siliconcompiler/data/templates/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- siliconcompiler/data/templates/tcl/manifest.tcl.j2,sha256=NBhftbmUVygweTX5lh2dnV_G_XiMbeC4wHCUAB3RWCA,793
64
+ siliconcompiler/data/templates/tcl/manifest.tcl.j2,sha256=tkaZUwtHZnEUmA3MvZzCDcfWi3cDBZRmHFB6-Ex5xaU,662
64
65
  siliconcompiler/demos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
66
  siliconcompiler/demos/asic_demo.py,sha256=xijlManZUxLQ5pd3NxhwFaV_ZLNq0awa0HBu1zAN78k,1412
66
67
  siliconcompiler/demos/fpga_demo.py,sha256=DARCIa8CAqKmDNeSt1XioMYaNj4vh9F-ZpZU1C5c-6g,3293
@@ -69,7 +70,8 @@ siliconcompiler/flows/asicflow.py,sha256=zNY7ETEz7ZpxGEddkI1Ix32mNC046g4xa-XddGs
69
70
  siliconcompiler/flows/drcflow.py,sha256=ddwTctLIDhbdBUUZHtLhB8fRbJxduJrx5MOZ-iMKe98,632
70
71
  siliconcompiler/flows/dvflow.py,sha256=ytFSz5zOnzHJUXVEisu_TbvkbxmEva5ZkkrMUQCnPd8,2902
71
72
  siliconcompiler/flows/fpgaflow.py,sha256=_yRgbJ8Y1F5yJPQvPaIGxddoj3a46s0hmxig8-Q2Q2A,5549
72
- siliconcompiler/flows/generate_openroad_rcx.py,sha256=at_9AmyBAKTc-oIWEm9vuf0H0nuEzR5GiLvaQ1CDxw0,3658
73
+ siliconcompiler/flows/generate_openroad_rcx.py,sha256=k6RwWiuTKsPC_cDshlTNk2KcgLcdyF6SnyYJXHB2Fh0,3626
74
+ siliconcompiler/flows/highresscreenshotflow.py,sha256=NPkmxbv9-Q_o4MCBCVzsxWFGza7hvjjWNUTdZuVHgq4,1245
73
75
  siliconcompiler/flows/interposerflow.py,sha256=XfJBQWZmoKhfZOQu9ZHPvSlKcde1jNd0L8rfIB98pm4,1061
74
76
  siliconcompiler/flows/lintflow.py,sha256=zY2g6kTCSwtaGJuZV5hluFJW6zHIxtNQ2s9eVN7jAOQ,1453
75
77
  siliconcompiler/flows/showflow.py,sha256=ELBOd8FemSnvVyN89AyWzzXM88FIFmI46fdRIORLVfc,1023
@@ -82,7 +84,7 @@ siliconcompiler/metrics/asic.py,sha256=SwhBh2xSni4yYcV-PMfW4V3UhBptLtHhKlv-sv7CJ
82
84
  siliconcompiler/metrics/fpga.py,sha256=UgAi0O67aIc2evdBvSsy226UcHlxqYOZqPv8NfEfys8,10057
83
85
  siliconcompiler/optimizer/__init__.py,sha256=wdSuv3U7hoSdZn-TkaQtYehVdhS5F35Mb1McgaUw3hc,6599
84
86
  siliconcompiler/optimizer/vizier.py,sha256=JtoPktsa-qHN0i4PsfRnxvQAT0yVvQVRfdyYNOCYgU4,9011
85
- siliconcompiler/package/__init__.py,sha256=DYM7FASvn1uonQyvu7bx1xTP2RQ0Pyifr3Ap2jOwGyU,25646
87
+ siliconcompiler/package/__init__.py,sha256=bXV3U6glsViFjDr1B1sKtNfymPEBhrQ1Sny5tkLha48,25479
86
88
  siliconcompiler/package/git.py,sha256=xq8_qi-2pmhswJ9ssUtRgSUNxpMGKZLDmnkdFYeq9iA,5950
87
89
  siliconcompiler/package/github.py,sha256=bzV-XrcmFMloa7_yhdxFjfe4r9OH36xHGY6ZCgHv0mA,6785
88
90
  siliconcompiler/package/https.py,sha256=OJL1PxOf6FbuGUrEx3gWpLEocd7p9gf9uvKh6a-7OQc,5753
@@ -129,20 +131,20 @@ siliconcompiler/scheduler/__init__.py,sha256=4ugpwR-X1BoSn38wEtR8nB1ZW77ktQW3eqA
129
131
  siliconcompiler/scheduler/docker.py,sha256=7eYlV0aMZISLov0af-LoX2TV3BnG8XYjGGhWXe3pgUY,12243
130
132
  siliconcompiler/scheduler/error.py,sha256=B1DhBhzqK5f8OCodmQIXdrGzRwE2cnfL9zbHLLQZPzw,193
131
133
  siliconcompiler/scheduler/run_node.py,sha256=MALxjvpM-pFkT9qzCQ9l_N12NMbFek3h8VYk5S2X5Tg,5739
132
- siliconcompiler/scheduler/scheduler.py,sha256=BXiSmCS2yaGk6vAxa-QpHNAVuJndKW95BwgUjpEGc5k,40788
133
- siliconcompiler/scheduler/schedulernode.py,sha256=mX7vvHjG9SF1K5_oS2dvK-1yZSjzY70c-aHJ9f98slg,59164
134
+ siliconcompiler/scheduler/scheduler.py,sha256=PyWvWteqUGK8ewMcTpMnQkapMKo8qCjuxJdncPRxc3A,41984
135
+ siliconcompiler/scheduler/schedulernode.py,sha256=TDHKpq7y53KjQSVwVhcHAyYqzDcAW2cjt7SW9JQT-50,59369
134
136
  siliconcompiler/scheduler/send_messages.py,sha256=zK5JVHu9qKlwFDiDboGJcy32zdnHBKxnafOTfFNzMl8,9411
135
- siliconcompiler/scheduler/slurm.py,sha256=oYvGr5Uxbo4G2lK2F3IS5hhSFKm3a5nEdiucUg4T-E4,11901
136
- siliconcompiler/scheduler/taskscheduler.py,sha256=yNfFNVTCPPeMX14-umjJA-b6UbmClcRFjrmK3xAtbWw,17645
137
+ siliconcompiler/scheduler/slurm.py,sha256=f-oGZH-kSg1gznGpat2nORZT2OjxZRhbuVr7hme_JnI,11894
138
+ siliconcompiler/scheduler/taskscheduler.py,sha256=i6rsv3QefZlgc6b9eEypIDGP-KhF6zGC8ClUbfzwsFU,17903
137
139
  siliconcompiler/scheduler/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
140
  siliconcompiler/scheduler/validation/email_credentials.json,sha256=hkJs0U2h2Bgm1zxeXvanIJ-prPhpn_aU6e3qwIs7qA0,1997
139
141
  siliconcompiler/schema/__init__.py,sha256=z5zc_4MG53d-Io5ZOFQT0suHkW8oN5CrdpJx28mwGUk,547
140
- siliconcompiler/schema/_metadata.py,sha256=SFDemUQc9rU-_cnUpbqbcecVVB1ceLxzcuPZALPqzGI,63
142
+ siliconcompiler/schema/_metadata.py,sha256=5k36T56kA9lriGp2gWKsM_Hc9rfD-Ya_yLd_gXYI4Pw,63
141
143
  siliconcompiler/schema/baseschema.py,sha256=ZSXwGaF7HiiSSxUFZwYczCOruxnnW1FnPz4_2MRKum8,51690
142
144
  siliconcompiler/schema/docschema.py,sha256=Hzmq_YDxXDol2iWAwP1grhqYga43NvqVtysCCVMBn3E,924
143
145
  siliconcompiler/schema/editableschema.py,sha256=3U_pIi_BFrFIdeXgJP-xj8GfUe0ZVvDtPmYGHDgxlSE,6067
144
146
  siliconcompiler/schema/journal.py,sha256=i3TYcuqdwq-FCCit8M02W8YbIUsY61mlPHSS-7Y0axc,6538
145
- siliconcompiler/schema/namedschema.py,sha256=bu3x0D7UdnkeZs3RXksn_5llUFrWwO3QItOEEWKLCDw,3820
147
+ siliconcompiler/schema/namedschema.py,sha256=ClKVd1hTDN_i9hrH3yNtF4FI4K_YYsPsuDnpE2hdI6M,3731
146
148
  siliconcompiler/schema/parameter.py,sha256=Y-TfK__m6NsudJXG3iTZHr5XlUg8JbIUZsg-VG6jnPo,34721
147
149
  siliconcompiler/schema/parametertype.py,sha256=oEkZN81sftAgnEEv84M9Vz8UPxwIRioxE6sJszV1A8o,11549
148
150
  siliconcompiler/schema/parametervalue.py,sha256=uqzWZ9lEmvqZsc0izkCd-anQVjdlLLitj4utEQQQzCY,30163
@@ -152,14 +154,14 @@ siliconcompiler/schema/docs/__init__.py,sha256=alRd_dr35ryJDKRaMx1dPpQ-NMBI-ldwH
152
154
  siliconcompiler/schema/docs/schemagen.py,sha256=rLHnCabkvy0cTzkuzxXSCuI4qRaefdpTI_ijjZBrdfs,20859
153
155
  siliconcompiler/schema/docs/utils.py,sha256=SCR9hYlQHUWbC6fT7LttKIfktzhMfrCL0BVxynYWtLc,10142
154
156
  siliconcompiler/schema_support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
- siliconcompiler/schema_support/cmdlineschema.py,sha256=B4eQS7goBB4lq1tGb-qgssXrsP8hfPJhXH162yy6rG4,10815
156
- siliconcompiler/schema_support/dependencyschema.py,sha256=KTpDV_e4frVnbHQLNcQPbC7uPKODWAvEqXmEHgiI8vo,10238
157
+ siliconcompiler/schema_support/cmdlineschema.py,sha256=r-v1lOMOx0wehG3-hgy6JuJVuzivhxt5t83KwxS8pfs,10691
158
+ siliconcompiler/schema_support/dependencyschema.py,sha256=LY6RhtxLOxjOBj7FBw88i0TlLd7WZlNh5omHBtU5VO8,9895
157
159
  siliconcompiler/schema_support/filesetschema.py,sha256=CE_JpDJYWqQzGgImgwPWOS7z_ymk4hY3H5I0qVU33Qo,11513
158
160
  siliconcompiler/schema_support/metric.py,sha256=mLzdtpM76l2cPINGWONrAjBMU28ZnQR_yLOGMYBLBV4,16158
159
161
  siliconcompiler/schema_support/option.py,sha256=URcEzo4qL34BU5j55hw0hnGy1Q-cVaHefTVmuYzYnOE,56105
160
162
  siliconcompiler/schema_support/packageschema.py,sha256=tB6wYEhZliaUVZDq40DlEfoo8ken6-Xh6zIafBRrxr4,10508
161
163
  siliconcompiler/schema_support/pathschema.py,sha256=Itr7HXf2xpGrZYzh4KIwBpuMqiD8KvWGyqHwkFyffVw,20876
162
- siliconcompiler/schema_support/record.py,sha256=pmo353Rw2_ptAPCfc5e-odYSgsVD5vF38udpwJ5HIZw,19646
164
+ siliconcompiler/schema_support/record.py,sha256=LjosKbOerR3-j5e2rAOQTDm932caeiiiTXKBW2mh_uE,19653
163
165
  siliconcompiler/targets/__init__.py,sha256=eWgvV4DeombChYqLxs5z_rOZ7Mt1q7N0WEetuBcNjZ4,1678
164
166
  siliconcompiler/targets/asap7_demo.py,sha256=sG3GdqkqGjhco43JHVV6-ys734fYTksx68VIJpZ4_IU,4760
165
167
  siliconcompiler/targets/freepdk45_demo.py,sha256=U5Z-EMQ_FKzjYH3ofvlqECxelZKr0wZdAGVmVoSCnoE,3180
@@ -173,7 +175,7 @@ siliconcompiler/tools/_common/sdc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
173
175
  siliconcompiler/tools/_common/sdc/sc_constraints.sdc,sha256=7Xr5F0VCM74hZrKdvhKfTtZkuz6o9kmCAEWG3hYSdgM,2815
174
176
  siliconcompiler/tools/_common/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
177
  siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl,sha256=OLTOwICl451POYoP3NFPT-wvZouWUZ2yCZXMQ3jKU4E,2041
176
- siliconcompiler/tools/_common/tcl/sc_schema_access.tcl,sha256=WHu9YvMZbH84SQNODSaEg6VMhaky02RPrBNFkScMcK4,3300
178
+ siliconcompiler/tools/_common/tcl/sc_schema_access.tcl,sha256=q14DOdeBO_N4mZuJW1b2NzUfJgc2yqP_0HEoSiEmVzg,3233
177
179
  siliconcompiler/tools/bambu/__init__.py,sha256=BqeJXQ-y7C6uDszjsz-Y93tGhFGl6JTjoY-5KrYASK0,1995
178
180
  siliconcompiler/tools/bambu/convert.py,sha256=_5eQ69ZPD3CgNHqR3fDoLBvY3AcgsCzC4AZm0AmVUcQ,6366
179
181
  siliconcompiler/tools/bluespec/__init__.py,sha256=VQ_8j43wuZAWgDCOpK3JbamBQde-MAI_lZwbYFEoRkU,537
@@ -207,18 +209,20 @@ siliconcompiler/tools/icarus/__init__.py,sha256=D6gM01JUjLySY6kf8gVXee_xVXr6oDzJ
207
209
  siliconcompiler/tools/icarus/compile.py,sha256=xPMuYw_UHc1Dq_hbSTQQF0yGUbenobDj7FzHrigJqAk,4755
208
210
  siliconcompiler/tools/icepack/__init__.py,sha256=FJnRz9I3Y5c2stJJXHSSBySTkpwJsYJ_HP1IuTPNZTo,226
209
211
  siliconcompiler/tools/icepack/bitstream.py,sha256=3tkwpZ84kQT7Rk0BlWdNEcx1KginTqNkKfyXIrcYKlY,598
212
+ siliconcompiler/tools/keplerformal/__init__.py,sha256=ENX6RIvg1q0byEyiIN5WDo-igP6wNYviZc4-N0FvQMg,275
213
+ siliconcompiler/tools/keplerformal/lec.py,sha256=6fJmWvXywRMBVKvDK-lm7ol19w1VqY53nwhttfWlyp0,4669
210
214
  siliconcompiler/tools/klayout/__init__.py,sha256=t2WHhiUAltGLFkw0N7wzs0m9Hx1xZo2tGx4d3uKSusY,8670
211
215
  siliconcompiler/tools/klayout/convert_drc_db.py,sha256=ekzfQJ5Gef0Xo9KzrbXgCC4P5KpGKS4ZSfWHrM9Gmic,812
212
216
  siliconcompiler/tools/klayout/drc.py,sha256=SbCl9PxlJ0irGmUZE-Ls8asF0M8jMorcQEWhtgbMMBM,2971
213
217
  siliconcompiler/tools/klayout/export.py,sha256=cdw-VcuBIybl2cAl923QpSnPHoRSfeok0003wkJXelg,3317
214
218
  siliconcompiler/tools/klayout/operations.py,sha256=Mjolv916cGpKSOI6b5o9KMWA5SXr_odW3wMFH8UbXmA,6942
215
- siliconcompiler/tools/klayout/screenshot.py,sha256=fZkvjvNuV93AlbE5WXZqDoTF2mRkJY0l-8OGF7ZOv-k,1910
219
+ siliconcompiler/tools/klayout/screenshot.py,sha256=hpUfZJ6dcgYypyLtcgfWByJOCPh4r16UvmoX_DgbOgg,4979
216
220
  siliconcompiler/tools/klayout/show.py,sha256=Lkmf90qOomLvrYELRhSSzH9F2i7cgsAfETHU2lVRxDs,1494
217
221
  siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py,sha256=QHsaiKybpj6Uisq7wLapx5xjABA1OMvxXYBHoaopPV4,5791
218
- siliconcompiler/tools/klayout/scripts/klayout_export.py,sha256=2kN05dejM3RbK1BzYS9fPfDpB2vxSDKnXLP9PkGp2DI,7537
222
+ siliconcompiler/tools/klayout/scripts/klayout_export.py,sha256=CpoVfoK1sjC5P0tSIEWHZrQP1D4aQdGWovbUFutAL_Y,6457
219
223
  siliconcompiler/tools/klayout/scripts/klayout_operations.py,sha256=whe-S6APZ9kreybanTvGGotd043NgatbFg6NEd6eka0,13264
220
- siliconcompiler/tools/klayout/scripts/klayout_show.py,sha256=CHXhr7tNQjlx4jbKkQv0E95xYq-l0a3pVlkAaQUfGRg,10232
221
- siliconcompiler/tools/klayout/scripts/klayout_utils.py,sha256=G0EcphgWqQU6C3ar4yhSkMhbPZY_dwD3fb8DMSYsqDU,7258
224
+ siliconcompiler/tools/klayout/scripts/klayout_show.py,sha256=o3aFDSWcotaE3Qb27gh-5uzl0OsMsH_7dkSC2stztzE,10306
225
+ siliconcompiler/tools/klayout/scripts/klayout_utils.py,sha256=9TiI-39WOGqXKsdjZDRhjtpsextORuZnuAMYbcRfaKM,7877
222
226
  siliconcompiler/tools/magic/__init__.py,sha256=NtsbRts5QE17ffDw08rtASAw2ZVDH0nTj3jYSb23r5o,3052
223
227
  siliconcompiler/tools/magic/drc.py,sha256=qqO7byf2OgrGXSjL-90Mx21CviEaP0dZZS9mJZjuBVY,626
224
228
  siliconcompiler/tools/magic/extspice.py,sha256=DQN9dSPdFoq_gd3-Zii9Q7k5qZkUA99ya3WoykHmomI,295
@@ -226,7 +230,7 @@ siliconcompiler/tools/magic/scripts/sc_drc.tcl,sha256=AOjXo2oQb59ahTJ3fAdfUBXZdy
226
230
  siliconcompiler/tools/magic/scripts/sc_extspice.tcl,sha256=uTjiX-lODBKkEb15X9OisF772wD633Z_em71VdnEJfg,1211
227
231
  siliconcompiler/tools/magic/scripts/sc_magic.tcl,sha256=epqTpobJg4tt4BQZI6tUQPChaKMGDLHqAKm5QUl8c8M,1090
228
232
  siliconcompiler/tools/montage/__init__.py,sha256=76pBHA1_5o2ZNBkbYUk-Qt1BwZyLObO4UbiwT95IJOw,652
229
- siliconcompiler/tools/montage/tile.py,sha256=o_e4xVKzMP5K6AvXO4e9G6BZH1gTPxPDGwyEfcfoH7U,1927
233
+ siliconcompiler/tools/montage/tile.py,sha256=MeIstyKpIzAAy2_jSfwr9lQb-1sWcBwxIOuGJeiTDaw,2595
230
234
  siliconcompiler/tools/netgen/__init__.py,sha256=wpq-BOmIy8sSffoR0CXjkMGUXv_cjRDMDXAzmkPqPFw,332
231
235
  siliconcompiler/tools/netgen/count_lvs.py,sha256=wFS0tINtXOTfddEQRiLcbsst-uUeU7N0YqdUOBWVuyQ,4655
232
236
  siliconcompiler/tools/netgen/lvs.py,sha256=IWgQfUEUMsBu8w7FXyjg7MQJAL1wTjXbDAD8vN7qO9w,2459
@@ -234,7 +238,7 @@ siliconcompiler/tools/netgen/scripts/sc_lvs.tcl,sha256=8zZGe5WS6LNnvNiw7zouCvOyc
234
238
  siliconcompiler/tools/nextpnr/__init__.py,sha256=IbOR4eOErXQ2fETrFZTW1LYECkp-umXad2iNBGnp7rk,274
235
239
  siliconcompiler/tools/nextpnr/apr.py,sha256=pWkV3gnz4m8Nap7HvMSJNCfYBnhEE6EtfU4fzADGMzs,2540
236
240
  siliconcompiler/tools/openroad/__init__.py,sha256=Tz8btFKq0yx0G4A6QrPQY9uf8Twf99tColXwg9jKblw,19077
237
- siliconcompiler/tools/openroad/_apr.py,sha256=L7Mgf5L70IjGszqXAFoDcmo5zKo8BqAa7uj_HUuyI6Y,45888
241
+ siliconcompiler/tools/openroad/_apr.py,sha256=IHvdJ3eWxpu50cghiSakfcqE3RxSV1_qUX5rpHiBEz8,46838
238
242
  siliconcompiler/tools/openroad/antenna_repair.py,sha256=eKKGKR85RGLWZXHR8uXU5X4j-FdbUrbrjnBVbvoTM3M,1727
239
243
  siliconcompiler/tools/openroad/clock_tree_synthesis.py,sha256=w6xXtx3y1hXnjIYk3qX46JyghGne2yCTfgRz97sACIU,1009
240
244
  siliconcompiler/tools/openroad/detailed_placement.py,sha256=dZDRwjkExZjPRRJjgxQLX3khpOR3mJe5mnJ7rc_32Os,911
@@ -244,12 +248,12 @@ siliconcompiler/tools/openroad/fillercell_insertion.py,sha256=80cqMQDNjD-jAX0QGW
244
248
  siliconcompiler/tools/openroad/fillmetal_insertion.py,sha256=23nkzQ2MTrj5IGVtqT6f9ugyGHE1eKF8x5sFIzFVA_o,2218
245
249
  siliconcompiler/tools/openroad/global_placement.py,sha256=HXZDmc0oOyKhhOrUC9w70agABqABGoBpmJ4gRv_K_Uk,2141
246
250
  siliconcompiler/tools/openroad/global_route.py,sha256=Ffi9btkzIiK-w28AyjWK19ynWts1ucQX9DZDBeB_Kv8,1232
247
- siliconcompiler/tools/openroad/init_floorplan.py,sha256=gsH0Q14atsD5FON7sjvh68xHKgh3-ccNhsSydBejMMs,8307
251
+ siliconcompiler/tools/openroad/init_floorplan.py,sha256=PqQQIulhWlQctarO4srBdYx5tR07NF4YIdebjMwmyp8,8539
248
252
  siliconcompiler/tools/openroad/macro_placement.py,sha256=-hCxwFywui0Rr8m5MsVRAeb8gMZnAY8iQuOFdz3b4tU,7124
249
253
  siliconcompiler/tools/openroad/metrics.py,sha256=rJc3Ea9PS6C6Qp1dOJqcIFRF3sX-FnyvYIKNRQm1I1s,771
250
254
  siliconcompiler/tools/openroad/pin_placement.py,sha256=utwYKDk0SlZVoBkPCp_40qzjHRN_7P8lVasT47T8WEw,768
251
255
  siliconcompiler/tools/openroad/power_grid.py,sha256=XSQ0hCUJfZ7JMf-qmUWa7k4z8FeSfv1taNtOfcNjZHw,2527
252
- siliconcompiler/tools/openroad/power_grid_analysis.py,sha256=p3AZ9-yGtEC0a4jsDAeWJwcCtuUuwmXW563FHQXSHOo,7233
256
+ siliconcompiler/tools/openroad/power_grid_analysis.py,sha256=KeOjbUuOW4Hp7u3jVaNmGcZgnRasmFnprbPNWUQioZk,7233
253
257
  siliconcompiler/tools/openroad/rcx_bench.py,sha256=lhYhqSYwLZmp73ytgHcW5RG9oH1nkT5maJ7FdA98O-Y,769
254
258
  siliconcompiler/tools/openroad/rcx_extract.py,sha256=wQtqXnwtK0-WBvZjfKHWVA7tvpp3lud3q_-YDn3c_Jo,687
255
259
  siliconcompiler/tools/openroad/rdlroute.py,sha256=d14hpYJPOlvG3cGIaZ8CYibqBxqsOMKKdiM_qWRf_Aw,1838
@@ -257,9 +261,9 @@ siliconcompiler/tools/openroad/repair_design.py,sha256=8TG7jhZXIPI-GTTJRaEj_Xb3P
257
261
  siliconcompiler/tools/openroad/repair_timing.py,sha256=eQc64Jvnmn4duwiTPJkrZkNrX5Ir6KxDNw2Ptrx279A,1950
258
262
  siliconcompiler/tools/openroad/screenshot.py,sha256=Smduxvuvi1HZAhjxh77VNOIYENlCVXshfIm0FnXlMxI,1192
259
263
  siliconcompiler/tools/openroad/show.py,sha256=53YN-0kdWl55WY8BBzj72Ueeun-iw0_w8su4UvB9c9U,2539
260
- siliconcompiler/tools/openroad/write_data.py,sha256=RY4S9oIk62ctSyOyAZWwgtCUH31zpmT9ahV9e2LmDts,3523
264
+ siliconcompiler/tools/openroad/write_data.py,sha256=3J8Ejb1IJLq4-0QZav9T405iD9abpPLfqteMZXJ58lQ,3547
261
265
  siliconcompiler/tools/openroad/scripts/sc_rcx.tcl,sha256=UEmadWu1jtLtFVtWWdEriWOV9dt3pvzOV098Bba5j6A,1125
262
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl,sha256=uXr-W-YmHejS6v8rPyit7aoPr4vcqLwlmD-4ZzrfhVA,4223
266
+ siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl,sha256=SCnEvvdk4_CT8XnCJorY2PoMgcVCEzwA95QhwVtS1PA,4311
263
267
  siliconcompiler/tools/openroad/scripts/sc_show.tcl,sha256=1pWahJDOUh1PUMLkvm1mtEH9y8q__gGgy8ar92A-iKY,1750
264
268
  siliconcompiler/tools/openroad/scripts/apr/postamble.tcl,sha256=i6hAGfQxeYc3VxcwTaisoKoX-1pez7V7EzUlp741J_4,1103
265
269
  siliconcompiler/tools/openroad/scripts/apr/preamble.tcl,sha256=hoJBQyolVyDadagS78I7M_wuLWKpc5SGONH8foJjdO4,2381
@@ -272,26 +276,26 @@ siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl,sha256=SI
272
276
  siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl,sha256=6pk8zBEsOiHrhh0HiktiIDn0MnKmFh7uPKm8tI-toDo,879
273
277
  siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl,sha256=fPS0lTd-_8Mss7TGpp-B_ddNcFtl2SXAtXiTOxvvDZA,2446
274
278
  siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl,sha256=1GyLe5vnacYyyxCFvJJCzNuQkVFo63pzd2-Q7V5jzgI,2029
275
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl,sha256=91VMK5za6S6kYumjvq4OUN2Rie8t0_vXtIjqLIpLPtE,11467
276
- siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl,sha256=vKKJ_LZyqq0U_SERXX4-UWWTEmgaNhdjtImHmuKZ5ZI,4373
279
+ siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl,sha256=DI2Fcx4cp4WBnqME6IrT5fkNI78TEr6uW6PKvV4ps8A,12673
280
+ siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl,sha256=ygqopETDLGFtu1RaU3yvS14TwVJI7k-zFAJyetIaRW8,4523
277
281
  siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl,sha256=3Nw3MJTmf-QtF2OIHpJMIGUbko_a9x71hWGOzkbR77M,4326
278
282
  siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl,sha256=SzCv0_evux_3ROliKkcXDl8__4cS4I1RPk2ufBoBOtE,476
279
283
  siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl,sha256=Hn8Il8F2TH3qwF1Sn6gMhonLOCKHrYypfstpouD-Mjg,1067
280
284
  siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl,sha256=7_a2sj1hEXzP5nb7MJY0jZ5DR2fLN-NC1OfEBuYdeVw,3618
281
285
  siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl,sha256=7tdUjfjYJ9mMX3SUW5vUrxPBielxPyGx17LgmNPbLMo,1717
282
286
  siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl,sha256=18YF3C4K0G4DcO0k1bw1kW_5FjdoPH_EfqvrrvuZaVA,4686
283
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl,sha256=wnKt9b6ht_3uuLEWH9J6DuH25VjeRiQohHMCVk6_BuE,3869
287
+ siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl,sha256=Qx0NEf61QWV0wX1BHsr6eSUQfnA87tyUl5anuY20OY4,3905
284
288
  siliconcompiler/tools/openroad/scripts/common/debugging.tcl,sha256=i4oNtC0rQq3JaFf1-oKyr_jZQyu5ZF_--zskvG0hdKg,943
285
- siliconcompiler/tools/openroad/scripts/common/procs.tcl,sha256=YaeE25Au68rztovytoJil9KSIttDCbWE8JS3OtURG8w,26079
289
+ siliconcompiler/tools/openroad/scripts/common/procs.tcl,sha256=kOS5ZJ-DEZxpr4Xy90ftSm68Y1TJujRoAA5YtrXDUA4,26474
286
290
  siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl,sha256=ghCw5V7GzM6sNUrNVh31rHd36re-ueZWtWaqesFcQmc,1888
287
- siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl,sha256=uGcRJO4UULQ24vdWEPPhhDLbmYrlh5zSdudUs9eQFG0,862
291
+ siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl,sha256=xdNEJEKqQyVPiZ6xSHJv0lg8sFMPXoQ9q9OQ0F_4boA,880
288
292
  siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl,sha256=gUYXIH_cUXBU1WnJOd6_V2sVKkoDz_3TrTGSV7IC05Q,723
289
- siliconcompiler/tools/openroad/scripts/common/reports.tcl,sha256=i7oZJqB4zOMOXRFgCCd5RDkvF8qy8QbrrvmS-Vwo0W0,7249
290
- siliconcompiler/tools/openroad/scripts/common/screenshot.tcl,sha256=8_1_-YFW4Q9-8hUdj-QcAcFImQ9Q6ByFyQEZYkEIjxg,333
293
+ siliconcompiler/tools/openroad/scripts/common/reports.tcl,sha256=9gdzKYiacv35R9XlGtL-cw4IXstyPZF6GbPxDTWAAtU,7474
294
+ siliconcompiler/tools/openroad/scripts/common/screenshot.tcl,sha256=1pZNbKsxo6x0sprTbv1MrbmSScM8g71XdDt3RiZizTo,330
291
295
  siliconcompiler/tools/openroad/scripts/common/write_data.tcl,sha256=xFFgR6mCpQEy8ATfSz1kUFr2BBnaPsv4cSHnWh7JqC8,100
292
- siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl,sha256=0djFSkFDZF8oEqbAcZcL_nMM1ustsMXaf0TGwznQBWM,139
296
+ siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl,sha256=V-Ul99R2j8xuCQEfySuUKGXu5YonIoa4ByBjY2odR7E,436
293
297
  siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl,sha256=_Axy9V9r0xWU0xLVwMdgkPUF6-C3cVmtE8J-j0OIzII,40
294
- siliconcompiler/tools/openroad/scripts/common/write_images.tcl,sha256=c2-346XfqJaMQjgDsBeJSqSKGZld4aG6_cZHTSwe0EQ,13626
298
+ siliconcompiler/tools/openroad/scripts/common/write_images.tcl,sha256=uvCmhhN9cY9TC_I99Nbv6TP7vepNqdwZYzC_Fce0ezo,13778
295
299
  siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl,sha256=eEYI8U26LYGR-zIaYPKCxg1IzohudquhpmuWYkTA4-Q,664
296
300
  siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl,sha256=1mPpVpBAX7uiBESb1rVBrYk-IzCkd-GaH2ghFSuguMo,487
297
301
  siliconcompiler/tools/openroad/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -299,12 +303,12 @@ siliconcompiler/tools/openroad/templates/pex.tcl,sha256=t-54kEYkIFkC5hIiMWw6IZD9
299
303
  siliconcompiler/tools/opensta/__init__.py,sha256=pIXOzzUQoTR5wpjD0BPt63lhxS2mvQqWAtXT1GNVFC8,3146
300
304
  siliconcompiler/tools/opensta/check_library.py,sha256=MmMgJAwDTAv7ob93pr7YBUjJa7UiQqBfFVit7a3vwiY,342
301
305
  siliconcompiler/tools/opensta/report_libraries.py,sha256=Mn5O2LYKhOh9DVidGzJaTi4lEDAxx4x8YeCjv2IXX4Q,313
302
- siliconcompiler/tools/opensta/timing.py,sha256=GPuuXG2rkg6R2BS9M9qpkMqtVYj4dp17_6jhVy4sxUI,10928
306
+ siliconcompiler/tools/opensta/timing.py,sha256=MyvOvnpYpM07qELmfYt_oMrsyNCXjmK88v9jASNraDk,11179
303
307
  siliconcompiler/tools/opensta/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
304
- siliconcompiler/tools/opensta/scripts/sc_check_library.tcl,sha256=1VLKsPCkY8joYOJl7WQ1iX8KZnSp18Z2n7rbk7Wqvz0,8783
308
+ siliconcompiler/tools/opensta/scripts/sc_check_library.tcl,sha256=sG2SPmC95ynp1lvIYHLIcdamdusjzsut5QmAJ_2jAj4,8801
305
309
  siliconcompiler/tools/opensta/scripts/sc_procs.tcl,sha256=JHOn1pn9VqaZY_PrGMstEfe6YzlbSHgnV-8KZ8kZMHY,1490
306
- siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl,sha256=M5zfz7xGYmQYnNM-Y-T18SUXN38YkO4M1gLroQ0m58I,2608
307
- siliconcompiler/tools/opensta/scripts/sc_timing.tcl,sha256=caaNlYJufoHfpE3KrgSzYtGxTcRsai7gGHFVy89InvI,10995
310
+ siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl,sha256=PhZ0s1O2jdOGZsjRRIRCG28N3JezasX8Ka2IU2QsXPU,2626
311
+ siliconcompiler/tools/opensta/scripts/sc_timing.tcl,sha256=L8U1r77fkO-8FMnqidn1D-Lx6whIw1RxDt0CeUEMLok,10968
308
312
  siliconcompiler/tools/slang/__init__.py,sha256=ZGxjqXIUnhZs5vBp5ZJVeCKqsGSNwyAN9hKFnIJc2cA,8270
309
313
  siliconcompiler/tools/slang/elaborate.py,sha256=9uqbMGZyOegKKXklyz9eHWzjq7dWgPu58yiCvXRMTlc,3990
310
314
  siliconcompiler/tools/slang/lint.py,sha256=BxDBZjdgegiPNKhFctTxZQlN_ce4cAm7ATThBdohlLs,562
@@ -356,7 +360,7 @@ siliconcompiler/tools/yosys/techmaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
356
360
  siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v,sha256=M4T-ygiKmlsprl5eGGLaV5w6HVqlEepn0wlUDmOkapg,773
357
361
  siliconcompiler/tools/yosys/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
362
  siliconcompiler/tools/yosys/templates/abc.const,sha256=TAq9ThdLMYCJGrtToEU0gWcLuEtjE4Gk8huBbTm1v-I,116
359
- siliconcompiler/toolscripts/_tools.json,sha256=PLlv0wQwGkr8h1jk7M-Zy89Hb9rdjeUwRDl6c1ogiwI,5094
363
+ siliconcompiler/toolscripts/_tools.json,sha256=z8EJlJmJzo_45pwOuwgxood-LXsQ3dBWSTdolelDL_k,5271
360
364
  siliconcompiler/toolscripts/_tools.py,sha256=P30KY_xbbjl8eHGsPAxDcAzWvJJpiL07ZfGZZDQbdR8,7174
361
365
  siliconcompiler/toolscripts/rhel8/install-chisel.sh,sha256=RJ7BiZhsXBLTgQhHUcRZmHqhKB6syVaC2nvVoGrIXOI,709
362
366
  siliconcompiler/toolscripts/rhel8/install-icarus.sh,sha256=EW7308IUGYOx7A22s7s0tNq90nHhrpHHUMrx3cd9lMM,962
@@ -419,6 +423,7 @@ siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh,sha256=I3Wwb6FvVJ54EniZaSsE
419
423
  siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh,sha256=z6IwcsjlxoO67BB3Dx3Iblrr-iRi7CI-DNr6RHrfZfI,812
420
424
  siliconcompiler/toolscripts/ubuntu22/install-icarus.sh,sha256=0m3HmC1bwrizyayBUcG-_78QwainqxYsBfh1AO-GjQk,746
421
425
  siliconcompiler/toolscripts/ubuntu22/install-icepack.sh,sha256=t-HrFwMrR9anG39wDKyLao12K5UKtCkZMOhmP4RGVVQ,864
426
+ siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh,sha256=-zrc6aj5JYRpMgpxxvq_5hHRy5gJO4TrveL0FkAl_ZM,1823
422
427
  siliconcompiler/toolscripts/ubuntu22/install-klayout.sh,sha256=Rb3aOg04E9QjwNad0s8k37LO4eMe-zuubshXbFbNMrg,1064
423
428
  siliconcompiler/toolscripts/ubuntu22/install-magic.sh,sha256=kSKT5W3i57HKrC1ZRSkKsti0SQC-CXQ-GloNoyJgksw,716
424
429
  siliconcompiler/toolscripts/ubuntu22/install-montage.sh,sha256=fkCWx59tzIyupTid_bnJFdwj7JD-qtifKOZ206jNcP4,77
@@ -446,6 +451,7 @@ siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh,sha256=I3Wwb6FvVJ54EniZaSsE
446
451
  siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh,sha256=OfBklpKzjsysm3NiZRVcDtcmNjqOiVS3PRrj2YXXiLI,818
447
452
  siliconcompiler/toolscripts/ubuntu24/install-icarus.sh,sha256=ZCPIGOR-04r2B4br7T2clt8kcBipcO2uKtGWpuG9__w,757
448
453
  siliconcompiler/toolscripts/ubuntu24/install-icepack.sh,sha256=t-HrFwMrR9anG39wDKyLao12K5UKtCkZMOhmP4RGVVQ,864
454
+ siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh,sha256=-zrc6aj5JYRpMgpxxvq_5hHRy5gJO4TrveL0FkAl_ZM,1823
449
455
  siliconcompiler/toolscripts/ubuntu24/install-klayout.sh,sha256=RHcGAA05NpeDL4jlWSTIFINTjcJPwVOzTduPBHtIzHc,1207
450
456
  siliconcompiler/toolscripts/ubuntu24/install-magic.sh,sha256=kSKT5W3i57HKrC1ZRSkKsti0SQC-CXQ-GloNoyJgksw,716
451
457
  siliconcompiler/toolscripts/ubuntu24/install-montage.sh,sha256=fkCWx59tzIyupTid_bnJFdwj7JD-qtifKOZ206jNcP4,77
@@ -470,14 +476,14 @@ siliconcompiler/utils/__init__.py,sha256=bGyb85ncMnc4NpKR4y3g4I6WX9mQPhFw6l_AlSp
470
476
  siliconcompiler/utils/curation.py,sha256=xVozvS1w77hLUomeVyWKUWxD5LJ7BZPjpd35D7zoY50,9228
471
477
  siliconcompiler/utils/issue.py,sha256=R6_HvVgp5uPQ72QKwAM8CQfDfKs3IKutykisq8Ht5vs,11029
472
478
  siliconcompiler/utils/logging.py,sha256=V3l07YocXPfD_0QbBDiW11bnnF4AWQMEmFvJfQscJnI,4667
473
- siliconcompiler/utils/multiprocessing.py,sha256=-J2DLVJ7uDeRVuF9SyBHsCm_vVM9WTW4fXEndW78NsM,11243
479
+ siliconcompiler/utils/multiprocessing.py,sha256=zmSzHRThGYSioIcTbD_mtz84jjjlsAfZE97lK3RkffE,11624
474
480
  siliconcompiler/utils/paths.py,sha256=322TbbEaU5wM-06Xo-E8IlzMNV3DRi4GKDwg2EgTry4,4813
475
- siliconcompiler/utils/settings.py,sha256=UHrxUqCB-_mIGggiYFqvx78eS2cHsHaezogMPzZOCaQ,4746
481
+ siliconcompiler/utils/settings.py,sha256=8Zj5LDP32RAg8xisMJFgTxaoY7NWT90nAxaggk7K0sA,5819
476
482
  siliconcompiler/utils/showtools.py,sha256=ZWD2frgt0t2Eh8S9Hl3CwGEa1cnNiQx-06pWtyDTiic,1375
477
483
  siliconcompiler/utils/units.py,sha256=mppo7T5xI2P2S7SweE_qsOuoTc7RezVX61G2whCzpV4,6261
478
- siliconcompiler-0.35.4.dist-info/licenses/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
479
- siliconcompiler-0.35.4.dist-info/METADATA,sha256=T6zMN9O35Xp9sSeV1dCdGJqFiUasxtdBACex4nA7-B4,11302
480
- siliconcompiler-0.35.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
481
- siliconcompiler-0.35.4.dist-info/entry_points.txt,sha256=5I-z7cmFNPRpD_x1dMQnm-oLwTPOMURxD5frvUM0GE8,832
482
- siliconcompiler-0.35.4.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
483
- siliconcompiler-0.35.4.dist-info/RECORD,,
484
+ siliconcompiler-0.36.0.dist-info/licenses/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
485
+ siliconcompiler-0.36.0.dist-info/METADATA,sha256=QRukk1Mb4_gO4DVIyUFoKcIARVB4o8Vp1qqY-qq2j_o,11302
486
+ siliconcompiler-0.36.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
487
+ siliconcompiler-0.36.0.dist-info/entry_points.txt,sha256=5I-z7cmFNPRpD_x1dMQnm-oLwTPOMURxD5frvUM0GE8,832
488
+ siliconcompiler-0.36.0.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
489
+ siliconcompiler-0.36.0.dist-info/RECORD,,