AUTOMATY.doc

(481 KB) Pobierz
Technika cyfrowa

Pojęcia podstawowe

Jeżeli stan wyjść układu cyfrowego zależy nie tylko od aktualnego stanu wejść, lecz także od poprzednich stanów wejść, jest to układ sekwencyjny. Uwzględnienie wpływu stanów poprzednich jest możliwe tylko wówczas, gdy układ jest wyposażony w pamięć. Posiadanie pamięci jest podstawową cechą układu sekwencyjnego. Działanie układu sekwencyjnego można opisać przy pomocy:

 

-          stanów wejść: X = {X0, X1, ..., XN-1}, X = {x1, x2, ..., xn}

-          stanów wyjść: Y = {Y0, Y1, ..., YM-1}, Y = {y1, y2, ..., ym}

-          stanów pamięci (stanów wewnętrznych) A = {A0, A1, ..., AK-1}, A = {Q1, Q2, ..., Qk}

 

Do właściwego funkcjonowania pamięci potrzeba, aby jej stan również zależał od stanu wejść i poprzedniego stanu pamięci. Wobec tego układ sekwencyjny można opisać funkcjami:

 

              d: A ´ X ® A                                                                                                                                            1.1

              l: A ´ X ® Y                                                                                                                                            1.2

 

Funkcje d i l to odpowiednio funkcja przejść i funkcja wyjść.

Tak zdefiniowany model matematyczny układu sekwencyjnego jest nazywany automatem. Uściślając, związki 1.1 i 1.2 opisują tzw. automat Mealy’ego.

 

Warto zauważyć, że układ kombinacyjny jest szczególnym przypadkiem tak opisanego układu sekwencyjnego, gdyż dla A = 1:

 

              l: X ® Y

 

Jeśli stan pamięci zależy od stanu wejść, to stan wyjść można uzależnić wprost tylko od stanu pamięci (zależność od stanu wejść będzie pośrednia)

 

              d: A ´ X ® A                                                                                                                                            1.3

              l: A ® Y                                                                                                                                            1.4

 

Tak zdefiniowany model matematyczny nazywamy automatem Moore’a.

Podział automatów

W rozważanych poprzednio układach, zbiory A, X, Y są skończone i dlatego opisujący je model jest nazywany automatem skończonym. Zadeklarowanie d i l jako funkcji określa automat deterministyczny. Ogólna teoria automatów zajmuje się także automatami niedeterministycznymi, w których parze stanów A, X może odpowiadać więcej niż jeden nowy stan A lub więcej niż jeden stan wyjść Y. W szczególnym przepadku automatów probabilistycznych operuje się prawdopodobieństwami uzyskania odpowiednich nowych stanów A lub stanów wyjść Y.

Automat nazywamy zupełnym, jeśli jego funkcje przejść i wyjść są określone dla wszystkich par (A, X) ze zbioru A ´ X.

Struktury automatów

Z zależności 1.1 i 1.2 wynika podstawowa struktura automatu (a) przedstawiona na poniższym rysunku:

 

 

Struktury układów sekwencyjnych.

 

Blok realizujący funkcję l jest układem kombinacyjnym, natomiast zadaniem bloku opisanego funkcją d jest zapamiętywanie potrzebnych informacji. Skoro wektor A określa stan pamięci, to w bloku opisanym funkcją d można wydzielić część pamięciową m (o sygnałach wyjściowych Q, tworzących wektor A) i część pomocniczą gamma przygotowującą sygnały dla bloku pamięci. Wprowadzenie funkcji pomocniczej umożliwi zastosowanie standardowych elementów pamięciowych, bowiem zadanie dostosowania pamięci do potrzeb funkcji d przejmuje funkcja g (b). Mamy więc:

 

A = d(A, X) = m(g(A, X))

 

lub wprowadzając stan pośredni:

 

              g(A, X) = B,                             m(B) = A

 

gdzie:

B – wektor wzbudzeń elementów pamięci

 

B = (qa, qb, ..., qz)

 

Warto zauważyć, że blok opisany funkcją g jest układem kombinacyjnym, dlatego dla uproszczenia realizacji można go połączyć z blokiem l  (c), co prowadzi do wniosku:

 

Układ sekwencyjny składa się z układu kombinacyjnego i elementów pamięci.

 

Problem czasu w automatach

W opisie układów kombinacyjnych pomijaliśmy dotychczas problem czasu realizacji funkcji, gdyż – poza oczywistym opóźnieniem wyników przetwarzania – nie miał on wpływu na samą funkcję. W stosunku do układów kombinacyjnych nadal możemy tak postępować.

 

              Y = l(A, X), B = g(A, X) itd.

 

Jednakże w układach odpowiedzialnych za pamiętanie stanów czas odgrywa bardzo ważną rolę, trzeba go uwzględnić:

 

              d(At, Xt) = At+t

 

Wielkość t symbolizuje zwłokę, wprowadzoną przez układ realizujący funkcję d (w rzeczywistości każdy sygnał Q wektora A może mieć inny czas przejścia przez układ, ale dla ogólnych rozważań nie jest to istotne). Taki opis umożliwia odróżnienie stanu poprzedniego At od następnego At+t, co bywa też zapisywane w postaci:

 

              d(A, X) = A’

 

Układy asynchroniczne i synchroniczne

Współczesne układy półprzewodnikowe mają czas opóźnienia rzędu nanosekund. Zatem jeśli dla jakiegoś stanu Xi jest d(Aa, Xi) = Ab, d(Ab, Xi) = Ac, d(Ac, Xi) = Ad, itd., to przejście układu od stanu Aa do Ad (lub dalej) uniemożliwiają określenie chwili zmiany, np. chwili pojawienia się stanu Ac dla zmiany stanu Xi w Xj. Takie lawinowe zmiany stanu pamięci w zupełnie przypadkowych chwilach są niepożądane i dlatego naturalne przejścia zachowuje się tylko w przypadkach, gdy:

             

              ("Xi, Aj)              d(Aj, Xi) = Ak Þ d(Ak, Xi) = Ak                                                                      1.5

 

Stan Ak jest stabilny przy Xi, a układ spełniający powyższy (1.5) warunek jest nazywany układem asynchronicznym.

 

Jego cechą charakterystyczną jest to, że wszelka zmiana stanów A lub Y może w nim wystąpić jedynie pod wpływem zmiany stanu X.

 

Przykładem asynchronicznego układu sekwencyjnego może być układ sterowania dźwigu osobowego. Zmiana położenia klatki następuje tylko pod wpływem sygnałów z przycisków zewnętrznych lub wewnętrznych.

Zupełnie inaczej działa kalkulator elektroniczny. Równoczesne przetwarzanie wielocyfrowych liczb jest bardzo kosztowne i dlatego w kalkulatorach działania wykonuje się kolejno (sekwencyjnie) na poszczególnych cyfrach. Naciśnięcie przycisku dowolnej operacji wywołuje więc całą sekwencję działań, bez dalszego udziału sygnałów zewnętrznych. W celu uporządkowania tych działań i uniknięcia niekontrolowanej zmiany stanów wprowadza się w takich przypadkach specjalny sygnał taktujący, zwany sygnałem zegara. Jego zadaniem jest narzucanie rytmu zmian stanów wewnętrznych układu.

Obecność sygnałów taktujących jest niezbędna, zwłaszcza w urządzeniach, gdzie są przetwarzane szeregowo (bit po bicie) przekazywane informacje cyfrowe. Jej nośnikami są stany 0 i 1. Stąd odróżnienie ciągu 110000 od 10 jest możliwe tylko wówczas, gdy istnieje sposób wyróżniania poszczególnych chwil odpowiadających sygnałom binarnym. Układy, w których zmiana stanu wewnętrznego jest synchronizowana sygnałami taktującymi naszą nazwę układów synchronicznych. Impulsy taktujące w tych układach dzielą czas na odcinki zwane taktami, które można ponumerować, nadając przez to czasowi charakter ziarnisty (dyskretny).

Przyjmując t = 0, 1, 2, ... można układ synchroniczny opisać równaniami:

             

              At+1 = d(At, Xt),              Yt = l(At, Xt)

lub

              At+1 = m(Bt),                            Bt = g(At, Xt),                                          Yt = l( At, Xt)

 

Zależności te dotyczą bardziej ogólnego przypadku – układów Mealy’ego.

Pominięcie Xt w funkcjach d i g daje opisy układów Moore’a.

 

Impulsy taktujące mają powodować zmianę stanu wewnętrznego tylko w ściśle określonych chwilach, są więc jak gdyby impulsami strobującymi, pobierającymi próbki sygnałów ze stanów A i X (lub B) i kierującymi je do elementów pamięci. Takie zadanie impulsów zegara najprościej można zrealizować przez bramkowanie (w elementach AND lub NAND) wszystkich sygnałów wzbudzeń sygnałem taktującym c. Jednak takie rozwiązanie daje złe wyniki.

 

W przypadku pierwszym zmiana stanu A następuje jeszcze w czasie trwania impulsu c. Nowy stan ma więc możliwość wygenerowania kolejnego stanu (jeszcze nowszego) aż do zaniku impulsu c. Jak łatwo zauważyć, jest analogia do przerzutnika typu D-Latch, w którym wejście zegarowe bramkowało sygnał informacyjny D. Więcej niż jedna zmiana stanu A w czasie trwania jednego taktu jest niezgodna z założeniami. Takie rozwiązanie należy odrzucić. Próbą walki z tą niedogodnością może okazać się skracanie impulsu c tak, aby nastąpiła tylko jedna zmiana stanu A. Jednak przy nieuniknionych technologicznych rozrzutach parametrów układu oraz skończonym pasmem przenoszenia sygnału takie rozwiązanie grozi błędami w działaniu elementów pamięci.

 

Proste ominięcie opisanych problemów polega na takim opóźnieniu reakcji elementów pamięciowych, aby zmiana stanu A nastąpiła już po zakończeniu impulsu c. Nowa zmiana może wówczas nastąpić dopiero po następnym impulsie zegarowym. Układ zadziała zgodnie z założeniami.

Sposoby opisu automatów

W układach kombinacyjnych podanie stanów wejść i odpowiadających im stanów wyjść w pełni opisywało funkcje przełączające, a tym samym zadania układu i sposób jego działania.

W układach sekwencyjnych podanie ciągów stanów wejść i odpowiadających im ciągów stanów wyjść stanowi tylko zewnętrzny opis układu, nie określający ani pamięci, ani funkcji przejść i wyjść. Dla uwzględnienia tych parametrów układu potrzebny jest inny opis, wiążący wszystkie elementy modelu automatu i wprowadzony już po określeniu niezbędnej pamięci układu.

 

Opis słowny powinien przyporządkowywać sygnałom wejściowym w odpowiednim porządku ich występowania, sygnały wyjściowe. W zależności od rodzaju przekształcenia i liczby sygnałów, może to być opis bardzo prosty lub bardzo rozbudowany. Na przykład wymaganie „zbudować licznik zliczający impulsy wejściowe w naturalnym kodzie binarnym od 0 do 15”, określa układ prawie jednoznacznie. Można się spierać, czy mamy zliczać impulsy rozpoczęte i zakończone oraz w jaki dokładnie sposób zrealizować ten licznik (jakie p...

Zgłoś jeśli naruszono regulamin