Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

Bity w elektronice

Cyfrowe bramki logiczne

SPIS TREŚCI
Podrozdziały

Wprowadzenie

Współczesne komputery cyfrowe (istnieją również analogowe, ale tymi się tutaj nie zajmujemy) zbudowane są z milionów elementów logicznych zwanych bramkami cyfrowymi lub bramkami logicznymi (ang. digital gate). Są to elementy elektroniczne posiadające wejścia oraz wyjście danych:

obrazek

Na wejścia bramki podajemy napięcia elektryczne, które mogą przyjmować dwa poziomy logiczne (dla układów TTL - Transistor-Transistor-Logic):

poziom 0, L, F  - napięcie w przedziale 0...0,8V
poziom 1, H, T  - napięcie w przedziale 2...5V

Poziomy te odpowiadają ściśle wartościom logicznym stosowanym w Algebrze Boole'a. Poziom logiczny 0 jest oznaczany często literką L od Low, czyli niski lub literką F od False, czyli fałsz. Podobnie poziom logiczny 1 jest oznaczany literką H od High, czyli wysoki lub literką T od True, czyli prawda. Wynika z tego, iż w technice cyfrowej bity są reprezentowane poziomami napięć elektrycznych (ta uwaga jest dla tych, którzy myślą, iż w komputerze jest dużo zer i jedynek - dosłownie...).

Na wyjściu bramki również dostajemy napięcie elektryczne mieszczące się w przedziale dla 0 lub 1. Napięcie to jest funkcją logiczną (np. negacją, alternatywą, koniunkcją itp.) realizowaną przez bramkę dla napięć wejściowych. W produkcji są bramki realizujące wszystkie podstawowe funkcje logiczne Algebry Boole'a. Nie będziemy się zajmować budową wewnętrzną bramki logicznej. Składa się ona z odpowiednio połączonych ze sobą elementów elektronicznych zwanych tranzystorami i opornikami. Zrozumienie ich funkcji wymaga dosyć zaawansowanych wiadomości z zakresu elektroniki elementów półprzewodnikowych, zatem darujemy sobie ten dział wiedzy, gdyż w sumie nie będzie nam on potrzebny. Potraktujemy bramkę logiczną jak czarną skrzynkę, na której wejścia podaje się odpowiednie napięcia elektryczne, a na wyjściu otrzymuje się napięcie wynikowe w funkcji napięć wejściowych - takie podejście jest zupełnie wystarczające do projektowania nawet bardzo złożonych sieci cyfrowych. Jednakże bez kilku parametrów się nie obejdzie.

Obciążalność wyjść bramki

Wyjścia bramek można łączyć z wejściami innych bramek logicznych (samych wyjść nie wolno ze sobą łączyć, ponieważ prowadzi to do zwarcia i w konsekwencji do uszkodzenia bramki) –w ten sposób powstaje sieć logiczna realizująca złożoną funkcję logiczną. Każde wejście bramki dołączone do wyjścia innej bramki pobiera z niej pewien prąd elektryczny. Wyjścia bramek mogą dostarczyć tylko określoną ilość prądu. Wynika z tego, iż do typowego wyjścia można podłączyć ograniczoną ilość wejść innych bramek. Parametr ten nosi nazwę obciążalności wyjścia bramki. Zwykle przyjmuje się go na poziomie 10 (należy sprawdzić w danych producenta) dla zwykłych bramek oraz 30 dla bramek o zwiększonej mocy wyjściowej. ( Nowoczesne układy cyfrowe oparte są na technologii CMOS i pobierają znikomy prąd na wejściu. Dzięki czemu zlikwidowano ograniczenie obciążalności do 10 wejść, teraz tych wejść może być dosłownie setki).

Obciążalności wyjściowej bramki nie należy przekraczać, gdyż może to spowodować niestabilność sieci logicznej (kłopoty z utrzymaniem odpowiedniego poziomu napięcia wyjściowego przez przeciążoną bramkę), a nawet spalenie niektórych jej elementów.

Zapamiętaj:

Obciążalność wyjścia bramki logicznej określa ile wejść innych bramek można podłączyć do tego wyjścia. Dla typowych bramek obciążalność wyjścia wynosi 10 dla układów TTL.

Czas propagacji

Poziom napięcia wyjściowego bramki jest funkcją logiczną Boole'a poziomu logicznego napięć wejściowych. Napięcie na wyjściu nie zmienia się natychmiast po zmianie poziomu napięć wejściowych, lecz po pewnym czasie - typowo po 10 ns (należy sprawdzić w danych producenta). Jest to spowodowane tym, iż tranzystory wewnątrz bramki muszą się odpowiednio poprzełączać, a to wymaga czasu.

Zapamiętaj:

Czas propagacji bramki logicznej określa po jakim czasie od zmiany napięć wejściowych ustali się napięcie na wyjściu. Czas propagacji typowo wynosi 10 ns dla bramek standardowych i 3 ns dla bramek serii szybkiej. Im mniejszy czas propagacji, tym szybciej może pracować bramka.

Czas propagacji dla sieci logicznej jest sumą czasów propagacji bramek, poprzez które przechodzi kolejno sygnał logiczny. Czasy te zawsze należy brać pod uwagę przy projektowaniu układów logicznych. W przeciwnym razie może wystąpić tzw. zjawisko hazardu.

Więcej na temat bramek logicznych znajdziesz w artykule "Układy cyfrowe".

Na początek:  podrozdziału   strony 

Symbole bramek logicznych

Na schematach elektronicznych (rysunkach obrazujących sposób połączenia wejść i wyjść bramek logicznych tworzących sieć logiczną) bramki posiadają odpowiednie symbole graficzne. Istnieją odpowiednie normy, które określają jednoznacznie te symbole. My będziemy konsekwentnie stosować normę amerykańską, ponieważ jest bardzo rozpowszechniona w elektronice i bramki wyglądają zgrabnie.

Symbol bramki składa się z wejść, znaku graficznego oraz wyjść:

Wejścia będziemy oznaczać dużymi literami alfabetu A, B, C... Wyjścia będziemy oznaczać małymi literami: x, y, z. Kółeczko na wejściu lub wyjściu bramki oznacza, że dany sygnał jest zanegowany:

Symbole graficzne są następujące:

Symbol Funkcja
Tożsamość
Alternatywa
Koniunkcja

Z tych trzech symboli podstawowych oraz z symbolu negacji wejścia/wyjścia (kółeczko) buduje się symbole wszystkich bramek logicznych używanych w technice cyfrowej.

W kolejnych podrozdziałach przedstawione są podstawowe bramki logiczne wraz z ich symulacją interaktywną. W symulatorze poziomy sygnałów wejściowych określasz przez klikanie w kwadratowe przyciski. Po kliknięciu przycisk zmienia kolor:

Tymi samymi kolorami oznaczane są również linie sygnałowe. Kolor czarny oznacza stan 0 na linii, kolor czerwony oznacza stan 1. Stan wyjściowy oznaczany jest kółkiem w tych samych kolorach.

Na początek:  podrozdziału   strony 

Bramka buforowa

Bramka buforowa (ang. buffer gate) stosowana jest zwykle do wzmocnienia sygnału cyfrowego lub do separacji linii sygnałowych. Na wyjściu bramki otrzymujemy ten sam stan logiczny, który panuje na jej wejściu:

A y = A
0 0
1 1
Symulator
Na początek:  podrozdziału   strony 

Bramka NOT

Bramka NOT (ang. NOT gate) zwana również inwerterem wykonuje negację sygnału wejściowego. Symbol jest podobny do symbolu bufora, jednakże na wejściu lub na wyjściu umieszczone jest kółeczko, które informuje o negacji sygnału:

A y = NOT(A)
0 1
1 0
Symulator
Na początek:  podrozdziału   strony 

Bramka OR

Bramka OR (ang. OR gate) realizuje funkcję logiczną alternatywy (lub). Bramka posiada co najmniej dwa wejścia i jedno wyjście.  Stan na wyjściu jest alternatywą stanów wejściowych. Na wyjściu panuje stan logiczny 1, jeśli jedno z wejść bramki jest w stanie wysokim 1. Na wyjściu panuje stan niski 0, jeśli wszystkie wejścia bramki są w stanie niskim 0.

A B y = OR(A,B)
0 0 0
0 1 1
1 0 1
1 1 1
Symulator
Na początek:  podrozdziału   strony 

Bramka AND

Bramka AND (ang. AND gate) realizuje funkcję logiczną koniunkcji (i). Bramka posiada co najmniej dwa wejścia i jedno wyjście.  Stan na wyjściu jest koniunkcją stanów wejściowych. Na wyjściu panuje stan logiczny 1, jeśli wszystkie wejścia bramki są w stanie wysokim 1. Na wyjściu panuje stan niski 0, jeśli przynajmniej jedno z wejść bramki jest w stanie niskim 0.

A B y = AND(A,B)
0 0 0
0 1 0
1 0 0
1 1 1
Symulator

Bramki OR i AND są produkowane w wersjach 3, 4 i 8 wejściowych (w wydaniach specjalnych liczba wejść może być jeszcze większa). Poniżej umieściłem przykłady bramek trójwejściowych:

Bramka OR
  Bramka AND
A B C y = OR(A,B,C)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
    
A B C y = AND(A,B,C)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Na początek:  podrozdziału   strony 

Bramka NAND

Do realizacji dowolnej funkcji logicznej potrzebujemy bramki NOT oraz albo bramki AND, albo OR. Wynika to bezpośrednio z praw De Morgana oraz praw algebry Boole'a. Dla przykładu pokażemy, jak z bramek NOT i AND otrzymać funkcję OR. Najpierw zapiszmy to, co chcemy otrzymać:

y = A ∨ B

Zastosujemy podwójne zaprzeczenie, które nie zmienia wartości logicznej wyrażenia (podobnie jak w arytmetyce podwójny minus):

a = ¬ ¬ a

A ∨ B = ¬ ¬ ( A ∨ B )

Teraz wykorzystujemy prawo De Morgana: zaprzeczenie alternatywy jest koniunkcją zaprzeczeń:

A ∨ B = ¬ ( ¬ A ∧ ¬ B )

Zwróć uwagę, iż wyrażenie po prawej stronie zawiera jedynie negacje i koniunkcję, a zatem da się zrealizować z bramek NOT i AND. Wyrażenie w nawiasie jest koniunkcją zaprzeczeń A i B. Wynik tej koniunkcji jest ponownie zaprzeczony.

Teraz zbudujemy odpowiednią sieć logiczną. Najpierw musimy zaprzeczyć A i B, co zrealizujemy za pomocą bramek NOT:

Wyjścia bramek NOT dają nam zanegowane sygnały A i B, które poddajemy operacji koniunkcji za pomocą bramki AND:

Mamy koniunkcję zaprzeczeń A i B. Pozostaje nam zastosować jeszcze jedną bramkę NOT, aby zaprzeczyć tę koniunkcję i otrzymać w wyniku alternatywę A i B:

Zwróć uwagę na końcowe dwie bramki: AND i NOT. Tworzą one zaprzeczoną koniunkcję (NOT AND = NAND). Powstaje z nich tzw. bramka uniwersalna NAND. Okazuje się, iż z bramek NAND można zbudować każdą sieć logiczną. Bramka NAND wewnętrznie nie składa się z dwóch oddzielnych bramek NOT i AND. Bramki NAND projektuje się, tak aby od razu otrzymać funkcję NAND bez stopni pośrednich AND i NOT, które by zwiększały czas propagacji, czyli czas ustalenia się stanu wyjścia bramki po zmianie stanu jej wejść. Z uwagi na powszechność stosowania bramka NAND posiada swój własny symbol i tabelkę stanów. Na wyjściu bramki NAND otrzymujemy stan niski 0 tylko wtedy, jeśli wszystkie jej wejścia posiadają stan wysoki 1. W przeciwnym razie na wyjściu NAND panuje stan wysoki 1:

A B y = NAND(A,B)
0 0 1
0 1 1
1 0 1
1 1 0
Symulator

Nasza sieć logiczna bramki OR zbudowanej z bramki NAND wygląda następująco:

Negujemy sygnały wejściowe. Negację otrzymamy podając ten sam sygnał na oba wejścia bramki NAND lub podając sygnał na jedno wejście, a na drugim utrzymując stan wysoki 1:

 
¬ ( A ∧ A ) = ¬ A      ¬ (1 ∧ A ) = ¬ A

Zanegowane sygnały łączymy bramką NAND:


Czasem stosuje się do bramki NAND symbol alternatywy z zanegowanymi wejściami:

Równoważność obu symboli wynika bezpośrednio z praw De Morgana.


Bramki NAND mogą posiadać więcej niż dwa wejścia. Przemysł elektroniczny produkuje bramki NAND o 2, 3, 4, 8 i 16 wejściach. Poniżej umieściłem przykładową tabelkę stanów dla bramki 4-wejściowej NAND.

Bramka NAND
A B C D y = NAND(A,B,C,D)
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
Na początek:  podrozdziału   strony 

Bramka NOR

Bramka NOR (ang. NOR gate) realizuje funkcję zaprzeczonej alternatywy (NOT OR = NOR) i jest również bramką uniwersalną, za pomocą której możemy budować dowolne sieci logiczne. W praktyce jest ona jednak mniej popularna od bramki NAND. Symbol graficzny NOR składa się z symbolu alternatywy i kółka na wyjściu symbolizującego negację. Bramka NOR przyjmuje na wyjściu stan wysoki 1 tylko wtedy, gdy wszystkie jej wejścia są w stanie niskim 0.

A B y = NOR(A,B)
0 0 1
0 1 0
1 0 0
1 1 0
Symulator

Dla przykładu zbudujmy z bramek NOR sieć logiczną koniunkcji dwóch sygnałów A i B. Najpierw wynik:

y = A ∧ B

Wykonujemy dwukrotne zaprzeczenie, które nie zmienia wartości logicznej:

y = ¬ ¬ ( A ∧ B )

Wykorzystujemy prawo De Morgana: zaprzeczenie koniunkcji jest alternatywą zaprzeczeń:

y = ¬ ( ¬ A ∨ ¬ B )

Otrzymaliśmy zaprzeczoną alternatywę, którą zrealizujemy za pomocą bramki NOR. Zaprzeczamy sygnały wejściowe. Można to zrobić bramkami NOR podając na oba wejścia ten sam sygnał lub podając sygnał na jedno wejście, a na drugie podając stan logiczny 0:

 
¬ ( A ∨ A ) = ¬ A      ¬ (A ∨ 0 ) = ¬ A

Wyjścia łączymy bramką NOR i otrzymujemy koniunkcję sygnałów A i B:


Czasem stosuje się do bramki NOR symbol koniunkcji z zanegowanymi wejściami:

Równoważność obu symboli wynika bezpośrednio z praw De Morgana.


Bramki NOR produkowane są jako 2, 3, 4 i 8 wejściowe. Poniżej umieściłem przykładową tabelkę stanów dla bramki 4-wejściowej NOR:

Bramka NOR
A B C D y = NOR(A,B,C,D)
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
Na początek:  podrozdziału   strony 

Bramka EX-OR

W wielu zastosowaniach elektroniki cyfrowej wykorzystywana jest funkcja wyłącznie-lub (ang. EXclusive-OR). Funkcja EX-OR jest dwuargumentowa. Funkcja przyjmuje wartość logiczną 1 tylko wtedy, gdy dokładnie jeden z jej argumentów ma wartość 1. W przeciwnym razie funkcja ma wartość 0. Poniżej przedstawiamy symbol bramki EX-OR, tabelkę stanów oraz symulację:

A B y = EX-OR(A,B)
0 0 0
0 1 1
1 0 1
1 1 0
Symulator

Funkcję EX-OR nazywamy również różnicą symetryczną lub sumą modulo 2. Funkcję możemy zapisać za pomocą funkcji podstawowych. Wykorzystujemy tutaj fakt, iż wartość logiczną 1 funkcja przyjmuje dla argumentów różnych:

EX-OR(A,B) = ( A ∧ ¬ B ) ∨ ( ¬ A ∧ B )

Koniunkcja ( A ∧ ¬ B ) lub ( A ∧ ¬ B ) przyjmuje wartość 1, jeśli argumenty A i B posiadają przeciwne wartości logiczne. Wtedy alternatywa tych koniunkcji przyjmie wartość 1. Jeśli oba argumenty posiadają taką samą wartość logiczną, to obie koniunkcje mają wartość 0, a zatem ich alternatywa również ma wartość zero.


Spróbujmy (dla ćwiczenia) zrealizować funkcję EX-OR za pomocą bramek NAND. Wykonujemy podwójną negację:

EX-OR(A,B) = ¬ ¬ ( ( A ∧ ¬ B ) ∨ ( ¬ A ∧ B ) )

Teraz wykorzystujemy prawa De Morgana, aby pozbyć się środkowej alternatywy:

EX-OR(A,B) = ¬ ( ¬ ( A ∧ ¬ B) ∧ ¬ ( ¬ A ∧ B))

Zwróć uwagę, iż otrzymaliśmy tutaj same zaprzeczenia oraz funkcje zaprzeczonych koniunkcji. Wszystko da się zrealizować przy pomocy bramek NAND. Najpierw przygotowujemy sygnały A, A, B, B:

Teraz realizujemy funkcje ¬ ( A ∧ ¬ B ) oraz ¬ ( ¬ A ∧ B ):

Na koniec łączymy wyjścia tych bramek ostatnią bramką NAND i na jej wyjściu otrzymujemy funkcję EX-OR:

Produkowane przez przemysł elektroniczny bramki EX-OR nie są wewnętrznie zbudowane z żadnych bramek pośrednich. Układy te realizują wewnętrznie funkcję EX-OR, dzięki czemu są dużo szybsze w działaniu, od sieci zastępczych takich jak powyższa (to było tylko ćwiczenie). Jeśli jesteś zdolny, to spróbuj zbudować układ zastępczy bramki EX-OR z bramek NOR.

Na początek:  podrozdziału   strony 

Bramka EX-NOR

Bramka EX-NOR (ang. EXclusive Not OR) jest bramką EX-OR z zanegowanym wyjściem. Zatem jej stany wyjściowe są odwrotne do stanów bramki EX-OR. Symbol graficzny bramki EX-NOR jest symbolem bramki EX-OR z kółeczkiem negacji na wyjściu. Bramka EX-NOR ma na wyjściu stan wysoki 1, jeśli stany logiczne obu wejść są takie same. W przeciwnym razie na wyjściu będzie stan 0.

A B y = EX-NOR(A,B)
0 0 1
0 1 0
1 0 0
1 1 1
Symulator
Na początek:  podrozdziału   strony 

Podsumowanie

Nazwa Symbol Funkcja Opis
BUFFER y = A Bramka buforowa.
NOT y = ¬ A Na wyjściu jest negacja stanu wejściowego.
OR y = A ∨ B Na wyjściu jest stan 1, jeśli jedno z wejść jest w stanie 1.
AND y = A ∧ B Na wyjściu jest stan 1, jeśli wszystkie wejścia są w stanie 1.
NAND
y = ¬ ( A ∧ B ) Na wyjściu jest stan 0, jeśli wszystkie wejścia są w stanie 1.
NOR
y = ¬ ( A ∨ B ) Na wyjściu jest stan 1, jeśli wszystkie wejścia są w stanie 0.
EX-OR y = A ⊕ B Na wyjściu jest stan 1, jeśli oba argumenty mają różne stany logiczne.
EX-NOR y = ¬ ( A ⊕ B ) Na wyjściu jest stan 1, jeśli oba argumenty mają ten sam stan logiczny.
Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.