I N V E S T I C E
D O
R O Z V O J E
V Z D Ě L Á V Á N Í
PODPORA ELEKTRONICKÝCH FOREM VÝUKY CZ.1.07/1.1.06/01.0043
Tento projekt je financován z prostředků ESF a státního rozpočtu ČR.
SOŠ informatiky a spojů a SOU, Jaselská 826, Kolín
1
I N V E S T I C E
D O
R O Z V O J E
V Z D Ě L Á V Á N Í
ČÍSLICOVÁ TECHNIKA ČÍSLICOVÁ TECHNIKA 1
Autorem tohoto výukového materiálu je Ing. Miroslav Veverka
SOŠ informatiky a spojů a SOU, Jaselská 826, Kolín
2
OBSAH ■ Analogový a číslicový signál ■ Číselné soustavy ■ Kódy ■ Booleova algebra ■ Definice logické funkce ■ Minimalizace logické funkce, Karnaughova mapa ■ Kombinační logické obvody ■ Literatura
3
Analogový a číslicový signál
Analogový signál ■ mění se plynule, (spojitě), nabývá libovolné hodnoty uvnitř rozsahu tvořeného krajními hodnotami ■ analogový signál zpracovává analogová technika (elektronika)
U
t 5
Analogový signál ■ analogová technika má určité meze, především, požadujeme-li velkou přesnost zpracování ■ chceme-li zvýšit přesnost zpracování, velmi rychle roste složitost zařízení a tím i jeho cena ■ většina veličin kolem nás má podobu analogového signálu ■ člověk má pro příjem analogového signálu uzpůsobené smysly: ■ zvuk – uši ■ jas – oči ■ teplota, tlak – povrch těla
6
Číslicový signál ■ nabývá jen dvou hodnot ■ jeho zpracováním se zabývá číslicová technika ■ výhodou oproti analogové technice je možnost zvyšování přesnosti bez výrazného zvyšování složitosti a ceny zařízení
U
t 7
Číselné soustavy
Číselné soustavy ■ člověk běžně používá desítkovou soustavu – má 10 prstů na obou rukou ■ používá také šedesátkovou soustavu – hodiny, úhly ■ číslicová technika používá jen dva stavy veličiny – pracuje tedy ve dvojkové soustavě ■ dvojková soustava je technicky nejjednodušší – rozlišit dva stavy je snazší než rozlišit 10 stavů ■ libovolné číslo lze vyjádřit v jakékoliv číselné soustavě
9
Číselné soustavy ■ číselné soustavy jsou poziční – záleží na pozici (pořadí) číslic v zápisu čísla příklad: ■ 346, 634 používají stejné číslice, ale ta jsou v jiném pořadí, vyjadřují tedy různá čísla
10
Obecná definice číselné soustavy ■ základem je libovolné přirozené číslo Z≥2 ■ číselná soustava o základu Z má Z číslic:0,1,…,Z-1 ■ libovolné přirozené číslo N lze vyjádřit vzorcem: N=cn-1.Zn-1+cn-2.Zn-2+…+c1.Z1+c0.Z0 kde
c jsou cifry (číslice) čísla Z je základ číselné soustavy n je řád čísla 3
2
1
■ příklad: 2586=2.10 +5.10 +8.10 +6.10
0
11
Desítková soustava ■ používá 10 znaků pro zobrazení deseti číslic: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ■ je pro nás nejpřirozenější soustava
32610 = 326 0
6×10 = 6 1 2×10 = 20 3×102 = 300 326 12
Dvojková soustava ■ používá dva znaky pro vyjádření číslic – 0 a 1
1010112 = 4310 1×20 1×21 0×22 1×23 0×24 5 1×2
= 1 = 2 = 0 = 8 = 0 =32 43 13
Hexadecimální soustava ■ používá 16 znaků pro vyjádření číslic, pro vyšší hodnoty používá prvních 6 písmen abecedy: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ■ A=10, B=11, C=12, D=13, E=14, F=15 ■ používá se nejčastěji při programování
3A6F16 = 1495910 15×160 6×161 10×162 3 3×16
= 15 = 96 = 2560 =12288 14959 14
Převody mezi soustavami ■ Převod čísla z desítkové soustavy do libovolné jiné soustavy: ■ číslo vydělíme základem druhé soustavy ■ zapíšeme zbytek po dělení ■ postup opakujeme, dokud zbylé číslo zůstává větší než 0 ■ zbytky dostaneme v opačném pořadí, zapisujeme je tedy odzadu
15
Převod s desítkové do dvojkové soustavy ■ desítkové číslo postupně dělíme 2 a sepisujeme zbytky (mohou mít hodnoty 0 nebo 1)
87 43 21 10 5 2 1 0
= 10101112 1 1 výsledek čteme 1 odspodu nahoru 0 1 0 1
16
Převod z desítkové soust. do šestnáctkové ■ desítkové číslo postupně dělíme 16 a sepisujeme zbytky (mohou mít hodnoty od 0 do 15) ■ zbytky větší než 9 musíme "převést" na písmena: ■ 10=A, 11=B, 12=C, 13=D, 14=E, 15=F
60000 3750 234 14 0
= EA6016 0 6 výsledek čteme 10 A odspodu nahoru 14 E
17
Převod z dvojkové soustavy do desítkové ■ základní postup jsme použili zde ■ jiná možnost – připravíme si tabulku mocnin čísla 2 N 2N
7 128
6 64
5 32
4 16
3 8
2 4
1 2
0 1
■ řády si nadepíšeme nad cifry čísla (od pravého konce počínaje 0) ■ za každou 1 v čísle zapíšeme hodnotu z tabulky a všechny hodnoty pak sečteme příklad: 7 6 5 4 3 2 1 0
1 0 1 0 0 1 0 1 =128+32+4+1=165 18
Převod ze šestnáctkové soust. do desítkové ■ základní postup jsme použili zde ■ jiná možnost – připravíme si tabulku mocnin čísla 16 N 16N
4
3
2
1
0
65536
4096
256
16
1
■ řády si nadepíšeme nad cifry čísla (od konce počínaje 0) ■ každou cifru v čísle vynásobíme hodnotou z tabulky a všechny hodnoty sečteme ■ příklad 3 2 1 0
1 A 9 D =1*4096+10*256+9*16+13= =4096+2560+96+13=9813 19
Aritmetické operace ve dvojkové soustavě ■ provádějí se stejným postupem jako ve soustavě desítkové ■ všechny aritmetické operace se dají převézt na jedinou operaci – na sčítání ■ první mikroprocesory uměly jenom sčítat, některé i odčítat, pro násobení a dělení se musel sestavit program ■ současné procesory umějí násobit i dělit – jsou výrazně rychlejší
20
Sčítání ■ pro sčítání platí vztahy: 0 0 1 1
+ + + +
0 1 0 1
= = = =
0 1 1 0 přenos 1 do vyššího řádu
■ příklad: 11 přenosy do vyšších řádů 101101 1110 111011
21
Sčítání většího počtu sčítanců ■ součet sudého počtu jedniček je 0 ■ součet lichého počtu jedniček je 1 ■ za každou celou dvojici jedniček připíšeme jednu 1 jako přenos do vyššího řádu ■ příklad: 11 11111 10110 111 1011 10101 111101
přenosy do vyšších řádů
22
Odčítání ■ pro odčítání platí vztahy: 0 0 1 1
− − − −
0 1 0 1
= = = =
0 1 půjčka 1 z vyššího řádu 1 0
■ příklad: 11111101 10111 11100110
23
Odčítání pomocí dvojkového doplňku ■ odčítání převedeme na sčítání, záporné číslo vytvoříme pomocí dvojkového doplňku: ■ doplníme odečítané číslo na stejný počet řádů zleva nulami ■ provedeme inverzi – záměnu jedniček a nul ■ přičteme 1 ■ příklad: 11111101 - 10111 00010111 11101000 + 1 11101001
zleva doplněno nulami inverze = jednotkový doplněk přičtena 1 = dvojkový doplněk záporné číslo 24
Odčítání pomocí dvojkového doplňku 11111101 + 11101001 111100110
■ vzniklý přenos ignorujeme ■ jedničkový doplněk jedničkového doplňku je původní číslo ■ dvojkový doplněk dvojkového doplňku je původní číslo
25
Násobení ■ pro násobení platí vztahy: 0 0 1 1
× × × ×
0 1 0 1
= = = =
0 0 0 1
■ postup násobení je stejný jako u desítkové soustavy ■ příklad 10111 × 1011 10111 10111 10111 11111101 26
Dělení ■ pro dělení platí vztahy: 0 0 1 1
: : : :
0 1 0 1
= = = =
chyba 0 chyba 1
■ postup dělení je stejný jako u desítkové soustavy 11111101:10111=1011 -10111 0100010 -10111 0010111 -10111 00000 27
Dělení a násobení posunem ■ pro desítkovou soustavu: 5 50 500 posun doleva násobí 10
400 40 4 posun doprava dělí 10
■ pro dvojkovou soustavu: 1012= 5 10102=10 101002=20 posun doleva násobí 2
110002=24 11002=12 1102= 6 posun doprava dělí 2
28
Kódy
Kódy – základní pojmy ■ kód – soubor znaků a pravidel k zaznamenávání, (přenosu, uložení) informací ■ kódování – převod informací z jednoho tvaru do jiného ■ definováno matematicky – např. převod desítkového čísla do dvojkové soustavy ■ definováno přiřazovací tabulkou ■ dekódování – zpětný převod informací do původní podoby ■ kodér – zařízení pro kódování ■ dekodér – zařízení pro dekódování 30
Přirozený dvojkový kód ■ již jsme jej probrali ■ je nejpoužívanější ■ není ochráněn proti chybám (není detekční) ■ vhodný pro aritmetické operace ■ každý vyšší řád je dvojnásobkem předchozího řádu ■ př.: 18510=101110012
31
BCD kód 8421 ■ BCD – Binary Coded Decimal – binárně kódované desítkové číslo ■ znázorňuje každou desítkovou číslici (0 až 9) pomocí 4-bitového dvojkového kódu ■ používá standardní váhy 8421 ■ není definován pro čísla 10 až 15 ■ velmi často používaný – zobrazování času, čísla skladby apod. ■ př.: 73510=0111 0011 0101BCD
32
Převod z BCD do desítkové soustavy ■ zprava si zápis hodnoty rozdělíme po čtveřicích ■ převádíme zvlášť každou čtveřici na desítkovou číslici ■ př.:
10110010111BCD 0101 1001 0111BCD=59710
■ v jednom bajtu (8 bitů) mohou být uložena 2 čísla v BCD kódu, procesory obsahují instrukce pro práci s tímto kódem
33
Grayův kód ■ základní vlastnost – při přechodu k sousední hodnotě se mění jen jeden bit Þ snadná kontrola případné chyby ■ platí též u při přechodu z poslední hodnoty na první (kód je uzavřen do sebe) ■ nazýván také jako symetrický či zrcadlový (reflexní) kód ■ použití: ■ odměřování polohy ■ Karnaughova mapa
34
Sestavení Grayova kódu ■ zapíšeme pod sebe dvě hodnoty binárního čísla 0 a 1, pod poslední hodnotou zakreslíme zrcadlící rovinu 0 1 zrcadlící rovina ■ pod zrcadlící rovinu opíšeme hodnoty v obráceném pořadí (jakoby se odrážely v zrcadle) ■ před hodnoty nad zrcadlící rovinou dopíšeme 0, před hodnoty pod zrcadlící rovinu dopíšeme 1 00 01 zrcadlící rovina 11 10 35
Sestavení Grayova kódu ■ vícebitový kód vznikne opakováním popsaného postupu ■ čtyřbitový Grayův kód
■ čtyřbitový binární kód
36
Kód 1 z 10 ■ tvoří jej 10 bitů, jen jeden z nich má hodnotu 1, ostatní jsou nulové ■ obsahuje velkou nadbytečnost (redundanci), k vyjádření hodnoty je třeba více bitů ■ nehodí se např. pro aritmetické operace ■ jde o kód detekční – umí detekovat chybu ■ používá se v číslicových zařízeni pro výběr jednoho zařízení z daného množství ■ př.: 410=00000100001z10
37
Kód 2 z 5 ■ tvoří jej 5 bitů, vždy jen 2 bity mají hodnotu 1, ostatní jsou nulové ■ používá váhy 84210 ■ nehodí se např. pro aritmetické operace ■ jde o kód detekční – umí detekovat chybu při přenosu ■ používá se v telefonních ústřednách ■ př.: 410=010012 z 5
38
Přehled kódů číslo
binární
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
8421
BCD 8421
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 – – – – – –
Grayův
2z5
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
11000 00011 00101 00110 01001 01010 01100 10100 10001 10010 – – – – – –
84210
1 z 10 0000000001 0000000010 0000000100 0000001000 0000010000 0000100000 0001000000 0010000000 0100000000 1000000000 – – – – – – 39
ASCII kód ■ American Standard Code for Information Interchange ■ tabulka znaků (písmen, číslic, dalších znaků) ■ každý znak má své pořadové číslo (např. '@'=64) ■ původně 7 bitový, nyní 8 bitový (obsahuje národní znaky – písmena s čárkami, háčky, přehláskami) ■ používá se na naprosté většině zařízení – počítače, mobily, PDA, přístroje audiovizuální techniky ■ kódy s hodnotami 0 až 31 se nezobrazují jako konkrétní znaky, jsou určeny jako řídící kódy pro různé periferie
40
ASCII kód kód
znak
kód
znak
kód
znak
kód
znak
kód
znak
kód
znak
32
mezera
48
0
64
@
80
P
96
`
112
p
33
!
49
1
65
A
81
Q
97
a
113
q
34
''
50
2
66
B
82
R
98
b
114
r
35
#
51
3
67
C
83
S
99
c
115
s
36
$
52
4
68
D
84
T
100
d
116
t
37
%
53
5
69
E
85
U
101
e
117
u
38
&
54
6
70
F
86
V
102
f
118
v
39
'
55
7
71
G
87
W
103
g
119
w
40
(
56
8
72
H
88
X
104
h
120
x
41
)
57
9
73
I
89
Y
105
i
121
y
42
*
58
:
74
J
90
Z
106
j
122
z
43
+
59
;
75
K
91
[
107
k
123
{
44
,
60
<
76
L
92
\
108
l
124
|
45
–
61
=
77
M
93
]
109
m
125
}
46
.
62
>
78
N
94
^
110
n
126
~
47
/
63
?
79
O
95
_
111
o
127
del
41
Ochrana kódu proti chybám ■ při přenosu kódu (vzduchem, opticky, kabelem) může nastat chyba přenosu – jeden nebo více bitů se vlivem rušení změní na opačnou hodnotu ■ příklad: 1011
® přenosem nastala chyba:
0011
■ metody ochrany proti chybám: ■ kontrola paritou – zjistí chybu ■ výběr vhodného kódu – zjistí chybu ■ použití samoopravného kódu – opraví chybu
42
Kontrola paritou ■ rozpozná chybu na jednom bitu, těch bývá asi 50 - 60% z vyskytujících se chyb ■ rozpozná i chyby na lichých počtech bitů, nerozpozná chyby na sudých počtech bitů ■ nejčastěji používaná metoda, kde nejsou velké nároky na bezpečnost ■ do bitové kombinace se přidá dodatečný bit podle typu parity: ■ sudá parita – počet všech 1 i s paritním bitem je sudý ■ lichá parita – počet všech 1 i s paritním bitem je lichý 43
Kontrola paritou ■ příklad: přenos znaku "M" v ASCII kódu ■ bez parity:
1001101
■ sudá parita:
10011010
■ lichá parita:
10011011
■ kontrola paritou je vhodná pro jakýkoliv kód ■ pro velkou bezpečnost přenosu se používá vícenásobné parity – přidání více paritních bitů dokáže chybu i opravit ■ pro 8 informačních bitů je třeba 5 paritních bitů
44
Kontrola kódem P z N ■ P je počet jedniček ■ N počet všech bitů ■ příklad: přenášíme jen čísla v kódu 2 z 5: 910=100102z5
®přenosem vznikla chyba 101102z5
jsou zde tři 1 – takový znak v tomto kódu neexistuje, rozpozná se chyba
45
Booleova algebra
Výroky ■ George Boole (1815-1864) byl zakladatel matematické logiky ■ výrok – oznamovací věta (sdělení), o němž lze rozhodnout, zda je pravdivá či nepravdivá Jsou výroky: Nejsou výroky:
Prší Svítí slunce Kéž by zapršelo! Kolik je hodin?
■ pravdivostní hodnoty: ■ pravda ■ nepravda
značíme 1, H značíme 0, L 47
Logika – pojmy ■ výroky spojujeme do složitějších výrazů pomocí logických operací ■ logická konstanta - její hodnota je stále stejná, má jen dvě možné hodnoty 0 nebo 1 ■ logická proměnná – její hodnota se může měnit, možné hodnoty 0 nebo 1 ■ logické proměnné označujeme písmeny – např.: A, B, C, … X, Y, Z ■ logická funkce – logické operace s logickými konstantami a proměnnými, možné hodnoty 0 nebo 1
48
Booleova algebra ■ Booleova algebra – je matematický prostředek k popisu logických operací ■ k vytvoření libovolné logické funkce používá pouze tři základní operace: ■ logický součet ■ logický součin ■ negace
49
Logický součet ■ Y=A+B ■ OR, česky NEBO ■ výstupní proměnná Y má hodnotu 1 tehdy, má-li alespoň jedna ze vstupních proměnných A nebo B hodnotu 1.
A 0 0 1 1
B A+B 0 0 1 1 0 1 1 1
A B
Y
50
Logický součin ■ Y=A . B ■ AND, česky A, I ■ výstupní proměnná Y má hodnotu 1 jen tehdy, mají-li hodnotu 1 obě proměnné A i B.
A 0 0 1 1
B 0 1 0 1
A·B 0 0 0 1
A
B Y
51
Negace ■ Y=A, čteme "A non" ■ NON, NOT, česky NE ■ výstupní proměnná Y má vůči vstupní proměnné A opačnou hodnotu, je její inverzní funkcí
A 0 1
A 1 0
A
Y
52
Více proměnných ■ tři základní funkce (součet, součin, negace) lze rozšířit na libovolný počet vstupních proměnných ■ příklad logického součtu a součinu pro 3 vstupní proměnné:
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C A+B A.B 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1
53
Zákony Booleovy algebry ■ A=A
zákon dvojí negace
■ A+0=A
nula je v součtu neutrální
■ A+1=1
jednička je v součtu agresivní
■ A+A=A ■ A + A =1 ■ A.0=0
nula je v součinu agresivní
■ A.1=A
jednička je v součinu neutrální
■ A.A=A ■ A × A=0 54
Zákony Booleovy algebry ■ A+B=B+A
komutativní zákony
■ A.B=B.A ■ A+B+C=(A+B)+C=A+(B+C) asociativní ■ A.B.C=(A.B).C=A.(B.C)
zákony
■ distributivní zákony: ■ A.(B+C)=A.B+A.C
pro součin
■ A+B.C=(A+B).(A+C)
pro součet
■ pozor - neexistuje v klasické algebře! 55
Zákony Booleovy algebry ■ deMorganovy zákony: ■ A + B + C = A ×B ×C ■ A ×B ×C = A + B + C ■ Shannonův teorém - zobecnění deMorganových zákonů: ■ (A, B, C, × , + ) = (A, B, C, + , × ) ■ nad každou proměnnou přibude negace ■ + se změní na • ■ • se změní na + ■ platí přednost log. součinu před log. součtem!
56
Definice logické funkce
Definice logické funkce ■ logická funkce může být definovaná několika způsoby: ■ pravdivostní tabulka ■ algebraický výraz – základní zápis logické funkce v podobě matematického popisu ■ Karnaughova mapa, zároveň i nástroj ke zjednodušování log. funkce (probereme později) ■ další způsoby (nebudeme se je učit): Svobodova mapa, Vennův diagram, …
58
Pravdivostní tabulka ■ pro všechny kombinace vstupních proměnných jsou dány hodnoty výstupní funkce (0 nebo 1) ■ pro n proměnných je řádků tabulky: 2n ■ n=2:
22=4
■ n=3:
23=8
■ n=4:
24=16
■ úplně zadaná funkce - známe její hodnotu (0 nebo 1) pro všechny možné kombinace vstupních hodnot ■ neúplně zadaná funkce – pro některé kombinace vstupních proměnných může mít funkce hodnotu 0 nebo 1 (tedy nezáleží na hodnotě), výslednou hodnotu značíme obvykle X 59
Pravdivostní tabulka Pravdivostní tabulka úplně zadané funkce A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
f 0 0 1 1 1 0 0 0
Pravdivostní tabulka neúplně zadané funkce A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
f 0 X 1 1 1 0 0 X
60
Algebraický výraz ■ výstupní funkce je vyjádřena pomocí logických operací (součet, součin, negace) se vstupními proměnnými ■ algebraický výraz lze získat i z pravdivostní tabulky či Karnaughovy mapy ■ algebraický výraz lze (po úpravě) převést do pravdivostní tabulky či Karnaughovy mapy ■ příklady zápisu funkce:
Y = (AB + C)(A +B)C Y = AB + AB + ABC
61
Karnaughova mapa ■ Karnaughova mapa
[karnafova]
■ především je to nástroj ke zjednodušování logické funkce ■ vhodná pro funkce s max. 5 vstupními proměnnými (pro více proměnných je nepřehledná) ■ je tvořena počtem 2n políček, kde n je počet vstupních proměnných ■ příklad Karnaughovy mapy pro 3 proměnné
B
A
C
0
0
1
0
0
1
1
0 62
Minimalizace logické funkce, Karnaughova mapa
Algebraická minimalizace ■ před vlastní realizací pomocí logických obvodů výraz minimalizujeme aplikací zákonů Booleovy algebry ■ důvod minimalizace: ■ jednodušší schéma obvodu ■ menší spotřeba ■ levnější výroba ■ větší spolehlivost ■ algebraická minimalizace je náročná a zdlouhavá, v praxi obvykle minimalizujeme jinými metodami (např. Karnaughova mapa)
64
Příklad úpravy algebraického výrazu ■ minimalizujme výraz:
Y =(AB+C)(A +B)C
Y =(AAB+ ABB+ AC +BC)C Y = AABC+ ABBC+ ACC +BCC Y = ABC+ ABC+ AC +BC Y = ABC+ AC +BC Y =C(AB+ A +B) æ
ö
è
ø
Y = Cçç(A(B +1))+B÷÷ Y =C(A +B) 65
Karnoughova mapa - základy ■ rychlý nástroj pro minimalizaci logické funkce ■ každé políčko mapy představuje součin příslušných proměnných (přímých nebo negovaných - tzv. minterm) ■ do příslušného políčka zapíšeme logickou hodnotu 1, obsahuje-li funkce příslušný součin proměnných ■ do příslušného políčka zapíšeme logickou hodnotu 0, neobsahuje-li funkce příslušný součin proměnných ■ je-li počet proměnných (n) sudé číslo, bude tabulka čtvercová, při n lichém bude obdélníková
66
Políčka Karnaughovy mapy ■ součiny proměnných v jednotlivých políčkách:
A
A A
AB
AB
AB
A
A A B C AB C
ABC
ABC
ABC
ABC
ABC
A BC
AB
B
B
C 67
Políčka Karnaughovy mapy ■ součiny proměnných v jednotlivých políčkách:
A
B
ABCD AB CD AB CD ABCD A BCD ABCD ABC D AB CD A BCD A BCD ABCD A BCD
C D
AB C D AB C D AB C D A B C D 68
Sousedící políčka ■ součiny sousedících políček se mění jen v jedné proměnné (mapa je sestavena v Grayově kódu) ■ sousedící políčka – sousedí jen stranami, nikoliv přes rohy
69
Sousedící políčka ■ sousedící políčka – mapa pro 3 proměnné A
B
C
■ sousedící políčka – mapa pro 4 proměnné A
B
C D
70
Minimalizace pomocí Karnaughovy mapy ■ naplníme Karnaughovu mapu logickými 1 (logické 0 se někdy nezapisují): ■ z pravdivostní tabulky ■ z algebraického výrazu - ve správném tvaru – jako součet součinů
B
A 1
1
1
0
1
1
0
0
C 71
Minimalizace pomocí Karnaughovy mapy ■ zarámujeme (graficky sdružujeme) sousedící políčka s hodnotou log. 1 ■ počet zarámovaných log. 1 může být 1, 2, 4, 8, 16 (binární číslo) ■ zarámujeme vždy co největší oblast políček ■ snažíme se dosáhnout minimálního počtu smyček B
A 1
1
1
0
1
1
0
0
C 72
Minimalizace pomocí Karnaughovy mapy ■ zarámované musí být všechny 1 v mapě ■ již jednou zarámovaná 1 v jedné smyčce může být součástí jiné smyčky – viz políčko označené
B
A 1
1
1
0
1
1
0
0
C 73
Minimalizace pomocí Karnaughovy mapy ■ pro každou smyčku napíšeme součin proměnných, které nemění pro celou oblast svou hodnotu (negaci) ■ všechny součiny sečteme ■ kolik je smyček – tolik bude součinů ■ modrá smyčka:
AC
■ červená smyčka: B ■ výsledná funkce:
B
A
Y= B + AC 1
1
1
0
1
1
0
0
C 74
Funkce zadaná pravdivostní tabulkou ■ pro řádky, na nichž Y=1, napíšeme součin všech proměnných tak, aby vyšla hodnota 1 ■ součiny sečteme A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
Y 0 0 0 1 0 1 1 1
ABC ABC ABC ABC
Výsledná funkce: Y=ABC+ABC+ABC+ABC 75
Funkce zadaná pravdivostní tabulkou ■ výslednou funkci Y=ABC+ABC+ABC+ABC zapíšeme do Karnaughovy mapy ■ vytvoříme smyčky ■ minimalizovaná funkce:
B
A
Y = AC+AB+BC 1 1
1
1
C
AC
AB
BC
76
Funkce zadaná algebraickým výrazem ■ výraz musí být upraven na součet součinů ■ Y=ABC+AB+ABC+ABC ■ součin menšího počtu proměnných (než je celkový počet – zde 3) dodá 1 do více políček současně
B
A
1
11 1
1
C
■ různé součiny mohou dodat své 1 do stejného políčka, v políčku pak necháme jen jednu 1 ■ minimalizovaná funkce:
B
A
Y=ABC+AB+BC
1
1 1
1
C 77
Využití neúplně zadané funkce
A
B
A
1
1
1
1
1
X
1
1
C
B
C
Y=AB+AC
Y=A
78
Kombinační logické obvody
Kombinační logické obvody ■ výstupní hodnota závisí jen na současné hodnotě vstupních hodnot ■ pro sestavení libovolné kombinační funkce potřebujeme tzv. úplný systém logických funkcí, ten tvoří trojice: ■ logický součet ■ logický součin ■ negace ■ další úplné systémy logických funkcí poznáme později
80
Základní logické členy ■ logický člen – elektrický obvod, který realizuje požadovanou logickou funkci ■ obecně se nazývají hradla ■ hradla se zakreslují schematickými značkami ■ schematické značky se pro stejná hradla liší: ■ evropské – měli bychom je používat ■ americké – vliv programů pro kreslení schémat (vyrobené v USA) ■ hradla mívají nejčastěji od 2 do 8 vstupů (také i 13 vstupů)
81
Základní hradla Logický součet
OR Y = A+B Logický součin
AND Y=A.B Negace
NOT Y=A
A 0 0 1 1
B A+B 0 0 1 1 0 1 1 1
A 0 0 1 1
B 0 1 0 1
A 0 1
A·B 0 0 0 1
A 1 0
≥1
&
1
82
Hradlo NAND ■ hradlo NAND (úplný systém logických funkcí) ■ Y=A.B
&
A
A
A.A = A + A = A
A 0 0 1 1
B 0 1 0 1
Y 1 1 1 0
A.B A.B
B A B
A B
A.B=A+B=A+B
83
Hradlo NOR ■ hradlo NOR (úplný systém logických funkcí) ■ Y=A+B
≥1
A
A
A.A = A + A = A
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
A+B A+B
B A B
A B
A+B=A.B=A.B
84
Hradla XOR a EQ ■ XOR, EX OR – exkluzivní (výhradní) součet ■ Y=AB+AB = A Å B =1
A 0 0 1 1
B 0 1 0 1
Y 0 1 1 0
■ XNOR, EX NOR, EQ – ekvivalence (shodnost) ■ Y=AB+AB = A Û B =1
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 1 85
AND-OR-INVERT (AND-NOR) ■ realizuje vztah: Y=AB+CD ■ výstup je v log. 0 jen tehdy, je-li na obou vstupech některé sekce AND současně stav log. 1, ve všech ostatních případech ve na výstupu log.1 ■ zkrácená pravdivostní tabulka: A
B
C
D
Y
& ³1
1
1
X
X
0
&
X
X
1
1
0
ostatní kombinace
1
86
Aplikace logických členů ■ zjednodušte výraz Y=AB+AB+AB, porovnejte obvodovou realizaci původního a zjednodušeného schématu A
■ po zjednodušení: Y=A+B před zjednodušením
1 1
1
B
po zjednodušení
87
Převodníky kódů ■ převodníky převádějí znak (informaci) z jednoho kódu do jiného kódu ■ v literatuře se používají pojmy kodér a dekodér, kodér převádí znak do nějakého kódu, dekodér jej převádí zpět do původního formátu ■ oba převodníky pracují na stejném principu, budeme nadále používat termín dekodér (převodník)
88
Převodník 1 ze 4 ■ obecně převodník 1 z N převádí stavy z přímého binárního kódu na kód, kdy je aktivní vždy pouze jeden z N výstupů ■ převodník 1 ze 4 má 2 vstupy a 4 výstupy (22=4)
A
B V0 V1 V2 V3
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
V0 = A ×B V1 = A ×B V2 = A ×B V3 = A ×B
89
Převodník 1 ze 4 ■ schéma zapojení
ê
V0 = A ×B V1 = A ×B V2 = A ×B V3 = A ×B
90
Převodník BCD kódu na kód 1 z 10 ■ vstupem je 4 bitové BCD číslo, aktivní je jeden výstup z 10 Vstupy D C B A 0 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 0 0 0 1 0 0 1 ostatní
Výstupy V0 V1 V2 V3 V4 V5 V6 V7 V8 V9
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0
V0 = A × B × C × D V1 = A × B × C × D V2 = A × B × C × D V3 = A × B × C × D V4 = A × B × C × D V5 = A × B × C × D V6 = A × B × C × D V7 = A × B × C × D V8 = A × B × C × D V9 = A × B × C × D
91
Převodník BCD kódu na kód 1 z 10 schéma zapojení
V0 = A × B × C × D V1 = A × B × C × D V2 = A × B × C × D V3 = A × B × C × D V4 = A × B × C × D V5 = A × B × C × D V6 = A × B × C × D V7 = A × B × C × D V8 = A × B × C × D V9 = A × B × C × D 92
Převodník kódu 1 z 10 na kód BCD ■ používá se pro převod desítkového vstupního signálu (např. z klávesnice) do kódu BCD Vstupy S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1
Výstupy D C B A 0 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 0 0 0 1 0 0 1
napíšeme vztahy pro výstupy: A=S1+S3+S5+S7+S9 B=S2+S3+S6+S7 C=S4+S5+S6+S7 D=S8+S9 použijeme hradla OR
93
Převodník kódu 1 z 10 na kód BCD ■ vstupy hradel jsou přes rezistory připojeny na zem a tak mají na svém vstupu log.0 ■ při stisku číselného tlačítka se přivede na dané vstupy hradel log.1
94
Multiplexery ■ multiplexer si můžeme představit jako vícepolohový přepínač
1 2 vstupy
■ multiplexer má n adresových vstupů, 2n datových vstupů a 1 výstup
3 4
■ má za úkol propojit jeden ze vstupů na výstup ■ vstup, který má být připojen k výstupu, se určí adresou v binárním kódu
výstup
datové vstupy
E0 E1 E2 E3 E4 E5 E6 E7
0 1 2 3 4 5 6 7
adresové vstupy
A B C
A B C
MX
Y
95
Multiplexery ■ použití: ■ spínání signálu ze vstupu na výstup ■ generování logické funkce ■ převod paralelních dat na sériová ■ zjištění stavu na vstupu Di
96
Dvouvstupový multiplexer ■ nejjednodušší multiplexer ■ obsahuje dva datové vstupy D0 a D1 a jeden řídící vstup V ■ pro V=1: vstup D1 je zablokován a platí Výstup=D0 ■ pro V=0: vstup D0 je zablokován a platí Výstup=D1
V 0 1
Výstup D1 D0 97
Čtyřvstupový multiplexer ■ k sestrojení použijeme převodník 1 ze 4 (é) ■ obsahuje dva adresové vstupy A0 a A1, čtyři datové vstupy D0 až D3 a jeden výstup VY ■ dekodér 1 ze 4 podle přivedené adresy (A0, A1) uvede jeden výstup do log. 1 a tím připojí příslušný vstup D k výstupu
A1 0 0 1 1
A0 0 1 0 1
VY D0 D1 D2 D3 98
Generování Bool. funkce multiplexerem ■ multiplexerem lze realizovat funkci zadanou buď pravdivostní tabulkou nebo výrazem ve tvaru součtu součinů ■ realizujeme multiplexorem majoritní funkci
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
Vstup E0 E1 E2 E3 E4 E5 E6 E7
Součin A×B×C A×B× C A×B×C A×B×C A×B×C A×B×C
A×B×C A×B× C
Y 0 0 0 1 0 1 1 1 99
Generování Bool. funkce multiplexerem ■ má-li být daný součin realizován (v tabulce je 1), přivedeme na daný vstup log.1 ■ nemá-li být daný součin realizován (v tabulce je 0), přivedeme na daný vstup log.0 1
0
E0 MX E1 E2 E3 E4 E5 E6 E7
Y
Y=E3+E5+E6+E7= =ABC+ABC+ABC+ABC
A B C 100
Demultiplexery ■ demultiplexer je v zásadě obrácený multiplexer ■ má jeden vstup, který může být propojen na jeden z několika výstupů ■ základním funkčním blokem je dekodér 1 ze 4 ■ použití: ■ převod sériových dat na paralelní
101
Demultiplexery ■ použití multiplexeru a demultiplexeru: ■ přenos informací rychlým sériovým kanálem, na vstupní straně se zdroje signálů svedou do multiplexeru a ten je převede do sériového tvaru a vysílač je vyšle do přijímače, z přijímače se sériová data přivedou do demultiplexeru a ten je rozdělí do patřičného počtu výstupů (stejného jako bylo vstupů). zdroj 1 zdroj 2
vysílač
přijímač
MX
zdroj n multiplexování
příjemce 1
DX rychlá přenosová cesta
příjemce 2 příjemce n
demultiplexování 102
Sčítačky ■ sčítačky jsou kombinační obvody, které realizují součet dvou binárních čísel ■ pro sčítání platí vztahy: 0 0 1 1
+ + + +
0 1 0 1
= = = =
0 1 1 0
přenos
1 do vyššího řádu
A 0 0 1 1
B 0 1 0 1
Y 0 1 1 0
■ výstupní hodnoty odpovídají výstupu hradla XOR (exkluzívní součet, A Å B) ■ XOR je tedy základní stavební prvek sčítaček =1
103
Poloviční sčítačka ■ součet realizuje hradlo XOR ■ přenos realizuje hradlo AND
■ poloviční - znamená, že nepracuje s přenosem z předchozího řádu (zkratka HS – half-summer). A B
HS
S P
104
Úplná sčítačka ■ sčítá dva bity a přenos z předchozího řádu ■ má 3 vstupy: ■ 2 sčítané bity A, B ■ přenos z předchozího řádu P ■ má 2 výstupy: ■ součet S ■ přenos do vyššího řádu P1
A B P
SM
S P1
A B P
HS P S
HS
P S
1
P1 S
105
Čtyřbitová sčítačka ■ sečte dvě 4 bitová čísla, výsledkem je 4 bitový součet S a přenos do vyššího řádu P ■ nevýhoda – pro velký počet bitů (32, 64) trvá výpočet dlouho – signál prochází postupně mnoha hradly – to má za následek velké zpoždění P0 A0 B0 A1 B1 A2 B2 A3 B3
0
SM
S P0
S0 SM
S P1
S1 SM
S P2
S2 SM
S P3
S3 P
106
Sčítačka se zrychleným přenosem ■ pro rychlý výpočet součtu lze použít obvod pro zrychlený výpočet přenosů a0 b0 a1 b1 a2 b2 a3 b3
obvod pro zrychlení výpočtu P0 přenosu P1
P2 P3
Σ
S0
Σ
S1
Σ
S2
Σ
S3 107
Sčítačka a odčítačka ■ sčítačku lze použít i pro odčítání – odčítané číslo převedeme na záporné pomocí dvojkového doplňku ■ operaci nastavíme log. 1 na daném vstupu (sčítání, odčítání), na druhém bude log.0
odčítání sčítání B´ číslo B B
& p0 &
1
SM
sčítačka S
číslo A 108
Sériová sčítačka ■ tam, kde nevadí pomalost, lze použít pro sčítání vícebitových čísel jedinou sčítačku ■ sčítá se postupně bit po bitu v posuvném registru ■ pro n-místná čísla je zapotřebí n kroků (taktů hodin)
Registr A Registr B
SM
Registr výsledku P – přenos
109
Literatura
110
Literatura ■ BERNARD, Jean-Michel, HUGON, Jean, LE CORVEC, Robert. Od logických obvodů k mikroprocesorům. Praha : SNTL, 1988. 688 s. ■ MATOUŠEK, David. Číslicová technika : základy konstruktérské praxe. 1. vyd. Praha : BEN - technická literatura, 2001. 208 s. ISBN 80-7300-025-3. ■ ANTOŠOVÁ, Marcela, DAVÍDEK, Vratislav. Číslicová technika : učebnice. 1. vyd. České Budějovice : KOPP, 2003. 288 s. ISBN 80-7232-206-0. ■ MALINA, Václav. Digitální technika. 1. vyd. České Budějovice : KOPP, 1996. 208 s. ■ BAYER, Jiří, HANZÁLEK, Zdeněk, ŠUSTA, Richard. Logické systémy pro řízení. 1. vyd. Praha : Vydavatelství ČVUT, 2000. 269 s. ■ ŠIMEK, Tomáš, BURGET, Pavel. Elektronické systémy 1 : přednášky. 1. vyd. Praha : Vydavatelství ČVUT, 2001. 192 s. 111