wincuplmysinski.wieik.pk.edu.pl/wincupl/wincupltutorial_pl.pdf2 1 1.1 co to jest programowalna...

32
WinCUPL Damian Górski Korekta : Wojciech Zaborowski Kraków dnia 16.06.2004

Upload: others

Post on 16-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

WinCUPL������������ ���������

�������

����������� ��� ��������� ���

����������������������Damian GórskiKorekta :Wojciech Zaborowski

Kraków dnia16.06.2004

Page 2: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

2

1 �������������� �����������������������

1.1 Co to jest programowalna logika (ang. programmablelogic PL)

Logika programowalna, jak sama nazwa mówi jest to rodzina komponentów������������� ��� ����� ������� �!������"�����������#$%&�'(&�)$*+(,&�-#,./&�0-)��0-'�1&���������!���2��3�2��4�!������������� ��4������ �!���&������������2�������������5�6�2���� ���� �2��������� �!����7��!������ ���"�!5�programmable logic devices�-%1��#8).&�0�9#&��-#&��('�&��#-&�9#-����������-%5

1.1.1 ASIC (ang. Application Specific Integrated Circuits):

8�� ��� �������� �� 4������ �:��� ��4�������� 7��� ����������5� #8).� �7�������;2����� ���7��2������������;���!�� ������3�4������ �� �!���&� ��4����&�����������������������������5�< �����2�:���2���������������4�!�������7���2���!�7������������������2���"�!5�mask 7��!������ �15�.���������������������4�!������������� ��� 27���4������� ����������!�5� 8�� ��� ������� �� 7��7����&� !��� ����������:��3� ����� � �:3� 4������ �!������ �� ������ �������5� =�� �! ���� �� ������ ���������;&�. �-&������������7��2������������-&������!�������27����35

1.1.2 ������ � ���������������������������� ��������������� ����������user programmable device UPD)

���7����2�� �%�7�2���������2����� 7�����4������� �!� �� ������������&� �� ���������������� ����� �7��!������3� 2���� 7������5� '!� �� ������������� ����� 2��� ����3&� � ���� �� 2������ 2��� � ������ ��� ������� ��� ���� � ������� #$%� �� '(� 7��������� �����7 ���������� 4������ �!�����5� < �� �� �����;� 7�2����� ������� ���������7���������� �� ����2���&� ������ ��!�� ��3� ������ ����� 7�������� �� ���:���� ��� ���:����������5� �������� 2���7 ������� �������� ��������� makrocele (ang. macrocells).������� �� 7��� ���� ������������� �� 2��4�!�������� ��7�� ���:3� �� ���:3&� ������ 2�potrzebne do projektu.

Page 3: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

3

1.1.3 PROM (ang. Programmable Read Only Memories)

�������&����������������� ���27� �!��� �!���&������������������2�:���PROM–���2������2������� ���� �������#$%&��������2� ����7��!������ ����� ����� �������'(5< �����2�:��� �('�>���������2����� ����������� ����������2��������:3� ��4��������:�����&�75����7������7���������:������2��������7����2�����5

Page 4: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

4

Page 5: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

5

1.1.4 PAL (ang. Programmable Array Logic)

<��������������������2������2���7��!������ ���� �������#$%&�������������do ustalonych (ang. fixed) ������� '(5� <2�2����� ���:���� ��� ���� ��!�� ��3� zANDowane����&�� ������: ��� ������#$%�2��7��7��������������: ���� ������'(5��#-������������ 7�7� ���� ������������� �� 2�� 7�����7������� ��2����� ��������� ���������PLD.

6��� �� �������� 7�2����� �������� ����&� ��� ��� �� ��� ������������� �#-5� =��� ��������� ��������!����3�7��!����������������:���&����:���&�� ������:�������:���5�=��� �7�2������� ����2�������:�����&���������!����3�" �����1���������7�������� �7��7�2����pinami )?'5� ���2����� 7��!������ �� �������� 7�2������� ������� ��� 7�������� ����2��&����!���������7������������2��������� ���� ������&������� ���� ���:���7������2������ ���������5� ������� ��� 2�� !������ ������2������ ����� ������� �2��7�����wiele funkcji logicznych w technologii TTL.

1.1.5 GAL (ang. Generic Array Logic devices)

8�� �7����������&� ���� ��� ���3� ��� �� 7��2������� �#-� >��� 7�7��� ������������� 5�6��� ���������������7������&�����������!��������� �� ���7��2��������#-�>�&�����2� ����� 2��4�!�����3� �� ��� ������� 2������ 9#-� >�� ���&� ���� ��� ������ ������ 7����������#-�>�5�,������������ �:3������������ �������;&���������2���������3��2����&����� ������� ����2�� �������������!���������&� ��� ��� ��7��� �� �����3��2�����!�����7�5�=������:3�9#-�����������3���2����&�����������������7��������w projektowaniu.

Page 6: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

6

1.1.6 PLA (ang. Programmable Logic Arrays)

,����������7�2�������7��!������ ��������������#$%&�����)�'(&����7��� �jakiemukolwiek ��������#$%��2� �3����� �������'(5��-#�7�����7����������������2�� �2����:3� � 7�:���� 7��2������� �����;&� ������ 7�������� 2��� �� 4������ �:3 �!���5�=��� �������27�������������� ��� ����'(���� ��� ����#$%&�������������2��3������ �� �� �� ���7 ���������� �2��������!�� ��������� 2����5� < ���2�:3���������� 2����� ��7 ��������� ��2�� ������ ����� ��������� 2��������&� ����producenci stworzyli PLA nazywany 2���������&� ������������2�����27������� �����rejestrów z tablicy elementów OR do AND.

1.1.7 ����������

8�� ��� ������ ����� �#-�>�&�������� �������� ������ �-#5� ���2������� ������������������7��7����� ��� � �#-&� ���� ���:���� ����2���� � �:��� �������#$%&� � �� �����!�ustalonego ������'(5�6�2������������� ���7���7�����������2�2�������termów, lubwykorzystanie �������������������� ������2���������"�!5�expander �����15� ������������� ����������7 ����������7�����������!��7�������5

Page 7: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

7

1.1.8 FPGA (ang. Field Programmable Gate Arrays)

$��7��:����&� ��2�� ��� 7��!������ �� � ��������� ��� ���� ������&� 7�2��������� ����7������ �!���5�.������������2����!�2��:3�������&��������2��!�&������ �������4��������7��� ����������� ���:3� �� ���:3&� � �2����� ��2�������� 7�����;&� ���� :������2��7���������� �� 2�� �� @���������� ���A5� $��� 2�� ��� �!������� ��� 4������ �:��� ��7������� ����� �������#$%�'5�=����2�� ��!�&� ������������������������ ��4�!����� ���zegarów logicznych (.-�21������������������7���:���;�� �����)?'�")'�215�B������!���.-�������� 7��!������ �� �!���� ������������� ���� ����2���� 7�����������5� 8����� �!����� ������2����2��������7 �������3����� ��4��������� ����2�������2�!�������:�������5�B������ ���)'.��������3�7��!����������� �������������:���� ������:���trójstanowe lub 7�� ������������5� ��2����� ������� ����2���� 4 �7�4 �7&� ������ ��!�� ��3������2���� ��� ��4�������� ���:3� ����� ���:35� =�2������ ��������� ��2�� 2��3� 7�����;���!������ 7������ ���� 7������ �� ����2���� �� �� ������ 7������� � ������ .-�5���!������ ��7�����������7����������������:�����������:����� �����IOBs z blokami.-�5� -���� ���!��� 7�����!���� �� 7����� 2�����:��� ��� �7���3� ��2��������� 2�!�������������� � ����� ��� �7�������5� ����������� ������2������� ������� 0�9#� ��!���4�����3� 4������ �!���� ������� �������� �� 7�7�����3� ��� �� ������ 7������5� ���������7�������0�9#���!����3�7�����������������4���������7�����!���� ����������������������!����������������7�:�����3�7���������2������������������ ���4������ �!�����5

1.2 !����������������"��������������

1.2.1 !����������������"#

%�� ��2��7���� ����� �!��� ��2�������� �������� � ���� ��5� ������� .�'8� "�!5Complimentary Metal Oxide 8�����������1&���7� �����������,,-&�GaAs (oparte o ArsenekGalu), oraz ECL (ang. Emiter Coupled -�!��1&�������������������������������75�BiCMOSczy +.-?��7� ��5� %������ ��2��2���� ����� �!����� 2�� ������ +.-� ����GaAs, jednak������:��� ����� �� ������2��� 7������ ���!��5� '!� ��� 2����:3� ������� ��2�� :��: �7����������!��7�����������5

1.2.2 ��������������"#

������� �!���� 7��!������ ��� ����!������� 2��� 7��� ������ �! ��������� ������!�� ������2����� �� ��4�!������� 4�����5� .�:3� �������� ��2�� ��2��� �&� �5����� ��3� ��� �������� 7��!������ �5� ������ ��� 2�� ��2����� 7�7��� ������2����7������� *������7�7���7�����������7������������!���7������������:3����27�������7���������������7��!����������7�����;5� ���������2��� ��7���������� *�������������� ������� �� !����� ���2����� ������5� ������&� ������ ��� ����� �2��32��2����� ����� 2��� �������� ',�� "�!5� '�� Time Programmable). Najnowsze����������������!��������2��2��������2����!���7�����5

Page 8: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

8

������ 7��!������ �� 2�� 7���������� �� ������� ���������� �� �2�������5< ���2�:3�����������2���������2�������������4�!��������%)��"�!5�Dual Inline Package),SKINNY-DIP, LCC (ang. Leaded Chip Carrier), PLCC (and. Plastik Leaded Chip Carrier),QFP (ang. Ruad Flat Pack), BGA (ang. Ball Grid Array), SOIC (ang. Small Outline I.C.),TSOP (ang. Thin Small Outline), oraz PGA (ang. Pin Grid #����15� ������ ��� ��!�� ��37��2������� � pinami umieszczonymi po dwóch stronach, kwadratowe z 7����� � ������2����&������������������7�������7�������������� ������2�����������5�6�2������������ ��������27������!��������7��!������!���������7���������!�&������2��!���3��� ����� ������2�� � �:3� ������� ��7��� �������&� ��� ���� ������2����3� ���� �� �������2��7����27������5

1.3 $����������������� ����%

������ �!���� 7��!������ ��� 2�� 7��!�������� ����� 7�7��� ������� �������������7�����;�������������������������&�����7�7���������� ���������������� �!����������:������?����:������������5�< ���2�:3�7��!�������������������7 �������2����� � ������� ������� ����:����� �� 4�������� #8.))5� ����� ��3� ��� 4�����6+%+.�� �����������-%&������/+C�� ���������� ��7���('�5�� ��� ��� ��������2�2��������!����4������������������7���������!���7��!���������������� �!���!�5�� ����7�� 6+%+.� ������� 27�2� 7�����;� �� �������� � ������&� ��7��������� 7��� ����2����2����������@DA������@EA���7��������2�!� ��������������:3�7�������&��������!�����5� � ��� ��� ����� ������� ������3� ��7�������� 4��!����� ���� ��������7��7���������7���7��!����������2����4������ �:���7�������5

1.4 !���� �����&����%������'��������( ����������

,�2��4������ �:���������2��3�7��7��������7���7�zednim zaprogramowaniu������&�7�����������&����27���������7��!���������7����4����2��!���3�!�����������������2����������������2������5�<���������2�����2��������2���� �2���7�������������:�������!�������� �������!�������� ��2����!�&����� �2��������������7�������:�������5 ������� ��2������� ��������7�7��� �� ������������ ��2��������2��7������ ������2���7�������:����������������������2����7�������:�������&��������4��������7�������������������5� ��� ����� ��� 7��!����:���� ���� ������� !��7��� 7����������� ����4������7�7����:���4������������������!��7�������5

Page 9: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

9

2 ��%���� ����� �%������)$���

�����2� ���������� 7�������� ������ ��2�� �2��2���3� ������� �� ���� @!�������A(ang. ��7����1&� ��� ����&� ��� � ���� ���3� ��� �!� �!�� ���2�� 7�������&� �� 7�����7��2���3�2����������2���!���&���4��������� ����� �����5�. �-�7�2�������� ���������;�27���!�������� ��� 2�� � 7��!��������5� ,�� ������� 7���2������ �� �7�2���� �2����2�������&������������. �-��4��������7����2�����7 ���������7�������5

2.1 ������%���������( �%�����

8����������7�2����� �����&������������������. �-5

2.1.1 Definicja Pin / Node

�������� ��4������ �)$� >��� ��2�� �2��3� ���� ������� �� 7������� 7 �����������!�&� ���� ��4������ ������� 2��� ��2����� 7������ 2��������� � �� ����!�� 7�������5< ���� ���� ����� 7�&� ������ ��� ��4������ ����2����� ��7�� ������&� 7����� ������� �2��3���� ���������7�������7 ������������!�5����7�2����7����7������2��3�������&���� ��7��������� �������������&� �����!�� ��������3&��������������������3�7������������ �� �� 7���3� �� ��� ���� ������&� ��� �������� 7������ 7��7�2���� piny, w takimwypadku miejsce, które normalnie zawiera numery 7����7�������3��2�������7�2��5

2.1.2 �&����%��������������'������

=�����7�:�����&� ��� ������ ����&� ������2����������� ��������&� � �� ��� 2�7��7�2�������������7����?������5�8�������� ���7�������&�����������3����� �:3projektu

2.1.3 $�� ���������������������� �����

=����&� ������ ��;��� 2��� ����� ���2����� ��� E� ��� FG� 2�� ������ ����������2������5� ��!�� ��3� ��� ������� ��� ��7��������� !��7�� 2���������ponumerowanych rzeczy.

2.1.4 �$�� �����*��������*� �%#

Tabela 2.1Liczba Baza <����:3����2����

‘b’0 Binarna 0‘B’1101 Binarna 13‘O’663 Ósemkowa 435‘D’92 %��2���� 92‘h’BA Szesnastkowa 186

‘O’[300..477] Ósemkowa (zakres) 192-314‘H’7FXX Szesnastkowa (zakres) 32512..32767

Page 10: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

10

<2�2����� �7������� �� ������� �� . �-� >�� ��������� 2�� � FG� �������������:���&����!��7������ �������!��7�������3������:������E����G32�D5�-�������!���3�������������������H�7��2������2��2�����������������&��2�������&����2������� 2�2�2������5�%���: ������ � �� �2�2������ ���� ��2�� 2�2�2������ "���������� ��� 2�numery 7���������������2����&�����������������2����2�����2����1

2.1.5 $�� ����������%������� �%#

6�2�� ��� ������� ������� ��4������ !��7� ������5� 6�2�� ��� 7��2������ ������7��� ��� ������������� ��7����"���� ���������� �� ����� ����15�$����2�� �����������2������������!��������7�������� �:���5

FIELD ADDRESS = [A7, A6, A5, A4, A3, A2, A1, A0];FIELD DATA = [D7..D0];FIELD Mode = [Up, Down, Hold];

2.1.6 $�� ������(��*��� ���#

%�� �������7� ��������!��7��7�2����7���������������������!��7�������5���7��7�2����"7���7������2������ �����!��0)+-%1���������������3�����������������I�7�������27����������������������2�������2���������������������������!��7��59��� ������ �2����� 2����� � ������ 0)+-%&� ���7� ����� !������� 7�������� FG� ����������&� ������ ��2�� ������� ��� ��7��������� ������� �� 7� �� �������� "������ �����7�������� ����!�� ������ 7� �15� 8������� ��� ��2�� !������ ������� ��� ��4������ �manipulowania adresami i zakresami szyn danych.

2.2 $��������������%�����#

,�� 2������ �7�2�� ��� �!���� �� ����������� �7�������&� ���� ������� 4�����7����������������������;���� ��2����5

2.2.1 $�� �����������( ����������#

< �������. �-���2��7��2��������2�����������7�������� �!�����#$%&�'(&�$',��C'(5� $�2��7������ ���� �� 7���2������ ��� ���� �7�������� ���� � �� ���:���� ���wykonywania (ang. 7���������>���������2�!���������2�!�15

Tabela 2.2 Operatory logiczne

Operator ������� Opis B� ���:3

! !A NOT 1& A & B AND 2# A # B OR 3$ A $ B EXOR 4

Page 11: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

11

2.2.2 $�� �����������( �����������������&����%�#

8�:3� 2������������ �7��������� ������������� ��2�� ��2��7���� ��� ������&7�����������7�7������7���2������ ���7���2�������������7�������&�������� ���:���ich wykonywania.

Tabela 2.3 Operatory arytmetyczne

Operator ������� Opis B� ���:3

** 2**3 ����!����� 1* 2*1 ������ 2/ 4/2 Dzielenie 2

% 9%8 Modulo 2+ 2+4 Dodawanie 3- 2-1 Odejmowanie 3

2.2.3 $�� ������������"����������#

(�2��������!�� �2��3� ������ ��� �����&� �����2���3�27���4����4�����7������� � !������� ������� �� �������� 7��!������ ��5� B��7� ����� 27�������2�����������&�����2�������3&������2�����7�7������ ��������!���������� ���� ��!�� ������� ��� ��2�� �� ��4 ������ � ����� �������� ��2�������5� . �-� ������ ������2���;&�����2��4�!�����3�������� �����������5�B��7 ���� �2��� ��2���;�. �-����� �2��3� � ����� �� 7��������� @. �-� �-%?0�9#� Language .��7� ��A5� ������7���2������� �2������������:�����2��2�������

Tabela 2.4 Rozszerzenia zmiennych

Rozszerzenie �����2���� Opis.AP L <��:�����2��������!���2��������7��������

.AR L <��:�����2��������!����������7��������

.CE L <��:����.+

.CK L ���!�����������:�����!������7��������

.CKMUX L Wybór multipleksowanego zegara

.D L <��:����%�7��������

.DFB R < ��:�����7���������%����������������������makroceli

.DQ R < ��:����J�7���������%

.INT R =������2�!�����������!�����:��������2�����!�

.IO R =������2�!�������:�����!��pinu

.J L <��:����6�7���������6�B

.K L <��:����B�7���������6�B

.L L <��:����%�7���������latch

.LE L <��:����Latch Enable przerzutnika latch

.LQ R < ��:����J�7�����������7��latch

.OE L Programowane Output Enable

.R L <��:����(�7���������(8

.S L <��:����8�7���������(8

.SP L <��:����2��������!���2��������7��������

.T L <��:����,�7��������

.TFB R < ��:�����7���������,����������������������makroceli

Page 12: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

12

����2��7�������7����������������2���;��������

Rozszerzenie .AP:

(�2������ 5#�� ��2�� ������&� ���� �2����3� �2��������� 2�!��� �2�����������2���� �� ��������5� $�� 7������� ������� @K5#�L#M�IA� 7�������&� ��� ����2��� ��2��2�����������2��������������:3�@DA&�!���#� ����2�� �!�����7�������5�,���7������2���2��!�����7��������������;�Atmel ATF1500.

Rozszerzenie .AR:

(�2������ ��� ��2�� ������&� ���� ��4�����3� ��������� � �� �2��������!�2����������2���5�6�2�����2��2�������������;��������������� ���������� ����� ���:��7��������������2��������!������2���5

Page 13: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

13

Rozszerzenie .CE:

(�2������5.+�2��2�������2���������2�������7��%&���������������:��e wyzwalane�!����� "����2���� %�.+15� 8����� ��&� ���� 27�������3� ���:���� ��� termu CE (ang. Clock+�� �1� ����2���5�< �������������������� ����2���� %�.+&� ����������� ������ #,*GNEE�� �#,0DNEE� ������.+&����� �����2�����������2����3��2���������������D&����� ����2����!�� 2��� ��������3� ���� ����2��� %5� 8���������� ���7� ����� . �-� " ��� 2���������� 4� ��rodziny Atmel ATF1500) zrobi to za nas automatycznie.

Rozszerzenie .CK:

(�2������ 5.B� ������� ��2�� ��� ����: ���� �!���� 2��������!�� ����: ���������5�$������������������������ ���:3�7��������� �!���� ����2���� �������!�� ��������� pinów albo, do termu produkcji. Rozszerzenie .CK wybierze term produkcji.(�2������ ��!�� ������ 2��&� ���� 7������3� �!��� ����2���&� ��� ���������!�� pinu (na�!��1&� � �� �����!�� �������� #��� � 7�2��������!�� ��� ���2�:3&� � ���������� #,*ONE�"7��������15

Rozszerzenie .CKMUX:

(�2������5.B� C� ���2�������������7������3� �!��� ������� ��� ����2���56�2����������������������#,*ONE�5�)���������&�����������#,*GNEE&���������#,0DNEE�����������������������7����!�����&�����������27������������2�����

Page 14: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

14

5.B� C�"������2�����������2������5.B15� ���������2������5.B� C���2�����������������������������2������5.B5

Rozszerzenie .D:

(�2������5%���2��������&� ����27�������3����:����%� ��� ����2���� ��7��%5�,��7����7�������&� ��� ���7� ����� ��4�!������������� ������������� �-%�Atmela na rejestrytypu D. Dla PLD Atmela takich jak ATF16V8B/20V8B/22V10B, ATV750/B i ATV2500/B��2������ 5%� ��2�� ��3� �����&� ��: �� ������ �� �!���� �7����� �� ����2�����, inaczej CUPL��!�����������5

Rozszerzenie .DFB:

(�2������ 5%0�� ��2�� ������&� !��� ������� �� �� �������� #��� � 2�2��4�!������� �� ���:���� ����������&� � �� ����2��� %� ���! �� 7��2����� 7�������� �����:���5� ,�� ��4�!������� ��2�� �27������ 7��� �������� #,*� ONE?�� �� #,*GNEE?�5(�2������ 5%�0� 7��� �� �� 27������� ������ ����2������� ��7������������������!�����:�����7������������������5

Rozszerzenie .DQ:

Rozszerzenie 5%J���2��������&� ����27�������3����:���� ����2����%5� ������ ��!���2������ ������������ �2������ ���:���� �� ����2�����5� $��� ��2�� ��� ������� ��

Page 15: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

15

27�������������:����J�����2����%5�(�2�����������2����2��7�������������������#,0DNEE�� ������������ ��DGP&� �������2�5

Rozszerzenie .INT

6�2��������2�������������: �������������:�������7�����;��������5���������2��3�������2�����������: ����:���������������������������� ��7��@buried” zarówno� �� ���:3� ����2�������� ���� ��������������5� (�2������ ��� ��2�� ��2��7�� �����������������#,0DNEE�� ������������ ��DGP&� �������2�5

Rozszerzenie .IO:

(�2������)'���2��������2��������� �������7�����;���������pinów z���������5�6�2�� ���7�������!���2���7����2�7��������������!���������pinów I/O orazlogiki typu „������A� �� �������� ���� 2����� ������� �5� 6�2�� ��� ������� �������� 7����7 ���������������������������:3���. �-5

Page 16: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

16

Rozszerzenia .J i .K:

(�2������56� ��5B�2�������������27���4�����������:3� ����stru J–K. Równania �!����������2������������2������������2�����2������ ������(+9)8,+(�8+-+.,&!�����2������: ������� ��������2������7��%� ���,5�,��2������ �������2������7�������do ������. �-������2���H5Q5

Rozszerzenie .L:

6�2��������&�����27�������3����:�����������2���"�!5� latch). To rozszerzenie��2�� ����!��� 7��� ������� ��� ���:��� ���� ���� 7������� 7���������&� ����� �4������������ � ������ #,0DNEE5� ������ ��!�� ��2������ 7�������&� ��� ���7� ����� �2��������:����makroceli jako zatrzaskowe (ang. Latched output).

Page 17: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

17

Rozszerzenie .LE:

(�2������5-+���2��������2��������� ����: ���� ����;���2��!�������� latche.6�2������!���7���7�������������������2��������� ���:������� ����7���������7������&��������2����2��7��������������� ������#,0DNEE5������������&���� ����7�����������2���������� ������-+5

Rozszerzenie .LQ:

(�2������ �����2��2��2����� ���27���4������� ����2������:�����!��"�!5� imput ����1� ��!�� ������� ������������ �2������ ���:���� ����� ����2����� "�!5� latched).(�2�����������2����2��7��������������������#,0DNEE�� �����makroceli 128, lub����2�5

Rozszerzenie .OE:

(�2������ 5'+� ��2�� ������2������ 7��� 27���4������� 2�!���� ���:�����!�� � �termu produkcji. Jest wymagane przy wykorzystywaniu dwukierunkowych pinów I/O orazindywidualnie programowalnych ������� ���:�������� ��2��7���� �� ��������� � �����#��� �#,*ONE?�&�#,*GNEE?������#,0DNEE5� �������#��� &�������7�2����������:����'+kontrolowane na poziomie 7���&�����������#,0DNEE��������������2����������2�����5

Rozszerzenia .S i .R:

Page 18: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

18

(�2���������2������������27���4�����������:3�(�"reset) i S (set) rejestru S-R.(������ �!����� ����������������#,0DNEE���!����3�7�2���7���������2�������!���2���������� ��2������ ������(+9)8,+(�8+-+.,���2����������������: ������� ���rejestr typu D lub ,5,��2������ �������2������7�����������������. �-������2���H5Q5

Rozszerzenie .SP:

Rozszerzenie to jest stosowane do ustawienia synchronicznego presetu rejestru na����: �����������5�$��7��������������

���������� ������������������

��������&� ��� ��:���� K� ��2�� 7��2������� 2���������� � �!����� ��� ��� ������� �������� �&�!������:����#�����2�� �!�����7�������5

Rozszerzenie .T:

(�2������5,�27���4���������:����,� ��� ����2���� ��7�� �5� ������ ��!�� ��2�����7�������&�������7� �������4�!������������� �����������2������7��,5�(�2��������2��7�������������������#,0DNEE���#,*ONE�?GNEE�5

Page 19: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

19

Rozszerzenie .TFB:

Roz2������ 5,0�� ��2�� ������&� !���makrocela jest ustawiona na kombinacyjne���:���&� � �� ����2��� ,� ���! �� 7��2����� 7�������� ��� ���:���5� 6�2�� ��� ��� ���� ����������� #,*ONE�� �� #,*GNEE�5� (�2������ 5,0�� 7��� �� �� 27������� ���������2���������7�������������������!�����:�����7������������������5

2.2.4 �&���� �����( ��"����������#

(������ �!������������. �-������7�2��3�

[!] var [.ext] =exp;

gdzie:var� ��2�� 7�������� ����&� ��� �2��� ����2������� ��� ������2������� ��������4���������!������ �2������ ������� �2�����5�6��� �������� �2����� �2��� ������&�����2������������2��7��7�2������������������� �2��5.ext� ��2�� ����� �7���� �� ��2������ ���� ��������� 7��7�2���� 4������ ����2��� ������������7��!������ �����������.exp���2������������"���������������������������7��������15=���2���7���������7��7�2���&�������7��������7��7�2���������:�����������������&� �� �:����������5! jest operatorem komplementarnym.

W standartowych równaniac�� �!������ ���� ��� �� ��� ����� ��������� ��2�7��7�2����� �����5� ������ #��+$%� 7��� �� 7��7�2���� ������ ������ ��� �������;&�7��������� ���27�2��� ������� �!����2��� ��������� ���!�� ���� ����;587�2����������� #��+$%���2�� �������� ��� ��4�������� ����;� �!�����&� � ���&� ��2������ ������#��+$%���2��7����7����7��������������!��������5(������ �!��������2���2�����2������ �!�����7 ������������!�5

2.2.5 Operacje na zbiorach:

<2�2������7������&�������2�������������7����������������� �4����������!��2��3��2��2����������� ��������!��7�������������5�'7�������������������!����3����������������������������� ������������&� ����������������������5

Page 20: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

20

< ������� �7������� 7������� ������� �� 7�������� ����� " ��� ���������1� ��2�� �������&� ������ 7��2����� 7�7��� �������� �7������� 7������� ������� � ������� �����7�������!��������5

9����7���������2�����������7��������������������&������� �����2�����3���2���� � �:3� � ������5� 6���� ����� ������� �7������� ����������� ���� ����� ������ � �������������������������������� �7������� �� ��7�������������2������ �������zbiorów pierwotnych.

9��� ��� �7������� �������� ���&� 2�� ��� ���������� ����� ������ ���� �������&7�������� ������2��������������������� �����������&����2�������������R

2.2.6 $�� �������������( ��'��#

< � ���������� ��� ����� �7������� �� �������&� �7������� ����:��� ��� ����� ��7�������!�� �������� ��� ��2���!�&� ��� ���� 27������ ����:3� 7������� ������������� �� 2����5� ������� ������ �� ������ 2�� 7��������� � ��7������������� ��pozycjami w zbiorze. Gdy pozycja binarna w zmiennej jest równa 1 element w zbiorzepozostaje niezmieniony, gdy jest równa 0 element zostaje zanegowany, gdy jest równa�������� C� � ����� �2����� �2�����5� < ������� � ������ 2�� 7���2������� �� 7�2��3��������&�����2�����3�7����������������5

'7������� ����:��� ����� ��3� ������� ������� �� ������� ������&� �� �����������������3����2�����7������&���7�������7���2������ ����

[A3, A2, A1, A0]:&[B3..B0]:#[C3, C2, C1, C0]:$

8�����������

A3 & A2 & A1 & A0B3 # B2 # B1 # B0C3 $ C2 $ C1 $ C0

2.2.7 $�� �����������( �������#

'7�����������2��2��7����������7������� ����:��&�����������&����7� ��2��������2�����2��� �����:��&� �� ��� 7�������� �����:���5� 87�������� ����:��� ������ ��2����������� ��������������:���2������������2��5

�����2��� ������4�����3�2�������2����"�!5�����2�bus):FIELD adres =[A3..A0];$�2��7�����7�2�3������������2��select = adres:[C..F];��2��������������select = addres:C # addres:D # addres:E # addres:F;

2.3 ��� ���� �������������%�����

,�� 7��������� �7�2���� ����2����� 2������� �����&� ����:��� ������� ��� ��7�����&��2���������������������4��������4���������7�������������5

Page 21: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

21

2.3.1 Definiowanie tablicy prawdy:

.�2���� ���������� ���� ���27�2�������������� �7�2�� �!������2������2�������� �� ��� ���� �4�������5� 6���� . �-� ������� 2����� � ������ ,#�-+&� ������ 2����� ���������� ������� ��� ��5� ��� 7����2�� � ���� ��4�����3� 2��2���� �2��� ���������:�������� �� ���:�������&� 7������ 27�������3� �������� 7�������� 7�����������������������:���������:������ �2�������������:�������

-�2��������:��� ���:���������������3�27��������� ���� �������� ���3���� ������7��7�2���� �� ������ ��������5� $�2��7�� 7������� 7���2������ 7��2��� �������� � ����hexadecymalnego, na BCD:

FIELD input = [in3..0];FIELD output = [out3..0];TABLE input => output {0=> 00; 1=>01; 2=>02; 3=>03;4=>04; 5=>05; 6=>06; 7=>07;8=>08; 9=>09; A=>10; B=>11;C=>12; D=>13; E=>14; F=>15;}

2.3.2 Definiowanie automatu stanów (ang. state machine)

#������� 2������ !����� � ��4������#�%?��)���2�� ����@ ������� ��4����&� �����7���2��2���7���!�����2�� ����2��������2�������27�2����7���������5A�8���������������� 2������ ��� ������ �!���� � 7����������5� �������� ��!�� ���:���� ����� �2��37��������7�������������!��2���!�&� ���������:���������!�:� ��!��7��������&��������:���� 7��������� ����� � ���3� ������ ��� ��!�� ���:���&� ���� �� ��� ���:���� ��!�7��������I� 7��2��������&� ��!�� ��;����� ����� �� ���:���� � ���� ������ ��� ��!�poprzedniego stanu, jak i stanów innych przerzutników

���� � ��������� 2����� �� ������ . �-� �2���� 7������ �� 7���2��� ��2���&��������2�:�������7����������:3&� �!���� ��������������"�!5�combinatorial logic),����2����� 2���������&� ������ 2���&� ���:3� ����2�������� "�!5� registered ���7��21&� ���:3normalnych.

<��:����>�2�!�������������������������������2����7��������������������Logika kombinatoryczna – jest to dowolna kombinacja bramek logicznych (zwykle AND i'(1&� ������ 7��������� 2�!��� ���:������ 7�2��������� ��7������� ,7�� "��2� �7������propagacji, ang. propagation delay time). ,7�� ��2�� ��2��� �7������� 7������� �����������:���� "� ��� �������� 27������� �����!�1� �� ������� ���� ���������� �������2����������:���5����� 2���� >� ���:���� ����2����� 2���������&� ������ ������� 2�� 7��� 27������� ������5=�������������4��������������� ���2����5

Page 22: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

22

(���2����2��������>�2�� ���� ������7��������&� ������ ��������������:���� �4�������� �!���� �����������������������2����5�$�������� ����2�����������2����7������������2���&� ��� �� 7������� ����2�������� ���:35� (���2������ ���:���� 7�2����� ��7������� Tco(ang. clock to ���� ����1&���������2����2����7�������7������� ���������2�!�����!���&� ���2��7��������������7�����������:����7��������5

#��� ���7 �������3� �������� 2����&� . �-� ���2��7��� 2������&� ������ 7��� ������3� ������ 4������ ��� ���� �� ���������5� 8����� � ������ 8+J +$.+� �����4��������:���� ��������� 2����� �� �2��7���� 7�� ��� ��������&� ������ ��4������ 4������ ��������2����5� (���� �� 2������ � ������� 8+J +$.+� ���� 2����� 8+J +$.+%&8+J +$.+6B&� 8+J +$.+(8� �� 8+J +$.+,&� �����:���� ��2���� ��&� ���� ���:�������2������������2����2�������������!���������������7��������7����������%&�6�B&�(�8&,5�,����7���2�������7�������2������

SEQUENCE state_var_list {PRESENT state_n0IF (condition1)NEXT state_n1;IF (condition2) NEXT state_n2 OUT out_n0;DEFAULT NEXT state_n0;PRESENT state_n1NEXT state_n2;...PRESENT state_nn statements;}

gdzie:state_var_list�>���2�� �2���������� ��7������������2���&������������� ����������;automatu stanów.state_n� >� ��2�� ������� 2���� �� ���������� �����:���� � �2��� 2����ST��S �2�� "�����:�����2����3����� ��� �������!�����������2����15statements – warunki, �U�&� ���������������:�������7�2������2��7����2�������5

2.3.3 Definiowanie wielu automatów stanowych.

8������� ������ . �-� ��� �� ��� �� ��4�������� ������� ��� ����!�� ��������2�����!����������������!��7���������-%5�9�����4���������2������������������������2����&� �������� 7��������� ��������&� ���� ��������� ������������ 2��� 7������� 2���� "�����&�!�����������������2��!���7�����2��&�������������������7���3��������158�� ����� ������� �7������� ����������� 7������� ������������ �������� �7������� �zbiorach na bitach stanów danego automatu, lub zdefiniowanie globalnego rejestru, który��������2��7��� ���������������5

< � ������ ���������� ������� ����� ������3� ���� ��!�� ��������� ���� ������� 2���&� ��� ����2��� ������� 2����5� < ������ 7������� �����:3� 7�����&� !�����!�� �������� �2��!��� ����: ���2���" ���2���15�,��2������������2�� 7�������&�!���������� ����2���� ��2��7�!�� � �� ��� �� ���������&� ������ ��� ������� ����!�� ����������!�� � ���:3� �������� " ��� ����2���� ��7�� @�������A15� < � � ���:��� ��� 2�������� ����2��! ��� �� ����� ������ ��3� ����������&� ��� ����� ���3� ������&� ��� ��� ��!�� ������ ��������������������4��������������!��!�5

Page 23: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

23

2.3.4 $�� ����� ����"� ����� ���#

8������ ������CONDITION�7��� ����7����:���������2���7���������2���������� 27���4������ 4������ �!�����&� ��� 7��� �� �� ��� 7�2���� 2������������ ����;boolowskich. 8���������2��jak 7������

CONDITION {IF expr0 OUT var;..IF exprn OUT var;DEFAULT OUT var;}

=�������2�� �!�����7��������&�!������������ �������: ���������2��27�����5

2.3.5 Definiowanie funkcji

8������ ������0 $.,)'$�7��� ������������2������2����� ��������7�7�����72� �����7����� �!���������4���������������������5�$��������������3�������7�����w równaniach logicznych do reprezentacji tej funkcji. Format definiowania funkcji jest�2��7������

FUNCTION name ([Parameter0 ,...,Parametern]){ body }

< ������������� ����!�������3������������4�����&���������������������59��� �������� �7���� ���� 7���������&� ����� 7���������� �� ��4������ 4������ �� �

����������� ��� ���� ��2�� ��3� �������5� ���������� ��4������� �� ��� �� 4������ 2��2��7����� ����� �2��������� �� ��������� �!�����5� =����� ����������� 4�������2���2�������!��������������������� ��4�����&����� �������7��7�2������������������ �� 4������ ��� ������ ����2��&� �����2� ����� ����������� 4������ ��2�� �2������� ������:3�V�WE5

2.3.6 Deklaracja MIN:

%�� ������� �)$� ���� ����� ��4�������� ������� 7������� ��������� � �� ���������:3�������2�����7��������&��������������7���������������������� �����:3�7��������������������&� ���2��������&� ������2��� ������������ �����������2����5

%�� �����������������)$���7�2����� ����������������7�����minimalizacji�2�� ���7����2�������������. �-5�0��������2���2��7������

MIN var [.ext] = level;

gdzie:MIN >���2��2������� ������������7�2����7����������� �����5var – jest 7�����;�������� ��� �2���������.ext – jest opcjonalnym rozszerzeniem które identyfikuje funkcje zmiennejlevel�>���2�� ��������������������2��E55H

������� E55H� ������� ��7�������� �7���� ������� ����&� 2����&� Quine-McClusky,Presto, Espresso

Page 24: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

24

��������7����������� ���7�7�������7�������������������

MIN async_out = 0; /* no reduction */MIN [outa, outb] = 1; /* Quine McClusky reduction*/MIN count.d = 4; /* Espresso reduction */

3 $�� ����������������)$��

,��������������������:����7�������. �-���7 ���������������� ��7�����:���������������. �-���:������2���. �-�4���Windows.

3.1 +�������( ���������������

B��7� �����. �-���2��7��!�����&���������������:����������7 ������2�����2���������2������2����7���������������������7� ���;������������!��7 ���2����������2�����������7����������� �4�������5� )4�������� ��� 2�� 7������ ������2������ 7��� 7��!����2��� ���7��!���������4������ �!���������-%&� ���2��������2��� �����7����������2��� �����5

#�����������3�. �-�� ����� ���3������. �-���XPrograms> <WinCUPL>, pojawi2��������2���������2����7�����5

Page 25: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

25

=��������FileNew – otwiera plik wzorcowy PLD dla nowego projektu.Open�>����������2��������7 ����������4������Save�>��7�2���������������4�������7 ��Save As�>��7�2���������������4�������7 ���7���������Print – drukuje obecnie wybrany dokumentExit – wychodzi z programu

=��������EditCut – przenosi zaznaczony tekst do schowkaCopy – kopiuje zaznaczony tekst do schowkaPaste – wsadza tekst ze schowka w miejsce obecnie wskazywane przez kursorDelete – kasuje zaznaczony tekstCopy Message�>���7�����������:3������������������2������Search – szuka podanego tekstu.Line To – przechodzi do podanego numeru linii.

=��������OptionsCompiler Options�>��7������7�:�������7���������������� �����&��7���� �������4������7 ��������:�������5�< ������������7��������������3���������������2����7���2�������7�����5

Minimalization� >� ������ �������� 2��� 27�2��� ����� �����&� ������ ���������: �� � �� ����!�� 7�������5� ��� ���������2�� �4�������� �� ���������� ����������������3����2������G5F5Q5

Page 26: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

26

Optimalization� >� 27�2��� �7���� ������ ����: �� � �� ����!�� 7�������� �����������2���4��������������������� ����������������3����2������G5F5Q5

Output files�>�����������7���������7 ��������:�������5

download�>���������7��7 ����������������5

Doc File Options – opcje dla pliku .doc (rodzaj reprezentacji danych w nimzawartych).

Output�>��� �����������7 ��������:��������� �����������2������������kompilacji.

Device� >� 7��� �� ������������� �� �������� ���� ���!�� �������5 ������������7���������2�����������7��2��������������������7 ����pld.#��������3��������&�� ������7����2����� ���:��������3���!���!� ����7&�2��7��� ����3� ������� %)�� ��� �-..&� �� �� ������ �����327���4������7��������5

Page 27: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

27

Simulator options�>��7�����������2��� �����7 ����5pld

Listing File�>�������7 ������:������2��� �����"5so).

Append Vectors – dodaje wektory testowe do pliku .jed.

Display Results�>���:���� ��!��4���������2�����:35

=���adka Run – kompilacja, symulacja i analiza

Device Specific Compile – kompilacja obecnie zaznaczonego projektu na����: ����������5

Device Specific Simulate - symulacja obecnie zaznaczonego projektu na����: ����������5

=��������Utilities�>�����������7�������������5

=��������Device Library�>��������������7� ��������� ��������������;�. �-–a

Calculator�>������������ �� �����windows

File Manager�>����������exploratora windows.

DOS Prompt�>����������:�������7� ���;�%'8�windows.

Page 28: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

28

Project – opcje projektuLoad – wczytuje projekt z pliku .pld.8�T��>��7�2����7�������"��������2�������������7� ��������2��� ����1

Windows – Sposób radzenia sobie z wieloma otwartymi oknamiCascade – otwieraj okna kaskadowoTitle�>�����������2�2����������������Arrange Icons� >� ����� ����� ����� �������� ����� �� ����� 7��!����CUPL

Help – pomoc on-line i ogólne informacje na temat CUPL

3.2 ,���������( � �%'��� ���

JEDEC (rozszerzenie .���1�>���2�����7 ������:������� �������������� ���!�5� ��� ���! ���� "�!5� absolute file) (.��21�>� ��� ������� � .8)��"�!5�. �-� logic

simulation program – program symulacyjny).� ����������"5 2�1�>� �2����2�2������������������!�� ���7 �������������5Plik dokumentacji (.doc) – zawiera rozszerzone równania logiczne i tablice symboli

zmiennych.A Open PLA file (.7 �1�>��������7��������4� ������;����5

4 Tutorial CUPL

,�� ������� 7������� 7������� ��!�� ���� �����3� 7��!����� . �-� 4��� windows.�������������������2���7� ���3�7��2���7��!���&������������������7����2�7�������������CUPL.

4.1 Tworzenie bramek

���7����2�� � ������������3�7��!����. �-�4��������2&� �2��7��� ������ file�����3�open.

Page 29: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

29

< �������������7 ���� � ���������3�gates.pld z katalogu examples. Plik gates.pld7������ 7�����3� 2��� �� ����� . �-5� $� ���� 7�:�����3� ������ ���� �� �� 7��! �������� 2��7 �����5�� ����������2�������������7��2���� �!�������������������. �-5

Page 30: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

30

$���:���Options -> Compiler '7���2&����:�������7����2��simulate, a 7������7�����do Output file, wybierz tam JEDEC i ��2� ���&�������7��������3�7 ���6+%+.�������������2������5� 6�2�� ������� 7������ ������ ������� �7���� expanded macro i list, aby������3��4�������������7� ����5

9��� �� ��� �7���� ���7� ������ 2�� �2������&� 7 ��� ��2�� !������ ��� �ompilacji. Z menu.��7� ��� ���������3�Device Specific .��7� ��"��: ��7 ����2��������4����������������!��7�2�3� 7���� ���7� ����15� ,�� 4������ 2���7� ���� 7 ��&� 2������ 7 ��� 6+%+.&� �����symulacje i doda do programu wektory testowe.

������;��������7� ����� �2�����2����������� ���7 ����&�27�����������4�����!������2������F5G5

4.2 Licznik do 10

Ten ������� � 7������� �������� ����2����� 2������� . �-� "� �������� 2����� �instrukcje warunkowe)

���7����2��� ����������3�7 �������DE57 ��"�katalogu �U��7 �21� ��!��7�����356�2�� ��� ������������ ��������!���� �� ���� ����� ��������� ���� ���:����2��������!���2�����5�< ��������up, down i � ��������� ������������ ����������2������ ����5�

Asynchroniczny 7�����������2�!�����2��!�������&�!��� ������2��!��������� ������:35<2�2������7����� �����2����3��� �!��������7�7�����!��7��������"������1&��2��7��2���7� ���3�"�����!������3�7 ����4��������1���������3�7 ����4���������"5doc)

Page 31: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

31

************************************************************Count10************************************************************CUPL(WM) 4.7a Serial# MW-67999999Device g16v8ms Library DLIB-h-36-11Created Mon May 06 10:19:28 1996Name Count10Partno CA0018Revision 02Date 12/19/89Designer KahlCompany Logical Devices, Inc.Assembly NoneLocation None============================================================Expanded Product Terms============================================================Q0.d =>!Q0 & !Q1 & !Q2 & Q3 & !clr# !Q0 & !Q3 & !clrQ1.d =>!Q0 & !Q1 & !Q2 & Q3 & !clr & dir# Q0 & !Q1 & !Q3 & !clr & !dir# !Q0 & Q1 & !Q3 & !clr & !dir# Q0 & Q1 & !Q3 & !clr & dir# !Q0 & !Q1 & Q2 & !Q3 & !clr & dirQ2.d =>!Q0 & !Q1 & !Q2 & Q3 & !clr & dir# Q0 & Q1 & !Q2 & !Q3 & !clr & !dir# !Q1 & Q2 & !Q3 & !clr & !dir# Q0 & Q2 & !Q3 & !clr & dir# !Q0 & Q1 & Q2 & !Q3 & !clrQ3.d =>Q0 & !Q1 & !Q2 & Q3 & !clr & dir# !Q0 & !Q1 & !Q2 & !Q3 & !clr & dir# Q0 & Q1 & Q2 & !Q3 & !clr & !dir# !Q0 & !Q1 & !Q2 & Q3 & !clr & !dircarry =>!Q0 & !Q1 & !Q2 & !Q3 & !clr & dir# Q0 & !Q1 & !Q2 & Q3 & !clr & !dirclear =>clrcount =>Q3 , Q2 , Q1 , Q0down =>!clr & dirmode =>clr , dirup =>!clr & !dircarry.oe =>1

Page 32: WinCUPLmysinski.wieik.pk.edu.pl/WINCUPL/WinCUPLtutorial_PL.pdf2 1 1.1 Co to jest programowalna logika (ang. programmable logic PL) Logika programowalna, jak sama nazwa mówi jest to

32

6�2�����7�����������. �-�����������������2�������7��2������������� ��2��e.8������� . �-� ��������� ���������� 2����� ��2�� ������ �������� �� ��4������� �������"����������������2������������;15

4.3 Kwadrat

Z menu 4� ��� ���������3���5�,���������2�� ��7 �����������4������5�$� �������3�����7��������!�����B� ���� ����&� ������ � ���� ����3� ��� �������� ��� ������� pinów, dla tego projektu�������� 7��������3� H� ���:3� �� P� ���:3� "��� 7�������� �������� DQ*P15� =���� ����� H� piny���:�����������2������:�����&����2�2�����P�7����)?'������2������:�����5$�2��7��� �������� ��2�� ��4�������� ����2��� � �� 2�!����� "� 7��� ������� 2����� �����!�� 0)+-%15� 9��� ��!�� �������&� �2��7�� ����� ������ � ���� ����3� ��2�2�������� ��� ���� 7�����5� $� ���� ������ ������3&� ��� . �-� 7�2����� 7�� �� (+�+#,&� �����������2����������7�2��������5

Name SQUARE;Partno XX;Date 05/01/96;Revision 01;Designer Chip Willman;Company Logical Devices Inc.;Assembly None;Location U1;Device G16V8;/**********************************************************//* This Design Example is an example of a lookup table to *//* produce the square of a number coming in. *//* *//**********************************************************//* Allowable Target Device Types: *//**********************************************************//** Inputs **/Pin [2..5] = [I0..3] ; /* Input bus line 4 bits *//** Outputs **/Pin [12..19] = [Ot0..7] ; /* Output bus line 8 bits *//** Declarations and Intermediate Variable Definitions **/Field input = [I3..0];Field output = [Ot7..0];/** Logic Equations **/Table input=>output {‘d’00 => ‘d’000;‘d’01 => ‘d’001;‘d’02 => ‘d’004;$REPEAT A = [3..15]‘d’{A} => ‘d’{A*A};$REPEND}

< ��� � 7��!������ . �-� �������� ��2�� ��2��� �� ��� ����� 7������������2���������� 2������� ��!�� �����5� < � 7 ���� �U��7 �25�U�� �������� �7�2� ����2�:��7��������5