CYFROWE BLOKI FUNKCJONALNE MULTIPLEKSER Multiplekser to układ o n wejściach wybierających (adresowych), 2 n wejściach informacyjnych i jednym wyjściu. Każdej z 2 n kombinacji wejść wybierających odpowiada jedno wejście informacyjne. Gdy na wejściach wybierających występuje kombinacja odpowiadająca danemu wejściu informacyjnemu, to wejście to zostaje przyłączone do wyjścia. IN 0 IN SEL OUT SEL OUT 0 IN 0 IN Rys.. Multiplekser o dwóch wejściach informacyjnych IN 0, IN, jednym wejściu wybierającym SEL i jednym wyjściu Y jako przełącznik wielopozycyjny Tablica. Tablica 2. SEL IN IN 0 OUT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL IN IN 0 00 0 0 0 0 0 0 0 OUT SEL IN SEL IN 0 IN IN 0 OUT SEL Rys. 2. Schemat logiczny dwuwejściowego multipleksera.
Symbole Wejścia informacyjne: I k (od input) lub D k (od data), k = 0,,..., 2 n- ; Wejścia wybierające (adresowe): A (Least Significant Bit LSB), B, C,... lub S k (od select), k = 0,,..., n; Wyjście: Y lub Z; Schemat multipleksera 2: łatwo uogólnić dla większej liczby wejść. Musi być tyle bramek AND ile jest wejść informacyjnych, a każda bramka musi mieć jedno wejście jako informacyjne plus n wejść wybierających, np. dla multipleksera 4:: I 0 I I 2 Y I 3 A B Praktycznie realizowane scalone multipleksery mają dodatkowe wejście Strobe, które wysokim poziomem blokuje multiplekser wymuszając Y = 0 niezależnie od stanu wejść adresowych i informacyjnych. Ponadto niektóre multipleksery mają dodatkowe wyjście będące negacją Y. W rodzinie TTL 74xx podstawowy zestaw multiplekserów obejmuje: poczwórny multiplekser 2: (7457) wspólne wejście wybierające, wspólny strob, 2
podwójny multiplekser 4: (7453) wspólne wejście wybierające, indywidualne wejścia strobujące, multiplekser 8: (745) dodatkowe wyjście (negacja Y), multiplekser 6: (7450) dodatkowe wyjście (negacja Y). Podstawowa struktura multipleksera ma jedno wyjście, czyli przełącza słowa - bitowe. Łącząc jednobitowe multipleksery równolegle uzyskamy możliwość komutowania słów wielobitowych. Np. poczwórny multiplekser 2: 7457 może być uważany za multiplekser czterobitowy wybierający jedno z dwóch czterobitowych słów wejściowych. Stosując dwa takie układy uzyskujemy możliwość komutacji dwóch słów ośmiobitowych. Zastosowanie multiplekserów do realizacji funkcji logicznych Tablicę funkcji logicznej możemy interpretować w ten sposób, że dla każdej kombinacji wejść należy wybrać 0 lub. Jeśli więc x i x 0 zinterpretujemy jako wejście wybierające B i A, to wartość funkcji Y, staje się równa wejściom odpowiadającym poszczególnym adresom BA. Multiplekser można więc traktować jako układ realizujący dowolną funkcję n zmiennych, gdzie n jest liczbą wejść adresowych. Realizacja funkcji polega na odpowiednim przypisaniu wejściom informacyjnym wartości 0 i. Przykładowa funkcja x x 0 y 0 0 0 0 0 0 { wartości funkcji logicznej Można zmniejszyć o jeden potrzebną liczbę wejść adresowych, tzn. zrealizować dowolną funkcję n zmiennych za pomocą multipleksera o (n-) wejściach wybierających. Dla dowolnej funkcji n zmiennych każdej kombinacji (n-) zmiennych odpowiadają dokładnie dwa wiersze w tablicy kombinacji. Istnieją dokładnie cztery warianty wartości jakie funkcja może przyjąć dla pary kombinacji wejściowych. 0 0 I 0 I I 2 I 3 4: B x Z A x 0 y X 3 X 2 X X 0 Y Wartości wejść informacyjnych 0 0 0 0 0 0 X 0 X 0 3
Realizacja funkcji n zmiennych za pomocą multipleksera o (n-) wejściach adresowych polega na przypisaniu (n-) zmiennych do wejść adresowych oraz na odpowiednim podaniu 0,, X 0 lub X 0 na wejścia informacyjne. Przykład (na tablicy) Zrealizować, za pomocą multipleksera 8:, podaną funkcję 4-ch zmiennych: X3 X2 X X0 Y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DEMULTIPLEKSER Demultiplekser jest układem komplementarnym do multipleksera. Ma jedno wejście informacyjne, n wejść adresowych i 2 n wyjść. Na wyjście o numerze równym adresowi przekazywany jest stan wejścia informacyjnego, pozostałe wyjścia są nieaktywne (przyjmują wartość 0). OUT 0 IN OUT SEL SEL OUT 0 OUT 0 IN 0 0 IN Rys. 3. Demultiplekser o dwóch wyjściach OUT 0, OUT i jednym wejściu wybierającym SEL jako przełącznik wielopozycyjny OUT 0 SEL IN OUT SEL IN 4
IN OUT 0 SEL OUT Rys. 4. Schemat logiczny dwuwejściowego demultipleksera. Symbole Wejście informacyjne: I lub D; Wejścia wybierające (adresowe): A (Low Significant Bit), B, C,... lub S k, k = 0,,..., n; Wyjście: Y; Równania wyjść łatwo uogólnić na większą liczbę wyjść, np. dla demultipleksera :4 będzie: S S IN Y0 0 Y S S0 Y S S0 3 IN IN Y3 S S0 IN W postaci scalonej dostępna jest grupa układów nazywanych decoder/demultiplexer, a więc łączących bardzo zbliżone funkcje dekodera i demultipleksera. DEKODER Dekoderem nazywamy układ zamieniający naturalny kod binarny na kod z N. Mówiąc inaczej układ ten uaktywnia jedną z kilu linii wyjściowych w zależności od wejściowego kodu binarnego i stanu wejścia zezwalającego (bramkowego). Dla n linii wejściowych mamy 2 n linii wyjściowych. 5
Wyjście Y 0 jest aktywne gdy kod wejściowy jest równy 0 D = 000 B Wyjście Y gdy D = 00 B Wyjście Y 2 gdy 2 D = 00 B Wyjście Y 3 gdy 3 D = 0 B, itd. Dekodery mają dodatkowo co najmniej jedno wejście bramkujące (enable, oznaczane literami E, EN, G), za pomocą którego można zablokować dekoder, tzn. wysterować wszystkie wyjścia do poziomu nieaktywnego. Załóżmy, że poziomem aktywnym na wyjściu jest (H) oraz że wejście EN blokuje dekoder poziomem niskim. W takim przypadku dekoder z wejściem EN interpretowanym jako wejście informacyjne jest tożsamy z demultiplekserem (zamiana roli sprowadza się do zmiany funkcji jednego wejścia EN na IN). W przypadku dekoderów przyjmuje się jako poziom aktywny na wyjściu poziom niski (czyli wyjście wybrane ma poziom niski, pozostałe wysoki, gdy dekoder jest zablokowany wszystkie wyjścia są w stanie wysokim). Wobec tego gdy scalone dekodery/demultipleksery traktuje się jako demultipleksery, to w stosunku do wcześniej przedstawianej idei różnią się one stanem nie wybranych wyjść, jest on wysoki (H) a nie niski (L) jak zakładaliśmy poprzednio. Podstawowe scalone układy typu dekoder/demultiplekser to: podwójny 2:4 (7439) indywidualne wejścia Enable dla każdego, 3:8 (7438) trzy wejścia Enable, 4:6 (7454) dwa wejścia Enable. Aby dekoder był odblokowany musi być: G = G2A 0 G2B 0 Jeżeli którekolwiek z tych wejść ma inny poziom, wszystkie wyjścia mają poziom wysoki. Jeżeli chcemy wykorzystać powyższy dekoder jako multiplekser mamy dwie możliwości: 6
. G2A G2B 0 a G traktujemy jako wejście informacyjne demultipleksera, mamy wówczas: G = => Y k = 0, (numer wyjścia k określony jest wejściami adresowymi A, B, C), G = 0 => Y k =. W tym przypadku demultiplekser przekazuje na wyjście stan wejścia w postaci zanegowanej 2. G,G2A 0 a G2B traktowane jest jako wejście informacyjne G2B 0 => Y k = 0, (numer wyjścia k określony jest wejściami adresowymi A, B, C), G2B => Y k =. W tej sytuacji demultiplekser przekazuje na wyjście stan wejścia. (Przykłady zastosowań dekodera na tablicy) Narysować układ połączeń rejestru wejściowego z magistralą mikroprocesora 8080, dla którego adres rejestru jest równy AC H. A 0 A 0 O 0 A A O CE REG A 2 A 2 O 2 A 3 A 4 A 5 A 6 E E2 O 3 O 4 O 5 O 6 A 7 E 3 O 7 I OR 7
REJESTRY Rejestry to zespoły odpowiednio połączonych przerzutników. Rejest 4-bitowy równoległy Rejest 4-bitowy przesuwający REJESTRY RÓWNOLEGŁE (parallel registers) Funkcja podstawowa Q := X równoległy zapis informacji Funkcje dodatkowe Q := 0 zerowanie Wpisywanie informacji może być realizowane za pomocą bezpośrednich wejść wpisujących L (load), WR (write) i zerujących (CLR, R,...) lub za pomocą wejść przygotowujących. W pierwszym przypadku (określanym jako zapis asynchroniczny / zerowanie asynchroniczne) zmiana stanu rejestru następuje z chwilą wystąpienia aktywnego poziomu na wejściu zapisu / zerowania (np. na L (WR), 0 na L ( W R ). W takcie trwania aktywnego poziomu na wejściu wpisującym rejestr jest przezroczysty (transparent), tzn., że gdy zmienia się stan wejść to również stan wyjść ulega zmianie. 8
W drugim przypadku (określonym jako zapis synchroniczny / zerowanie synchroniczne) odpowiednie wejścia sterujące przygotowują (programują) funkcję, która zostanie wykonana przy najbliższym aktywnym zboczu sygnału zegarowego. W czasie pomiędzy kolejnymi aktywnymi zboczami zegara rejestr nie zmienia stanu niezależnie od ew. zmian na wejściach informacyjnych. UWAGA: Rejestry z zapisem asynchronicznym mogą służyć jako tzw. zatrzaski ( latches ), np. do zapamiętywania stanu szyny danych mikroprocesora (rejestr wyjściowy). Nie nadają się natomiast do realizacji układu ze sprzężeniem zwrotnym (np. akumulatora) taktowanie sygnału zegarowego (gdyby taktować sygnałem typu WR, to w czasie aktywnego poziomu tego sygnału miałoby miejsce niekontrolowane, asynchroniczne akumulowanie informacji wejściowej) REJESTRY PRZESUWAJĄCE (shift registers, serial registers) Funkcja podstawowa przesuwanie (w lewo, w prawo) Funkcje dodatkowe zapis równoległy, zerowanie Rejestry przesuwające są zawsze zbudowane z przerzutników synchronicznych, a więc zawsze mają typowe wejścia zegarowe. Przesuwanie informacji odbywa się wyłącznie przy aktywnych zboczach zegara. 9
SISO (Serial Input Serial Output) szeregowoszeregowy (bardzo długie rejestry przesuwające mogą być całkowicie szeregowe, tj. jedno wejście, jedno wyjście) SIPO (Serial Input Parallel Output) szeregowo-równoległy PIPO (Parallel Input Parallel Output) równoległo-równoległy PISO (Parallel Input Serial Output) równoległo-szeregowy Przesuwanie informacji może być w lewo i w prawo (to rozróżnienie jest istotne dla rejestrów dwukierunkowych) w lewo = w kierunku wzrastających współczynników wagowych (mnożenie) w prawo = w kierunku malejących współczynników wagowych (dzielenie) Przykład (przesuwanie arytmetyczne): stan początkowy przesuw w lewo (shift left) X L = 0 przesuw w prawo (shift right) X R = 0 00 B = 6 D 00 B = 2 D 00 B = 3 D Wybrane zastosowania 0
) Mnożenie / dzielenie przez potęgi 2 2) PISO i SIPO zamiana reprezentacji równoległe szeregowe, szeregowe równoległe. 3) Badanie wartości poszczególnych bitów w słowie n-bitowym (transmisja przetwarzania A/C, C/A) 4) Filtracja cyfrowa 5) Rejestry liczące: liczniki pierścieniowe, Johnsona, liniowe. Przykłady: licznik pierścieniowy X s = Q n-, licznik Johnsona Xs Q n, rzesuwanie cykliczne samokorygujące, liczniki liniowe X s = suma modulo 2 (wybrane wyjścia) Dla pewnych połączeń uzyskuje się tzw. sekwencje maksymalnie długie tj. o długości 2 n (wszystkie stany są obiegane z wyjątkiem 0), np. dla n = 4 sekwencje maksymalnie długie otrzymuje się dla X s = Q 3 Q 0 i X s = Q 3 Q 2.Narysować pełny graf poniższego układu z rejestrem przesuwającym 4-bitowym (przesuw w prawo). Rejestr
LICZNIKI (counters) Liczniki to układy sekwencyjne, które obiegają ustalony zestaw stanów wewnętrznych ułożonych w pojedynczy cykl, np.: licznik prosty (simple counter) liczniki złożone (multimode counter) Liczbę stanów obieganych przez licznik nazywamy pojemnością licznika (lub długością cyklu). Licznik o pojemności N nazywa się często licznikiem modulo- N. Rejestry liczące (licznik pierścieniowy, Johnsona, liniowy) to szczególne przypadki liczników. Często ogólne pojęcie licznika zawęża się do takich układów, które obiegają stany odpowiadające kolejnym liczbom naturalnym (katalogowe pojęcie licznika zwykle oznacza tego rodzaju układ). Liczniki w tym węższym rozumieniu dzielą się na binarne (o długości cyklu postaci 2 n ) i dziesiętne (dekadowe, BCD) (o długości cyklu postaci 0 m ). Ponadto liczniki takie mogą zliczać w górę (w przód) (up counter) lub w dół (wstecz) (down counter), względnie w górę lub w dół, zależnie od stanu wejścia określającego kierunek zliczania (reversible counter, up / down counter). Liczniki dzieli się na asynchroniczne i synchroniczne. Literatura 2
[] Janusz Nieznański, niepublikowane materiały z wykładu Podstawy techniki cyfrowej i mikroprocesorowej 3