TC Moduł 9

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
TC M9 Slajd1.png
Układy asynchroniczne

TC M9 Slajd2.png
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 układ znalazł się w stanie . Pozostaje w nim tak długo, aż na wejściu pojawi się inna litera – . Wówczas układ może przejść do stanu . Przykładowe stany i 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ść.

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

TC M9 Slajd4.png
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 ; układ jest w stanie stabilnym z wyjściem (pętla z wektorem wejściowym ). W tym stanie (zgodnie z założeniem) może na wejściu pojawić się wektor – przechodzimy do stanu (wyjście ) lub wektor – przechodzimy do stanu (wyjście ). W stanie na wejściu może się pojawić wektor – przechodzimy do stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 4\,} , a na wyjściu jest stan Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 1\,} , gdyż ta sytuacja oznacza, że na wejściu kolejno pojawiały się wektory Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 00, 01, 11\,} . Jeśli w stanie Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 2\,} pojawi się Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 00\,} – wracamy do stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 1\,} . Należy teraz rozpatrzyć sytuację w stanie Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 3\,} i Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 4\,} . W stanie Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 3\,} po przyjściu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 00\,} wracamy do stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 1\,} , a po przyjściu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 11\,} przechodzimy do stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 5\,} (z wyjściem Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 0\,} ). W stanie Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 4\,} po przyjściu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 10\,} można przejść do już istniejącego stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 3\,} , zaś po przyjściu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 01\,} trzeba przejść do nowego stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 6\,} (nie można przejść do stanu Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 2\,} , gdyż sekwencja wejściowa Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle ...01,11,01,11,...\,} powodowałaby by wygenerowanie na wyjściu sekwencji Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 0101...\,} ). Do zamknięcia grafu pozostaje tylko uzupełnienie przejść ze stanów Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 5\,} i Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle 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.

TC M9 Slajd5.png
Następnym etapem syntezy układów asynchronicznych jest minimalizacja liczby stanów automatu, która przebiega tak samo, jak w przypadku układów synchronicznych. Łatwo sprawdzić, że na podstawie uzyskanej tablicy przejść wyjść można wyznaczyć zbiór par zgodnych: Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \{1,2\}} , , , , . Stąd maksymalne klasy zgodne są następujące: Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle \{1,2\}, \{1,3}, \{4\} \{3,5,6\}} . Warunek pokrycia i zamknięcia spełniają zbiory: . Oznaczając stany wewnętrzne kolejno literami , i , uzyskujemy tablicę przejść wyjść automatu minimalnego.

TC M9 Slajd6.png
W realizacji automatu asynchronicznego, podobnie jak w realizacji automatu synchronicznego, występują dwa etapy: kodowanie stanów i synteza strukturalna, czyli wyznaczenie funkcji wzbudzeń przerzutników. Oba te procesy w odniesieniu do układów asynchronicznych mają swoją specyfikę spowodowaną brakiem zewnętrznej synchronizacji.

Aby przeanalizować zjawiska zachodzące w układzie asynchronicznym przeprowadzimy syntezę automatu minimalnego. Stanom , , tego automatu przyporządkujemy wektory kodowe odpowiednio . Otrzymujemy zakodowaną tablicę przejść-wyjść, uwzględniającą nie wykorzystany wektor stanu . Na planszy pokazano również graf stanów automatu minimalnego z odpowiednimi wektorami kodowymi dla poszczególnych stanów.


TC M9 Slajd7.png
Zaprojektowany układ będzie działał poprawnie, jeżeli czasy działania elementów opóźniających są jednakowe, to znaczy . W rzeczywistości funkcja opóźnienia jest realizowana w układzie kombinacyjnym przez opóźnienia (czas przenoszenia) bramek, realizujących ten układ. Dlatego sygnały na wyjściach tego układu nie zmieniają swych wartości jednocześnie. Taka sytuacja może mieć wpływ na poprawność działania układu zwłaszcza w takim przypadku, w którym wektory kodowe sąsiednich stanów różnią się na więcej niż jednej pozycji. Właśnie tak jest w grafie automatu minimalnego przy przejściu ze stanu (wektor kodowy ) do stanu ) . Na planszy rozważono tę sytuację. Dla ( – czasy opóźnienia sygnałów ) stan pod wpływem wejść zmieni się na stan niestabilny , po czym (zgodnie z tablicą przejść) układ przejdzie do stanu stabilnego , zgodnego z założeniem. Takie przejście nazywa się wyścigiem niekrytycznym. Jeżeli , to dla wejść układ przejdzie do stanu , ale stan ten dla wejść jest stabilny; układ nie przejdzie do stanu . Takie przejście nazywa się wyścigiem krytycznym; powoduje ono nieprawidłową pracę układu. Aby zapobiec tej sytuacji, można odpowiednio skorygować graf stanów, zastępując bezpośrednie przejście ze stanu do stanu pod wpływem wejść – przejściem przez stan niestabilny .

TC M9 Slajd8.png
Dla stan pod wpływem wejść zmieni się na stan niestabilny , po czym (zgodnie z tablicą przejść) układ przejdzie do stanu stabilnego , zgodnego z założeniem. Jeżeli , to dla wejść układ przejdzie do stanu , po czym do stanu , też zgodnego z założeniem. W obu przypadkach – wyścig niekrytyczny.

TC M9 Slajd9.png
Aby uniknąć analizy poprawności działania realizacji układu asynchronicznego po jego zaprojektowaniu, można automat (minimalny) odpowiednio zakodować w taki sposób, aby wektory kodowe sąsiednich stanów różniły się tylko na jednej pozycji.

TC M9 Slajd10.png
Uwzględniając przeprowadzone rozważania łatwo stwierdzić, że graf automatu należy uzupełnić o stan niestabilny zakodowany , co prowadzi do zmodyfikowanej tablicy przejść podanej na planszy.

TC M9 Slajd11.png
Zmodyfikowaną tablicę rozpisujemy na poszczególne funkcje wzbudzeń oraz .

TC M9 Slajd12.png
Wyznaczone na podstawie tych tablic funkcje i (również ), opisują realizację układu kombinacyjnego, nazywaną realizacją ze sprzężeniem zwrotnym:

gdzie składnik wprowadzono w celu uniknięcia szkodliwego zjawiska, zwanego hazardem. Wprowadzenie tego składnika zapobiegnie pojawieniu się na wyjściu krótkiego impulsu o wartości logicznej , który może powstać przy zmianie sygnału z na .


TC M9 Slajd13.png
Plansza wyjaśnia powstawanie zjawiska hazardu. W układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny.

TC M9 Slajd14.png
W celu likwidacji hazardu wyrażenia boolowskie funkcji wzbudzeń należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą.

TC M9 Slajd15.png
Mając świadomość, że w realizowanym automacie zlikwidowaliśmy przyczyny wszystkich szkodliwych zjawisk, możemy przystąpić do narysowania schematu logicznego tego automatu.

TC M9 Slajd16.png
Z asynchronicznych przerzutników typu () są budowane przerzutniki synchroniczne typu , i . Istnieją różne mechanizmy synchronizacji przerzutników: od najprostszej – szerokością impulsu (tzw. latch), przez synchronizację dwustopniową (master-slave), aż po synchronizację zboczem przebiegu zegarowego. Synchronizacja zboczem polega na tym, że stan wejść przerzutnika oddziałuje na jego stan wewnętrzny (i tym samym na stan wyjść) tylko w momencie wystąpienia zmiany, np. z na , w przebiegu zegarowym.

Przerzutniki tego typu mają prostą budowę, ale mogą służyć tylko do przechowywania (zatrzaskiwania) informacji. Nie mogą służyć do budowy układów sekwencyjnych.


TC M9 Slajd17.png
Prawidłowa synchronizacja powinna działać tak, aby w czasie trwania okresu przebiegu zegarowego sygnał wejściowy przerzutnika był odczytywany jeden raz, a stan przerzutnika zmieniał się także jeden raz – niezależnie od zmiany sygnałów wejściowych. Mechanizm ten zostanie dokładnie omówiony na przykładzie, którego celem będzie zaprojektowanie asynchronicznego układu realizującego funkcje przerzutnika typu synchronizowanego narastającym (dodatnim) zboczem przebiegu zegarowego.

TC M9 Slajd18.png
Najczęściej do realizacji takiego przerzutnika przyjmuje się układ o schemacie blokowym zbudowanym z automatu sterującego i asynchronicznego przerzutnika . Automat sterujący o wejściach i steruje asynchronicznym przerzutnikiem , którego praca jest opisana w tablicy podanej na planszy. Przerzutnik ten może zmienić stan wyjścia z na , jeśli na wyjściu automatu sterującego pojawi się , lub z na , jeśli pojawi się na wyjściu (jednoczesne pojawienie się sygnału na wyjściu i jest niedopuszczalne).

TC M9 Slajd19.png
Graf stanów typu Moore’a automatu sterującego pokazano na niniejszej planszy. Stan jest stanem oczekiwania. Jeśli w tym stanie na wejściu jest (wektor wejściowy ), to zmiana sygnału zegarowego z na powoduje przejście automatu do stanu i pojawienie się na wyjściach , wektora , co spowoduje włączenie przerzutnika (jeśli uprzednio był wyłączony). Jeśli w stanie na wejściu jest (wektor wejściowy ), to zmiana sygnału zegarowego z na powoduje przejście automatu do stanu i pojawienie się na wyjściach , wektora , co spowoduje wyłączenie przerzutnika (jeśli uprzednio był włączony). Powrót do stanu ze stanów i następuje po zmianie sygnału z na .

TC M9 Slajd20.png
Na podstawie narysowanego grafu automatu tworzymy tablicę przejść-wyjść automatu sterującego, którą następnie kodujemy w sposób pokazany na planszy.

TC M9 Slajd21.png
Zakodowaną tablicę rozpisujemy na dwie tabelki dla poszczególnych funkcji i .

Z tabelek tych można wyznaczyć wyrażenia boolowskie dla i .


TC M9 Slajd22.png
Ostatecznie

Na tej podstawie i po zastosowaniu prawa De Morgana uzyskujemy schemat logiczny układu zaprojektowanego na elementach typu .


TC M9 Slajd23.png
Cały proces syntezy sekwencyjnego układu asynchronicznego prezentujemy raz jeszcze na innym przykładzie, ale tym razem z oszczędnymi komentarzami. Zadanie to słuchacz wykładu może potraktować jako zadanie treningowe. Plansze 24 do 28 prezentują kluczowe etapy syntezy.

TC M9 Slajd24.png
Tworzony jest pierwotny graf automatu, a na jego podstawie pierwotna tablica przejść wyjść.

TC M9 Slajd25.png
Pierwotna tablica przejść wyjść poddawana jest procesowi minimalizacji liczby stanów. Efektem minimalizacji jest zredukowanie liczby stanów z do .

TC M9 Slajd26.png
Kodowanie stanów wewnętrznych w celu zabezpieczenia układu przed szkodliwymi zjawiskami wyścigów krytycznych.

TC M9 Slajd27.png
Prawidłowo zakodowana tablica przejść wyjść jest punktem wyjścia do obliczenia funkcji wzbudzeń oraz funkcji wyjściowej.

TC M9 Slajd28.png
Obliczone funkcje mogą być bezpośrednio zrealizowane na bramkach logicznych.