Laboratorium Technik Cyfrowych nr 1
Układy cyfrowe to rodzaj układów elektronicznych, w których sygnały napięciowe przyjmują tylko określoną liczbę poziomów, którym przypisywane są wartości liczbowe. Najczęściej (choć nie zawsze) liczba poziomów napięć jest równa dwa, a poziomom przypisywane są cyfry 0 i 1, wówczas układy cyfrowe realizują operacje zgodnie z algebrą Boole'a i z tego powodu nazywane są też układami logicznymi. Obecnie układy cyfrowe budowane są w oparciu o bramki logiczne realizujące elementarne operacje znane z algebry Boole'a: iloczyn logiczny (AND, NAND), sumę logiczną (OR, NOR), negację NOT, różnicę symetryczną (XOR) itp. Ze względu na stopień skomplikowania współczesnych układów wykonuje się je w postaci układów scalonych.
Zalety układów cyfrowych:
Możliwość bezstratnego kodowania i przesyłania informacji - jest to coś, czego w układach analogowych operujących na nieskończonej liczbie poziomów napięć nie sposób zrealizować.
Zapis i przechowywanie informacji cyfrowej jest prostsze.
Mniejsza wrażliwość na zakłócenia elektryczne.
Możliwość tworzenia układów programowalnych, których działanie określa program komputerowy (patrz: mikroprocesor, koprocesor).
Wady układów cyfrowych:
Są skomplikowane zarówno na poziomie elektrycznym, jak i logicznym i obecnie ich projektowanie wspomagają komputery (patrz: język opisu sprzętu).
Chociaż są bardziej odporne na zakłócenia, to wykrywanie przekłamań stanów logicznych, np. pojawienie się liczby 0 zamiast spodziewanej 1, wymaga dodatkowych zabezpieczeń i też nie zawsze jest możliwe wykrycie błędu. Jeszcze większy problem stanowi ewentualne odtworzenie oryginalnej informacji.
Bramka logiczna - element konstrukcyjny maszyn i mechanizmów (dziś zazwyczaj: układ scalony, choć podobne funkcje można zrealizować również za pomocą innych rozwiązań technicznych, np. hydrauliki czy pneumatyki), realizujący fizycznie pewną prostą funkcję logiczną, której argumenty (zmienne logiczne) oraz sama funkcja mogą przybierać jedną z dwóch wartości, np. 0 lub 1 (zob. algebra Boole'a).
Podstawowymi elementami logicznymi, stosowanymi powszechnie w budowie układów logicznych, są elementy realizujące funkcje logiczne: sumy (alternatywy), iloczynu (koniunkcji) i negacji. Są to odpowiednio bramki OR, AND i NOT. Za pomocą dwóch takich bramek (np. OR i NOT lub AND i NOT) można zbudować układ, realizujący dowolną funkcję logiczną.
Bramki NAND (negacja koniunkcji), oraz NOR (negacja sumy logicznej) nazywa się funkcjonalnie pełnymi ponieważ przy ich użyciu (tzn. samych NAND lub samych NOR) można zbudować układ realizujący dowolną funkcję logiczną.
Dowolną bramkę logiczną można też skonstruować za pomocą pary bramek, np. za pomocą OR i NOT lub AND i NOT. Układy takie nazywamy układami zupełnymi.
Bramkę logiczną XOR często wykorzystujemy w układach arytmetyki takich jak sumatory lub subtraktory.
Zadanie 1
Mając do dyspozycji bramki AND oraz NOT zbuduj bramkę OR.
A |
B |
NOT A |
NOT B |
NOT A AND NOT B |
NOT (NOT A AND NOT B) |
A OR B |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
Zadanie 2
Mając do dyspozycji bramki OR oraz NOT zbuduj bramkę AND.
A |
B |
NOT A |
NOT B |
NOT A OR NOT B |
NOT (NOT A OR NOT B) |
A AND B |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
Zadanie 3
Mając do dyspozycji bramkę XOR zbuduj bramkę NOT.
A |
1 XOR A |
NOT A |
0 |
1 |
1 |
1 |
0 |
0 |
Zadanie 4
Mając do dyspozycji bramki XOR oraz AND zbuduj bramkę OR.
A |
B |
1 XOR A |
1 XOR B |
(1 XOR A) AND (1 XOR B) |
1 XOR ((1 XOR A) AND (1 XOR B)) |
A OR B |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
Zadanie 5
Mając do dyspozycji bramki XOR oraz OR zbuduj bramkę AND.
A |
B |
1 XOR A |
1 XOR B |
(1 XOR A) OR (1 XOR B) |
1 XOR ((1 XOR A) OR (1 XOR B)) |
A AND B |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
Zadanie 6
Mając do dyspozycji bramki AND, OR oraz NOT zbuduj bramkę XOR.
A |
B |
A OR B |
A AND B |
NOT(A AND B) |
(A OR B) AND (NOT(A AND B)) |
A XOR B |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
Zadanie 7
Zbuduj bramkę NAND korzystając z bramek AND oraz NOT.
A |
B |
A AND B |
NOT (A AND B) |
A NAND B |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
Zadanie 8
Zbuduj bramkę NOR korzystając z bramek OR oraz NOT.
A |
B |
A OR B |
NOT (A OR B) |
A NOR B |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
Zadanie 9
Mając do dyspozycji bramkę NAND zbuduj bramkę NOT.
A |
A NAND A |
NOT A |
0 |
1 |
1 |
1 |
0 |
0 |
Zadanie 10
Mając do dyspozycji bramkę NAND zbuduj bramkę AND.
A |
B |
A NAND B |
(A NAND B) NAND (A NAND B) |
A AND B |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
Zadanie 11
Mając do dyspozycji bramkę NAND zbuduj bramkę OR.
A |
B |
A NAND A |
B NAND B |
(A NAND A) NAND (B NAND B) |
A OR B |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
Zadanie 12
Mając do dyspozycji bramkę NOR zbuduj bramkę NOT.
A |
A NOR A |
NOT A |
0 |
1 |
1 |
1 |
0 |
0 |
Zadanie 13
Mając do dyspozycji bramkę NOR zbuduj bramkę OR.
A |
B |
A NOR B |
(A NOR B) NOR (A NOR B) |
A OR B |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Zadanie 14
Mając do dyspozycji bramkę NOR zbuduj bramkę AND.
A |
B |
A NOR A |
B NOR B |
(A NOR A) NOR (B NOR B) |
A AND B |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
Zadanie 15
Mając do dyspozycji bramkę NAND zbuduj bramkę NOR.
A |
B |
A NAND A |
B NAND B |
(A NAND A) NAND |
((A NAND A) NAND (B NAND B)) NAND |
A NOR B |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
Zadanie 16
Mając do dyspozycji bramkę NOR zbuduj bramkę NAND.
A |
B |
A NOR A |
B NOR B |
(A NOR A) |
((A NOR A) NOR (B NOR B)) |
A NAND B |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
Zadanie 17
Mając do dyspozycji bramkę NAND zbuduj bramkę XOR.
A |
B |
A |
B |
(A NAND A) |
(B NAND B) |
((A NAND A) NAND B)
NAND |
A |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Zadanie 18
Mając do dyspozycji bramkę NOR zbuduj bramkę XOR.
A |
B |
A NOR A |
B NOR B |
(A NOR A) |
(B NOR B) |
((A NOR A) NOR B) |
((A NOR A) NOR B) |
A XOR B |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
Wnioski:
1) Za pomocą odpowiedniej kombinacji jednej lub kilku bramek można uzyskać inną bramkę.
2) Za pomocą kombinacji bramek NOR i NAND można uzyskać dowolną inną bramkę.
3) Ponieważ bramki NOR i NAND są tak uniwersalne mogą one stanowić podstawę do
tworzenia układów logicznych.
A NOR B ~A AND ~B
A NOR A ~A
(A NOR A) AND (B NOR B) ~A AND ~B
(A NOR A) NOR (B NOR B) A AND B
NOT (A OR B) NOT A AND NOT B
NOT (NOT (A OR B)) NOT (NOT A AND NOT B)
A OR B NOT (NOT A AND NOT B)
NOT (A AND B) NOT A OR NOT B
NOT (NOT (A AND B)) NOT (NOT A OR NOT B)
A AND B NOT (NOT A OR NOT B)
A XOR B (A AND NOT B) OR (NOT A AND B)
A XOR 1 (A AND NOT 1) OR (NOT A AND 1)
A XOR 1 (A AND 0) OR NOT A
A XOR 1 0 OR NOT A
A XOR 1 NOT A
A OR B ~(~A AND ~B)
A OR B 1 XOR ((1 XOR A) AND (1 XOR B))
A AND B ~(~A OR ~B)
A AND B 1 XOR ((1 XOR A) OR (1 XOR B))
Z definicji bramki XOR wynika:
A XOR B (A AND ~B) OR (~A AND B)
Z definicji bramki NAND wynika:
A NAND B ~(A AND B)
Z definicji bramki NOR wynika:
A NOR B ~(A OR B)
Z definicji bramki NAND wynika:
A NAND B ~(A AND B)
A NAND A ~(A AND A)
A NAND A ~A
A NAND B ~(A AND B)
A NAND A ~A
~(A NAND B) A AND B
(A NAND B) NAND (A NAND B) ~(A NAND B)
(A NAND B) NAND (A NAND B) A AND B
A OR B ~(~A) OR ~(~B)
A OR B ~A NAND ~B
A OR B (A NAND A) NAND (B NAND B)
A NOR B ~(A OR B)
A NOR B ~A AND ~B
A NOR A ~(A OR A)
A NOR A ~A
A NOR B ~(A OR B)
~(A NOR B) A OR B
~A A NOR A
(A NOR B) NOR (A NOR B) A OR B
A NOR B ~(A OR B)
A NOR B ~(~A NAND ~B)
A NOR B ((A NAND A) NAND (B NAND B)) NAND (((A NAND A) NAND (B NAND B))
A NAND B ~(A AND B)
A NAND B ~(~A NOR ~B)
A NAND B ((A NOR A) NOR (B NOR B)) NOR ((A NOR A) NOR (B NOR B))
(~A AND B) OR (A AND ~B) =>
~(~A NAND B) OR ~(A NAND ~B) =>
(~A NAND B) NAND (A NAND ~B) =>
((A NAND A) NAND B) NAND (A NAND (B NAND B))
(~A AND B) OR (A AND ~B) =>
(~A AND ~~B) OR (~~A AND ~B) =>
(A NOR ~B) OR (~A NOR B) =>
[(A NOR (B NOR B)) NOR ((A NOR A) NOR B] NOR [(A NOR (B NOR B)) NOR ((A NOR A) NOR B]
Damian Pawlik
WFMiIS
grupa 21