siliconcompiler 0.28.1__py3-none-any.whl → 0.28.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- siliconcompiler/_common.py +12 -0
- siliconcompiler/_metadata.py +1 -1
- siliconcompiler/apps/sc_dashboard.py +5 -1
- siliconcompiler/apps/sc_install.py +240 -0
- siliconcompiler/apps/sc_remote.py +1 -1
- siliconcompiler/core.py +54 -13
- siliconcompiler/remote/client.py +41 -10
- siliconcompiler/report/__init__.py +1 -1
- siliconcompiler/report/{streamlit_report.py → dashboard/__init__.py} +47 -10
- siliconcompiler/report/dashboard/components/__init__.py +534 -0
- siliconcompiler/report/dashboard/components/flowgraph.py +114 -0
- siliconcompiler/report/dashboard/components/graph.py +208 -0
- siliconcompiler/report/dashboard/layouts/__init__.py +20 -0
- siliconcompiler/report/dashboard/layouts/_common.py +43 -0
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +95 -0
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +114 -0
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +107 -0
- siliconcompiler/report/dashboard/state.py +215 -0
- siliconcompiler/report/dashboard/utils/__init__.py +73 -0
- siliconcompiler/report/dashboard/utils/file_utils.py +120 -0
- siliconcompiler/report/dashboard/viewer.py +36 -0
- siliconcompiler/report/report.py +22 -4
- siliconcompiler/scheduler/__init__.py +43 -6
- siliconcompiler/schema/schema_obj.py +4 -2
- siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +6 -5
- siliconcompiler/tools/openroad/floorplan.py +5 -0
- siliconcompiler/tools/openroad/openroad.py +12 -3
- siliconcompiler/tools/openroad/scripts/sc_cts.tcl +18 -13
- siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +6 -1
- siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_procs.tcl +44 -16
- siliconcompiler/tools/openroad/scripts/sc_route.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +10 -10
- siliconcompiler/tools/opensta/scripts/sc_procs.tcl +3 -3
- siliconcompiler/tools/yosys/syn_asic.tcl +1 -1
- siliconcompiler/toolscripts/_tools.json +136 -0
- siliconcompiler/toolscripts/_tools.py +222 -0
- siliconcompiler/toolscripts/rhel8/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/rhel8/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/rhel8/install-icarus.sh +40 -0
- siliconcompiler/toolscripts/rhel8/install-klayout.sh +17 -0
- siliconcompiler/toolscripts/rhel8/install-magic.sh +26 -0
- siliconcompiler/toolscripts/rhel8/install-montage.sh +5 -0
- siliconcompiler/toolscripts/rhel8/install-netgen.sh +25 -0
- siliconcompiler/toolscripts/rhel8/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/rhel8/install-slang.sh +31 -0
- siliconcompiler/toolscripts/rhel8/install-surelog.sh +32 -0
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +27 -0
- siliconcompiler/toolscripts/rhel8/install-verible.sh +24 -0
- siliconcompiler/toolscripts/rhel8/install-verilator.sh +40 -0
- siliconcompiler/toolscripts/rhel8/install-xyce.sh +64 -0
- siliconcompiler/toolscripts/rhel8/install-yosys.sh +23 -0
- siliconcompiler/toolscripts/rhel9/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/rhel9/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/rhel9/install-icarus.sh +40 -0
- siliconcompiler/toolscripts/rhel9/install-klayout.sh +17 -0
- siliconcompiler/toolscripts/rhel9/install-magic.sh +26 -0
- siliconcompiler/toolscripts/rhel9/install-montage.sh +5 -0
- siliconcompiler/toolscripts/rhel9/install-netgen.sh +25 -0
- siliconcompiler/toolscripts/rhel9/install-slang.sh +31 -0
- siliconcompiler/toolscripts/rhel9/install-surelog.sh +32 -0
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +27 -0
- siliconcompiler/toolscripts/rhel9/install-verible.sh +24 -0
- siliconcompiler/toolscripts/rhel9/install-verilator.sh +40 -0
- siliconcompiler/toolscripts/rhel9/install-xdm.sh +43 -0
- siliconcompiler/toolscripts/rhel9/install-xyce.sh +64 -0
- siliconcompiler/toolscripts/rhel9/install-yosys.sh +23 -0
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +49 -0
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +35 -0
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +25 -0
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +22 -0
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +29 -0
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +24 -0
- siliconcompiler/toolscripts/ubuntu20/install-montage.sh +5 -0
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +24 -0
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +32 -0
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +38 -0
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +32 -0
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +30 -0
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +26 -0
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +24 -0
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +34 -0
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +27 -0
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +40 -0
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +65 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +49 -0
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +35 -0
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +25 -0
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +22 -0
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +29 -0
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-montage.sh +5 -0
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +32 -0
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +28 -0
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +32 -0
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +25 -0
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +26 -0
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +34 -0
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +27 -0
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +40 -0
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +65 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +49 -0
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +35 -0
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +25 -0
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +22 -0
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +31 -0
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-montage.sh +5 -0
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +32 -0
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +28 -0
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +32 -0
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +25 -0
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +26 -0
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +34 -0
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +27 -0
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +40 -0
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +65 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +24 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/METADATA +7 -6
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/RECORD +139 -29
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/entry_points.txt +1 -0
- siliconcompiler/report/streamlit_viewer.py +0 -944
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/WHEEL +0 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Copyright 2023 Silicon Compiler Authors. All Rights Reserved.
|
|
3
|
+
|
|
4
|
+
import argparse
|
|
5
|
+
import json
|
|
6
|
+
import os
|
|
7
|
+
import tempfile
|
|
8
|
+
import subprocess
|
|
9
|
+
import re
|
|
10
|
+
|
|
11
|
+
tools = None
|
|
12
|
+
data_file = os.path.join(os.path.dirname(__file__), "_tools.json")
|
|
13
|
+
with open(data_file, "r") as f:
|
|
14
|
+
tools = json.load(f)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __make_github_url(url, old_version, new_version):
|
|
18
|
+
if 'github' not in url:
|
|
19
|
+
return None
|
|
20
|
+
|
|
21
|
+
if url.endswith('.git'):
|
|
22
|
+
url = url[0:-4]
|
|
23
|
+
|
|
24
|
+
return f'{url}/compare/{old_version}...{new_version}'
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def bump_commit(tools, tool):
|
|
28
|
+
if "git-url" not in tools[tool]:
|
|
29
|
+
return (None, None)
|
|
30
|
+
|
|
31
|
+
if not re.fullmatch(r"[a-f0-9]{40}", tools[tool]["git-commit"]):
|
|
32
|
+
return bump_commit_tag(tools, tool)
|
|
33
|
+
|
|
34
|
+
import git
|
|
35
|
+
|
|
36
|
+
with tempfile.TemporaryDirectory(prefix=tool) as repo_work_dir:
|
|
37
|
+
repo = git.Repo.clone_from(tools[tool]["git-url"], repo_work_dir)
|
|
38
|
+
|
|
39
|
+
return (repo.head.commit.hexsha,
|
|
40
|
+
__make_github_url(tools[tool]["git-url"],
|
|
41
|
+
tools[tool]["git-commit"],
|
|
42
|
+
repo.head.commit.hexsha))
|
|
43
|
+
|
|
44
|
+
return (None, None)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def bump_commit_tag(tools, tool):
|
|
48
|
+
if "git-url" not in tools[tool]:
|
|
49
|
+
return (None, None)
|
|
50
|
+
|
|
51
|
+
import git
|
|
52
|
+
|
|
53
|
+
version_prefix = 'v'
|
|
54
|
+
if "version-prefix" in tools[tool]:
|
|
55
|
+
version_prefix = tools[tool]["version-prefix"]
|
|
56
|
+
|
|
57
|
+
with tempfile.TemporaryDirectory(prefix=tool) as repo_work_dir:
|
|
58
|
+
repo = git.Repo.clone_from(tools[tool]["git-url"], repo_work_dir)
|
|
59
|
+
|
|
60
|
+
newest = None
|
|
61
|
+
for tag in repo.tags:
|
|
62
|
+
if not tag.name.startswith(version_prefix):
|
|
63
|
+
continue
|
|
64
|
+
|
|
65
|
+
if not newest or tag.commit.committed_datetime > newest.commit.committed_datetime:
|
|
66
|
+
newest = tag
|
|
67
|
+
if newest:
|
|
68
|
+
newest = newest.name
|
|
69
|
+
return (newest,
|
|
70
|
+
__make_github_url(tools[tool]["git-url"],
|
|
71
|
+
tools[tool]["git-commit"],
|
|
72
|
+
newest))
|
|
73
|
+
|
|
74
|
+
return (None, None)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def bump_version(tools, tool):
|
|
78
|
+
if "git-url" not in tools[tool]:
|
|
79
|
+
return (None, None)
|
|
80
|
+
|
|
81
|
+
import git
|
|
82
|
+
|
|
83
|
+
with tempfile.TemporaryDirectory(prefix=tool) as repo_work_dir:
|
|
84
|
+
repo = git.Repo.clone_from(tools[tool]["git-url"], repo_work_dir)
|
|
85
|
+
|
|
86
|
+
if "run-version" in tools[tool]:
|
|
87
|
+
script = os.path.join(repo_work_dir, 'sc_get_version.sh')
|
|
88
|
+
with open(script, 'w') as f:
|
|
89
|
+
f.write(tools[tool]["run-version"])
|
|
90
|
+
os.chmod(script, 0o700)
|
|
91
|
+
proc = subprocess.run(['bash', script],
|
|
92
|
+
stdout=subprocess.PIPE,
|
|
93
|
+
stderr=subprocess.STDOUT,
|
|
94
|
+
universal_newlines=True,
|
|
95
|
+
cwd=repo_work_dir)
|
|
96
|
+
version = proc.stdout.strip()
|
|
97
|
+
if not version:
|
|
98
|
+
return (None, None)
|
|
99
|
+
|
|
100
|
+
releasenotes = None
|
|
101
|
+
if "release-notes" in tools[tool]:
|
|
102
|
+
releasenotes = tools[tool]["release-notes"]
|
|
103
|
+
return (version, releasenotes)
|
|
104
|
+
|
|
105
|
+
newest = None
|
|
106
|
+
for tag in repo.tags:
|
|
107
|
+
if not newest:
|
|
108
|
+
newest = tag
|
|
109
|
+
else:
|
|
110
|
+
if tag.commit.committed_datetime > newest.commit.committed_datetime:
|
|
111
|
+
newest = tag
|
|
112
|
+
if newest:
|
|
113
|
+
newest = newest.name
|
|
114
|
+
has_v = False
|
|
115
|
+
if newest[0] == 'v':
|
|
116
|
+
newest = newest[1:]
|
|
117
|
+
has_v = True
|
|
118
|
+
|
|
119
|
+
new_version = newest
|
|
120
|
+
old_version = tools[tool]["version"]
|
|
121
|
+
if has_v:
|
|
122
|
+
new_version = f'v{new_version}'
|
|
123
|
+
old_version = f'v{old_version}'
|
|
124
|
+
|
|
125
|
+
return (newest,
|
|
126
|
+
__make_github_url(tools[tool]["git-url"],
|
|
127
|
+
old_version,
|
|
128
|
+
new_version))
|
|
129
|
+
|
|
130
|
+
return (None, None)
|
|
131
|
+
|
|
132
|
+
return (None, None)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def has_tool(tool):
|
|
136
|
+
return tool in tools
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def get_field(tool, field):
|
|
140
|
+
if field not in tools[tool]:
|
|
141
|
+
return None
|
|
142
|
+
return tools[tool][field]
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def get_tools():
|
|
146
|
+
return list(tools.keys())
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
if __name__ == "__main__":
|
|
150
|
+
supported_tools = ", ".join(get_tools())
|
|
151
|
+
supported_fields = set()
|
|
152
|
+
for tool, fields in tools.items():
|
|
153
|
+
for field in fields:
|
|
154
|
+
supported_fields.add(field)
|
|
155
|
+
supported_fields = ", ".join(supported_fields)
|
|
156
|
+
|
|
157
|
+
parser = argparse.ArgumentParser(
|
|
158
|
+
prog="SiliconCompiler Tool Helper",
|
|
159
|
+
description="Maintains current known good versions for all install scripts to use")
|
|
160
|
+
parser.add_argument("--tool", type=str,
|
|
161
|
+
help=f"Tool name, supported tools: {supported_tools}")
|
|
162
|
+
parser.add_argument("--json_tools", action="store_true",
|
|
163
|
+
help="Flag to get json matrix used by github to update tools")
|
|
164
|
+
|
|
165
|
+
parser.add_argument("--field", type=str,
|
|
166
|
+
help=f"Field to get information from, supported fields: {supported_fields}")
|
|
167
|
+
parser.add_argument("--bump_commit", action="store_true",
|
|
168
|
+
help="Flag to indicate that the specified tool should be updated.")
|
|
169
|
+
|
|
170
|
+
args = parser.parse_args()
|
|
171
|
+
|
|
172
|
+
if args.json_tools:
|
|
173
|
+
json_tools = {'include': []}
|
|
174
|
+
for tool in get_tools():
|
|
175
|
+
field = get_field(tool, "git-url")
|
|
176
|
+
update = get_field(tool, "auto-update")
|
|
177
|
+
if field and update:
|
|
178
|
+
json_tools['include'].append({"tool": tool})
|
|
179
|
+
if len(json_tools['include']) == 0:
|
|
180
|
+
print(json.dumps({}))
|
|
181
|
+
else:
|
|
182
|
+
print(json.dumps(json_tools))
|
|
183
|
+
exit(0)
|
|
184
|
+
|
|
185
|
+
if not has_tool(args.tool):
|
|
186
|
+
print(f"{args.tool} is not a supported tool.")
|
|
187
|
+
print(f"Supported tools are: {supported_tools}")
|
|
188
|
+
exit(1)
|
|
189
|
+
|
|
190
|
+
if not args.bump_commit:
|
|
191
|
+
tool_fields = tools[args.tool]
|
|
192
|
+
if args.field not in tool_fields:
|
|
193
|
+
print(f"{args.field} is not a supported field for {args.tool}.")
|
|
194
|
+
tool_supported_fields = ", ".join(tool_fields.keys())
|
|
195
|
+
print(f"Supported fields are: {tool_supported_fields}")
|
|
196
|
+
exit(1)
|
|
197
|
+
|
|
198
|
+
print(tool_fields[args.field])
|
|
199
|
+
exit(0)
|
|
200
|
+
|
|
201
|
+
if "git-commit" in tools[args.tool]:
|
|
202
|
+
new_value, url = bump_commit(tools, args.tool)
|
|
203
|
+
if new_value and tools[args.tool]["git-commit"] != new_value:
|
|
204
|
+
print(f"Updating {args.tool} from {tools[args.tool]['git-commit']} to {new_value}")
|
|
205
|
+
if url:
|
|
206
|
+
print(f'Check {url} for changes')
|
|
207
|
+
tools[args.tool]["git-commit"] = new_value
|
|
208
|
+
elif "version" in tools[args.tool]:
|
|
209
|
+
new_value, url = bump_version(tools, args.tool)
|
|
210
|
+
if new_value and tools[args.tool]["version"] != new_value:
|
|
211
|
+
print(f"Updating {args.tool} from {tools[args.tool]['version']} to {new_value}")
|
|
212
|
+
if url:
|
|
213
|
+
print(f'Check {url} for changes')
|
|
214
|
+
tools[args.tool]["version"] = new_value
|
|
215
|
+
else:
|
|
216
|
+
print('Unsupported update tool')
|
|
217
|
+
exit(1)
|
|
218
|
+
|
|
219
|
+
with open(data_file, "w") as f:
|
|
220
|
+
f.write(json.dumps(tools, indent=2))
|
|
221
|
+
|
|
222
|
+
exit(0)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
version=$(python3 ${src_path}/_tools.py --tool chisel --field version)
|
|
12
|
+
|
|
13
|
+
wget -O sbt.tgz https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz
|
|
14
|
+
|
|
15
|
+
args=
|
|
16
|
+
if [ ! -z ${PREFIX} ]; then
|
|
17
|
+
args="-C $PREFIX --strip-components 1"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
tar xvf sbt.tgz $args
|
|
21
|
+
|
|
22
|
+
cd -
|
|
23
|
+
|
|
24
|
+
if [ -z ${PREFIX} ]; then
|
|
25
|
+
echo "Please add \"export PATH="${src_path}/deps/sbt/bin:\$PATH"\" to your .bashrc"
|
|
26
|
+
fi
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo yum install -y gcc-gnat zlib-devel
|
|
9
|
+
|
|
10
|
+
mkdir -p deps
|
|
11
|
+
cd deps
|
|
12
|
+
|
|
13
|
+
git clone $(python3 ${src_path}/_tools.py --tool ghdl --field git-url) ghdl
|
|
14
|
+
cd ghdl
|
|
15
|
+
git checkout $(python3 ${src_path}/_tools.py --tool ghdl --field git-commit)
|
|
16
|
+
|
|
17
|
+
args=
|
|
18
|
+
if [ ! -z ${PREFIX} ]; then
|
|
19
|
+
args=--prefix="$PREFIX"
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
./configure $args
|
|
23
|
+
make -j$(nproc)
|
|
24
|
+
sudo make install
|
|
25
|
+
cd -
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo yum group install -y "Development Tools"
|
|
9
|
+
|
|
10
|
+
args=
|
|
11
|
+
if [ ! -z ${PREFIX} ]; then
|
|
12
|
+
args=--prefix="$PREFIX"
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
mkdir -p deps
|
|
16
|
+
cd deps
|
|
17
|
+
|
|
18
|
+
wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz
|
|
19
|
+
tar xvf gperf-3.1.tar.gz
|
|
20
|
+
cd gperf-3.1
|
|
21
|
+
./configure $args
|
|
22
|
+
make -j$(nproc)
|
|
23
|
+
sudo make install
|
|
24
|
+
cd ..
|
|
25
|
+
|
|
26
|
+
if [ ! -z ${PREFIX} ]; then
|
|
27
|
+
export PATH="${PREFIX}/bin:$PATH"
|
|
28
|
+
export LD_LIBRARY_PATH="${PREFIX}/lib:$LD_LIBRARY_PATH"
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
git clone $(python3 ${src_path}/_tools.py --tool icarus --field git-url) icarus
|
|
32
|
+
cd icarus
|
|
33
|
+
git checkout $(python3 ${src_path}/_tools.py --tool icarus --field git-commit)
|
|
34
|
+
|
|
35
|
+
sh autoconf.sh
|
|
36
|
+
./configure $args
|
|
37
|
+
make -j$(nproc)
|
|
38
|
+
sudo make install
|
|
39
|
+
|
|
40
|
+
cd -
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
klayout_version=$(python3 ${src_path}/_tools.py --tool klayout --field version)
|
|
12
|
+
wget --no-check-certificate \
|
|
13
|
+
-O klayout.rpm \
|
|
14
|
+
"https://www.klayout.org/downloads/CentOS_8/klayout-${klayout_version}-0.x86_64.rpm"
|
|
15
|
+
sudo yum install -y ./klayout.rpm
|
|
16
|
+
|
|
17
|
+
cd -
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo yum group install -y "Development Tools"
|
|
9
|
+
sudo yum install -y tcl-devel tk-devel tcsh csh
|
|
10
|
+
# sudo apt-get install -y build-essential m4 tcsh csh libx11-dev tcl-dev tk-dev
|
|
11
|
+
|
|
12
|
+
mkdir -p deps
|
|
13
|
+
cd deps
|
|
14
|
+
|
|
15
|
+
git clone $(python3 ${src_path}/_tools.py --tool magic --field git-url) magic
|
|
16
|
+
cd magic
|
|
17
|
+
git checkout $(python3 ${src_path}/_tools.py --tool magic --field git-commit)
|
|
18
|
+
|
|
19
|
+
args=
|
|
20
|
+
if [ ! -z ${PREFIX} ]; then
|
|
21
|
+
args=--prefix="$PREFIX"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
LD_FLAGS=-shared ./configure $args
|
|
25
|
+
make -j$(nproc)
|
|
26
|
+
sudo make install
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo yum group install -y "Development Tools"
|
|
9
|
+
sudo yum install -y tcl-devel tk-devel
|
|
10
|
+
|
|
11
|
+
mkdir -p deps
|
|
12
|
+
cd deps
|
|
13
|
+
|
|
14
|
+
git clone $(python3 ${src_path}/_tools.py --tool netgen --field git-url) netgen
|
|
15
|
+
cd netgen
|
|
16
|
+
git checkout $(python3 ${src_path}/_tools.py --tool netgen --field git-commit)
|
|
17
|
+
|
|
18
|
+
args=
|
|
19
|
+
if [ ! -z ${PREFIX} ]; then
|
|
20
|
+
args=--prefix="$PREFIX"
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
./configure $args
|
|
24
|
+
make -j$(nproc)
|
|
25
|
+
sudo make install
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
6
|
+
|
|
7
|
+
mkdir -p deps
|
|
8
|
+
cd deps
|
|
9
|
+
|
|
10
|
+
git clone $(python3 ${src_path}/_tools.py --tool openroad --field git-url) openroad
|
|
11
|
+
cd openroad
|
|
12
|
+
git checkout $(python3 ${src_path}/_tools.py --tool openroad --field git-commit)
|
|
13
|
+
git submodule update --init --recursive
|
|
14
|
+
|
|
15
|
+
deps_args=""
|
|
16
|
+
if [ ! -z ${PREFIX} ]; then
|
|
17
|
+
deps_args="-prefix=$PREFIX"
|
|
18
|
+
fi
|
|
19
|
+
sudo ./etc/DependencyInstaller.sh $deps_args
|
|
20
|
+
|
|
21
|
+
cmake_args="-DENABLE_TESTS=OFF"
|
|
22
|
+
if [ ! -z ${PREFIX} ]; then
|
|
23
|
+
cmake_args="$cmake_args -DCMAKE_INSTALL_PREFIX=$PREFIX"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
./etc/Build.sh -cmake="$cmake_args"
|
|
27
|
+
|
|
28
|
+
cd build
|
|
29
|
+
sudo make install
|
|
30
|
+
|
|
31
|
+
cd -
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
python3 -m venv .slang --clear
|
|
12
|
+
. .slang/bin/activate
|
|
13
|
+
python3 -m pip install --upgrade pip
|
|
14
|
+
python3 -m pip install cmake
|
|
15
|
+
|
|
16
|
+
sudo yum install -y gcc-toolset-12
|
|
17
|
+
|
|
18
|
+
git clone $(python3 ${src_path}/_tools.py --tool slang --field git-url) slang
|
|
19
|
+
cd slang
|
|
20
|
+
git checkout $(python3 ${src_path}/_tools.py --tool slang --field git-commit)
|
|
21
|
+
|
|
22
|
+
cfg_args=""
|
|
23
|
+
if [ ! -z ${PREFIX} ]; then
|
|
24
|
+
cfg_args="--prefix=$PREFIX"
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
scl run gcc-toolset-12 "cmake -B build"
|
|
28
|
+
scl run gcc-toolset-12 "cmake --build build -j$(nproc)"
|
|
29
|
+
scl run gcc-toolset-12 "cmake --install build --strip $cfg_args"
|
|
30
|
+
|
|
31
|
+
cd -
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
# These dependencies are up-to-date with instructions from the INSTALL.md from the commit we are pinned to below
|
|
9
|
+
sudo yum install -y gcc-toolset-12
|
|
10
|
+
sudo dnf config-manager --set-enabled devel || true
|
|
11
|
+
sudo yum install -y libuuid-devel java-11-openjdk-devel python3 zlib-static openssl-devel
|
|
12
|
+
sudo dnf config-manager --set-disabled devel || true
|
|
13
|
+
|
|
14
|
+
mkdir -p deps
|
|
15
|
+
cd deps
|
|
16
|
+
|
|
17
|
+
python3 -m venv .surelog --clear
|
|
18
|
+
. .surelog/bin/activate
|
|
19
|
+
python3 -m pip install --upgrade pip
|
|
20
|
+
python3 -m pip install cmake
|
|
21
|
+
python3 -m pip install orderedmultidict
|
|
22
|
+
|
|
23
|
+
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|
|
24
|
+
cd surelog
|
|
25
|
+
git checkout $(python3 ${src_path}/_tools.py --tool surelog --field git-commit)
|
|
26
|
+
git submodule update --init --recursive
|
|
27
|
+
|
|
28
|
+
scl run gcc-toolset-12 "LDFLAGS=\"-lrt\" make -j$(nproc)"
|
|
29
|
+
|
|
30
|
+
sudo -E PATH="$PATH" make install
|
|
31
|
+
|
|
32
|
+
cd -
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
sudo yum group install -y "Development Tools"
|
|
12
|
+
sudo yum install -y gmp-devel xz
|
|
13
|
+
|
|
14
|
+
curl -sSL https://get.haskellstack.org/ | sh -s - -f
|
|
15
|
+
|
|
16
|
+
git clone $(python3 ${src_path}/_tools.py --tool sv2v --field git-url) sv2v
|
|
17
|
+
cd sv2v
|
|
18
|
+
git checkout $(python3 ${src_path}/_tools.py --tool sv2v --field git-commit)
|
|
19
|
+
|
|
20
|
+
make -j$(nproc)
|
|
21
|
+
|
|
22
|
+
if [ ! -z ${PREFIX} ]; then
|
|
23
|
+
sudo mkdir -p ${PREFIX}/bin/
|
|
24
|
+
sudo cp bin/* ${PREFIX}/bin/
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
cd -
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
version=$(python3 ${src_path}/_tools.py --tool verible --field version)
|
|
12
|
+
filename=verible-$version-linux-static-x86_64.tar.gz
|
|
13
|
+
|
|
14
|
+
wget https://github.com/chipsalliance/verible/releases/download/$version/$filename
|
|
15
|
+
|
|
16
|
+
tar xzf $filename
|
|
17
|
+
|
|
18
|
+
if [ -z ${PREFIX} ]; then
|
|
19
|
+
PREFIX=/opt/verible
|
|
20
|
+
sudo mkdir -p $PREFIX
|
|
21
|
+
echo "Please add \"export PATH="/opt/verible/bin:\$PATH"\" to your .bashrc"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
sudo mv verible-$version/* $PREFIX
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo yum group install -y "Development Tools"
|
|
9
|
+
|
|
10
|
+
mkdir -p deps
|
|
11
|
+
cd deps
|
|
12
|
+
|
|
13
|
+
args=
|
|
14
|
+
if [ ! -z ${PREFIX} ]; then
|
|
15
|
+
args=--prefix="$PREFIX"
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
wget https://ftp.wayne.edu/gnu/help2man/help2man-1.43.3.tar.gz
|
|
19
|
+
tar xvf help2man-1.43.3.tar.gz
|
|
20
|
+
cd help2man-1.43.3
|
|
21
|
+
|
|
22
|
+
./configure $args
|
|
23
|
+
make -j$(nproc)
|
|
24
|
+
sudo make install
|
|
25
|
+
|
|
26
|
+
cd ..
|
|
27
|
+
|
|
28
|
+
unset VERILATOR_ROOT
|
|
29
|
+
|
|
30
|
+
git clone $(python3 ${src_path}/_tools.py --tool verilator --field git-url) verilator
|
|
31
|
+
cd verilator
|
|
32
|
+
git checkout $(python3 ${src_path}/_tools.py --tool verilator --field git-commit)
|
|
33
|
+
|
|
34
|
+
autoconf
|
|
35
|
+
|
|
36
|
+
./configure $args
|
|
37
|
+
make -j$(nproc)
|
|
38
|
+
sudo make install
|
|
39
|
+
|
|
40
|
+
cd -
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
if [ -z ${PREFIX} ]; then
|
|
12
|
+
PREFIX=~/.local
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
sudo dnf config-manager --set-enabled devel || true
|
|
16
|
+
# Install core dependencies.
|
|
17
|
+
sudo yum install -y gcc gcc-c++ gcc-gfortran blas blas-devel \
|
|
18
|
+
cmake lapack lapack-devel bison flex fftw-devel fftw \
|
|
19
|
+
suitesparse suitesparse-devel autoconf automake libtool \
|
|
20
|
+
git
|
|
21
|
+
sudo dnf config-manager --set-disabled devel || true
|
|
22
|
+
|
|
23
|
+
# Download Trilinos
|
|
24
|
+
## Version specified in: https://github.com/Xyce/Xyce/blob/master/INSTALL.md#building-trilinos
|
|
25
|
+
trilinos_version=14-4-0
|
|
26
|
+
wget https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-${trilinos_version}.tar.gz -O trilinos.tar.gz
|
|
27
|
+
mkdir -p trilinos
|
|
28
|
+
tar --strip-components=1 -xf trilinos.tar.gz -C trilinos
|
|
29
|
+
rm trilinos.tar.gz
|
|
30
|
+
|
|
31
|
+
# Download Xyce (note that this is needed to build Trilinos)
|
|
32
|
+
xyce_version=$(python3 ${src_path}/_tools.py --tool xyce --field version)
|
|
33
|
+
wget https://github.com/Xyce/Xyce/archive/refs/tags/Release-${xyce_version}.tar.gz -O xyce.tar.gz
|
|
34
|
+
mkdir -p xyce
|
|
35
|
+
tar --strip-components=1 -xf xyce.tar.gz -C xyce
|
|
36
|
+
rm xyce.tar.gz
|
|
37
|
+
XYCE_DIR=$(realpath xyce)
|
|
38
|
+
|
|
39
|
+
# Build Trilinos
|
|
40
|
+
cd trilinos
|
|
41
|
+
mkdir build
|
|
42
|
+
cd build
|
|
43
|
+
cmake \
|
|
44
|
+
-D CMAKE_INSTALL_PREFIX="$PREFIX/trilinos" \
|
|
45
|
+
-D AMD_LIBRARY_DIRS="/usr/lib" \
|
|
46
|
+
-D TPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \
|
|
47
|
+
-C "$XYCE_DIR/cmake/trilinos/trilinos-base.cmake" \
|
|
48
|
+
..
|
|
49
|
+
cmake --build . -j$(nproc) -t install
|
|
50
|
+
cd ../..
|
|
51
|
+
|
|
52
|
+
# Build Xyce
|
|
53
|
+
cd xyce
|
|
54
|
+
mkdir build
|
|
55
|
+
cd build
|
|
56
|
+
cmake \
|
|
57
|
+
-D CMAKE_INSTALL_PREFIX="$PREFIX" \
|
|
58
|
+
-D Trilinos_ROOT=$PREFIX/trilinos \
|
|
59
|
+
-D BUILD_SHARED_LIBS=ON \
|
|
60
|
+
..
|
|
61
|
+
cmake --build . -j$(nproc)
|
|
62
|
+
cmake --build . -j$(nproc) --target xycecinterface
|
|
63
|
+
sudo make install
|
|
64
|
+
cd -
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
# From: https://github.com/YosysHQ/yosys/blob/f2c689403ace0637b7455bac8f1e8d4bc312e74f/README.md
|
|
9
|
+
sudo yum group install -y "Development Tools"
|
|
10
|
+
sudo yum install -y bison flex readline-devel gawk \
|
|
11
|
+
tcl-devel libffi-devel zlib-devel boost-devel
|
|
12
|
+
|
|
13
|
+
mkdir -p deps
|
|
14
|
+
cd deps
|
|
15
|
+
|
|
16
|
+
git clone $(python3 ${src_path}/_tools.py --tool yosys --field git-url) yosys
|
|
17
|
+
cd yosys
|
|
18
|
+
git checkout $(python3 ${src_path}/_tools.py --tool yosys --field git-commit)
|
|
19
|
+
git submodule update --init --recursive
|
|
20
|
+
|
|
21
|
+
make -j$(nproc)
|
|
22
|
+
sudo make install PREFIX="$PREFIX"
|
|
23
|
+
cd -
|