opencos-eda 0.3.14__py3-none-any.whl → 0.3.15__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/_version.py +3 -1
- opencos/_waves_pkg.sv +50 -19
- opencos/commands/shell.py +1 -1
- opencos/commands/sim.py +9 -5
- opencos/commands/upload.py +2 -2
- opencos/eda_tool_helper.py +4 -4
- opencos/tools/questa_common.py +1 -0
- opencos/tools/riviera.py +10 -7
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/METADATA +1 -1
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/RECORD +15 -15
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/WHEEL +1 -1
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/entry_points.txt +0 -0
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/licenses/LICENSE +0 -0
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/licenses/LICENSE.spdx +0 -0
- {opencos_eda-0.3.14.dist-info → opencos_eda-0.3.15.dist-info}/top_level.txt +0 -0
opencos/_version.py
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import sys
|
|
4
4
|
|
|
5
|
+
# pylint: disable=invalid-name
|
|
6
|
+
|
|
5
7
|
NAME = 'opencos-eda'
|
|
6
8
|
|
|
7
9
|
# Use standard library metadata module starting Python 3.8
|
|
@@ -19,4 +21,4 @@ else:
|
|
|
19
21
|
ver = "unknown" # Or raise an error, or handle differently
|
|
20
22
|
|
|
21
23
|
|
|
22
|
-
VERSION = ver
|
|
24
|
+
VERSION = ver
|
opencos/_waves_pkg.sv
CHANGED
|
@@ -26,27 +26,25 @@ package _waves_pkg;
|
|
|
26
26
|
automatic string trace_str_value = "";
|
|
27
27
|
void'($value$plusargs("trace=%s", trace_str_value));
|
|
28
28
|
if (trace_str_value.tolower() == "vcd") begin
|
|
29
|
-
$display("%t %m: Starting tracing to ./dump.vcd, plusarg +trace
|
|
30
|
-
$realtime, trace_str_value);
|
|
29
|
+
$display("%t %m: Starting tracing to ./dump.vcd, plusarg +trace=vcd", $realtime);
|
|
31
30
|
$dumpfile("dump.vcd");
|
|
32
31
|
$dumpvars();
|
|
33
|
-
|
|
32
|
+
end else begin
|
|
33
|
+
$display("%t %m: Starting tracing to ./dump.fst", $realtime);
|
|
34
|
+
$dumpfile("dump.fst");
|
|
35
|
+
$dumpvars();
|
|
34
36
|
end
|
|
35
37
|
end
|
|
36
38
|
|
|
37
|
-
$display("%t %m: Starting tracing to ./dump.fst", $realtime);
|
|
38
|
-
$dumpfile("dump.fst");
|
|
39
|
-
$dumpvars();
|
|
40
39
|
return 1;
|
|
41
40
|
|
|
42
41
|
endfunction : init_trace
|
|
43
42
|
|
|
44
|
-
`elsif
|
|
43
|
+
`elsif IVERILOG
|
|
45
44
|
|
|
46
45
|
bit trace_en_init = 0;
|
|
47
46
|
bit trace_en = init_trace();
|
|
48
47
|
|
|
49
|
-
// Note: must be non-automatic function for --tool=riviera
|
|
50
48
|
function bit init_trace();
|
|
51
49
|
|
|
52
50
|
if (trace_en_init) // only do this once.
|
|
@@ -55,26 +53,59 @@ package _waves_pkg;
|
|
|
55
53
|
trace_en_init = 1;
|
|
56
54
|
|
|
57
55
|
if ($test$plusargs("trace") != 0) begin
|
|
58
|
-
|
|
56
|
+
$display("%t %m: Starting tracing to ./dump.vcd, plusarg +trace present", $realtime);
|
|
57
|
+
$dumpfile("dump.vcd");
|
|
58
|
+
$dumpvars();
|
|
59
|
+
return 1;
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
endfunction : init_trace
|
|
63
|
+
|
|
64
|
+
`endif
|
|
65
|
+
`endif
|
|
66
|
+
`endif
|
|
67
|
+
|
|
68
|
+
endpackage : _waves_pkg
|
|
69
|
+
|
|
70
|
+
//
|
|
71
|
+
// For RIVIERA (and SIMULATION, and not disabled):
|
|
72
|
+
// - it will not run system calls from a package function, unless that package was
|
|
73
|
+
// used by the testbench
|
|
74
|
+
// - so we have to
|
|
75
|
+
// - create a side module _waves_module. Fortunately the $dumpvars() in riviera
|
|
76
|
+
// dumps all module hier, not just that from _waves_module.
|
|
77
|
+
// - We will have to include work._waves_module in the vsim call (in riviera.py)
|
|
78
|
+
//
|
|
79
|
+
|
|
80
|
+
// TODO(drew): please test this on a file that doesn't involve ocsim_pkg.sv
|
|
81
|
+
|
|
82
|
+
`ifdef SIMULATION
|
|
83
|
+
`ifndef _WAVES_PKG_DISABLE_DUMPFILE // hook to disable this if user chooses
|
|
84
|
+
`ifdef RIVIERA
|
|
85
|
+
|
|
86
|
+
module _waves_module;
|
|
87
|
+
|
|
88
|
+
string trace_str_value = "";
|
|
89
|
+
|
|
90
|
+
initial begin
|
|
91
|
+
|
|
92
|
+
if ($test$plusargs("trace") != 0) begin
|
|
59
93
|
void'($value$plusargs("trace=%s", trace_str_value));
|
|
60
94
|
if (trace_str_value.tolower() == "vcd") begin
|
|
61
|
-
$display("%t %m: Starting tracing to ./dump.vcd, plusarg +trace
|
|
62
|
-
$realtime, trace_str_value);
|
|
95
|
+
$display("%t %m: Starting tracing to ./dump.vcd, plusarg +trace=vcd", $realtime);
|
|
63
96
|
$dumpfile("dump.vcd");
|
|
64
97
|
$dumpvars();
|
|
65
|
-
|
|
98
|
+
end else begin
|
|
99
|
+
$display("%t %m: Starting tracing to ./dump.fst", $realtime);
|
|
100
|
+
$dumpfile("dump.fst");
|
|
101
|
+
$dumpvars();
|
|
66
102
|
end
|
|
67
103
|
end
|
|
68
104
|
|
|
69
|
-
|
|
70
|
-
$dumpfile("dump.fst");
|
|
71
|
-
$dumpvars();
|
|
72
|
-
return 1;
|
|
105
|
+
end
|
|
73
106
|
|
|
74
|
-
|
|
107
|
+
endmodule : _waves_module
|
|
75
108
|
|
|
76
109
|
`endif
|
|
77
110
|
`endif
|
|
78
111
|
`endif
|
|
79
|
-
|
|
80
|
-
endpackage : _waves_pkg
|
opencos/commands/shell.py
CHANGED
|
@@ -9,7 +9,7 @@ Not intended to be overriden by Tool based classes.'''
|
|
|
9
9
|
# These also share a lot with CommandSim.* methods, so consider refactoring to share code,
|
|
10
10
|
# for example, CommandShell.do_export could move to CommandDesign, and derived classes
|
|
11
11
|
# set the allow-listed args to pass to export.
|
|
12
|
-
# pylint: disable=too-many-arguments
|
|
12
|
+
# pylint: disable=too-many-arguments
|
|
13
13
|
|
|
14
14
|
import os
|
|
15
15
|
|
opencos/commands/sim.py
CHANGED
|
@@ -9,7 +9,7 @@ Note that CommandSim is also a base class for opencos.commands.elab.CommandElab.
|
|
|
9
9
|
# pylint: disable=R0801
|
|
10
10
|
|
|
11
11
|
# TODO(drew): clean up CommandSim.check_logs_for_errors and CommandSim.run_commands_check_logs
|
|
12
|
-
# pylint: disable=too-many-arguments
|
|
12
|
+
# pylint: disable=too-many-arguments
|
|
13
13
|
|
|
14
14
|
import os
|
|
15
15
|
import shlex
|
|
@@ -22,6 +22,9 @@ from opencos.utils import status_constants
|
|
|
22
22
|
|
|
23
23
|
from opencos.utils.str_helpers import strip_outer_quotes
|
|
24
24
|
|
|
25
|
+
THISPATH = os.path.dirname(__file__)
|
|
26
|
+
WAVES_PKG_SV_FNAME = str((Path(THISPATH) / '..' / '_waves_pkg.sv').resolve())
|
|
27
|
+
|
|
25
28
|
def parameters_dict_get_command_list(
|
|
26
29
|
params: dict, arg_prefix: str = '-G',
|
|
27
30
|
hier_delimiter: str = '.',
|
|
@@ -638,8 +641,7 @@ class CommandSim(CommandDesign): # pylint: disable=too-many-public-methods
|
|
|
638
641
|
break
|
|
639
642
|
|
|
640
643
|
if not found_dumpfile:
|
|
641
|
-
|
|
642
|
-
file_to_add = os.path.join(thispath, '..', '_waves_pkg.sv')
|
|
644
|
+
file_to_add = WAVES_PKG_SV_FNAME
|
|
643
645
|
util.info(f'--waves arg present, no $dumpfile found, adding SV file: {file_to_add}')
|
|
644
646
|
self.add_file(file_to_add)
|
|
645
647
|
|
|
@@ -706,7 +708,9 @@ class CommandSim(CommandDesign): # pylint: disable=too-many-public-methods
|
|
|
706
708
|
if 'LICENSE_QUEUE' not in os.environ:
|
|
707
709
|
os.environ['LICENSE_QUEUE'] = '1'
|
|
708
710
|
|
|
709
|
-
def update_library_map(
|
|
711
|
+
def update_library_map( # pylint: disable=dangerous-default-value
|
|
712
|
+
self, base_search_paths: list = []
|
|
713
|
+
) -> None:
|
|
710
714
|
'''
|
|
711
715
|
Returns None, uses self.args['library-map'] to update:
|
|
712
716
|
|
|
@@ -739,7 +743,7 @@ class CommandSim(CommandDesign): # pylint: disable=too-many-public-methods
|
|
|
739
743
|
|
|
740
744
|
# We have to go looking for lib_path though
|
|
741
745
|
search_files = [lib_path]
|
|
742
|
-
if base_search_paths
|
|
746
|
+
if base_search_paths:
|
|
743
747
|
for x in base_search_paths:
|
|
744
748
|
search_files.append(Path(x) / lib_path)
|
|
745
749
|
for x in search_files:
|
opencos/commands/upload.py
CHANGED
|
@@ -123,7 +123,7 @@ class CommandUpload(Command):
|
|
|
123
123
|
def get_list_bitfiles(self, display: bool = True) -> list:
|
|
124
124
|
'''Returns a list of bit files (ending with self.SUPPORTED_BIT_EXT)'''
|
|
125
125
|
|
|
126
|
-
bitfiles
|
|
126
|
+
bitfiles = [] # list[Path]
|
|
127
127
|
|
|
128
128
|
targets, files = self.get_targets_or_files_from_unparsed_args()
|
|
129
129
|
targets.extend(files)
|
|
@@ -136,7 +136,7 @@ class CommandUpload(Command):
|
|
|
136
136
|
if os.path.isfile(fullpath) and fullpath not in bitfiles:
|
|
137
137
|
bitfiles.append(fullpath)
|
|
138
138
|
|
|
139
|
-
matched
|
|
139
|
+
matched = [] # list[Path]
|
|
140
140
|
for cand in bitfiles:
|
|
141
141
|
debug(f"Looking for {cand=} in {targets=}")
|
|
142
142
|
passing = all(re.search(t, str(cand)) for t in targets)
|
opencos/eda_tool_helper.py
CHANGED
|
@@ -111,8 +111,8 @@ def get_handler_tool_version(tool: str, eda_command: str, config: dict) -> str:
|
|
|
111
111
|
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
def get_handler_info_with_versions( # pylint: disable=too-many-branches
|
|
115
|
-
config: dict
|
|
114
|
+
def get_handler_info_with_versions( # pylint: disable=too-many-branches,dangerous-default-value
|
|
115
|
+
config: dict = {},
|
|
116
116
|
include_commands: bool = True,
|
|
117
117
|
sort: bool = True
|
|
118
118
|
) -> str:
|
|
@@ -202,8 +202,8 @@ def get_handler_info_with_versions( # pylint: disable=too-many-branches
|
|
|
202
202
|
return info
|
|
203
203
|
|
|
204
204
|
|
|
205
|
-
def pretty_info_handler_tools(
|
|
206
|
-
info: dict
|
|
205
|
+
def pretty_info_handler_tools( # pylint: disable=dangerous-default-value
|
|
206
|
+
info: dict = {}, config: dict = {}, command: str = ''
|
|
207
207
|
) -> None:
|
|
208
208
|
'''Pretty print (via util.info) the result from get_handler_info_with_versions()
|
|
209
209
|
|
opencos/tools/questa_common.py
CHANGED
opencos/tools/riviera.py
CHANGED
|
@@ -14,6 +14,7 @@ from pathlib import Path
|
|
|
14
14
|
from opencos import util
|
|
15
15
|
from opencos.commands import CommandFList
|
|
16
16
|
from opencos.files import safe_shutil_which
|
|
17
|
+
from opencos.commands.sim import WAVES_PKG_SV_FNAME
|
|
17
18
|
from opencos.tools.questa_common import ToolQuesta, CommonSimQuesta
|
|
18
19
|
from opencos.utils.str_helpers import sanitize_defines_for_sh
|
|
19
20
|
from opencos.utils import status_constants
|
|
@@ -127,8 +128,6 @@ class CommandSimRiviera(CommonSimQuesta, ToolRiviera):
|
|
|
127
128
|
def compile(self):
|
|
128
129
|
'''Override for CommandSimModelsimAse.compile() so we can set our own must_strings'''
|
|
129
130
|
|
|
130
|
-
self.add_waves_pkg_file()
|
|
131
|
-
|
|
132
131
|
if self.args['stop-before-compile']:
|
|
133
132
|
# don't run anything, save everyting we've already run in _prep_compile()
|
|
134
133
|
return
|
|
@@ -240,7 +239,7 @@ class CommandSimRiviera(CommonSimQuesta, ToolRiviera):
|
|
|
240
239
|
|
|
241
240
|
|
|
242
241
|
|
|
243
|
-
def write_vsim_dot_do( # pylint: disable=too-many-branches,too-many-locals
|
|
242
|
+
def write_vsim_dot_do( # pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
|
244
243
|
self, dot_do_to_write: list
|
|
245
244
|
) -> None:
|
|
246
245
|
'''Writes files(s) based on dot_do_to_write(list of str)
|
|
@@ -296,6 +295,10 @@ class CommandSimRiviera(CommonSimQuesta, ToolRiviera):
|
|
|
296
295
|
f" {voptargs_str} {vsim_ext_args} {vsim_libs} work.{self.args['top']}"
|
|
297
296
|
)
|
|
298
297
|
|
|
298
|
+
if self.args['waves'] and WAVES_PKG_SV_FNAME in self.files:
|
|
299
|
+
# kind of a hack, but add _waves_module (from _waves_pkg.sv) if that file
|
|
300
|
+
# was in our files list.
|
|
301
|
+
vsim_one_liner += ' work._waves_module'
|
|
299
302
|
|
|
300
303
|
for l in self.args['add-top-library']:
|
|
301
304
|
vsim_one_liner += f' {l}'
|
|
@@ -424,14 +427,14 @@ class CommandSimRiviera(CommonSimQuesta, ToolRiviera):
|
|
|
424
427
|
|
|
425
428
|
return ' '.join(vsim_suppress_list)
|
|
426
429
|
|
|
427
|
-
def update_library_map(
|
|
430
|
+
def update_library_map( # pylint: disable=dangerous-default-value
|
|
431
|
+
self, base_search_paths: list = []
|
|
432
|
+
) -> None:
|
|
428
433
|
'''Override from sim::CommandSim
|
|
429
434
|
|
|
430
435
|
We add some common places to look relative to the Riviera install paths
|
|
431
436
|
'''
|
|
432
|
-
bsp = []
|
|
433
|
-
if isinstance(base_search_paths, list):
|
|
434
|
-
bsp += base_search_paths
|
|
437
|
+
bsp = [] + base_search_paths
|
|
435
438
|
bsp += [
|
|
436
439
|
Path(self.sim_exe_base_path),
|
|
437
440
|
Path(self.sim_exe_base_path) / '..',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opencos-eda
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.15
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
opencos/__init__.py,sha256=RwJA9oc1uUlvNX7v5zoqwjnSRNq2NZwRlHqtS-ICJkI,122
|
|
2
|
-
opencos/_version.py,sha256=
|
|
3
|
-
opencos/_waves_pkg.sv,sha256=
|
|
2
|
+
opencos/_version.py,sha256=FLlmTepF7P0hC-506fgEvv3NSxGxtWgeR7g2UkNK7PI,618
|
|
3
|
+
opencos/_waves_pkg.sv,sha256=yWojzRYVIqV2H5xa5e0v34LgK4oLMu3k9_N8EYXy2f0,2852
|
|
4
4
|
opencos/deps_schema.py,sha256=wKRMuFzOIapwpCPFGvWGM8Mcwdh9yngHOiDRMmvUaIg,17394
|
|
5
5
|
opencos/eda.py,sha256=2vJLMYMW9muWieNaOJz-U5EIVchmVyhTfmEcnZwQtvg,37382
|
|
6
6
|
opencos/eda_base.py,sha256=-nguHrrYVb8a853HEMfFrOoXlsEEeRnDdFR66nTwX0s,124332
|
|
@@ -10,7 +10,7 @@ opencos/eda_config_reduced.yml,sha256=BOKGfe-OmVIF0SKhTTglPIzfAoGuCZ8n-f2KpoLF8d
|
|
|
10
10
|
opencos/eda_deps_bash_completion.bash,sha256=o1yZvGUQSbN-AYq95sDTzMFw7gNHCUSlv9tASEHnACA,2763
|
|
11
11
|
opencos/eda_deps_sanitize.py,sha256=SQjvrte9Hv9JesRY0wljvbdC6pAmLCikI-Wdzzy-D04,1939
|
|
12
12
|
opencos/eda_extract_targets.py,sha256=POlxZfqf2dNH2nc1CEw5B_53vSHAicSTkpU9_-2_6Zw,2851
|
|
13
|
-
opencos/eda_tool_helper.py,sha256=
|
|
13
|
+
opencos/eda_tool_helper.py,sha256=7KY-E7wnWCNRHXeekDg1tFivcZw86-MsrmXiw7Fc6h0,8578
|
|
14
14
|
opencos/export_helper.py,sha256=zDkvsUS6FVrpXl1UTy53QG3CuhYp5FFplI9rRzAE2g8,25395
|
|
15
15
|
opencos/export_json_convert.py,sha256=tSIMbLFtc_Fo66EhFovMii1v_qJYyFZJrPNnoPdW7L0,4182
|
|
16
16
|
opencos/files.py,sha256=-vHrddbFrwxEHU47VzeyLOU93q8XSXAmPiopClfV-bs,2296
|
|
@@ -29,12 +29,12 @@ opencos/commands/lint.py,sha256=piPb0l0zE3sAtNJkFQ-oNpuHxnaV_RNXkXtEj_9mwGs,1594
|
|
|
29
29
|
opencos/commands/multi.py,sha256=urm-IDllnMZWScH7e6Pg4ukHGHILBd4NbPlPmHU3vsw,27624
|
|
30
30
|
opencos/commands/open.py,sha256=XckvKUNwvc5KHbYGV-eQ2i0WG4X-yckroDaMC610MB4,804
|
|
31
31
|
opencos/commands/proj.py,sha256=cExW9ZZkw6nkpVyNfeQzJADzmPtbYgBgWml82tqO6jY,1158
|
|
32
|
-
opencos/commands/shell.py,sha256=
|
|
33
|
-
opencos/commands/sim.py,sha256
|
|
32
|
+
opencos/commands/shell.py,sha256=WPKS27fTr0MG4Gqz_RzSwv4n8AINuQ_ntSmJtHeat_I,7771
|
|
33
|
+
opencos/commands/sim.py,sha256=-dBxyHWMlUeLllsyhHa82jYKcLWxZA9qntS_vbeV3V0,31569
|
|
34
34
|
opencos/commands/sweep.py,sha256=62XmDHT-prdxJNy-6MbK6wEGJm1YC9caOaJapoekQ8s,9325
|
|
35
35
|
opencos/commands/synth.py,sha256=Qs6FP9Ge_gp9TH3EFzVXKFlrrqrMwIbr38VYVlZvmeA,4557
|
|
36
36
|
opencos/commands/targets.py,sha256=_jRNhm2Fqj0fmMvTw6Ba39DCsRHf_r_uZCy_R064kpA,1472
|
|
37
|
-
opencos/commands/upload.py,sha256=
|
|
37
|
+
opencos/commands/upload.py,sha256=OGMI4By0942jL9LK7xBy5_WjvVzRbAr_RB3rS5fNobI,7917
|
|
38
38
|
opencos/commands/waves.py,sha256=LYF1UcxkHFYYtYoebnh9iE_on80PbbmzIpaSk-XtZcI,9232
|
|
39
39
|
opencos/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
40
|
opencos/deps/defaults.py,sha256=Z6mIVJEV0zQ9rC-HkQFMBFAkixjqKS1TATPSc27wOeA,1502
|
|
@@ -65,10 +65,10 @@ opencos/tools/iverilog.py,sha256=aehXQV22U7MIaH8XuEI9ApWztsez0NaW960_Z01oZWc,678
|
|
|
65
65
|
opencos/tools/modelsim_ase.py,sha256=NEzAXJtiVWkKb3N-O3PYxSnnFmrq8LNrqjxFNBwzfKI,2254
|
|
66
66
|
opencos/tools/quartus.py,sha256=gtswIhpnHjUTmw5g1BRxhjB6tofXEsx-I6IySjwyF94,32303
|
|
67
67
|
opencos/tools/questa.py,sha256=QP0JCt8rWf0-snncNP0_Pi6oRY6_Z9Hwix1IYlRdGEc,2057
|
|
68
|
-
opencos/tools/questa_common.py,sha256=
|
|
68
|
+
opencos/tools/questa_common.py,sha256=JYF4MrAcELurcA-t3Hzjb9KKtzHBEEYmXWKWAt8Gi0c,21931
|
|
69
69
|
opencos/tools/questa_fe.py,sha256=yYNlUnA2pQ8-gELLajnvJgqg6ZXb6F26YRmyvrlNFOA,2155
|
|
70
70
|
opencos/tools/questa_fse.py,sha256=CjOAn1Ik-3Hd-vyUH_WyTTJxH2yPfhNEfXbedCir7J4,2116
|
|
71
|
-
opencos/tools/riviera.py,sha256=
|
|
71
|
+
opencos/tools/riviera.py,sha256=SsBOQ-xQQeBr_jPKI50bGzFHXKQeAa7WX3Ql6AC-3wE,19535
|
|
72
72
|
opencos/tools/slang.py,sha256=MxRwu4laSbv7oa3lO-BKg4McL7KAckSA003sL-9sY3U,9682
|
|
73
73
|
opencos/tools/slang_yosys.py,sha256=z8gUcNSGDl5S6Ufxdx54WWe5v73w0UydErBKFWBR6ZI,10154
|
|
74
74
|
opencos/tools/surelog.py,sha256=QaXS1EWI2b1TqBoekpXndoHxS6t2e8SD-I2Ryi-gHGs,6666
|
|
@@ -84,10 +84,10 @@ opencos/utils/str_helpers.py,sha256=ctl0Zh0h0JW7OlReeSdGxB9wODQYzmMO-9-h55rSRv0,
|
|
|
84
84
|
opencos/utils/subprocess_helpers.py,sha256=Wqqs8FKm3XIjmD9GUYM-HWVJH7TxWJJA37A07J4fQ4w,6619
|
|
85
85
|
opencos/utils/vscode_helper.py,sha256=8epyEeYfXONwiSoc5KZjUfKc8vgLryct8yckJYie88U,1398
|
|
86
86
|
opencos/utils/vsim_helper.py,sha256=-TJK4Dh8LZ4DCM8GrS9Wka4HE_WMGG_aKwTZtKBrEOE,2994
|
|
87
|
-
opencos_eda-0.3.
|
|
88
|
-
opencos_eda-0.3.
|
|
89
|
-
opencos_eda-0.3.
|
|
90
|
-
opencos_eda-0.3.
|
|
91
|
-
opencos_eda-0.3.
|
|
92
|
-
opencos_eda-0.3.
|
|
93
|
-
opencos_eda-0.3.
|
|
87
|
+
opencos_eda-0.3.15.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
|
|
88
|
+
opencos_eda-0.3.15.dist-info/licenses/LICENSE.spdx,sha256=8gn1610RMP6eFgT3Hm6q9VKXt0RvdTItL_oxMo72jII,189
|
|
89
|
+
opencos_eda-0.3.15.dist-info/METADATA,sha256=eMegaTVGReQYdwr58zGGkc8fmhuJywlujQ1wawgA4dA,1165
|
|
90
|
+
opencos_eda-0.3.15.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
91
|
+
opencos_eda-0.3.15.dist-info/entry_points.txt,sha256=QOlMZnQeqqwOzIaeKBcY_WlMR3idmOAEbGFh2dXlqJw,290
|
|
92
|
+
opencos_eda-0.3.15.dist-info/top_level.txt,sha256=J4JDP-LpRyJqPNeh9bSjx6yrLz2Mk0h6un6YLmtqql4,8
|
|
93
|
+
opencos_eda-0.3.15.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|