opencos-eda 0.3.9__py3-none-any.whl → 0.3.10__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/deps_help.py +40 -21
- opencos/commands/sim.py +0 -1
- opencos/deps/deps_file.py +82 -79
- opencos/eda.py +46 -9
- opencos/eda_base.py +8 -4
- opencos/eda_config.py +8 -1
- opencos/eda_deps_bash_completion.bash +37 -15
- opencos/tools/questa_common.py +1 -2
- opencos/tools/verilator.py +1 -0
- opencos/utils/str_helpers.py +7 -0
- opencos/utils/vsim_helper.py +47 -22
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/METADATA +1 -1
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/RECORD +18 -36
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/entry_points.txt +1 -0
- opencos/tests/__init__.py +0 -0
- opencos/tests/custom_config.yml +0 -13
- opencos/tests/deps_files/command_order/DEPS.yml +0 -44
- opencos/tests/deps_files/error_msgs/DEPS.yml +0 -55
- opencos/tests/deps_files/iverilog_test/DEPS.yml +0 -4
- opencos/tests/deps_files/no_deps_here/DEPS.yml +0 -0
- opencos/tests/deps_files/non_sv_reqs/DEPS.yml +0 -50
- opencos/tests/deps_files/tags_with_tools/DEPS.yml +0 -54
- opencos/tests/deps_files/test_err_fatal/DEPS.yml +0 -4
- opencos/tests/helpers.py +0 -354
- opencos/tests/test_build.py +0 -12
- opencos/tests/test_deps_helpers.py +0 -207
- opencos/tests/test_deps_schema.py +0 -30
- opencos/tests/test_eda.py +0 -921
- opencos/tests/test_eda_elab.py +0 -110
- opencos/tests/test_eda_synth.py +0 -150
- opencos/tests/test_oc_cli.py +0 -25
- opencos/tests/test_tools.py +0 -404
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/WHEEL +0 -0
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/licenses/LICENSE +0 -0
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/licenses/LICENSE.spdx +0 -0
- {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/top_level.txt +0 -0
opencos/utils/vsim_helper.py
CHANGED
|
@@ -5,57 +5,82 @@ Instead, eda.py can call this once, and then query if this tool exists when runn
|
|
|
5
5
|
opencos.eda.auto_tool_setup(..)
|
|
6
6
|
'''
|
|
7
7
|
|
|
8
|
+
import os
|
|
8
9
|
import shutil
|
|
9
10
|
import subprocess
|
|
10
11
|
|
|
11
12
|
from opencos.util import debug
|
|
12
13
|
|
|
13
14
|
INIT_HAS_RUN = False # pylint: disable=invalid-name
|
|
14
|
-
|
|
15
|
-
'riviera':
|
|
16
|
-
'modelsim_ase':
|
|
17
|
-
'questa' :
|
|
18
|
-
'
|
|
15
|
+
TOOL_PATH = {
|
|
16
|
+
'riviera': None,
|
|
17
|
+
'modelsim_ase': None,
|
|
18
|
+
'questa' : None,
|
|
19
|
+
'questa_fe' : None,
|
|
20
|
+
'questa_fse': None
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
def found() -> str:
|
|
22
24
|
'''Returns the found tool, or blank str'''
|
|
23
|
-
for k,v in
|
|
25
|
+
for k,v in TOOL_PATH.items():
|
|
24
26
|
if k and v:
|
|
25
27
|
return k
|
|
26
28
|
return ''
|
|
27
29
|
|
|
28
|
-
def
|
|
29
|
-
'''
|
|
30
|
-
global INIT_HAS_RUN # pylint: disable=global-statement
|
|
30
|
+
def init_get_version(dirpath: str) -> None:
|
|
31
|
+
'''Runs vsim -version using vsim_path, updates TOOL_PATH'''
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
INIT_HAS_RUN = True
|
|
36
|
-
vsim_path = shutil.which('vsim')
|
|
37
|
-
|
|
38
|
-
if not vsim_path:
|
|
33
|
+
vsim_path = os.path.join(dirpath, 'vsim')
|
|
34
|
+
if not os.access(vsim_path, os.X_OK):
|
|
39
35
|
return
|
|
40
36
|
|
|
41
37
|
proc = None
|
|
42
38
|
try:
|
|
43
39
|
proc = subprocess.run([vsim_path, '-version'], capture_output=True, check=False)
|
|
44
40
|
except Exception as e:
|
|
45
|
-
debug(f'
|
|
41
|
+
debug(f'{vsim_path} -version: exception {e}')
|
|
46
42
|
|
|
47
43
|
if proc is None or proc.returncode != 0:
|
|
48
44
|
return
|
|
49
45
|
|
|
50
46
|
stdout_str_lower = proc.stdout.decode('utf-8', errors='replace').lower()
|
|
47
|
+
dirpath = os.path.abspath(dirpath)
|
|
48
|
+
settool = None
|
|
51
49
|
|
|
52
50
|
if all(x in stdout_str_lower for x in ('starter', 'modelsim', 'fpga')):
|
|
53
|
-
|
|
51
|
+
settool = 'modelsim_ase'
|
|
54
52
|
elif all(x in stdout_str_lower for x in ('starter', 'questa', 'fpga')):
|
|
55
|
-
|
|
53
|
+
settool = 'questa_fse'
|
|
56
54
|
elif all(x in stdout_str_lower for x in ('questa', 'fpga')):
|
|
57
|
-
|
|
55
|
+
settool = 'questa_fe'
|
|
58
56
|
elif all(x in stdout_str_lower for x in ('riviera', 'aldec')):
|
|
59
|
-
|
|
57
|
+
settool = 'riviera'
|
|
60
58
|
elif 'questa' in stdout_str_lower:
|
|
61
|
-
|
|
59
|
+
settool = 'questa'
|
|
60
|
+
|
|
61
|
+
if settool:
|
|
62
|
+
TOOL_PATH[settool] = vsim_path
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def init() -> None:
|
|
66
|
+
'''Sets INIT_HAS_RUN=True (only runs once) and updates TOOL_PATH[tool]'''
|
|
67
|
+
global INIT_HAS_RUN # pylint: disable=global-statement
|
|
68
|
+
|
|
69
|
+
if INIT_HAS_RUN:
|
|
70
|
+
return
|
|
71
|
+
|
|
72
|
+
INIT_HAS_RUN = True
|
|
73
|
+
vsim_path = shutil.which('vsim')
|
|
74
|
+
|
|
75
|
+
if not vsim_path:
|
|
76
|
+
return
|
|
77
|
+
|
|
78
|
+
path_env = os.environ.get('PATH', '')
|
|
79
|
+
paths = path_env.split(':')
|
|
80
|
+
|
|
81
|
+
for path in paths:
|
|
82
|
+
if not os.path.isdir(path):
|
|
83
|
+
continue
|
|
84
|
+
files = os.listdir(path)
|
|
85
|
+
if 'vsim' in files:
|
|
86
|
+
init_get_version(dirpath=path)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opencos-eda
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.10
|
|
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
|
|
@@ -2,13 +2,13 @@ opencos/__init__.py,sha256=RwJA9oc1uUlvNX7v5zoqwjnSRNq2NZwRlHqtS-ICJkI,122
|
|
|
2
2
|
opencos/_version.py,sha256=KaWIjS0c08g-C0fgYY1kXwSPqhOFxaq5pYEeoZhOR_I,617
|
|
3
3
|
opencos/_waves_pkg.sv,sha256=TL5YT9lT-fn2FD54MbVVZROmZ7vtW3ScA_rM2eRzKmU,2068
|
|
4
4
|
opencos/deps_schema.py,sha256=fx1_IJhsDYkUciwwCPTXHP6ftFjTsPVjO4xg12twIjw,17384
|
|
5
|
-
opencos/eda.py,sha256=
|
|
6
|
-
opencos/eda_base.py,sha256=
|
|
7
|
-
opencos/eda_config.py,sha256=
|
|
5
|
+
opencos/eda.py,sha256=DXMAxHbTvPlCblhBsTwL81FcNIsZSBCs9qjkP63AgSY,28180
|
|
6
|
+
opencos/eda_base.py,sha256=4vKqOSJPdSCKT0nzg8jhFkSa06BXHp74SmU7nT2FHVw,118064
|
|
7
|
+
opencos/eda_config.py,sha256=x0Pvl-a19G9AKbhv1LxG6atn40_yXQ_PG39g-TCLJQo,14677
|
|
8
8
|
opencos/eda_config_defaults.yml,sha256=uLbCDG9m7zEg8DCCL2ZDFgiVO09K1ObQs02__Q4RDhk,17093
|
|
9
9
|
opencos/eda_config_max_verilator_waivers.yml,sha256=lTAU4IOEbUWVlPzuer1YYhIyxpPINeA4EJqcRIT-Ymk,840
|
|
10
10
|
opencos/eda_config_reduced.yml,sha256=cQ9jY4J7EvAbeHTiP6bvpDSVJAYiitjLZPSxxLKIEbk,1440
|
|
11
|
-
opencos/eda_deps_bash_completion.bash,sha256=
|
|
11
|
+
opencos/eda_deps_bash_completion.bash,sha256=o1yZvGUQSbN-AYq95sDTzMFw7gNHCUSlv9tASEHnACA,2763
|
|
12
12
|
opencos/eda_deps_sanitize.py,sha256=SQjvrte9Hv9JesRY0wljvbdC6pAmLCikI-Wdzzy-D04,1939
|
|
13
13
|
opencos/eda_extract_targets.py,sha256=POlxZfqf2dNH2nc1CEw5B_53vSHAicSTkpU9_-2_6Zw,2851
|
|
14
14
|
opencos/eda_tool_helper.py,sha256=Xm6nr9XweCjueWFLkrH5U3nK96JGeeh86f2GCPhwY-o,3108
|
|
@@ -21,7 +21,7 @@ opencos/seed.py,sha256=IL9Yg-r9SLSRseMVWaEHmuw2_DNi_eyut11EafoNTsU,942
|
|
|
21
21
|
opencos/util.py,sha256=rJnXWOy_5vlb_qC1O5LmeOwJaJZrV46ZM9tYAcQKqAw,44453
|
|
22
22
|
opencos/commands/__init__.py,sha256=oOOQmn5_jHAMSOfA3swJJ7mdoyHsJA0lJwKPTudlTns,1125
|
|
23
23
|
opencos/commands/build.py,sha256=mvJYxk5J15k0Cr8R7oIdIIdsEtWV3gE-LnPweVwtSDo,1487
|
|
24
|
-
opencos/commands/deps_help.py,sha256=
|
|
24
|
+
opencos/commands/deps_help.py,sha256=A0KKYdZ7rHlX1zr_J8uGDCrOw8sWnVcw0AtdDzMWr38,12041
|
|
25
25
|
opencos/commands/elab.py,sha256=m6Gk03wSzX8UkcmReooK7turF7LpqO0IcdOZwJ8XiyI,1596
|
|
26
26
|
opencos/commands/export.py,sha256=OhqVLVGN9Ch46NmBmZZo0CxIzhf3BsyX_8qA60SPNHw,3556
|
|
27
27
|
opencos/commands/flist.py,sha256=u66Xy5U5Xgk3LZ-GdCDUcwwA2U2LyZF3FpB9qWiIZMQ,9110
|
|
@@ -31,7 +31,7 @@ opencos/commands/multi.py,sha256=kC21JYJU5E-rP0v690YsgR2rV9WikoeUTwGC4gzYK3M,275
|
|
|
31
31
|
opencos/commands/open.py,sha256=XckvKUNwvc5KHbYGV-eQ2i0WG4X-yckroDaMC610MB4,804
|
|
32
32
|
opencos/commands/proj.py,sha256=cExW9ZZkw6nkpVyNfeQzJADzmPtbYgBgWml82tqO6jY,1158
|
|
33
33
|
opencos/commands/shell.py,sha256=upHpFs8Gdtzi-boVXwsC-QzEsnvtoZNMAu4oN10kdxw,7801
|
|
34
|
-
opencos/commands/sim.py,sha256=
|
|
34
|
+
opencos/commands/sim.py,sha256=et6nHpscvDQoU_0JCvZIp9goo_q3pZK2oP18YKaguAY,24074
|
|
35
35
|
opencos/commands/sweep.py,sha256=ni4XFgnFF8HLXtwPhETyLWfvc2kgtm4bcxFcKzUhkf0,9343
|
|
36
36
|
opencos/commands/synth.py,sha256=m4ZwqHgOF5We0XP94F7TQli11WCPlkzhamI4fDfFR1o,4573
|
|
37
37
|
opencos/commands/targets.py,sha256=_jRNhm2Fqj0fmMvTw6Ba39DCsRHf_r_uZCy_R064kpA,1472
|
|
@@ -40,29 +40,11 @@ opencos/commands/waves.py,sha256=nrp3ALwfJujZns44tgCgia_dEedQyKe0T3fuws8h39U,769
|
|
|
40
40
|
opencos/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
41
|
opencos/deps/defaults.py,sha256=Z6mIVJEV0zQ9rC-HkQFMBFAkixjqKS1TATPSc27wOeA,1502
|
|
42
42
|
opencos/deps/deps_commands.py,sha256=q4JfSfzRO2nM2zdNT4enCy33FokEytZYQJn1HJ6osJk,16606
|
|
43
|
-
opencos/deps/deps_file.py,sha256=
|
|
43
|
+
opencos/deps/deps_file.py,sha256=Yw70fkRcpk16MJVG1jnAGPv4ATZG4aZYQz-nWuTO9CQ,17014
|
|
44
44
|
opencos/deps/deps_processor.py,sha256=WvG7p4wo_gNjkS2pxySgDmkomioooctJTxMlmP42kfk,42827
|
|
45
45
|
opencos/hw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
opencos/hw/oc_cli.py,sha256=U1JGlshLZhtd0LgndZFBZVltAj_HemdhbjO_Zo8ZuVM,132252
|
|
47
47
|
opencos/hw/pcie.py,sha256=VUJljaZJYgScAAx5yn7F6GoA8K9eTcw24otYZbkMpYs,3035
|
|
48
|
-
opencos/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
opencos/tests/custom_config.yml,sha256=TRoVM9ZFKPOA_8JmlpzaMhnGO1txmaD14N_8P1oqzew,257
|
|
50
|
-
opencos/tests/helpers.py,sha256=jembDJkhbpz-oK_aby2LO_ivaMkLtlSkM6g2xdydB3Y,14230
|
|
51
|
-
opencos/tests/test_build.py,sha256=FQAxOpLVQShAHD_L5rqJctPeSAoqoOCNFI0RXflLuY0,387
|
|
52
|
-
opencos/tests/test_deps_helpers.py,sha256=uQZxleh6aKO-mZQhagHh5xLIBbpQ8dav7-5D0eemq_g,8164
|
|
53
|
-
opencos/tests/test_deps_schema.py,sha256=T3P9KjaMyKsk8b7snNVvNSsom2hIJcg6Z9apYiXoH9Y,941
|
|
54
|
-
opencos/tests/test_eda.py,sha256=n76XUSfaPNnTZeS8u5z6f9MHKPJIls4o-S4ftlGxuNg,37767
|
|
55
|
-
opencos/tests/test_eda_elab.py,sha256=AjU4WMYtFoHpNe1Z4yWWpxDKy4V_hAjL5rl3jqphZrk,3179
|
|
56
|
-
opencos/tests/test_eda_synth.py,sha256=BtBrNVJ9C-LJt3K0wNNS5ukEVrET16AbRXl2IzxudJ8,5744
|
|
57
|
-
opencos/tests/test_oc_cli.py,sha256=w-F-LjSSWVql3D2WG8tcV4_C52i-hL_2WT3oDpKQn9s,734
|
|
58
|
-
opencos/tests/test_tools.py,sha256=xzxlHSgqZNN9urxzNfQU4vjexmxRF6bsKvXijU35z78,15046
|
|
59
|
-
opencos/tests/deps_files/command_order/DEPS.yml,sha256=jFce1gErT8XJpovYJj7t7X6Lu-Up_4yNRj9L8wOCAbI,1046
|
|
60
|
-
opencos/tests/deps_files/error_msgs/DEPS.yml,sha256=fYvHouIscOlr8V28bqx9SoxRBpDBLX4AG-AkVXh8qbo,717
|
|
61
|
-
opencos/tests/deps_files/iverilog_test/DEPS.yml,sha256=vDylEuLt642lhRSvOr3F5ziB5lhPSwkaUGN4_mWJw-c,40
|
|
62
|
-
opencos/tests/deps_files/no_deps_here/DEPS.yml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
-
opencos/tests/deps_files/non_sv_reqs/DEPS.yml,sha256=VZkahO1AKhD9GUV5lK8VwUONEi5NesfNfMYOzKk7keU,1006
|
|
64
|
-
opencos/tests/deps_files/tags_with_tools/DEPS.yml,sha256=-5U1qfJElgpVhmkLEu3lYuvDYva8kDlt6JOdB9jidmc,1377
|
|
65
|
-
opencos/tests/deps_files/test_err_fatal/DEPS.yml,sha256=GnXIUJvshQWR9PlYxX67T53ejf5KhDbtD8sUJB4Rwd0,95
|
|
66
48
|
opencos/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
49
|
opencos/tools/cocotb.py,sha256=bR97Mb87D0HPdoV82rLT7oszPLmdIPzYU1IEBaGnuXg,20544
|
|
68
50
|
opencos/tools/invio.py,sha256=S2ChWr8xMZHSOOhX2hGKQhMmtQY2potVQjc-lsMg73o,3299
|
|
@@ -72,7 +54,7 @@ opencos/tools/iverilog.py,sha256=PH_mvFU3LbMAPNskxMi1tD4DsMWRcsy27V_M0La9TNY,655
|
|
|
72
54
|
opencos/tools/modelsim_ase.py,sha256=2QYxaHNsDghnimvIJmkpo_M6w2oZyiyvmak0a5jh4cM,2620
|
|
73
55
|
opencos/tools/quartus.py,sha256=_TfmPSYpbhmDLw7Dur-rRP0iGwv9hhQ6E5G-XLiYPEM,30486
|
|
74
56
|
opencos/tools/questa.py,sha256=oPZUM_OeDhIef0x1HicKUwLwxi0t31Jf1fekNh3IM9Y,2423
|
|
75
|
-
opencos/tools/questa_common.py,sha256
|
|
57
|
+
opencos/tools/questa_common.py,sha256=-TJ5Q7q5HPMC0IpCG0T89jq1BBQOqY5uajeD_bPk5lI,18886
|
|
76
58
|
opencos/tools/questa_fe.py,sha256=fRyi0-WFzp1RN7TGSZ7VTk4LFmxHkpy8BMKE3CxTmMg,2524
|
|
77
59
|
opencos/tools/questa_fse.py,sha256=cH9vxpwa1pi0A9hVPWc_IqYMByaviYlccxQOTpZBC1A,2486
|
|
78
60
|
opencos/tools/riviera.py,sha256=eidlIkggqOHGyrm4ldzfDCO6D-nVnEa6mT5en-rjSK0,15684
|
|
@@ -80,20 +62,20 @@ opencos/tools/slang.py,sha256=nDB9eK_DNAgewsXP4Sc1wh_bQiOr5q3-3ccpTbdWr1Y,9423
|
|
|
80
62
|
opencos/tools/slang_yosys.py,sha256=MKh13eAmLJDkynZiezyT8E2gI4CKnXipzgFCZppaMXo,10230
|
|
81
63
|
opencos/tools/surelog.py,sha256=uqUOpDq9Vs8Inj4m3nlMbag47LrJB4QHUIRes7dFbQY,6520
|
|
82
64
|
opencos/tools/tabbycad_yosys.py,sha256=2LePPgYXBVdsy7YcffPIWN-I0B7queLQ_f_pme2SCGw,7803
|
|
83
|
-
opencos/tools/verilator.py,sha256=
|
|
65
|
+
opencos/tools/verilator.py,sha256=DPD3hJy-Q7cW5Bj3E1c4av1rdumswUNjRQK7yXLKb4g,24998
|
|
84
66
|
opencos/tools/vivado.py,sha256=k_7sc9cv69BIkIxnbQKNFjLubS_O-p7HvTH_SkiZDMQ,41643
|
|
85
67
|
opencos/tools/yosys.py,sha256=2h88u0NA_vqLgZG9I78gIy6nQuWxyT6mirDlyjTHn9w,28290
|
|
86
68
|
opencos/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
69
|
opencos/utils/markup_helpers.py,sha256=A8Ev5UJ4EVKjdcF2g85SQbjdPZR4jGpNqCLaBy_4v7Q,4569
|
|
88
70
|
opencos/utils/status_constants.py,sha256=na6YsqlsCwIYzTXWE14dPadUYRNTrOS6YTXHCer2NbA,635
|
|
89
|
-
opencos/utils/str_helpers.py,sha256=
|
|
71
|
+
opencos/utils/str_helpers.py,sha256=TsQxLpHyNCPAfy4nd7CX0e3Cch9yZgkOjR9KwMK5tCA,6931
|
|
90
72
|
opencos/utils/subprocess_helpers.py,sha256=nmRUe5sPyXomzKEvEQU5231U_vilj8TuXNXLipwqLTM,6579
|
|
91
73
|
opencos/utils/vscode_helper.py,sha256=9nHyMUIL-gzfW-qLH06sgaCnVK-YTOtu6pusitNNhL8,1363
|
|
92
|
-
opencos/utils/vsim_helper.py,sha256=
|
|
93
|
-
opencos_eda-0.3.
|
|
94
|
-
opencos_eda-0.3.
|
|
95
|
-
opencos_eda-0.3.
|
|
96
|
-
opencos_eda-0.3.
|
|
97
|
-
opencos_eda-0.3.
|
|
98
|
-
opencos_eda-0.3.
|
|
99
|
-
opencos_eda-0.3.
|
|
74
|
+
opencos/utils/vsim_helper.py,sha256=hlFnK_YbFRmskV2QtYk9qjA1WUQBX3CVYrc23_GAQNw,2401
|
|
75
|
+
opencos_eda-0.3.10.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
|
|
76
|
+
opencos_eda-0.3.10.dist-info/licenses/LICENSE.spdx,sha256=8gn1610RMP6eFgT3Hm6q9VKXt0RvdTItL_oxMo72jII,189
|
|
77
|
+
opencos_eda-0.3.10.dist-info/METADATA,sha256=OU1rM9JSxRFTDG9aOfXy5ZShhSgWgn_06D2cekDCXEU,1209
|
|
78
|
+
opencos_eda-0.3.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
79
|
+
opencos_eda-0.3.10.dist-info/entry_points.txt,sha256=QOlMZnQeqqwOzIaeKBcY_WlMR3idmOAEbGFh2dXlqJw,290
|
|
80
|
+
opencos_eda-0.3.10.dist-info/top_level.txt,sha256=J4JDP-LpRyJqPNeh9bSjx6yrLz2Mk0h6un6YLmtqql4,8
|
|
81
|
+
opencos_eda-0.3.10.dist-info/RECORD,,
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
eda = opencos.eda:main_cli
|
|
3
3
|
eda_deps_sanitize = opencos.eda_deps_sanitize:main
|
|
4
4
|
eda_deps_schema = opencos.deps_schema:main
|
|
5
|
+
eda_show_autocomplete = opencos.eda:main_show_autocomplete_instructions
|
|
5
6
|
eda_targets = opencos.eda_extract_targets:main
|
|
6
7
|
oc_cli = opencos.hw.oc_cli:main
|
opencos/tests/__init__.py
DELETED
|
File without changes
|
opencos/tests/custom_config.yml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# called by test_eda.py
|
|
2
|
-
|
|
3
|
-
defines: { }
|
|
4
|
-
|
|
5
|
-
dep_command_enables:
|
|
6
|
-
# Values overriden to false:
|
|
7
|
-
shell: false
|
|
8
|
-
var_subst_args: false
|
|
9
|
-
var_subst_os_env: false
|
|
10
|
-
|
|
11
|
-
# Values overriden to false:
|
|
12
|
-
deps_legacy_supported: false
|
|
13
|
-
deps_subprocess_shell: false
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
target_echo_hi:
|
|
3
|
-
# no 'deps', just 'commands'
|
|
4
|
-
commands:
|
|
5
|
-
- shell: echo "hi"
|
|
6
|
-
|
|
7
|
-
target_echo_hi_bye:
|
|
8
|
-
# 'commands' in 'deps':
|
|
9
|
-
deps:
|
|
10
|
-
- target_echo_hi
|
|
11
|
-
- foo.sv
|
|
12
|
-
- commands:
|
|
13
|
-
- shell: echo "bye"
|
|
14
|
-
tee: custom_tee_echo_bye.log # In this test, we'll also confirm manual log names.
|
|
15
|
-
|
|
16
|
-
# If this was not ordered, we'd get "hi" (first traversed) followed by "bye"
|
|
17
|
-
|
|
18
|
-
target_test:
|
|
19
|
-
deps: target_echo_hi_bye
|
|
20
|
-
top: foo
|
|
21
|
-
|
|
22
|
-
target_test_with_post_tool_commands:
|
|
23
|
-
deps:
|
|
24
|
-
# In this test, we want to put a new command in the front of the ordered "deps" list,
|
|
25
|
-
# but with run-after-tool=true, so it should run after any of the normal pre-compile
|
|
26
|
-
# shell commands.
|
|
27
|
-
- commands:
|
|
28
|
-
- shell: echo "final goodbye"
|
|
29
|
-
run-after-tool: true
|
|
30
|
-
- target_echo_hi_bye
|
|
31
|
-
top: foo
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
test_run_from_work_dir:
|
|
35
|
-
deps:
|
|
36
|
-
- commands:
|
|
37
|
-
- shell: echo "pwd=$PWD"
|
|
38
|
-
run-from-work-dir: true
|
|
39
|
-
|
|
40
|
-
test_run_from_work_dir_false:
|
|
41
|
-
deps:
|
|
42
|
-
- commands:
|
|
43
|
-
- shell: echo "pwd=$PWD"
|
|
44
|
-
run-from-work-dir: false
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# We will run elab targets on this file
|
|
2
|
-
|
|
3
|
-
# Good targets
|
|
4
|
-
foo: |
|
|
5
|
-
foo.sv
|
|
6
|
-
|
|
7
|
-
foo2:
|
|
8
|
-
- foo2.sv
|
|
9
|
-
|
|
10
|
-
target_good2:
|
|
11
|
-
top: foo
|
|
12
|
-
deps: foo.sv
|
|
13
|
-
|
|
14
|
-
target_good3:
|
|
15
|
-
top: foo2
|
|
16
|
-
deps:
|
|
17
|
-
- foo2.sv
|
|
18
|
-
|
|
19
|
-
# Bad targets - missing filename in DEPS.yml (we also have to cover missing filename from command-line)
|
|
20
|
-
target_bad0: |
|
|
21
|
-
target_bad0.sv
|
|
22
|
-
missing0.sv
|
|
23
|
-
|
|
24
|
-
target_bad1:
|
|
25
|
-
- target_bad1.sv
|
|
26
|
-
- missing1.sv
|
|
27
|
-
|
|
28
|
-
target_bad2:
|
|
29
|
-
deps: |
|
|
30
|
-
foo.sv
|
|
31
|
-
missing2.sv
|
|
32
|
-
|
|
33
|
-
target_bad3:
|
|
34
|
-
deps:
|
|
35
|
-
- foo.sv
|
|
36
|
-
- missing3.sv
|
|
37
|
-
|
|
38
|
-
# Bad targets - missing target.
|
|
39
|
-
target_bad4: |
|
|
40
|
-
foo.sv
|
|
41
|
-
missing_target4
|
|
42
|
-
|
|
43
|
-
target_bad5:
|
|
44
|
-
- foo.sv
|
|
45
|
-
- missing_target5
|
|
46
|
-
|
|
47
|
-
target_bad6:
|
|
48
|
-
deps: |
|
|
49
|
-
foo.sv
|
|
50
|
-
missing_target6
|
|
51
|
-
|
|
52
|
-
target_bad7:
|
|
53
|
-
deps:
|
|
54
|
-
- foo.sv
|
|
55
|
-
- missing_target7
|
|
File without changes
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Non .sv, .v, .vhd, .cpp files can go directly in the
|
|
3
|
-
# 'deps', for example .mem, .pcap files:
|
|
4
|
-
foo_test:
|
|
5
|
-
deps:
|
|
6
|
-
- foo.sv
|
|
7
|
-
- some_mem.mem
|
|
8
|
-
top: foo
|
|
9
|
-
|
|
10
|
-
# These can also go in 'reqs':
|
|
11
|
-
foo_test2:
|
|
12
|
-
deps:
|
|
13
|
-
- foo.sv
|
|
14
|
-
reqs:
|
|
15
|
-
- some_mem.mem
|
|
16
|
-
top: foo
|
|
17
|
-
|
|
18
|
-
# Included files can also go this route. For example,
|
|
19
|
-
# +incdir+. is always present, so you can call included files with reqs and not incdirs
|
|
20
|
-
foo_test3:
|
|
21
|
-
deps:
|
|
22
|
-
- foo_with_include.sv
|
|
23
|
-
reqs:
|
|
24
|
-
- foo_include.svh # checked for file existence, no incdirs, defaulting to incdir=.
|
|
25
|
-
- some_mem.mem
|
|
26
|
-
top: foo_with_include
|
|
27
|
-
|
|
28
|
-
# You can still include files without reqs
|
|
29
|
-
foo_test4:
|
|
30
|
-
deps:
|
|
31
|
-
- foo_with_include.sv
|
|
32
|
-
incdirs: . # pick up foo_include.svh this way, omit from reqs.
|
|
33
|
-
reqs:
|
|
34
|
-
- some_mem.mem
|
|
35
|
-
top: foo_with_include
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
should_fail_foo_test5:
|
|
40
|
-
deps:
|
|
41
|
-
- foo.sv
|
|
42
|
-
reqs:
|
|
43
|
-
- some_mem.mem2 # This file doesn't exist
|
|
44
|
-
top: foo
|
|
45
|
-
|
|
46
|
-
should_fail_foo_test6:
|
|
47
|
-
deps:
|
|
48
|
-
- foo.sv
|
|
49
|
-
- some_mem.mem2 # This file doesn't exist
|
|
50
|
-
top: foo
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
target_for_foo_sv:
|
|
3
|
-
deps: foo.sv
|
|
4
|
-
tags:
|
|
5
|
-
some-made-up-tag-name:
|
|
6
|
-
# We'll test this with Verilator, and it should stop before simulation (only compile)
|
|
7
|
-
# We'll also test with Vivado, which shouldn't hit this 'with-tools' list, and the
|
|
8
|
-
# entire simulation should run. We'll confirm in the eda stdout/stderr outputs
|
|
9
|
-
with-tools: verilator
|
|
10
|
-
args: --lint-only
|
|
11
|
-
|
|
12
|
-
target_test:
|
|
13
|
-
deps: target_for_foo_sv
|
|
14
|
-
top: foo
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
target_with_replace_config_tools_test:
|
|
18
|
-
deps: foo.sv
|
|
19
|
-
top: foo
|
|
20
|
-
tags:
|
|
21
|
-
verilator_replace_waviers: # default uses replacement strategy on lists
|
|
22
|
-
with-tools: verilator
|
|
23
|
-
replace-config-tools:
|
|
24
|
-
verilator:
|
|
25
|
-
compile-waivers: [ ] # pytest to confirm all waivers removed.
|
|
26
|
-
|
|
27
|
-
target_with_additive_config_tools_test:
|
|
28
|
-
deps: foo.sv
|
|
29
|
-
top: foo
|
|
30
|
-
tags:
|
|
31
|
-
verilator_append_waviers:
|
|
32
|
-
with-tools: verilator
|
|
33
|
-
additive-config-tools: # Uses additive strategy for lists
|
|
34
|
-
verilator:
|
|
35
|
-
compile-waivers: # pytest to confirm these waivers were added, others not removed.
|
|
36
|
-
- style
|
|
37
|
-
- fatal
|
|
38
|
-
|
|
39
|
-
target_foo_sv_add_incdirs:
|
|
40
|
-
deps: foo.sv
|
|
41
|
-
top: foo
|
|
42
|
-
tags:
|
|
43
|
-
made-up-tagname-incdirs:
|
|
44
|
-
with-tools: verilator
|
|
45
|
-
incdirs: .
|
|
46
|
-
|
|
47
|
-
target_foo_sv_add_defines:
|
|
48
|
-
deps: foo.sv
|
|
49
|
-
top: foo
|
|
50
|
-
tags:
|
|
51
|
-
made-up-tagname-defines:
|
|
52
|
-
with-tools: verilator
|
|
53
|
-
defines:
|
|
54
|
-
FOO_SV: 3000
|