Logika sekwencyjna - Sequential logic

W teorii automatów , układ sekwencyjny jest rodzajem układu logicznego , którego moc zależy nie tylko od jego obecnej wartości sygnałów wejściowych, ale w ciągu minionych wejść, historia wejściowe, jak również. Jest to przeciwieństwo logiki kombinacyjnej , której wyjście jest funkcją tylko aktualnego wejścia. Oznacza to, że logika sekwencyjna ma stan ( pamięć ), podczas gdy logika kombinacyjna nie.

Logika sekwencyjna jest używana do konstruowania maszyn skończonych , podstawowego bloku konstrukcyjnego wszystkich obwodów cyfrowych. Praktycznie wszystkie obwody w praktycznych urządzeniach cyfrowych są mieszanką logiki kombinacyjnej i sekwencyjnej.

Znanym przykładem urządzenia z logiką sekwencyjną jest telewizor z przyciskami „kanał w górę” i „kanał w dół”. Naciśnięcie przycisku „w górę” daje telewizorowi sygnał wejściowy mówiący mu, aby przełączył się na następny kanał, powyżej tego, który aktualnie odbiera. Jeśli telewizor jest na kanale 5, naciśnięcie „w górę” przełącza go na kanał 6. Jeśli jednak telewizor jest na kanale 8, naciśnięcie „w górę” przełącza go na kanał „9”. Aby wybór kanału działał prawidłowo, telewizor musi mieć świadomość, który kanał aktualnie odbiera, co zostało określone na podstawie wcześniejszych wyborów kanałów. Telewizor przechowuje bieżący kanał jako część swojego stanu . Po podaniu sygnału wejściowego „kanał w górę” lub „kanał w dół”, sekwencyjna logika obwodu wyboru kanału oblicza nowy kanał na podstawie wejścia i bieżącego kanału.

Cyfrowe sekwencyjne obwody logiczne dzielą się na typy synchroniczne i asynchroniczne . W synchronicznych obwodach sekwencyjnych stan urządzenia zmienia się tylko w dyskretnych momentach w odpowiedzi na sygnał zegarowy . W obwodach asynchronicznych stan urządzenia może się zmienić w dowolnym momencie w odpowiedzi na zmieniające się dane wejściowe.

Synchroniczna logika sekwencyjna

Prawie cała logika sekwencyjna jest obecnie logiką taktowaną lub synchroniczną . W obwodzie synchronicznym oscylator elektroniczny zwany zegarem (lub generatorem zegara ) generuje sekwencję powtarzających się impulsów zwanych sygnałem zegarowym, który jest dystrybuowany do wszystkich elementów pamięci w obwodzie. Podstawowym elementem pamięci w logice sekwencyjnej jest flip-flop . Wyjście każdego przerzutnika zmienia się tylko po wyzwoleniu przez impuls zegarowy, więc zmiany sygnałów logicznych w całym obwodzie zaczynają się w tym samym czasie, w regularnych odstępach czasu, zsynchronizowanych z zegarem.

Wyjście wszystkich elementów pamięci (przerzutników) w obwodzie w danym momencie, zawarte w nich dane binarne, nazywane jest stanem obwodu. Stan obwodu synchronicznego zmienia się tylko wraz z impulsami zegarowymi. W każdym cyklu następny stan jest określany przez aktualny stan i wartość sygnałów wejściowych, gdy pojawia się impuls zegarowy.

Główną zaletą logiki synchronicznej jest jej prostota. Bramki logiczne, które wykonują operacje na danych, wymagają skończonej ilości czasu, aby zareagować na zmiany na swoich wejściach. Nazywa się to opóźnieniem propagacji . Odstęp między impulsami zegarowymi musi być wystarczająco długi, aby wszystkie bramki logiczne miały czas na reakcję na zmiany i ich wyjścia „ustabilizowały się” na stabilnych wartościach logicznych przed wystąpieniem następnego impulsu zegarowego. Dopóki ten warunek jest spełniony (ignorując niektóre inne szczegóły), gwarantujemy stabilność i niezawodność obwodu. Określa to maksymalną prędkość roboczą obwodu synchronicznego.

Logika synchroniczna ma dwie główne wady:

  • Maksymalna możliwa częstotliwość taktowania jest określona przez najwolniejszą ścieżkę logiczną w obwodzie, zwaną inaczej ścieżką krytyczną. Każde logiczne obliczenie, od najprostszego do najbardziej złożonego, musi zostać wykonane w jednym cyklu zegarowym. Tak więc ścieżki logiczne, które szybko kończą swoje obliczenia, są przez większość czasu bezczynne, czekając na następny impuls zegarowy. Dlatego logika synchroniczna może być wolniejsza niż logika asynchroniczna. Jednym ze sposobów przyspieszenia obwodów synchronicznych jest podzielenie złożonych operacji na kilka prostych operacji, które można wykonać w kolejnych cyklach zegara, technika znana jako potokowanie . Ta technika jest szeroko stosowana w projektowaniu mikroprocesorów i pomaga poprawić wydajność nowoczesnych procesorów.
  • Sygnał zegarowy musi być rozprowadzony do każdego przerzutnika w obwodzie. Ponieważ zegar jest zwykle sygnałem o wysokiej częstotliwości, rozkład ten zużywa stosunkowo dużą ilość energii i rozprasza dużo ciepła. Nawet klapki, które nic nie robią, zużywają niewielką ilość energii, generując w ten sposób ciepło odpadowe w chipie. W urządzeniach przenośnych, które mają ograniczoną moc baterii, sygnał zegara włącza się nawet wtedy, gdy urządzenie nie jest używane, zużywając energię.

Asynchroniczna logika sekwencyjna

Asynchroniczna logika sekwencyjna nie jest synchronizowana sygnałem zegarowym; wyjścia układu zmieniają się bezpośrednio w odpowiedzi na zmiany wejść. Zaletą logiki asynchronicznej jest to, że może być szybsza niż logika synchroniczna, ponieważ obwód nie musi czekać na sygnał zegara w celu przetworzenia wejść. Szybkość urządzenia potencjalnie ograniczony tylko opóźnienia propagacji tych bramek logicznych wykorzystywanych.

Jednak logika asynchroniczna jest trudniejsza do zaprojektowania i stwarza problemy niespotykane w projektach synchronicznych. Główny problem polega na tym, że elementy pamięci cyfrowej są wrażliwe na kolejność, w jakiej docierają ich sygnały wejściowe; jeśli dwa sygnały dotrą do przerzutnika lub zatrzasku prawie w tym samym czasie, stan, w który przechodzi obwód, może zależeć od tego, który sygnał dotrze do bramki jako pierwszy. Dlatego obwód może przejść w zły stan, w zależności od małych różnic w opóźnieniach propagacji bramek logicznych. Nazywa się to stanem wyścigu . Ten problem nie jest tak poważny w obwodach synchronicznych, ponieważ wyjścia elementów pamięci zmieniają się tylko przy każdym impulsie zegarowym. Odstęp między sygnałami zegarowymi został zaprojektowany tak, aby był wystarczająco długi, aby wyjścia elementów pamięci „ustabilizowały się”, aby nie zmieniały się, gdy nadejdzie następny zegar. Dlatego jedynymi problemami z synchronizacją są „wejścia asynchroniczne”; wejścia do układu z innych systemów, które nie są zsynchronizowane z sygnałem zegarowym.

Asynchroniczne obwody sekwencyjne są zwykle używane tylko w kilku krytycznych częściach systemów synchronicznych, w których prędkość jest na wagę złota, takich jak części mikroprocesorów i obwody przetwarzania sygnałów cyfrowych .

Projektowanie logiki asynchronicznej wykorzystuje różne modele i techniki matematyczne z logiki synchronicznej i jest aktywnym obszarem badań.

Zobacz też

Bibliografia

Dalsza lektura