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.
Files changed (36) hide show
  1. opencos/commands/deps_help.py +40 -21
  2. opencos/commands/sim.py +0 -1
  3. opencos/deps/deps_file.py +82 -79
  4. opencos/eda.py +46 -9
  5. opencos/eda_base.py +8 -4
  6. opencos/eda_config.py +8 -1
  7. opencos/eda_deps_bash_completion.bash +37 -15
  8. opencos/tools/questa_common.py +1 -2
  9. opencos/tools/verilator.py +1 -0
  10. opencos/utils/str_helpers.py +7 -0
  11. opencos/utils/vsim_helper.py +47 -22
  12. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/METADATA +1 -1
  13. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/RECORD +18 -36
  14. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/entry_points.txt +1 -0
  15. opencos/tests/__init__.py +0 -0
  16. opencos/tests/custom_config.yml +0 -13
  17. opencos/tests/deps_files/command_order/DEPS.yml +0 -44
  18. opencos/tests/deps_files/error_msgs/DEPS.yml +0 -55
  19. opencos/tests/deps_files/iverilog_test/DEPS.yml +0 -4
  20. opencos/tests/deps_files/no_deps_here/DEPS.yml +0 -0
  21. opencos/tests/deps_files/non_sv_reqs/DEPS.yml +0 -50
  22. opencos/tests/deps_files/tags_with_tools/DEPS.yml +0 -54
  23. opencos/tests/deps_files/test_err_fatal/DEPS.yml +0 -4
  24. opencos/tests/helpers.py +0 -354
  25. opencos/tests/test_build.py +0 -12
  26. opencos/tests/test_deps_helpers.py +0 -207
  27. opencos/tests/test_deps_schema.py +0 -30
  28. opencos/tests/test_eda.py +0 -921
  29. opencos/tests/test_eda_elab.py +0 -110
  30. opencos/tests/test_eda_synth.py +0 -150
  31. opencos/tests/test_oc_cli.py +0 -25
  32. opencos/tests/test_tools.py +0 -404
  33. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/WHEEL +0 -0
  34. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/licenses/LICENSE +0 -0
  35. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/licenses/LICENSE.spdx +0 -0
  36. {opencos_eda-0.3.9.dist-info → opencos_eda-0.3.10.dist-info}/top_level.txt +0 -0
@@ -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
- TOOL_IS = {
15
- 'riviera': False,
16
- 'modelsim_ase': False,
17
- 'questa' : False,
18
- 'questa_fse': False
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 TOOL_IS.items():
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 init() -> None:
29
- '''Sets INIT_HAS_RUN=True (only runs once) and one of TOOL_IS[tool] = True'''
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
- if INIT_HAS_RUN:
33
- return
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'vsim -version: exception {e}')
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
- TOOL_IS['modelsim_ase'] = True
51
+ settool = 'modelsim_ase'
54
52
  elif all(x in stdout_str_lower for x in ('starter', 'questa', 'fpga')):
55
- TOOL_IS['questa_fse'] = True
53
+ settool = 'questa_fse'
56
54
  elif all(x in stdout_str_lower for x in ('questa', 'fpga')):
57
- TOOL_IS['questa_fe'] = True
55
+ settool = 'questa_fe'
58
56
  elif all(x in stdout_str_lower for x in ('riviera', 'aldec')):
59
- TOOL_IS['riviera'] = True
57
+ settool = 'riviera'
60
58
  elif 'questa' in stdout_str_lower:
61
- TOOL_IS['questa'] = True
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.9
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=VzuRw2m-LB8mR4nNOcIlZe7GxgGPuussC7pVGq8qHJs,26990
6
- opencos/eda_base.py,sha256=J_al8-oQS5HCTJyiNSFVaNosESPctLWNpKG7FVGJXks,117815
7
- opencos/eda_config.py,sha256=d7gMx9ZJTcnUwVhqUkQtY4PI3UGD0ZvH8D_GXvc5Erc,14199
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=jMkQKY82HBgOnQeMdA1hMrXguRFtB52SMBxUemKovL4,1958
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=WDrU7H9sypzDAxe_CHqhW5B_scbQMzBEdf-v-Jcfd5Q,10682
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=a8fsf_Yw5igGiLhJGszlsKxTuQndfrFdStexmA4gwgE,24142
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=YQ5ftYvppRTqUto22r-XDH6-bcMO7cA-WiJ7QzPjljY,17103
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=vRHA0vlK_KA7V999ThIQ66mL562pDsANcG0w29ceLCM,18936
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=oIZpqiawohf21JZ_ib0NSAbVpVMYCwPswQ315Y6nU7g,24941
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=mCByhIyZLwDJuyeT70YShepgkkikY0pf7k6_xS93dGg,6675
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=tunDMI8EVeWlnheRUtWUPh4qTr9CpKtv9NqbMBcIv28,1806
93
- opencos_eda-0.3.9.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
94
- opencos_eda-0.3.9.dist-info/licenses/LICENSE.spdx,sha256=8gn1610RMP6eFgT3Hm6q9VKXt0RvdTItL_oxMo72jII,189
95
- opencos_eda-0.3.9.dist-info/METADATA,sha256=EUww5O4Rxx7oknCVGRHElcYkmAd2jLcpVdwSuFgBkQs,1208
96
- opencos_eda-0.3.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
97
- opencos_eda-0.3.9.dist-info/entry_points.txt,sha256=6n1T5NwVYDhN5l1h5zmyT197G4pE0SySDreB0QJzJR0,218
98
- opencos_eda-0.3.9.dist-info/top_level.txt,sha256=J4JDP-LpRyJqPNeh9bSjx6yrLz2Mk0h6un6YLmtqql4,8
99
- opencos_eda-0.3.9.dist-info/RECORD,,
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
@@ -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
@@ -1,4 +0,0 @@
1
-
2
- target_test:
3
- deps: foo.sv
4
- top: foo
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
@@ -1,4 +0,0 @@
1
-
2
- tb_no_errs: tb_no_errs.sv
3
- tb_dollar_err: tb_dollar_err.sv
4
- tb_dollar_fatal: tb_dollar_fatal.sv