digsim-logic-simulator 0.9.0__tar.gz → 0.11.0__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.

Potentially problematic release.


This version of digsim-logic-simulator might be problematic. Click here for more details.

Files changed (121) hide show
  1. {digsim_logic_simulator-0.9.0/src/digsim_logic_simulator.egg-info → digsim_logic_simulator-0.11.0}/PKG-INFO +1 -1
  2. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/pyproject.toml +1 -1
  3. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/_model_settings.py +1 -1
  4. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/_model_shortcuts.py +1 -2
  5. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/utils/_yosys_netlist.py +10 -5
  6. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0/src/digsim_logic_simulator.egg-info}/PKG-INFO +1 -1
  7. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_netlist.py +56 -1
  8. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/LICENSE.md +0 -0
  9. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/MANIFEST.in +0 -0
  10. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/README.md +0 -0
  11. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/setup.cfg +0 -0
  12. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/__init__.py +0 -0
  13. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/__main__.py +0 -0
  14. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/__init__.py +0 -0
  15. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/_circuit_area.py +0 -0
  16. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/_component_selection.py +0 -0
  17. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/_main_window.py +0 -0
  18. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/_top_bar.py +0 -0
  19. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/_utils.py +0 -0
  20. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui/_warning_dialog.py +0 -0
  21. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/__init__.py +0 -0
  22. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_bus_bit_object.py +0 -0
  23. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_buzzer_object.py +0 -0
  24. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_component_context_menu.py +0 -0
  25. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_component_object.py +0 -0
  26. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_component_port_item.py +0 -0
  27. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_dip_switch_object.py +0 -0
  28. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_gui_note_object.py +0 -0
  29. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_gui_object_factory.py +0 -0
  30. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_hexdigit_object.py +0 -0
  31. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_image_objects.py +0 -0
  32. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_label_object.py +0 -0
  33. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_logic_analyzer_object.py +0 -0
  34. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_seven_segment_object.py +0 -0
  35. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_shortcut_objects.py +0 -0
  36. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/_yosys_object.py +0 -0
  37. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/AND.png +0 -0
  38. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/Analyzer.png +0 -0
  39. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/BUF.png +0 -0
  40. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/Buzzer.png +0 -0
  41. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/Clock.png +0 -0
  42. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/DFF.png +0 -0
  43. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/DIP_SWITCH.png +0 -0
  44. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/FlipFlop.png +0 -0
  45. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/IC.png +0 -0
  46. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/LED_OFF.png +0 -0
  47. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/LED_ON.png +0 -0
  48. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/MUX.png +0 -0
  49. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/NAND.png +0 -0
  50. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/NOR.png +0 -0
  51. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/NOT.png +0 -0
  52. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/ONE.png +0 -0
  53. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/OR.png +0 -0
  54. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/PB.png +0 -0
  55. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/Switch_OFF.png +0 -0
  56. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/Switch_ON.png +0 -0
  57. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/XNOR.png +0 -0
  58. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/XOR.png +0 -0
  59. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/YOSYS.png +0 -0
  60. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/gui_objects/images/ZERO.png +0 -0
  61. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/images/app_icon.png +0 -0
  62. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/__init__.py +0 -0
  63. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/_model.py +0 -0
  64. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/_model_components.py +0 -0
  65. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/_model_new_wire.py +0 -0
  66. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/model/_model_objects.py +0 -0
  67. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/settings/__init__.py +0 -0
  68. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/settings/_component_settings.py +0 -0
  69. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/settings/_gui_settings.py +0 -0
  70. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/app/settings/_shortcut_dialog.py +0 -0
  71. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/__init__.py +0 -0
  72. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/_circuit.py +0 -0
  73. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/_waves_writer.py +0 -0
  74. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/__init__.py +0 -0
  75. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_bus_bits.py +0 -0
  76. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_button.py +0 -0
  77. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_buzzer.py +0 -0
  78. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_clock.py +0 -0
  79. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_dip_switch.py +0 -0
  80. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_flip_flops.py +0 -0
  81. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_gates.py +0 -0
  82. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_hexdigit.py +0 -0
  83. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_ic.py +0 -0
  84. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_label_wire.py +0 -0
  85. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_led.py +0 -0
  86. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_logic_analyzer.py +0 -0
  87. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_mem64kbyte.py +0 -0
  88. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_memstdout.py +0 -0
  89. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_note.py +0 -0
  90. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_on_off_switch.py +0 -0
  91. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_seven_segment.py +0 -0
  92. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_static_level.py +0 -0
  93. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_static_value.py +0 -0
  94. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_yosys_atoms.py +0 -0
  95. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/_yosys_component.py +0 -0
  96. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/atoms/__init__.py +0 -0
  97. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/atoms/_component.py +0 -0
  98. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/atoms/_digsim_exception.py +0 -0
  99. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/atoms/_port.py +0 -0
  100. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/ic/74162.json +0 -0
  101. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/circuit/components/ic/7448.json +0 -0
  102. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/storage_model/__init__.py +0 -0
  103. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/storage_model/_app.py +0 -0
  104. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/storage_model/_circuit.py +0 -0
  105. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/synth/__init__.py +0 -0
  106. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/synth/__main__.py +0 -0
  107. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/synth/_synthesis.py +0 -0
  108. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim/utils/__init__.py +0 -0
  109. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim_logic_simulator.egg-info/SOURCES.txt +0 -0
  110. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim_logic_simulator.egg-info/dependency_links.txt +0 -0
  111. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim_logic_simulator.egg-info/requires.txt +0 -0
  112. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/src/digsim_logic_simulator.egg-info/top_level.txt +0 -0
  113. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_gates.py +0 -0
  114. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_aldff.py +0 -0
  115. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_dff.py +0 -0
  116. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_dlatch.py +0 -0
  117. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_gates.py +0 -0
  118. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_latch.py +0 -0
  119. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_sdff.py +0 -0
  120. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_sr.py +0 -0
  121. {digsim_logic_simulator-0.9.0 → digsim_logic_simulator-0.11.0}/tests/test_yosys_synth.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digsim-logic-simulator
3
- Version: 0.9.0
3
+ Version: 0.11.0
4
4
  Summary: Interactive Digital Logic Simulator
5
5
  Author-email: Fredrik Andersson <freand@gmail.com>
6
6
  Maintainer-email: Fredrik Andersson <freand@gmail.com>
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "digsim-logic-simulator"
7
7
  description = "Interactive Digital Logic Simulator"
8
- version = "0.9.0"
8
+ version = "0.11.0"
9
9
  authors = [{name = "Fredrik Andersson", email = "freand@gmail.com"}]
10
10
  maintainers = [{name = "Fredrik Andersson", email = "freand@gmail.com"}]
11
11
  readme = "README.md"
@@ -27,7 +27,7 @@ class ModelSettings:
27
27
 
28
28
  def from_dict(self, circuit_dict):
29
29
  """Get settings from circuit dict"""
30
- for key, data in circuit_dict.get("settings", {}).items():
30
+ for key, data in circuit_dict.items():
31
31
  self._settings[key] = data
32
32
 
33
33
  def get(self, key):
@@ -77,10 +77,9 @@ class ModelShortcuts:
77
77
  shortcuts_dict[key] = component.name()
78
78
  return shortcuts_dict
79
79
 
80
- def from_dict(self, model_dict):
80
+ def from_dict(self, shortcuts_dict):
81
81
  """Generate shortcuts from dict"""
82
82
  self.clear()
83
- shortcuts_dict = model_dict.get("shortcuts")
84
83
  if shortcuts_dict is not None:
85
84
  for key, component_name in shortcuts_dict.items():
86
85
  component = self._app_model.objects.circuit.get_component(component_name)
@@ -88,11 +88,16 @@ class YosysModule:
88
88
 
89
89
  def is_same_interface(self, netlist):
90
90
  is_same = True
91
- for netlist_port_name, netlist_port in netlist.ports.items():
92
- module_port = self.ports.get(netlist_port_name)
93
- if module_port is None or not module_port.is_same(netlist_port):
94
- is_same = False
95
- break
91
+ if len(netlist.ports) == len(self.ports):
92
+ for netlist_port_name, netlist_port in netlist.ports.items():
93
+ module_port = self.ports.get(netlist_port_name)
94
+ if module_port is None or not module_port.is_same(netlist_port):
95
+ # Port does not exist or has a different bitwidth
96
+ is_same = False
97
+ break
98
+ else:
99
+ # The number of ports does not match
100
+ is_same = False
96
101
  return is_same
97
102
 
98
103
  def get_nets(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digsim-logic-simulator
3
- Version: 0.9.0
3
+ Version: 0.11.0
4
4
  Summary: Interactive Digital Logic Simulator
5
5
  Author-email: Fredrik Andersson <freand@gmail.com>
6
6
  Maintainer-email: Fredrik Andersson <freand@gmail.com>
@@ -61,6 +61,33 @@ netlist_dict_if_four = {
61
61
  }
62
62
  }
63
63
 
64
+ netlist_dict_if_2outports = {
65
+ "modules": {
66
+ "counter": {
67
+ "ports": {
68
+ "in_port": {"direction": "input", "bits": [2, 3, 4, 5]},
69
+ "out_port_a": {"direction": "output", "bits": [2, 3, 4, 5]},
70
+ "out_port_b": {"direction": "output", "bits": [2, 3, 4, 5]},
71
+ },
72
+ "cells": {},
73
+ }
74
+ }
75
+ }
76
+
77
+ netlist_dict_if_3outports = {
78
+ "modules": {
79
+ "counter": {
80
+ "ports": {
81
+ "in_port": {"direction": "input", "bits": [2, 3, 4, 5]},
82
+ "out_port_a": {"direction": "output", "bits": [2, 3, 4, 5]},
83
+ "out_port_b": {"direction": "output", "bits": [2, 3, 4, 5]},
84
+ "out_port_c": {"direction": "output", "bits": [2, 3, 4, 5]},
85
+ },
86
+ "cells": {},
87
+ }
88
+ }
89
+ }
90
+
64
91
 
65
92
  def test_yosys_component_create():
66
93
  """Test create YosysComponent"""
@@ -93,7 +120,7 @@ def test_yosys_component_create_reload():
93
120
  assert comp.out_port.value == 0xA
94
121
 
95
122
 
96
- def test_yosys_component_create_reload_fail():
123
+ def test_yosys_component_create_reload_fail_portwidth():
97
124
  """Test create YosysComponent - and reload changed netlist OK"""
98
125
  circuit = Circuit()
99
126
  comp = YosysComponent(circuit)
@@ -113,6 +140,34 @@ def test_yosys_component_create_reload_fail():
113
140
  comp.reload_from_netlist(yosys_netlist)
114
141
 
115
142
 
143
+ def test_yosys_component_create_reload_fail_extra_ports():
144
+ """Test create YosysComponent - and reload changed netlist OK"""
145
+ circuit = Circuit()
146
+ comp = YosysComponent(circuit)
147
+ yosys_netlist = YosysNetlist(**netlist_dict_if_2outports)
148
+ comp.create_from_netlist(yosys_netlist)
149
+
150
+ yosys_netlist = YosysNetlist(**netlist_dict_if_3outports)
151
+
152
+ # Fail due to extra port
153
+ with pytest.raises(YosysComponentException):
154
+ comp.reload_from_netlist(yosys_netlist)
155
+
156
+
157
+ def test_yosys_component_create_reload_fail_less_ports():
158
+ """Test create YosysComponent - and reload changed netlist OK"""
159
+ circuit = Circuit()
160
+ comp = YosysComponent(circuit)
161
+ yosys_netlist = YosysNetlist(**netlist_dict_if_3outports)
162
+ comp.create_from_netlist(yosys_netlist)
163
+
164
+ yosys_netlist = YosysNetlist(**netlist_dict_if_2outports)
165
+
166
+ # Fail due to extra port
167
+ with pytest.raises(YosysComponentException):
168
+ comp.reload_from_netlist(yosys_netlist)
169
+
170
+
116
171
  def test_yosys_component_create_static_levels():
117
172
  """Test create YosysComponent - with static levels"""
118
173
  netlist_dict_static = {