WinCUPLartemis.wszib.edu.pl/~zab/sc/WinCUPLtutorial_PL.pdf · 2 1 1.1 Co to jest programowalna...

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

Transcript of WinCUPLartemis.wszib.edu.pl/~zab/sc/WinCUPLtutorial_PL.pdf · 2 1 1.1 Co to jest programowalna...

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

�������

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

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

Kraków dnia16.06.2004

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.

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

4

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.

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

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

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

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

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

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

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

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�����

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�� ��� ������� ��

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

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).

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:

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

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

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

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

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

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

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

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

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

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.

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.

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

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)

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

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