TC Moduł 9

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Układy asynchroniczne

Struktura sekwencyjnego układu asynchronicznego jest podobna do struktury układu synchronicznego (por. moduł 7 plansza 5). Istotną różnicą jest brak wejścia zegarowego clk. Z tego powodu pamięć układu mogą stanowić przerzutniki (automaty elementarne) nie synchronizowane lub elementy opóźniające. Powstaje zatem pytanie: co – wobec braku sygnału zegarowego – wyznacza kolejne takty pracy układu, powodując zmiany jego stanów wewnętrznych? Czynnikiem powodującym te zmiany może być tylko zmiana stanów wejść. Taka sytuacja jest pokazana na rysunku fragmentu grafu. Pod wpływem litery wejściowej Xi układ znalazł się w stanie Sa. Pozostaje w nim tak długo, aż na wejściu pojawi się inna litera – Xj(ji) . Wówczas układ może przejść do stanu Sb. Przykładowe stany Sa i Sb nazywa się stanami stabilnymi. Należy przyjąć, że w układzie asynchronicznym wszystkie stany są stanami stabilnymi, a zmiana stanu może nastąpić tylko w wyniku zmiany stanu wejść.

Najprostszym asynchronicznym układem sekwencyjnym jest przerzutnik asynchroniczny typu SR. Na planszy podana jest tablica przejść przerzutnika SR. Z tablicy tej wyznaczamy tzw. funkcję charakterystyczną przerzutnika. Funkcja ta podaje zależność stanu następnego Q od stanu bieżącego i sygnałów na wejściach S, R. Wyrażenie boolowskie tej funkcji przekształcamy (wg prawa De Morgana) do postaci zawierającej funktory NAND. Odpowiedni schemat logiczny przerzutnika SR podany jest na rysunku.

Zaprojektujemy układ asynchroniczny, którego działanie jest opisane na planszy. Najpierw wykażemy, że automat działa zgodnie z grafem pokazanym na rysunku. Załóżmy, że na wejściu jest wektor 00; układ jest w stanie stabilnym 1 z wyjściem 0 (pętla z wektorem wejściowym 00). W tym stanie (zgodnie z założeniem) może na wejściu pojawić się wektor 01 – przechodzimy do stanu 2 (wyjście 0) lub wektor 10 – przechodzimy do stanu 3 (wyjście 0). W stanie 2 na wejściu może się pojawić wektor 11 – przechodzimy do stanu 4, a na wyjściu jest stan 1, gdyż ta sytuacja oznacza, że na wejściu kolejno pojawiały się wektory 00,01,11. Jeśli w stanie 2 pojawi się 00 – wracamy do stanu 1. Należy teraz rozpatrzyć sytuację w stanie 3 i 4. W stanie 3 po przyjściu Parser nie mógł rozpoznać (błąd składni): {\displaystyle 00\,<math> wracamy do stanu <math>1\,<math>, a po przyjściu <math>11\,} przechodzimy do stanu 5 (z wyjściem 0). W stanie 4 po przyjściu 10 można przejść do już istniejącego stanu 3, zaś po przyjściu 01 trzeba przejść do nowego stanu 6 (nie można przejść do stanu 2, gdyż sekwencja wejściowa ...01,11,01,11,... powodowałaby by wygenerowanie na wyjściu sekwencji 0101... ). Do zamknięcia grafu pozostaje tylko uzupełnienie przejść ze stanów 5 i 6. Bezpośrednio z uzyskanego grafu tworzymy tablicę przejść-wyjść tego automatu. Kółka w tej tablicy oznaczają stany stabilne. Należy zwrócić uwagę, że w powyższym grafie wszystkie stany są stanami stabilnymi.