opencos-eda 0.3.11__py3-none-any.whl → 0.3.13__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.
- opencos/commands/flist.py +222 -39
- opencos/commands/multi.py +5 -3
- opencos/commands/sim.py +121 -7
- opencos/commands/sweep.py +1 -1
- opencos/commands/upload.py +4 -4
- opencos/commands/waves.py +44 -0
- opencos/deps/deps_file.py +4 -1
- opencos/deps_schema.py +2 -2
- opencos/eda.py +284 -175
- opencos/eda_base.py +54 -22
- opencos/eda_config.py +51 -24
- opencos/eda_config_defaults.yml +326 -195
- opencos/eda_config_reduced.yml +19 -39
- opencos/eda_tool_helper.py +193 -24
- opencos/tools/cocotb.py +6 -29
- opencos/tools/invio.py +0 -6
- opencos/tools/iverilog.py +16 -16
- opencos/tools/modelsim_ase.py +1 -13
- opencos/tools/quartus.py +81 -24
- opencos/tools/questa.py +0 -14
- opencos/tools/questa_common.py +95 -30
- opencos/tools/questa_fe.py +0 -14
- opencos/tools/questa_fse.py +0 -14
- opencos/tools/riviera.py +56 -25
- opencos/tools/slang.py +15 -12
- opencos/tools/slang_yosys.py +0 -6
- opencos/tools/surelog.py +14 -11
- opencos/tools/tabbycad_yosys.py +1 -7
- opencos/tools/verilator.py +18 -14
- opencos/tools/vivado.py +57 -22
- opencos/tools/yosys.py +2 -4
- opencos/util.py +14 -5
- opencos/utils/str_helpers.py +42 -1
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/METADATA +1 -2
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/RECORD +40 -41
- opencos/eda_config_max_verilator_waivers.yml +0 -39
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/WHEEL +0 -0
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/entry_points.txt +0 -0
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/licenses/LICENSE +0 -0
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/licenses/LICENSE.spdx +0 -0
- {opencos_eda-0.3.11.dist-info → opencos_eda-0.3.13.dist-info}/top_level.txt +0 -0
opencos/eda_config_defaults.yml
CHANGED
|
@@ -74,6 +74,7 @@ deps_markup_supported: true # Support DEPS.yml files (also .yaml, .toml, .json)
|
|
|
74
74
|
deps_subprocess_shell: true # Support subprocess commands using shell=True
|
|
75
75
|
bare_plusarg_supported: true # Support for CLI, DEPS args or deps: +<string> that isn't +define or +incdirs
|
|
76
76
|
deps_expandvars_enable : true # Support env $VAR replacement on targets or files in DEPS.yml
|
|
77
|
+
show_tool_versions: true # Set to false for tiny performance tweak if --tool arg not supplied
|
|
77
78
|
|
|
78
79
|
dep_sub: [ ] # Legacy, no longer supported.
|
|
79
80
|
vars: { } # Legacy, no longer supported.
|
|
@@ -115,6 +116,7 @@ command_determines_tool:
|
|
|
115
116
|
|
|
116
117
|
command_tool_is_optional:
|
|
117
118
|
# eda commands that may not need to use a tool at all, will skip auto_tools_order if --tool=None (default)
|
|
119
|
+
- shell
|
|
118
120
|
- flist
|
|
119
121
|
- export
|
|
120
122
|
- targets
|
|
@@ -125,11 +127,89 @@ command_has_subcommands:
|
|
|
125
127
|
- tools-multi
|
|
126
128
|
- sweep
|
|
127
129
|
|
|
130
|
+
#
|
|
131
|
+
# auto_tools_order
|
|
132
|
+
# -- Is only used when arg --tool is not set, on command line or via -f, --input-file, or DEPS
|
|
133
|
+
# -- This table should be modified when a new tool is added, if you'd like it to be chosen without
|
|
134
|
+
# --tool arg.
|
|
135
|
+
# -- Is in-order for the handlers, so Verilator is the default simulator if
|
|
136
|
+
# verilator is installed and the eda command is "sim".
|
|
137
|
+
# -- Each key: [list-of-strings] is a list so config changes use Strategy.REPLACE to replace it
|
|
138
|
+
# meaning if a user brings their own auto_tools_order for 'lint' they must define the complete
|
|
139
|
+
# auto order when --tool is not specified
|
|
140
|
+
#
|
|
141
|
+
auto_tools_order:
|
|
142
|
+
lint:
|
|
143
|
+
- slang
|
|
144
|
+
- surelog
|
|
145
|
+
- verilator
|
|
146
|
+
- vivado
|
|
147
|
+
- modelsim_ase
|
|
148
|
+
- questa_fse
|
|
149
|
+
- questa_fe
|
|
150
|
+
- questa
|
|
151
|
+
- riviera
|
|
152
|
+
- iverilog
|
|
153
|
+
- invio
|
|
154
|
+
elab:
|
|
155
|
+
- slang
|
|
156
|
+
- surelog
|
|
157
|
+
- verilator
|
|
158
|
+
- vivado
|
|
159
|
+
- modelsim_ase
|
|
160
|
+
- questa_fse
|
|
161
|
+
- questa_fe
|
|
162
|
+
- questa
|
|
163
|
+
- slang_yosys
|
|
164
|
+
- riviera
|
|
165
|
+
- iverilog
|
|
166
|
+
- invio
|
|
167
|
+
- invio_yosys
|
|
168
|
+
sim:
|
|
169
|
+
- verilator
|
|
170
|
+
- vivado
|
|
171
|
+
- modelsim_ase
|
|
172
|
+
- questa_fse
|
|
173
|
+
- questa_fe
|
|
174
|
+
- questa
|
|
175
|
+
- riviera
|
|
176
|
+
- iverilog
|
|
177
|
+
synth:
|
|
178
|
+
- slang_yosys
|
|
179
|
+
- vivado
|
|
180
|
+
- quartus
|
|
181
|
+
- tabbycad_yosys
|
|
182
|
+
- invio_yosys
|
|
183
|
+
- yosys
|
|
184
|
+
proj:
|
|
185
|
+
- vivado
|
|
186
|
+
- quartus
|
|
187
|
+
build:
|
|
188
|
+
- vivado
|
|
189
|
+
- quartus
|
|
190
|
+
open:
|
|
191
|
+
- vivado
|
|
192
|
+
- quartus
|
|
193
|
+
lec:
|
|
194
|
+
- slang_yosys
|
|
195
|
+
- yosys
|
|
128
196
|
|
|
129
197
|
|
|
130
198
|
tools:
|
|
131
199
|
|
|
132
200
|
# <tool-name>:
|
|
201
|
+
# exe: <Array of strings, or single string, required exe>
|
|
202
|
+
# requires_cmd: <Array of shell commands that must complete with rc=0 for tool to work>
|
|
203
|
+
# requires_py: <Array of strings, python packages requires for tool to work>
|
|
204
|
+
# requires_vscode_extension: <Array of strings, vscode extensions that must be present for
|
|
205
|
+
# tool to work>
|
|
206
|
+
# requires_vsim_helper: <Bool, if True we will determine which vsim exe(s) are present in PATH
|
|
207
|
+
# for tool to work, such that Modelsim, Questa, Riviera can all be
|
|
208
|
+
# present in PATH and each tool can still be chosen>
|
|
209
|
+
# handlers: <Table of {command, python package class name}, for how this tool
|
|
210
|
+
# will run an eda command>
|
|
211
|
+
# disable-auto: <Bool, if True do not allow this to run `eda [command]` with --tool
|
|
212
|
+
# not set>
|
|
133
213
|
# defines: <Table, macroName: <value|null|> >
|
|
134
214
|
# log-bad-strings: <Array of strings>
|
|
135
215
|
# log-must-strings: <Array of strings>
|
|
@@ -145,9 +225,37 @@ tools:
|
|
|
145
225
|
# simulate-waivers: <Array of strings, no spaces>
|
|
146
226
|
# coverage-args: <string space separated>
|
|
147
227
|
|
|
228
|
+
|
|
229
|
+
vaporview:
|
|
230
|
+
exe: code
|
|
231
|
+
requires_vscode_extension:
|
|
232
|
+
- lramseyer.vaporview
|
|
233
|
+
handlers:
|
|
234
|
+
waves: opencos.commands.waves.CommandWaves
|
|
235
|
+
|
|
236
|
+
surfer:
|
|
237
|
+
exe: code
|
|
238
|
+
requires_vscode_extension:
|
|
239
|
+
- surfer-project.surfer
|
|
240
|
+
handlers:
|
|
241
|
+
waves: opencos.commands.waves.CommandWaves
|
|
242
|
+
|
|
243
|
+
gtkwave:
|
|
244
|
+
exe: gtkwave
|
|
245
|
+
handlers:
|
|
246
|
+
waves: opencos.commands.waves.CommandWaves
|
|
247
|
+
|
|
148
248
|
slang:
|
|
249
|
+
exe: slang
|
|
250
|
+
requires_cmd:
|
|
251
|
+
- slang --version
|
|
252
|
+
handlers:
|
|
253
|
+
lint: opencos.tools.slang.CommandLintSlang
|
|
254
|
+
elab: opencos.tools.slang.CommandElabSlang
|
|
255
|
+
|
|
149
256
|
defines:
|
|
150
257
|
OC_TOOL_SLANG: null
|
|
258
|
+
SLANG: 1
|
|
151
259
|
log-bad-strings:
|
|
152
260
|
- 'Build failed: '
|
|
153
261
|
log-must-strings:
|
|
@@ -161,7 +269,14 @@ tools:
|
|
|
161
269
|
compile-waivers: []
|
|
162
270
|
|
|
163
271
|
verilator:
|
|
164
|
-
|
|
272
|
+
exe: verilator
|
|
273
|
+
handlers:
|
|
274
|
+
lint: opencos.tools.verilator.VerilatorLint
|
|
275
|
+
elab: opencos.tools.verilator.VerilatorElab
|
|
276
|
+
sim: opencos.tools.verilator.VerilatorSim
|
|
277
|
+
|
|
278
|
+
defines:
|
|
279
|
+
SIMULATION: 1
|
|
165
280
|
log-warning-strings:
|
|
166
281
|
- "%Warning"
|
|
167
282
|
log-bad-strings:
|
|
@@ -232,6 +347,13 @@ tools:
|
|
|
232
347
|
|
|
233
348
|
|
|
234
349
|
surelog:
|
|
350
|
+
exe: surelog
|
|
351
|
+
requires_cmd:
|
|
352
|
+
- surelog --version
|
|
353
|
+
handlers:
|
|
354
|
+
lint: opencos.tools.surelog.CommandLintSurelog
|
|
355
|
+
elab: opencos.tools.surelog.CommandElabSurelog
|
|
356
|
+
|
|
235
357
|
defines:
|
|
236
358
|
OC_TOOL_SURELOG: null
|
|
237
359
|
compile-args: |
|
|
@@ -239,6 +361,15 @@ tools:
|
|
|
239
361
|
-timescale=1ns/1ns
|
|
240
362
|
|
|
241
363
|
invio:
|
|
364
|
+
exe: python3
|
|
365
|
+
requires_cmd:
|
|
366
|
+
- python -c "import invio"
|
|
367
|
+
requires_py:
|
|
368
|
+
- invio
|
|
369
|
+
handlers:
|
|
370
|
+
lint: opencos.tools.invio.CommandLintInvio
|
|
371
|
+
elab: opencos.tools.invio.CommandElabInvio
|
|
372
|
+
|
|
242
373
|
defines:
|
|
243
374
|
OC_TOOL_INVIO: null
|
|
244
375
|
INVIO: null
|
|
@@ -246,18 +377,32 @@ tools:
|
|
|
246
377
|
|
|
247
378
|
|
|
248
379
|
riviera:
|
|
380
|
+
exe: vsim
|
|
381
|
+
requires_cmd:
|
|
382
|
+
- which riviera # Do not run it, make sure it's in PATH
|
|
383
|
+
requires_vsim_helper: True
|
|
384
|
+
handlers:
|
|
385
|
+
lint: opencos.tools.riviera.CommandLintRiviera
|
|
386
|
+
elab: opencos.tools.riviera.CommandElabRiviera
|
|
387
|
+
sim: opencos.tools.riviera.CommandSimRiviera
|
|
388
|
+
flist: opencos.tools.riviera.CommandFListRiviera
|
|
389
|
+
waves: opencos.commands.waves.CommandWaves
|
|
390
|
+
|
|
249
391
|
defines:
|
|
250
392
|
OC_TOOL_RIVIERA: 1
|
|
251
393
|
RIVIERA: 1
|
|
394
|
+
# see oclib_defines.vh, this is to prevent type comparisons
|
|
395
|
+
OC_TOOL_BROKEN_TYPE_COMPARISON: 1
|
|
252
396
|
log-warning-strings:
|
|
253
397
|
- "Warning: "
|
|
254
398
|
log-bad-strings:
|
|
255
399
|
- "Error: "
|
|
256
400
|
- "Fatal: "
|
|
401
|
+
- "You do not have a valid license to run"
|
|
257
402
|
log-must-strings:
|
|
258
403
|
- "VSIM: Simulation has finished"
|
|
259
404
|
compile-args: |
|
|
260
|
-
-echo -sv -input_ports net -
|
|
405
|
+
-echo -sv -input_ports net -dbg +accb +accr +accs +dacc
|
|
261
406
|
compile-coverage-args: |
|
|
262
407
|
-coverage sbecam -coverage_options count
|
|
263
408
|
# -uvm -ovm
|
|
@@ -271,9 +416,20 @@ tools:
|
|
|
271
416
|
|
|
272
417
|
|
|
273
418
|
modelsim_ase:
|
|
419
|
+
exe: vsim
|
|
420
|
+
requires_vsim_helper: True
|
|
421
|
+
handlers:
|
|
422
|
+
lint: opencos.tools.modelsim_ase.CommandLintModelsimAse
|
|
423
|
+
elab: opencos.tools.modelsim_ase.CommandElabModelsimAse
|
|
424
|
+
sim: opencos.tools.modelsim_ase.CommandSimModelsimAse
|
|
425
|
+
flist: opencos.tools.modelsim_ase.CommandFListModelsimAse
|
|
426
|
+
waves: opencos.commands.waves.CommandWaves
|
|
427
|
+
|
|
274
428
|
defines:
|
|
275
429
|
OC_ASSERT_PROPERTY_NOT_SUPPORTED: 1
|
|
276
430
|
OC_TOOL_MODELSIM_ASE: 1
|
|
431
|
+
# see oclib_defines.vh, this is to prevent type comparisons
|
|
432
|
+
OC_TOOL_BROKEN_TYPE_COMPARISON: 1
|
|
277
433
|
log-warning-strings:
|
|
278
434
|
- "Warning: "
|
|
279
435
|
log-bad-strings:
|
|
@@ -299,7 +455,53 @@ tools:
|
|
|
299
455
|
+acc
|
|
300
456
|
|
|
301
457
|
|
|
302
|
-
|
|
458
|
+
questa_fe: # FPGA edition
|
|
459
|
+
exe: vsim
|
|
460
|
+
requires_vsim_helper: True
|
|
461
|
+
handlers:
|
|
462
|
+
lint: opencos.tools.questa_fe.CommandLintQuestaFe
|
|
463
|
+
elab: opencos.tools.questa_fe.CommandElabQuestaFe
|
|
464
|
+
sim: opencos.tools.questa_fe.CommandSimQuestaFe
|
|
465
|
+
flist: opencos.tools.questa_fe.CommandFListQuestaFe
|
|
466
|
+
waves: opencos.commands.waves.CommandWaves
|
|
467
|
+
|
|
468
|
+
defines:
|
|
469
|
+
OC_TOOL_QUESTA_FE: 1
|
|
470
|
+
log-warning-strings:
|
|
471
|
+
- "Warning: "
|
|
472
|
+
log-bad-strings:
|
|
473
|
+
- "Error: "
|
|
474
|
+
- "Fatal: "
|
|
475
|
+
log-must-strings:
|
|
476
|
+
- " vsim "
|
|
477
|
+
- "Errors: 0"
|
|
478
|
+
compile-args: |
|
|
479
|
+
-sv -svinputport=net -lint
|
|
480
|
+
compile-waivers:
|
|
481
|
+
- 2275 # 2275 - Existing package 'myname_pkg' will be overwritten.
|
|
482
|
+
- 2555 # 2555 - assignment to input port myname
|
|
483
|
+
- 2583 # 2583 - [SVCHK] - Extra checking for conflicts with always_comb and
|
|
484
|
+
# always_latch variables is done at vopt time.
|
|
485
|
+
- 13159 # 13159, 2685, 2718 are all related to module instance port default values.
|
|
486
|
+
- 2685
|
|
487
|
+
- 2718
|
|
488
|
+
simulate-waivers:
|
|
489
|
+
- 3009 # 3009: [TSCALE] - Module 'myname' does not have a timeunit/timeprecision
|
|
490
|
+
# specification in effect, but other modules do.
|
|
491
|
+
simulate-waves-args: |
|
|
492
|
+
-voptargs=+acc=bcnprst
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
questa_fse: # FPGA starter edition
|
|
496
|
+
exe: vsim
|
|
497
|
+
requires_vsim_helper: True
|
|
498
|
+
handlers:
|
|
499
|
+
lint: opencos.tools.questa_fse.CommandLintQuestaFse
|
|
500
|
+
elab: opencos.tools.questa_fse.CommandElabQuestaFse
|
|
501
|
+
sim: opencos.tools.questa_fse.CommandSimQuestaFse
|
|
502
|
+
flist: opencos.tools.questa_fse.CommandFListQuestaFse
|
|
503
|
+
waves: opencos.commands.waves.CommandWaves
|
|
504
|
+
|
|
303
505
|
defines:
|
|
304
506
|
OC_TOOL_QUESTA_FSE: 1
|
|
305
507
|
log-warning-strings:
|
|
@@ -327,7 +529,54 @@ tools:
|
|
|
327
529
|
-voptargs=+acc=bcnprst
|
|
328
530
|
|
|
329
531
|
|
|
532
|
+
questa: # Questa
|
|
533
|
+
exe: vsim
|
|
534
|
+
requires_vsim_helper: True
|
|
535
|
+
handlers:
|
|
536
|
+
lint: opencos.tools.questa.CommandLintQuesta
|
|
537
|
+
elab: opencos.tools.questa.CommandElabQuesta
|
|
538
|
+
sim: opencos.tools.questa.CommandSimQuesta
|
|
539
|
+
flist: opencos.tools.questa.CommandFListQuesta
|
|
540
|
+
waves: opencos.commands.waves.CommandWaves
|
|
541
|
+
|
|
542
|
+
defines:
|
|
543
|
+
OC_TOOL_QUESTA: 1
|
|
544
|
+
log-warning-strings:
|
|
545
|
+
- "Warning: "
|
|
546
|
+
log-bad-strings:
|
|
547
|
+
- "Error: "
|
|
548
|
+
- "Fatal: "
|
|
549
|
+
log-must-strings:
|
|
550
|
+
- " vsim "
|
|
551
|
+
- "Errors: 0"
|
|
552
|
+
compile-args: |
|
|
553
|
+
-sv -svinputport=net -lint
|
|
554
|
+
compile-waivers:
|
|
555
|
+
- 2275 # 2275 - Existing package 'myname_pkg' will be overwritten.
|
|
556
|
+
- 2555 # 2555 - assignment to input port myname
|
|
557
|
+
- 2583 # 2583 - [SVCHK] - Extra checking for conflicts with always_comb and
|
|
558
|
+
# always_latch variables is done at vopt time.
|
|
559
|
+
- 13159 # 13159, 2685, 2718 are all related to module instance port default values.
|
|
560
|
+
- 2685
|
|
561
|
+
- 2718
|
|
562
|
+
simulate-waivers:
|
|
563
|
+
- 3009 # 3009: [TSCALE] - Module 'myname' does not have a timeunit/timeprecision
|
|
564
|
+
# specification in effect, but other modules do.
|
|
565
|
+
simulate-waves-args: |
|
|
566
|
+
-voptargs=+acc=bcnprst
|
|
567
|
+
|
|
568
|
+
|
|
330
569
|
iverilog:
|
|
570
|
+
exe: iverilog
|
|
571
|
+
handlers:
|
|
572
|
+
lint: opencos.tools.iverilog.CommandLintIverilog
|
|
573
|
+
elab: opencos.tools.iverilog.CommandElabIverilog
|
|
574
|
+
sim: opencos.tools.iverilog.CommandSimIverilog
|
|
575
|
+
defines:
|
|
576
|
+
SIMULATION: 1
|
|
577
|
+
IVERILOG: 1
|
|
578
|
+
OC_ASSERT_PROPERTY_NOT_SUPPORTED: 1
|
|
579
|
+
|
|
331
580
|
log-warning-strings:
|
|
332
581
|
- "Warning:"
|
|
333
582
|
- "WARNING:"
|
|
@@ -348,8 +597,19 @@ tools:
|
|
|
348
597
|
+trace
|
|
349
598
|
|
|
350
599
|
cocotb:
|
|
600
|
+
disable-auto: True # do not allow this to run `eda sim` with --tool not set
|
|
601
|
+
exe: python
|
|
602
|
+
requires_cmd:
|
|
603
|
+
- python -c "import cocotb; print(cocotb.__version__)"
|
|
604
|
+
requires_py:
|
|
605
|
+
- cocotb
|
|
606
|
+
handlers:
|
|
607
|
+
sim: opencos.tools.cocotb.CommandSimCocotb
|
|
608
|
+
|
|
351
609
|
defines:
|
|
352
610
|
OC_TOOL_COCOTB: null
|
|
611
|
+
COCOTB: 1
|
|
612
|
+
SIMULATION: 1
|
|
353
613
|
log-warning-strings:
|
|
354
614
|
- "Warning:"
|
|
355
615
|
- "WARNING:"
|
|
@@ -365,10 +625,32 @@ tools:
|
|
|
365
625
|
|
|
366
626
|
|
|
367
627
|
quartus:
|
|
628
|
+
exe: quartus_sh
|
|
629
|
+
handlers:
|
|
630
|
+
synth: opencos.tools.quartus.CommandSynthQuartus
|
|
631
|
+
build: opencos.tools.quartus.CommandBuildQuartus
|
|
632
|
+
flist: opencos.tools.quartus.CommandFListQuartus
|
|
633
|
+
proj: opencos.tools.quartus.CommandProjQuartus
|
|
634
|
+
upload: opencos.tools.quartus.CommandUploadQuartus
|
|
635
|
+
open: opencos.tools.quartus.CommandOpenQuartus
|
|
636
|
+
|
|
368
637
|
defines:
|
|
369
638
|
OC_TOOL_QUARTUS: null
|
|
370
639
|
|
|
371
640
|
vivado:
|
|
641
|
+
exe: vivado
|
|
642
|
+
handlers:
|
|
643
|
+
lint: opencos.tools.vivado.CommandLintVivado
|
|
644
|
+
elab: opencos.tools.vivado.CommandElabVivado
|
|
645
|
+
sim: opencos.tools.vivado.CommandSimVivado
|
|
646
|
+
synth: opencos.tools.vivado.CommandSynthVivado
|
|
647
|
+
proj: opencos.tools.vivado.CommandProjVivado
|
|
648
|
+
upload: opencos.tools.vivado.CommandUploadVivado
|
|
649
|
+
open: opencos.tools.vivado.CommandOpenVivado
|
|
650
|
+
flist: opencos.tools.vivado.CommandFListVivado
|
|
651
|
+
build: opencos.tools.vivado.CommandBuildVivado
|
|
652
|
+
waves: opencos.commands.waves.CommandWaves
|
|
653
|
+
|
|
372
654
|
log-warning-strings:
|
|
373
655
|
- "WARNING: "
|
|
374
656
|
- "Warning: "
|
|
@@ -394,196 +676,45 @@ tools:
|
|
|
394
676
|
simulate-args: |
|
|
395
677
|
snapshot --stats --onerror quit
|
|
396
678
|
|
|
679
|
+
slang_yosys:
|
|
680
|
+
exe: yosys
|
|
681
|
+
requires_cmd:
|
|
682
|
+
- yosys -m slang
|
|
683
|
+
handlers:
|
|
684
|
+
elab: opencos.tools.slang_yosys.CommandElabSlangYosys
|
|
685
|
+
synth: opencos.tools.slang_yosys.CommandSynthSlangYosys
|
|
686
|
+
lec: opencos.tools.slang_yosys.CommandLecSlangYosys
|
|
687
|
+
defines:
|
|
688
|
+
OC_TOOL_YOSYS: null
|
|
689
|
+
OC_TOOL_SLANG: null
|
|
690
|
+
SLANG: 1
|
|
691
|
+
|
|
692
|
+
tabbycad_yosys:
|
|
693
|
+
exe: yosys
|
|
694
|
+
requires_env:
|
|
695
|
+
- YOSYSHQ_LICENSE
|
|
696
|
+
handlers:
|
|
697
|
+
synth: opencos.tools.tabbycad_yosys.CommandSynthTabbyCadYosys
|
|
698
|
+
defines:
|
|
699
|
+
OC_TOOL_YOSYS: null
|
|
700
|
+
OC_TOOL_TABBYCAD: null
|
|
701
|
+
|
|
702
|
+
invio_yosys:
|
|
703
|
+
exe: yosys
|
|
704
|
+
requires_cmd:
|
|
705
|
+
- python -c "import invio"
|
|
706
|
+
requires_py:
|
|
707
|
+
- invio
|
|
708
|
+
handlers:
|
|
709
|
+
elab: opencos.tools.invio_yosys.CommandElabInvioYosys
|
|
710
|
+
synth: opencos.tools.invio_yosys.CommandSynthInvioYosys
|
|
711
|
+
OC_TOOL_YOSYS: null
|
|
712
|
+
OC_TOOL_INVIO: null
|
|
397
713
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
- # This is a list so config changes use Strategy.REPLACE to replace it
|
|
406
|
-
|
|
407
|
-
slang:
|
|
408
|
-
exe: slang
|
|
409
|
-
requires_cmd:
|
|
410
|
-
- slang --version
|
|
411
|
-
handlers:
|
|
412
|
-
lint: opencos.tools.slang.CommandLintSlang
|
|
413
|
-
elab: opencos.tools.slang.CommandElabSlang
|
|
414
|
-
|
|
415
|
-
verilator:
|
|
416
|
-
exe: verilator
|
|
417
|
-
handlers:
|
|
418
|
-
lint: opencos.tools.verilator.VerilatorLint
|
|
419
|
-
elab: opencos.tools.verilator.VerilatorElab
|
|
420
|
-
sim: opencos.tools.verilator.VerilatorSim
|
|
421
|
-
|
|
422
|
-
# TODO(drew): surelog is disabled from `eda tools-multi`. It is still
|
|
423
|
-
# enabled for `eda [multi] elab --tool surelog`. It does not support
|
|
424
|
-
# type comparisons:
|
|
425
|
-
# if type(myname) == type(othername)
|
|
426
|
-
# [ERR:UH0700] ... Unsupported expression
|
|
427
|
-
# modelsim_ase also doesn't, but it won't fail elab, whereas surelog does.
|
|
428
|
-
surelog:
|
|
429
|
-
disable-tools-multi: true # surelog doesn't support enough of IEEE-1800
|
|
430
|
-
exe: surelog
|
|
431
|
-
requires_cmd:
|
|
432
|
-
- surelog --version
|
|
433
|
-
handlers:
|
|
434
|
-
lint: opencos.tools.surelog.CommandLintSurelog
|
|
435
|
-
elab: opencos.tools.surelog.CommandElabSurelog
|
|
436
|
-
|
|
437
|
-
invio:
|
|
438
|
-
exe: python3
|
|
439
|
-
requires_cmd:
|
|
440
|
-
- python -c "import invio"
|
|
441
|
-
requires_py:
|
|
442
|
-
- invio
|
|
443
|
-
handlers:
|
|
444
|
-
lint: opencos.tools.invio.CommandLintInvio
|
|
445
|
-
elab: opencos.tools.invio.CommandElabInvio
|
|
446
|
-
|
|
447
|
-
vaporview:
|
|
448
|
-
exe: code
|
|
449
|
-
requires_vscode_extension:
|
|
450
|
-
- lramseyer.vaporview
|
|
451
|
-
handlers:
|
|
452
|
-
waves: opencos.commands.waves.CommandWaves
|
|
453
|
-
|
|
454
|
-
surfer:
|
|
455
|
-
exe: code
|
|
456
|
-
requires_vscode_extension:
|
|
457
|
-
- surfer-project.surfer
|
|
458
|
-
handlers:
|
|
459
|
-
waves: opencos.commands.waves.CommandWaves
|
|
460
|
-
|
|
461
|
-
gtkwave:
|
|
462
|
-
exe: gtkwave
|
|
463
|
-
handlers:
|
|
464
|
-
waves: opencos.commands.waves.CommandWaves
|
|
465
|
-
|
|
466
|
-
quartus:
|
|
467
|
-
exe: quartus_sh
|
|
468
|
-
handlers:
|
|
469
|
-
synth: opencos.tools.quartus.CommandSynthQuartus
|
|
470
|
-
build: opencos.tools.quartus.CommandBuildQuartus
|
|
471
|
-
flist: opencos.tools.quartus.CommandFListQuartus
|
|
472
|
-
proj: opencos.tools.quartus.CommandProjQuartus
|
|
473
|
-
upload: opencos.tools.quartus.CommandUploadQuartus
|
|
474
|
-
open: opencos.tools.quartus.CommandOpenQuartus
|
|
475
|
-
|
|
476
|
-
vivado:
|
|
477
|
-
exe: vivado
|
|
478
|
-
handlers:
|
|
479
|
-
lint: opencos.tools.vivado.CommandLintVivado
|
|
480
|
-
elab: opencos.tools.vivado.CommandElabVivado
|
|
481
|
-
sim: opencos.tools.vivado.CommandSimVivado
|
|
482
|
-
synth: opencos.tools.vivado.CommandSynthVivado
|
|
483
|
-
proj: opencos.tools.vivado.CommandProjVivado
|
|
484
|
-
upload: opencos.tools.vivado.CommandUploadVivado
|
|
485
|
-
open: opencos.tools.vivado.CommandOpenVivado
|
|
486
|
-
flist: opencos.tools.vivado.CommandFListVivado
|
|
487
|
-
build: opencos.tools.vivado.CommandBuildVivado
|
|
488
|
-
waves: opencos.commands.waves.CommandWaves
|
|
489
|
-
|
|
490
|
-
slang_yosys:
|
|
491
|
-
exe: yosys
|
|
492
|
-
requires_cmd:
|
|
493
|
-
- yosys -m slang
|
|
494
|
-
handlers:
|
|
495
|
-
elab: opencos.tools.slang_yosys.CommandElabSlangYosys
|
|
496
|
-
synth: opencos.tools.slang_yosys.CommandSynthSlangYosys
|
|
497
|
-
lec: opencos.tools.slang_yosys.CommandLecSlangYosys
|
|
498
|
-
|
|
499
|
-
tabbycad_yosys:
|
|
500
|
-
exe: yosys
|
|
501
|
-
requires_env:
|
|
502
|
-
- YOSYSHQ_LICENSE
|
|
503
|
-
handlers:
|
|
504
|
-
synth: opencos.tools.tabbycad_yosys.CommandSynthTabbyCadYosys
|
|
505
|
-
|
|
506
|
-
invio_yosys:
|
|
507
|
-
exe: yosys
|
|
508
|
-
requires_cmd:
|
|
509
|
-
- python -c "import invio"
|
|
510
|
-
requires_py:
|
|
511
|
-
- invio
|
|
512
|
-
handlers:
|
|
513
|
-
elab: opencos.tools.invio_yosys.CommandElabInvioYosys
|
|
514
|
-
synth: opencos.tools.invio_yosys.CommandSynthInvioYosys
|
|
515
|
-
|
|
516
|
-
yosys:
|
|
517
|
-
exe: yosys
|
|
518
|
-
requires_cmd:
|
|
519
|
-
- yosys
|
|
520
|
-
handlers:
|
|
521
|
-
synth: opencos.tools.slang_yosys.CommonSynthYosys
|
|
522
|
-
lec: opencos.tools.slang_yosys.CommandLecYosys
|
|
523
|
-
|
|
524
|
-
questa:
|
|
525
|
-
exe: vsim
|
|
526
|
-
requires_vsim_helper: True
|
|
527
|
-
handlers:
|
|
528
|
-
lint: opencos.tools.questa.CommandLintQuesta
|
|
529
|
-
elab: opencos.tools.questa.CommandElabQuesta
|
|
530
|
-
sim: opencos.tools.questa.CommandSimQuesta
|
|
531
|
-
flist: opencos.tools.questa.CommandFListQuesta
|
|
532
|
-
waves: opencos.commands.waves.CommandWaves
|
|
533
|
-
|
|
534
|
-
riviera:
|
|
535
|
-
exe: vsim
|
|
536
|
-
requires_cmd:
|
|
537
|
-
- which riviera # Do not run it, make sure it's in PATH
|
|
538
|
-
requires_vsim_helper: True
|
|
539
|
-
handlers:
|
|
540
|
-
lint: opencos.tools.riviera.CommandLintRiviera
|
|
541
|
-
elab: opencos.tools.riviera.CommandElabRiviera
|
|
542
|
-
sim: opencos.tools.riviera.CommandSimRiviera
|
|
543
|
-
waves: opencos.commands.waves.CommandWaves
|
|
544
|
-
|
|
545
|
-
questa_fe:
|
|
546
|
-
exe: vsim
|
|
547
|
-
requires_vsim_helper: True
|
|
548
|
-
handlers:
|
|
549
|
-
lint: opencos.tools.questa_fe.CommandLintQuestaFe
|
|
550
|
-
elab: opencos.tools.questa_fe.CommandElabQuestaFe
|
|
551
|
-
sim: opencos.tools.questa_fe.CommandSimQuestaFe
|
|
552
|
-
flist: opencos.tools.questa_fe.CommandFListQuestaFe
|
|
553
|
-
waves: opencos.commands.waves.CommandWaves
|
|
554
|
-
|
|
555
|
-
questa_fse: # free student edition, works similar to modelsim_ase
|
|
556
|
-
exe: vsim
|
|
557
|
-
requires_vsim_helper: True
|
|
558
|
-
handlers:
|
|
559
|
-
lint: opencos.tools.questa_fse.CommandLintQuestaFse
|
|
560
|
-
elab: opencos.tools.questa_fse.CommandElabQuestaFse
|
|
561
|
-
sim: opencos.tools.questa_fse.CommandSimQuestaFse
|
|
562
|
-
flist: opencos.tools.questa_fse.CommandFListQuestaFse
|
|
563
|
-
waves: opencos.commands.waves.CommandWaves
|
|
564
|
-
|
|
565
|
-
modelsim_ase:
|
|
566
|
-
exe: vsim
|
|
567
|
-
requires_vsim_helper: True
|
|
568
|
-
handlers:
|
|
569
|
-
lint: opencos.tools.modelsim_ase.CommandLintModelsimAse
|
|
570
|
-
elab: opencos.tools.modelsim_ase.CommandElabModelsimAse
|
|
571
|
-
sim: opencos.tools.modelsim_ase.CommandSimModelsimAse
|
|
572
|
-
waves: opencos.commands.waves.CommandWaves
|
|
573
|
-
|
|
574
|
-
iverilog:
|
|
575
|
-
exe: iverilog
|
|
576
|
-
handlers:
|
|
577
|
-
lint: opencos.tools.iverilog.CommandLintIverilog
|
|
578
|
-
elab: opencos.tools.iverilog.CommandElabIverilog
|
|
579
|
-
sim: opencos.tools.iverilog.CommandSimIverilog
|
|
580
|
-
|
|
581
|
-
cocotb:
|
|
582
|
-
disable-auto: True # do not allow this to run `eda sim` with --tool not set
|
|
583
|
-
exe: python
|
|
584
|
-
requires_cmd:
|
|
585
|
-
- python -c "import cocotb; print(cocotb.__version__)"
|
|
586
|
-
requires_py:
|
|
587
|
-
- cocotb
|
|
588
|
-
handlers:
|
|
589
|
-
sim: opencos.tools.cocotb.CommandSimCocotb
|
|
714
|
+
yosys:
|
|
715
|
+
exe: yosys
|
|
716
|
+
requires_cmd:
|
|
717
|
+
- yosys
|
|
718
|
+
handlers:
|
|
719
|
+
synth: opencos.tools.slang_yosys.CommonSynthYosys
|
|
720
|
+
lec: opencos.tools.slang_yosys.CommandLecYosys
|
opencos/eda_config_reduced.yml
CHANGED
|
@@ -14,6 +14,11 @@ deps_subprocess_shell: false
|
|
|
14
14
|
|
|
15
15
|
tools:
|
|
16
16
|
verilator:
|
|
17
|
+
exe: verilator
|
|
18
|
+
handlers:
|
|
19
|
+
lint: opencos.tools.verilator.VerilatorLint
|
|
20
|
+
elab: opencos.tools.verilator.VerilatorElab
|
|
21
|
+
sim: opencos.tools.verilator.VerilatorSim
|
|
17
22
|
compile-waivers:
|
|
18
23
|
- CASEINCOMPLETE
|
|
19
24
|
- REALCVT # Implicit conversion of real to integer
|
|
@@ -23,43 +28,18 @@ tools:
|
|
|
23
28
|
- WIDTH
|
|
24
29
|
- fatal
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
slang:
|
|
29
|
-
exe: slang
|
|
30
|
-
requires_cmd:
|
|
31
|
-
- slang --version
|
|
32
|
-
handlers:
|
|
33
|
-
elab: opencos.tools.slang.CommandElabSlang
|
|
34
|
-
|
|
35
|
-
verilator:
|
|
36
|
-
exe: verilator
|
|
37
|
-
handlers:
|
|
38
|
-
elab: opencos.tools.verilator.VerilatorElab
|
|
39
|
-
sim: opencos.tools.verilator.VerilatorSim
|
|
40
|
-
|
|
41
|
-
gtkwave:
|
|
42
|
-
exe: gtkwave
|
|
43
|
-
handlers: { }
|
|
31
|
+
# leave slang, modelsim_ase, iverilog, slang_yosys at defaults
|
|
44
32
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
elab: opencos.tools.modelsim_ase.CommandElabModelsimAse
|
|
59
|
-
sim: opencos.tools.modelsim_ase.CommandSimModelsimAse
|
|
60
|
-
|
|
61
|
-
iverilog:
|
|
62
|
-
exe: iverilog
|
|
63
|
-
handlers:
|
|
64
|
-
elab: opencos.tools.iverilog.CommandElabIverilog
|
|
65
|
-
sim: opencos.tools.iverilog.CommandSimIverilog
|
|
33
|
+
auto_tools_order:
|
|
34
|
+
lint:
|
|
35
|
+
- slang
|
|
36
|
+
- verilator
|
|
37
|
+
elab:
|
|
38
|
+
- slang
|
|
39
|
+
- verilator
|
|
40
|
+
sim:
|
|
41
|
+
- verilator
|
|
42
|
+
- modelsim_ase
|
|
43
|
+
- iverilog
|
|
44
|
+
synth:
|
|
45
|
+
- slang_yosys
|