siliconcompiler 0.32.3__py3-none-any.whl → 0.33.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.
- siliconcompiler/__init__.py +19 -2
- siliconcompiler/_metadata.py +1 -1
- siliconcompiler/apps/sc.py +2 -2
- siliconcompiler/apps/sc_install.py +3 -3
- siliconcompiler/apps/sc_issue.py +1 -1
- siliconcompiler/apps/sc_remote.py +4 -4
- siliconcompiler/apps/sc_show.py +2 -2
- siliconcompiler/apps/utils/replay.py +5 -3
- siliconcompiler/asic.py +120 -0
- siliconcompiler/checklist.py +150 -0
- siliconcompiler/core.py +267 -289
- siliconcompiler/flowgraph.py +803 -515
- siliconcompiler/fpga.py +84 -0
- siliconcompiler/metric.py +420 -0
- siliconcompiler/optimizer/vizier.py +2 -3
- siliconcompiler/package/__init__.py +29 -6
- siliconcompiler/pdk.py +415 -0
- siliconcompiler/record.py +449 -0
- siliconcompiler/remote/client.py +6 -3
- siliconcompiler/remote/schema.py +116 -112
- siliconcompiler/remote/server.py +3 -5
- siliconcompiler/report/dashboard/cli/__init__.py +13 -722
- siliconcompiler/report/dashboard/cli/board.py +895 -0
- siliconcompiler/report/dashboard/web/__init__.py +10 -10
- siliconcompiler/report/dashboard/web/components/__init__.py +5 -4
- siliconcompiler/report/dashboard/web/components/flowgraph.py +3 -3
- siliconcompiler/report/dashboard/web/components/graph.py +6 -3
- siliconcompiler/report/dashboard/web/state.py +1 -1
- siliconcompiler/report/dashboard/web/utils/__init__.py +4 -3
- siliconcompiler/report/html_report.py +2 -3
- siliconcompiler/report/report.py +13 -7
- siliconcompiler/report/summary_image.py +1 -1
- siliconcompiler/report/summary_table.py +3 -3
- siliconcompiler/report/utils.py +11 -10
- siliconcompiler/scheduler/__init__.py +145 -280
- siliconcompiler/scheduler/run_node.py +2 -1
- siliconcompiler/scheduler/send_messages.py +4 -4
- siliconcompiler/scheduler/slurm.py +2 -2
- siliconcompiler/schema/__init__.py +19 -2
- siliconcompiler/schema/baseschema.py +493 -0
- siliconcompiler/schema/cmdlineschema.py +250 -0
- siliconcompiler/{sphinx_ext → schema/docs}/__init__.py +3 -1
- siliconcompiler/{sphinx_ext → schema/docs}/dynamicgen.py +63 -81
- siliconcompiler/{sphinx_ext → schema/docs}/schemagen.py +73 -85
- siliconcompiler/{sphinx_ext → schema/docs}/utils.py +12 -13
- siliconcompiler/schema/editableschema.py +136 -0
- siliconcompiler/schema/journalingschema.py +238 -0
- siliconcompiler/schema/namedschema.py +41 -0
- siliconcompiler/schema/packageschema.py +101 -0
- siliconcompiler/schema/parameter.py +791 -0
- siliconcompiler/schema/parametertype.py +323 -0
- siliconcompiler/schema/parametervalue.py +736 -0
- siliconcompiler/schema/safeschema.py +37 -0
- siliconcompiler/schema/schema_cfg.py +109 -1789
- siliconcompiler/schema/utils.py +5 -68
- siliconcompiler/schema_obj.py +119 -0
- siliconcompiler/tool.py +1308 -0
- siliconcompiler/tools/_common/__init__.py +6 -10
- siliconcompiler/tools/_common/sdc/sc_constraints.sdc +1 -1
- siliconcompiler/tools/bluespec/convert.py +7 -7
- siliconcompiler/tools/builtin/_common.py +1 -1
- siliconcompiler/tools/builtin/concatenate.py +2 -2
- siliconcompiler/tools/builtin/minimum.py +1 -1
- siliconcompiler/tools/builtin/mux.py +2 -1
- siliconcompiler/tools/builtin/nop.py +1 -1
- siliconcompiler/tools/builtin/verify.py +6 -4
- siliconcompiler/tools/chisel/convert.py +4 -4
- siliconcompiler/tools/genfasm/bitstream.py +3 -3
- siliconcompiler/tools/ghdl/convert.py +1 -1
- siliconcompiler/tools/icarus/compile.py +4 -4
- siliconcompiler/tools/icepack/bitstream.py +6 -1
- siliconcompiler/tools/klayout/convert_drc_db.py +5 -0
- siliconcompiler/tools/klayout/klayout_export.py +0 -1
- siliconcompiler/tools/klayout/klayout_utils.py +3 -10
- siliconcompiler/tools/nextpnr/apr.py +6 -1
- siliconcompiler/tools/nextpnr/nextpnr.py +4 -4
- siliconcompiler/tools/openroad/_apr.py +13 -0
- siliconcompiler/tools/openroad/rdlroute.py +3 -3
- siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +5 -5
- siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +57 -1
- siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/common/write_images.tcl +28 -3
- siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/sc_show.tcl +6 -6
- siliconcompiler/tools/slang/__init__.py +10 -10
- siliconcompiler/tools/surelog/parse.py +4 -4
- siliconcompiler/tools/sv2v/convert.py +20 -3
- siliconcompiler/tools/verilator/compile.py +2 -2
- siliconcompiler/tools/verilator/verilator.py +3 -3
- siliconcompiler/tools/vpr/place.py +1 -1
- siliconcompiler/tools/vpr/route.py +4 -4
- siliconcompiler/tools/vpr/screenshot.py +1 -1
- siliconcompiler/tools/vpr/show.py +5 -5
- siliconcompiler/tools/vpr/vpr.py +24 -24
- siliconcompiler/tools/xdm/convert.py +2 -2
- siliconcompiler/tools/xyce/simulate.py +1 -1
- siliconcompiler/tools/yosys/sc_synth_asic.tcl +74 -68
- siliconcompiler/tools/yosys/syn_asic.py +2 -2
- siliconcompiler/toolscripts/_tools.json +7 -7
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -2
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -2
- siliconcompiler/utils/__init__.py +8 -112
- siliconcompiler/utils/flowgraph.py +339 -0
- siliconcompiler/{issue.py → utils/issue.py} +4 -3
- siliconcompiler/utils/logging.py +1 -2
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.0.dist-info}/METADATA +9 -8
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.0.dist-info}/RECORD +151 -134
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.0.dist-info}/WHEEL +1 -1
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.0.dist-info}/entry_points.txt +8 -8
- siliconcompiler/schema/schema_obj.py +0 -1936
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -29
- siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +0 -61
- /siliconcompiler/{templates → data/templates}/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/email/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/email/general.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/email/summary.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/issue/README.txt +0 -0
- /siliconcompiler/{templates → data/templates}/issue/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/issue/run.sh +0 -0
- /siliconcompiler/{templates → data/templates}/replay/replay.py.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/replay/replay.sh.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/replay/requirements.txt +0 -0
- /siliconcompiler/{templates → data/templates}/replay/setup.sh +0 -0
- /siliconcompiler/{templates → data/templates}/report/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/report/bootstrap.min.css +0 -0
- /siliconcompiler/{templates → data/templates}/report/bootstrap.min.js +0 -0
- /siliconcompiler/{templates → data/templates}/report/bootstrap_LICENSE.md +0 -0
- /siliconcompiler/{templates → data/templates}/report/sc_report.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/slurm/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/slurm/run.sh +0 -0
- /siliconcompiler/{templates → data/templates}/tcl/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/tcl/manifest.tcl.j2 +0 -0
- /siliconcompiler/{units.py → utils/units.py} +0 -0
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.0.dist-info}/licenses/LICENSE +0 -0
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.0.dist-info}/top_level.txt +0 -0
siliconcompiler/remote/schema.py
CHANGED
|
@@ -1,117 +1,121 @@
|
|
|
1
|
-
from siliconcompiler.schema
|
|
2
|
-
from siliconcompiler.schema import
|
|
3
|
-
from siliconcompiler.schema
|
|
1
|
+
from siliconcompiler.schema import BaseSchema
|
|
2
|
+
from siliconcompiler.schema import CommandLineSchema
|
|
3
|
+
from siliconcompiler.schema import EditableSchema
|
|
4
|
+
from siliconcompiler.schema import Parameter, Scope
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
SCHEMA_VERSION = '0.0.2'
|
|
7
8
|
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
10
|
+
class ServerSchema(BaseSchema, CommandLineSchema):
|
|
11
|
+
def __init__(self):
|
|
12
|
+
super().__init__()
|
|
13
|
+
|
|
14
|
+
schema = EditableSchema(self)
|
|
15
|
+
|
|
16
|
+
schema.insert(
|
|
17
|
+
'schemaversion',
|
|
18
|
+
Parameter(
|
|
19
|
+
'str',
|
|
20
|
+
scope=Scope.GLOBAL,
|
|
21
|
+
defvalue=SCHEMA_VERSION,
|
|
22
|
+
require='all',
|
|
23
|
+
shorthelp="Schema version number",
|
|
24
|
+
lock=True,
|
|
25
|
+
switch="-schemaversion <str>",
|
|
26
|
+
example=["api: server.get('schemaversion')"],
|
|
27
|
+
help="""SiliconCompiler server schema version number."""))
|
|
28
|
+
|
|
29
|
+
schema.insert(
|
|
30
|
+
'option', 'port',
|
|
31
|
+
Parameter(
|
|
32
|
+
'int',
|
|
33
|
+
scope=Scope.GLOBAL,
|
|
34
|
+
defvalue=8080,
|
|
35
|
+
require='all',
|
|
36
|
+
shorthelp="Port number to run the server on.",
|
|
37
|
+
switch="-port <int>",
|
|
38
|
+
example=["cli: -port 8000",
|
|
39
|
+
"api: server.set('option', 'port', 8080)"],
|
|
40
|
+
help="""Port number to run the server on."""))
|
|
41
|
+
|
|
42
|
+
schema.insert(
|
|
43
|
+
'option', 'cluster',
|
|
44
|
+
Parameter(
|
|
45
|
+
'<local,slurm>',
|
|
46
|
+
scope=Scope.GLOBAL,
|
|
47
|
+
defvalue='local',
|
|
48
|
+
require='all',
|
|
49
|
+
shorthelp="Type of compute cluster to use.",
|
|
50
|
+
switch="-cluster <str>",
|
|
51
|
+
example=["cli: -cluster slurm",
|
|
52
|
+
"api: server.set('option', 'clister', 'slurm')"],
|
|
53
|
+
help="""Type of compute cluster to use."""))
|
|
54
|
+
|
|
55
|
+
schema.insert(
|
|
56
|
+
'option', 'nfsmount',
|
|
57
|
+
Parameter(
|
|
58
|
+
'dir',
|
|
59
|
+
scope=Scope.GLOBAL,
|
|
60
|
+
defvalue='/nfs/sc_compute',
|
|
61
|
+
require='all',
|
|
62
|
+
shorthelp="Directory of mounted shared NFS storage.",
|
|
63
|
+
switch="-nfsmount <dir>",
|
|
64
|
+
example=["cli: -nfsmount ~/sc_server",
|
|
65
|
+
"api: server.set('option', 'server', '~/sc_server')"],
|
|
66
|
+
help="""Directory of mounted shared NFS storage."""))
|
|
67
|
+
|
|
68
|
+
schema.insert(
|
|
69
|
+
'option', 'auth',
|
|
70
|
+
Parameter(
|
|
71
|
+
'bool',
|
|
72
|
+
scope=Scope.GLOBAL,
|
|
73
|
+
defvalue=False,
|
|
74
|
+
require='all',
|
|
75
|
+
shorthelp="Flag determining whether to enable authenticated and encrypted jobs.",
|
|
76
|
+
switch="-auth <bool>",
|
|
77
|
+
example=["cli: -auth true",
|
|
78
|
+
"api: server.set('option', 'auth', True)"],
|
|
79
|
+
help="""Flag determining whether to enable authenticated and encrypted jobs."""))
|
|
80
|
+
|
|
81
|
+
schema.insert(
|
|
82
|
+
'option', 'cfg',
|
|
83
|
+
Parameter(
|
|
84
|
+
'[file]',
|
|
85
|
+
scope=Scope.JOB,
|
|
86
|
+
shorthelp="Configuration manifest",
|
|
87
|
+
switch="-cfg <file>",
|
|
88
|
+
example=["cli: -cfg mypdk.json",
|
|
89
|
+
"api: chip.set('option', 'cfg', 'mypdk.json')"],
|
|
90
|
+
help="""
|
|
91
|
+
List of filepaths to JSON formatted schema configuration
|
|
92
|
+
manifests. The files are read in automatically when using the
|
|
93
|
+
command line application. In Python programs, JSON manifests
|
|
94
|
+
can be merged into the current working manifest using the
|
|
95
|
+
read_manifest() method."""))
|
|
96
|
+
|
|
97
|
+
schema.insert(
|
|
98
|
+
'option', 'loglevel',
|
|
99
|
+
Parameter(
|
|
100
|
+
'<info,warning,error,critical,debug>',
|
|
101
|
+
scope=Scope.JOB,
|
|
102
|
+
defvalue='info',
|
|
103
|
+
shorthelp="Logging level",
|
|
104
|
+
switch="-loglevel <str>",
|
|
105
|
+
example=[
|
|
106
|
+
"cli: -loglevel info",
|
|
107
|
+
"api: server.set('option', 'loglevel', 'info')"],
|
|
108
|
+
help="""
|
|
109
|
+
Provides explicit control over the level of debug logging printed."""))
|
|
110
|
+
|
|
111
|
+
schema.insert(
|
|
112
|
+
'option', 'checkinterval',
|
|
113
|
+
Parameter(
|
|
114
|
+
'int',
|
|
115
|
+
defvalue=30,
|
|
116
|
+
shorthelp="Interval for client",
|
|
117
|
+
switch="-checkinterval <int>",
|
|
118
|
+
example=["cli: -checkinterval 10",
|
|
119
|
+
"api: chip.set('option', 'checkinterval', 10)"],
|
|
120
|
+
help="""
|
|
121
|
+
Interval between checks to announce to clients"""))
|
siliconcompiler/remote/server.py
CHANGED
|
@@ -21,7 +21,7 @@ from siliconcompiler.schema import SCHEMA_VERSION as sc_schema_version
|
|
|
21
21
|
from siliconcompiler.remote.schema import ServerSchema
|
|
22
22
|
from siliconcompiler.remote import banner, JobStatus
|
|
23
23
|
from siliconcompiler.scheduler.slurm import get_configuration_directory
|
|
24
|
-
from siliconcompiler.flowgraph import nodes_to_execute
|
|
24
|
+
from siliconcompiler.utils.flowgraph import nodes_to_execute
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# Compile validation code for API request bodies.
|
|
@@ -78,7 +78,7 @@ class Server:
|
|
|
78
78
|
self.logger.addHandler(handler)
|
|
79
79
|
self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
|
|
80
80
|
|
|
81
|
-
self.schema = ServerSchema(
|
|
81
|
+
self.schema = ServerSchema()
|
|
82
82
|
|
|
83
83
|
# Set up a dictionary to track running jobs.
|
|
84
84
|
self.sc_jobs = {}
|
|
@@ -146,7 +146,6 @@ class Server:
|
|
|
146
146
|
progname=progname,
|
|
147
147
|
description=description,
|
|
148
148
|
switchlist=switchlist,
|
|
149
|
-
input_map=None,
|
|
150
149
|
additional_args=additional_args,
|
|
151
150
|
version=Server.__version__,
|
|
152
151
|
print_banner=print_banner,
|
|
@@ -508,5 +507,4 @@ class Server:
|
|
|
508
507
|
self.schema.set(*keypath, value, field=field, clobber=clobber)
|
|
509
508
|
|
|
510
509
|
def write_configuration(self, filepath):
|
|
511
|
-
|
|
512
|
-
self.schema.write_json(f)
|
|
510
|
+
self.schema.write_manifest(filepath)
|