siliconcompiler 0.27.1__py3-none-any.whl → 0.28.1__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/core.py +4 -1
- siliconcompiler/data/RobotoMono/__init__.py +0 -0
- siliconcompiler/data/__init__.py +0 -0
- siliconcompiler/flows/dvflow.py +51 -14
- siliconcompiler/flows/generate_openroad_rcx.py +1 -1
- siliconcompiler/libs/sg13g2_stdcell.py +8 -0
- siliconcompiler/pdks/ihp130.py +8 -0
- siliconcompiler/remote/server_schema/__init__.py +0 -0
- siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- siliconcompiler/scheduler/__init__.py +6 -4
- siliconcompiler/scheduler/validation/__init__.py +0 -0
- siliconcompiler/schema/schema_cfg.py +351 -281
- siliconcompiler/schema/schema_obj.py +5 -3
- siliconcompiler/sphinx_ext/dynamicgen.py +35 -15
- siliconcompiler/sphinx_ext/schemagen.py +4 -1
- siliconcompiler/targets/ihp130_demo.py +68 -0
- siliconcompiler/templates/__init__.py +0 -0
- siliconcompiler/templates/email/__init__.py +0 -0
- siliconcompiler/templates/issue/__init__.py +0 -0
- siliconcompiler/templates/report/__init__.py +0 -0
- siliconcompiler/templates/slurm/__init__.py +0 -0
- siliconcompiler/templates/tcl/__init__.py +0 -0
- siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +1 -2
- siliconcompiler/tools/bambu/__init__.py +0 -0
- siliconcompiler/tools/bluespec/__init__.py +0 -0
- siliconcompiler/tools/builtin/__init__.py +0 -0
- siliconcompiler/tools/builtin/concatenate.py +16 -0
- siliconcompiler/tools/chisel/__init__.py +0 -0
- siliconcompiler/tools/execute/__init__.py +0 -0
- siliconcompiler/tools/genfasm/__init__.py +0 -0
- siliconcompiler/tools/ghdl/__init__.py +0 -0
- siliconcompiler/tools/icarus/__init__.py +0 -0
- siliconcompiler/tools/icepack/__init__.py +0 -0
- siliconcompiler/tools/klayout/__init__.py +0 -0
- siliconcompiler/tools/klayout/klayout.py +1 -0
- siliconcompiler/tools/magic/__init__.py +0 -0
- siliconcompiler/tools/magic/sc_drc.tcl +5 -5
- siliconcompiler/tools/magic/sc_extspice.tcl +3 -3
- siliconcompiler/tools/magic/sc_magic.tcl +2 -2
- siliconcompiler/tools/montage/__init__.py +0 -0
- siliconcompiler/tools/netgen/__init__.py +0 -0
- siliconcompiler/tools/netgen/sc_lvs.tcl +3 -3
- siliconcompiler/tools/nextpnr/__init__.py +0 -0
- siliconcompiler/tools/openroad/scripts/__init__.py +0 -0
- siliconcompiler/tools/openroad/scripts/sc_apr.tcl +36 -34
- siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -1
- siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +4 -2
- siliconcompiler/tools/openroad/scripts/sc_export.tcl +4 -2
- siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +27 -35
- siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +4 -2
- siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -1
- siliconcompiler/tools/openroad/scripts/sc_procs.tcl +38 -6
- siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +9 -9
- siliconcompiler/tools/openroad/scripts/sc_route.tcl +8 -4
- siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +5 -3
- siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +27 -25
- siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -1
- siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- siliconcompiler/tools/sv2v/__init__.py +0 -0
- siliconcompiler/tools/template/__init__.py +0 -0
- siliconcompiler/tools/verilator/__init__.py +0 -0
- siliconcompiler/tools/verilator/compile.py +1 -4
- siliconcompiler/tools/verilator/verilator.py +1 -2
- siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- siliconcompiler/tools/vivado/scripts/sc_run.tcl +7 -8
- siliconcompiler/tools/vivado/vivado.py +1 -1
- siliconcompiler/tools/vpr/__init__.py +0 -0
- siliconcompiler/tools/vpr/place.py +20 -6
- siliconcompiler/tools/vpr/vpr.py +1 -1
- siliconcompiler/tools/xdm/__init__.py +28 -0
- siliconcompiler/tools/xdm/convert.py +71 -0
- siliconcompiler/tools/xyce/{xyce.py → __init__.py} +13 -9
- siliconcompiler/tools/xyce/simulate.py +70 -0
- siliconcompiler/tools/yosys/__init__.py +0 -0
- siliconcompiler/tools/yosys/sc_lec.tcl +7 -7
- siliconcompiler/tools/yosys/sc_syn.tcl +9 -9
- siliconcompiler/tools/yosys/syn_asic.tcl +21 -13
- siliconcompiler/tools/yosys/syn_fpga.tcl +20 -17
- siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- siliconcompiler/use.py +2 -1
- {siliconcompiler-0.27.1.dist-info → siliconcompiler-0.28.1.dist-info}/METADATA +9 -8
- {siliconcompiler-0.27.1.dist-info → siliconcompiler-0.28.1.dist-info}/RECORD +93 -48
- {siliconcompiler-0.27.1.dist-info → siliconcompiler-0.28.1.dist-info}/WHEEL +1 -1
- siliconcompiler/tools/openfpgaloader/openfpgaloader.py +0 -39
- {siliconcompiler-0.27.1.dist-info → siliconcompiler-0.28.1.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.27.1.dist-info → siliconcompiler-0.28.1.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.27.1.dist-info → siliconcompiler-0.28.1.dist-info}/top_level.txt +0 -0
|
@@ -13,8 +13,6 @@ Installation: https://xyce.sandia.gov/documentation-tutorials/building-guide/
|
|
|
13
13
|
|
|
14
14
|
Status: SC integration WIP
|
|
15
15
|
'''
|
|
16
|
-
|
|
17
|
-
import os
|
|
18
16
|
from siliconcompiler.tools._common import get_tool_task
|
|
19
17
|
|
|
20
18
|
|
|
@@ -23,14 +21,20 @@ from siliconcompiler.tools._common import get_tool_task
|
|
|
23
21
|
################################
|
|
24
22
|
def setup(chip):
|
|
25
23
|
|
|
26
|
-
tool = 'xyce'
|
|
27
24
|
step = chip.get('arg', 'step')
|
|
28
25
|
index = chip.get('arg', 'index')
|
|
29
|
-
|
|
26
|
+
tool, task = get_tool_task(chip, step, index)
|
|
27
|
+
|
|
28
|
+
chip.set('tool', tool, 'exe', 'Xyce')
|
|
29
|
+
chip.set('tool', tool, 'vswitch', '-v')
|
|
30
|
+
chip.set('tool', tool, 'version', '>=v7.8')
|
|
31
|
+
|
|
32
|
+
chip.set('tool', tool, 'task', task, 'regex', 'warnings', 'warning',
|
|
33
|
+
step=step, index=index, clobber=False)
|
|
34
|
+
chip.set('tool', tool, 'task', task, 'regex', 'errors', 'error',
|
|
35
|
+
step=step, index=index, clobber=False)
|
|
30
36
|
|
|
31
|
-
clobber = False
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
step=step, index=index, clobber=clobber)
|
|
38
|
+
def parse_version(stdout):
|
|
39
|
+
ver = stdout.split()[-1]
|
|
40
|
+
return ver.split('-')[0]
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from siliconcompiler.tools._common import input_provides, get_tool_task
|
|
2
|
+
from siliconcompiler.tools.xyce import setup as tool_setup
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def setup(chip):
|
|
7
|
+
tool_setup(chip)
|
|
8
|
+
|
|
9
|
+
step = chip.get('arg', 'step')
|
|
10
|
+
index = chip.get('arg', 'index')
|
|
11
|
+
tool, task = get_tool_task(chip, step, index)
|
|
12
|
+
|
|
13
|
+
design = chip.top()
|
|
14
|
+
|
|
15
|
+
if f'{design}.xyce' in input_provides(chip, step, index):
|
|
16
|
+
chip.add('tool', tool, 'task', task, 'input', f'{design}.xyce',
|
|
17
|
+
step=step, index=index)
|
|
18
|
+
elif f'{design}.cir' in input_provides(chip, step, index):
|
|
19
|
+
chip.add('tool', tool, 'task', task, 'input', f'{design}.cir',
|
|
20
|
+
step=step, index=index)
|
|
21
|
+
else:
|
|
22
|
+
chip.add('tool', tool, 'task', task, 'require', 'input,netlist,spice',
|
|
23
|
+
step=step, index=index)
|
|
24
|
+
|
|
25
|
+
chip.set('tool', tool, 'task', task, 'var', 'trace', 'false',
|
|
26
|
+
step=step, index=index, clobber=False)
|
|
27
|
+
chip.set('tool', tool, 'task', task, 'var', 'trace', 'true/false, enable dumping all signals',
|
|
28
|
+
field='help')
|
|
29
|
+
|
|
30
|
+
allowed_traced = ['ASCII', 'binary']
|
|
31
|
+
chip.set('tool', tool, 'task', task, 'var', 'trace_format', 'ASCII',
|
|
32
|
+
step=step, index=index, clobber=False)
|
|
33
|
+
chip.set('tool', tool, 'task', task, 'var', 'trace_format', 'Format to use for traces. '
|
|
34
|
+
f'Allowed values are {allowed_traced}',
|
|
35
|
+
field='help')
|
|
36
|
+
|
|
37
|
+
if chip.get('tool', tool, 'task', task, 'var', 'trace_format', step=step, index=index)[0] \
|
|
38
|
+
not in allowed_traced:
|
|
39
|
+
raise ValueError(f"{chip.get('tool', tool, 'task', task, 'var', 'trace_format')[0]} "
|
|
40
|
+
"is not an accepted value")
|
|
41
|
+
|
|
42
|
+
if chip.get('tool', tool, 'task', task, 'var', 'trace_format', step=step, index=index) == \
|
|
43
|
+
['ASCII']:
|
|
44
|
+
chip.add('tool', tool, 'task', task, 'option', '-a',
|
|
45
|
+
step=step, index=index)
|
|
46
|
+
|
|
47
|
+
if chip.get('tool', tool, 'task', task, 'var', 'trace',
|
|
48
|
+
step=step, index=index) == ['true']:
|
|
49
|
+
chip.add('tool', tool, 'task', task, 'output', f'{design}.raw',
|
|
50
|
+
step=step, index=index)
|
|
51
|
+
chip.add('tool', tool, 'task', task, 'option', f'-r outputs/{design}.raw',
|
|
52
|
+
step=step, index=index)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def runtime_options(chip):
|
|
56
|
+
design = chip.top()
|
|
57
|
+
step = chip.get('arg', 'step')
|
|
58
|
+
index = chip.get('arg', 'index')
|
|
59
|
+
|
|
60
|
+
if f'{design}.xyce' in input_provides(chip, step, index):
|
|
61
|
+
if os.path.isfile(f'inputs/{design}.xyce'):
|
|
62
|
+
return [f'inputs/{design}.xyce']
|
|
63
|
+
elif os.path.isfile(f'inputs/{design}.xyce/{design}.cir'):
|
|
64
|
+
return [f'inputs/{design}.xyce/{design}.cir']
|
|
65
|
+
else:
|
|
66
|
+
return [f'inputs/{design}.xyce']
|
|
67
|
+
elif f'{design}.cir' in input_provides(chip, step, index):
|
|
68
|
+
return [f'inputs/{design}.cir']
|
|
69
|
+
|
|
70
|
+
return chip.find_files('input', 'netlist', 'spice', step=step, index=index)
|
|
File without changes
|
|
@@ -6,14 +6,14 @@ set sc_tool yosys
|
|
|
6
6
|
yosys echo on
|
|
7
7
|
|
|
8
8
|
#Handling remote/local script execution
|
|
9
|
-
set sc_step
|
|
10
|
-
set sc_index
|
|
11
|
-
set sc_flow
|
|
12
|
-
set sc_task
|
|
13
|
-
set sc_refdir [sc_cfg_tool_task_get refdir
|
|
9
|
+
set sc_step [sc_cfg_get arg step]
|
|
10
|
+
set sc_index [sc_cfg_get arg index]
|
|
11
|
+
set sc_flow [sc_cfg_get option flow]
|
|
12
|
+
set sc_task [sc_cfg_get flowgraph $sc_flow $sc_step $sc_index task]
|
|
13
|
+
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
14
14
|
|
|
15
|
-
set sc_design
|
|
16
|
-
set sc_targetlibs
|
|
15
|
+
set sc_design [sc_top]
|
|
16
|
+
set sc_targetlibs [sc_get_asic_libraries logic]
|
|
17
17
|
|
|
18
18
|
# TODO: properly handle complexity here
|
|
19
19
|
set lib [lindex $sc_targetlibs 0]
|
|
@@ -10,21 +10,21 @@ yosys echo on
|
|
|
10
10
|
# Schema Adapter
|
|
11
11
|
###############################
|
|
12
12
|
|
|
13
|
-
set sc_tool
|
|
14
|
-
set sc_step
|
|
15
|
-
set sc_index
|
|
16
|
-
set sc_flow
|
|
17
|
-
set sc_task
|
|
13
|
+
set sc_tool yosys
|
|
14
|
+
set sc_step [sc_cfg_get arg step]
|
|
15
|
+
set sc_index [sc_cfg_get arg index]
|
|
16
|
+
set sc_flow [sc_cfg_get option flow]
|
|
17
|
+
set sc_task [sc_cfg_get flowgraph $sc_flow $sc_step $sc_index task]
|
|
18
18
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
19
19
|
|
|
20
20
|
####################
|
|
21
21
|
# DESIGNER's CHOICE
|
|
22
22
|
####################
|
|
23
23
|
|
|
24
|
-
set sc_design
|
|
25
|
-
set sc_flow
|
|
26
|
-
set sc_optmode
|
|
27
|
-
set sc_pdk
|
|
24
|
+
set sc_design [sc_top]
|
|
25
|
+
set sc_flow [sc_cfg_get option flow]
|
|
26
|
+
set sc_optmode [sc_cfg_get option optmode]
|
|
27
|
+
set sc_pdk [sc_cfg_get option pdk]
|
|
28
28
|
|
|
29
29
|
########################################################
|
|
30
30
|
# Design Inputs
|
|
@@ -82,8 +82,8 @@ proc determine_keep_hierarchy { iter cell_limit } {
|
|
|
82
82
|
# DESIGNER's CHOICE
|
|
83
83
|
####################
|
|
84
84
|
|
|
85
|
-
set sc_logiclibs
|
|
86
|
-
set sc_macrolibs
|
|
85
|
+
set sc_logiclibs [sc_get_asic_libraries logic]
|
|
86
|
+
set sc_macrolibs [sc_get_asic_libraries macro]
|
|
87
87
|
|
|
88
88
|
set sc_libraries [sc_cfg_tool_task_get {file} synthesis_libraries]
|
|
89
89
|
if { [sc_cfg_tool_task_exists {file} synthesis_libraries_macros] } {
|
|
@@ -127,8 +127,10 @@ proc has_tie_cell { type } {
|
|
|
127
127
|
upvar sc_mainlib sc_mainlib
|
|
128
128
|
upvar sc_tool sc_tool
|
|
129
129
|
|
|
130
|
-
return [expr {
|
|
131
|
-
|
|
130
|
+
return [expr {
|
|
131
|
+
[sc_cfg_exists library $sc_mainlib option {var} yosys_tie${type}_cell] &&
|
|
132
|
+
[sc_cfg_exists library $sc_mainlib option {var} yosys_tie${type}_port]
|
|
133
|
+
}]
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
proc get_tie_cell { type } {
|
|
@@ -149,9 +151,11 @@ proc has_buffer_cell { } {
|
|
|
149
151
|
upvar sc_mainlib sc_mainlib
|
|
150
152
|
upvar sc_tool sc_tool
|
|
151
153
|
|
|
152
|
-
return [expr {
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
return [expr {
|
|
155
|
+
[sc_cfg_exists library $sc_mainlib option {var} yosys_buffer_cell] &&
|
|
156
|
+
[sc_cfg_exists library $sc_mainlib option {var} yosys_buffer_input] &&
|
|
157
|
+
[sc_cfg_exists library $sc_mainlib option {var} yosys_buffer_output]
|
|
158
|
+
}]
|
|
155
159
|
}
|
|
156
160
|
|
|
157
161
|
proc get_buffer_cell { } {
|
|
@@ -160,8 +164,8 @@ proc get_buffer_cell { } {
|
|
|
160
164
|
upvar sc_tool sc_tool
|
|
161
165
|
|
|
162
166
|
set cell [lindex [sc_cfg_get library $sc_mainlib option {var} yosys_buffer_cell] 0]
|
|
163
|
-
set in
|
|
164
|
-
set out
|
|
167
|
+
set in [lindex [sc_cfg_get library $sc_mainlib option {var} yosys_buffer_input] 0]
|
|
168
|
+
set out [lindex [sc_cfg_get library $sc_mainlib option {var} yosys_buffer_output] 0]
|
|
165
169
|
|
|
166
170
|
return "$cell $in $out"
|
|
167
171
|
}
|
|
@@ -207,8 +211,10 @@ yosys hierarchy -top $sc_design
|
|
|
207
211
|
# Mark modules to keep from getting removed in flattening
|
|
208
212
|
preserve_modules
|
|
209
213
|
|
|
210
|
-
set flatten_design [expr {
|
|
211
|
-
|
|
214
|
+
set flatten_design [expr {
|
|
215
|
+
[lindex [sc_cfg_tool_task_get var flatten] 0]
|
|
216
|
+
== "true"
|
|
217
|
+
}]
|
|
212
218
|
set synth_args []
|
|
213
219
|
if { $flatten_design } {
|
|
214
220
|
lappend synth_args "-flatten"
|
|
@@ -359,8 +365,10 @@ if { [llength $yosys_hilomap_args] != 0 } {
|
|
|
359
365
|
yosys hilomap -singleton {*}$yosys_hilomap_args
|
|
360
366
|
}
|
|
361
367
|
|
|
362
|
-
if {
|
|
363
|
-
|
|
368
|
+
if {
|
|
369
|
+
[has_buffer_cell] &&
|
|
370
|
+
[sc_cfg_tool_task_get var add_buffers] == "true"
|
|
371
|
+
} {
|
|
364
372
|
yosys insbuf -buf {*}[get_buffer_cell]
|
|
365
373
|
}
|
|
366
374
|
|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
|
|
2
1
|
source "$sc_refdir/syn_asic_fpga_shared.tcl"
|
|
3
2
|
|
|
4
3
|
proc legalize_flops { feature_set } {
|
|
5
|
-
|
|
6
4
|
set legalize_flop_types []
|
|
7
5
|
|
|
8
|
-
if {
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
if {
|
|
7
|
+
[lsearch -exact $feature_set enable] >= 0 &&
|
|
8
|
+
[lsearch -exact $feature_set async_set] >= 0 &&
|
|
9
|
+
[lsearch -exact $feature_set async_reset] >= 0
|
|
10
|
+
} {
|
|
11
11
|
lappend legalize_flop_types \$_DFF_P_
|
|
12
12
|
lappend legalize_flop_types \$_DFF_PN?_
|
|
13
13
|
lappend legalize_flop_types \$_DFFE_PP_
|
|
14
14
|
lappend legalize_flop_types \$_DFFE_PN?P_
|
|
15
15
|
lappend legalize_flop_types \$_DFFSR_PNN_
|
|
16
16
|
lappend legalize_flop_types \$_DFFSRE_PNNP_
|
|
17
|
-
} elseif {
|
|
18
|
-
|
|
17
|
+
} elseif {
|
|
18
|
+
[lsearch -exact $feature_set enable] >= 0 &&
|
|
19
|
+
[lsearch -exact $feature_set async_set] >= 0
|
|
20
|
+
} {
|
|
19
21
|
lappend legalize_flop_types \$_DFF_P_
|
|
20
22
|
lappend legalize_flop_types \$_DFF_PN1_
|
|
21
23
|
lappend legalize_flop_types \$_DFFE_PP_
|
|
22
24
|
lappend legalize_flop_types \$_DFFE_PN1P_
|
|
23
|
-
} elseif {
|
|
24
|
-
|
|
25
|
+
} elseif {
|
|
26
|
+
[lsearch -exact $feature_set enable] >= 0 &&
|
|
27
|
+
[lsearch -exact $feature_set async_reset] >= 0
|
|
28
|
+
} {
|
|
25
29
|
lappend legalize_flop_types \$_DFF_P_
|
|
26
30
|
lappend legalize_flop_types \$_DFF_PN0_
|
|
27
31
|
lappend legalize_flop_types \$_DFFE_PP_
|
|
@@ -31,8 +35,10 @@ proc legalize_flops { feature_set } {
|
|
|
31
35
|
lappend legalize_flop_types \$_DFF_P??_
|
|
32
36
|
lappend legalize_flop_types \$_DFFE_PP_
|
|
33
37
|
lappend legalize_flop_types \$_DFFE_P??P_
|
|
34
|
-
} elseif {
|
|
35
|
-
|
|
38
|
+
} elseif {
|
|
39
|
+
[lsearch -exact $feature_set async_set] >= 0 &&
|
|
40
|
+
[lsearch -exact $feature_set async_reset] >= 0
|
|
41
|
+
} {
|
|
36
42
|
lappend legalize_flop_types \$_DFF_P_
|
|
37
43
|
lappend legalize_flop_types \$_DFF_PN?_
|
|
38
44
|
lappend legalize_flop_types \$_DFFSR_PNN_
|
|
@@ -59,8 +65,7 @@ proc legalize_flops { feature_set } {
|
|
|
59
65
|
}
|
|
60
66
|
|
|
61
67
|
proc get_dsp_options { sc_syn_dsp_options } {
|
|
62
|
-
|
|
63
|
-
set option_text [ list ]
|
|
68
|
+
set option_text [list]
|
|
64
69
|
foreach dsp_option $sc_syn_dsp_options {
|
|
65
70
|
lappend option_text -D $dsp_option
|
|
66
71
|
}
|
|
@@ -80,7 +85,7 @@ if { [sc_cfg_exists fpga $sc_partname var feature_set] } {
|
|
|
80
85
|
set sc_syn_feature_set \
|
|
81
86
|
[sc_cfg_get fpga $sc_partname var feature_set]
|
|
82
87
|
} else {
|
|
83
|
-
set sc_syn_feature_set [
|
|
88
|
+
set sc_syn_feature_set [list]
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
if { [sc_cfg_exists fpga $sc_partname var yosys_dsp_options] } {
|
|
@@ -89,7 +94,7 @@ if { [sc_cfg_exists fpga $sc_partname var yosys_dsp_options] } {
|
|
|
89
94
|
[sc_cfg_get fpga $sc_partname var yosys_dsp_options]
|
|
90
95
|
yosys log "Yosys DSP techmap options = $sc_syn_dsp_options"
|
|
91
96
|
} else {
|
|
92
|
-
set sc_syn_dsp_options [
|
|
97
|
+
set sc_syn_dsp_options [list]
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
# TODO: add logic that remaps yosys built in name based on part number
|
|
@@ -101,13 +106,11 @@ yosys hierarchy -top $sc_design
|
|
|
101
106
|
if { [string match {ice*} $sc_partname] } {
|
|
102
107
|
yosys synth_ice40 -top $sc_design -json "${sc_design}.netlist.json"
|
|
103
108
|
} else {
|
|
104
|
-
|
|
105
109
|
# Pre-processing step: if DSPs instance are hard-coded into
|
|
106
110
|
# the user's design, we can use a blackbox flow for DSP mapping
|
|
107
111
|
# as follows:
|
|
108
112
|
|
|
109
113
|
if { [sc_cfg_exists fpga $sc_partname file yosys_macrolib] } {
|
|
110
|
-
|
|
111
114
|
set sc_syn_macrolibs \
|
|
112
115
|
[sc_cfg_get fpga $sc_partname file yosys_macrolib]
|
|
113
116
|
|
|
File without changes
|
|
File without changes
|
siliconcompiler/use.py
CHANGED
|
@@ -12,7 +12,8 @@ class PackageChip(Chip):
|
|
|
12
12
|
super().__init__(name)
|
|
13
13
|
|
|
14
14
|
if len(args) == 2:
|
|
15
|
-
self.logger.warning(
|
|
15
|
+
self.logger.warning(
|
|
16
|
+
f'passing Chip object to {name} ({type(self).__name__}) is deprecated')
|
|
16
17
|
|
|
17
18
|
path = None
|
|
18
19
|
ref = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.1
|
|
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
|
|
@@ -23,7 +23,7 @@ Requires-Dist: packaging <24,>=21.3
|
|
|
23
23
|
Requires-Dist: psutil >=5.8.0
|
|
24
24
|
Requires-Dist: Pillow ==10.4.0
|
|
25
25
|
Requires-Dist: GitPython ==3.1.43
|
|
26
|
-
Requires-Dist: lambdapdk >=0.1.
|
|
26
|
+
Requires-Dist: lambdapdk >=0.1.34
|
|
27
27
|
Requires-Dist: PyGithub ==2.4.0
|
|
28
28
|
Requires-Dist: urllib3 >=1.26.0
|
|
29
29
|
Requires-Dist: fasteners ==0.19
|
|
@@ -31,7 +31,7 @@ Requires-Dist: fastjsonschema ==2.20.0
|
|
|
31
31
|
Requires-Dist: docker ==7.1.0
|
|
32
32
|
Requires-Dist: sc-surelog ==1.84.1
|
|
33
33
|
Requires-Dist: orjson ==3.10.7
|
|
34
|
-
Requires-Dist: streamlit ==1.
|
|
34
|
+
Requires-Dist: streamlit ==1.38.0
|
|
35
35
|
Requires-Dist: streamlit-agraph ==0.0.45
|
|
36
36
|
Requires-Dist: streamlit-tree-select ==0.0.5
|
|
37
37
|
Requires-Dist: streamlit-javascript ==0.1.5
|
|
@@ -43,21 +43,22 @@ Requires-Dist: pydata-sphinx-theme ==0.15.4 ; extra == 'docs'
|
|
|
43
43
|
Requires-Dist: sc-leflib >=0.2.0 ; extra == 'docs'
|
|
44
44
|
Provides-Extra: examples
|
|
45
45
|
Requires-Dist: migen ==0.9.2 ; extra == 'examples'
|
|
46
|
-
Requires-Dist: lambdalib ==0.2.
|
|
46
|
+
Requires-Dist: lambdalib ==0.2.10 ; extra == 'examples'
|
|
47
47
|
Provides-Extra: profile
|
|
48
48
|
Requires-Dist: gprof2dot ==2024.6.6 ; extra == 'profile'
|
|
49
49
|
Provides-Extra: test
|
|
50
|
-
Requires-Dist: pytest ==8.3.
|
|
50
|
+
Requires-Dist: pytest ==8.3.3 ; extra == 'test'
|
|
51
51
|
Requires-Dist: pytest-xdist ==3.6.1 ; extra == 'test'
|
|
52
52
|
Requires-Dist: pytest-timeout ==2.3.1 ; extra == 'test'
|
|
53
53
|
Requires-Dist: pytest-asyncio ==0.24.0 ; extra == 'test'
|
|
54
54
|
Requires-Dist: pytest-cov ==5.0.0 ; extra == 'test'
|
|
55
|
+
Requires-Dist: responses ==0.25.3 ; extra == 'test'
|
|
55
56
|
Requires-Dist: PyVirtualDisplay ==3.0 ; extra == 'test'
|
|
56
57
|
Requires-Dist: flake8 ==7.1.1 ; extra == 'test'
|
|
57
|
-
Requires-Dist: tclint ==0.
|
|
58
|
+
Requires-Dist: tclint ==0.4.0 ; extra == 'test'
|
|
58
59
|
Requires-Dist: codespell ==2.3.0 ; extra == 'test'
|
|
59
60
|
|
|
60
|
-

|
|
61
62
|
|
|
62
63
|
[](https://github.com/siliconcompiler/siliconcompiler/actions/workflows/python_ci.yml)
|
|
63
64
|
[](https://github.com/siliconcompiler/siliconcompiler/actions/workflows/tools_ci.yml)
|
|
@@ -83,7 +84,7 @@ SiliconCompiler is a modular hardware build system ("make for silicon"). The pro
|
|
|
83
84
|
|**FPGA APR**| VPR, nextpnr, Vivado
|
|
84
85
|
|**Layout Viewer**| Klayout, OpenRoad, Cadence, Synopsys
|
|
85
86
|
|**DRC/LVS**| Magic, Synopsys, Siemens
|
|
86
|
-
|**PDKs**| sky130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16
|
|
87
|
+
|**PDKs**| sky130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16, ihp130
|
|
87
88
|
|
|
88
89
|
# Getting Started
|
|
89
90
|
|