siliconcompiler 0.32.2__py3-none-any.whl → 0.32.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 +3 -2
- siliconcompiler/core.py +52 -56
- siliconcompiler/issue.py +3 -1
- siliconcompiler/remote/client.py +55 -16
- siliconcompiler/report/__init__.py +3 -2
- siliconcompiler/report/dashboard/__init__.py +61 -170
- siliconcompiler/report/dashboard/cli/__init__.py +788 -0
- siliconcompiler/report/dashboard/web/__init__.py +196 -0
- siliconcompiler/report/dashboard/{components → web/components}/__init__.py +4 -4
- siliconcompiler/report/dashboard/{components → web/components}/graph.py +1 -1
- siliconcompiler/report/dashboard/{layouts → web/layouts}/__init__.py +3 -3
- siliconcompiler/report/dashboard/{layouts → web/layouts}/_common.py +1 -1
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph.py +5 -5
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_node_tab.py +6 -6
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_sac_tabs.py +6 -6
- siliconcompiler/report/dashboard/{viewer.py → web/viewer.py} +4 -4
- siliconcompiler/scheduler/__init__.py +8 -6
- siliconcompiler/templates/replay/replay.sh.j2 +2 -2
- siliconcompiler/tools/_common/__init__.py +2 -0
- siliconcompiler/tools/openroad/_apr.py +4 -0
- siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
- siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/common/reports.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_show.tcl +1 -1
- siliconcompiler/tools/opensta/__init__.py +1 -1
- siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
- siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
- siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
- siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
- siliconcompiler/tools/opensta/timing.py +6 -2
- siliconcompiler/tools/yosys/sc_synth_asic.tcl +36 -28
- siliconcompiler/tools/yosys/syn_asic.py +11 -2
- siliconcompiler/toolscripts/_tools.json +9 -4
- siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-icarus.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
- siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
- siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-verible.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-verilator.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-icarus.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-magic.sh +1 -2
- siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
- siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
- siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
- siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-verilator.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +1 -2
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +1 -3
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -0
- siliconcompiler/utils/logging.py +87 -33
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.32.3.dist-info}/METADATA +5 -4
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.32.3.dist-info}/RECORD +172 -166
- /siliconcompiler/report/dashboard/{components → web/components}/flowgraph.py +0 -0
- /siliconcompiler/report/dashboard/{state.py → web/state.py} +0 -0
- /siliconcompiler/report/dashboard/{utils → web/utils}/__init__.py +0 -0
- /siliconcompiler/report/dashboard/{utils → web/utils}/file_utils.py +0 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.32.3.dist-info}/WHEEL +0 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.32.3.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.32.3.dist-info}/licenses/LICENSE +0 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.32.3.dist-info}/top_level.txt +0 -0
|
@@ -28,7 +28,7 @@ if { [sc_cfg_tool_task_check_in_list setup var reports] } {
|
|
|
28
28
|
"report_tns"
|
|
29
29
|
report_tns_metric -setup
|
|
30
30
|
|
|
31
|
-
if { [sc_check_version 19519] } {
|
|
31
|
+
if { [sc_check_version 19519] && [llength [all_clocks]] > 0 } {
|
|
32
32
|
tee -quiet -file reports/timing/setup.histogram.rpt \
|
|
33
33
|
"report_timing_histogram -num_bins 20 -setup"
|
|
34
34
|
}
|
|
@@ -48,7 +48,7 @@ if { [sc_cfg_tool_task_check_in_list hold var reports] } {
|
|
|
48
48
|
|
|
49
49
|
report_tns_metric -hold
|
|
50
50
|
|
|
51
|
-
if { [sc_check_version 19519] } {
|
|
51
|
+
if { [sc_check_version 19519] && [llength [all_clocks]] > 0 } {
|
|
52
52
|
tee -quiet -file reports/timing/hold.histogram.rpt \
|
|
53
53
|
"report_timing_histogram -num_bins 20 -hold"
|
|
54
54
|
}
|
|
@@ -32,7 +32,7 @@ def setup(chip):
|
|
|
32
32
|
|
|
33
33
|
chip.set('tool', tool, 'exe', 'sta')
|
|
34
34
|
chip.set('tool', tool, 'vswitch', '-version')
|
|
35
|
-
chip.set('tool', tool, 'version', '>=v2.
|
|
35
|
+
chip.set('tool', tool, 'version', '>=v2.6.2', clobber=False)
|
|
36
36
|
chip.set('tool', tool, 'format', 'tcl')
|
|
37
37
|
|
|
38
38
|
targetlibs = get_libraries(chip, 'logic')
|
|
@@ -44,3 +44,19 @@ proc sc_display_report { report } {
|
|
|
44
44
|
close $fid
|
|
45
45
|
puts $report_content
|
|
46
46
|
}
|
|
47
|
+
|
|
48
|
+
proc sc_path_group { args } {
|
|
49
|
+
sta::parse_key_args "sc_path_group" args \
|
|
50
|
+
keys {-name -to -from} \
|
|
51
|
+
flags {}
|
|
52
|
+
|
|
53
|
+
sta::check_argc_eq0 "sc_path_group" $args
|
|
54
|
+
|
|
55
|
+
if { [llength $keys(-from)] == 0 } {
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
if { [llength $keys(-to)] == 0 } {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
group_path -name $keys(-name) -from $keys(-from) -to $keys(-to)
|
|
62
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
##############################
|
|
8
8
|
# Schema Adapter
|
|
@@ -38,6 +38,12 @@ foreach corner [dict keys [sc_cfg_get constraint timing]] {
|
|
|
38
38
|
# MACROS
|
|
39
39
|
set sc_macrolibs [sc_get_asic_libraries macro]
|
|
40
40
|
|
|
41
|
+
###############################
|
|
42
|
+
# Source helper functions
|
|
43
|
+
###############################
|
|
44
|
+
|
|
45
|
+
source "$sc_refdir/sc_procs.tcl"
|
|
46
|
+
|
|
41
47
|
###############################
|
|
42
48
|
# Read Files
|
|
43
49
|
###############################
|
|
@@ -104,6 +110,34 @@ if { [file exists "inputs/${sc_design}.sdc"] } {
|
|
|
104
110
|
read_sdc "${sdc}"
|
|
105
111
|
}
|
|
106
112
|
|
|
113
|
+
# Create path groups
|
|
114
|
+
if { [llength [sta::path_group_names]] == 0 } {
|
|
115
|
+
sc_path_group -name in2out -from [all_inputs -no_clocks] -to [all_outputs]
|
|
116
|
+
|
|
117
|
+
if {
|
|
118
|
+
[llength [all_clocks]] == 1 ||
|
|
119
|
+
[lindex [sc_cfg_tool_task_get var unique_path_groups_per_clock] 0] == "false"
|
|
120
|
+
} {
|
|
121
|
+
sc_path_group -name in2reg -from [all_inputs -no_clocks] -to [all_registers]
|
|
122
|
+
sc_path_group -name reg2reg -from [all_registers] -to [all_registers]
|
|
123
|
+
sc_path_group -name reg2out -from [all_registers] -to [all_outputs]
|
|
124
|
+
} else {
|
|
125
|
+
foreach clock [all_clocks] {
|
|
126
|
+
set clk_name [get_property $clock name]
|
|
127
|
+
sc_path_group -name in2reg.${clk_name} \
|
|
128
|
+
-from [all_inputs -no_clocks] \
|
|
129
|
+
-to [all_registers -clock $clock]
|
|
130
|
+
sc_path_group -name reg2reg.${clk_name} \
|
|
131
|
+
-from [all_registers -clock $clock] \
|
|
132
|
+
-to [all_registers -clock $clock]
|
|
133
|
+
sc_path_group -name reg2out.${clk_name} \
|
|
134
|
+
-from [all_registers -clock $clock] \
|
|
135
|
+
-to [all_outputs]
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
puts "Timing path groups: [sta::path_group_names]"
|
|
140
|
+
|
|
107
141
|
###############################
|
|
108
142
|
|
|
109
143
|
foreach corner $sc_scenarios {
|
|
@@ -116,12 +150,6 @@ foreach corner $sc_scenarios {
|
|
|
116
150
|
}
|
|
117
151
|
}
|
|
118
152
|
|
|
119
|
-
###############################
|
|
120
|
-
# Source helper functions
|
|
121
|
-
###############################
|
|
122
|
-
|
|
123
|
-
source "$sc_refdir/sc_procs.tcl"
|
|
124
|
-
|
|
125
153
|
###############################
|
|
126
154
|
# Report Metrics
|
|
127
155
|
###############################
|
|
@@ -45,6 +45,10 @@ def setup(chip):
|
|
|
45
45
|
set_tool_task_var(chip, param_key='top_n_paths',
|
|
46
46
|
default_value='10',
|
|
47
47
|
schelp='number of paths to report timing for')
|
|
48
|
+
set_tool_task_var(chip, param_key='unique_path_groups_per_clock',
|
|
49
|
+
default_value=False,
|
|
50
|
+
skip=['pdk', 'lib'],
|
|
51
|
+
schelp='true/false, if true will generate separate path groups per clock')
|
|
48
52
|
|
|
49
53
|
modes = get_timing_modes(chip)
|
|
50
54
|
|
|
@@ -165,13 +169,13 @@ def post_process(chip):
|
|
|
165
169
|
metric = None
|
|
166
170
|
elif metric in ('holdslack', 'setupslack'):
|
|
167
171
|
if slack:
|
|
168
|
-
record_metric(chip, step, index, metric, float(slack.group(1)),
|
|
172
|
+
record_metric(chip, step, index, metric, float(slack.group(1).split()[-1]),
|
|
169
173
|
__report_map(chip, metric, logfile),
|
|
170
174
|
source_unit=timescale)
|
|
171
175
|
metric = None
|
|
172
176
|
elif metric in ('setuptns', 'holdtns'):
|
|
173
177
|
if tns:
|
|
174
|
-
record_metric(chip, step, index, metric, float(tns.group(1)),
|
|
178
|
+
record_metric(chip, step, index, metric, float(tns.group(1).split()[-1]),
|
|
175
179
|
__report_map(chip, metric, logfile),
|
|
176
180
|
source_unit=timescale)
|
|
177
181
|
metric = None
|
|
@@ -37,38 +37,46 @@ source "$sc_refdir/procs.tcl"
|
|
|
37
37
|
########################################################
|
|
38
38
|
|
|
39
39
|
set input_verilog "inputs/$sc_design.v"
|
|
40
|
-
if { [file exists $input_verilog] } {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
if { ![file exists $input_verilog] } {
|
|
41
|
+
set input_verilog []
|
|
42
|
+
if { [sc_cfg_exists input rtl systemverilog] } {
|
|
43
|
+
lappend input_verilog {*}[sc_cfg_get input rtl systemverilog]
|
|
44
|
+
}
|
|
45
|
+
if { [sc_cfg_exists input rtl verilog] } {
|
|
46
|
+
lappend input_verilog {*}[sc_cfg_get input rtl verilog]
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if { [lindex [sc_cfg_tool_task_get var use_slang] 0] == "true" && [sc_load_plugin slang] } {
|
|
51
|
+
# This needs some reordering of loaded to ensure blackboxes are handled
|
|
52
|
+
# before this
|
|
53
|
+
set slang_params []
|
|
54
|
+
if { [sc_cfg_exists option param] } {
|
|
55
|
+
dict for {key value} [sc_cfg_get option param] {
|
|
56
|
+
if { ![string is integer $value] } {
|
|
57
|
+
set value [concat \"$value\"]
|
|
52
58
|
}
|
|
59
|
+
|
|
60
|
+
lappend slang_params -G "${key}=${value}"
|
|
53
61
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
}
|
|
63
|
+
yosys read_slang \
|
|
64
|
+
-D SYNTHESIS \
|
|
65
|
+
--keep-hierarchy \
|
|
66
|
+
--top $sc_design \
|
|
67
|
+
{*}$slang_params \
|
|
68
|
+
{*}$input_verilog
|
|
69
|
+
} else {
|
|
70
|
+
# Use -noblackbox to correctly interpret empty modules as empty,
|
|
71
|
+
# actual black boxes are read in later
|
|
72
|
+
# https://github.com/YosysHQ/yosys/issues/1468
|
|
73
|
+
yosys read_verilog -noblackbox -sv {*}$input_verilog
|
|
65
74
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
########################################################
|
|
76
|
+
# Override top level parameters
|
|
77
|
+
########################################################
|
|
69
78
|
|
|
70
|
-
|
|
71
|
-
}
|
|
79
|
+
sc_apply_params
|
|
72
80
|
}
|
|
73
81
|
|
|
74
82
|
####################
|
|
@@ -8,7 +8,7 @@ from siliconcompiler import utils
|
|
|
8
8
|
from siliconcompiler.tools._common.asic import set_tool_task_var, get_libraries, get_mainlib, \
|
|
9
9
|
CellArea
|
|
10
10
|
from siliconcompiler.tools._common.asic_clock import get_clock_period
|
|
11
|
-
from siliconcompiler.tools._common import get_tool_task
|
|
11
|
+
from siliconcompiler.tools._common import get_tool_task, input_provides, add_require_input
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def make_docs(chip):
|
|
@@ -34,7 +34,16 @@ def setup(chip):
|
|
|
34
34
|
step=step, index=index, clobber=False)
|
|
35
35
|
|
|
36
36
|
# Input/output requirements.
|
|
37
|
-
|
|
37
|
+
if f'{design}.v' in input_provides(chip, step, index):
|
|
38
|
+
chip.set('tool', tool, 'task', task, 'input', design + '.v', step=step, index=index)
|
|
39
|
+
else:
|
|
40
|
+
added = False
|
|
41
|
+
added |= add_require_input(chip, 'input', 'rtl', 'systemverilog',
|
|
42
|
+
include_library_files=False)
|
|
43
|
+
added |= add_require_input(chip, 'input', 'rtl', 'verilog',
|
|
44
|
+
include_library_files=False)
|
|
45
|
+
if not added:
|
|
46
|
+
chip.add('tool', tool, 'task', task, 'require', 'input,rtl,verilog')
|
|
38
47
|
chip.set('tool', tool, 'task', task, 'output', design + '.vg', step=step, index=index)
|
|
39
48
|
chip.add('tool', tool, 'task', task, 'output', design + '.netlist.json', step=step, index=index)
|
|
40
49
|
|
|
@@ -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": "e78e29127134a0b95ebcd5661895c6dc4651e641",
|
|
5
5
|
"docker-cmds": [
|
|
6
6
|
"# Remove OR-Tools files",
|
|
7
7
|
"RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
"git-commit": "v1.84",
|
|
16
16
|
"auto-update": true
|
|
17
17
|
},
|
|
18
|
+
"opensta": {
|
|
19
|
+
"git-url": "https://github.com/parallaxsw/OpenSTA.git",
|
|
20
|
+
"git-commit": "109bc9ab5e35b830db9569f741db09e468704e6b",
|
|
21
|
+
"auto-update": true
|
|
22
|
+
},
|
|
18
23
|
"netgen": {
|
|
19
24
|
"git-url": "https://github.com/RTimothyEdwards/netgen.git",
|
|
20
25
|
"git-commit": "fb7876c7a6f9d58a3d88a49e302e682c1d12e00d",
|
|
@@ -45,7 +50,7 @@
|
|
|
45
50
|
},
|
|
46
51
|
"sv2v": {
|
|
47
52
|
"git-url": "https://github.com/zachjs/sv2v.git",
|
|
48
|
-
"git-commit": "
|
|
53
|
+
"git-commit": "d30c7e7f4e9018b9d4a565207ff752460c81eeb4",
|
|
49
54
|
"auto-update": true
|
|
50
55
|
},
|
|
51
56
|
"verilator": {
|
|
@@ -91,7 +96,7 @@
|
|
|
91
96
|
},
|
|
92
97
|
"yosys": {
|
|
93
98
|
"git-url": "https://github.com/YosysHQ/yosys.git",
|
|
94
|
-
"git-commit": "v0.
|
|
99
|
+
"git-commit": "v0.52",
|
|
95
100
|
"version-prefix": "",
|
|
96
101
|
"auto-update": true
|
|
97
102
|
},
|
|
@@ -139,7 +144,7 @@
|
|
|
139
144
|
},
|
|
140
145
|
"yosys-slang": {
|
|
141
146
|
"git-url": "https://github.com/povik/yosys-slang.git",
|
|
142
|
-
"git-commit": "
|
|
147
|
+
"git-commit": "a95ef24f0307230ae25ea6f2216d2fe8b8ece0be",
|
|
143
148
|
"docker-depends": "yosys",
|
|
144
149
|
"auto-update": true
|
|
145
150
|
},
|
|
@@ -6,8 +6,7 @@ set -e
|
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
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
|
|
9
|
+
sudo yum install -y tcl-devel tk-devel tcsh csh git
|
|
11
10
|
|
|
12
11
|
mkdir -p deps
|
|
13
12
|
cd deps
|
|
@@ -5,6 +5,8 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo yum install -y git
|
|
9
|
+
|
|
8
10
|
# These dependencies are up-to-date with instructions from the INSTALL.md from the commit we are pinned to below
|
|
9
11
|
sudo yum install -y gcc-toolset-12
|
|
10
12
|
sudo dnf config-manager --set-enabled devel || true
|
|
@@ -17,7 +19,7 @@ cd deps
|
|
|
17
19
|
python3 -m venv .surelog --clear
|
|
18
20
|
. .surelog/bin/activate
|
|
19
21
|
python3 -m pip install --upgrade pip
|
|
20
|
-
python3 -m pip install cmake
|
|
22
|
+
python3 -m pip install cmake==3.28.4
|
|
21
23
|
python3 -m pip install orderedmultidict
|
|
22
24
|
|
|
23
25
|
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|
|
@@ -8,6 +8,7 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
|
8
8
|
sudo yum group install -y "Development Tools"
|
|
9
9
|
sudo yum install -y gtk3-devel \
|
|
10
10
|
bzip2-devel xz-devel tcl-devel tk-devel
|
|
11
|
+
sudo yum install -y wget git
|
|
11
12
|
sudo dnf config-manager --set-enabled devel || true
|
|
12
13
|
sudo yum install -y Judy-devel
|
|
13
14
|
sudo dnf config-manager --set-disabled devel || true
|
|
@@ -6,8 +6,7 @@ set -e
|
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
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
|
|
9
|
+
sudo yum install -y tcl-devel tk-devel tcsh csh git
|
|
11
10
|
|
|
12
11
|
mkdir -p deps
|
|
13
12
|
cd deps
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
6
|
+
|
|
7
|
+
sudo yum install -y git gcc-c++ wget
|
|
8
|
+
sudo yum install -y tcl-tclreadline-devel \
|
|
9
|
+
bison flex zlib-devel automake autoconf
|
|
10
|
+
sudo yum install -y \
|
|
11
|
+
https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/Packages/flex-2.6.4-9.el9.x86_64.rpm \
|
|
12
|
+
https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/Packages/readline-devel-8.1-4.el9.x86_64.rpm \
|
|
13
|
+
https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/tcl-devel-8.6.10-7.el9.x86_64.rpm
|
|
14
|
+
|
|
15
|
+
mkdir -p deps
|
|
16
|
+
cd deps
|
|
17
|
+
|
|
18
|
+
python3 -m venv .opensta --clear
|
|
19
|
+
. .opensta/bin/activate
|
|
20
|
+
python3 -m pip install cmake==3.31.6
|
|
21
|
+
|
|
22
|
+
if [ ! -z ${PREFIX} ]; then
|
|
23
|
+
cmake_args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
|
|
24
|
+
config_prefix="--prefix=$PREFIX"
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# eigen
|
|
28
|
+
mkdir -p eigen3
|
|
29
|
+
cd eigen3
|
|
30
|
+
git clone --depth=1 -b 3.4 https://gitlab.com/libeigen/eigen.git
|
|
31
|
+
cd eigen
|
|
32
|
+
mkdir build
|
|
33
|
+
cd build
|
|
34
|
+
cmake $cmake_args ..
|
|
35
|
+
make -j$(nproc)
|
|
36
|
+
sudo make install
|
|
37
|
+
|
|
38
|
+
cd ../../..
|
|
39
|
+
# cudd
|
|
40
|
+
mkdir -p cudd
|
|
41
|
+
cd cudd
|
|
42
|
+
git clone --depth=1 -b 3.0.0 https://github.com/The-OpenROAD-Project/cudd.git
|
|
43
|
+
cd cudd
|
|
44
|
+
autoreconf
|
|
45
|
+
./configure $config_prefix
|
|
46
|
+
make -j$(nproc)
|
|
47
|
+
sudo make install
|
|
48
|
+
|
|
49
|
+
cd ../..
|
|
50
|
+
#swig
|
|
51
|
+
wget -O swig.tar.gz https://github.com/swig/swig/archive/v4.1.0.tar.gz
|
|
52
|
+
tar xfz swig.tar.gz
|
|
53
|
+
cd swig-4.1.0
|
|
54
|
+
|
|
55
|
+
wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz
|
|
56
|
+
./Tools/pcre-build.sh
|
|
57
|
+
|
|
58
|
+
./autogen.sh
|
|
59
|
+
./configure $config_prefix
|
|
60
|
+
make -j$(nproc)
|
|
61
|
+
sudo make -j$(nproc) install
|
|
62
|
+
|
|
63
|
+
cd ../..
|
|
64
|
+
# opensta
|
|
65
|
+
git clone $(python3 ${src_path}/_tools.py --tool opensta --field git-url) opensta
|
|
66
|
+
cd opensta
|
|
67
|
+
git checkout $(python3 ${src_path}/_tools.py --tool opensta --field git-commit)
|
|
68
|
+
git submodule update --init --recursive
|
|
69
|
+
|
|
70
|
+
mkdir -p build
|
|
71
|
+
cd build
|
|
72
|
+
cmake .. $cmake_args
|
|
73
|
+
make -j$(nproc)
|
|
74
|
+
sudo make install
|
|
75
|
+
|
|
76
|
+
cd -
|
|
@@ -5,13 +5,15 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo yum install -y git
|
|
9
|
+
|
|
8
10
|
mkdir -p deps
|
|
9
11
|
cd deps
|
|
10
12
|
|
|
11
13
|
python3 -m venv .slang --clear
|
|
12
14
|
. .slang/bin/activate
|
|
13
15
|
python3 -m pip install --upgrade pip
|
|
14
|
-
python3 -m pip install cmake
|
|
16
|
+
python3 -m pip install cmake==3.31.6
|
|
15
17
|
|
|
16
18
|
sudo yum install -y gcc-toolset-12
|
|
17
19
|
|
|
@@ -10,6 +10,7 @@ sudo yum install -y gcc-toolset-12
|
|
|
10
10
|
sudo dnf config-manager --set-enabled devel || true
|
|
11
11
|
sudo yum install -y libuuid-devel java-11-openjdk-devel python3 zlib-static openssl-devel
|
|
12
12
|
sudo dnf config-manager --set-disabled devel || true
|
|
13
|
+
sudo yum install -y git
|
|
13
14
|
|
|
14
15
|
mkdir -p deps
|
|
15
16
|
cd deps
|
|
@@ -17,7 +18,7 @@ cd deps
|
|
|
17
18
|
python3 -m venv .surelog --clear
|
|
18
19
|
. .surelog/bin/activate
|
|
19
20
|
python3 -m pip install --upgrade pip
|
|
20
|
-
python3 -m pip install cmake
|
|
21
|
+
python3 -m pip install cmake==3.31.6
|
|
21
22
|
python3 -m pip install orderedmultidict
|
|
22
23
|
|
|
23
24
|
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|