ELEKTRONIKA
UKŁADY CYFROWE
SYGNAŁY CYFROWE
• Elektronika cyfrowa posługuje się sygnałami przyjmującymi wartości logiczne – jeden z dwóch dyskretnych stanów:
•
‚0’, LOW•
‚1’, HIGH• Jednak w rzeczywistości odpowiada on analogowym wartościom:
•
Zwykle:•
0V•
VCC/VDD (5V, 3.3V, 2.5V, 1.2V, 1.1V … )•
Lub innym ściśle określonym np. -5V/+5VPOZIOMY LOGICZNE
• Układ cyfrowy ma zdefiniowane poziomy napięć, odpowiadające wartościom logicznym:
•
Zakres napięć wejściowych (VIL i VIH - Input Low/High), dla których ciągła wartość napięcia wejściowego jest interpretowana jako konkretna wartość logiczna•
Zakres napięć wyjściowych (VOL, VOH – Output Low/High), które przyjmuje wyjście dla wartości logicznych ookreślonym poziomie
• Napięcia dla technologii CMOS (VDD = 5V):
•
Wyjście dla ‚1’ – (4.7V, 5V)•
Wyjście dla ‚0’ – (0V, 0.2V)•
Wejście dla ‚1’ – (2V, 5V)•
Wejście dla ‚0’ – (0V, 0.8V)POZIOMY LOGICZNE
• Przyłączeniu układów należy zapewnić że poziomy napięć wyjściowych i wejściowych się zgadzają (uwzględniony najgorszy przypadek):
•
Można ze sobą łączyć układy wykonane w tej samej technologii np. TTL<->TTL, lub CMOS<->CMOS•
Dla różnych technologii należy porównać poziomy napięć. Np. można połączyć układy CMOSv->TTL, ale już nieTTL->CMOSv
(TTL out 3.3V < CMOSv in 3.7V – najgorszy przypadek niespełniony)
•
Każdy pojedynczy układ zawsze specyfikuje poziomy napięć niezależnie odtechnologii w jakiej został wykonany
POZIOMY LOGICZNE
• Przykładowa bramka NAND, w zależności od napięcia, którym jest zasilana:
SERIA 7400
• Seria 7400 przyporządkowuje numery różnym układom logicznym
• Występują one w wielu technologiach pod tymi samymi numerami np.
SN74LS08N, 74HCT08DB (układ zawierający cztery dwuwejściowe bramki
AND)
ALGEBRA BOOLE`A
• Algebra Boole`a składa się z:
•
Zbioru B zawierającego elementy { 0, 1 }•
Operatora jednoargumentowego:•
Negacji logicznej (NOT)•
𝑥•
~𝑥•
Operatorów dwuargumentowych:•
Sumy logicznej (OR)•
𝑥 + 𝑦•
𝑥 ∨ 𝑦•
Iloczynu logicznego (AND)•
𝑥 ⋅ 𝑦•
𝑥 ∧ 𝑦x y 𝑥 + 𝑦 𝑥 ⋅ 𝑦
0 0 0 0
0 1 1 0
1 0 1 0
1 1 1 1
x ~𝑥
0 1
1 0
WŁASNOŚCI
• Łączność + przemienność
• Rozdzielność AND względem OR
• Prawa De Morgana
• Inne
OPERATORY POCHODNE
• Dodatkowo możemy zdefiniować operatory pochodne:
•
Implikacja•
Równoważność•
Suma wykluczająca (XOR – Exlusive OR)•
𝑥⨁𝑦•
Zanegowana suma (NOR)•
~(𝑥 + 𝑦)•
𝑥 ∨ 𝑦•
Zanegowany iloczyn (NAND)•
~(𝑥 ⋅ 𝑦)•
𝑥 ∧ 𝑦x y ~(𝑥 + 𝑦) ~(𝑥 ⋅ 𝑦)
0 0 1 1
0 1 0 1
1 0 0 1
1 1 0 0
x y 𝑥 → 𝑦 𝑥 ⟺ 𝑦 𝑥⨁𝑦
0 0 1 1 0
0 1 1 0 1
1 0 0 0 1
1 1 1 1 0
BRAMKI LOGICZNE
• Elektroniczne elementy realizujące wybrane operacje logiczne nazywamy bramkami:
•
Identyczność (buffer) 𝑞 = 𝑥•
Negacja (NOT) 𝑞 = ~𝑥•
Iloczyn logiczny (AND) 𝑞 = 𝑎 ⋅ 𝑏•
Suma logiczna (OR) 𝑞 = 𝑎 + 𝑏•
Zaprzeczony iloczyn (NAND) 𝑞 = ~(𝑎 ⋅ 𝑏)•
Zaprzeczona suma (NOR) 𝑞 = ~(𝑎 + 𝑏)•
Suma wykluczająca (XOR) 𝑞 = 𝑎⨁𝑏•
Zaprzeczone wykluczenie (XNOR) 𝑞 = ~(𝑎⨁𝑏)IMPLEMENTACJA
• Implementacja bramki NAND w technologii TTL i CMOS
ZESTAW FUNKCJONALNIE PEŁNY
• Zestaw funkcjonalnie pełny – zestaw bramek przy pomocy którego można zrealizować każdą inną funkcję logiczną
• Poniższe zbiory bramek są funkcjonalnie pełne
•
AND, NOT•
OR, NOT•
NAND•
NOR• Użycie tylko jednego rodzaju bramek upraszcza budowę fizyczną układu
logicznego (np. korzystamy tylko z bramek NAND)
ZESTAW FUNKCJONALNIE PEŁNY - NAND
• Realizacja pozostałych funkcji logicznych przy pomocy bramek NAND
• NOT:
•
y = nand(x, x) = ~(x ⋅ x) = ~x•
y = nand(x, 1) = ~(x ⋅ 1) = ~x• AND:
•
y = nand(nand(x, y), nand(x, y)) = and(x, y) y = ~((~(a ⋅ b)) ⋅ ~(a ⋅ b)) = ~(~(a ⋅ b)) = a ⋅ b• OR:
•
y = nand(nand(a, a), nand(b, b)) = or(a, b)•
~((~(a * a)) * (~(b * b))) = ~(~a * ~b) = a + b (prawo De Morgana)• Buffer:
•
y = nand(nand(x, x), nand(x, x)) = yZESTAW FUNKCJONALNIE PEŁNY - NAND
• OR:
•
OR jak w poprzednim przykładzie (prawo De Morgana) + negacja•
y = nand(or(a, b), or(a, b)) = nor(a, b)•
~((a + b) * (a + b)) = ~(a + b)• XOR:
•
y = (a ⋅ ~b) + (~a ⋅ b)• XNOR: dodatkowa negacja na wyjściu
UKŁADY CYFROWE
• Układy cyfrowe możemy reprezentować jako „czarną skrzynkę”, posiadającą wejścia oraz wyjścia logiczne.
• Na wejście podawany jest „wektor wejściowy”, a na wyjściu układ wystawia
„wektor wyjściowy”
• Cyfrowe układy dzielimy na:
•
Kombinacyjne – stan wyjść układu w danej chwili zależy od stanu wejść w tej samej chwili.•
Sekwencyjne – stan wyjść układu w danej chwili zależy od stanu wejść w tej samej chwili oraz stanu wejść w chwilach poprzednich. Układ taki zawiera stanwewnętrzny.
Układy sekwencyjne dzielimy na:
•
Synchroniczne, gdzie zmiana stanu wyjść (oraz stanu wewnętrznego) jest zsynchronizowana z zegarem zewnętrznym.•
Asynchroniczne, gdzie zegar wewnętrzny nie występuje, a zmiana stanów następuje w momencie zmiany stanu wektora wejściowego.UKŁADY CYFROWE KOMBINACYJNE
• Układ cyfrowy kombinacyjny można opisać na różne sposoby:
•
Za pomocą równania•
y = a + (b ⋅ c)•
Tabelą prawdy – każdy możliwy wektor wejściowy ma przypisaną wartość wyjścia•
Przy pomocy mapy Karnaugh`aabc y
000 0
001 0
010 0
011 1
100 1
101 1
110 1
111 1
ab\c 0 1
00 0 0
01 0 1
11 1 1
10 1 1
KODOWANIE
• System dziesiętny
•
Dla liczby dziesiętnej n, składającej się z sekwencji cyfr dkdk-1dk-2...d1d0, wartość liczby n wynosi:𝑛 =
𝑖=0 𝑘
10𝑖 ⋅ 𝑑𝑖
• Kod NKB
•
Analogicznie. Podstawą systemu jest liczba 2, a nie 10.•
Dla liczby binarnej n, składającej się z sekwencji bitów bkbk-1bk-2... b1b0, wartość liczby n wynosi:𝑛 =
𝑖=0 𝑘
2𝑖 ⋅ 𝑏𝑖
•
Przykładowo 11012 = 23 ⋅ 1 + 22 ⋅ 1 + 21 ⋅ 0 + 20 ⋅ 1 = 8 + 4 +1 = 1310KODOWANIE – KOD GRAYA
• Kod Graya jest kodem, którego kolejne słowa różnią się tylko na pozycji jednego bitu
• Kod Graya:
•
Dwubitowy: 00, 01, 11, 10•
Trzybitowy: 000, 001, 011, 010, 110, 111, 101, 100•
Czterobitowy utworzymy poprzez dopisanie wiodącego zera do sekwencji słów kodu trzybitowego, a następnie wiodącej jedynki do odwróconej sekwencji słów kodu trzybitowegoMAPA KARNAUGHA
• Układ kombinacyjny może zostać opisany przy pomocy układu równań
boolowskich, tabeli prawdy, która dla każdej możliwej kombinacji wejściowej definiuje wartości wyjść, lub przy pomocy mapy Karnaugha.
• Mapa Karnaugha jest tabelą, która w każdej komórce zawiera wartość wektora wyjściowego.
• Pozycja komórki określa wartości wejść dla konkretnego wektora wyjściowego.
• Wiersze/kolumny definiują część wektora wejściowego.
• Wartości w kolejnych wierszach/kolumnach są numerowane przy pomocy
kodu Graya.
MAPA KARNAUGHA
• Funkcja dana tabelą prawdy oraz przy pomocy mapy Karnaugha.
x3x2\x1x0 00 01 11 10
00 0 0 0 0
01 0 1 0 1
11 1 1 0 1
10 1 1 0 0
x3x2x1x0 y
0000 0
0001 0
0010 0
0011 0
0100 0
0101 1
0110 1
0111 0
1000 1
1001 1
1010 0
1011 0
1100 1
1101 1
1110 1
1111 0
MAPA KARNAUGHA
• Problem: realizacja funkcji boolowskiej danej mapą Karnaugha przy pomocy minimalnej ilości bramek logicznych.
• Dla postaci sumacyjnej (postać iloczynowa - nie omawiana)
1.
Grupujemy sąsiednie jedynki funkcji w grupy o wielkościach będących potęgami liczby 2 (1, 2, 4, 8..). Grupy powinny być jak największe. Można grupować przez krawędzie tabeli.•
Jedynki mogą występować w wielu grupach jednocześnie•
Wszystkie jedynki muszą zostać pokryte•
Zera nie mogą występować w grupach2.
Dla każdej grupy określamy iloczyn wartości wejściowych, tworzący grupę.3.
Funkcja wynikowa jest sumą uzyskanych iloczynów.x3x2\x1x0 00 01 11 10
00 0 0 0 0
01 0 1 0 0
11 1 1 0 1
10 1 1 0 0
MAPA KARNAUGHA – PRZYKŁAD 1
1.
Grupa czterech jedynek - 𝑥3 ⋅ (~𝑥1)2.
Grupa dwóch jedynek - 𝑥2 ⋅ ~𝑥1 ⋅ 𝑥03.
Grupa dwóch jedynek - 𝑥3 ⋅ 𝑥2 ⋅ (~𝑥0) (przechodząca przez krawędź)4.
Wynikowa funkcja:y = 𝑥3 ⋅ ~𝑥1 + 𝑥2 ⋅ ~𝑥1 ⋅ 𝑥0 + 𝑥3 ⋅ 𝑥2 ⋅ (~𝑥0)
5.
Implementacja przy pomocy bramek NAND:x3x2\x1x0 00 01 11 10
00 0 0 0 0
01 0 1 0 0
11 1 1 0 1
10 1 1 0 0
MAPA KARNAUGHA – PRZYKŁAD 2
• Funkcja czterech zmiennych, dana mapą Karnaugha.
• Zakreślone grupy jedynek:
•
~𝑥1 ⋅ ~𝑥0•
~𝑥3 ⋅ ~𝑥0•
𝑥3 ⋅ ~𝑥2 ⋅ 𝑥1 ⋅ 𝑥0• Wynik:
y = ~𝑥
1⋅ ~𝑥
0+ ~𝑥
3⋅ ~𝑥
0+ 𝑥
3⋅ ~𝑥
2⋅ 𝑥
1⋅ 𝑥
0• Realizacja przy pomocy bramek AND i OR oraz NAND (bramki NOT pominięte):
x3x2\x1x0 00 01 11 10
00 1 0 0 1
01 1 0 0 1
11 1 0 0 0
10 1 0 1 0
UKŁADY CYFROWE SEKWENCYJNE
• Układ sekwencyjny jest układem, którego wyjście odzwierciedla stan wejść w chwili bieżącej oraz w chwilach poprzednich.
•
Implikuje to konieczność zastosowania „pamięci”, przechowującej informacje o poprzednich stanach wejść układu.• Układy sekwencyjne dzielimy na:
•
Synchroniczne – które zmieniają stan wektora wewnętrznego oraz wyjściowego tylko w chwilach wyznaczonych przez zewnętrzny zegar (są synchronizowane zegarem). Stan wektora wejściowego brany jest pod uwagę tylko wtedy.•
Asynchroniczne – zmiana wektora stanu wewnętrznego i wyjściowego następuje„natychmiast” po zmianie stanu wektora wejściowego.
UKŁADY CYFROWE SEKWENCYJNE – PRZERZUTNIK RS
• Układami pamiętającymi stan wewnętrzny są przerzutniki (flip-flops).
Przerzutnik pamięta jeden bit informacji.
• Przerzutnik asynchroniczny RS
•
Wejścia:•
Set (S)•
Reset (R)•
Aktywne poziomem niskim(w stanie neutralnym ma wartość ‚1’)