Mateusz Macięga
Informatyka
Grupa 11
Bramki logiczne
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 Boola: 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.
Bramka logiczna 5 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 czy
subtraktory.
Zadanie 1
Mając do dyspozycji bramki AND oraz NOT zbuduj bramkę OR.
Wykorzystaj prawo podwójnej negacji i prawo de Morgana:
q
p
q
p
q
p
⋅
==
+
==
+
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)
Tabela prawdy:
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.
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)
Tabela prawdy:
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 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
Tabela prawdy:
A A XOR 1 NOT A
0
1
1
1
0
0
Zadanie 4
Mając do dyspozycji bramki XOR oraz AND zbuduj bramkę OR.
A OR B = NOT(NOT A AND NOT B)
A OR B = 1 XOR((1 XOR A)AND(1 XOR B))
Tabela prawdy:
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 AND B = NOT(NOT A OR NOT B)
A AND B = 1 XOR((1 XOR A)OR(1 XOR B))
Tabela prawdy:
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 XOR B = (A AND NOT B)OR(NOT A AND B)
Tabela prawdy:
A B NOT A NOT B
A AND NOT B NOT A AND B (A AND NOT B)OR(NOT A AND B) A XOR B
0 0
1
1
0
0
0
0
0 1
1
0
0
1
1
1
1 0
0
1
1
0
1
1
1 1
0
0
0
0
0
0
Zadanie 7
Zbuduj bramkę NAND korzystając z bramek AND oraz NOT.
A NAND B = NOT(A AND B)
Tabela prawdy:
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 NOR B = NOT(A OR B)
Tabela prawdy:
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 NAND B = NOT(A AND B)
A NAND A = NOT(A AND A)
A NAND A = NOT A
Tabela prawdy:
A NOT A
A NAND A
0
1
1
1
0
0
Zadanie 10
Mając do dyspozycji bramkę NAND zbuduj bramkę AND.
A NAND B = NOT(A AND B)
A NAND A = NOT A
NOT(A NAND B) = A AND B
(A NAND B)NAND(A NAND B) = NOT(A NAND B)
(A NAND B)NAND(A NAND B) = A AND B
Tabela prawdy:
A B
A NAND B
(A NAND B)NAND(A NAND B)
A AND B
0 0
1
0
0
0 1
0
0
0
1 0
0
0
0
1 1
0
1
1
Zadanie 11
Mając do dyspozycji bramkę NAND zbuduj bramkę OR.
A OR B = NOT(NOT A) OR NOT(NOT B)
A OR B = NOT A NAND NOT B
A OR B = (A NAND A)NAND(B NAND B)
Tabela prawdy:
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 NOR B = NOT(A OR B)
A NOR B = NOT A AND NOT B
A NOR A = NOT(A OR A)
A NOR A = NOT A
Tabela prawdy:
A A NOR A
NOT A
0
1
1
1
0
0
Zadanie 13
Mając do dyspozycji bramkę NOR zbuduj bramkę OR.
A NOR B = NOT(A OR B)
NOT(A NOR B) = A OR B
NOT A = A NOR A
(A NOR B)NOR(A NOR B) = A OR B
Tabela prawdy:
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 NOR B = NOT A AND NOT B
A NOR A = NOT A
(A NOR A)AND(B NOR B) = NOT A AND NOT B
(A NOR A)NOR(B NOR B) = A AND B
Tabela prawdy:
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 NOR B = NOT(A OR B)
A NOR B = NOR(NOT A NAND NOT B)
A NOR B = ((A NAND A)NAND(B NAND B))NAND((A NAND A)NAND(B NAND B))
Tabela prawdy:
A B
A
NAND
A
B
NAND
B
(A NAND A)
NAND
(B NAND B)
((A NAND A)NAND(B NAND B))
NAND
((A NAND A)NAND(B NAND B))
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 NAND B = NOT(A AND B)
A NAND B = NOT(NOT A NOR NOT B)
A NAND B = ((A NOR A)NOR(B NOR B))NOR((A NOR A)NOR(B NOR B))
Tabela prawdy:
A B
A
NOR
A
B
NOR
B
(A NOR A)
NOR
(B NOR B)
((A NOR A)NOR(B NOR B))
NOR
((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.
(NOT A AND B)OR(A AND NOT B) =>
NOT(NOT A NAND B)OR NOT(A NAND NOT B) =>
(NOT A NAND B)NAND(A NAND NOT B) =>
((A NAND A)NAND B)NAND(A NAND(B NAND B))
Tabela prawdy:
A B
A
NAND
A
B
NAND
B
(A NAND A)
NAND
B
A
NAND
(B NAND B)
((A NAND A)NAND B)
NAND
(A NAND(B NAND B))
A XOR B
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.
(NOT A AND B)OR(A AND NOT B) =>
(NOT A AND NOT NOT B)OR(NOT NOT A AND NOT B) =>
(A NOR NOT B)OR(NOT 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)
Tabela prawdy:
A B
A
NOR
A
B
NOR
B
A
NOR
(B NOR
B)
(A NOR
A)
NOR
B
((A NOR
A)NOR B)
NOR
((B NOR
B)NOR A
((A NOR(B NOR B))NOR((A NOR A)NOR
B)
NOR
((A NOR(B NOR B))NOR((A NOR A)NOR
B)
A XOR B
0 0
1
1
0
0
1
0
0
0 1
1
0
1
0
0
1
1
1 0
0
1
0
1
0
1
1
1 1
0
0
0
0
1
0
0
Wnioski:
Stosując odpowiednią kombinację bramek możemy stworzyć bramkę innego typu.
Korzystając z bramek NOR I NAND możemy stworzyć dowolną bramkę.