siliconcompiler 0.29.2__py3-none-any.whl → 0.29.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/_metadata.py +1 -1
- siliconcompiler/apps/sc_install.py +1 -1
- siliconcompiler/core.py +8 -3
- siliconcompiler/flowgraph.py +23 -5
- siliconcompiler/scheduler/__init__.py +21 -9
- siliconcompiler/tools/bambu/convert.py +2 -1
- siliconcompiler/tools/bluespec/convert.py +2 -1
- siliconcompiler/tools/chisel/convert.py +2 -1
- siliconcompiler/tools/genfasm/bitstream.py +2 -2
- siliconcompiler/tools/ghdl/convert.py +2 -2
- siliconcompiler/tools/gtkwave/show.py +2 -1
- siliconcompiler/tools/icarus/compile.py +2 -2
- siliconcompiler/tools/klayout/drc.py +2 -1
- siliconcompiler/tools/magic/magic.py +1 -1
- siliconcompiler/tools/netgen/lvs.py +2 -1
- siliconcompiler/tools/openroad/_apr.py +5 -4
- siliconcompiler/tools/openroad/rdlroute.py +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +78 -94
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +11 -1
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/common/reports.tcl +4 -0
- siliconcompiler/tools/openroad/scripts/common/write_data.tcl +2 -5
- siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +3 -0
- siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +1 -0
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +1 -1
- siliconcompiler/tools/opensta/__init__.py +2 -2
- siliconcompiler/tools/opensta/report_libraries.py +2 -2
- siliconcompiler/tools/opensta/timing.py +2 -1
- siliconcompiler/tools/slang/__init__.py +78 -2
- siliconcompiler/tools/slang/elaborate.py +46 -0
- siliconcompiler/tools/slang/lint.py +10 -76
- siliconcompiler/tools/surelog/parse.py +1 -1
- siliconcompiler/tools/sv2v/convert.py +2 -2
- siliconcompiler/tools/template/template.py +2 -2
- siliconcompiler/tools/verilator/verilator.py +2 -1
- siliconcompiler/tools/vivado/vivado.py +2 -1
- siliconcompiler/tools/vpr/place.py +2 -2
- siliconcompiler/tools/vpr/route.py +2 -2
- siliconcompiler/tools/vpr/show.py +2 -1
- siliconcompiler/tools/yosys/syn_asic.py +8 -0
- siliconcompiler/tools/yosys/syn_asic.tcl +4 -0
- siliconcompiler/toolscripts/_tools.json +3 -3
- siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +7 -1
- siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +7 -1
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +1 -0
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +7 -1
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +7 -1
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +7 -1
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +3 -4
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +7 -1
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +7 -1
- siliconcompiler/utils/__init__.py +22 -0
- siliconcompiler/utils/logging.py +67 -0
- {siliconcompiler-0.29.2.dist-info → siliconcompiler-0.29.3.dist-info}/METADATA +6 -6
- {siliconcompiler-0.29.2.dist-info → siliconcompiler-0.29.3.dist-info}/RECORD +59 -55
- {siliconcompiler-0.29.2.dist-info → siliconcompiler-0.29.3.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.29.2.dist-info → siliconcompiler-0.29.3.dist-info}/WHEEL +0 -0
- {siliconcompiler-0.29.2.dist-info → siliconcompiler-0.29.3.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.29.2.dist-info → siliconcompiler-0.29.3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
write_sdc "outputs/${sc_design}.sdc"
|
|
@@ -8,7 +8,7 @@ Sources: https://github.com/The-OpenROAD-Project/OpenSTA
|
|
|
8
8
|
Installation: https://github.com/The-OpenROAD-Project/OpenSTA (also installed with OpenROAD)
|
|
9
9
|
'''
|
|
10
10
|
|
|
11
|
-
import
|
|
11
|
+
from siliconcompiler import utils
|
|
12
12
|
from siliconcompiler.tools.openroad._apr import get_library_timing_keypaths
|
|
13
13
|
from siliconcompiler.tools._common import get_tool_task
|
|
14
14
|
from siliconcompiler.tools._common.asic import get_libraries
|
|
@@ -43,7 +43,7 @@ def setup(chip):
|
|
|
43
43
|
chip.set('tool', tool, 'task', task, 'refdir', 'tools/opensta/scripts',
|
|
44
44
|
step=step, index=index,
|
|
45
45
|
package='siliconcompiler', clobber=False)
|
|
46
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
46
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
47
47
|
step=step, index=index, clobber=False)
|
|
48
48
|
|
|
49
49
|
if delaymodel != 'nldm':
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
from siliconcompiler import utils
|
|
2
2
|
from siliconcompiler.tools.opensta import setup as tool_setup
|
|
3
3
|
from siliconcompiler.tools.opensta import runtime_options as tool_runtime_options
|
|
4
4
|
from siliconcompiler.tools._common import get_tool_task
|
|
@@ -17,7 +17,7 @@ def setup(chip):
|
|
|
17
17
|
chip.set('tool', tool, 'task', task, 'script', 'sc_report_libraries.tcl',
|
|
18
18
|
step=step, index=index, clobber=False)
|
|
19
19
|
|
|
20
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
20
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
21
21
|
step=step, index=index)
|
|
22
22
|
|
|
23
23
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import re
|
|
3
|
+
from siliconcompiler import utils
|
|
3
4
|
from siliconcompiler import sc_open, SiliconCompilerError
|
|
4
5
|
from siliconcompiler.tools.opensta import setup as tool_setup
|
|
5
6
|
from siliconcompiler.tools.opensta import runtime_options as tool_runtime_options
|
|
@@ -22,7 +23,7 @@ def setup(chip):
|
|
|
22
23
|
chip.set('tool', tool, 'task', task, 'script', 'sc_timing.tcl',
|
|
23
24
|
step=step, index=index, clobber=False)
|
|
24
25
|
|
|
25
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
26
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
26
27
|
step=step, index=index)
|
|
27
28
|
|
|
28
29
|
design = chip.top()
|
|
@@ -12,7 +12,9 @@ Installation: https://sv-lang.com/building.html
|
|
|
12
12
|
'''
|
|
13
13
|
import re
|
|
14
14
|
from siliconcompiler import sc_open
|
|
15
|
-
from siliconcompiler.tools._common import
|
|
15
|
+
from siliconcompiler.tools._common import record_metric
|
|
16
|
+
from siliconcompiler.tools._common import \
|
|
17
|
+
get_frontend_options, get_input_files, get_tool_task
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
################################
|
|
@@ -38,7 +40,6 @@ def parse_version(stdout):
|
|
|
38
40
|
def post_process(chip):
|
|
39
41
|
step = chip.get('arg', 'step')
|
|
40
42
|
index = chip.get('arg', 'index')
|
|
41
|
-
tool, task = get_tool_task(chip, step, index)
|
|
42
43
|
|
|
43
44
|
log = f'{step}.log'
|
|
44
45
|
with sc_open(log) as f:
|
|
@@ -47,3 +48,78 @@ def post_process(chip):
|
|
|
47
48
|
if match:
|
|
48
49
|
record_metric(chip, step, index, 'errors', match.group(1), log)
|
|
49
50
|
record_metric(chip, step, index, 'warnings', match.group(2), log)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def common_runtime_options(chip):
|
|
54
|
+
options = []
|
|
55
|
+
|
|
56
|
+
step = chip.get('arg', 'step')
|
|
57
|
+
index = chip.get('arg', 'index')
|
|
58
|
+
tool, task = get_tool_task(chip, step, index)
|
|
59
|
+
|
|
60
|
+
options.extend(['-j', str(chip.get('tool', tool, 'task', task, 'threads',
|
|
61
|
+
step=step, index=index))])
|
|
62
|
+
|
|
63
|
+
opts = get_frontend_options(chip,
|
|
64
|
+
['ydir',
|
|
65
|
+
'idir',
|
|
66
|
+
'vlib',
|
|
67
|
+
'libext',
|
|
68
|
+
'define',
|
|
69
|
+
'param'])
|
|
70
|
+
|
|
71
|
+
if opts['libext']:
|
|
72
|
+
options.append(f'--libext {",".join(opts["libext"])}')
|
|
73
|
+
|
|
74
|
+
#####################
|
|
75
|
+
# Library directories
|
|
76
|
+
#####################
|
|
77
|
+
if opts['ydir']:
|
|
78
|
+
options.append(f'-y {",".join(opts["ydir"])}')
|
|
79
|
+
|
|
80
|
+
#####################
|
|
81
|
+
# Library files
|
|
82
|
+
#####################
|
|
83
|
+
if opts['vlib']:
|
|
84
|
+
options.append(f'-libfile {",".join(opts["vlib"])}')
|
|
85
|
+
|
|
86
|
+
#####################
|
|
87
|
+
# Include paths
|
|
88
|
+
#####################
|
|
89
|
+
if opts['idir']:
|
|
90
|
+
options.append(f'--include-directory {",".join(opts["idir"])}')
|
|
91
|
+
|
|
92
|
+
#######################
|
|
93
|
+
# Variable Definitions
|
|
94
|
+
#######################
|
|
95
|
+
for value in opts['define']:
|
|
96
|
+
options.append('-D ' + value)
|
|
97
|
+
|
|
98
|
+
#######################
|
|
99
|
+
# Command files
|
|
100
|
+
#######################
|
|
101
|
+
cmdfiles = get_input_files(chip, 'input', 'cmdfile', 'f')
|
|
102
|
+
if cmdfiles:
|
|
103
|
+
options.append(f'-F {",".join(cmdfiles)}')
|
|
104
|
+
|
|
105
|
+
#######################
|
|
106
|
+
# Sources
|
|
107
|
+
#######################
|
|
108
|
+
for value in get_input_files(chip, 'input', 'rtl', 'systemverilog'):
|
|
109
|
+
options.append(value)
|
|
110
|
+
for value in get_input_files(chip, 'input', 'rtl', 'verilog'):
|
|
111
|
+
options.append(value)
|
|
112
|
+
|
|
113
|
+
#######################
|
|
114
|
+
# Top Module
|
|
115
|
+
#######################
|
|
116
|
+
options.append('--top ' + chip.top())
|
|
117
|
+
|
|
118
|
+
###############################
|
|
119
|
+
# Parameters (top module only)
|
|
120
|
+
###############################
|
|
121
|
+
# Set up user-provided parameters to ensure we elaborate the correct modules
|
|
122
|
+
for param, value in opts['param']:
|
|
123
|
+
options.append(f'-G {param}={value}')
|
|
124
|
+
|
|
125
|
+
return options
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from siliconcompiler import utils
|
|
2
|
+
from siliconcompiler.tools import slang
|
|
3
|
+
from siliconcompiler.tools._common import \
|
|
4
|
+
add_require_input, add_frontend_requires, get_tool_task, has_input_files
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def setup(chip):
|
|
8
|
+
'''
|
|
9
|
+
Elaborate verilog design files and generate a unified file.
|
|
10
|
+
'''
|
|
11
|
+
slang.setup(chip)
|
|
12
|
+
|
|
13
|
+
step = chip.get('arg', 'step')
|
|
14
|
+
index = chip.get('arg', 'index')
|
|
15
|
+
tool, task = get_tool_task(chip, step, index)
|
|
16
|
+
|
|
17
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
18
|
+
clobber=False, step=step, index=index)
|
|
19
|
+
|
|
20
|
+
add_require_input(chip, 'input', 'rtl', 'verilog')
|
|
21
|
+
add_require_input(chip, 'input', 'rtl', 'systemverilog')
|
|
22
|
+
add_frontend_requires(chip, ['ydir', 'idir', 'vlib', 'libext', 'define', 'param'])
|
|
23
|
+
|
|
24
|
+
chip.set('tool', tool, 'task', task, 'stdout', 'destination', 'output', step=step, index=index)
|
|
25
|
+
chip.set('tool', tool, 'task', task, 'stdout', 'suffix', 'v', step=step, index=index)
|
|
26
|
+
|
|
27
|
+
chip.set('tool', tool, 'task', task, 'output', __outputfile(chip), step=step, index=index)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def runtime_options(chip):
|
|
31
|
+
options = slang.common_runtime_options(chip)
|
|
32
|
+
options.extend([
|
|
33
|
+
"--preprocess",
|
|
34
|
+
"--comments",
|
|
35
|
+
"--ignore-unknown-modules",
|
|
36
|
+
"--allow-use-before-declare"
|
|
37
|
+
])
|
|
38
|
+
|
|
39
|
+
return options
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def __outputfile(chip):
|
|
43
|
+
is_systemverilog = has_input_files(chip, 'input', 'rtl', 'systemverilog')
|
|
44
|
+
if is_systemverilog:
|
|
45
|
+
return f'{chip.top()}.sv'
|
|
46
|
+
return f'{chip.top()}.v'
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
Lint system verilog
|
|
3
|
-
'''
|
|
1
|
+
from siliconcompiler import utils
|
|
4
2
|
from siliconcompiler.tools import slang
|
|
5
3
|
from siliconcompiler.tools._common import \
|
|
6
|
-
add_require_input, add_frontend_requires,
|
|
7
|
-
import os
|
|
4
|
+
add_require_input, add_frontend_requires, get_tool_task
|
|
8
5
|
|
|
9
6
|
|
|
10
7
|
def setup(chip):
|
|
8
|
+
'''
|
|
9
|
+
Lint system verilog
|
|
10
|
+
'''
|
|
11
11
|
slang.setup(chip)
|
|
12
12
|
|
|
13
13
|
step = chip.get('arg', 'step')
|
|
14
14
|
index = chip.get('arg', 'index')
|
|
15
15
|
tool, task = get_tool_task(chip, step, index)
|
|
16
16
|
|
|
17
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
17
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
18
18
|
clobber=False, step=step, index=index)
|
|
19
19
|
|
|
20
20
|
add_require_input(chip, 'input', 'rtl', 'verilog')
|
|
@@ -23,76 +23,10 @@ def setup(chip):
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
def runtime_options(chip):
|
|
26
|
-
options =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
tool, task = get_tool_task(chip, step, index)
|
|
31
|
-
|
|
32
|
-
options.extend(['-j', str(chip.get('tool', tool, 'task', task, 'threads',
|
|
33
|
-
step=step, index=index))])
|
|
34
|
-
|
|
35
|
-
opts = get_frontend_options(chip,
|
|
36
|
-
['ydir',
|
|
37
|
-
'idir',
|
|
38
|
-
'vlib',
|
|
39
|
-
'libext',
|
|
40
|
-
'define',
|
|
41
|
-
'param'])
|
|
42
|
-
|
|
43
|
-
if opts['libext']:
|
|
44
|
-
options.append(f'--libext {",".join(opts["libext"])}')
|
|
45
|
-
|
|
46
|
-
#####################
|
|
47
|
-
# Library directories
|
|
48
|
-
#####################
|
|
49
|
-
if opts['ydir']:
|
|
50
|
-
options.append(f'-y {",".join(opts["ydir"])}')
|
|
51
|
-
|
|
52
|
-
#####################
|
|
53
|
-
# Library files
|
|
54
|
-
#####################
|
|
55
|
-
if opts['vlib']:
|
|
56
|
-
options.append(f'-libfile {",".join(opts["vlib"])}')
|
|
57
|
-
|
|
58
|
-
#####################
|
|
59
|
-
# Include paths
|
|
60
|
-
#####################
|
|
61
|
-
if opts['idir']:
|
|
62
|
-
options.append(f'--include-directory {",".join(opts["idir"])}')
|
|
63
|
-
|
|
64
|
-
#######################
|
|
65
|
-
# Variable Definitions
|
|
66
|
-
#######################
|
|
67
|
-
for value in opts['define']:
|
|
68
|
-
options.append('-D ' + value)
|
|
69
|
-
|
|
70
|
-
#######################
|
|
71
|
-
# Command files
|
|
72
|
-
#######################
|
|
73
|
-
cmdfiles = get_input_files(chip, 'input', 'cmdfile', 'f')
|
|
74
|
-
if cmdfiles:
|
|
75
|
-
options.append(f'-F {",".join(cmdfiles)}')
|
|
76
|
-
|
|
77
|
-
#######################
|
|
78
|
-
# Sources
|
|
79
|
-
#######################
|
|
80
|
-
for value in get_input_files(chip, 'input', 'rtl', 'systemverilog'):
|
|
81
|
-
options.append(value)
|
|
82
|
-
for value in get_input_files(chip, 'input', 'rtl', 'verilog'):
|
|
83
|
-
options.append(value)
|
|
84
|
-
|
|
85
|
-
#######################
|
|
86
|
-
# Top Module
|
|
87
|
-
#######################
|
|
88
|
-
options.append('--top ' + chip.top())
|
|
89
|
-
|
|
90
|
-
###############################
|
|
91
|
-
# Parameters (top module only)
|
|
92
|
-
###############################
|
|
93
|
-
# Set up user-provided parameters to ensure we elaborate the correct modules
|
|
94
|
-
for param, value in opts['param']:
|
|
95
|
-
options.append(f'-G {param}={value}')
|
|
26
|
+
options = slang.common_runtime_options(chip)
|
|
27
|
+
options.extend([
|
|
28
|
+
"--lint-only"
|
|
29
|
+
])
|
|
96
30
|
|
|
97
31
|
return options
|
|
98
32
|
|
|
@@ -28,7 +28,7 @@ def setup(chip):
|
|
|
28
28
|
_, task = get_tool_task(chip, step, index)
|
|
29
29
|
|
|
30
30
|
# Runtime parameters.
|
|
31
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
31
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
32
32
|
step=step, index=index, clobber=False)
|
|
33
33
|
|
|
34
34
|
# Input/Output requirements
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
from siliconcompiler import utils
|
|
2
2
|
from siliconcompiler.tools._common import input_provides
|
|
3
3
|
|
|
4
4
|
|
|
@@ -23,7 +23,7 @@ def setup(chip):
|
|
|
23
23
|
chip.set('tool', tool, 'vswitch', '--numeric-version')
|
|
24
24
|
chip.set('tool', tool, 'version', '>=0.0.9', clobber=False)
|
|
25
25
|
|
|
26
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
26
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
27
27
|
step=step, index=index, clobber=False)
|
|
28
28
|
|
|
29
29
|
# Since we run sv2v after the import/preprocess step, there should be no
|
|
@@ -8,7 +8,7 @@ Sources: https://
|
|
|
8
8
|
Installation: https://
|
|
9
9
|
'''
|
|
10
10
|
|
|
11
|
-
import
|
|
11
|
+
from siliconcompiler import utils
|
|
12
12
|
import siliconcompiler
|
|
13
13
|
from siliconcompiler.tools._common import get_tool_task
|
|
14
14
|
|
|
@@ -60,7 +60,7 @@ def setup(chip):
|
|
|
60
60
|
|
|
61
61
|
chip.set('tool', tool, 'task', task, 'option', options,
|
|
62
62
|
step=step, index=index, clobber=False)
|
|
63
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
63
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
64
64
|
step=step, index=index, clobber=False)
|
|
65
65
|
|
|
66
66
|
# Required for script based tools
|
|
@@ -24,6 +24,7 @@ Installation: https://verilator.org/guide/latest/install.html
|
|
|
24
24
|
'''
|
|
25
25
|
|
|
26
26
|
import os
|
|
27
|
+
from siliconcompiler import utils
|
|
27
28
|
from siliconcompiler.tools._common import (
|
|
28
29
|
add_frontend_requires,
|
|
29
30
|
get_frontend_options,
|
|
@@ -59,7 +60,7 @@ def setup(chip):
|
|
|
59
60
|
|
|
60
61
|
# Common to all tasks
|
|
61
62
|
# Max threads
|
|
62
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
63
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
63
64
|
step=step, index=index, clobber=False)
|
|
64
65
|
|
|
65
66
|
# Basic warning and error grep check on logfile
|
|
@@ -8,6 +8,7 @@ Documentation: https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/
|
|
|
8
8
|
import json
|
|
9
9
|
import os
|
|
10
10
|
import re
|
|
11
|
+
from siliconcompiler import utils
|
|
11
12
|
from siliconcompiler import sc_open
|
|
12
13
|
from siliconcompiler.tools._common import record_metric
|
|
13
14
|
|
|
@@ -47,7 +48,7 @@ def setup_task(chip, task):
|
|
|
47
48
|
chip.set('tool', tool, 'task', task, 'refdir', refdir, step=step, index=index,
|
|
48
49
|
package='siliconcompiler', clobber=False)
|
|
49
50
|
chip.set('tool', tool, 'task', task, 'script', script, step=step, index=index, clobber=False)
|
|
50
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
51
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
51
52
|
step=step, index=index, clobber=False)
|
|
52
53
|
chip.set('tool', tool, 'task', task, 'option', option, step=step, index=index, clobber=False)
|
|
53
54
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import shutil
|
|
2
|
+
from siliconcompiler import utils
|
|
3
3
|
from siliconcompiler import SiliconCompilerError
|
|
4
4
|
from siliconcompiler.tools.vpr import vpr
|
|
5
5
|
from siliconcompiler.tools.vpr._json_constraint import load_constraints_map
|
|
@@ -21,7 +21,7 @@ def setup(chip, clobber=True):
|
|
|
21
21
|
|
|
22
22
|
vpr.setup_tool(chip, clobber=clobber)
|
|
23
23
|
|
|
24
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
24
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
25
25
|
step=step, index=index, clobber=False)
|
|
26
26
|
|
|
27
27
|
design = chip.top()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import shutil
|
|
3
2
|
|
|
3
|
+
from siliconcompiler import utils
|
|
4
4
|
from siliconcompiler.tools.vpr import vpr
|
|
5
5
|
from siliconcompiler.tools._common import get_tool_task
|
|
6
6
|
|
|
@@ -30,7 +30,7 @@ def setup(chip, clobber=True):
|
|
|
30
30
|
",".join(['tool', tool, 'task', task, 'var', 'max_router_iterations']),
|
|
31
31
|
step=step, index=index)
|
|
32
32
|
|
|
33
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
33
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
34
34
|
step=step, index=index, clobber=clobber)
|
|
35
35
|
|
|
36
36
|
# TO-DO: PRIOROTIZE the post-routing packing results?
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
from siliconcompiler import utils
|
|
2
3
|
from siliconcompiler import SiliconCompilerError
|
|
3
4
|
from siliconcompiler.tools.vpr import vpr
|
|
4
5
|
from siliconcompiler.tools._common import get_tool_task
|
|
@@ -16,7 +17,7 @@ def setup(chip, clobber=True):
|
|
|
16
17
|
|
|
17
18
|
vpr.setup_tool(chip, clobber=clobber)
|
|
18
19
|
|
|
19
|
-
chip.set('tool', tool, 'task', task, 'threads',
|
|
20
|
+
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
20
21
|
step=step, index=index, clobber=False)
|
|
21
22
|
|
|
22
23
|
|
|
@@ -185,6 +185,14 @@ def setup_asic(chip):
|
|
|
185
185
|
'Instance limit for the number of cells in a module to preserve.',
|
|
186
186
|
field='help')
|
|
187
187
|
|
|
188
|
+
chip.set('tool', tool, 'task', task, 'var', 'hierarchy_separator',
|
|
189
|
+
'control the hierarchy separator used during design flattening', field='help')
|
|
190
|
+
chip.set('tool', tool, 'task', task, 'var', 'hierarchy_separator', '/',
|
|
191
|
+
step=step, index=index, clobber=False)
|
|
192
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
193
|
+
','.join(['tool', tool, 'task', task, 'var', 'hierarchy_separator']),
|
|
194
|
+
step=step, index=index)
|
|
195
|
+
|
|
188
196
|
set_tool_task_var(chip, 'map_clockgates',
|
|
189
197
|
default_value=False,
|
|
190
198
|
schelp='Map clockgates during synthesis.')
|
|
@@ -233,6 +233,10 @@ if { [sc_cfg_tool_task_exists file synth_extra_map] } {
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
# Specify hierarchy separator
|
|
237
|
+
yosys scratchpad \
|
|
238
|
+
-set flatten.separator "[lindex [sc_cfg_tool_task_get var hierarchy_separator] 0]"
|
|
239
|
+
|
|
236
240
|
# Start synthesis
|
|
237
241
|
yosys synth {*}$synth_args -top $sc_design -run begin:fine
|
|
238
242
|
|
|
@@ -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": "44e36144112da6b2a3bb346ca0d0b692b6d117ca",
|
|
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.11",
|
|
40
40
|
"git-url": "https://github.com/KLayout/klayout.git",
|
|
41
41
|
"docker-skip": true,
|
|
42
42
|
"auto-update": true,
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
},
|
|
92
92
|
"yosys": {
|
|
93
93
|
"git-url": "https://github.com/YosysHQ/yosys.git",
|
|
94
|
-
"git-commit": "v0.
|
|
94
|
+
"git-commit": "v0.49",
|
|
95
95
|
"version-prefix": "",
|
|
96
96
|
"auto-update": true
|
|
97
97
|
},
|
|
File without changes
|
|
@@ -11,7 +11,13 @@ cd deps
|
|
|
11
11
|
sudo yum group install -y "Development Tools"
|
|
12
12
|
sudo yum install -y gmp-devel xz
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
haskell_args=""
|
|
15
|
+
if [ ! -z ${PREFIX} ]; then
|
|
16
|
+
haskell_args="-d $PREFIX"
|
|
17
|
+
export PATH="$PREFIX:$PATH"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
curl -sSL https://get.haskellstack.org/ | sh -s - -f $haskell_args
|
|
15
21
|
|
|
16
22
|
git clone $(python3 ${src_path}/_tools.py --tool sv2v --field git-url) sv2v
|
|
17
23
|
cd sv2v
|
|
File without changes
|
|
@@ -11,7 +11,13 @@ cd deps
|
|
|
11
11
|
sudo yum group install -y "Development Tools"
|
|
12
12
|
sudo yum install -y gmp-devel xz
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
haskell_args=""
|
|
15
|
+
if [ ! -z ${PREFIX} ]; then
|
|
16
|
+
haskell_args="-d $PREFIX"
|
|
17
|
+
export PATH="$PREFIX:$PATH"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
curl -sSL https://get.haskellstack.org/ | sh -s - -f $haskell_args
|
|
15
21
|
|
|
16
22
|
git clone $(python3 ${src_path}/_tools.py --tool sv2v --field git-url) sv2v
|
|
17
23
|
cd sv2v
|
|
File without changes
|
|
@@ -10,7 +10,13 @@ cd deps
|
|
|
10
10
|
|
|
11
11
|
sudo apt-get install -y curl
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
haskell_args=""
|
|
14
|
+
if [ ! -z ${PREFIX} ]; then
|
|
15
|
+
haskell_args="-d $PREFIX"
|
|
16
|
+
export PATH="$PREFIX:$PATH"
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
curl -sSL https://get.haskellstack.org/ | sh -s - -f $haskell_args
|
|
14
20
|
|
|
15
21
|
git clone $(python3 ${src_path}/_tools.py --tool sv2v --field git-url) sv2v
|
|
16
22
|
cd sv2v
|
|
@@ -14,12 +14,18 @@ sudo apt-get install -y build-essential cmake git pkg-config \
|
|
|
14
14
|
mkdir -p deps
|
|
15
15
|
cd deps
|
|
16
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
|
+
|
|
17
23
|
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|
|
18
24
|
cd surelog
|
|
19
25
|
git checkout $(python3 ${src_path}/_tools.py --tool surelog --field git-commit)
|
|
20
26
|
git submodule update --init --recursive
|
|
21
27
|
|
|
22
28
|
make -j$(nproc)
|
|
23
|
-
sudo make install
|
|
29
|
+
sudo -E PATH="$PATH" make install
|
|
24
30
|
|
|
25
31
|
cd -
|
|
@@ -10,7 +10,13 @@ cd deps
|
|
|
10
10
|
|
|
11
11
|
sudo apt-get install -y curl
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
haskell_args=""
|
|
14
|
+
if [ ! -z ${PREFIX} ]; then
|
|
15
|
+
haskell_args="-d $PREFIX"
|
|
16
|
+
export PATH="$PREFIX:$PATH"
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
curl -sSL https://get.haskellstack.org/ | sh -s - -f $haskell_args
|
|
14
20
|
|
|
15
21
|
git clone $(python3 ${src_path}/_tools.py --tool sv2v --field git-url) sv2v
|
|
16
22
|
cd sv2v
|
|
@@ -12,9 +12,8 @@ sudo apt-get install -y autoconf autoconf-archive automake libtool \
|
|
|
12
12
|
libfl-dev
|
|
13
13
|
sudo apt-get install -y \
|
|
14
14
|
gcc-11 gcc-11-multilib g++-11 g++-11-multilib \
|
|
15
|
-
llvm-
|
|
16
|
-
|
|
17
|
-
clang-11 libclang-11-dev
|
|
15
|
+
llvm-16 llvm-16-dev libllvm16 \
|
|
16
|
+
clang-16 libclang-16-dev
|
|
18
17
|
|
|
19
18
|
mkdir -p deps
|
|
20
19
|
cd deps
|
|
@@ -38,7 +37,7 @@ make -f Makefile.init
|
|
|
38
37
|
mkdir obj
|
|
39
38
|
cd obj
|
|
40
39
|
|
|
41
|
-
../configure --enable-release --disable-flopoco --with-opt-level=2 $args
|
|
40
|
+
CC=$(which gcc-11) CXX=$(which g++-11) ../configure --enable-release --disable-flopoco --with-opt-level=2 $args
|
|
42
41
|
make -j$(nproc)
|
|
43
42
|
make install
|
|
44
43
|
|
|
File without changes
|
|
@@ -14,12 +14,18 @@ sudo apt-get install -y build-essential cmake git pkg-config \
|
|
|
14
14
|
mkdir -p deps
|
|
15
15
|
cd deps
|
|
16
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
|
+
|
|
17
23
|
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|
|
18
24
|
cd surelog
|
|
19
25
|
git checkout $(python3 ${src_path}/_tools.py --tool surelog --field git-commit)
|
|
20
26
|
git submodule update --init --recursive
|
|
21
27
|
|
|
22
28
|
make -j$(nproc)
|
|
23
|
-
sudo make install
|
|
29
|
+
sudo -E PATH="$PATH" make install
|
|
24
30
|
|
|
25
31
|
cd -
|