siliconcompiler 0.29.1__py3-none-any.whl → 0.29.2__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 +10 -5
- siliconcompiler/tools/__init__.py +2 -0
- siliconcompiler/tools/_common/asic.py +70 -0
- siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +2 -2
- siliconcompiler/tools/gtkwave/__init__.py +39 -0
- siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +34 -0
- siliconcompiler/tools/gtkwave/show.py +70 -0
- siliconcompiler/tools/icarus/compile.py +4 -0
- siliconcompiler/tools/openroad/_apr.py +9 -1
- siliconcompiler/tools/openroad/global_placement.py +23 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +64 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +4 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +7 -1
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +38 -2
- siliconcompiler/tools/openroad/scripts/common/write_images.tcl +10 -1
- siliconcompiler/tools/verilator/compile.py +11 -0
- siliconcompiler/tools/verilator/verilator.py +1 -1
- siliconcompiler/toolscripts/_tools.json +6 -1
- siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +40 -0
- siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +28 -0
- siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +28 -0
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
- siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +29 -0
- siliconcompiler/utils/showtools.py +3 -0
- {siliconcompiler-0.29.1.dist-info → siliconcompiler-0.29.2.dist-info}/METADATA +5 -5
- {siliconcompiler-0.29.1.dist-info → siliconcompiler-0.29.2.dist-info}/RECORD +32 -25
- {siliconcompiler-0.29.1.dist-info → siliconcompiler-0.29.2.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.29.1.dist-info → siliconcompiler-0.29.2.dist-info}/WHEEL +0 -0
- {siliconcompiler-0.29.1.dist-info → siliconcompiler-0.29.2.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.29.1.dist-info → siliconcompiler-0.29.2.dist-info}/top_level.txt +0 -0
siliconcompiler/_metadata.py
CHANGED
|
@@ -126,7 +126,7 @@ def _recommended_tool_groups(tools):
|
|
|
126
126
|
groups = {
|
|
127
127
|
"asic": {"surelog", "sv2v", "yosys", "openroad", "klayout"},
|
|
128
128
|
"fpga": {"surelog", "sv2v", "yosys", "vpr"},
|
|
129
|
-
"digital-simulation": {"verilator", "icarus"},
|
|
129
|
+
"digital-simulation": {"verilator", "icarus", "gtkwave"},
|
|
130
130
|
"analog-simulation": {"xyce"}
|
|
131
131
|
}
|
|
132
132
|
|
siliconcompiler/core.py
CHANGED
|
@@ -500,6 +500,9 @@ class Chip:
|
|
|
500
500
|
'dependency-caching-rebase')
|
|
501
501
|
"""
|
|
502
502
|
|
|
503
|
+
if os.path.isfile(path):
|
|
504
|
+
path = os.path.dirname(os.path.abspath(path))
|
|
505
|
+
|
|
503
506
|
preset_path = self.get('package', 'source', name, 'path')
|
|
504
507
|
preset_ref = self.get('package', 'source', name, 'ref')
|
|
505
508
|
if preset_path and preset_path != path or preset_ref and preset_ref != ref:
|
|
@@ -3200,6 +3203,7 @@ class Chip:
|
|
|
3200
3203
|
sc_step = self.get('arg', 'step')
|
|
3201
3204
|
sc_index = self.get('arg', 'index')
|
|
3202
3205
|
sc_job = self.get('option', 'jobname')
|
|
3206
|
+
flow = self.get('option', 'flow')
|
|
3203
3207
|
|
|
3204
3208
|
has_filename = filename is not None
|
|
3205
3209
|
# Finding last layout if no argument specified
|
|
@@ -3210,14 +3214,15 @@ class Chip:
|
|
|
3210
3214
|
if sc_step and sc_index:
|
|
3211
3215
|
search_nodes.append((sc_step, sc_index))
|
|
3212
3216
|
elif sc_step:
|
|
3213
|
-
for check_step, check_index in nodes_to_execute(self,
|
|
3217
|
+
for check_step, check_index in nodes_to_execute(self, flow):
|
|
3214
3218
|
if sc_step == check_step:
|
|
3215
3219
|
search_nodes.append((check_step, check_index))
|
|
3216
3220
|
else:
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
+
if flow is not None:
|
|
3222
|
+
for nodes in _get_flowgraph_execution_order(self,
|
|
3223
|
+
flow,
|
|
3224
|
+
reverse=True):
|
|
3225
|
+
search_nodes.extend(nodes)
|
|
3221
3226
|
|
|
3222
3227
|
for ext in self._showtools.keys():
|
|
3223
3228
|
if extension and extension != ext:
|
|
@@ -5,6 +5,7 @@ from siliconcompiler.tools.chisel import chisel
|
|
|
5
5
|
from siliconcompiler.tools.execute import execute
|
|
6
6
|
from siliconcompiler.tools.genfasm import genfasm
|
|
7
7
|
from siliconcompiler.tools.ghdl import ghdl
|
|
8
|
+
from siliconcompiler.tools import gtkwave
|
|
8
9
|
from siliconcompiler.tools.icarus import icarus
|
|
9
10
|
from siliconcompiler.tools.icepack import icepack
|
|
10
11
|
from siliconcompiler.tools.klayout import klayout
|
|
@@ -38,6 +39,7 @@ def get_tools():
|
|
|
38
39
|
execute,
|
|
39
40
|
genfasm,
|
|
40
41
|
ghdl,
|
|
42
|
+
gtkwave,
|
|
41
43
|
icarus,
|
|
42
44
|
icepack,
|
|
43
45
|
klayout,
|
|
@@ -135,6 +135,76 @@ def set_tool_task_var(chip,
|
|
|
135
135
|
return value
|
|
136
136
|
|
|
137
137
|
|
|
138
|
+
def set_tool_task_lib_var(chip,
|
|
139
|
+
param_key,
|
|
140
|
+
default_value=None,
|
|
141
|
+
schelp=None,
|
|
142
|
+
option_key=None,
|
|
143
|
+
lib_key=None):
|
|
144
|
+
'''
|
|
145
|
+
Set parameter from libraries -> option -> default_value
|
|
146
|
+
'''
|
|
147
|
+
step = chip.get('arg', 'step')
|
|
148
|
+
index = chip.get('arg', 'index')
|
|
149
|
+
tool, task = get_tool_task(chip, step, index)
|
|
150
|
+
|
|
151
|
+
if schelp:
|
|
152
|
+
chip.set('tool', tool, 'task', task, 'var', param_key,
|
|
153
|
+
schelp, field='help')
|
|
154
|
+
|
|
155
|
+
if not option_key:
|
|
156
|
+
option_key = f'{tool}_{param_key}'
|
|
157
|
+
require_key, value = pick_key(chip, [('option', 'var', option_key)], step=step, index=index)
|
|
158
|
+
|
|
159
|
+
def check_value(val):
|
|
160
|
+
if isinstance(val, (list, tuple, set)):
|
|
161
|
+
return len(val) > 0
|
|
162
|
+
return val is not None
|
|
163
|
+
|
|
164
|
+
if check_value(value):
|
|
165
|
+
chip.set('tool', tool, 'task', task, 'var', param_key, value,
|
|
166
|
+
step=step, index=index, clobber=False)
|
|
167
|
+
|
|
168
|
+
if require_key:
|
|
169
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
170
|
+
','.join(('option', option_key)),
|
|
171
|
+
step=step, index=index)
|
|
172
|
+
|
|
173
|
+
return value
|
|
174
|
+
|
|
175
|
+
# Add library key
|
|
176
|
+
if not lib_key:
|
|
177
|
+
lib_key = f'{tool}_{param_key}'
|
|
178
|
+
lib_keys = []
|
|
179
|
+
for lib in get_libraries(chip, 'logic'):
|
|
180
|
+
if chip.valid('library', lib, 'option', 'var', lib_key) and \
|
|
181
|
+
chip.get('library', lib, 'option', 'var', lib_key):
|
|
182
|
+
lib_keys.append(('library', lib, 'option', 'var', lib_key))
|
|
183
|
+
|
|
184
|
+
values = set()
|
|
185
|
+
for lib_key in lib_keys:
|
|
186
|
+
chip.add('tool', tool, 'task', task, 'require', ','.join(lib_key), step=step, index=index)
|
|
187
|
+
|
|
188
|
+
get_step = step
|
|
189
|
+
get_index = index
|
|
190
|
+
|
|
191
|
+
if chip.get(*lib_key, field='pernode') == 'never':
|
|
192
|
+
get_step = None
|
|
193
|
+
get_index = None
|
|
194
|
+
|
|
195
|
+
values.update(chip.get(*lib_key, step=get_step, index=get_index))
|
|
196
|
+
|
|
197
|
+
if check_value(values):
|
|
198
|
+
chip.set('tool', tool, 'task', task, 'var', param_key, values,
|
|
199
|
+
step=step, index=index, clobber=False)
|
|
200
|
+
|
|
201
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
202
|
+
','.join(['tool', tool, 'task', task, 'var', param_key]),
|
|
203
|
+
step=step, index=index)
|
|
204
|
+
|
|
205
|
+
return values
|
|
206
|
+
|
|
207
|
+
|
|
138
208
|
def get_tool_task_var(chip,
|
|
139
209
|
param_key,
|
|
140
210
|
option_key=None,
|
|
@@ -49,8 +49,8 @@ proc sc_collect_pin_constraints {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
set side_pin_order []
|
|
52
|
-
|
|
53
|
-
lappend side_pin_order {*}$
|
|
52
|
+
foreach index [lsort -integer [dict keys $pins]] {
|
|
53
|
+
lappend side_pin_order {*}[dict get $pins $index]
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
set pin_layer_ordering [dict create]
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'''
|
|
2
|
+
GTKWave is a fully featured GTK+ based wave viewer for Unix, Win32, and
|
|
3
|
+
Mac OSX which reads LXT, LXT2, VZT, FST, and GHW files as well as standard
|
|
4
|
+
Verilog VCD/EVCD files and allows their viewing.
|
|
5
|
+
|
|
6
|
+
Documentation: https://gtkwave.github.io/gtkwave/
|
|
7
|
+
|
|
8
|
+
Sources: https://github.com/gtkwave/gtkwave
|
|
9
|
+
|
|
10
|
+
Installation: https://github.com/gtkwave/gtkwave
|
|
11
|
+
'''
|
|
12
|
+
|
|
13
|
+
from siliconcompiler.tools._common import \
|
|
14
|
+
get_tool_task
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def setup(chip):
|
|
18
|
+
step = chip.get('arg', 'step')
|
|
19
|
+
index = chip.get('arg', 'index')
|
|
20
|
+
tool, task = get_tool_task(chip, step, index)
|
|
21
|
+
|
|
22
|
+
chip.set('tool', tool, 'exe', 'gtkwave')
|
|
23
|
+
chip.set('tool', tool, 'vswitch', '--version')
|
|
24
|
+
chip.set('tool', tool, 'version', '>=v3.3.116', clobber=False)
|
|
25
|
+
chip.set('tool', tool, 'format', 'tcl', clobber=False)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
################################
|
|
29
|
+
# Version Check
|
|
30
|
+
################################
|
|
31
|
+
def parse_version(stdout):
|
|
32
|
+
# First line: GTKWave Analyzer v3.3.116 (w)1999-2023 BSI
|
|
33
|
+
return stdout.split()[2]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def normalize_version(version):
|
|
37
|
+
if version[0] == 'v':
|
|
38
|
+
return version[1:]
|
|
39
|
+
return version
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
# Reading SC Schema
|
|
3
|
+
###############################
|
|
4
|
+
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
|
+
|
|
7
|
+
##############################
|
|
8
|
+
# Schema Adapter
|
|
9
|
+
###############################
|
|
10
|
+
|
|
11
|
+
set sc_step [sc_cfg_get arg step]
|
|
12
|
+
set sc_index [sc_cfg_get arg index]
|
|
13
|
+
set sc_flow [sc_cfg_get option flow]
|
|
14
|
+
set sc_tool [sc_cfg_get flowgraph $sc_flow $sc_step $sc_index tool]
|
|
15
|
+
set sc_task [sc_cfg_get flowgraph $sc_flow $sc_step $sc_index task]
|
|
16
|
+
|
|
17
|
+
###############################
|
|
18
|
+
# Source pre-scripts
|
|
19
|
+
###############################
|
|
20
|
+
|
|
21
|
+
if { [sc_cfg_tool_task_exists prescript] } {
|
|
22
|
+
foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
|
|
23
|
+
puts "Sourcing pre script: ${sc_pre_script}"
|
|
24
|
+
source $sc_pre_script
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
###############################
|
|
29
|
+
# Handle exit
|
|
30
|
+
###############################
|
|
31
|
+
|
|
32
|
+
if { [lindex [sc_cfg_tool_task_get {var} show_exit] 0] == "true" } {
|
|
33
|
+
exit
|
|
34
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
from siliconcompiler.tools.gtkwave import setup as tool_setup
|
|
4
|
+
from siliconcompiler.tools._common import \
|
|
5
|
+
add_require_input, get_tool_task, input_provides
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def setup(chip):
|
|
9
|
+
'''
|
|
10
|
+
Show a VCD file.
|
|
11
|
+
'''
|
|
12
|
+
|
|
13
|
+
tool_setup(chip)
|
|
14
|
+
|
|
15
|
+
step = chip.get('arg', 'step')
|
|
16
|
+
index = chip.get('arg', 'index')
|
|
17
|
+
tool, task = get_tool_task(chip, step, index)
|
|
18
|
+
|
|
19
|
+
chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
|
|
20
|
+
step=step, index=index)
|
|
21
|
+
|
|
22
|
+
chip.set('tool', tool, 'task', task, 'refdir',
|
|
23
|
+
'tools/gtkwave/scripts',
|
|
24
|
+
step=step, index=index, package='siliconcompiler')
|
|
25
|
+
|
|
26
|
+
chip.set('tool', tool, 'task', task, 'refdir',
|
|
27
|
+
'tools/gtkwave/scripts',
|
|
28
|
+
step=step, index=index, package='siliconcompiler')
|
|
29
|
+
chip.set('tool', tool, 'task', task, 'script', 'sc_show.tcl',
|
|
30
|
+
step=step, index=index)
|
|
31
|
+
|
|
32
|
+
if f'{chip.top()}.vcd' in input_provides(chip, step, index):
|
|
33
|
+
chip.set('tool', tool, 'task', task, 'input', f'{chip.top()}.vcd', step=step, index=index)
|
|
34
|
+
elif chip.valid('tool', tool, 'task', task, 'var', 'show_filepath') and \
|
|
35
|
+
chip.get('tool', tool, 'task', task, 'var', 'show_filepath', step=step, index=index):
|
|
36
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
37
|
+
",".join(['tool', tool, 'task', task, 'var', 'show_filepath']),
|
|
38
|
+
step=step, index=index)
|
|
39
|
+
else:
|
|
40
|
+
add_require_input(chip, 'input', 'waveform', 'vcd')
|
|
41
|
+
|
|
42
|
+
chip.set('tool', tool, 'task', task, 'var', 'show_exit', False,
|
|
43
|
+
step=step, index=index, clobber=False)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def runtime_options(chip):
|
|
47
|
+
step = chip.get('arg', 'step')
|
|
48
|
+
index = chip.get('arg', 'index')
|
|
49
|
+
tool, task = get_tool_task(chip, step, index)
|
|
50
|
+
|
|
51
|
+
options = []
|
|
52
|
+
|
|
53
|
+
threads = chip.get('tool', tool, 'task', task, 'threads', step=step, index=index)
|
|
54
|
+
if threads:
|
|
55
|
+
options.append(f'--cpu={threads}')
|
|
56
|
+
|
|
57
|
+
script = chip.find_files('tool', tool, 'task', task, 'script', step=step, index=index)[0]
|
|
58
|
+
options.append(f'--script={script}')
|
|
59
|
+
|
|
60
|
+
if os.path.exists(f'inputs/{chip.top()}.vcd'):
|
|
61
|
+
dump = f'inputs/{chip.top()}.vcd'
|
|
62
|
+
elif chip.valid('tool', tool, 'task', task, 'var', 'show_filepath') and \
|
|
63
|
+
chip.get('tool', tool, 'task', task, 'var', 'show_filepath', step=step, index=index):
|
|
64
|
+
dump = chip.get('tool', tool, 'task', task, 'var', 'show_filepath',
|
|
65
|
+
step=step, index=index)[0]
|
|
66
|
+
else:
|
|
67
|
+
dump = chip.find_files('input', 'waveform', 'vcd', step=step, index=index)[0]
|
|
68
|
+
options.append(f'--dump={dump}')
|
|
69
|
+
|
|
70
|
+
return options
|
|
@@ -75,6 +75,10 @@ def runtime_options(chip):
|
|
|
75
75
|
cmdlist.append('-I' + value)
|
|
76
76
|
for value in opts['define']:
|
|
77
77
|
cmdlist.append('-D' + value)
|
|
78
|
+
|
|
79
|
+
# add siliconcompiler specific defines
|
|
80
|
+
cmdlist.append(f"-DSILICONCOMPILER_TRACE_FILE=\\\"reports/{design}.vcd\\\"")
|
|
81
|
+
|
|
78
82
|
for value in get_input_files(chip, 'input', 'cmdfile', 'f'):
|
|
79
83
|
cmdlist.append('-f ' + value)
|
|
80
84
|
for value in get_input_files(chip, 'input', 'rtl', 'netlist'):
|
|
@@ -5,7 +5,7 @@ from siliconcompiler import utils
|
|
|
5
5
|
from siliconcompiler.tools._common import input_provides, add_common_file, \
|
|
6
6
|
get_tool_task, record_metric
|
|
7
7
|
from siliconcompiler.tools._common.asic import get_mainlib, set_tool_task_var, get_libraries, \
|
|
8
|
-
CellArea
|
|
8
|
+
CellArea, set_tool_task_lib_var
|
|
9
9
|
from siliconcompiler.tools.openroad import setup as tool_setup
|
|
10
10
|
|
|
11
11
|
|
|
@@ -894,6 +894,14 @@ def define_ord_params(chip):
|
|
|
894
894
|
require=['key'],
|
|
895
895
|
schelp='number of Y bins to use for heatmap image generation')
|
|
896
896
|
|
|
897
|
+
set_tool_task_lib_var(chip, param_key='scan_chain_cells',
|
|
898
|
+
default_value=None,
|
|
899
|
+
schelp='cells to use for scan chain insertion')
|
|
900
|
+
|
|
901
|
+
set_tool_task_lib_var(chip, param_key='multibit_ff_cells',
|
|
902
|
+
default_value=None,
|
|
903
|
+
schelp='multibit flipflop cells')
|
|
904
|
+
|
|
897
905
|
|
|
898
906
|
def define_ord_files(chip):
|
|
899
907
|
step = chip.get('arg', 'step')
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from siliconcompiler.tools._common import get_tool_task
|
|
2
2
|
from siliconcompiler.tools.openroad._apr import setup as apr_setup
|
|
3
|
-
from siliconcompiler.tools.openroad._apr import set_reports, set_pnr_inputs, set_pnr_outputs
|
|
3
|
+
from siliconcompiler.tools.openroad._apr import set_reports, set_pnr_inputs, set_pnr_outputs, \
|
|
4
|
+
set_tool_task_var
|
|
4
5
|
from siliconcompiler.tools.openroad._apr import \
|
|
5
6
|
define_ord_params, define_sta_params, define_sdc_params, \
|
|
6
|
-
define_gpl_params, define_grt_params, define_rsz_params
|
|
7
|
+
define_gpl_params, define_grt_params, define_rsz_params, \
|
|
8
|
+
define_ppl_params
|
|
7
9
|
from siliconcompiler.tools.openroad._apr import build_pex_corners, define_ord_files
|
|
8
10
|
from siliconcompiler.tools.openroad._apr import extract_metrics
|
|
9
11
|
|
|
@@ -35,6 +37,7 @@ def setup(chip):
|
|
|
35
37
|
define_gpl_params(chip)
|
|
36
38
|
define_grt_params(chip)
|
|
37
39
|
define_rsz_params(chip)
|
|
40
|
+
define_ppl_params(chip)
|
|
38
41
|
|
|
39
42
|
set_reports(chip, [
|
|
40
43
|
'setup',
|
|
@@ -48,6 +51,24 @@ def setup(chip):
|
|
|
48
51
|
'power_density'
|
|
49
52
|
])
|
|
50
53
|
|
|
54
|
+
set_tool_task_var(chip, param_key='enable_multibit_clustering',
|
|
55
|
+
default_value=False,
|
|
56
|
+
schelp='true/false, when true multibit clustering will be performed.')
|
|
57
|
+
|
|
58
|
+
set_tool_task_var(chip, param_key='enable_scan_chains',
|
|
59
|
+
default_value=False,
|
|
60
|
+
schelp='true/false, when true scan chains will be inserted.')
|
|
61
|
+
|
|
62
|
+
set_tool_task_var(chip, param_key='scan_enable_port_pattern',
|
|
63
|
+
schelp='pattern of the scan chain enable port.',
|
|
64
|
+
skip=['pdk', 'lib'])
|
|
65
|
+
set_tool_task_var(chip, param_key='scan_in_port_pattern',
|
|
66
|
+
schelp='pattern of the scan chain in port.',
|
|
67
|
+
skip=['pdk', 'lib'])
|
|
68
|
+
set_tool_task_var(chip, param_key='scan_out_port_pattern',
|
|
69
|
+
schelp='pattern of the scan chain out port.',
|
|
70
|
+
skip=['pdk', 'lib'])
|
|
71
|
+
|
|
51
72
|
|
|
52
73
|
def pre_process(chip):
|
|
53
74
|
define_ord_files(chip)
|
|
@@ -17,7 +17,7 @@ source -echo "$sc_refdir/apr/preamble.tcl"
|
|
|
17
17
|
###############################
|
|
18
18
|
|
|
19
19
|
if { [llength [all_clocks]] > 0 } {
|
|
20
|
-
sc_set_dont_use -clock
|
|
20
|
+
sc_set_dont_use -clock -report dont_use.clock_tree_synthesis
|
|
21
21
|
|
|
22
22
|
# Clone clock tree inverters next to register loads
|
|
23
23
|
# so cts does not try to buffer the inverted clocks.
|
|
@@ -11,16 +11,79 @@ source ./sc_manifest.tcl > /dev/null
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
12
|
source -echo "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
|
+
set dont_use_args []
|
|
15
|
+
|
|
16
|
+
if { [lindex [sc_cfg_tool_task_get var enable_scan_chains] 0] == "true" } {
|
|
17
|
+
lappend dont_use_args -scanchain
|
|
18
|
+
}
|
|
19
|
+
if { [lindex [sc_cfg_tool_task_get var enable_multibit_clustering] 0] == "true" } {
|
|
20
|
+
lappend dont_use_args -multibit
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
sc_set_dont_use {*}$dont_use_args -report dont_use.global_placement
|
|
24
|
+
|
|
25
|
+
###############################
|
|
26
|
+
# Scan Chain Preparation
|
|
27
|
+
###############################
|
|
28
|
+
|
|
29
|
+
if { [lindex [sc_cfg_tool_task_get var enable_scan_chains] 0] == "true" } {
|
|
30
|
+
set dft_args []
|
|
31
|
+
if { [sc_cfg_tool_task_get var scan_in_port_pattern] != [] } {
|
|
32
|
+
lappend dft_args -scan_in_name_pattern \
|
|
33
|
+
[lindex [sc_cfg_tool_task_get var scan_in_port_pattern] 0]
|
|
34
|
+
}
|
|
35
|
+
if { [sc_cfg_tool_task_get var scan_out_port_pattern] != [] } {
|
|
36
|
+
lappend dft_args -scan_out_name_pattern \
|
|
37
|
+
[lindex [sc_cfg_tool_task_get var scan_out_port_pattern] 0]
|
|
38
|
+
}
|
|
39
|
+
if { [sc_cfg_tool_task_get var scan_enable_port_pattern] != [] } {
|
|
40
|
+
lappend dft_args -scan_enable_name_pattern \
|
|
41
|
+
[lindex [sc_cfg_tool_task_get var scan_enable_port_pattern] 0]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
set_dft_config -clock_mixing clock_mix {*}$dft_args
|
|
45
|
+
tee -file reports/scan_chain_config.rpt {report_dft_config}
|
|
46
|
+
scan_replace
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
###############################
|
|
50
|
+
# Perform multi-bit clustering
|
|
51
|
+
###############################
|
|
52
|
+
|
|
53
|
+
if { [lindex [sc_cfg_tool_task_get var enable_multibit_clustering] 0] == "true" } {
|
|
54
|
+
cluster_flops
|
|
55
|
+
}
|
|
56
|
+
|
|
14
57
|
###############################
|
|
15
58
|
# Global Placement
|
|
16
59
|
###############################
|
|
17
60
|
|
|
18
61
|
sc_global_placement
|
|
19
62
|
|
|
20
|
-
|
|
63
|
+
###############################
|
|
64
|
+
# Scan Chain Finalize
|
|
65
|
+
###############################
|
|
66
|
+
|
|
67
|
+
if { [lindex [sc_cfg_tool_task_get var enable_scan_chains] 0] == "true" } {
|
|
68
|
+
tee -file reports/scan_chain.rpt {preview_dft -verbose}
|
|
69
|
+
insert_dft
|
|
70
|
+
|
|
71
|
+
set new_ios [sc_get_unplaced_io_nets]
|
|
72
|
+
if { [llength $new_ios] > 0 } {
|
|
73
|
+
foreach net $new_ios {
|
|
74
|
+
utl::report "New IO net [$net getName]"
|
|
75
|
+
}
|
|
76
|
+
utl::warn FLW 1 "Scan chain generated new ports, rerunning pin placement"
|
|
77
|
+
sc_pin_placement
|
|
78
|
+
}
|
|
79
|
+
}
|
|
21
80
|
|
|
22
81
|
###############################
|
|
23
82
|
# Task Postamble
|
|
24
83
|
###############################
|
|
25
84
|
|
|
85
|
+
sc_set_dont_use
|
|
86
|
+
|
|
87
|
+
estimate_parasitics -placement
|
|
88
|
+
|
|
26
89
|
source -echo "$sc_refdir/apr/postamble.tcl"
|
|
@@ -28,6 +28,8 @@ estimate_parasitics -placement
|
|
|
28
28
|
# Repair DRVs
|
|
29
29
|
###############################
|
|
30
30
|
|
|
31
|
+
sc_set_dont_use -scanchain -multibit -report dont_use.repair_drv
|
|
32
|
+
|
|
31
33
|
set repair_design_args []
|
|
32
34
|
|
|
33
35
|
set rsz_cap_margin [lindex [sc_cfg_tool_task_get {var} rsz_cap_margin] 0]
|
|
@@ -43,6 +45,8 @@ repair_design \
|
|
|
43
45
|
-verbose \
|
|
44
46
|
{*}$repair_design_args
|
|
45
47
|
|
|
48
|
+
sc_set_dont_use
|
|
49
|
+
|
|
46
50
|
###############################
|
|
47
51
|
# Tie-off cell insertion
|
|
48
52
|
###############################
|
|
@@ -34,6 +34,9 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_setup_repair] 0] != "true" } {
|
|
|
34
34
|
# Setup Repair
|
|
35
35
|
###############################
|
|
36
36
|
|
|
37
|
+
# Enable ffs for resizing
|
|
38
|
+
sc_set_dont_use -scanchain -multibit -report dont_use.repair_timing.setup
|
|
39
|
+
|
|
37
40
|
estimate_parasitics -placement
|
|
38
41
|
|
|
39
42
|
repair_timing \
|
|
@@ -45,6 +48,9 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_setup_repair] 0] != "true" } {
|
|
|
45
48
|
{*}$repair_timing_args
|
|
46
49
|
|
|
47
50
|
sc_detailed_placement
|
|
51
|
+
|
|
52
|
+
# Restore dont use
|
|
53
|
+
sc_set_dont_use
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
if { [lindex [sc_cfg_tool_task_get var rsz_skip_hold_repair] 0] != "true" } {
|
|
@@ -55,7 +61,7 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_hold_repair] 0] != "true" } {
|
|
|
55
61
|
estimate_parasitics -placement
|
|
56
62
|
|
|
57
63
|
# Enable hold cells
|
|
58
|
-
sc_set_dont_use -hold
|
|
64
|
+
sc_set_dont_use -hold -scanchain -multibit -report dont_use.repair_timing.hold
|
|
59
65
|
|
|
60
66
|
repair_timing \
|
|
61
67
|
-hold \
|
|
@@ -300,6 +300,23 @@ proc sc_bterm_has_placed_io { net } {
|
|
|
300
300
|
return false
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
+
###########################
|
|
304
|
+
# Get nets with unplaced bterms
|
|
305
|
+
###########################
|
|
306
|
+
|
|
307
|
+
proc sc_get_unplaced_io_nets { } {
|
|
308
|
+
set nets []
|
|
309
|
+
foreach bterm [[ord::get_db_block] getBTerms] {
|
|
310
|
+
if {
|
|
311
|
+
[$bterm getFirstPinPlacementStatus] == "UNPLACED" ||
|
|
312
|
+
[$bterm getFirstPinPlacementStatus] == "NONE"
|
|
313
|
+
} {
|
|
314
|
+
lappend nets [$bterm getNet]
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return $nets
|
|
318
|
+
}
|
|
319
|
+
|
|
303
320
|
###########################
|
|
304
321
|
# Find nets regex
|
|
305
322
|
###########################
|
|
@@ -701,13 +718,17 @@ proc sc_set_gui_title { } {
|
|
|
701
718
|
|
|
702
719
|
proc sc_set_dont_use { args } {
|
|
703
720
|
sta::parse_key_args "sc_set_dont_use" args \
|
|
704
|
-
keys {} \
|
|
705
|
-
flags {-hold -clock}
|
|
721
|
+
keys {-report} \
|
|
722
|
+
flags {-hold -clock -multibit -scanchain}
|
|
706
723
|
|
|
707
724
|
sta::check_argc_eq0 "sc_set_dont_use" $args
|
|
708
725
|
|
|
709
726
|
global sc_mainlib
|
|
710
727
|
|
|
728
|
+
if { [sc_check_version 18171] } {
|
|
729
|
+
reset_dont_use
|
|
730
|
+
}
|
|
731
|
+
|
|
711
732
|
set_dont_use [sc_cfg_get library $sc_mainlib asic cells dontuse]
|
|
712
733
|
|
|
713
734
|
set clk_groups "clkbuf clkgate clklogic"
|
|
@@ -724,4 +745,19 @@ proc sc_set_dont_use { args } {
|
|
|
724
745
|
unset_dont_use [sc_cfg_get library $sc_mainlib asic cells $group]
|
|
725
746
|
}
|
|
726
747
|
}
|
|
748
|
+
if { [info exists flags(-clock)] } {
|
|
749
|
+
foreach group $clk_groups {
|
|
750
|
+
unset_dont_use [sc_cfg_get library $sc_mainlib asic cells $group]
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
if { [info exists flags(-multibit)] } {
|
|
754
|
+
unset_dont_use [sc_cfg_tool_task_get var multibit_ff_cells]
|
|
755
|
+
}
|
|
756
|
+
if { [info exists flags(-scanchain)] } {
|
|
757
|
+
unset_dont_use [sc_cfg_tool_task_get var scan_chain_cells]
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
if { [info exists keys(-report)] } {
|
|
761
|
+
tee -file reports/$keys(-report).rpt {report_dont_use}
|
|
762
|
+
}
|
|
727
763
|
}
|
|
@@ -93,6 +93,10 @@ proc sc_image_everything { } {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
proc sc_image_irdrop { net corner } {
|
|
96
|
+
if { ![sc_cfg_tool_task_check_in_list power var reports] } {
|
|
97
|
+
return
|
|
98
|
+
}
|
|
99
|
+
|
|
96
100
|
if { ![sc_has_placed_instances] || [sc_has_unplaced_instances] } {
|
|
97
101
|
return
|
|
98
102
|
}
|
|
@@ -107,7 +111,12 @@ proc sc_image_irdrop { net corner } {
|
|
|
107
111
|
foreach msg $msgs {
|
|
108
112
|
suppress_message PSM $msg
|
|
109
113
|
}
|
|
110
|
-
set
|
|
114
|
+
set analyze_args []
|
|
115
|
+
lappend analyze_args -source_type STRAPS
|
|
116
|
+
if { [sc_check_version 18074] } {
|
|
117
|
+
lappend analyze_args -allow_reuse
|
|
118
|
+
}
|
|
119
|
+
set failed [catch { analyze_power_grid -net $net -corner $corner {*}$analyze_args } err]
|
|
111
120
|
foreach msg $msgs {
|
|
112
121
|
unsuppress_message PSM $msg
|
|
113
122
|
}
|
|
@@ -97,6 +97,12 @@ def setup(chip):
|
|
|
97
97
|
"'vcd' or 'fst'. Defaults to 'vcd'.",
|
|
98
98
|
field='help')
|
|
99
99
|
|
|
100
|
+
chip.set('tool', tool, 'task', task, 'var', 'initialize_random',
|
|
101
|
+
'true/false, when true registers will reset with a random value.',
|
|
102
|
+
field='help')
|
|
103
|
+
chip.set('tool', tool, 'task', task, 'var', 'initialize_random', False,
|
|
104
|
+
step=step, index=index, clobber=False)
|
|
105
|
+
|
|
100
106
|
|
|
101
107
|
def runtime_options(chip):
|
|
102
108
|
tool = 'verilator'
|
|
@@ -107,6 +113,11 @@ def runtime_options(chip):
|
|
|
107
113
|
|
|
108
114
|
cmdlist = runtime_options_tool(chip)
|
|
109
115
|
|
|
116
|
+
random_init = chip.get('tool', tool, 'task', task, 'var',
|
|
117
|
+
'initialize_random', step=step, index=index)
|
|
118
|
+
if random_init == ['true']:
|
|
119
|
+
cmdlist.extend(['--x-assign', 'unique'])
|
|
120
|
+
|
|
110
121
|
cmdlist.extend(['--exe', '--build'])
|
|
111
122
|
|
|
112
123
|
threads = chip.get('tool', tool, 'task', task, 'threads', step=step, index=index)
|
|
@@ -77,7 +77,7 @@ def setup(chip):
|
|
|
77
77
|
chip.set('tool', tool, 'task', task, 'var', 'enable_assert',
|
|
78
78
|
'true/false, when true assertions are enabled in Verilator.',
|
|
79
79
|
field='help')
|
|
80
|
-
chip.set('tool', tool, 'task', task, 'var', 'enable_assert',
|
|
80
|
+
chip.set('tool', tool, 'task', task, 'var', 'enable_assert', False,
|
|
81
81
|
step=step, index=index, clobber=False)
|
|
82
82
|
|
|
83
83
|
if chip.get('tool', tool, 'task', task, 'var', 'enable_assert', step=step, index=index):
|
|
@@ -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": "beba944a7c9eaface2ae88040ac721272b22e9d3",
|
|
5
5
|
"docker-cmds": [
|
|
6
6
|
"# Remove OR-Tools files",
|
|
7
7
|
"RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
|
|
@@ -131,5 +131,10 @@
|
|
|
131
131
|
"git-commit": "v7.0",
|
|
132
132
|
"git-url": "https://github.com/MikePopoloski/slang.git",
|
|
133
133
|
"auto-update": true
|
|
134
|
+
},
|
|
135
|
+
"gtkwave": {
|
|
136
|
+
"git-commit": "v3.3.116",
|
|
137
|
+
"git-url": "https://github.com/gtkwave/gtkwave.git",
|
|
138
|
+
"auto-update": false
|
|
134
139
|
}
|
|
135
140
|
}
|
|
@@ -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
|
+
sudo yum install -y gtk3-devel \
|
|
10
|
+
bzip2-devel xz-devel tcl-devel tk-devel
|
|
11
|
+
sudo dnf config-manager --set-enabled devel || true
|
|
12
|
+
sudo yum install -y Judy-devel
|
|
13
|
+
sudo dnf config-manager --set-disabled devel || true
|
|
14
|
+
|
|
15
|
+
mkdir -p deps
|
|
16
|
+
cd deps
|
|
17
|
+
|
|
18
|
+
args=
|
|
19
|
+
if [ ! -z ${PREFIX} ]; then
|
|
20
|
+
args=--prefix="$PREFIX"
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz
|
|
24
|
+
tar xvf gperf-3.1.tar.gz
|
|
25
|
+
cd gperf-3.1
|
|
26
|
+
./configure $args
|
|
27
|
+
make -j$(nproc)
|
|
28
|
+
sudo make install
|
|
29
|
+
cd ..
|
|
30
|
+
|
|
31
|
+
git clone $(python3 ${src_path}/_tools.py --tool gtkwave --field git-url) gtkwave
|
|
32
|
+
cd gtkwave
|
|
33
|
+
git checkout $(python3 ${src_path}/_tools.py --tool gtkwave --field git-commit)
|
|
34
|
+
|
|
35
|
+
cd gtkwave3-gtk3
|
|
36
|
+
|
|
37
|
+
./autogen.sh
|
|
38
|
+
./configure --enable-gtk3 $args
|
|
39
|
+
make -j$(nproc)
|
|
40
|
+
sudo make install
|
|
@@ -0,0 +1,28 @@
|
|
|
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 apt-get install -y build-essential gperf libgtk-3-dev \
|
|
9
|
+
libbz2-dev libjudy-dev liblzma-dev tcl-dev tk-dev
|
|
10
|
+
|
|
11
|
+
mkdir -p deps
|
|
12
|
+
cd deps
|
|
13
|
+
|
|
14
|
+
git clone $(python3 ${src_path}/_tools.py --tool gtkwave --field git-url) gtkwave
|
|
15
|
+
cd gtkwave
|
|
16
|
+
git checkout $(python3 ${src_path}/_tools.py --tool gtkwave --field git-commit)
|
|
17
|
+
|
|
18
|
+
args=
|
|
19
|
+
if [ ! -z ${PREFIX} ]; then
|
|
20
|
+
args=--prefix="$PREFIX"
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
cd gtkwave3-gtk3
|
|
24
|
+
|
|
25
|
+
./autogen.sh
|
|
26
|
+
./configure --enable-gtk3 $args
|
|
27
|
+
make -j$(nproc)
|
|
28
|
+
sudo make install
|
|
@@ -0,0 +1,28 @@
|
|
|
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 apt-get install -y build-essential gperf libgtk-3-dev \
|
|
9
|
+
libbz2-dev libjudy-dev liblzma-dev tcl-dev tk-dev
|
|
10
|
+
|
|
11
|
+
mkdir -p deps
|
|
12
|
+
cd deps
|
|
13
|
+
|
|
14
|
+
git clone $(python3 ${src_path}/_tools.py --tool gtkwave --field git-url) gtkwave
|
|
15
|
+
cd gtkwave
|
|
16
|
+
git checkout $(python3 ${src_path}/_tools.py --tool gtkwave --field git-commit)
|
|
17
|
+
|
|
18
|
+
args=
|
|
19
|
+
if [ ! -z ${PREFIX} ]; then
|
|
20
|
+
args=--prefix="$PREFIX"
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
cd gtkwave3-gtk3
|
|
24
|
+
|
|
25
|
+
./autogen.sh
|
|
26
|
+
./configure --enable-gtk3 $args
|
|
27
|
+
make -j$(nproc)
|
|
28
|
+
sudo make install
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
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 apt-get install -y build-essential gperf libgtk-3-dev \
|
|
9
|
+
libbz2-dev libjudy-dev liblzma-dev tcl-dev tk-dev autotools-dev \
|
|
10
|
+
automake
|
|
11
|
+
|
|
12
|
+
mkdir -p deps
|
|
13
|
+
cd deps
|
|
14
|
+
|
|
15
|
+
git clone $(python3 ${src_path}/_tools.py --tool gtkwave --field git-url) gtkwave
|
|
16
|
+
cd gtkwave
|
|
17
|
+
git checkout $(python3 ${src_path}/_tools.py --tool gtkwave --field git-commit)
|
|
18
|
+
|
|
19
|
+
args=
|
|
20
|
+
if [ ! -z ${PREFIX} ]; then
|
|
21
|
+
args=--prefix="$PREFIX"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
cd gtkwave3-gtk3
|
|
25
|
+
|
|
26
|
+
./autogen.sh
|
|
27
|
+
./configure --enable-gtk3 $args
|
|
28
|
+
make -j$(nproc)
|
|
29
|
+
sudo make install
|
|
@@ -5,6 +5,7 @@ from siliconcompiler.tools.openroad import screenshot as openroad_screenshot
|
|
|
5
5
|
from siliconcompiler.tools.vpr import show as vpr_show
|
|
6
6
|
from siliconcompiler.tools.vpr import screenshot as vpr_screenshot
|
|
7
7
|
from siliconcompiler.tools.yosys import screenshot as yosys_screenshot
|
|
8
|
+
from siliconcompiler.tools.gtkwave import show as gtkwave_show
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
def setup(chip):
|
|
@@ -29,3 +30,5 @@ def setup(chip):
|
|
|
29
30
|
|
|
30
31
|
chip.register_showtool('v', yosys_screenshot)
|
|
31
32
|
chip.register_showtool('vg', yosys_screenshot)
|
|
33
|
+
|
|
34
|
+
chip.register_showtool('vcd', gtkwave_show)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.29.
|
|
3
|
+
Version: 0.29.2
|
|
4
4
|
Summary: A compiler framework that automates translation from source code to silicon.
|
|
5
5
|
Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -46,7 +46,7 @@ Requires-Dist: fastjsonschema==2.21.1
|
|
|
46
46
|
Requires-Dist: docker==7.1.0
|
|
47
47
|
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
48
48
|
Requires-Dist: sc-surelog==1.84.1
|
|
49
|
-
Requires-Dist: orjson==3.10.
|
|
49
|
+
Requires-Dist: orjson==3.10.14
|
|
50
50
|
Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
|
|
51
51
|
Requires-Dist: streamlit==1.41.1; python_version >= "3.9" and python_full_version != "3.9.7"
|
|
52
52
|
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|
|
@@ -58,10 +58,10 @@ Requires-Dist: pytest==8.3.4; extra == "test"
|
|
|
58
58
|
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
|
|
59
59
|
Requires-Dist: pytest-timeout==2.3.1; extra == "test"
|
|
60
60
|
Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
|
|
61
|
-
Requires-Dist: pytest-asyncio==0.25.
|
|
61
|
+
Requires-Dist: pytest-asyncio==0.25.2; python_version >= "3.9" and extra == "test"
|
|
62
62
|
Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
|
|
63
63
|
Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
|
|
64
|
-
Requires-Dist: responses==0.25.
|
|
64
|
+
Requires-Dist: responses==0.25.5; extra == "test"
|
|
65
65
|
Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
66
66
|
Provides-Extra: lint
|
|
67
67
|
Requires-Dist: flake8==7.1.1; extra == "lint"
|
|
@@ -78,7 +78,7 @@ Provides-Extra: examples
|
|
|
78
78
|
Requires-Dist: migen==0.9.2; extra == "examples"
|
|
79
79
|
Requires-Dist: lambdalib==0.3.2; extra == "examples"
|
|
80
80
|
Provides-Extra: optimizer
|
|
81
|
-
Requires-Dist: google-vizier[jax]==0.1.
|
|
81
|
+
Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
|
|
82
82
|
|
|
83
83
|

|
|
84
84
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
siliconcompiler/__init__.py,sha256=Ke_Bcryj9N6MoUq_5z_IDW3qMrUzR-3-kJVsvUenYzY,511
|
|
2
2
|
siliconcompiler/__main__.py,sha256=JwWkcvaNngqgMWprEQ1cFy2Wdq9GMvk46UGTHyh_qvM,170
|
|
3
3
|
siliconcompiler/_common.py,sha256=c6r0SbI2xTpNOZayFsyCDo0riJGNJSPN-0zW8R7rDBI,1488
|
|
4
|
-
siliconcompiler/_metadata.py,sha256=
|
|
5
|
-
siliconcompiler/core.py,sha256=
|
|
4
|
+
siliconcompiler/_metadata.py,sha256=MoETJ1685hRQ-2QGN29A0X6yb699qRcwYlCl7JkjRwQ,1264
|
|
5
|
+
siliconcompiler/core.py,sha256=Paw0dfQjkhu_4piY-Ajcl7MQGekbV0gG20pRdQazIwQ,138308
|
|
6
6
|
siliconcompiler/flowgraph.py,sha256=WLcbBWFj5DdYRRIxNy_Djm2v4yN9WELQM_ypNPB5QVM,21963
|
|
7
7
|
siliconcompiler/issue.py,sha256=9ZpdEBh8QB56-bZ1YXRnjqgg9hwnFty2u1o5oI66W7M,11125
|
|
8
8
|
siliconcompiler/package.py,sha256=nGFzYI63dwO6ULEyEGHu_Pd-8QYMWu8BtpzgwEmppag,14111
|
|
@@ -12,7 +12,7 @@ siliconcompiler/apps/__init__.py,sha256=6LuAljPtVB6g5yXl_58ODoB4Svb6UfKaDbX1e0aN
|
|
|
12
12
|
siliconcompiler/apps/_common.py,sha256=Ph-cD-t9lCzavak3s4YCXXmA_ouf-jJ-7WIEGkSsjOg,3770
|
|
13
13
|
siliconcompiler/apps/sc.py,sha256=7wKQ89DZLVXMNbjAgIu9F8Erb_NmrBkV4lJNjBUt8_c,3215
|
|
14
14
|
siliconcompiler/apps/sc_dashboard.py,sha256=kGyMYbgKgZMBUrTyft6mEvRnmcrKA7JunrkWZ8VwSwM,3478
|
|
15
|
-
siliconcompiler/apps/sc_install.py,sha256=
|
|
15
|
+
siliconcompiler/apps/sc_install.py,sha256=Az2gOq-7MbCnPCLyvtiLo1sslNa_ZiNwyUVvfev-5Xo,6284
|
|
16
16
|
siliconcompiler/apps/sc_issue.py,sha256=PUXFWne6MWY0Ntak3PnMZ84tpEZ5S1Pta5B3AkxMdoY,6404
|
|
17
17
|
siliconcompiler/apps/sc_remote.py,sha256=jsQWEqZnoKrJI9FcA2ILZYJ8F7uvLuwYI4N23dRwVRs,7241
|
|
18
18
|
siliconcompiler/apps/sc_server.py,sha256=d3SCfKtNneIBiAk7Udc5SqXvSIoFSK40iHWcKuY7unk,894
|
|
@@ -130,13 +130,13 @@ siliconcompiler/templates/slurm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
130
130
|
siliconcompiler/templates/slurm/run.sh,sha256=uXs91H0vjLB8G8vaezxXSr3XNR2EUiXH1dyfOSHYYnk,214
|
|
131
131
|
siliconcompiler/templates/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
132
|
siliconcompiler/templates/tcl/manifest.tcl.j2,sha256=XT2pKuPSaa2GPJj1IpEl3Al5N70yqQS8jZecmpyeV4o,3547
|
|
133
|
-
siliconcompiler/tools/__init__.py,sha256=
|
|
133
|
+
siliconcompiler/tools/__init__.py,sha256=MZrsqpW_OonmSq1LjGNbB0OQkqNOEtyjmgsOEtk1qJc,1879
|
|
134
134
|
siliconcompiler/tools/_common/__init__.py,sha256=NP1YLZn6wyOXRWZwzDnJUKzrJ-eD88X94nXzXcj-ALg,15012
|
|
135
|
-
siliconcompiler/tools/_common/asic.py,sha256=
|
|
135
|
+
siliconcompiler/tools/_common/asic.py,sha256=fFbu2lzvovqAyG8Z-9cINJJCNkiroTgQEhx--ZAqEUk,9002
|
|
136
136
|
siliconcompiler/tools/_common/sdc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
137
|
siliconcompiler/tools/_common/sdc/sc_constraints.sdc,sha256=Hz6OLebi14UTcfGXgJoNJeFo0BH_4N5XwjFe2mrey8g,2827
|
|
138
138
|
siliconcompiler/tools/_common/tcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
|
-
siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl,sha256=
|
|
139
|
+
siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl,sha256=Q6L9hd3rP2h71dGoxWDAYyHSfgeja2JqNJpQhfvJGYw,2102
|
|
140
140
|
siliconcompiler/tools/bambu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
141
|
siliconcompiler/tools/bambu/bambu.py,sha256=hodIBmILSE7xvfIc74r0Qc0dZI42TwHhrKmWLom-hc0,1159
|
|
142
142
|
siliconcompiler/tools/bambu/convert.py,sha256=5yez6N-y5Aia8ygvD9O8sfx5GcMsRg9nN5KzXcR-Tio,2316
|
|
@@ -167,8 +167,11 @@ siliconcompiler/tools/genfasm/genfasm.py,sha256=ysiFWhfoZ6F551dnE4BTgdbG7VHdCxwI
|
|
|
167
167
|
siliconcompiler/tools/ghdl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
168
|
siliconcompiler/tools/ghdl/convert.py,sha256=uzNu4AHI7whpa0WaE8nDGSAZY5t1Shmv4DhwREpamn4,2977
|
|
169
169
|
siliconcompiler/tools/ghdl/ghdl.py,sha256=E0YJtb6ounqnW34hpz_bpLCIeNFxF429DJMHswMs4xE,1186
|
|
170
|
+
siliconcompiler/tools/gtkwave/__init__.py,sha256=knumeAY5DeW60NwxcMYFnSsMVQjqgjaernR3O3dF9Ic,1084
|
|
171
|
+
siliconcompiler/tools/gtkwave/show.py,sha256=IIZrID6wOxstdsYkkjqQo5TwFdpCuBcpCkDr9DqW1Ak,2599
|
|
172
|
+
siliconcompiler/tools/gtkwave/scripts/sc_show.tcl,sha256=fKQLNyPCvPOXmgRRtzpsZfXUTqBsehgKCEwT2m3z7C4,879
|
|
170
173
|
siliconcompiler/tools/icarus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
171
|
-
siliconcompiler/tools/icarus/compile.py,sha256=
|
|
174
|
+
siliconcompiler/tools/icarus/compile.py,sha256=MFS15jDYVp56MMWvinSNTWApCBX7pa1lS2iXprFXBFc,3182
|
|
172
175
|
siliconcompiler/tools/icarus/icarus.py,sha256=d1-5s-Z_HaCw6lTCSWRD5oTcPdPrT3rTiSoCpV7y0tU,911
|
|
173
176
|
siliconcompiler/tools/icepack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
174
177
|
siliconcompiler/tools/icepack/bitstream.py,sha256=GSpBcabGfFJmRuo1770EosWMDVJHVjUsxluxZQorsTc,641
|
|
@@ -205,7 +208,7 @@ siliconcompiler/tools/nextpnr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
205
208
|
siliconcompiler/tools/nextpnr/apr.py,sha256=dCMLDS4xnwqCoBtCKd3kwCxjIRqPn_zq3f7pkWPw5mw,802
|
|
206
209
|
siliconcompiler/tools/nextpnr/nextpnr.py,sha256=B5kr-ZLnt2vDFtS4veIdf0_Cm6yvfS1QVqWhxYa8R24,1712
|
|
207
210
|
siliconcompiler/tools/openroad/__init__.py,sha256=aJLiAfdleczGD9QXw7TYBGrWFiEJhaAWbQJcNlYCOts,3250
|
|
208
|
-
siliconcompiler/tools/openroad/_apr.py,sha256=
|
|
211
|
+
siliconcompiler/tools/openroad/_apr.py,sha256=Jvx37yBqYYc2dZrQjn6F2eUNt5gtXEPyhMYMDaeIkiM,49312
|
|
209
212
|
siliconcompiler/tools/openroad/antenna_repair.py,sha256=VwHwiNOuaF8vQj2D_Rcfk2cRV45lA8h0JHdItk4y2dE,2225
|
|
210
213
|
siliconcompiler/tools/openroad/clock_tree_synthesis.py,sha256=slqlMBJnVauTqzOdw4pNOhgN9bJCpwtTj2FV0YmpGgE,1687
|
|
211
214
|
siliconcompiler/tools/openroad/detailed_placement.py,sha256=IsTuZH7780qXQYB7ZEpima2KbK8VWYTD3lBUehcMBX8,1548
|
|
@@ -213,7 +216,7 @@ siliconcompiler/tools/openroad/detailed_route.py,sha256=JVm3E8BVEABRG29lyyRNiW5V
|
|
|
213
216
|
siliconcompiler/tools/openroad/endcap_tapcell_insertion.py,sha256=Clus1qkvUwlyfD4W4rZ_TvbK8vxHt9c6luN4wTSJcz4,1449
|
|
214
217
|
siliconcompiler/tools/openroad/fillercell_insertion.py,sha256=ac3HDUMbd065jn82s6km3ZSRtJbpp-yMHJIcvHBDO-0,1488
|
|
215
218
|
siliconcompiler/tools/openroad/fillmetal_insertion.py,sha256=CPYQ2LFtHlZ5yPUc3xefjDisk62woXgnx_ac6wNNk4Y,2511
|
|
216
|
-
siliconcompiler/tools/openroad/global_placement.py,sha256=
|
|
219
|
+
siliconcompiler/tools/openroad/global_placement.py,sha256=19r19S1BlzlmfMu93B-QYvLRzl26iLo9WS-i85Oznp0,2529
|
|
217
220
|
siliconcompiler/tools/openroad/global_route.py,sha256=JQwZDheM26E29hDaqkJ3eHWo-1BBYYts0kd8yQfbJfQ,1641
|
|
218
221
|
siliconcompiler/tools/openroad/init_floorplan.py,sha256=BxsRvmPUfsp0HGIueLPLWh6f8_CXLxhX1_mOQSVjSuI,4015
|
|
219
222
|
siliconcompiler/tools/openroad/macro_placement.py,sha256=jXrdTQLt-OtV66UWYyZ35jOQdDfkqN-rjWLiGnjjNYI,1941
|
|
@@ -234,31 +237,31 @@ siliconcompiler/tools/openroad/scripts/sc_show.tcl,sha256=JYgw9nRMqP-LzvS9ZAM-Jz
|
|
|
234
237
|
siliconcompiler/tools/openroad/scripts/apr/postamble.tcl,sha256=9CLpG_DLvRKMgFRQMR5xWSzGIF9QERIBMkKTxcDYaWA,1130
|
|
235
238
|
siliconcompiler/tools/openroad/scripts/apr/preamble.tcl,sha256=0SHdMGDFSWYa92igsU5hVEit1fVnXVYZId7zVBOYo0k,2348
|
|
236
239
|
siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl,sha256=Zyd9w7Md6iyCIBmDl-mTYPWkXIx5T0NE9qid339KqLA,1489
|
|
237
|
-
siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl,sha256=
|
|
240
|
+
siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl,sha256=e-siDFpyJksLl-pwKMJGTXIue72MuZFVkilLeOrfvg4,1948
|
|
238
241
|
siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl,sha256=Xcvz-kilJTsrcvNmVZZSzYtCWkC2I1EWYLMVy6DjSxw,924
|
|
239
242
|
siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl,sha256=GlFud8C-89kktBVck4YdSpr_QBDZw62vkEERLyKNzAI,2314
|
|
240
243
|
siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl,sha256=A_eiApMbYlT0WOvreVtqkS-Ou1rdRu-m0Vtj7yKCGFg,1288
|
|
241
244
|
siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl,sha256=uc7MdGV64PWeH_MAkxx2jrzXVXeoOAVYyYIGgMilPDk,571
|
|
242
245
|
siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl,sha256=Qk16mhbcVo1g4wBKjYwV4aNr2zAEFXsF8XnehA9xbWY,896
|
|
243
|
-
siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl,sha256=
|
|
246
|
+
siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl,sha256=obZTbXhfzipP1RSs0LMVYb99w574qRnANgELjdrpnmw,2549
|
|
244
247
|
siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl,sha256=v8149E4GbJrdDAc7i_WFhh2dQomuzSlf149DNqm1DVI,1853
|
|
245
248
|
siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl,sha256=j3sY5GMGtriQks2yaAEzxrcWhvFIsOrH8cfh5wj_aRQ,10431
|
|
246
249
|
siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl,sha256=RWQRQaFEtrlmaYah4FBwTMldL55FowefsPoq_rgurAw,5087
|
|
247
250
|
siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl,sha256=Y3EtUBTT1XJIM6CgnXqGAoRg46GNYuMG3dJ6tw-2ShE,500
|
|
248
251
|
siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl,sha256=FpHZ7b88rH-sxlg0w9PpWrmAZIj3Q6yLNiEFFm9wzkw,1114
|
|
249
252
|
siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl,sha256=1yV9CZjE7iT99nInjc_cdYe5z2iCmtIJCAqlOkBy7k0,1503
|
|
250
|
-
siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl,sha256=
|
|
251
|
-
siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl,sha256=
|
|
253
|
+
siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl,sha256=2ihiPk3FBK9milXitFr2giN-mrSbeNZgk9Pd3UGVwdg,1770
|
|
254
|
+
siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl,sha256=D2wIj3qL4qmCgvKvzViimFbLkK5K0b7HYeFMw0H9JGo,2476
|
|
252
255
|
siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl,sha256=q0I3s-hBZtoiFkZHCfeEHBQGNbbgUmiMJ7U7Gsr1pQI,3696
|
|
253
256
|
siliconcompiler/tools/openroad/scripts/common/debugging.tcl,sha256=i4oNtC0rQq3JaFf1-oKyr_jZQyu5ZF_--zskvG0hdKg,943
|
|
254
|
-
siliconcompiler/tools/openroad/scripts/common/procs.tcl,sha256=
|
|
257
|
+
siliconcompiler/tools/openroad/scripts/common/procs.tcl,sha256=ZmRr6Z-7eRt5_Wr-WaZC81c3snDI7Mq0mc5H49ggePY,22801
|
|
255
258
|
siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl,sha256=sEL4hvDS30E5oHdkyDC2wqdYCKUY3bja4tobzSzWsDw,2020
|
|
256
259
|
siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl,sha256=GeXZ8H3a8fg8o-4KyfZj2N4Db_P9XArZl2T4apfMSZI,778
|
|
257
260
|
siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl,sha256=fsHSSGXkrqOKXjwH7U8XMLMnEPoZpavBVkl4qzLugOU,515
|
|
258
261
|
siliconcompiler/tools/openroad/scripts/common/reports.tcl,sha256=AY9k4oiBKacgsFW8EoOIbWp1lNOZ1b0ohD_o1xC1b1k,6101
|
|
259
262
|
siliconcompiler/tools/openroad/scripts/common/screenshot.tcl,sha256=OEE4JpafdOK1cVJw3sie_Fvo03ZkheElhPpvKsgCV0E,447
|
|
260
263
|
siliconcompiler/tools/openroad/scripts/common/write_data.tcl,sha256=5N7ZKWU_8NdEYO-n6tuTXCmWCYtClDjHykOidKyFWdk,168
|
|
261
|
-
siliconcompiler/tools/openroad/scripts/common/write_images.tcl,sha256=
|
|
264
|
+
siliconcompiler/tools/openroad/scripts/common/write_images.tcl,sha256=4SOSYfakxKk_UNPUDR5C89JSj0VDVb5dRu6sPjBPLqo,11270
|
|
262
265
|
siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl,sha256=95p_XiRPA1PnofMTMUTesI4JniHnvB8f9_oANGRuC8M,692
|
|
263
266
|
siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl,sha256=Aj9J_8aiOR1WqcQvdx99WyUDcN8RafxXwtrexcS5UcU,489
|
|
264
267
|
siliconcompiler/tools/openroad/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -284,10 +287,10 @@ siliconcompiler/tools/sv2v/sv2v.py,sha256=23lP1FRk0Yc0nuQSdbURB0eXHz4BrCyeB-NpxS
|
|
|
284
287
|
siliconcompiler/tools/template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
285
288
|
siliconcompiler/tools/template/template.py,sha256=amTwsGC2rAqM0S0n34ThFaLCMgmiiCl50GSjpoZOaUo,3406
|
|
286
289
|
siliconcompiler/tools/verilator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
287
|
-
siliconcompiler/tools/verilator/compile.py,sha256=
|
|
290
|
+
siliconcompiler/tools/verilator/compile.py,sha256=7A0Pkdhxf-wSOCsMzYP4z7DN6PafvPC_eCi3_pbJ5E4,7479
|
|
288
291
|
siliconcompiler/tools/verilator/lint.py,sha256=Lp-PXk6kYtnemN2cMuvCyZxodDIDzLEmKE3__nGKD1s,520
|
|
289
292
|
siliconcompiler/tools/verilator/parse.py,sha256=ZAYNgcK7wxRabW1mcgdGfmrcn6cLusPgK1X9vJkWUok,806
|
|
290
|
-
siliconcompiler/tools/verilator/verilator.py,sha256=
|
|
293
|
+
siliconcompiler/tools/verilator/verilator.py,sha256=h1spXwxJuRzavW_uRT6ZDEMGB9SaBZQwl2ZiURImy0M,6374
|
|
291
294
|
siliconcompiler/tools/vivado/__init__.py,sha256=f3DdiwAnqqXZZMWp8AAzljLE2pp0Gqarhv9LxzP1ruE,115
|
|
292
295
|
siliconcompiler/tools/vivado/bitstream.py,sha256=361b51W7S_0umzGx_Q7VaXFRHpmanrJiNZCXTS5sXkg,972
|
|
293
296
|
siliconcompiler/tools/vivado/place.py,sha256=tvD4-pPeJ-pjptaytY7jTrbllYyYgsDv59NWPvH-eSU,844
|
|
@@ -329,7 +332,7 @@ siliconcompiler/tools/yosys/techmaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
|
329
332
|
siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v,sha256=M4T-ygiKmlsprl5eGGLaV5w6HVqlEepn0wlUDmOkapg,773
|
|
330
333
|
siliconcompiler/tools/yosys/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
331
334
|
siliconcompiler/tools/yosys/templates/abc.const,sha256=TAq9ThdLMYCJGrtToEU0gWcLuEtjE4Gk8huBbTm1v-I,116
|
|
332
|
-
siliconcompiler/toolscripts/_tools.json,sha256=
|
|
335
|
+
siliconcompiler/toolscripts/_tools.json,sha256=fpQI_5FICve7z4h_8VkbzAp3Y_aDAEpp75nf0f7agE4,4059
|
|
333
336
|
siliconcompiler/toolscripts/_tools.py,sha256=P30KY_xbbjl8eHGsPAxDcAzWvJJpiL07ZfGZZDQbdR8,7174
|
|
334
337
|
siliconcompiler/toolscripts/rhel8/install-chisel.sh,sha256=lPORZN7vlBX6sJSv01JOIiDE9-_7GcCZGA7EP5ri3MQ,525
|
|
335
338
|
siliconcompiler/toolscripts/rhel8/install-ghdl.sh,sha256=xCLeEUuJVI_6PVEvnTwBsTWoEHiQg0TY3x-tJXfg6Zk,459
|
|
@@ -347,6 +350,7 @@ siliconcompiler/toolscripts/rhel8/install-xyce.sh,sha256=rVAt5gIDJNW6gCtuyuRN0VC
|
|
|
347
350
|
siliconcompiler/toolscripts/rhel8/install-yosys.sh,sha256=zNqotSJPNRQUzj16GRhxujpRHPnc-7BOub1rJuSMy2c,641
|
|
348
351
|
siliconcompiler/toolscripts/rhel9/install-chisel.sh,sha256=lPORZN7vlBX6sJSv01JOIiDE9-_7GcCZGA7EP5ri3MQ,525
|
|
349
352
|
siliconcompiler/toolscripts/rhel9/install-ghdl.sh,sha256=lVBBvBOu4WInmZ4asSGObggjlDRslSN0MiQs3qPOHtU,469
|
|
353
|
+
siliconcompiler/toolscripts/rhel9/install-gtkwave.sh,sha256=dQa8nY6c2okYOHCkxi5FMJciIjmO-NdjxWH8CUyqiOY,882
|
|
350
354
|
siliconcompiler/toolscripts/rhel9/install-icarus.sh,sha256=4N2Y2H01impqJy0k5aUDFrF9Z2oonGqPGeHCXey-2VM,771
|
|
351
355
|
siliconcompiler/toolscripts/rhel9/install-klayout.sh,sha256=WRIUDQo62q8X_Ps6oxJ6_5ntHTAo-QC3P5f675qSTzA,397
|
|
352
356
|
siliconcompiler/toolscripts/rhel9/install-magic.sh,sha256=ugiH7ybdxQggs0ucUHiVtCOO142XOh5OhOmmt_aZXRs,609
|
|
@@ -364,6 +368,7 @@ siliconcompiler/toolscripts/ubuntu20/install-bambu.sh,sha256=GfDqGuOJt_kUwgtVyiB
|
|
|
364
368
|
siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh,sha256=MlylMZfFsZq74LnHWgWOiRQKxumm2wK5bZ1Z2A4jwn4,962
|
|
365
369
|
siliconcompiler/toolscripts/ubuntu20/install-chisel.sh,sha256=lPORZN7vlBX6sJSv01JOIiDE9-_7GcCZGA7EP5ri3MQ,525
|
|
366
370
|
siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh,sha256=BrvE2Y3VvUIH4U4lScMb2aRKx0TMEscynHswYUslY6U,467
|
|
371
|
+
siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh,sha256=HWMBTiLzWd9G4x8HnZwnID3qTO7TWRjKtdoO81cxSig,586
|
|
367
372
|
siliconcompiler/toolscripts/ubuntu20/install-icarus.sh,sha256=KHIjKwwA2C9s5jkYzcWWifHpiSc-ewywjyqLk-giB0U,525
|
|
368
373
|
siliconcompiler/toolscripts/ubuntu20/install-icepack.sh,sha256=Qb4_M7Pe8ho3XLlXziRyH0YC_fyiGGbdT1x14s-dZC0,668
|
|
369
374
|
siliconcompiler/toolscripts/ubuntu20/install-klayout.sh,sha256=_g_yETpqGJchbWtV-Sne4ZrvGL3Km7UcR7OYfkZDaz4,781
|
|
@@ -386,6 +391,7 @@ siliconcompiler/toolscripts/ubuntu22/install-bambu.sh,sha256=ZQhExOWbLNghy_wmoFx
|
|
|
386
391
|
siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh,sha256=MlylMZfFsZq74LnHWgWOiRQKxumm2wK5bZ1Z2A4jwn4,962
|
|
387
392
|
siliconcompiler/toolscripts/ubuntu22/install-chisel.sh,sha256=lPORZN7vlBX6sJSv01JOIiDE9-_7GcCZGA7EP5ri3MQ,525
|
|
388
393
|
siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh,sha256=BrvE2Y3VvUIH4U4lScMb2aRKx0TMEscynHswYUslY6U,467
|
|
394
|
+
siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh,sha256=HWMBTiLzWd9G4x8HnZwnID3qTO7TWRjKtdoO81cxSig,586
|
|
389
395
|
siliconcompiler/toolscripts/ubuntu22/install-icarus.sh,sha256=KHIjKwwA2C9s5jkYzcWWifHpiSc-ewywjyqLk-giB0U,525
|
|
390
396
|
siliconcompiler/toolscripts/ubuntu22/install-icepack.sh,sha256=PM7gT42Ew8mSE5G_AA_jl_9oL3M_qcvT92xDdFRJoZ0,661
|
|
391
397
|
siliconcompiler/toolscripts/ubuntu22/install-klayout.sh,sha256=_g_yETpqGJchbWtV-Sne4ZrvGL3Km7UcR7OYfkZDaz4,781
|
|
@@ -408,6 +414,7 @@ siliconcompiler/toolscripts/ubuntu24/install-bambu.sh,sha256=ZQhExOWbLNghy_wmoFx
|
|
|
408
414
|
siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh,sha256=MlylMZfFsZq74LnHWgWOiRQKxumm2wK5bZ1Z2A4jwn4,962
|
|
409
415
|
siliconcompiler/toolscripts/ubuntu24/install-chisel.sh,sha256=lPORZN7vlBX6sJSv01JOIiDE9-_7GcCZGA7EP5ri3MQ,525
|
|
410
416
|
siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh,sha256=BrvE2Y3VvUIH4U4lScMb2aRKx0TMEscynHswYUslY6U,467
|
|
417
|
+
siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh,sha256=F_eeWegI7RHlEnzwyGEE6jdrpNccd-z666xf2ufuuuo,615
|
|
411
418
|
siliconcompiler/toolscripts/ubuntu24/install-icarus.sh,sha256=KHIjKwwA2C9s5jkYzcWWifHpiSc-ewywjyqLk-giB0U,525
|
|
412
419
|
siliconcompiler/toolscripts/ubuntu24/install-icepack.sh,sha256=PM7gT42Ew8mSE5G_AA_jl_9oL3M_qcvT92xDdFRJoZ0,661
|
|
413
420
|
siliconcompiler/toolscripts/ubuntu24/install-klayout.sh,sha256=f4l-Z86LAkjdo5NLq89ORfkjE0Mjygyp84VYi7gEWUU,906
|
|
@@ -428,10 +435,10 @@ siliconcompiler/toolscripts/ubuntu24/install-xyce.sh,sha256=33Iq99sLdiVWFl4zpD2h
|
|
|
428
435
|
siliconcompiler/toolscripts/ubuntu24/install-yosys.sh,sha256=zpyt0MVI7tY8kGY2GIIZvWlXOXm0T7N9IMIZ18Oe26E,713
|
|
429
436
|
siliconcompiler/utils/__init__.py,sha256=9tcYLpWLSbArmlF6qU0KPiFcziaWkzqlQTl6cOl5qpI,14260
|
|
430
437
|
siliconcompiler/utils/asic.py,sha256=cMLs7dneSmh5BlHS0-bZ1tLUpvghTw__gNaUCMpyBds,4986
|
|
431
|
-
siliconcompiler/utils/showtools.py,sha256
|
|
432
|
-
siliconcompiler-0.29.
|
|
433
|
-
siliconcompiler-0.29.
|
|
434
|
-
siliconcompiler-0.29.
|
|
435
|
-
siliconcompiler-0.29.
|
|
436
|
-
siliconcompiler-0.29.
|
|
437
|
-
siliconcompiler-0.29.
|
|
438
|
+
siliconcompiler/utils/showtools.py,sha256=-Ka2hoPDHD4yy5XkJQvEnv5NccAujwNGjQYfahPbW7g,1518
|
|
439
|
+
siliconcompiler-0.29.2.dist-info/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
|
|
440
|
+
siliconcompiler-0.29.2.dist-info/METADATA,sha256=ysB8fHzpHKb9gLsKihURZ2Zlw6iB2894Eibq2f7-B4I,11169
|
|
441
|
+
siliconcompiler-0.29.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
442
|
+
siliconcompiler-0.29.2.dist-info/entry_points.txt,sha256=asA4fgXLVcZtdoZ16bL4z8t229gnA6MxO_cFFlaBtGs,947
|
|
443
|
+
siliconcompiler-0.29.2.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
|
|
444
|
+
siliconcompiler-0.29.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|