siliconcompiler 0.28.2__py3-none-any.whl → 0.28.4__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 +6 -2
- siliconcompiler/apps/sc_install.py +61 -13
- siliconcompiler/apps/sc_remote.py +1 -1
- siliconcompiler/core.py +132 -68
- siliconcompiler/fpgas/vpr_example.py +8 -0
- siliconcompiler/package.py +3 -2
- siliconcompiler/remote/client.py +41 -10
- siliconcompiler/report/__init__.py +1 -1
- siliconcompiler/report/{streamlit_report.py → dashboard/__init__.py} +56 -10
- siliconcompiler/report/dashboard/components/__init__.py +546 -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 +96 -0
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +117 -0
- siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +110 -0
- siliconcompiler/report/dashboard/state.py +217 -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/report/summary_table.py +1 -2
- siliconcompiler/report/utils.py +1 -2
- siliconcompiler/scheduler/__init__.py +45 -6
- siliconcompiler/schema/schema_obj.py +4 -2
- siliconcompiler/sphinx_ext/dynamicgen.py +6 -0
- siliconcompiler/tools/_common/__init__.py +44 -6
- siliconcompiler/tools/_common/asic.py +79 -23
- siliconcompiler/tools/genfasm/genfasm.py +7 -0
- siliconcompiler/tools/ghdl/convert.py +7 -0
- siliconcompiler/tools/klayout/convert_drc_db.py +60 -0
- siliconcompiler/tools/klayout/drc.py +156 -0
- siliconcompiler/tools/klayout/export.py +2 -0
- siliconcompiler/tools/klayout/klayout.py +0 -1
- siliconcompiler/tools/klayout/klayout_convert_drc_db.py +182 -0
- siliconcompiler/tools/klayout/operations.py +2 -0
- siliconcompiler/tools/klayout/screenshot.py +2 -0
- siliconcompiler/tools/klayout/show.py +4 -4
- siliconcompiler/tools/magic/drc.py +21 -0
- siliconcompiler/tools/magic/extspice.py +21 -0
- siliconcompiler/tools/magic/magic.py +29 -0
- siliconcompiler/tools/magic/sc_drc.tcl +2 -12
- siliconcompiler/tools/magic/sc_extspice.tcl +3 -15
- siliconcompiler/tools/openroad/floorplan.py +5 -0
- siliconcompiler/tools/openroad/openroad.py +56 -5
- siliconcompiler/tools/openroad/scripts/sc_apr.tcl +15 -0
- siliconcompiler/tools/openroad/scripts/sc_cts.tcl +18 -13
- siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +61 -10
- siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +10 -0
- siliconcompiler/tools/openroad/scripts/sc_procs.tcl +31 -1
- siliconcompiler/tools/openroad/scripts/sc_route.tcl +8 -2
- siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -5
- siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +36 -6
- siliconcompiler/tools/surelog/__init__.py +12 -0
- siliconcompiler/tools/verilator/compile.py +27 -0
- siliconcompiler/tools/verilator/verilator.py +9 -0
- siliconcompiler/tools/vpr/vpr.py +18 -0
- siliconcompiler/tools/yosys/{syn_asic_fpga_shared.tcl → procs.tcl} +23 -0
- siliconcompiler/tools/yosys/sc_screenshot.tcl +104 -0
- siliconcompiler/tools/yosys/sc_syn.tcl +7 -9
- siliconcompiler/tools/yosys/screenshot.py +153 -0
- siliconcompiler/tools/yosys/syn_asic.py +3 -0
- siliconcompiler/tools/yosys/syn_asic.tcl +1 -3
- siliconcompiler/tools/yosys/syn_fpga.tcl +3 -2
- siliconcompiler/toolscripts/_tools.json +10 -5
- 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-icepack.sh +1 -1
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +40 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -2
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +1 -1
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +40 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -2
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +1 -1
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +40 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -2
- siliconcompiler/utils/__init__.py +30 -1
- siliconcompiler/utils/showtools.py +4 -0
- {siliconcompiler-0.28.2.dist-info → siliconcompiler-0.28.4.dist-info}/METADATA +22 -8
- {siliconcompiler-0.28.2.dist-info → siliconcompiler-0.28.4.dist-info}/RECORD +116 -67
- {siliconcompiler-0.28.2.dist-info → siliconcompiler-0.28.4.dist-info}/WHEEL +1 -1
- siliconcompiler/report/streamlit_viewer.py +0 -944
- {siliconcompiler-0.28.2.dist-info → siliconcompiler-0.28.4.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.28.2.dist-info → siliconcompiler-0.28.4.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.28.2.dist-info → siliconcompiler-0.28.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
from siliconcompiler.tools.yosys.yosys import setup as tool_setup
|
|
2
|
+
import os
|
|
3
|
+
import siliconcompiler.tools.yosys.prepareLib as prepareLib
|
|
4
|
+
from siliconcompiler.tools._common.asic import get_libraries
|
|
5
|
+
from siliconcompiler.tools._common import get_tool_task
|
|
6
|
+
from siliconcompiler.targets import asap7_demo
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def make_docs(chip):
|
|
10
|
+
chip.use(asap7_demo)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def setup(chip):
|
|
14
|
+
'''
|
|
15
|
+
Generate a screenshot of the design
|
|
16
|
+
'''
|
|
17
|
+
|
|
18
|
+
# Generic tool setup.
|
|
19
|
+
tool_setup(chip)
|
|
20
|
+
|
|
21
|
+
# ASIC-specific setup.
|
|
22
|
+
# setup_asic(chip)
|
|
23
|
+
|
|
24
|
+
step = chip.get('arg', 'step')
|
|
25
|
+
index = chip.get('arg', 'index')
|
|
26
|
+
tool, task = get_tool_task(chip, step, index)
|
|
27
|
+
chip.set('tool', tool, 'task', task, 'input', [], step=step, index=index)
|
|
28
|
+
chip.set('tool', tool, 'task', task, 'script', 'sc_screenshot.tcl',
|
|
29
|
+
step=step, index=index)
|
|
30
|
+
|
|
31
|
+
design = chip.top()
|
|
32
|
+
chip.set('tool', tool, 'task', task, 'output', [design + '.dot', design + '.png'],
|
|
33
|
+
step=step, index=index)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
################################
|
|
37
|
+
# format liberty files for yosys
|
|
38
|
+
################################
|
|
39
|
+
def prepare_asic_libraries(chip):
|
|
40
|
+
step = chip.get('arg', 'step')
|
|
41
|
+
index = chip.get('arg', 'index')
|
|
42
|
+
tool, task = get_tool_task(chip, step, index)
|
|
43
|
+
|
|
44
|
+
# Clear in case of rerun
|
|
45
|
+
for libtype in ('synthesis_libraries', 'synthesis_libraries_macros'):
|
|
46
|
+
chip.set('tool', tool, 'task', task, 'file', libtype, [],
|
|
47
|
+
step=step, index=index)
|
|
48
|
+
|
|
49
|
+
# Generate synthesis_libraries and synthesis_macro_libraries for Yosys use
|
|
50
|
+
|
|
51
|
+
# mark libs with dont_use since ABC cannot get this information via its commands
|
|
52
|
+
# this also ensures the liberty files have been decompressed and corrected formatting
|
|
53
|
+
# issues that generally cannot be handled by yosys or yosys-abc
|
|
54
|
+
def get_synthesis_libraries(lib):
|
|
55
|
+
keypath = _get_synthesis_library_key(chip, lib)
|
|
56
|
+
if keypath and chip.valid(*keypath):
|
|
57
|
+
return chip.find_files(*keypath, step=step, index=index)
|
|
58
|
+
return []
|
|
59
|
+
|
|
60
|
+
for libtype in ('logic', 'macro'):
|
|
61
|
+
for lib in get_libraries(chip, libtype):
|
|
62
|
+
lib_content = {}
|
|
63
|
+
# Mark dont use
|
|
64
|
+
for lib_file in get_synthesis_libraries(lib):
|
|
65
|
+
# Ensure a unique name is used for library
|
|
66
|
+
lib_file_name_base = os.path.basename(lib_file)
|
|
67
|
+
if lib_file_name_base.lower().endswith('.gz'):
|
|
68
|
+
lib_file_name_base = lib_file_name_base[0:-3]
|
|
69
|
+
if lib_file_name_base.lower().endswith('.lib'):
|
|
70
|
+
lib_file_name_base = lib_file_name_base[0:-4]
|
|
71
|
+
|
|
72
|
+
lib_file_name = lib_file_name_base
|
|
73
|
+
unique_ident = 0
|
|
74
|
+
while lib_file_name in lib_content:
|
|
75
|
+
lib_file_name = f'{lib_file_name_base}_{unique_ident}'
|
|
76
|
+
unique_ident += 1
|
|
77
|
+
|
|
78
|
+
lib_content[lib_file_name] = prepareLib.processLibertyFile(
|
|
79
|
+
lib_file,
|
|
80
|
+
logger=None if chip.get('option', 'quiet',
|
|
81
|
+
step=step, index=index) else chip.logger)
|
|
82
|
+
|
|
83
|
+
if not lib_content:
|
|
84
|
+
continue
|
|
85
|
+
|
|
86
|
+
var_name = 'synthesis_libraries'
|
|
87
|
+
if libtype == "macro":
|
|
88
|
+
var_name = 'synthesis_libraries_macros'
|
|
89
|
+
|
|
90
|
+
for file, content in lib_content.items():
|
|
91
|
+
output_file = os.path.join(
|
|
92
|
+
chip.getworkdir(step=step, index=index),
|
|
93
|
+
'inputs',
|
|
94
|
+
f'sc_{libtype}_{lib}_{file}.lib'
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
with open(output_file, 'w') as f:
|
|
98
|
+
f.write(content)
|
|
99
|
+
|
|
100
|
+
chip.add('tool', tool, 'task', task, 'file', var_name, output_file,
|
|
101
|
+
step=step, index=index)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def get_synthesis_corner(chip):
|
|
105
|
+
tool = 'yosys'
|
|
106
|
+
step = chip.get('arg', 'step')
|
|
107
|
+
index = chip.get('arg', 'index')
|
|
108
|
+
_, task = get_tool_task(chip, step, index)
|
|
109
|
+
|
|
110
|
+
syn_corners = chip.get('tool', tool, 'task', task, 'var', 'synthesis_corner',
|
|
111
|
+
step=step, index=index)
|
|
112
|
+
if syn_corners:
|
|
113
|
+
return syn_corners
|
|
114
|
+
|
|
115
|
+
# determine corner based on setup corner from constraints
|
|
116
|
+
corner = None
|
|
117
|
+
for constraint in chip.getkeys('constraint', 'timing'):
|
|
118
|
+
checks = chip.get('constraint', 'timing', constraint, 'check', step=step, index=index)
|
|
119
|
+
if "setup" in checks and not corner:
|
|
120
|
+
corner = chip.get('constraint', 'timing', constraint, 'libcorner',
|
|
121
|
+
step=step, index=index)
|
|
122
|
+
|
|
123
|
+
if not corner:
|
|
124
|
+
# try getting it from first constraint with a valid libcorner
|
|
125
|
+
for constraint in chip.getkeys('constraint', 'timing'):
|
|
126
|
+
if not corner:
|
|
127
|
+
corner = chip.get('constraint', 'timing', constraint, 'libcorner',
|
|
128
|
+
step=step, index=index)
|
|
129
|
+
|
|
130
|
+
return corner
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def _get_synthesis_library_key(chip, lib):
|
|
134
|
+
if chip.valid('library', lib, 'option', 'file', 'yosys_synthesis_libraries'):
|
|
135
|
+
return ('library', lib, 'option', 'file', 'yosys_synthesis_libraries')
|
|
136
|
+
|
|
137
|
+
step = chip.get('arg', 'step')
|
|
138
|
+
index = chip.get('arg', 'index')
|
|
139
|
+
delaymodel = chip.get('asic', 'delaymodel', step=step, index=index)
|
|
140
|
+
|
|
141
|
+
for corner in chip.getkeys('library', lib, 'output'):
|
|
142
|
+
if chip.valid('library', lib, 'output', corner, delaymodel):
|
|
143
|
+
return ('library', lib, 'output', corner, delaymodel)
|
|
144
|
+
|
|
145
|
+
return None
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
##################################################
|
|
149
|
+
def pre_process(chip):
|
|
150
|
+
''' Tool specific function to run before step execution
|
|
151
|
+
'''
|
|
152
|
+
|
|
153
|
+
prepare_asic_libraries(chip)
|
|
@@ -74,6 +74,7 @@ def setup_asic(chip):
|
|
|
74
74
|
mainlib = get_mainlib(chip)
|
|
75
75
|
for option, value in [
|
|
76
76
|
('flatten', "true"),
|
|
77
|
+
('auto_flatten', "true"),
|
|
77
78
|
('hier_iterations', "10"),
|
|
78
79
|
('hier_threshold', "1000"),
|
|
79
80
|
('autoname', "true"),
|
|
@@ -171,6 +172,8 @@ def setup_asic(chip):
|
|
|
171
172
|
chip.set('tool', tool, 'task', task, 'var', 'add_buffers',
|
|
172
173
|
'true/false, flag to indicate whether to add buffers or not.', field='help')
|
|
173
174
|
|
|
175
|
+
chip.set('tool', tool, 'task', task, 'var', 'auto_flatten',
|
|
176
|
+
'true/false, attempt to determine how to flatten the design', field='help')
|
|
174
177
|
chip.set('tool', tool, 'task', task, 'var', 'hier_iterations',
|
|
175
178
|
'Number of iterations to attempt to determine the hierarchy to flatten',
|
|
176
179
|
field='help')
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
####################
|
|
2
2
|
# Helper functions
|
|
3
3
|
####################
|
|
4
|
-
source "$sc_refdir/syn_asic_fpga_shared.tcl"
|
|
5
|
-
|
|
6
4
|
proc preserve_modules { } {
|
|
7
5
|
global sc_cfg
|
|
8
6
|
global sc_tool
|
|
@@ -232,7 +230,7 @@ yosys synth {*}$synth_args -top $sc_design -run begin:fine
|
|
|
232
230
|
sc_map_memory $sc_memory_libmap_files $sc_memory_techmap_files 0
|
|
233
231
|
|
|
234
232
|
# Perform hierarchy flattening
|
|
235
|
-
if { !$flatten_design } {
|
|
233
|
+
if { !$flatten_design && [lindex [sc_cfg_tool_task_get var auto_flatten] 0] == "true" } {
|
|
236
234
|
set sc_hier_iterations \
|
|
237
235
|
[lindex [sc_cfg_tool_task_get var hier_iterations] 0]
|
|
238
236
|
set sc_hier_threshold \
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"openroad": {
|
|
3
3
|
"git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
|
|
4
|
-
"git-commit": "
|
|
4
|
+
"git-commit": "ea63b9aa612f296523b0ec8a6b51dec94de8839c",
|
|
5
5
|
"docker-cmds": [
|
|
6
6
|
"# Remove OR-Tools files",
|
|
7
7
|
"RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"auto-update": false
|
|
37
37
|
},
|
|
38
38
|
"klayout": {
|
|
39
|
-
"version": "0.29.
|
|
39
|
+
"version": "0.29.8",
|
|
40
40
|
"git-url": "https://github.com/KLayout/klayout.git",
|
|
41
41
|
"docker-skip": true,
|
|
42
42
|
"auto-update": true,
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"sv2v": {
|
|
47
47
|
"git-url": "https://github.com/zachjs/sv2v.git",
|
|
48
|
-
"git-commit": "
|
|
48
|
+
"git-commit": "7808819c48c167978aeb5ef34c6e5ed416e90875",
|
|
49
49
|
"auto-update": true
|
|
50
50
|
},
|
|
51
51
|
"verilator": {
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
},
|
|
92
92
|
"yosys": {
|
|
93
93
|
"git-url": "https://github.com/YosysHQ/yosys.git",
|
|
94
|
-
"git-commit": "
|
|
95
|
-
"version-prefix": "
|
|
94
|
+
"git-commit": "0.46",
|
|
95
|
+
"version-prefix": "",
|
|
96
96
|
"auto-update": true
|
|
97
97
|
},
|
|
98
98
|
"xyce": {
|
|
@@ -100,6 +100,11 @@
|
|
|
100
100
|
"version": "7.8.0",
|
|
101
101
|
"auto-update": false
|
|
102
102
|
},
|
|
103
|
+
"xdm": {
|
|
104
|
+
"git-url": "https://github.com/Xyce/XDM.git",
|
|
105
|
+
"git-commit": "Release-2.7.0",
|
|
106
|
+
"auto-update": false
|
|
107
|
+
},
|
|
103
108
|
"slurm": {
|
|
104
109
|
"version": "22.05.7",
|
|
105
110
|
"git-url": "https://github.com/SchedMD/slurm.git",
|
|
@@ -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 -
|