gsim 1.1.4

High speed digital logic simulation
Documentation
�

[�fe�7���ddlZddlZddlmZeGd�d��Zd�Zd�Zd�Zd�Zd	�Z	d
�Z
Gd�dej�Zy)
�N)�	dataclassc�h�eZdZUejed<ejed<ejed<y)�BinaryGateTestData�inputA�inputB�outputN)�__name__�
__module__�__qualname__�gsim�
LogicState�__annotations__���8D:\Visual Studio Projekte\gsim\python_tests\component.pyrrs ���O�O���O�O���O�O�rrc�*�|j||g|�S�N)�add_and_gate��builderrrrs    rrr�������� 0�&�9�9rc�*�|j||g|�Sr)�add_or_gaters    rrrs�������/��8�8rc�*�|j||g|�Sr)�add_xor_gaters    rrrrrc�*�|j||g|�Sr)�
add_nand_gaters    rrr���� � �&�&�!1�6�:�:rc�*�|j||g|�Sr)�add_nor_gaters    rr r rrc�*�|j||g|�Sr)�
add_xnor_gaters    rr"r"rrc�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�ComponentTestsc���tj�}|j|�}|j|�}|j|�}|||||�}	|j�}
|D]�}|
j	||j
�|
j	||j�|
j|�|
j|�}|j|j|j|����yr)r�SimulatorBuilder�add_wire�build�set_wire_driverr�run_sim�get_wire_state�
assertTrue�eqr)
�self�add_gate�width�testData�maxStepsrrrr�gate�sim�data�	out_states
             r�binary_gatezComponentTests.binary_gates����'�'�)���!�!�%�(���!�!�%�(���!�!�%�(�������8���m�m�o���	>�D����v�t�{�{�3����v�t�{�{�3��K�K��!��*�*�6�2�I��O�O�I�L�L����e�<�=�	>rc���ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj��ttjj�tjj
�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj	�tjj	��ttjj	�tjj�tjj��ttjj	�tjj
�tjj	��ttjj�tjj�tjj��ttjj�tjj	�tjj��ttjj�tjj�tjj��ttjj�tjj
�tjj��ttjj
�tjj�tjj	��ttjj
�tjj	�tjj	��ttjj
�tjj�tjj��ttjj
�tjj
�tjj
��g}|jtd|d�|jtd|d�|jtd|d�|jtd|d�y�N��� �!�@)	rrr
�high_z�	undefined�logic_0�logic_1r7r�r.r1s  r�
test_and_gatezComponentTests.test_and_gate-s����t���5�5�7����9O�9O�9Q�SW�Sb�Sb�Sl�Sl�Sn�o��t���5�5�7����9R�9R�9T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tk�Tk�Tm�n��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���8�8�:�D�O�O�<R�<R�<T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���8�8�:�D�O�O�<U�<U�<W�Y]�Yh�Yh�Yr�Yr�Yt�u��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wn�Wn�Wp�q��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tk�Tk�Tm�n��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wn�Wn�Wp�q��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o�'
��*	
����q�(�A�6�����r�8�Q�7�����r�8�Q�7�����r�8�Q�7rc���ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj	��ttjj�tjj
�tjj
��ttjj	�tjj�tjj	��ttjj	�tjj	�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj
�tjj
��ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj��ttjj�tjj
�tjj
��ttjj
�tjj�tjj
��ttjj
�tjj	�tjj
��ttjj
�tjj�tjj
��ttjj
�tjj
�tjj
��g}|jtd|d�|jtd|d�|jtd|d�|jtd|d�yr9)	rrr
r?r@rArBr7rrCs  r�test_or_gatezComponentTests.test_or_gateHs����t���5�5�7����9O�9O�9Q�SW�Sb�Sb�Sl�Sl�Sn�o��t���5�5�7����9R�9R�9T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tk�Tk�Tm�n��t���8�8�:�D�O�O�<R�<R�<T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���8�8�:�D�O�O�<U�<U�<W�Y]�Yh�Yh�Yr�Yr�Yt�u��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wn�Wn�Wp�q��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tk�Tk�Tm�n��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wn�Wn�Wp�q��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o�'
��*	
����a��1�5�����b�(�A�6�����b�(�A�6�����b�(�A�6rc���ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj	��ttjj�tjj
�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj	�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj
�tjj	��ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj��ttjj�tjj
�tjj
��ttjj
�tjj�tjj	��ttjj
�tjj	�tjj	��ttjj
�tjj�tjj
��ttjj
�tjj
�tjj��g}|jtd|d�|jtd|d�|jtd|d�|jtd|d�yr9)	rrr
r?r@rArBr7rrCs  r�
test_xor_gatezComponentTests.test_xor_gatecs����t���5�5�7����9O�9O�9Q�SW�Sb�Sb�Sl�Sl�Sn�o��t���5�5�7����9R�9R�9T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���8�8�:�D�O�O�<R�<R�<T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���8�8�:�D�O�O�<U�<U�<W�Y]�Yh�Yh�Yr�Yr�Yt�u��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o�'
��*	
����q�(�A�6�����r�8�Q�7�����r�8�Q�7�����r�8�Q�7rc���ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj
��ttjj�tjj
�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj	�tjj	��ttjj	�tjj�tjj
��ttjj	�tjj
�tjj	��ttjj�tjj�tjj
��ttjj�tjj	�tjj
��ttjj�tjj�tjj
��ttjj�tjj
�tjj
��ttjj
�tjj�tjj	��ttjj
�tjj	�tjj	��ttjj
�tjj�tjj
��ttjj
�tjj
�tjj��g}|jtd|d�|jtd|d�|jtd|d�|jtd|d�yr9)	rrr
r?r@rArBr7rrCs  r�test_nand_gatezComponentTests.test_nand_gate~s����t���5�5�7����9O�9O�9Q�SW�Sb�Sb�Sl�Sl�Sn�o��t���5�5�7����9R�9R�9T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tk�Tk�Tm�n��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���8�8�:�D�O�O�<R�<R�<T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���8�8�:�D�O�O�<U�<U�<W�Y]�Yh�Yh�Yr�Yr�Yt�u��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wn�Wn�Wp�q��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tk�Tk�Tm�n��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wn�Wn�Wp�q��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o�'
��*	
�����8�Q�7������H�a�8������H�a�8������H�a�8rc���ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj	��ttjj�tjj
�tjj��ttjj	�tjj�tjj	��ttjj	�tjj	�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj
�tjj��ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj
��ttjj�tjj
�tjj��ttjj
�tjj�tjj��ttjj
�tjj	�tjj��ttjj
�tjj�tjj��ttjj
�tjj
�tjj��g}|jtd|d�|jtd|d�|jtd|d�|jtd|d�yr9)	rrr
r?r@rArBr7r rCs  r�
test_nor_gatezComponentTests.test_nor_gate�s����t���5�5�7����9O�9O�9Q�SW�Sb�Sb�Sl�Sl�Sn�o��t���5�5�7����9R�9R�9T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tk�Tk�Tm�n��t���8�8�:�D�O�O�<R�<R�<T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���8�8�:�D�O�O�<U�<U�<W�Y]�Yh�Yh�Yr�Yr�Yt�u��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wn�Wn�Wp�q��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tk�Tk�Tm�n��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wn�Wn�Wp�q��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o�'
��*	
����q�(�A�6�����r�8�Q�7�����r�8�Q�7�����r�8�Q�7rc���ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj	��ttjj�tjj
�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj	�tjj	��ttjj	�tjj�tjj	��ttjj	�tjj
�tjj	��ttjj�tjj�tjj	��ttjj�tjj	�tjj	��ttjj�tjj�tjj
��ttjj�tjj
�tjj��ttjj
�tjj�tjj	��ttjj
�tjj	�tjj	��ttjj
�tjj�tjj��ttjj
�tjj
�tjj
��g}|jtd|d�|jtd|d�|jtd|d�|jtd|d�yr9)	rrr
r?r@rArBr7r"rCs  r�test_xnor_gatezComponentTests.test_xnor_gate�s����t���5�5�7����9O�9O�9Q�SW�Sb�Sb�Sl�Sl�Sn�o��t���5�5�7����9R�9R�9T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���5�5�7����9P�9P�9R�TX�Tc�Tc�Tm�Tm�To�p��t���8�8�:�D�O�O�<R�<R�<T�VZ�Ve�Ve�Vo�Vo�Vq�r��t���8�8�:�D�O�O�<U�<U�<W�Y]�Yh�Yh�Yr�Yr�Yt�u��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���8�8�:�D�O�O�<S�<S�<U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:P�:P�:R�TX�Tc�Tc�Tm�Tm�To�p��t���6�6�8�$�/�/�:S�:S�:U�W[�Wf�Wf�Wp�Wp�Wr�s��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o��t���6�6�8�$�/�/�:Q�:Q�:S�UY�Ud�Ud�Ul�Ul�Un�o�'
��*	
�����8�Q�7������H�a�8������H�a�8������H�a�8rN)
r	r
rr7rDrFrHrJrLrNrrrr$r$s%��
>�8�67�68�69�68�69rr$)
�unittestr�dataclassesrrrrrrr r"�TestCaser$rrr�<module>rRsW����!�
�����
:�9�:�;�:�;�p9�X�&�&�p9r