Upload
others
View
2
Download
1
Embed Size (px)
Citation preview
1
CYFROWE BLOKI FUNKCJONALNE
MULTIPLEKSER
Multiplekser to układ o n wejściach wybierających
(adresowych), 2n wejściach informacyjnych i jednym wyjściu. Każdej z 2n
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.
IN0 OUT
IN1
SEL
SEL OUT
0 IN0
1 IN1
Rys. 1. Multiplekser o dwóch wejściach informacyjnych IN0, IN1, jednym wejściu
wybierającym SEL i jednym wyjściu Y jako przełącznik wielopozycyjny
Tablica 1. Tablica 2.
SEL IN1 IN0 OUT
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
IN1 IN0
00 01 11 10
SEL 0 0 1 1 0
1 0 0 1 1
0SEL IN SE IOU N1T L
SEL
IN1
IN0
OUT
Rys. 2. Schemat logiczny dwuwejściowego multipleksera.
2
Symbole
Wejścia informacyjne: Ik (od input) lub Dk (od data), k = 0, 1, ... , 2n-1;
Wejścia wybierające (adresowe): A (Least Significant Bit LSB), B, C, ... lub
Sk (od select), k = 0, 1, ... , n;
Wyjście: Y lub Z;
Schemat multipleksera 2:1 ł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:1:
I0
I1
YI2
I3
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:1 (74157) – wspólne wejście wybierające,
wspólny strob,
3
podwójny multiplekser 4:1 (74153) – wspólne wejście wybierające,
indywidualne wejścia strobujące,
multiplekser 8:1 (74151) – dodatkowe wyjście (negacja Y),
multiplekser 16:1 (74150) – dodatkowe wyjście (negacja Y).
Podstawowa struktura multipleksera ma jedno wyjście, czyli przełącza słowa 1-
bitowe. Łącząc jednobitowe multipleksery równolegle uzyskamy możliwość
komutowania słów wielobitowych. Np. poczwórny multiplekser 2:1 74157 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 1. Jeśli więc x1 i x0 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 1.
Przykładowa funkcja
x1 x0 y
0 0 1
0 1 0
1 0 0
1 1 1
I0
I1
B
Z
4:1
I2
I3 A
1
0
0
1
x0
x1
y
wartości
funkcji
logicznej {
Można zmniejszyć o jeden potrzebną liczbę wejść adresowych, tzn.
zrealizować dowolną funkcję n zmiennych za pomocą multipleksera o (n-1)
wejściach wybierających. Dla dowolnej funkcji n zmiennych każdej kombinacji
(n-1) 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.
X3 X2 X1 X0 Y Wartości wejść
informacyjnych
0 0
0
0
1
1
0
1
1 0 X0 0X 1
1
4
Realizacja funkcji n zmiennych za pomocą multipleksera o (n-1) wejściach
adresowych polega na przypisaniu (n-1) zmiennych do wejść adresowych oraz
na odpowiednim podaniu 0, 1, X0 lub 0X na wejścia informacyjne.
Przykład (na tablicy)
Zrealizować, za pomocą multipleksera 8:1, podaną funkcję 4-ch zmiennych:
X3 X2 X1 X0 Y
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
0 1 0 1 0
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1
1 1 1 1 1
DEMULTIPLEKSER
Demultiplekser jest układem komplementarnym do multipleksera. Ma jedno
wejście informacyjne, n wejść adresowych i 2n wyjść. Na wyjście o numerze
równym adresowi przekazywany jest stan wejścia informacyjnego, pozostałe
wyjścia są nieaktywne (przyjmują wartość 0).
OUT0IN
OUT1
SEL
SEL OUT0 OUT1
0 IN 0
1 0 IN
Rys. 3. Demultiplekser o dwóch wyjściach OUT0, OUT1 i jednym wejściu wybierającym SEL
jako przełącznik wielopozycyjny
INSELOUT0
INSELOUT1
5
SEL
IN OUT0
OUT1
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 Sk, k = 0,
1, ... , n;
Wyjście: Y;
Równania wyjść łatwo uogólnić na większą liczbę wyjść, np. dla
demultipleksera 1:4 będzie:
INSSY 010
INSSY 011
INSSY 013
INSSY 013
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 ‘1 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 2n linii wyjściowych.
6
Wyjście Y0 jest aktywne gdy kod
wejściowy jest równy 0D = 000B
Wyjście Y1 gdy 1D = 001B
Wyjście Y2 gdy 2D = 010B
Wyjście Y3 gdy 3D = 011B, 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 1 (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 (74139) – indywidualne wejścia Enable dla każdego,
3:8 (74138) – trzy wejścia Enable,
4:16 (74154) – dwa wejścia Enable.
Aby dekoder był odblokowany musi być:
G1 = 1
0G2A
0G2B 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:
7
1. 0G2BG2A a G1 traktujemy jako wejście informacyjne demultipleksera,
mamy wówczas:
G1 = 1 => Yk = 0, (numer wyjścia k określony jest wejściami adresowymi
A, B, C),
G1 = 0 => Yk = 1.
W tym przypadku demultiplekser przekazuje na wyjście stan wejścia w
postaci zanegowanej
2. 0G2A,11G a G2B traktowane jest jako wejście informacyjne
0G2B => Yk = 0, (numer wyjścia k określony jest wejściami adresowymi
A, B, C),
1G2B => Yk = 1.
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 ACH.
E1
E2
E3
O1
O2
O3
O4
O5
O6
O7
O0
I OR
CE
A0
A1
A2
A0
A1
A2
A3
A4
A5
A6
A7
REG
8
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. 1 na
L (WR), 0 na L ( RW ).
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.
9
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.
10
SISO (Serial Input Serial Output) – szeregowo-
szeregowy (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 0110B = 6D
przesuw w lewo (shift left) XL = 0 1100B = 12D
przesuw w prawo (shift right) XR = 0 0011B = 3D
Wybrane zastosowania
11
1) 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 Xs = Qn-1,
licznik Johnsona 1ns QX ,
rzesuwanie cykliczne samokorygujące,
liczniki liniowe Xs = suma modulo 2 (wybrane wyjścia)
Dla pewnych połączeń uzyskuje się tzw. sekwencje maksymalnie długie tj. o
długości 2n – 1 (wszystkie stany są obiegane z wyjątkiem 0), np. dla n = 4
sekwencje maksymalnie długie otrzymuje się dla Xs = Q3 Q0 i Xs = Q3
Q2 1.Narysować pełny graf poniższego układu z rejestrem przesuwającym 4-bitowym (przesuw
w prawo).
Rejestr
12
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 2n) i dziesiętne (dekadowe, BCD) (o długości cyklu postaci 10m).
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
13
[1] Janusz Nieznański, niepublikowane materiały z wykładu „Podstawy techniki cyfrowej
i mikroprocesorowej”