siliconcompiler 0.28.8__py3-none-any.whl → 0.29.0__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_remote.py +15 -14
- siliconcompiler/apps/sc_show.py +5 -5
- siliconcompiler/apps/utils/replay.py +136 -0
- siliconcompiler/core.py +14 -12
- siliconcompiler/flows/_common.py +11 -13
- siliconcompiler/flows/asicflow.py +83 -42
- siliconcompiler/remote/__init__.py +11 -0
- siliconcompiler/remote/client.py +753 -815
- siliconcompiler/report/report.py +2 -0
- siliconcompiler/report/summary_table.py +1 -1
- siliconcompiler/scheduler/__init__.py +51 -9
- siliconcompiler/scheduler/send_messages.py +37 -33
- siliconcompiler/scheduler/validation/email_credentials.json +7 -0
- siliconcompiler/schema/schema_cfg.py +15 -3
- siliconcompiler/schema/schema_obj.py +16 -0
- siliconcompiler/sphinx_ext/dynamicgen.py +4 -3
- siliconcompiler/targets/fpgaflow_demo.py +6 -7
- siliconcompiler/targets/gf180_demo.py +3 -3
- siliconcompiler/templates/replay/requirements.txt +6 -0
- siliconcompiler/templates/replay/run.py.j2 +22 -0
- siliconcompiler/templates/replay/setup.sh +17 -0
- siliconcompiler/tools/_common/__init__.py +17 -3
- siliconcompiler/tools/_common/asic.py +10 -3
- siliconcompiler/tools/builtin/concatenate.py +1 -1
- siliconcompiler/tools/openroad/__init__.py +103 -0
- siliconcompiler/tools/openroad/{openroad.py → _apr.py} +413 -422
- siliconcompiler/tools/openroad/antenna_repair.py +78 -0
- siliconcompiler/tools/openroad/clock_tree_synthesis.py +64 -0
- siliconcompiler/tools/openroad/detailed_placement.py +59 -0
- siliconcompiler/tools/openroad/detailed_route.py +62 -0
- siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +52 -0
- siliconcompiler/tools/openroad/fillercell_insertion.py +58 -0
- siliconcompiler/tools/openroad/{dfm.py → fillmetal_insertion.py} +35 -19
- siliconcompiler/tools/openroad/global_placement.py +58 -0
- siliconcompiler/tools/openroad/global_route.py +63 -0
- siliconcompiler/tools/openroad/init_floorplan.py +103 -0
- siliconcompiler/tools/openroad/macro_placement.py +65 -0
- siliconcompiler/tools/openroad/metrics.py +23 -8
- siliconcompiler/tools/openroad/pin_placement.py +56 -0
- siliconcompiler/tools/openroad/power_grid.py +65 -0
- siliconcompiler/tools/openroad/rcx_bench.py +7 -4
- siliconcompiler/tools/openroad/rcx_extract.py +2 -1
- siliconcompiler/tools/openroad/rdlroute.py +4 -4
- siliconcompiler/tools/openroad/repair_design.py +59 -0
- siliconcompiler/tools/openroad/repair_timing.py +63 -0
- siliconcompiler/tools/openroad/screenshot.py +9 -20
- siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +44 -0
- siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +95 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +51 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +62 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +41 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +71 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +55 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +27 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +36 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +26 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +61 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +333 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +123 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +22 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +41 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +60 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +68 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +83 -0
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +125 -0
- siliconcompiler/tools/openroad/scripts/common/debugging.tcl +28 -0
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +675 -0
- siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +59 -0
- siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +20 -0
- siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +16 -0
- siliconcompiler/tools/openroad/scripts/common/reports.tcl +180 -0
- siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +18 -0
- siliconcompiler/tools/openroad/scripts/common/write_images.tcl +395 -0
- siliconcompiler/tools/openroad/scripts/{sc_rcx_bench.tcl → rcx/sc_rcx_bench.tcl} +5 -5
- siliconcompiler/tools/openroad/scripts/{sc_rcx_extract.tcl → rcx/sc_rcx_extract.tcl} +0 -0
- siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +5 -16
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +51 -51
- siliconcompiler/tools/openroad/scripts/sc_show.tcl +105 -0
- siliconcompiler/tools/openroad/show.py +28 -23
- siliconcompiler/tools/openroad/{export.py → write_data.py} +31 -26
- siliconcompiler/tools/opensta/__init__.py +1 -1
- siliconcompiler/tools/vivado/bitstream.py +8 -2
- siliconcompiler/tools/vivado/place.py +6 -2
- siliconcompiler/tools/vivado/route.py +6 -2
- siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +1 -1
- siliconcompiler/tools/vivado/scripts/sc_place.tcl +1 -1
- siliconcompiler/tools/vivado/scripts/sc_route.tcl +1 -1
- siliconcompiler/tools/vivado/scripts/sc_run.tcl +4 -2
- siliconcompiler/tools/vivado/syn_fpga.py +5 -1
- siliconcompiler/tools/vivado/vivado.py +26 -10
- siliconcompiler/tools/vpr/vpr.py +5 -0
- siliconcompiler/tools/yosys/syn_asic.py +7 -0
- siliconcompiler/tools/yosys/syn_asic.tcl +27 -6
- siliconcompiler/tools/yosys/syn_fpga.tcl +26 -18
- siliconcompiler/toolscripts/_tools.json +5 -5
- {siliconcompiler-0.28.8.dist-info → siliconcompiler-0.29.0.dist-info}/METADATA +50 -48
- {siliconcompiler-0.28.8.dist-info → siliconcompiler-0.29.0.dist-info}/RECORD +103 -76
- {siliconcompiler-0.28.8.dist-info → siliconcompiler-0.29.0.dist-info}/WHEEL +1 -1
- siliconcompiler/tools/openroad/cts.py +0 -45
- siliconcompiler/tools/openroad/floorplan.py +0 -75
- siliconcompiler/tools/openroad/physyn.py +0 -27
- siliconcompiler/tools/openroad/place.py +0 -41
- siliconcompiler/tools/openroad/route.py +0 -45
- siliconcompiler/tools/openroad/scripts/__init__.py +0 -0
- siliconcompiler/tools/openroad/scripts/sc_apr.tcl +0 -514
- siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -68
- siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +0 -22
- siliconcompiler/tools/openroad/scripts/sc_export.tcl +0 -100
- siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +0 -456
- siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +0 -1
- siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -6
- siliconcompiler/tools/openroad/scripts/sc_place.tcl +0 -84
- siliconcompiler/tools/openroad/scripts/sc_procs.tcl +0 -494
- siliconcompiler/tools/openroad/scripts/sc_report.tcl +0 -189
- siliconcompiler/tools/openroad/scripts/sc_route.tcl +0 -143
- siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -18
- siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +0 -393
- /siliconcompiler/tools/openroad/scripts/{sc_write.tcl → common/write_data.tcl} +0 -0
- {siliconcompiler-0.28.8.dist-info → siliconcompiler-0.29.0.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.28.8.dist-info → siliconcompiler-0.29.0.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.28.8.dist-info → siliconcompiler-0.29.0.dist-info}/top_level.txt +0 -0
|
@@ -67,36 +67,52 @@ def normalize_version(version):
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
def _parse_qor_summary(chip, step, index):
|
|
70
|
-
if not os.path.isfile('qor_summary.json'):
|
|
70
|
+
if not os.path.isfile('reports/qor_summary.json'):
|
|
71
71
|
return
|
|
72
72
|
|
|
73
|
-
with sc_open('qor_summary.json') as f:
|
|
73
|
+
with sc_open('reports/qor_summary.json') as f:
|
|
74
74
|
data = json.load(f)
|
|
75
75
|
|
|
76
76
|
# Data is organized as list of tasks that Vivado has completed, with
|
|
77
77
|
# metrics associated with each. The tasks appear to be in chronological
|
|
78
78
|
# order, so we pull metrics from the last one.
|
|
79
79
|
task = data['Design QoR Summary'][-1]
|
|
80
|
-
setup_wns =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
setup_wns = None
|
|
81
|
+
for metric in ('Wns(ns)', 'WNS(ns)'):
|
|
82
|
+
if metric in task:
|
|
83
|
+
setup_wns = task[metric]
|
|
84
|
+
break
|
|
85
|
+
setup_tns = None
|
|
86
|
+
for metric in ('Tns(ns)', 'TNS(ns)'):
|
|
87
|
+
if metric in task:
|
|
88
|
+
setup_tns = task[metric]
|
|
89
|
+
break
|
|
90
|
+
hold_wns = None
|
|
91
|
+
for metric in ('Whs(ns)', 'WHS(ns)'):
|
|
92
|
+
if metric in task:
|
|
93
|
+
hold_wns = task[metric]
|
|
94
|
+
break
|
|
95
|
+
hold_tns = None
|
|
96
|
+
for metric in ('Ths(ns)', 'THS(ns)'):
|
|
97
|
+
if metric in task:
|
|
98
|
+
hold_tns = task[metric]
|
|
99
|
+
break
|
|
84
100
|
|
|
85
101
|
if setup_wns:
|
|
86
102
|
record_metric(chip, step, index, 'setupwns', setup_wns,
|
|
87
|
-
'qor_summary.json',
|
|
103
|
+
'reports/qor_summary.json',
|
|
88
104
|
source_unit='ns')
|
|
89
105
|
if setup_tns:
|
|
90
106
|
record_metric(chip, step, index, 'setuptns', setup_tns,
|
|
91
|
-
'qor_summary.json',
|
|
107
|
+
'reports/qor_summary.json',
|
|
92
108
|
source_unit='ns')
|
|
93
109
|
if hold_wns:
|
|
94
110
|
record_metric(chip, step, index, 'holdwns', hold_wns,
|
|
95
|
-
'qor_summary.json',
|
|
111
|
+
'reports/qor_summary.json',
|
|
96
112
|
source_unit='ns')
|
|
97
113
|
if hold_tns:
|
|
98
114
|
record_metric(chip, step, index, 'holdtns', hold_tns,
|
|
99
|
-
'qor_summary.json',
|
|
115
|
+
'reports/qor_summary.json',
|
|
100
116
|
source_unit='ns')
|
|
101
117
|
|
|
102
118
|
|
siliconcompiler/tools/vpr/vpr.py
CHANGED
|
@@ -94,6 +94,11 @@ def runtime_options(chip):
|
|
|
94
94
|
|
|
95
95
|
options.append(f"--device {device_code[0]}")
|
|
96
96
|
|
|
97
|
+
# Medium-term solution: VPR performs hash digest checks that
|
|
98
|
+
# fail if file paths are changed between steps. We wish to
|
|
99
|
+
# disable the digest checks to work around this
|
|
100
|
+
options.append("--verify_file_digests off")
|
|
101
|
+
|
|
97
102
|
options.append(f"--write_block_usage {__block_file}")
|
|
98
103
|
options.append("--outfile_prefix outputs/")
|
|
99
104
|
|
|
@@ -108,6 +108,13 @@ def setup_asic(chip):
|
|
|
108
108
|
chip.add('tool', tool, 'task', task, 'require',
|
|
109
109
|
",".join(['library', mainlib, 'option', 'file', 'yosys_addermap']),
|
|
110
110
|
step=step, index=index)
|
|
111
|
+
library_has_tbufmap = \
|
|
112
|
+
chip.valid('library', mainlib, 'option', 'file', 'yosys_tbufmap') and \
|
|
113
|
+
chip.get('library', mainlib, 'option', 'file', 'yosys_tbufmap')
|
|
114
|
+
if library_has_tbufmap:
|
|
115
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
116
|
+
",".join(['library', mainlib, 'option', 'file', 'yosys_tbufmap']),
|
|
117
|
+
step=step, index=index)
|
|
111
118
|
|
|
112
119
|
for var0, var1 in [('memory_libmap', 'memory_techmap')]:
|
|
113
120
|
key0 = ['tool', tool, 'tak', task, 'file', var0]
|
|
@@ -120,7 +120,7 @@ if { [sc_cfg_tool_task_exists file memory_techmap] } {
|
|
|
120
120
|
# Schema helper functions
|
|
121
121
|
#########################
|
|
122
122
|
|
|
123
|
-
proc
|
|
123
|
+
proc sc_has_tie_cell { type } {
|
|
124
124
|
upvar sc_cfg sc_cfg
|
|
125
125
|
upvar sc_mainlib sc_mainlib
|
|
126
126
|
upvar sc_tool sc_tool
|
|
@@ -131,7 +131,7 @@ proc has_tie_cell { type } {
|
|
|
131
131
|
}]
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
proc
|
|
134
|
+
proc sc_get_tie_cell { type } {
|
|
135
135
|
upvar sc_cfg sc_cfg
|
|
136
136
|
upvar sc_mainlib sc_mainlib
|
|
137
137
|
upvar sc_tool sc_tool
|
|
@@ -209,6 +209,18 @@ yosys hierarchy -top $sc_design
|
|
|
209
209
|
# Mark modules to keep from getting removed in flattening
|
|
210
210
|
preserve_modules
|
|
211
211
|
|
|
212
|
+
# Handle tristate buffers
|
|
213
|
+
set sc_tbuf "false"
|
|
214
|
+
if {
|
|
215
|
+
[sc_cfg_exists library $sc_mainlib option file yosys_tbufmap] &&
|
|
216
|
+
[llength [sc_cfg_get library $sc_mainlib option file yosys_tbufmap]] != 0
|
|
217
|
+
} {
|
|
218
|
+
set sc_tbuf "true"
|
|
219
|
+
|
|
220
|
+
yosys tribuf
|
|
221
|
+
yosys stat
|
|
222
|
+
}
|
|
223
|
+
|
|
212
224
|
set flatten_design [expr {
|
|
213
225
|
[lindex [sc_cfg_tool_task_get var flatten] 0]
|
|
214
226
|
== "true"
|
|
@@ -260,6 +272,15 @@ yosys opt -purge
|
|
|
260
272
|
# Technology Mapping
|
|
261
273
|
########################################################
|
|
262
274
|
|
|
275
|
+
# Handle tristate buffers
|
|
276
|
+
if { $sc_tbuf == "true" } {
|
|
277
|
+
set sc_tbuf_techmap \
|
|
278
|
+
[lindex [sc_cfg_get library $sc_mainlib option file yosys_tbufmap] 0]
|
|
279
|
+
# Map tristate buffers
|
|
280
|
+
yosys techmap -map $sc_tbuf_techmap
|
|
281
|
+
post_techmap -fast
|
|
282
|
+
}
|
|
283
|
+
|
|
263
284
|
if { [sc_cfg_tool_task_get var map_adders] == "true" } {
|
|
264
285
|
set sc_adder_techmap \
|
|
265
286
|
[lindex [sc_cfg_get library $sc_mainlib option {file} yosys_addermap] 0]
|
|
@@ -356,11 +377,11 @@ yosys splitnets
|
|
|
356
377
|
yosys clean -purge
|
|
357
378
|
|
|
358
379
|
set yosys_hilomap_args []
|
|
359
|
-
if { [
|
|
360
|
-
lappend yosys_hilomap_args -locell {*}[
|
|
380
|
+
if { [sc_has_tie_cell low] } {
|
|
381
|
+
lappend yosys_hilomap_args -locell {*}[sc_get_tie_cell low]
|
|
361
382
|
}
|
|
362
|
-
if { [
|
|
363
|
-
lappend yosys_hilomap_args -hicell {*}[
|
|
383
|
+
if { [sc_has_tie_cell high] } {
|
|
384
|
+
lappend yosys_hilomap_args -hicell {*}[sc_get_tie_cell high]
|
|
364
385
|
}
|
|
365
386
|
if { [llength $yosys_hilomap_args] != 0 } {
|
|
366
387
|
yosys hilomap -singleton {*}$yosys_hilomap_args
|
|
@@ -125,6 +125,30 @@ if { [string match {ice*} $sc_partname] } {
|
|
|
125
125
|
yosys proc
|
|
126
126
|
yosys flatten
|
|
127
127
|
|
|
128
|
+
# Note there are two possibilities for how macro mapping might be done:
|
|
129
|
+
# using the extract command (to pattern match user RTL against
|
|
130
|
+
# the techmap) or using the techmap command. The latter is better
|
|
131
|
+
# for mapping simple multipliers; the former is better (for now)
|
|
132
|
+
# for mapping more complex DSP blocks (MAC, pipelined blocks, etc).
|
|
133
|
+
# and is also more easily extensible to arbitrary hard macros.
|
|
134
|
+
# Run separate passes of both to get best of both worlds
|
|
135
|
+
|
|
136
|
+
# An extract pass needs to happen prior to other optimizations,
|
|
137
|
+
# otherwise yosys can transform its internal model into something
|
|
138
|
+
# that doesn't match the patterns defined in the extract library
|
|
139
|
+
if { [sc_cfg_exists fpga $sc_partname file yosys_extractlib] } {
|
|
140
|
+
set sc_syn_extractlibs \
|
|
141
|
+
[sc_cfg_get fpga $sc_partname file yosys_extractlib]
|
|
142
|
+
|
|
143
|
+
foreach extractlib $sc_syn_extractlibs {
|
|
144
|
+
yosys log "Run extract with $extractlib"
|
|
145
|
+
yosys extract -map $extractlib
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
# Other hard macro passes can happen after the generic optimization
|
|
150
|
+
# passes take place.
|
|
151
|
+
|
|
128
152
|
#Generic optimization passes; this is a fusion of the VTR reference
|
|
129
153
|
#flow and the Yosys synth_ice40 flow
|
|
130
154
|
yosys opt_expr
|
|
@@ -141,28 +165,12 @@ if { [string match {ice*} $sc_partname] } {
|
|
|
141
165
|
yosys opt_expr
|
|
142
166
|
yosys opt_clean
|
|
143
167
|
|
|
168
|
+
# Here is a remaining customization pass for DSP tech mapping
|
|
169
|
+
|
|
144
170
|
#Map DSP blocks before doing anything else,
|
|
145
171
|
#so that we don't convert any math blocks
|
|
146
172
|
#into other primitives
|
|
147
173
|
|
|
148
|
-
# Note there are two possibilities for how mapping might be done:
|
|
149
|
-
# using the extract command (to pattern match user RTL against
|
|
150
|
-
# the techmap) or using the techmap command. The latter is better
|
|
151
|
-
# for mapping simple multipliers; the former is better (for now)
|
|
152
|
-
# for mapping more complex DSP blocks (MAC, pipelined blocks, etc).
|
|
153
|
-
# and also more extensible to arbitrary hard macros. Run separate
|
|
154
|
-
# passes of both to get best of both worlds
|
|
155
|
-
|
|
156
|
-
if { [sc_cfg_exists fpga $sc_partname file yosys_extractlib] } {
|
|
157
|
-
set sc_syn_extractlibs \
|
|
158
|
-
[sc_cfg_get fpga $sc_partname file yosys_extractlib]
|
|
159
|
-
|
|
160
|
-
foreach extractlib $sc_syn_extractlibs {
|
|
161
|
-
yosys log "Run extract with $extractlib"
|
|
162
|
-
yosys extract -map $extractlib
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
174
|
if { [sc_cfg_exists fpga $sc_partname file yosys_dsp_techmap] } {
|
|
167
175
|
set sc_syn_dsp_library \
|
|
168
176
|
[sc_cfg_get fpga $sc_partname file yosys_dsp_techmap]
|
|
@@ -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": "8495fc80c78f4ab98bebd8cf2050fa63bc0b93c1",
|
|
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.10",
|
|
40
40
|
"git-url": "https://github.com/KLayout/klayout.git",
|
|
41
41
|
"docker-skip": true,
|
|
42
42
|
"auto-update": true,
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"sv2v": {
|
|
47
47
|
"git-url": "https://github.com/zachjs/sv2v.git",
|
|
48
|
-
"git-commit": "
|
|
48
|
+
"git-commit": "5a636724d783edd403ac4618d6cc4def72e39cbc",
|
|
49
49
|
"auto-update": true
|
|
50
50
|
},
|
|
51
51
|
"verilator": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"vpr": {
|
|
68
68
|
"git-url": "https://github.com/verilog-to-routing/vtr-verilog-to-routing.git",
|
|
69
|
-
"git-commit": "
|
|
69
|
+
"git-commit": "de31f094aa4f894a5e6e0dc32c66365f4b341190",
|
|
70
70
|
"auto-update": false
|
|
71
71
|
},
|
|
72
72
|
"icepack": {
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
},
|
|
92
92
|
"yosys": {
|
|
93
93
|
"git-url": "https://github.com/YosysHQ/yosys.git",
|
|
94
|
-
"git-commit": "
|
|
94
|
+
"git-commit": "v0.48",
|
|
95
95
|
"version-prefix": "",
|
|
96
96
|
"auto-update": true
|
|
97
97
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.29.0
|
|
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
|
|
@@ -25,55 +25,57 @@ Classifier: Topic :: Software Development :: Build Tools
|
|
|
25
25
|
Requires-Python: >=3.8
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
Requires-Dist:
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist:
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
Requires-Dist:
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist:
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
Requires-Dist:
|
|
52
|
-
Requires-Dist:
|
|
53
|
-
Requires-Dist:
|
|
54
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
|
|
29
|
+
Requires-Dist: aiohttp==3.11.10; python_version >= "3.9"
|
|
30
|
+
Requires-Dist: requests==2.32.3
|
|
31
|
+
Requires-Dist: PyYAML==6.0.2
|
|
32
|
+
Requires-Dist: pandas>=1.1.5
|
|
33
|
+
Requires-Dist: Jinja2>=2.11.3
|
|
34
|
+
Requires-Dist: graphviz==0.20.3
|
|
35
|
+
Requires-Dist: distro==1.9.0
|
|
36
|
+
Requires-Dist: packaging<25,>=21.3
|
|
37
|
+
Requires-Dist: psutil>=5.8.0
|
|
38
|
+
Requires-Dist: Pillow==10.4.0; python_version <= "3.8"
|
|
39
|
+
Requires-Dist: Pillow==11.0.0; python_version >= "3.9"
|
|
40
|
+
Requires-Dist: GitPython==3.1.43
|
|
41
|
+
Requires-Dist: lambdapdk>=0.1.40
|
|
42
|
+
Requires-Dist: PyGithub==2.5.0
|
|
43
|
+
Requires-Dist: urllib3>=1.26.0
|
|
44
|
+
Requires-Dist: fasteners==0.19
|
|
45
|
+
Requires-Dist: fastjsonschema==2.21.1
|
|
46
|
+
Requires-Dist: docker==7.1.0
|
|
47
|
+
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
48
|
+
Requires-Dist: sc-surelog==1.84.1
|
|
49
|
+
Requires-Dist: orjson==3.10.12
|
|
50
|
+
Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
|
|
51
|
+
Requires-Dist: streamlit==1.40.2; python_version >= "3.9" and python_full_version != "3.9.7"
|
|
52
|
+
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|
|
53
|
+
Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
|
|
54
|
+
Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
|
|
55
|
+
Requires-Dist: streamlit-autorefresh==1.0.1; python_full_version != "3.9.7"
|
|
56
|
+
Provides-Extra: test
|
|
57
|
+
Requires-Dist: pytest==8.3.4; extra == "test"
|
|
58
|
+
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
|
|
59
|
+
Requires-Dist: pytest-timeout==2.3.1; extra == "test"
|
|
60
|
+
Requires-Dist: pytest-asyncio==0.24.0; extra == "test"
|
|
61
|
+
Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
|
|
62
|
+
Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
|
|
63
|
+
Requires-Dist: responses==0.25.3; extra == "test"
|
|
64
|
+
Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
65
|
+
Provides-Extra: lint
|
|
66
|
+
Requires-Dist: flake8==7.1.1; extra == "lint"
|
|
67
|
+
Requires-Dist: tclint==0.5.0; extra == "lint"
|
|
68
|
+
Requires-Dist: codespell==2.3.0; extra == "lint"
|
|
55
69
|
Provides-Extra: docs
|
|
56
|
-
Requires-Dist: Sphinx
|
|
57
|
-
Requires-Dist: pip-licenses
|
|
58
|
-
Requires-Dist: pydata-sphinx-theme
|
|
59
|
-
Requires-Dist: sc-leflib
|
|
60
|
-
Provides-Extra: examples
|
|
61
|
-
Requires-Dist: migen ==0.9.2 ; extra == 'examples'
|
|
62
|
-
Requires-Dist: lambdalib ==0.3.1 ; extra == 'examples'
|
|
70
|
+
Requires-Dist: Sphinx==8.1.3; extra == "docs"
|
|
71
|
+
Requires-Dist: pip-licenses==5.0.0; extra == "docs"
|
|
72
|
+
Requires-Dist: pydata-sphinx-theme==0.16.0; extra == "docs"
|
|
73
|
+
Requires-Dist: sc-leflib>=0.2.0; extra == "docs"
|
|
63
74
|
Provides-Extra: profile
|
|
64
|
-
Requires-Dist: gprof2dot
|
|
65
|
-
Provides-Extra:
|
|
66
|
-
Requires-Dist:
|
|
67
|
-
Requires-Dist:
|
|
68
|
-
Requires-Dist: pytest-timeout ==2.3.1 ; extra == 'test'
|
|
69
|
-
Requires-Dist: pytest-asyncio ==0.24.0 ; extra == 'test'
|
|
70
|
-
Requires-Dist: responses ==0.25.3 ; extra == 'test'
|
|
71
|
-
Requires-Dist: PyVirtualDisplay ==3.0 ; extra == 'test'
|
|
72
|
-
Requires-Dist: flake8 ==7.1.1 ; extra == 'test'
|
|
73
|
-
Requires-Dist: tclint ==0.4.2 ; extra == 'test'
|
|
74
|
-
Requires-Dist: codespell ==2.3.0 ; extra == 'test'
|
|
75
|
-
Requires-Dist: pytest-cov ==5.0.0 ; (python_version <= "3.8") and extra == 'test'
|
|
76
|
-
Requires-Dist: pytest-cov ==6.0.0 ; (python_version >= "3.9") and extra == 'test'
|
|
75
|
+
Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
|
|
76
|
+
Provides-Extra: examples
|
|
77
|
+
Requires-Dist: migen==0.9.2; extra == "examples"
|
|
78
|
+
Requires-Dist: lambdalib==0.3.2; extra == "examples"
|
|
77
79
|
|
|
78
80
|

|
|
79
81
|
|