digsim-logic-simulator 0.11.0__py3-none-any.whl → 0.13.0__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.
Potentially problematic release.
This version of digsim-logic-simulator might be problematic. Click here for more details.
- digsim/app/__main__.py +16 -12
- digsim/app/gui/_circuit_area.py +32 -21
- digsim/app/gui/_component_selection.py +2 -0
- digsim/app/gui_objects/__init__.py +1 -1
- digsim/app/gui_objects/_buzzer_object.py +7 -12
- digsim/app/gui_objects/_component_context_menu.py +1 -1
- digsim/app/gui_objects/_component_object.py +10 -9
- digsim/app/gui_objects/_component_port_item.py +0 -2
- digsim/app/gui_objects/_dip_switch_object.py +5 -4
- digsim/app/gui_objects/_gui_note_object.py +10 -11
- digsim/app/gui_objects/_gui_object_factory.py +1 -1
- digsim/app/gui_objects/_image_objects.py +7 -5
- digsim/app/gui_objects/_label_object.py +3 -2
- digsim/app/gui_objects/_logic_analyzer_object.py +18 -9
- digsim/app/gui_objects/_seven_segment_object.py +10 -3
- digsim/app/gui_objects/_shortcut_objects.py +3 -2
- digsim/app/model/_model.py +7 -3
- digsim/app/model/_model_components.py +1 -4
- digsim/app/model/_model_new_wire.py +2 -1
- digsim/app/model/_model_objects.py +1 -5
- digsim/app/model/_model_settings.py +1 -1
- digsim/app/model/_model_shortcuts.py +0 -14
- digsim/app/settings/_component_settings.py +1 -1
- digsim/app/settings/_shortcut_dialog.py +3 -4
- digsim/circuit/_circuit.py +52 -38
- digsim/circuit/components/_button.py +1 -5
- digsim/circuit/components/_yosys_component.py +1 -1
- digsim/circuit/components/atoms/__init__.py +1 -0
- digsim/circuit/components/atoms/_component.py +14 -4
- digsim/circuit/components/atoms/_port.py +45 -29
- digsim/storage_model/_app.py +7 -2
- digsim/storage_model/_circuit.py +15 -7
- digsim/synth/__main__.py +2 -2
- digsim/synth/_synthesis.py +26 -1
- digsim/utils/_yosys_netlist.py +9 -3
- {digsim_logic_simulator-0.11.0.dist-info → digsim_logic_simulator-0.13.0.dist-info}/METADATA +1 -1
- {digsim_logic_simulator-0.11.0.dist-info → digsim_logic_simulator-0.13.0.dist-info}/RECORD +40 -40
- {digsim_logic_simulator-0.11.0.dist-info → digsim_logic_simulator-0.13.0.dist-info}/WHEEL +0 -0
- {digsim_logic_simulator-0.11.0.dist-info → digsim_logic_simulator-0.13.0.dist-info}/licenses/LICENSE.md +0 -0
- {digsim_logic_simulator-0.11.0.dist-info → digsim_logic_simulator-0.13.0.dist-info}/top_level.txt +0 -0
digsim/utils/_yosys_netlist.py
CHANGED
|
@@ -7,12 +7,15 @@ Module with classes to parse a yosys netlist
|
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
|
-
from typing import Any, Optional, Union
|
|
10
|
+
from typing import Any, Literal, Optional, Union
|
|
11
11
|
|
|
12
12
|
from pydantic import Field
|
|
13
13
|
from pydantic.dataclasses import dataclass
|
|
14
14
|
|
|
15
15
|
|
|
16
|
+
BIT_TYPE = list[Union[int, Literal["X"], Literal["0"], Literal["1"]]]
|
|
17
|
+
|
|
18
|
+
|
|
16
19
|
@dataclass
|
|
17
20
|
class NetPort:
|
|
18
21
|
parent: Union[YosysModule, YosysCell]
|
|
@@ -30,7 +33,7 @@ class Nets:
|
|
|
30
33
|
@dataclass
|
|
31
34
|
class YosysPort:
|
|
32
35
|
direction: str
|
|
33
|
-
bits:
|
|
36
|
+
bits: BIT_TYPE
|
|
34
37
|
|
|
35
38
|
@property
|
|
36
39
|
def is_output(self):
|
|
@@ -46,13 +49,16 @@ class YosysPort:
|
|
|
46
49
|
class YosysCell:
|
|
47
50
|
type: str
|
|
48
51
|
port_directions: dict[str, str] = Field(default_factory=dict)
|
|
49
|
-
connections: dict[str,
|
|
52
|
+
connections: dict[str, BIT_TYPE] = Field(default_factory=dict)
|
|
50
53
|
hide_name: int = 0
|
|
51
54
|
parameters: dict[str, Any] = Field(default_factory=dict)
|
|
52
55
|
attributes: dict[str, Any] = Field(default_factory=dict)
|
|
53
56
|
|
|
54
57
|
def get_nets(self, name, nets):
|
|
55
58
|
for port_name, net_list in self.connections.items():
|
|
59
|
+
if not net_list:
|
|
60
|
+
# Handle empty net_list, e.g., by skipping or raising an error
|
|
61
|
+
continue
|
|
56
62
|
net = net_list[0]
|
|
57
63
|
port = NetPort(parent=self, parent_name=name, name=port_name)
|
|
58
64
|
if self.port_directions[port_name] == "input":
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
digsim/__init__.py,sha256=UB-i1HtNR6rIX4_SClZp-lM4njGa7_1sbMvd14NuyAs,149
|
|
2
|
-
digsim/app/__main__.py,sha256=
|
|
2
|
+
digsim/app/__main__.py,sha256=NEFAyYe4OTP7Ayvry8WTRRjPBhDbtOLGhGH28mjhkbQ,1511
|
|
3
3
|
digsim/app/gui/__init__.py,sha256=-HnN8a-AcDcovbCHf1a_R-sQtW2_tQXnPJ3izyKLOjw,165
|
|
4
|
-
digsim/app/gui/_circuit_area.py,sha256=
|
|
5
|
-
digsim/app/gui/_component_selection.py,sha256=
|
|
4
|
+
digsim/app/gui/_circuit_area.py,sha256=zwQ2tVujriY2DdQI4Jy7anebh0Ul5od99HDDphZQTdo,16590
|
|
5
|
+
digsim/app/gui/_component_selection.py,sha256=7D4B1yEMm2zt_VlBqmScBbLpsYgZczmOVZ5McX3QTWo,6590
|
|
6
6
|
digsim/app/gui/_main_window.py,sha256=X0AIh3m1ySaldgYr3MHddRSqVkNdWl_qNJOIdnv2mNA,5275
|
|
7
7
|
digsim/app/gui/_top_bar.py,sha256=HWGiWTKjYz3yRJ4K1tbMyVxhTC-Y6LEiREr6nHMAhKE,13067
|
|
8
8
|
digsim/app/gui/_utils.py,sha256=SSbe4B-trgZpaerPZilAaZYeqMOlFZMuufTth8KyOAg,660
|
|
9
9
|
digsim/app/gui/_warning_dialog.py,sha256=N9G2wyQTyiqMnTtbExMzHgdbCBA0epfhNWY4GVF6xH8,1496
|
|
10
|
-
digsim/app/gui_objects/__init__.py,sha256=
|
|
10
|
+
digsim/app/gui_objects/__init__.py,sha256=bmNDwRvjHgQG05TiUiwso4PDkad328TX53mWzzt6bYM,243
|
|
11
11
|
digsim/app/gui_objects/_bus_bit_object.py,sha256=Q8oW-bAGLRAvR2-8PxyHL4M68FLKFgNpDiL4E7BPUOQ,3059
|
|
12
|
-
digsim/app/gui_objects/_buzzer_object.py,sha256=
|
|
13
|
-
digsim/app/gui_objects/_component_context_menu.py,sha256=
|
|
14
|
-
digsim/app/gui_objects/_component_object.py,sha256=
|
|
15
|
-
digsim/app/gui_objects/_component_port_item.py,sha256=
|
|
16
|
-
digsim/app/gui_objects/_dip_switch_object.py,sha256=
|
|
17
|
-
digsim/app/gui_objects/_gui_note_object.py,sha256=
|
|
18
|
-
digsim/app/gui_objects/_gui_object_factory.py,sha256=
|
|
12
|
+
digsim/app/gui_objects/_buzzer_object.py,sha256=FAG1Qk-O5eTsw_7Qv9q6kN6Lpa9twzRP_hPHv1LH9Gg,3289
|
|
13
|
+
digsim/app/gui_objects/_component_context_menu.py,sha256=LOuOjDPGHKKKInYUxSLsXeFANZgRxGscs5SEjx-yIq8,2819
|
|
14
|
+
digsim/app/gui_objects/_component_object.py,sha256=2w-l509yoS83k7g9NB3BlTm34_t4CGPKyOQtwPWCfvU,13323
|
|
15
|
+
digsim/app/gui_objects/_component_port_item.py,sha256=W0TYEitSXmJZYuYkWEgEKlBPVUvJ4EmNkKQgVWpR_Zw,2041
|
|
16
|
+
digsim/app/gui_objects/_dip_switch_object.py,sha256=GQ2jTA5cH1hOfLGUC4B3AnS_cWYMVdF-eCq-N2wmFfk,3636
|
|
17
|
+
digsim/app/gui_objects/_gui_note_object.py,sha256=4u0qQi3pN8ELfguJ5UVMLCG_Hha_NKhY74u1Tlpg9yM,2587
|
|
18
|
+
digsim/app/gui_objects/_gui_object_factory.py,sha256=LaSDm8xe6CbB_RD3TaizGi455v-tr0Q2DX0LIJ1Z4l0,2461
|
|
19
19
|
digsim/app/gui_objects/_hexdigit_object.py,sha256=cCxxpcSRLXRFNLIfrY_AUBGOSVIjRjO3HAuOv7wXGkI,1930
|
|
20
|
-
digsim/app/gui_objects/_image_objects.py,sha256=
|
|
21
|
-
digsim/app/gui_objects/_label_object.py,sha256=
|
|
22
|
-
digsim/app/gui_objects/_logic_analyzer_object.py,sha256=
|
|
23
|
-
digsim/app/gui_objects/_seven_segment_object.py,sha256=
|
|
24
|
-
digsim/app/gui_objects/_shortcut_objects.py,sha256=
|
|
20
|
+
digsim/app/gui_objects/_image_objects.py,sha256=59DJvfQ33XThpFtNROeWxvXminioVE-xNQ_IJNGi39w,7677
|
|
21
|
+
digsim/app/gui_objects/_label_object.py,sha256=tAreG5OBROFb5LspdLWl61nUX_XKTVGoxSdOjtySkE8,3580
|
|
22
|
+
digsim/app/gui_objects/_logic_analyzer_object.py,sha256=XAxTMVrc2q5kiJPzcO5qqO9s5UQdCEh0M5m2vrzFK60,3073
|
|
23
|
+
digsim/app/gui_objects/_seven_segment_object.py,sha256=A_Q5fSsoW8OPB9jFrthU3shkggK2cgheNtHTAoZbwjg,4370
|
|
24
|
+
digsim/app/gui_objects/_shortcut_objects.py,sha256=USikEPkB7TxjqOD3MgJYlUqGq8tLlQS_bPxC6Qi6cnk,2747
|
|
25
25
|
digsim/app/gui_objects/_yosys_object.py,sha256=1LQ6nR_67lfWWNE56bdPJYkpEXhEi_9Z5UbiY0SGJIE,953
|
|
26
26
|
digsim/app/gui_objects/images/AND.png,sha256=d53gEcxIlfqmW-Q4Za3n5i_NmSEcjJqlbh8XxoSdR3o,12062
|
|
27
27
|
digsim/app/gui_objects/images/Analyzer.png,sha256=1OrkKsL6ktxKI12KzNJT7rgEi2X-jAqp6vrVuVthErY,1591
|
|
@@ -49,22 +49,22 @@ digsim/app/gui_objects/images/YOSYS.png,sha256=etTO9jadU0amxQG7ySRjD6fME4HjrEEqX
|
|
|
49
49
|
digsim/app/gui_objects/images/ZERO.png,sha256=hXnZgEVO3T_zN5CiFhu6cIXr19LAu6SdvX-sIOq06E4,3459
|
|
50
50
|
digsim/app/images/app_icon.png,sha256=OfPoYA4o4Af79DTqQxSNLca0FdXRHEYteBK-xCQFEAw,16041
|
|
51
51
|
digsim/app/model/__init__.py,sha256=atbReJBH_qTVZqsKLvF3p9eZWxkglFi6cvt7fEGo0bo,159
|
|
52
|
-
digsim/app/model/_model.py,sha256=
|
|
53
|
-
digsim/app/model/_model_components.py,sha256=
|
|
54
|
-
digsim/app/model/_model_new_wire.py,sha256=
|
|
55
|
-
digsim/app/model/_model_objects.py,sha256=
|
|
56
|
-
digsim/app/model/_model_settings.py,sha256=
|
|
57
|
-
digsim/app/model/_model_shortcuts.py,sha256=
|
|
52
|
+
digsim/app/model/_model.py,sha256=6G7NfNv5DStJh1-wOLB9YfLBKkkerX_KNTEzbELb75E,6520
|
|
53
|
+
digsim/app/model/_model_components.py,sha256=G3IKa7XbE6eiA-DQ8AYKgLjn2lbGSHSvHrDbeqA1UHA,6262
|
|
54
|
+
digsim/app/model/_model_new_wire.py,sha256=FHZI6xeW4BBe4v77zW2G8WNWiU02f5zHBdqWF_PvFkA,1868
|
|
55
|
+
digsim/app/model/_model_objects.py,sha256=HxjfL1m-wI0xIb4X8pmKMsAtPHk2jdpSh8Mg2NB3Lnk,5136
|
|
56
|
+
digsim/app/model/_model_settings.py,sha256=ZXO3-n4mCN4zQMJO_AEa4qPXuMKc6RL2enT6-SGkRoo,1022
|
|
57
|
+
digsim/app/model/_model_shortcuts.py,sha256=_H_2og8dl3wd2DuMhPkSejhdEGrzSwAa8H5AXZSeK04,2092
|
|
58
58
|
digsim/app/settings/__init__.py,sha256=0tkoBSYeJFFiUI8c_FqvqqyM4-_SU9Xq7mXCwiew5Oo,308
|
|
59
|
-
digsim/app/settings/_component_settings.py,sha256=
|
|
59
|
+
digsim/app/settings/_component_settings.py,sha256=b8_G5KnFfeiV5Gn2gFPvVvDN7aUco-ym5FMlyawSz9A,16288
|
|
60
60
|
digsim/app/settings/_gui_settings.py,sha256=sDi2POUsHvS7_4SO5qsTu_nN48HsTN4UfGPzdmECs9w,2764
|
|
61
|
-
digsim/app/settings/_shortcut_dialog.py,sha256=
|
|
61
|
+
digsim/app/settings/_shortcut_dialog.py,sha256=B1SUVOsdOXFcLac2dH8Fh6c3Hp92udaNmzWa9o26YrM,1461
|
|
62
62
|
digsim/circuit/__init__.py,sha256=yGyhcdnlcpht_hyR2az_A4c7-bO_NkT2lBIDFvtI010,216
|
|
63
|
-
digsim/circuit/_circuit.py,sha256=
|
|
63
|
+
digsim/circuit/_circuit.py,sha256=w9ha-5ymrGic5ZPkJRY_oL5ESNKwp-svjyNyLGeyJm8,11467
|
|
64
64
|
digsim/circuit/_waves_writer.py,sha256=ZedBa2TbWuq-zDc1MQyANmQOMDGGzNMSh4nKPuqXCkA,2092
|
|
65
65
|
digsim/circuit/components/__init__.py,sha256=j-xNFbXJ15rSJLhDg7E-SlKvxn6Uy7Zl42YDUkZBFZo,1267
|
|
66
66
|
digsim/circuit/components/_bus_bits.py,sha256=mHWkwAHtkEq88pOEQ0b5ndFZvum794j7kUkTAWHUCdc,1916
|
|
67
|
-
digsim/circuit/components/_button.py,sha256=
|
|
67
|
+
digsim/circuit/components/_button.py,sha256=OpiAY_JsZHzwTVBub74WwY9zkfKnONbu79DSA_pB47A,908
|
|
68
68
|
digsim/circuit/components/_buzzer.py,sha256=vArzQVe0yFjtqMxIx2BIvjRA-m-aipPUHVlgwbwpCXM,1125
|
|
69
69
|
digsim/circuit/components/_clock.py,sha256=Kks82_Ni_XJYvrgLFvPsAagbUnmH9QutGuwm1puM0B0,1487
|
|
70
70
|
digsim/circuit/components/_dip_switch.py,sha256=6f5EXVr3P-OXRB_FY5UOMTkBcJtUR2HHeeD38V7Wfmk,1807
|
|
@@ -83,23 +83,23 @@ digsim/circuit/components/_seven_segment.py,sha256=UxxjGLuIirVB2Px09XlL8_zjgE7F8
|
|
|
83
83
|
digsim/circuit/components/_static_level.py,sha256=2Assm1cmAfryVZ3KTQ1uGY8Q6eRrBipdwLITewXfIHg,677
|
|
84
84
|
digsim/circuit/components/_static_value.py,sha256=vfRPS_F9mKOXpHJxzs0JQKXqcj0o6d-090zbyZaECA4,1236
|
|
85
85
|
digsim/circuit/components/_yosys_atoms.py,sha256=NeH8XjjpoACHBfQRqR5RJxWorZhSjGk0t73cJOviSZw,37599
|
|
86
|
-
digsim/circuit/components/_yosys_component.py,sha256=
|
|
87
|
-
digsim/circuit/components/atoms/__init__.py,sha256=
|
|
88
|
-
digsim/circuit/components/atoms/_component.py,sha256=
|
|
86
|
+
digsim/circuit/components/_yosys_component.py,sha256=CaetPirXdoYZOjCk-vXVqI3zSjB2n-1vEYh7afA3aD0,8797
|
|
87
|
+
digsim/circuit/components/atoms/__init__.py,sha256=tQuxYg6mCz72GCJ1qognO0J3upTKmZR-VhH1IdKnbSg,514
|
|
88
|
+
digsim/circuit/components/atoms/_component.py,sha256=4_pbo25DbVoHdoDVok67NqltanTZwcj-8NH-Q4mKdOw,9255
|
|
89
89
|
digsim/circuit/components/atoms/_digsim_exception.py,sha256=Y5mBve15zZbduqNNAyf7WzqDk4NtvUL_g2vYy5kBQ3U,173
|
|
90
|
-
digsim/circuit/components/atoms/_port.py,sha256=
|
|
90
|
+
digsim/circuit/components/atoms/_port.py,sha256=6zqdzflqUYAJgoC-gtFb9eBYHgCX9mhUJD2-KqqDPPA,13009
|
|
91
91
|
digsim/circuit/components/ic/74162.json,sha256=RAeSva6TVuwfKHsvU9HC-ZVfRVrCkIsQUz_jcANT_fE,26693
|
|
92
92
|
digsim/circuit/components/ic/7448.json,sha256=hKMXhPqW-JBTF6rdz9u5HC_hY9cBRpJtMkLP7uOQXIo,21185
|
|
93
93
|
digsim/storage_model/__init__.py,sha256=lubmO9_BCUtEahyW1yE7f3aGHngEevGIwf_0LeOB7Y8,289
|
|
94
|
-
digsim/storage_model/_app.py,sha256=
|
|
95
|
-
digsim/storage_model/_circuit.py,sha256=
|
|
94
|
+
digsim/storage_model/_app.py,sha256=xREVnK0vk8K4e5tonUmeEkooFjG4ZrOYb0uFaqqEHL0,1617
|
|
95
|
+
digsim/storage_model/_circuit.py,sha256=C_8TlGoxGVy2pVdMmxvrj3ru1BYOOXB_vFhFy2iq4WY,3978
|
|
96
96
|
digsim/synth/__init__.py,sha256=jhBHLOHf-vNa94Zg5q5dGcf0fgQTModfjUKtmUSffiw,180
|
|
97
|
-
digsim/synth/__main__.py,sha256=
|
|
98
|
-
digsim/synth/_synthesis.py,sha256=
|
|
97
|
+
digsim/synth/__main__.py,sha256=qLywUAFdbPcXzikx4j-6MRE1coU_htokEGZddPcKLdM,2173
|
|
98
|
+
digsim/synth/_synthesis.py,sha256=bIwVfgtTvJe8_RVyLIgZITfGPlUQHnegzyKh6NqxN7U,5185
|
|
99
99
|
digsim/utils/__init__.py,sha256=MT9TNcpa7fNAqtBsmCcceKMrUSU_v9xeJ6Nox_TL7Lo,191
|
|
100
|
-
digsim/utils/_yosys_netlist.py,sha256=
|
|
101
|
-
digsim_logic_simulator-0.
|
|
102
|
-
digsim_logic_simulator-0.
|
|
103
|
-
digsim_logic_simulator-0.
|
|
104
|
-
digsim_logic_simulator-0.
|
|
105
|
-
digsim_logic_simulator-0.
|
|
100
|
+
digsim/utils/_yosys_netlist.py,sha256=iBOVQ8c-SLJK7eadBmj1cSyW-pkdDoBxckGxXee1-Sw,4031
|
|
101
|
+
digsim_logic_simulator-0.13.0.dist-info/licenses/LICENSE.md,sha256=FrvohZfyfpH4xrvKdXiQ5hD7dUB7w4DcsRA3p-pOmLw,1693
|
|
102
|
+
digsim_logic_simulator-0.13.0.dist-info/METADATA,sha256=DrddaUXODVM6Cq5BM3TKkZJDwC6bD7Zp5UOMeNElbNw,4558
|
|
103
|
+
digsim_logic_simulator-0.13.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
104
|
+
digsim_logic_simulator-0.13.0.dist-info/top_level.txt,sha256=qpCMzQKADZHVqZIoQgFrv3qJ3u7PPU73gTCXQglqLa8,7
|
|
105
|
+
digsim_logic_simulator-0.13.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{digsim_logic_simulator-0.11.0.dist-info → digsim_logic_simulator-0.13.0.dist-info}/top_level.txt
RENAMED
|
File without changes
|