Elektronika Cyfrowa, Wstęp


Wstęp

Konstruuje się układy scalone cyfrowe różnych typów. Standardowe układy logiczne można podzielić na dwie główne grupy: układy bipolarne i układy CMOS. Standardowe układy TTL (54/75), oparte na tranzystorach bipolarnych, dały początek całej rodzinie układów TTL (Transistor - Transistor Logic). Obecnie stosuje się bardziej nowoczesne wersje. Czas propagacji sygnału przez jedną bramkę wynosi ok. 10 ns, a pobór mocy 10 mW. Cała rodzina układów logicznych CMOS, wzięła nazwę od komplementarnych tranzystorów MOS (NMOS, PMOS), z których zbudowany jest stopień wyjściowy. W stanie statycznym pobór mocy jest bardzo mały, i wynosi ok. 10nW na bramkę. Układy CMOS mają dużo szersze marginesy zakłóceń. Można je dodatkowo rozszerzyć przez podniesienie wartości napięcia zasilającego. Możliwość ta sprawiła, że układy CMOS przejęły rolę układów bipolarnych, zaliczanych do klasy układów o wysokiej odporności na zakłócenia. Inna z technologii, to ECL (Emitter Coupled Logic), są to układy oparte na wzmacniaczach różnicowych zbudowanych na tranzystorach bipolarnych, bardzo szybka technologia (zdarza się, że układy ECL mogą pracować z częstotliwością zegara rzędu wielu GHz), wykorzystywane m.in. w sprzęcie wojskowym.

Działanie układów jest oparte na systemie binarnym (dwójkowym), czyli takim, w którym liczenie opiera się na dwójce, dwa stany logiczne, tzn. 1 lub 0. Do 1 i 0 są przyporządkowane określone poziomy napięć. Każdą liczbę w tym systemie można przedstawić w następujący sposób:

f · 24 + g · 23 + h · 22 + i · 21 + j · 20

Bramki logiczne

Podstawowymi układami cyfrowymi są bramki. Bramka posiada jedno wyjście, i jest najprostszym układem logicznym wykonującym podstawowe operacje matematyczne, czyli iloczyn, suma, negacja itd. Wyróżniamy następujące rodzaje bramek:

Skrót Pełna nazwa Polska nazwa

0x01 graphic

Rys. 1: Na powyższym rysunku są pokazane i opisane rodzaje bramek. Negacje tworzymy przez domalowanie kółeczka na wyjściu bramki tak, jak to zrobiono w bramkach typu NOT, NAND, NOR i EX-NOR.

Bramka ta jest układem o dwu lub większej liczbie wejść. Realizuje ona funkcję iloczynu logicznego zmiennych wejściowych. Jeśli na wszystkich wejściach jest 1, to na wyjściu jest 1. W spoczynku na wyjściu jest 0.

Tablica prawdy:

a b

ab

0 0

0 1

1 0

1 1

0

0

0

1

Bramka NAND działa tak samo jak bramka AND, tyle że sygnał wyjściowy jest jeszcze negowany, czyli realizuje funkcję negacji iloczynu. Bramka ta jest funkcjonalnie pełna (SFP), bowiem stosując ją można zrealizować zarówno operacje iloczynu logicznego (AND), jak i negację (NOT).

0x01 graphic

Rys. 2: Realizacja negacji przy użyciu bramki NAND

0x01 graphic

Rys. 3: Realizacja iloczynu logicznego przy użyciu bramek NAND

Tablica prawdy:

a b

0x01 graphic

0 0

0 1

1 0

1 1

1

1

1

0

Bramka NOT posiada jedno wejście i jedno wyjście. Realizuje ona funkcję negacji zmiennej wejściowej, czyli zmienia sygnał wejściowy na przeciwny.

Tablica prawdy:

a

ā

0

1

1

0

Bramka ta jest układem o dwu lub większej liczbie wejść. Bramka OR realizuje funkcję sumy logicznej zmiennych wejściowych. Gdy na przynajmniej jednym wyjściu bramki jest podana 1, to na wyjściu jest 1. W spoczynku na wyjściu jest 0.

Tablica prawdy:

a b

a+b

0 0

0 1

1 0

1 1

0

1

1

1

Bramka NOR działa tak samo jak bramka OR, tyle że sygnał wyjściowy jest jeszcze negowany, czyli realizuje funkcję negacji sumy. Bramka ta jest funkcjonalnie pełna.

0x01 graphic

Rys. 4: Realizacja negacji przy użyciu bramki NOR

0x01 graphic

Rys. 5: Realizacja sumy logicznej przy użyciu bramek NOR

0x01 graphic

Rys. 6: Realizacja iloczynu logicznego przy użyciu bramek NOR.

Tablica prawdy:

a b

0x01 graphic

0 0

0 1

1 0

1 1

1

0

0

0

Bramka EX-OR (ang. Exclusive OR - Lub z wyłączeniem) nie stanowi SFP (systemu funkcjonalnie pełnego), ale ma ona jednak duże znaczenie praktyczne. Umożliwia ona bowiem, w dość szerokiej klasie układów, bardzo oszczędną (liczba elementów i połączeń) realizację układu. Dotyczy to zwłaszcza realizacji: operacji arytmetycznych, konwersji kodów, korekcji błędów i innych.

Funktor EX-OR realizuje funkcję:

f(a,b) = a0x01 graphic
+ āb = a0x01 graphic
b

0x01 graphic

Rys. 7: Powyżej znajduje się schemat logiczny bramki Ex-OR.

Tablica prawdy:

a b

a0x01 graphic
b

0 0

0 1

1 0

1 1

0

1

1

0

Bramka ta działa tak samo jak bramka Ex-OR, z tą różnicą, że sygnał wyjściowy jest jeszcze negowany. Funktor ten realizuje funkcję:

f(a,b) = ab + ā0x01 graphic
= a0x01 graphic
b

0x01 graphic

Rys. 8: Powyżej znajduje się schemat logiczny bramki Ex-NOR.

Tablica prawdy:

a b

a0x01 graphic
b

0 0

0 1

1 0

1 1

1

0

0

1

Half adder

Układ ten, przedstawiony na rysunkach poniżej, służy do rozpoznawania ilości 1 na wejściu, (czyli operacje dodawania: 0 + 0 = 0; 1 + 1 = 10 itd.), i podaje ich ilość na wyjściu (niebezpośrednio). Wynik ten nie jest od razu pokazywany, aby to znaleźć należy do wyjść podpiąć dekoder kodu BCD na kod wyświetlacza 7-segmentowego. Jeżeli na wejściach będzie 0 0, to na wyświetlaczu będzie 0, natomiast, gdy na wejściach będzie 0 1 lub 1 0, to na wyświetlaczu będzie 1. Z kolei, gdy na wejściach będzie 1 1, to na wyświetlaczu będzie 2 (2 w kodzie binarnym to10).

Tablica prawdy:

a b

C0 S

0 0

0 1

1 0

1 1

0 0

0 1

0 1

1 0

0x01 graphic

Rys. 9: schemat logiczny układu Half adder.

0x01 graphic

Rys. 10: schemat logiczny układu Half adder, z wykorzystaniem bramki Ex-OR.

0x01 graphic

Rys. 11: Symbol układu Half adder.

Full adder

Układ ten działa tak jak układ Half adder, z czym że może pobrać nie dwie, a trzy zmienne wejściowe. Jeżeli do wyjść podepniemy dekoder kodu BCD na kod wyświetlacza 7-segmentowego, i gdy na wszystkich trzech wejściach zostanie podane 1 (1+1+1=11), na wyświetlaczu będzie 3 (w kodzie binarnym 11 to 3). W obu układach, na wyjściach podana jest liczba binarna, a dzięki dekoderowi kodu BCD na kod wyświetlacza 7-segmentowego, możemy znaleźć jej odpowiednik dziesiętny.

Tablica prawdy:

Cn Xn Yn

Cn+1 S

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0

0 1

0 1

1 0

0 1

1 0

1 0

1 1

0x01 graphic

Rys. 12: schemat logiczny układu Full adder.

0x01 graphic

Rys. 13: schemat logiczny układu Full adder, z wykorzystaniem bramki Ex-OR.

0x01 graphic

Rys. 14: Układ Full adder zrealizowany na układach Half adder.

0x01 graphic

Rys. 15: Symbol układu Full adder.

Przerzutniki

Przerzutniki stosuje się przy budowie różnego rodzaju pamięci, liczników, rejestrów i dzielników.

0x01 graphic

Rys. 16: Przerzutnik RS.

Przerzutnik można zbudować na bramkach NAND lub NOR. Jeżeli na wejście SET zostanie podany sygnał sterujący, na wyjściu Q będzie 1, natomiast, jeżeli na wejściu RESET podany będzie sygnał sterujący, na wyjściu Q będzie 0. Dla przerzutnika zbudowanego na bramkach typu NAND, sygnałem sterującym jest 0, natomiast dla NOR jest 1. Jeśli na wyjściu Q jest 1, znaczy to, że przerzutnik jest ustawiony, w przeciwnym wypadku, czyli gdy na wyjściu jest 0, przerzutnik jest zresetowany. Jeśli na wejściach są narysowane kółeczka (czyli jeżeli sygnał wejściowy jest negowany), to przerzutnik jest sterowany 0. Wyjścia są komplementarne, tzn., że ich stany logiczne są przeciwne. Przerzutnik jest przerzutnikiem asynchronicznym, czyli nie posiada zegara taktującego.

0x01 graphic

Rys. 17: Przerzutnik D

0x01 graphic

Rys. 18: Przerzutnik D wyzwalany poziomem - schemat logiczny.

0x01 graphic

Rys. 19: Przerzutnik D wyzwalany zboczem narastającym - schemat logiczny.

Powyżej znajdują się dwa rodzaje przerzutnika D, istnieje też przerzutnik. D wyzwalany zboczem opadającym. Gdy na wejście zegarowe jest podany odpowiedni sygnał (jeden z trzech) przerzutnik sprawdza, co jest podane na wejściu D i przenosi ten stan na Q. Przerzutnik posiada też wejścia asynchroniczne - SET, RESET. Łącząc na stałe wejście D z NIE Q otrzymujemy przerzutnik T.

0x01 graphic

Rys. 20: Przerzutnik JK - Master Slave

0x01 graphic

Rys. 21: Przerzutnik JK - Master Slave - schemat logiczny

Przerzutnik JK- Master Slave zachowuje się w zależności od kombinacji stanów wejściowych, na J i K. Przerzutnik jest wyzwalany dwuzboczowo, tzn., gdy jest zbocze narastające układ przepisuje dane wejściowe do wewnętrznego przerzutnika Master a przy opadającym z przerzutnika Master do przerzutnika Slave. Przerzutnik zachowuje się w następujący sposób:

0 0 - stan na wyjścia nie ulega zmianie

1 0 - stan na Q jest ustawiany na 1

0 1 - stan na Q jest ustawiany na 0

1 1 - stan na wyjściu zmienia się na przeciwny

Realizacja układów kombinacyjnych przy użyciu bramek

Aby szybko zaprojektować układ należy na początku nauczyć się kodu Gray'a. Kod Gray'a - kod binarny (dwójkowy), w którym dwa kolejne ciągi różnią się tylko na jednej pozycji.

Kod dla 16 znaków:

0

0

0

0

0

0

0

1

0

0

1

1

0

0

1

0

0

1

1

0

0

1

1

1

0

1

0

1

0

1

0

0

1

1

0

0

1

1

0

1

1

1

1

1

1

1

1

0

1

0

1

0

1

0

1

1

1

0

0

1

1

0

0

0

Grube, poziome kreski oznaczają lustra. Na początku wpisujemy pod sobą 0,1. Potem przystawiamy lustro i przepisujemy lustrzane odbicie. Przed lustrem na 2 pozycji dopisujemy 0 za lustrem 1. Lustra stawia się po linijkach będących potęgą liczby 2. Myślę, że jest to zrozumiałe. Jeśli kod Gray'a jest opanowany można już zacząć minimalizować. Robi się to w tablicach Carnaugha (czytaj Karnafa). Tak wygląda dla 4 zmiennych wejściowych:

X3 X4

X3 X4

X3 X4

X3 X4

X1 X2

0 0

0 1

1 1

1 0

0 0

0 1

1 1

1 0

W jednej tablicy projektuje się układ dla jednej zmiennej wyjściowej. X1- bit najbardziej znaczący, X4 - bit najmniej znaczący. W puste prostokąty wpisuje się stany wyjściowe przy określonej kombinacji zmiennych wejściowych. Jeśli dla jakiejś kombinacji sygnał wyjściowy nie jest określony, to wpisujemy kreskę. Po wpisaniu wszystkich wartości zmiennej wyjściowej należy znaleźć w tablicy grupy 1 i kresek - jedno, dwu, cztero, szesnasto, itd. elementowych. Jedynki i kreski mają należeć do jednej grupy. 1 mogą ze sobą sąsiadować jedynie w pionie i w poziomie. Uwaga brzegi tablicy sąsiadują ze sobą. Tak więc, jeśli po obu brzegach są jedynki na jednym poziomie należy je połączyć. Trzeba znaleźć wszystkie grupy gdyż układ nie będzie działał prawidłowo. Jeśli są jakieś grupy, w których elementy całkowicie pokrywają się z innymi grupami, to pomijamy taką grupę. Jak już są zakreślone wszystkie grupy, to przystępujemy do napisania wzoru funkcji przełączającej, który będzie opisywał działanie funkcji. Robi się to w następujący sposób: patrzysz na pierwszą zakreśloną grupę i jeśli jakaś zmienna wejściowa w całym obrębie zakreślonej grupy ma wartość 1, to do wzoru wchodzi jako zmienna np.: X1, jeśli ma wartość 0, to wchodzi jako negacja tej zmiennej, np.: Nie-X1, jeśli zmienia swoje wartości na 0 i 1 to nie wchodzi do wzoru. Zmienne poszczególnej grupy mnożymy, a następnie dodajemy kolejne iloczyny z następnych zakreślonych grup. Wzór funkcji może wyglądać np. tak:

Y = X1 · X3 · 0x01 graphic
+0x01 graphic

Z wzoru wynika, że w tablicy były dwie grupy:

Przykładowe zadanie dotyczące minimalizacji:

Zaprojektuj układ, na którego wejście przychodzą zmienne wejściowe 4 bitowe, czyli od 0 do 15 w systemie dziesiętnym. Układ ma sygnalizować na wyjściu 1 następujące liczby: 0, 3, 4, 8, 11, 12, 14, 15.

Na początku rysujemy tablicę i wypełniamy zmienne wejściowe w kodzie Gray'a.

Następnie wypełniamy wnętrze tabelki:

X3 X4

X3 X4

X3 X4

X3 X4

X1 X2

0 0

0 1

1 1

1 0

0 0

1

0

1

0

0 1

1

0

0

0

1 1

1

0

1

1

1 0

1

0

1

0

Potem łączymy jedynki w grupy:

0x01 graphic

Zostały znalezione 4 grupy, z czego dwie: zielona i pomarańczowa pokrywają się z innymi. Nie bierze się ich pod uwagę.

Teraz przystępujemy do pisania wzoru funkcji przełączającej. W grupie pierwszej zaznaczonej na czerwono mamy 4 elementy, X1 i X2 mają różne wartości, więc nie wchodzą do wzoru, X3 i X4 mają wartość 0, więc wchodzą do wzoru jako negacja X3 i negacja X4. Teraz wzór wygląda następująco: Y = 0x01 graphic
· 0x01 graphic
+ ... Teraz druga grupa zakreślona na niebiesko. X1 zmienia swoje wartości, X2 = 0, czyli do wzoru wchodzi jako negacja X2, X3 i X4 = 1 więc wchodzą do wzoru jako X3 i X4. Teraz wzór ma postać: Y = 0x01 graphic
· 0x01 graphic
+0x01 graphic
· X3 · X4. Trzecia grupa zakreślona na pomarańczowo. X4 nie wchodzi, X1, X2, X3 = 1, więc wchodzą do wzoru jako X1, X2, X3. Oto końcowy wzór funkcji:

Y = 0x01 graphic
· 0x01 graphic
+ 0x01 graphic
· X3 · X4 + X1 · X2 · X3

Teraz tylko trzeba zrealizować to na bramkach:

0x01 graphic

Rys. 22: Realizacja układu na bramkach

Powyższy układ można zrobić z jednego rodzaju bramek, tzn. NAND, NOR. Prawa de' Morgana definiują jak to zrobić:

X1 · X2 = X1 + X2

X1 + X2 = X1 · X2

0x01 graphic

Rys. 23: Realizacja układu na bramkach NOR

0x01 graphic

Rys. 24: Realizacja układu na bramkach NAND

Funkcje przełączające można także realizować na multiplekserach. Są dwa sposoby realizacji. Pierwszy - mniej oszczędny - polega na tym, iż na wejścia adresowe podajemy zmienne wejściowe, a odpowiednie wejścia danych multipleksera łączymy z 1 bądź 0. Jak już wspomniałem jest to sposób mniej oszczędny, gdyż multiplekser musi być 2n bitowy, gdzie n, to liczba bitów. Czyli do realizacji poprzednio omówionego przykładu trzeba użyć multipleksera 16 bitowego. Wygląda to tak:

0x01 graphic

Rys. 25: Multiplekser 16-bitowy

Multiplekser łączy jedno ze swoich wejść z wyjściem przy wybraniu odpowiedniego adresu. Natomiast druga metoda jest bardziej oszczędna, gdyż potrzeba do niej multipleksera o 2(n-1) wejściach. W konsekwencji wejść adresowych jest mniej o jeden. Polega to na tym, że na wejścia adresowe podajemy najbardziej znaczące bity a na wejścia danych najmniej znaczący bit lub ewentualnie 1 i 0. Przy projektowaniu postępowanie jest następujące: na początku należy wypisać wszystkie kombinacje zmiennych wejściowych i obok nich wartość wyjścia. Zmienne trzech najstarszych bitów są takie same dla dwóch kolejnych najmłodszych bitów - zawsze będzie to 0 i 1. Jeśli przy danej kombinacji (w naszym przypadku 3 najbardziej znaczące bity) na wyjściu ma być 1 (dla X4=0 i X4=1), to wejście multipleksera podłączamy do 1, jeśli natomiast na wyjściu ma być 0 (dla X4=0 i X4=1), to wejście multipleksera podłączamy do 0, jeśli wartości na wyjściu są przeciwne - 0, 1 - to na wejście multipleksera podłączamy X4, a jeśli 1, 0 to negację X4. Wygląda to tak:

X1

X2

X3

X4

Wy

0

0

0

0

0

1

1

0

0

0

1

0

2

0

0

1

0

0

3

0

0

1

1

1

4

0

1

0

0

1

5

0

1

0

1

0

6

0

1

1

0

0

7

0

1

1

1

0

8

1

0

0

0

1

9

1

0

0

1

0

10

1

0

1

0

0

11

1

0

1

1

1

12

1

1

0

0

1

13

1

1

0

1

0

14

1

1

1

0

1

15

1

1

1

1

1

0x01 graphic

Rys. 26: Wygląd układu



Wyszukiwarka

Podobne podstrony:
Elektronika cyfrowa-2, WSTĘP
Modul 3 Podstawy elektroniki cyfrowej
Strona tytułowa sprawozdanie, UTP Elektrotechnika, 1 sesmetr, Wstęp do elektrotechniki, Laborki
elektronika cyfrowa -pytania dla ib

więcej podobnych podstron