opencos-eda 0.3.11__tar.gz → 0.3.12__tar.gz
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_eda-0.3.11/opencos_eda.egg-info → opencos_eda-0.3.12}/PKG-INFO +1 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/multi.py +1 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/sweep.py +1 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/upload.py +4 -4
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/waves.py +44 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda.py +276 -170
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda_base.py +15 -14
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda_config.py +14 -18
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda_config_defaults.yml +301 -194
- opencos_eda-0.3.12/opencos/eda_config_reduced.yml +45 -0
- opencos_eda-0.3.12/opencos/eda_tool_helper.py +258 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/cocotb.py +6 -18
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/modelsim_ase.py +1 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/quartus.py +60 -23
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/questa_common.py +48 -7
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/riviera.py +2 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/slang.py +3 -3
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/surelog.py +3 -3
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/verilator.py +5 -3
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/vivado.py +8 -4
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/yosys.py +1 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/str_helpers.py +38 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12/opencos_eda.egg-info}/PKG-INFO +1 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos_eda.egg-info/SOURCES.txt +0 -1
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/pyproject.toml +1 -1
- opencos_eda-0.3.11/opencos/eda_config_max_verilator_waivers.yml +0 -39
- opencos_eda-0.3.11/opencos/eda_config_reduced.yml +0 -65
- opencos_eda-0.3.11/opencos/eda_tool_helper.py +0 -89
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/LICENSE +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/LICENSE.spdx +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/README.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/Architecture.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/ConnectingApps.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/DEPS.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/Debug.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/DirectoryStructure.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/Installation.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/OcVivadoTcl.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/OpenQuestions.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/README.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/RtlCodingStyle.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/eda.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/docs/oc_cli.md +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/__init__.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/_version.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/_waves_pkg.sv +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/__init__.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/build.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/deps_help.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/elab.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/export.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/flist.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/lec.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/lint.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/open.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/proj.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/shell.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/sim.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/synth.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/commands/targets.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/deps/__init__.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/deps/defaults.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/deps/deps_commands.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/deps/deps_file.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/deps/deps_processor.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/deps_schema.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda_deps_bash_completion.bash +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda_deps_sanitize.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/eda_extract_targets.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/export_helper.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/export_json_convert.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/files.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/hw/__init__.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/hw/oc_cli.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/hw/pcie.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/names.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/peakrdl_cleanup.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/seed.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/__init__.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/invio.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/invio_helpers.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/invio_yosys.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/iverilog.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/questa.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/questa_fe.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/questa_fse.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/slang_yosys.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/tools/tabbycad_yosys.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/util.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/__init__.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/dict_helpers.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/markup_helpers.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/status_constants.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/subprocess_helpers.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/vscode_helper.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos/utils/vsim_helper.py +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos_eda.egg-info/dependency_links.txt +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos_eda.egg-info/entry_points.txt +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos_eda.egg-info/requires.txt +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/opencos_eda.egg-info/top_level.txt +0 -0
- {opencos_eda-0.3.11 → opencos_eda-0.3.12}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opencos-eda
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.12
|
|
4
4
|
Summary: A simple Python package for wrapping RTL simuliatons and synthesis
|
|
5
5
|
Author-email: Simon Sabato <simon@cognichip.ai>, Drew Ranck <drew@cognichip.ai>
|
|
6
6
|
Project-URL: Homepage, https://github.com/cognichip/opencos
|
|
@@ -281,7 +281,7 @@ class CommandMulti(CommandParallel):
|
|
|
281
281
|
if parsed.parallel < 1 or parsed.parallel > 256:
|
|
282
282
|
self.error("Arg 'parallel' must be between 1 and 256")
|
|
283
283
|
|
|
284
|
-
command = self.
|
|
284
|
+
command = self.get_sub_command_from_config()
|
|
285
285
|
|
|
286
286
|
# Need to know the tool for this command, either it was set correctly via --tool and/or
|
|
287
287
|
# the command (class) will tell us.
|
|
@@ -72,7 +72,7 @@ class CommandSweep(CommandDesign, CommandParallel):
|
|
|
72
72
|
|
|
73
73
|
self.check_args()
|
|
74
74
|
|
|
75
|
-
self.single_command = self.
|
|
75
|
+
self.single_command = self.get_sub_command_from_config()
|
|
76
76
|
|
|
77
77
|
self._append_sweep_args(arg_tokens=arg_tokens)
|
|
78
78
|
|
|
@@ -204,9 +204,9 @@ class CommandUpload(Command):
|
|
|
204
204
|
tool = tools_found.pop() # only item in set
|
|
205
205
|
# Do we have a handler for this in our config?
|
|
206
206
|
if tool in self.config.get('tools_loaded', []):
|
|
207
|
-
|
|
208
|
-
if
|
|
209
|
-
cls_str =
|
|
207
|
+
tool_cfg = self.config.get('tools', {}).get(tool, {})
|
|
208
|
+
if tool_cfg:
|
|
209
|
+
cls_str = tool_cfg.get('handlers', {}).get(self.command_name, None)
|
|
210
210
|
if cls_str:
|
|
211
211
|
cls = import_class_from_string(cls_str)
|
|
212
212
|
if issubclass(cls, Command):
|
|
@@ -217,5 +217,5 @@ class CommandUpload(Command):
|
|
|
217
217
|
|
|
218
218
|
warning(f'No handler found for tool={tool} to process bitfiles: {self.bitfiles}')
|
|
219
219
|
debug(f'config -- tools_loaded: {self.config["tools_loaded"]}')
|
|
220
|
-
debug(f'config --
|
|
220
|
+
debug(f'config -- tools for tool: {self.config["tools"].get(tool, "")}')
|
|
221
221
|
return self
|
|
@@ -15,10 +15,12 @@ handler).
|
|
|
15
15
|
# pylint: disable=R0801
|
|
16
16
|
|
|
17
17
|
import os
|
|
18
|
+
import subprocess
|
|
18
19
|
|
|
19
20
|
from opencos import util
|
|
20
21
|
from opencos.eda_base import CommandDesign
|
|
21
22
|
from opencos.files import safe_shutil_which
|
|
23
|
+
from opencos.utils import vscode_helper
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
class CommandWaves(CommandDesign):
|
|
@@ -51,6 +53,48 @@ class CommandWaves(CommandDesign):
|
|
|
51
53
|
+ ' to stdout',
|
|
52
54
|
})
|
|
53
55
|
|
|
56
|
+
def get_versions_of_tool(self, tool: str) -> str:
|
|
57
|
+
'''Similar to Tool.get_versions(), returns the version of 'tool' for tools like:
|
|
58
|
+
|
|
59
|
+
- vaporview
|
|
60
|
+
- gtkwave
|
|
61
|
+
|
|
62
|
+
This is called by eda_tool_helper.get_handler_tool_version(tool, cmd, config)
|
|
63
|
+
'''
|
|
64
|
+
|
|
65
|
+
entry = self.config.get('tools', {}).get(tool, {})
|
|
66
|
+
|
|
67
|
+
if entry and 'requires_vscode_extension' in entry:
|
|
68
|
+
# vaporview, surfer
|
|
69
|
+
vscode_ext_name = entry.get('requires_vscode_extension', [''])[0]
|
|
70
|
+
vscode_helper.init()
|
|
71
|
+
ver = vscode_helper.EXTENSIONS.get(vscode_ext_name)
|
|
72
|
+
return ver
|
|
73
|
+
|
|
74
|
+
if entry and tool == 'gtkwave':
|
|
75
|
+
# gtkwave --version is fast.
|
|
76
|
+
proc = None
|
|
77
|
+
try:
|
|
78
|
+
proc = subprocess.run(
|
|
79
|
+
[safe_shutil_which('gtkwave'), '--version'],
|
|
80
|
+
capture_output=True, check=False
|
|
81
|
+
)
|
|
82
|
+
except Exception as e:
|
|
83
|
+
util.debug(f'gtkwave --version: exception {e}')
|
|
84
|
+
|
|
85
|
+
if not proc or not proc.stdout:
|
|
86
|
+
return ''
|
|
87
|
+
|
|
88
|
+
for line in proc.stdout.decode('utf-8', errors='replace').split('\n'):
|
|
89
|
+
if line.lower().startswith('gtkwave analyzer v'):
|
|
90
|
+
parts = line.split(' ')
|
|
91
|
+
return parts[2][1:] # trim the leading 'v' in 'v1.2.3'
|
|
92
|
+
return ''
|
|
93
|
+
|
|
94
|
+
return ''
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
54
98
|
|
|
55
99
|
def get_wave_files_in_dirs(self, wave_dirs: list, quiet: bool = False) -> list:
|
|
56
100
|
'''Returns list of all wave files give wave_dirs (list)'''
|