siliconcompiler 0.24.1__cp39-cp39-win_amd64.whl → 0.26.0__cp39-cp39-win_amd64.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 +30 -2
- siliconcompiler/_metadata.py +1 -1
- siliconcompiler/apps/sc.py +3 -0
- siliconcompiler/apps/sc_issue.py +1 -1
- siliconcompiler/apps/sc_remote.py +50 -10
- siliconcompiler/core.py +309 -74
- siliconcompiler/flowgraph.py +107 -59
- siliconcompiler/flows/_common.py +7 -76
- siliconcompiler/issue.py +29 -20
- siliconcompiler/remote/__init__.py +18 -5
- siliconcompiler/remote/client.py +132 -90
- siliconcompiler/remote/schema.py +4 -4
- siliconcompiler/remote/server.py +24 -15
- siliconcompiler/report/report.py +10 -8
- siliconcompiler/report/streamlit_viewer.py +1 -2
- siliconcompiler/report/summary_image.py +24 -20
- siliconcompiler/report/summary_table.py +16 -13
- siliconcompiler/report/utils.py +14 -6
- siliconcompiler/scheduler/__init__.py +214 -180
- siliconcompiler/scheduler/docker_runner.py +7 -2
- siliconcompiler/scheduler/run_node.py +0 -1
- siliconcompiler/scheduler/send_messages.py +4 -3
- siliconcompiler/scheduler/slurm.py +20 -1
- siliconcompiler/schema/schema_cfg.py +52 -90
- siliconcompiler/schema/schema_obj.py +5 -5
- siliconcompiler/schema/utils.py +4 -0
- siliconcompiler/targets/asap7_demo.py +0 -1
- siliconcompiler/targets/fpgaflow_demo.py +0 -1
- siliconcompiler/targets/freepdk45_demo.py +0 -1
- siliconcompiler/targets/gf180_demo.py +0 -1
- siliconcompiler/targets/skywater130_demo.py +0 -1
- siliconcompiler/templates/issue/README.txt +2 -2
- siliconcompiler/templates/slurm/run.sh +5 -3
- siliconcompiler/tools/_common/__init__.py +45 -9
- siliconcompiler/tools/bambu/convert.py +6 -20
- siliconcompiler/tools/bluespec/convert.py +8 -4
- siliconcompiler/tools/builtin/_common.py +13 -3
- siliconcompiler/tools/builtin/builtin.py +1 -1
- siliconcompiler/tools/builtin/concatenate.py +12 -5
- siliconcompiler/tools/builtin/join.py +1 -4
- siliconcompiler/tools/builtin/maximum.py +1 -5
- siliconcompiler/tools/builtin/minimum.py +1 -4
- siliconcompiler/tools/builtin/nop.py +1 -4
- siliconcompiler/tools/builtin/verify.py +2 -4
- siliconcompiler/tools/chisel/convert.py +6 -11
- siliconcompiler/tools/ghdl/convert.py +5 -4
- siliconcompiler/tools/icarus/compile.py +6 -0
- siliconcompiler/tools/openroad/dfm.py +21 -0
- siliconcompiler/tools/slang/__init__.py +17 -0
- siliconcompiler/tools/slang/lint.py +8 -3
- siliconcompiler/tools/surelog/bin/surelog.exe +0 -0
- siliconcompiler/tools/surelog/parse.py +21 -6
- siliconcompiler/tools/sv2v/convert.py +9 -3
- siliconcompiler/tools/verilator/lint.py +1 -0
- siliconcompiler/tools/verilator/verilator.py +3 -0
- siliconcompiler/tools/yosys/lec.py +2 -7
- siliconcompiler/tools/yosys/sc_lec.tcl +0 -1
- siliconcompiler/tools/yosys/sc_syn.tcl +1 -10
- siliconcompiler/tools/yosys/syn_fpga.tcl +6 -0
- siliconcompiler/use.py +12 -0
- siliconcompiler/utils/__init__.py +6 -4
- {siliconcompiler-0.24.1.dist-info → siliconcompiler-0.26.0.dist-info}/METADATA +6 -6
- {siliconcompiler-0.24.1.dist-info → siliconcompiler-0.26.0.dist-info}/RECORD +67 -67
- {siliconcompiler-0.24.1.dist-info → siliconcompiler-0.26.0.dist-info}/WHEEL +1 -1
- {siliconcompiler-0.24.1.dist-info → siliconcompiler-0.26.0.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.24.1.dist-info → siliconcompiler-0.26.0.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.24.1.dist-info → siliconcompiler-0.26.0.dist-info}/top_level.txt +0 -0
siliconcompiler/_common.py
CHANGED
|
@@ -1,9 +1,37 @@
|
|
|
1
1
|
class NodeStatus():
|
|
2
|
-
#
|
|
3
|
-
# schema.
|
|
2
|
+
# node waiting to run
|
|
4
3
|
PENDING = 'pending'
|
|
4
|
+
|
|
5
|
+
# node ready to run and waiting
|
|
6
|
+
QUEUED = 'queued'
|
|
7
|
+
|
|
8
|
+
# node running
|
|
9
|
+
RUNNING = 'running'
|
|
10
|
+
|
|
11
|
+
# node exit status
|
|
5
12
|
SUCCESS = 'success'
|
|
6
13
|
ERROR = 'error'
|
|
14
|
+
SKIPPED = 'skipped'
|
|
15
|
+
TIMEOUT = 'timeout'
|
|
16
|
+
|
|
17
|
+
def is_done(status):
|
|
18
|
+
return status in (
|
|
19
|
+
NodeStatus.SUCCESS,
|
|
20
|
+
NodeStatus.ERROR,
|
|
21
|
+
NodeStatus.SKIPPED,
|
|
22
|
+
NodeStatus.TIMEOUT
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
def is_running(status):
|
|
26
|
+
return status in (
|
|
27
|
+
NodeStatus.QUEUED,
|
|
28
|
+
NodeStatus.RUNNING
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
def is_waiting(status):
|
|
32
|
+
return status in (
|
|
33
|
+
NodeStatus.PENDING,
|
|
34
|
+
)
|
|
7
35
|
|
|
8
36
|
|
|
9
37
|
###############################################################################
|
siliconcompiler/_metadata.py
CHANGED
siliconcompiler/apps/sc.py
CHANGED
siliconcompiler/apps/sc_issue.py
CHANGED
|
@@ -175,7 +175,7 @@ To run a testcase, use:
|
|
|
175
175
|
# Rerun setup task, assumed to be running in its own thread so
|
|
176
176
|
# multiprocess is not needed
|
|
177
177
|
flow = chip.get('option', 'flow')
|
|
178
|
-
_runtask(chip, flow, step, index,
|
|
178
|
+
_runtask(chip, flow, step, index, _executenode, replay=True)
|
|
179
179
|
|
|
180
180
|
return 0
|
|
181
181
|
|
|
@@ -5,9 +5,9 @@ import sys
|
|
|
5
5
|
|
|
6
6
|
from siliconcompiler import Chip
|
|
7
7
|
from siliconcompiler import SiliconCompilerError
|
|
8
|
-
from siliconcompiler.remote.client import
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
from siliconcompiler.remote.client import cancel_job, check_progress, delete_job, \
|
|
9
|
+
remote_ping, remote_run_loop, _remote_ping
|
|
10
|
+
from siliconcompiler.remote.client import configure_server, configure_whitelist, configure_print
|
|
11
11
|
from siliconcompiler.scheduler import _finalize_run
|
|
12
12
|
from siliconcompiler.flowgraph import _get_flowgraph_entry_nodes, _get_flowgraph_node_outputs, \
|
|
13
13
|
nodes_to_execute
|
|
@@ -27,6 +27,14 @@ To generate a configuration file, use:
|
|
|
27
27
|
sc-remote -configure -server https://example.com
|
|
28
28
|
sc-remote -configure -server https://example.com:1234
|
|
29
29
|
|
|
30
|
+
to add or remove directories from upload whitelist, these
|
|
31
|
+
also support globbing:
|
|
32
|
+
sc-remote -configure -add ./fine_to_upload
|
|
33
|
+
sc-remote -configure -remove ./no_longer_okay_to_upload
|
|
34
|
+
|
|
35
|
+
to display the full configuration of the credentials file
|
|
36
|
+
sc-remote -configure -list
|
|
37
|
+
|
|
30
38
|
To check an ongoing job's progress, use:
|
|
31
39
|
sc-remote -cfg <stepdir>/outputs/<design>.pkg.json
|
|
32
40
|
|
|
@@ -49,9 +57,20 @@ To delete a job, use:
|
|
|
49
57
|
'-configure': {'action': 'store_true',
|
|
50
58
|
'help': 'create configuration file for the remote',
|
|
51
59
|
'sc_print': False},
|
|
52
|
-
'-server': {'help': 'address of server for configure',
|
|
60
|
+
'-server': {'help': 'address of server for configure (only valid with -configure)',
|
|
53
61
|
'metavar': '<server>',
|
|
54
62
|
'sc_print': False},
|
|
63
|
+
'-add': {'help': 'path to add to the upload whitelist (only valid with -configure)',
|
|
64
|
+
'metavar': '<path>',
|
|
65
|
+
'nargs': '+',
|
|
66
|
+
'sc_print': False},
|
|
67
|
+
'-remove': {'help': 'path to remove from the upload whitelist (only valid with -configure)',
|
|
68
|
+
'metavar': '<path>',
|
|
69
|
+
'nargs': '+',
|
|
70
|
+
'sc_print': False},
|
|
71
|
+
'-list': {'help': 'print the current configuration (only valid with -configure)',
|
|
72
|
+
'action': 'store_true',
|
|
73
|
+
'sc_print': False},
|
|
55
74
|
'-reconnect': {'action': 'store_true',
|
|
56
75
|
'help': 'reconnect to a running job on the remote',
|
|
57
76
|
'sc_print': False},
|
|
@@ -88,11 +107,23 @@ To delete a job, use:
|
|
|
88
107
|
f'{", ".join(["-"+e for e in cfg_only])}')
|
|
89
108
|
|
|
90
109
|
if args['configure']:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
110
|
+
if args['list']:
|
|
111
|
+
configure_print(chip)
|
|
112
|
+
return 0
|
|
113
|
+
|
|
114
|
+
if not args['add'] and not args['remove']:
|
|
115
|
+
try:
|
|
116
|
+
configure_server(chip, server=args['server'])
|
|
117
|
+
except ValueError as e:
|
|
118
|
+
chip.logger.error(e)
|
|
119
|
+
return 1
|
|
120
|
+
else:
|
|
121
|
+
try:
|
|
122
|
+
configure_whitelist(chip, add=args['add'], remove=args['remove'])
|
|
123
|
+
except ValueError as e:
|
|
124
|
+
chip.logger.error(e)
|
|
125
|
+
return 1
|
|
126
|
+
|
|
96
127
|
return 0
|
|
97
128
|
|
|
98
129
|
# Main logic.
|
|
@@ -138,8 +169,17 @@ To delete a job, use:
|
|
|
138
169
|
except SiliconCompilerError as e:
|
|
139
170
|
chip.logger.error(f'{e}')
|
|
140
171
|
return 1
|
|
172
|
+
|
|
173
|
+
# Wrap up run
|
|
174
|
+
for step, index in nodes_to_execute(chip):
|
|
175
|
+
manifest = os.path.join(chip.getworkdir(step=step, index=index),
|
|
176
|
+
'outputs',
|
|
177
|
+
f'{chip.design}.pkg.json')
|
|
178
|
+
if os.path.exists(manifest):
|
|
179
|
+
chip.schema.read_journal(manifest)
|
|
180
|
+
_finalize_run(chip, environment)
|
|
181
|
+
|
|
141
182
|
# Summarize the run.
|
|
142
|
-
_finalize_run(chip, nodes_to_execute(chip), environment)
|
|
143
183
|
chip.summary()
|
|
144
184
|
|
|
145
185
|
# If only a manifest is specified, make a 'check_progress/' request and report results:
|