opencos-eda 0.2.52__py3-none-any.whl → 0.2.54__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 (44) hide show
  1. opencos/commands/__init__.py +2 -0
  2. opencos/commands/build.py +1 -1
  3. opencos/commands/deps_help.py +259 -0
  4. opencos/commands/export.py +1 -1
  5. opencos/commands/flist.py +4 -1
  6. opencos/commands/lec.py +1 -1
  7. opencos/commands/open.py +2 -0
  8. opencos/commands/proj.py +1 -1
  9. opencos/commands/shell.py +1 -1
  10. opencos/commands/sim.py +76 -8
  11. opencos/commands/synth.py +1 -1
  12. opencos/commands/upload.py +3 -0
  13. opencos/commands/waves.py +1 -0
  14. opencos/deps/defaults.py +1 -0
  15. opencos/deps/deps_file.py +30 -4
  16. opencos/deps/deps_processor.py +72 -2
  17. opencos/deps_schema.py +3 -0
  18. opencos/eda.py +50 -26
  19. opencos/eda_base.py +177 -33
  20. opencos/eda_config.py +1 -1
  21. opencos/eda_config_defaults.yml +49 -3
  22. opencos/eda_extract_targets.py +1 -58
  23. opencos/tests/helpers.py +16 -0
  24. opencos/tests/test_eda.py +14 -3
  25. opencos/tests/test_tools.py +159 -132
  26. opencos/tools/cocotb.py +15 -14
  27. opencos/tools/iverilog.py +4 -24
  28. opencos/tools/modelsim_ase.py +70 -57
  29. opencos/tools/quartus.py +680 -0
  30. opencos/tools/questa.py +158 -90
  31. opencos/tools/questa_fse.py +10 -0
  32. opencos/tools/riviera.py +1 -0
  33. opencos/tools/verilator.py +9 -15
  34. opencos/tools/vivado.py +30 -23
  35. opencos/util.py +89 -15
  36. opencos/utils/status_constants.py +1 -0
  37. opencos/utils/str_helpers.py +85 -0
  38. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/METADATA +1 -1
  39. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/RECORD +44 -42
  40. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/WHEEL +0 -0
  41. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/entry_points.txt +0 -0
  42. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/licenses/LICENSE +0 -0
  43. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/licenses/LICENSE.spdx +0 -0
  44. {opencos_eda-0.2.52.dist-info → opencos_eda-0.2.54.dist-info}/top_level.txt +0 -0
@@ -9,6 +9,7 @@ PYTHON_EXCEPTION = 1
9
9
 
10
10
  EDA_DEPS_FILE_NOT_FOUND = 10
11
11
  EDA_DEPS_TARGET_NOT_FOUND = 11
12
+ EDA_GENERAL_FILE_NOT_FOUND = 12
12
13
 
13
14
  EDA_COMMAND_OR_ARGS_ERROR = 20
14
15
  EDA_CONFIG_ERROR = 21
@@ -1,10 +1,21 @@
1
1
  '''opencos.utils.str_helpers -- Various str helpers for printing, indenting'''
2
2
 
3
3
  import fnmatch
4
+ import os
4
5
  import re
5
6
  import shlex
6
7
  import textwrap
7
8
 
9
+ VALID_TARGET_INFO_STR = (
10
+ "should start with an underscore/letter, rest should be alpha-numeric, dashes, or underscores."
11
+ )
12
+
13
+ def is_valid_target_name(s: str) -> bool:
14
+ '''Returns True if str starts with underscore/letter, rest alphanum, dash, or underscores'''
15
+ if not s or not (s[0].isalpha() or s[0] == '_'):
16
+ return False
17
+ return s.replace('_', '').replace('-', '').isalnum()
18
+
8
19
  def strip_all_quotes(s: str) -> str:
9
20
  '''Returns str with all ' and " removed'''
10
21
  return s.replace("'", '').replace('"', '')
@@ -109,3 +120,77 @@ def fnmatch_or_re(pattern: str, string: str) -> bool:
109
120
  # could have been an illegal/unsupported regex, so don't match.
110
121
  pass
111
122
  return any(matches)
123
+
124
+
125
+ def get_terminal_columns():
126
+ """
127
+ Retrieves the number of columns (width) of the terminal window.
128
+
129
+ Returns:
130
+ int: The number of columns in the terminal, or a default value (e.g., 80)
131
+ if the terminal size cannot be determined.
132
+ """
133
+ try:
134
+ size = os.get_terminal_size()
135
+ return size.columns
136
+ except OSError:
137
+ # Handle cases where the terminal size cannot be determined (e.g., not in a TTY)
138
+ return 80 # Default to 80 columns
139
+
140
+ return 80 # else default to 80.
141
+
142
+
143
+ def pretty_list_columns_manual(data: list, num_columns: int = 4, auto_columns: bool = True) -> list:
144
+ """Returns list, from list of str, organized into columns, manually aligning them."""
145
+
146
+ ret_lines = []
147
+ if not data:
148
+ return ret_lines
149
+
150
+ _spacing = 2
151
+
152
+ # Calculate maximum width for each column
153
+ max_lengths = [0] * num_columns
154
+ max_item_len = 0
155
+ for i, item in enumerate(data):
156
+ col_index = i % num_columns
157
+ max_lengths[col_index] = max(max_lengths[col_index], len(item))
158
+ max_item_len = max(max_item_len, len(item))
159
+
160
+ if auto_columns and num_columns > 1:
161
+ window_cols = get_terminal_columns()
162
+ max_line_len = 0
163
+ for x in max_lengths:
164
+ max_line_len += x + _spacing
165
+ if max_line_len > window_cols:
166
+ # subtract a column (already >= 2):
167
+ ret_lines.extend(
168
+ pretty_list_columns_manual(data=data, num_columns=num_columns-1, auto_columns=True)
169
+ )
170
+ return ret_lines
171
+ if max_line_len + max_item_len + _spacing < window_cols:
172
+ # add 1 more column if we're guaranteed to have room.
173
+ ret_lines.extend(
174
+ pretty_list_columns_manual(data=data, num_columns=num_columns+1, auto_columns=True)
175
+ )
176
+ return ret_lines
177
+ # else continue
178
+
179
+ # Print data in columns
180
+ ret_lines.append('')
181
+ for i, item in enumerate(data):
182
+ col_index = i % num_columns
183
+ ret_lines[-1] += str(item).ljust(max_lengths[col_index] + _spacing)
184
+ if col_index == num_columns - 1 or i == len(data) - 1:
185
+ ret_lines.append('')
186
+
187
+ return ret_lines
188
+
189
+
190
+ def print_columns_manual(data: list, num_columns: int = 4, auto_columns: bool = True) -> None:
191
+ """Prints a list of strings in columns, manually aligning them."""
192
+
193
+ lines = pretty_list_columns_manual(
194
+ data=data, num_columns=num_columns, auto_columns=auto_columns
195
+ )
196
+ print('\n'.join(lines))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opencos-eda
3
- Version: 0.2.52
3
+ Version: 0.2.54
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,16 +1,16 @@
1
1
  opencos/__init__.py,sha256=RwJA9oc1uUlvNX7v5zoqwjnSRNq2NZwRlHqtS-ICJkI,122
2
2
  opencos/_version.py,sha256=XiHFZjCofkkZvI9befTFKsRt5zLouUo1CIwhW4srWU0,582
3
3
  opencos/_waves_pkg.sv,sha256=1lbhQOVGc3t_R8czYjP40hssP0I3FlZOpHTkI7yKFbI,1251
4
- opencos/deps_schema.py,sha256=pdJpKmfXxCYZsfXTxsnACw-s6Mzk55QH06ZSA5uqPV0,15454
5
- opencos/eda.py,sha256=bK5wX9EUib7UkIR0LcM_kGBjv_eGxjBBYjYkutYLTgI,21501
6
- opencos/eda_base.py,sha256=q0uKEzAMzLmqb4jMBcGv7rTpdKnfrhnMZo7MyB8YN8Y,95706
7
- opencos/eda_config.py,sha256=R6tbcuBJWA0vv1s9K_L928EVbjhv-lqDFLZqk_UGe9w,11382
8
- opencos/eda_config_defaults.yml,sha256=dy5MKm5wbam8aT39frSLbJJm6LPJpoeI7PO_XOpt27A,13147
4
+ opencos/deps_schema.py,sha256=5QLN2OQdhbfxHqbqt4Ty-Saskh-z_h9m9qfWqB8kZ9U,15691
5
+ opencos/eda.py,sha256=kz4jSYBANXdbNGH3DmE9v_jU2p_NkI2tT6aBslcYtcQ,22248
6
+ opencos/eda_base.py,sha256=DX0RHiJq84T_4LpcC7zQD5cCuDHfLrWzk7lkXBWfeP8,101892
7
+ opencos/eda_config.py,sha256=XgO2YKUWSL7TAFo-V4h4xqNO3Z1Ug4JI-W8LvzD-kGQ,11407
8
+ opencos/eda_config_defaults.yml,sha256=-2ISGkktUo-O5hzju_KxNGr9oyRL9iYQ4OKRzImgCsQ,15284
9
9
  opencos/eda_config_max_verilator_waivers.yml,sha256=lTAU4IOEbUWVlPzuer1YYhIyxpPINeA4EJqcRIT-Ymk,840
10
10
  opencos/eda_config_reduced.yml,sha256=cQ9jY4J7EvAbeHTiP6bvpDSVJAYiitjLZPSxxLKIEbk,1440
11
11
  opencos/eda_deps_bash_completion.bash,sha256=jMkQKY82HBgOnQeMdA1hMrXguRFtB52SMBxUemKovL4,1958
12
12
  opencos/eda_deps_sanitize.py,sha256=SQjvrte9Hv9JesRY0wljvbdC6pAmLCikI-Wdzzy-D04,1939
13
- opencos/eda_extract_targets.py,sha256=dvBjc2qFBJkwlW6Fm-66Y_vlr0VZL1QwfIosMR_bgbY,4814
13
+ opencos/eda_extract_targets.py,sha256=POlxZfqf2dNH2nc1CEw5B_53vSHAicSTkpU9_-2_6Zw,2851
14
14
  opencos/eda_tool_helper.py,sha256=_YgobDLEWW6Fzdr976LxaCDZ4DKRyuMs5CrYQHaTPrU,2558
15
15
  opencos/export_helper.py,sha256=ArsM8qxBc08gj9S-UholGU417POfBYb_cHkBQZEfqfI,22046
16
16
  opencos/export_json_convert.py,sha256=tSIMbLFtc_Fo66EhFovMii1v_qJYyFZJrPNnoPdW7L0,4182
@@ -18,42 +18,43 @@ opencos/files.py,sha256=aoq0O2KfISzZb-Vi_q_0TTGBER9xJc--FkVZf0ga7pA,1549
18
18
  opencos/names.py,sha256=iC37PV7Pz0PicTDg09vbQ9NXAj-5m6RKrWHkkcHB8As,1145
19
19
  opencos/peakrdl_cleanup.py,sha256=vHNGtalTrIVP335PhRjPt9RhoccgpK1HJAi-E4M8Kc8,736
20
20
  opencos/seed.py,sha256=IL9Yg-r9SLSRseMVWaEHmuw2_DNi_eyut11EafoNTsU,942
21
- opencos/util.py,sha256=L36MM2cqR0xWbs617AJN52JvrTkrgggELHG3Y3s2jPI,34089
22
- opencos/commands/__init__.py,sha256=DtOA56oWJu68l-_1_7Gdv0N-gtXVB3-p9IhGzAYex8U,1014
23
- opencos/commands/build.py,sha256=jI5ul53qfwn6X-yfSdSQIcLBhGtzZUk7r_wKBBmKJI0,1425
21
+ opencos/util.py,sha256=03b2JP80NDXksNTwShMRamnTVb1C2gUfrPYBDL40pHA,37565
22
+ opencos/commands/__init__.py,sha256=TtfbQgmdSTGDZzTrl1ASx7pxY3jaXyK6aTtOng0x-O8,1076
23
+ opencos/commands/build.py,sha256=hvjrvg7AbEotuQze6-yz3DOYRMtagkvJ-6TFNJQTwrs,1441
24
+ opencos/commands/deps_help.py,sha256=WDrU7H9sypzDAxe_CHqhW5B_scbQMzBEdf-v-Jcfd5Q,10682
24
25
  opencos/commands/elab.py,sha256=m6Gk03wSzX8UkcmReooK7turF7LpqO0IcdOZwJ8XiyI,1596
25
- opencos/commands/export.py,sha256=juzxJL5-RpEnU5DmwF0fiG5pUrB2BbUbvCp2OasEd88,3494
26
- opencos/commands/flist.py,sha256=OUu_ewTDLkZqdW4547iRrwOhT4ghm8oMYHsA63yChvo,8551
27
- opencos/commands/lec.py,sha256=mIrMKFEZrFYIzvBdffcIyVULx04Cu4-480FB4Y1EiTA,3863
26
+ opencos/commands/export.py,sha256=dpTcrtPjIt6TOw-i8LUWhb4ismFAE1QK-dNAHC1jxME,3510
27
+ opencos/commands/flist.py,sha256=x3VVarCVlz2kFJI5rQ8UsZzzas32j4zQKgzXGIozKwE,8638
28
+ opencos/commands/lec.py,sha256=bshOs_GkuB1nCGd_SntT43_XpSYQYJqNCjVZp6Q1Chc,3879
28
29
  opencos/commands/multi.py,sha256=dCo4rMIkGT3BtlBhUIAd7r31w8qxeJvybpl4H7DR77o,27225
29
- opencos/commands/open.py,sha256=unrpGckzg0FE5W3oARq8x0jX7hhV_uM9Oh5FgISHFAg,724
30
- opencos/commands/proj.py,sha256=MdHTOtQYG93_gT97dWuSyAgUxX2vi9FRhL0dtc-rM98,1096
31
- opencos/commands/shell.py,sha256=0SNxiNRPD1BO6dK0yxU_iV-8S9UyF4GOWGLL1A_KeVs,7583
32
- opencos/commands/sim.py,sha256=WPkn_lZqgMPSQTxxT4Qa0qHKMmdHAkt1GXCDw4iD6kI,14723
30
+ opencos/commands/open.py,sha256=XckvKUNwvc5KHbYGV-eQ2i0WG4X-yckroDaMC610MB4,804
31
+ opencos/commands/proj.py,sha256=vCsZle3oUJ8xmIFuepgAD6G-YGl35xtTIcTeiVDshNo,1112
32
+ opencos/commands/shell.py,sha256=dFXXtvsDs3Khme41du8LhKdV3qRosxjTfju6SJbOSKM,7599
33
+ opencos/commands/sim.py,sha256=0FV7ODiHFyJJjVBEb3WuTKNubxB0DYGNqpZqnLP_-Hw,18038
33
34
  opencos/commands/sweep.py,sha256=ni4XFgnFF8HLXtwPhETyLWfvc2kgtm4bcxFcKzUhkf0,9343
34
- opencos/commands/synth.py,sha256=quB-HWS4LKYTiFBHiYarQi4pMnRmt12wQTZpi14VvlE,4355
35
+ opencos/commands/synth.py,sha256=tuxWmxMNmE9hveWXGNfKDelzxi_wK7ZL7V2LiZV6Ypg,4371
35
36
  opencos/commands/targets.py,sha256=_jRNhm2Fqj0fmMvTw6Ba39DCsRHf_r_uZCy_R064kpA,1472
36
- opencos/commands/upload.py,sha256=nlb4nlxrDCQPcabEmH3nP19g4PFILDqFDab4LwJ95Z4,796
37
- opencos/commands/waves.py,sha256=s8xYyNFBDqUtGdpioVIHWDKE4ZSnY6e1gdZNIm7yXBE,7654
37
+ opencos/commands/upload.py,sha256=oyImgcEFGxDkdeY9EYyX2R6fTOmN-lTs-HYxAZqXUUo,871
38
+ opencos/commands/waves.py,sha256=nrp3ALwfJujZns44tgCgia_dEedQyKe0T3fuws8h39U,7697
38
39
  opencos/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- opencos/deps/defaults.py,sha256=4VgTRXf0hSJrj4tMk0t-mmvgEaaQQFDIYrxWrcKfYWk,1241
40
+ opencos/deps/defaults.py,sha256=jG971rCDveja8NkY3uKcBYY-cnXsW_thqGRy19TWe1Q,1262
40
41
  opencos/deps/deps_commands.py,sha256=OlqueYFK8U83loasok3xJGzUDpNcj2DPk37332DfmRo,17039
41
- opencos/deps/deps_file.py,sha256=29UkOT-UYw5XYYRK7DySmZkgdTj4wnxVQ5SgZVnrrds,15199
42
- opencos/deps/deps_processor.py,sha256=NYGBrBAmk7ltrvxsEhv76Kpp76GBRJqeNNY_ckWf5mE,33028
42
+ opencos/deps/deps_file.py,sha256=blqrN7wgOa5x_ldFC3tn2kCR4VStTEmMdXlePwyMwE4,16268
43
+ opencos/deps/deps_processor.py,sha256=uO2NqQvi1iCRCO1pTS-ns-rET15FK3lsR6AjFrhPjUM,36209
43
44
  opencos/hw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
45
  opencos/hw/oc_cli.py,sha256=QBmf05VooB9kQFzgliak7PEvqVLTSEI3v6deV1OZQEs,132252
45
46
  opencos/hw/pcie.py,sha256=VUJljaZJYgScAAx5yn7F6GoA8K9eTcw24otYZbkMpYs,3035
46
47
  opencos/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
48
  opencos/tests/custom_config.yml,sha256=TRoVM9ZFKPOA_8JmlpzaMhnGO1txmaD14N_8P1oqzew,257
48
- opencos/tests/helpers.py,sha256=T621N2TPuqSg_kPeU2WbuP9oES_1RQ1poCHlOtVXyGo,8921
49
+ opencos/tests/helpers.py,sha256=HdsARZK0KsGou2SRV30fBALV674bsST37ldpT-gI6q8,9512
49
50
  opencos/tests/test_build.py,sha256=FQAxOpLVQShAHD_L5rqJctPeSAoqoOCNFI0RXflLuY0,387
50
51
  opencos/tests/test_deps_helpers.py,sha256=f9GJXvzcdE3SGkKJ7q-YBTgRagZcIzeRa6nMVCCiEvI,7848
51
52
  opencos/tests/test_deps_schema.py,sha256=T3P9KjaMyKsk8b7snNVvNSsom2hIJcg6Z9apYiXoH9Y,941
52
- opencos/tests/test_eda.py,sha256=bg7SjSVCJSJ2lk51ddfjuVckMOps6_HU-3tCwAIRO7c,39198
53
+ opencos/tests/test_eda.py,sha256=cdxfLCUZq0nNelCQiplZXkeF4eyzmyJlZJFDSo77qeI,39464
53
54
  opencos/tests/test_eda_elab.py,sha256=VyYiaLLyfJi26FkoN9p_Kb9cMHfY-0u_0Mx1iVpsg-I,2657
54
55
  opencos/tests/test_eda_synth.py,sha256=LOM8CKpNyjka_sKS2c00YObOAQeVgpRmuM12Bn-PHqU,5234
55
56
  opencos/tests/test_oc_cli.py,sha256=w-F-LjSSWVql3D2WG8tcV4_C52i-hL_2WT3oDpKQn9s,734
56
- opencos/tests/test_tools.py,sha256=1x6zaDhhkkzcKpZjCdWqzYJPzrK_pnqBeUWiuy8cqAg,12128
57
+ opencos/tests/test_tools.py,sha256=-WMpDZexAgko0FAcfiuASqSKNNL0Mr1ztag05808Upc,13735
57
58
  opencos/tests/deps_files/command_order/DEPS.yml,sha256=vloOzWZ5qU3yGNFaDlrAJdEzYxK6qf8gfac3zqF-0FI,438
58
59
  opencos/tests/deps_files/error_msgs/DEPS.yml,sha256=fYvHouIscOlr8V28bqx9SoxRBpDBLX4AG-AkVXh8qbo,717
59
60
  opencos/tests/deps_files/iverilog_test/DEPS.yml,sha256=vDylEuLt642lhRSvOr3F5ziB5lhPSwkaUGN4_mWJw-c,40
@@ -62,33 +63,34 @@ opencos/tests/deps_files/non_sv_reqs/DEPS.yml,sha256=VZkahO1AKhD9GUV5lK8VwUONEi5
62
63
  opencos/tests/deps_files/tags_with_tools/DEPS.yml,sha256=-5U1qfJElgpVhmkLEu3lYuvDYva8kDlt6JOdB9jidmc,1377
63
64
  opencos/tests/deps_files/test_err_fatal/DEPS.yml,sha256=GnXIUJvshQWR9PlYxX67T53ejf5KhDbtD8sUJB4Rwd0,95
64
65
  opencos/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- opencos/tools/cocotb.py,sha256=0AzT2pJWKwepZMT_hlgYYMV_Fr3Qr4gH7BgMDtNuLK0,16614
66
+ opencos/tools/cocotb.py,sha256=vcp9wLlmgr6dLBnxEuJJyMjJIorIo96J0Z63tJwP-eE,16759
66
67
  opencos/tools/invio.py,sha256=q9E9n6xsozDfar-1rLvJEZbCpPb_bQEy6WKEI3KS3dk,3163
67
68
  opencos/tools/invio_helpers.py,sha256=1au4CYmV5aC7DHjaZBNemydH6Eq0i-Yt5L3HyKfQOfY,7638
68
69
  opencos/tools/invio_yosys.py,sha256=asSjbdPjBXB76KxNZIhoDRn2DoXKsZEQ1YDX_WBzKiA,6019
69
- opencos/tools/iverilog.py,sha256=KQV5tiRdM0ZuJOO0q3ZeUmhRyEc-oJggOc6RKIjoH84,6482
70
- opencos/tools/modelsim_ase.py,sha256=rW5YrzLIhZKdbIT2UM60DGmDEHDK3XMlndpBz906cmA,14229
71
- opencos/tools/questa.py,sha256=bXH_ajMUBBHNUeWTBNWDp2gGyza2vf8xIC6vz5EWiz8,7619
72
- opencos/tools/questa_fse.py,sha256=WLNvkD57ggI7lQgxYr6h_xmXenh50J_m8o8amhECmpk,1855
73
- opencos/tools/riviera.py,sha256=0FKAUvgyUHvJ5z0LOjHV9p3dGF8LI5kj5WLOZXgCDas,10695
70
+ opencos/tools/iverilog.py,sha256=tnwhOT_WjnUKf4ioei-xmclM2xDTRnN0DrkxIKwsfnc,5926
71
+ opencos/tools/modelsim_ase.py,sha256=auBTdgBhbU2n92L0ezLUpppyE5z86Ci2-0hgDL_oNoc,14885
72
+ opencos/tools/quartus.py,sha256=Iu4zw34OCKlERMyJ9GRwaAuRDeBHG_ApvJATvyII-68,27516
73
+ opencos/tools/questa.py,sha256=5dr1LF7m5P1NmOPXU0hzMO0o0_RrXLDvc1gmhlwyEyU,9446
74
+ opencos/tools/questa_fse.py,sha256=lqhW49YpbzhkOGWG-0EjITj-RMyy8IgWYoaW9UtjxK8,2194
75
+ opencos/tools/riviera.py,sha256=D78anIJ_GnQ4aRwbWfR2QUslTgF38qiZod7v-EHLHg0,10716
74
76
  opencos/tools/slang.py,sha256=mFw58vhnCTRR9yaQ2zHPlNB5HKSf3Y078XcaVnpLaAc,7798
75
77
  opencos/tools/slang_yosys.py,sha256=3fyLRRdTXhSppNtUhhUl00oG-cT9TyyPTH6JvasS9ZE,9804
76
78
  opencos/tools/surelog.py,sha256=dtj3ApAKoQasnGdg42n9DPgeqoJ5nCuurIkIO3G5ZCY,5011
77
79
  opencos/tools/tabbycad_yosys.py,sha256=2LePPgYXBVdsy7YcffPIWN-I0B7queLQ_f_pme2SCGw,7803
78
- opencos/tools/verilator.py,sha256=dIhrvLH9hHiTV_DWQbMNlAjolKctCbBMO9u9V7yAHuE,21400
79
- opencos/tools/vivado.py,sha256=roM0MxrHoNIT_DsUiql1vQFlez2ql4qhwAfB-rGH4Qg,40485
80
+ opencos/tools/verilator.py,sha256=ACmRXJyE8ZGlu7gGHdgEyk8A5gQeMFSR1pBd8zw9eQc,20767
81
+ opencos/tools/vivado.py,sha256=TEMIYSVCdEASu2fixFuKIwDbb3r_25Ns-8YyUVEz-eg,40611
80
82
  opencos/tools/yosys.py,sha256=UKWzvc2rSi3J9U2TROqRbmePdBmjskap664giumeRBk,26323
81
83
  opencos/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
84
  opencos/utils/markup_helpers.py,sha256=A8Ev5UJ4EVKjdcF2g85SQbjdPZR4jGpNqCLaBy_4v7Q,4569
83
- opencos/utils/status_constants.py,sha256=aQui30ohPCEaWNDh2iujJQ_KQa3plry_rk7uDzS3vWk,603
84
- opencos/utils/str_helpers.py,sha256=DOkwfKJR6aENM3U2BkJ41ELDU5Uj_zyhEfxuaQEcpEY,3352
85
+ opencos/utils/status_constants.py,sha256=na6YsqlsCwIYzTXWE14dPadUYRNTrOS6YTXHCer2NbA,635
86
+ opencos/utils/str_helpers.py,sha256=1VUBL9Q09eBDpTvLarhaQoJOLoi3IKOaFy2FHvKevEU,6270
85
87
  opencos/utils/subprocess_helpers.py,sha256=xemAGPey6M0sWY_FElvr-Z0phCfdjaC-znP8FKihPaE,3535
86
88
  opencos/utils/vscode_helper.py,sha256=2YPjcDH_vTlwJvcITyMfvx8dLzPSRKzAvFRJz7BaJk8,1332
87
89
  opencos/utils/vsim_helper.py,sha256=2voGRZI2iAQ2Pv2ZI5g2why6xpgig-To8im-LVXtuDU,1517
88
- opencos_eda-0.2.52.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
89
- opencos_eda-0.2.52.dist-info/licenses/LICENSE.spdx,sha256=8gn1610RMP6eFgT3Hm6q9VKXt0RvdTItL_oxMo72jII,189
90
- opencos_eda-0.2.52.dist-info/METADATA,sha256=NLxBxJ0aSl6Vfizn3tZqnskXn6VuWpDSdZQdKb4BGig,635
91
- opencos_eda-0.2.52.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
92
- opencos_eda-0.2.52.dist-info/entry_points.txt,sha256=6n1T5NwVYDhN5l1h5zmyT197G4pE0SySDreB0QJzJR0,218
93
- opencos_eda-0.2.52.dist-info/top_level.txt,sha256=J4JDP-LpRyJqPNeh9bSjx6yrLz2Mk0h6un6YLmtqql4,8
94
- opencos_eda-0.2.52.dist-info/RECORD,,
90
+ opencos_eda-0.2.54.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
91
+ opencos_eda-0.2.54.dist-info/licenses/LICENSE.spdx,sha256=8gn1610RMP6eFgT3Hm6q9VKXt0RvdTItL_oxMo72jII,189
92
+ opencos_eda-0.2.54.dist-info/METADATA,sha256=Gn37sKvN_THH6F5LkbyNTe0b1RSgTtQIYy9oCUyodyg,635
93
+ opencos_eda-0.2.54.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
94
+ opencos_eda-0.2.54.dist-info/entry_points.txt,sha256=6n1T5NwVYDhN5l1h5zmyT197G4pE0SySDreB0QJzJR0,218
95
+ opencos_eda-0.2.54.dist-info/top_level.txt,sha256=J4JDP-LpRyJqPNeh9bSjx6yrLz2Mk0h6un6YLmtqql4,8
96
+ opencos_eda-0.2.54.dist-info/RECORD,,