siliconcompiler 0.33.0__py3-none-any.whl → 0.33.2__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.
- siliconcompiler/_common.py +5 -0
- siliconcompiler/_metadata.py +1 -1
- siliconcompiler/apps/sc_install.py +7 -0
- siliconcompiler/apps/sc_remote.py +7 -2
- siliconcompiler/apps/utils/replay.py +5 -5
- siliconcompiler/core.py +38 -12
- siliconcompiler/data/templates/replay/replay.sh.j2 +18 -1
- siliconcompiler/metric.py +78 -0
- siliconcompiler/package/git.py +1 -1
- siliconcompiler/record.py +63 -7
- siliconcompiler/remote/client.py +57 -14
- siliconcompiler/remote/server.py +110 -60
- siliconcompiler/report/dashboard/cli/__init__.py +2 -0
- siliconcompiler/report/dashboard/cli/board.py +34 -31
- siliconcompiler/report/report.py +10 -5
- siliconcompiler/report/utils.py +12 -6
- siliconcompiler/scheduler/__init__.py +146 -976
- siliconcompiler/scheduler/run_node.py +12 -5
- siliconcompiler/scheduler/send_messages.py +9 -3
- siliconcompiler/scheduler/slurm.py +10 -43
- siliconcompiler/scheduler/taskscheduler.py +320 -0
- siliconcompiler/schema/baseschema.py +25 -4
- siliconcompiler/schema/journalingschema.py +4 -0
- siliconcompiler/schema/schema_cfg.py +3 -3
- siliconcompiler/tool.py +201 -32
- siliconcompiler/tools/_common/__init__.py +14 -11
- siliconcompiler/tools/_common/asic.py +5 -5
- siliconcompiler/tools/bluespec/convert.py +2 -1
- siliconcompiler/tools/builtin/_common.py +9 -2
- siliconcompiler/tools/builtin/concatenate.py +6 -2
- siliconcompiler/tools/builtin/minimum.py +7 -2
- siliconcompiler/tools/builtin/mux.py +7 -2
- siliconcompiler/tools/builtin/nop.py +7 -2
- siliconcompiler/tools/builtin/verify.py +7 -3
- siliconcompiler/tools/chisel/convert.py +10 -10
- siliconcompiler/tools/klayout/drc.py +2 -2
- siliconcompiler/tools/klayout/klayout_show.py +6 -6
- siliconcompiler/tools/klayout/klayout_utils.py +12 -12
- siliconcompiler/tools/netgen/count_lvs.py +2 -2
- siliconcompiler/tools/netgen/lvs.py +1 -1
- siliconcompiler/tools/openroad/_apr.py +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +1 -7
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +18 -0
- siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +1 -7
- siliconcompiler/tools/opensta/scripts/sc_timing.tcl +10 -0
- siliconcompiler/tools/opensta/timing.py +11 -0
- siliconcompiler/tools/slang/__init__.py +6 -5
- siliconcompiler/tools/slang/elaborate.py +6 -6
- siliconcompiler/tools/slang/lint.py +1 -3
- siliconcompiler/tools/vpr/_xml_constraint.py +8 -8
- siliconcompiler/tools/yosys/prepareLib.py +2 -2
- siliconcompiler/tools/yosys/sc_synth_asic.tcl +43 -5
- siliconcompiler/tools/yosys/screenshot.py +1 -1
- siliconcompiler/tools/yosys/syn_asic.py +5 -5
- siliconcompiler/toolscripts/_tools.json +17 -10
- siliconcompiler/toolscripts/rhel8/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-icarus.sh +10 -3
- siliconcompiler/toolscripts/rhel8/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/rhel8/install-magic.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-montage.sh +1 -1
- siliconcompiler/toolscripts/rhel8/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-slang.sh +11 -4
- siliconcompiler/toolscripts/rhel8/install-surelog.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/rhel8/install-verible.sh +11 -3
- siliconcompiler/toolscripts/rhel8/install-verilator.sh +10 -3
- siliconcompiler/toolscripts/rhel8/install-xyce.sh +15 -10
- siliconcompiler/toolscripts/rhel9/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-icarus.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/rhel9/install-magic.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-montage.sh +1 -1
- siliconcompiler/toolscripts/rhel9/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/rhel9/install-opensta.sh +17 -5
- siliconcompiler/toolscripts/rhel9/install-slang.sh +11 -4
- siliconcompiler/toolscripts/rhel9/install-surelog.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/rhel9/install-verible.sh +11 -3
- siliconcompiler/toolscripts/rhel9/install-verilator.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-vpr.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/rhel9/install-xyce.sh +15 -10
- siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +10 -2
- siliconcompiler/toolscripts/rhel9/install-yosys.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +10 -2
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +10 -3
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-montage.sh +1 -1
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +16 -5
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +11 -4
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +10 -2
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +11 -3
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +13 -8
- siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +10 -3
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +12 -1
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-montage.sh +1 -1
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +17 -5
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +11 -4
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +11 -3
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +13 -8
- siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +10 -3
- siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +12 -4
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +10 -3
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +12 -1
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-montage.sh +1 -1
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +17 -5
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +11 -4
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +10 -2
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +11 -3
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +13 -8
- siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +10 -3
- siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +10 -2
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +9 -2
- siliconcompiler/utils/__init__.py +11 -0
- siliconcompiler/utils/flowgraph.py +6 -101
- siliconcompiler/utils/issue.py +15 -23
- siliconcompiler/utils/logging.py +2 -2
- {siliconcompiler-0.33.0.dist-info → siliconcompiler-0.33.2.dist-info}/METADATA +6 -5
- {siliconcompiler-0.33.0.dist-info → siliconcompiler-0.33.2.dist-info}/RECORD +177 -176
- {siliconcompiler-0.33.0.dist-info → siliconcompiler-0.33.2.dist-info}/WHEEL +1 -1
- {siliconcompiler-0.33.0.dist-info → siliconcompiler-0.33.2.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.33.0.dist-info → siliconcompiler-0.33.2.dist-info}/licenses/LICENSE +0 -0
- {siliconcompiler-0.33.0.dist-info → siliconcompiler-0.33.2.dist-info}/top_level.txt +0 -0
|
@@ -3,6 +3,8 @@ import os
|
|
|
3
3
|
import re
|
|
4
4
|
import psutil
|
|
5
5
|
import shutil
|
|
6
|
+
import traceback
|
|
7
|
+
from io import StringIO
|
|
6
8
|
from pathlib import Path
|
|
7
9
|
from jinja2 import Environment, FileSystemLoader
|
|
8
10
|
from siliconcompiler.schema.parametervalue import PathNodeValue
|
|
@@ -414,3 +416,12 @@ def get_cores(chip, physical=False):
|
|
|
414
416
|
cores = 1
|
|
415
417
|
|
|
416
418
|
return cores
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
def print_traceback(logger, exception):
|
|
422
|
+
logger.error(f'{exception}')
|
|
423
|
+
trace = StringIO()
|
|
424
|
+
traceback.print_tb(exception.__traceback__, file=trace)
|
|
425
|
+
logger.error("Backtrace:")
|
|
426
|
+
for line in trace.getvalue().splitlines():
|
|
427
|
+
logger.error(line)
|
|
@@ -6,88 +6,6 @@ from siliconcompiler.tools._common import input_file_node_name, get_tool_task
|
|
|
6
6
|
from siliconcompiler.flowgraph import RuntimeFlowgraph
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
def _get_pruned_node_inputs(chip, flow, node):
|
|
10
|
-
# Ignore option from/to, we want reachable nodes of the whole flowgraph
|
|
11
|
-
flow_schema = chip.schema.get("flowgraph", flow, field="schema")
|
|
12
|
-
runtime = RuntimeFlowgraph(
|
|
13
|
-
flow_schema,
|
|
14
|
-
from_steps=set([step for step, _ in flow_schema.get_entry_nodes()]),
|
|
15
|
-
prune_nodes=chip.get('option', 'prune'))
|
|
16
|
-
|
|
17
|
-
return runtime.get_node_inputs(*node, record=chip.schema.get("record", field="schema"))
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
#######################################
|
|
21
|
-
def _get_flowgraph_execution_order(chip, flow, reverse=False):
|
|
22
|
-
return chip.schema.get("flowgraph", flow, field="schema").get_execution_order(reverse=reverse)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def get_nodes_from(chip, flow, nodes):
|
|
26
|
-
runtime = RuntimeFlowgraph(
|
|
27
|
-
chip.schema.get("flowgraph", flow, field="schema"),
|
|
28
|
-
from_steps=chip.get('option', 'from'),
|
|
29
|
-
to_steps=chip.get('option', 'to'),
|
|
30
|
-
prune_nodes=chip.get('option', 'prune'))
|
|
31
|
-
|
|
32
|
-
all_nodes = set()
|
|
33
|
-
for node in nodes:
|
|
34
|
-
all_nodes.update(runtime.get_nodes_starting_at(*node))
|
|
35
|
-
|
|
36
|
-
return all_nodes
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
###########################################################################
|
|
40
|
-
def nodes_to_execute(chip, flow=None):
|
|
41
|
-
'''
|
|
42
|
-
Returns an ordered list of flowgraph nodes which will be executed.
|
|
43
|
-
This takes the from/to options into account if flow is the current flow or None.
|
|
44
|
-
|
|
45
|
-
Returns:
|
|
46
|
-
A list of nodes that will get executed during run() (or a specific flow).
|
|
47
|
-
|
|
48
|
-
Example:
|
|
49
|
-
>>> nodes = nodes_to_execute()
|
|
50
|
-
'''
|
|
51
|
-
if flow is None:
|
|
52
|
-
flow = chip.get('option', 'flow')
|
|
53
|
-
|
|
54
|
-
runtime = RuntimeFlowgraph(
|
|
55
|
-
chip.schema.get("flowgraph", flow, field='schema'),
|
|
56
|
-
args=(chip.get('arg', 'step'), chip.get('arg', 'index')),
|
|
57
|
-
from_steps=chip.get('option', 'from'),
|
|
58
|
-
to_steps=chip.get('option', 'to'),
|
|
59
|
-
prune_nodes=chip.get('option', 'prune'))
|
|
60
|
-
|
|
61
|
-
return runtime.get_nodes()
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
###########################################################################
|
|
65
|
-
def _check_flowgraph(chip, flow=None):
|
|
66
|
-
'''
|
|
67
|
-
Check if flowgraph is valid.
|
|
68
|
-
|
|
69
|
-
* Checks if all edges have valid nodes
|
|
70
|
-
* Checks that there are no duplicate edges
|
|
71
|
-
* Checks if from/to is valid
|
|
72
|
-
|
|
73
|
-
Returns True if valid, False otherwise.
|
|
74
|
-
'''
|
|
75
|
-
|
|
76
|
-
if not flow:
|
|
77
|
-
flow = chip.get('option', 'flow')
|
|
78
|
-
|
|
79
|
-
error = not chip.schema.get("flowgraph", flow, field="schema").validate(logger=chip.logger)
|
|
80
|
-
if not error:
|
|
81
|
-
error = not RuntimeFlowgraph.validate(
|
|
82
|
-
chip.schema.get("flowgraph", flow, field="schema"),
|
|
83
|
-
from_steps=chip.get('option', 'from'),
|
|
84
|
-
to_steps=chip.get('option', 'to'),
|
|
85
|
-
prune_nodes=chip.get('option', 'prune'),
|
|
86
|
-
logger=chip.logger)
|
|
87
|
-
|
|
88
|
-
return not error
|
|
89
|
-
|
|
90
|
-
|
|
91
9
|
###########################################################################
|
|
92
10
|
def _check_flowgraph_io(chip, nodes=None):
|
|
93
11
|
'''Check if flowgraph is valid in terms of input and output files.
|
|
@@ -98,7 +16,6 @@ def _check_flowgraph_io(chip, nodes=None):
|
|
|
98
16
|
|
|
99
17
|
runtime_full = RuntimeFlowgraph(
|
|
100
18
|
chip.schema.get("flowgraph", flow, field='schema'),
|
|
101
|
-
args=(chip.get('arg', 'step'), chip.get('arg', 'index')),
|
|
102
19
|
to_steps=chip.get('option', 'to'),
|
|
103
20
|
prune_nodes=chip.get('option', 'prune'))
|
|
104
21
|
runtime_flow = RuntimeFlowgraph(
|
|
@@ -144,7 +61,11 @@ def _check_flowgraph_io(chip, nodes=None):
|
|
|
144
61
|
manifest = f'{design}.pkg.json'
|
|
145
62
|
inputs = [inp for inp in os.listdir(in_step_out_dir) if inp != manifest]
|
|
146
63
|
else:
|
|
147
|
-
|
|
64
|
+
in_tool, _ = get_tool_task(chip, in_step, in_index, flow=flow)
|
|
65
|
+
task_class = chip.get("tool", in_tool, field="schema")
|
|
66
|
+
task_class.set_runtime(chip, step=in_step, index=in_index)
|
|
67
|
+
|
|
68
|
+
inputs = task_class.get_output_files()
|
|
148
69
|
|
|
149
70
|
for inp in inputs:
|
|
150
71
|
node_inp = input_file_node_name(inp, in_step, in_index)
|
|
@@ -165,22 +86,6 @@ def _check_flowgraph_io(chip, nodes=None):
|
|
|
165
86
|
return True
|
|
166
87
|
|
|
167
88
|
|
|
168
|
-
###########################################################################
|
|
169
|
-
def _gather_outputs(chip, step, index):
|
|
170
|
-
'''Return set of filenames that are guaranteed to be in outputs
|
|
171
|
-
directory after a successful run of step/index.'''
|
|
172
|
-
|
|
173
|
-
flow = chip.get('option', 'flow')
|
|
174
|
-
task_gather = getattr(chip._get_task_module(step, index, flow=flow, error=False),
|
|
175
|
-
'_gather_outputs',
|
|
176
|
-
None)
|
|
177
|
-
if task_gather:
|
|
178
|
-
return set(task_gather(chip, step, index))
|
|
179
|
-
|
|
180
|
-
tool, task = get_tool_task(chip, step, index, flow=flow)
|
|
181
|
-
return set(chip.get('tool', tool, 'task', task, 'output', step=step, index=index))
|
|
182
|
-
|
|
183
|
-
|
|
184
89
|
def _get_flowgraph_information(chip, flow, io=True):
|
|
185
90
|
from siliconcompiler.scheduler import _setup_node
|
|
186
91
|
from siliconcompiler.tools._common import input_provides, input_file_node_name
|
|
@@ -190,7 +95,7 @@ def _get_flowgraph_information(chip, flow, io=True):
|
|
|
190
95
|
chip.schema = chip.schema.copy()
|
|
191
96
|
|
|
192
97
|
# Setup nodes
|
|
193
|
-
node_exec_order =
|
|
98
|
+
node_exec_order = chip.schema.get("flowgraph", flow, field="schema").get_execution_order()
|
|
194
99
|
if io:
|
|
195
100
|
# try:
|
|
196
101
|
for layer_nodes in node_exec_order:
|
siliconcompiler/utils/issue.py
CHANGED
|
@@ -8,7 +8,6 @@ import time
|
|
|
8
8
|
import tempfile
|
|
9
9
|
from datetime import datetime
|
|
10
10
|
from siliconcompiler.utils import get_file_template
|
|
11
|
-
from siliconcompiler.scheduler import _makecmd, _write_task_manifest
|
|
12
11
|
from siliconcompiler.tools._common import get_tool_task
|
|
13
12
|
from siliconcompiler import RecordSchema
|
|
14
13
|
|
|
@@ -24,7 +23,6 @@ def generate_testcase(chip,
|
|
|
24
23
|
include_specific_libraries=None,
|
|
25
24
|
hash_files=False,
|
|
26
25
|
verbose_collect=True):
|
|
27
|
-
|
|
28
26
|
# Save original schema since it will be modified
|
|
29
27
|
schema_copy = chip.schema.copy()
|
|
30
28
|
|
|
@@ -153,38 +151,32 @@ def generate_testcase(chip,
|
|
|
153
151
|
current_work_dir = os.getcwd()
|
|
154
152
|
os.chdir(new_work_dir)
|
|
155
153
|
|
|
154
|
+
flow = chip.get('option', 'flow')
|
|
155
|
+
|
|
156
|
+
task_class = chip.get("tool", tool, field="schema")
|
|
157
|
+
|
|
158
|
+
task_class.set_runtime(chip, step=step, index=index)
|
|
159
|
+
|
|
156
160
|
# Rewrite replay.sh
|
|
157
161
|
prev_quiet = chip.get('option', 'quiet', step=step, index=index)
|
|
158
162
|
chip.set('option', 'quiet', True, step=step, index=index)
|
|
159
|
-
from siliconcompiler import SiliconCompilerError
|
|
160
163
|
try:
|
|
161
|
-
# Rerun
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
func = getattr(chip._get_task_module(step, index, flow=flow), 'pre_process', None)
|
|
165
|
-
if func:
|
|
166
|
-
try:
|
|
167
|
-
# Rerun pre_process
|
|
168
|
-
func(chip)
|
|
169
|
-
except Exception:
|
|
170
|
-
pass
|
|
171
|
-
except SiliconCompilerError:
|
|
164
|
+
# Rerun pre_process
|
|
165
|
+
task_class.pre_process()
|
|
166
|
+
except Exception:
|
|
172
167
|
pass
|
|
173
168
|
chip.set('option', 'quiet', prev_quiet, step=step, index=index)
|
|
174
169
|
|
|
175
|
-
|
|
176
|
-
is_python_tool = hasattr(chip._get_task_module(step, index, flow=flow), 'run')
|
|
170
|
+
is_python_tool = task_class.get_exe() is None
|
|
177
171
|
|
|
178
172
|
if not is_python_tool:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
173
|
+
task_class.generate_replay_script(
|
|
174
|
+
f'{chip.getworkdir(step=step, index=index)}/replay.sh',
|
|
175
|
+
'.',
|
|
176
|
+
include_path=False)
|
|
183
177
|
|
|
184
178
|
# Rewrite tool manifest
|
|
185
|
-
|
|
186
|
-
chip.set('arg', 'index', index)
|
|
187
|
-
_write_task_manifest(chip, tool, path=new_work_dir)
|
|
179
|
+
task_class.write_task_manifest('.')
|
|
188
180
|
|
|
189
181
|
# Restore normal path behavior
|
|
190
182
|
chip._relative_path = None
|
siliconcompiler/utils/logging.py
CHANGED
|
@@ -32,12 +32,12 @@ class SCLoggerFormatter(logging.Formatter):
|
|
|
32
32
|
class SCInRunLoggerFormatter(logging.Formatter):
|
|
33
33
|
def __init__(self, chip, jobname, step, index):
|
|
34
34
|
super().__init__(
|
|
35
|
-
SCInRunLoggerFormatter.
|
|
35
|
+
SCInRunLoggerFormatter.configure_format(
|
|
36
36
|
"| %(levelname)-8s | {} | {} | {} | %(message)s",
|
|
37
37
|
chip, step, index))
|
|
38
38
|
|
|
39
39
|
@staticmethod
|
|
40
|
-
def
|
|
40
|
+
def configure_format(fmt, chip, step, index):
|
|
41
41
|
max_width = 20
|
|
42
42
|
|
|
43
43
|
flow = chip.get('option', 'flow')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.33.
|
|
3
|
+
Version: 0.33.2
|
|
4
4
|
Summary: A compiler framework that automates translation from source code to silicon.
|
|
5
5
|
Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -26,7 +26,7 @@ Requires-Python: >=3.8
|
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
|
|
29
|
-
Requires-Dist: aiohttp<3.
|
|
29
|
+
Requires-Dist: aiohttp<3.13.0,>=3.10.11; python_version >= "3.9"
|
|
30
30
|
Requires-Dist: requests==2.32.3
|
|
31
31
|
Requires-Dist: PyYAML==6.0.2
|
|
32
32
|
Requires-Dist: pandas>=1.1.5
|
|
@@ -47,9 +47,9 @@ Requires-Dist: docker==7.1.0
|
|
|
47
47
|
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
48
48
|
Requires-Dist: orjson==3.10.15; python_version <= "3.8"
|
|
49
49
|
Requires-Dist: orjson==3.10.18; python_version >= "3.9"
|
|
50
|
-
Requires-Dist: pyslang==8.
|
|
50
|
+
Requires-Dist: pyslang==8.1.0
|
|
51
51
|
Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
|
|
52
|
-
Requires-Dist: streamlit==1.45.
|
|
52
|
+
Requires-Dist: streamlit==1.45.1; python_version >= "3.9" and python_full_version != "3.9.7"
|
|
53
53
|
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|
|
54
54
|
Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
|
|
55
55
|
Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
|
|
@@ -58,7 +58,8 @@ Requires-Dist: rich==13.9.4; python_version <= "3.8"
|
|
|
58
58
|
Requires-Dist: rich<15.0.0,>=14.0.0; python_version >= "3.9"
|
|
59
59
|
Provides-Extra: test
|
|
60
60
|
Requires-Dist: pytest==8.3.5; extra == "test"
|
|
61
|
-
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
|
|
61
|
+
Requires-Dist: pytest-xdist==3.6.1; python_version <= "3.8" and extra == "test"
|
|
62
|
+
Requires-Dist: pytest-xdist==3.7.0; python_version >= "3.9" and extra == "test"
|
|
62
63
|
Requires-Dist: pytest-timeout==2.4.0; extra == "test"
|
|
63
64
|
Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
|
|
64
65
|
Requires-Dist: pytest-asyncio==0.26.0; python_version >= "3.9" and extra == "test"
|