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 2
Autorem tohoto výukového materiálu je Ing. Miroslav Veverka
SOŠ informatiky a spojů a SOU, Jaselská 826, Kolín
2
OBSAH
■ Sekvenční logické obvody ■ Klopné obvody ■ Registry ■ Čítače ■ Literatura
3
Sekvenční logické obvody
Sekvenční logické obvody ■ výstupní stav závisí nejen na současné hodnotě vstupních hodnot, ale i na předcházejících vstupních stavech ■ jejich základní charakteristickou vlastností je paměť ■ paměťové chování se realizuje zpětnou vazbou
vstup
kombinační obvod
výstup
paměť
zpětná vazba
5
Klopné obvody
Klopné obvody ■ tvoří základní prvky sekvenčních logických obvodů ■ sekvenční logické obvody jsou řízeny periodickým signálem – hodinami (clock) ■ klopný obvod: ■ bistabilní – má dva stabilní stavy, setrvává ve stavu, dokud není vstupním signálem překlopen do druhého ■ monostabilní – má jeden stabilní stav, v němž setrvává, do druhého ho překlopí vstupní signál, po chvilce se vrací zpět do stabilního stavu ■ astabilní – má dva nestabilní stavy, mezi nimiž stále přechází – kmitá 7
Klopný obvod RS ■ má dva vstupy:
S – set – nastavení R – reset – nulování
■ má dva výstupy:
QaQ
jejich stav je vzájemně opačný
■ je-li Q=1 a Q=0 – obvod je nastaven ("nahozen") ■ je-li Q=0 a Q=1 – obvod je nulován ■ schematická značka Q Q
8
Klopný obvod RS z hradel NOR ■ z pravdivostní tabulky hradla NOR vyplývá, že je-li na jednom ze vstupů log. 1, pak je výstup v log. 0 ■ říkáme, že log. 1 je u hradla NOR agresivní ■ po přivedení napětí se klopný obvod vlivem rozptylu vlastností součástek překlopí do předem nedefinovaného stavu
R
A 0 0 1 1
B 0 1 0 1 1
1 S
Y 1 0 0 0
Q
Q
9
Činnost KO z hradel NOR ■ předpokládejme, že klopný obvod (KO) se překlopí do stavu Q=0 ■ log.1 se z výstupu Q přenese na vstup horního hradla a "potvrdí" Q=0
R=0
1 1 0
S=0
1
Q=0
Q =1
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
10
Činnost KO z hradel NOR ■ nastavíme S=1 ■ "agresivní" 1 na dolním hradle způsobí Q'=0 ■ dvě 0 na horním hradle způsobí Q=1 ■ KO se nastaví: Q=1
R=0
1 0 1
S=1
1
Q=1
Q =0
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
11
Činnost KO z hradel NOR ■ změní li se hodnota S=0, stav KO se nezmění, protože kombinace 10 na spodním hradle dává stále hodnotu výstupu 0 ■ KO si pamatuje předchozí stav Q=1
R=0
1 0 1
S=0
1
Q=1
Q =0
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
12
Činnost KO z hradel NOR ■ nastavíme R=1 ■ dvě 1 na horním hradle způsobí Q=0 ■ dvě 0 na dolní hradle způsobí Q'=1 ■ KO se vynuluje – Q=0
R=1
1 1 0
S=0
1
Q=0
Q =1
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
13
Činnost KO z hradel NOR ■ změní li se hodnota R=0, stav KO se nezmění, protože kombinace 01 na horním hradle dává stále hodnotu výstupu 0 ■ KO zůstává vynulován: Q=0
R=0
1 1 0
S=0
1
Q=0
Q =1
A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
14
Činnost KO z hradel NOR ■ zvláštní případ nastane, bude-li současně R=1 a S=1, pak na výstupech bude Q=0 a současně Q'=0 ■ tento stav je v rozporu s definicí výstupních signálů, ty musí být vzájemně opačné ■ navíc při současném zániku signálů (R=S=0) se KO překlopí do náhodného stavu
R=1
1 1 0
S=1
1
Q=0
Q =0
■ stavu R=S=1 se musíme vyhnout A 0 0 1 1
B 0 1 0 1
Y 1 0 0 0
15
Činnost KO z hradel NOR ■ pravdivostní tabulka
■ časový diagram
S
R
Q
0
0
nemění stav
0
1
0
1
0
1
1
1
zakázaný stav
S
■ t0 – KO je v klidovém stavu ■ t1 – S=1, pak Q=1, zůstává i R po S=0 Q ■ t2 – R=1, pak Q=O ■ t3 – R=1, pak Q=1 Q ■ t4 – stav se nemění, již v t3 byl t0 t1 překlopen
t2
t3
t4
t5 16
Klopný obvod RS z hradel NAND ■ klopný obvod RS lze také sestavit z hradel NAND ■ u hradla NAND je "agresivní" na vstupu úroveň log. 0, při jejím výskytu je na výstupu log. 0 ■ abychom vyhověli definici vstupů R a S, tedy aby pro překlopení obvodu byla na jednom ze vstupů log. 1, a zároveň platila pravdivostní tabulka, musíme před vstupy zařadit invertory S
&
& R
Q
Q
S
R
1
1
&
&
Q
Q
A 0 0 1 1
B 0 1 0 1
Y 1 1 1 0 17
Odstranění zákmitů spínače pomocí KO RS ■ mechanické spínače při sepnutí i vypnutí trpí zákmity – opakovanými sepnutími +5V R
nesepnuto
1k2 výstup Tlačítko
sepnuto rozhodovací úroveň +5V
■ první dotyk kontaktu s dorazem 1 nebo 2 překlopí KO RS, ostatní dotyky již se neprojeví
& PŘ
Q
1 2 &
+5V 18
Klopný obvod RST ■ KO RS je tzv. asynchronní obvod, výstup ihned reagoval na vstupní hodnoty ■ RST je synchronní KO, obvod je řízen hodinovými impulzy (clock, označuje se C nebo T), není-li hodinový signál aktivní, jakákoliv činnost na vstupech se na výstupu neprojeví
S
T
Q
C R
Q
19
Klopný obvod RST ■ pravdivostní tabulka je stejná jako u asynchronního RS KO, platí však pro stav, kdy T=1 ■ časový diagram: kvůli zpoždění hradel musí být na hodinovém vstupu signál dříve, než na vstupech R nebo S, jinak obvod nestačí reagovat (čas t3)
T
S
R
Q
0
X
X
nemění stav
1
0
0
nemění stav
1
0
1
0
1
1
0
1
1
1
1
zakázaný stav
T S R Q t0
t1
t2
t3
t4
t5 20
Dynamické vstupy klopných obvodů ■ obvod RST během hodinového impulzu (při T=1) je vystaven rušení – budou-li se na vstupech R a S měnit hodnoty, bude se měnit i výstup Q – to je obvykle nežádoucí chování ■ jedna cesta snížení rizika rušení je zkrácení hodinového impulzu – to je technicky problematické a nepoužívá se ■ spolehlivější cesta je upravit klopný obvod tak, aby reagoval na změnu úrovně – tomu říkáme dynamické řízení
21
Dynamické vstupy klopných obvodů ■ řízení KO: ■ na náběžnou hranu (čelo) impulzu ■ na sestupnou hranu (týl) impulzu T
sestupná hrana
náběžná hrana S C R
T
Q
Q
S C R
T
Q
Q 22
Klopný obvod D ■ vznikne úpravou KO RS, mezi vstupy R a S je zapojen invertor, tím se vyloučí možnost neurčitého stavu ■ stav na vstupu D se při T=1 zapíše na výstup Q (Q=D), výstup setrvá na hodnotě i po skončení T ■ KO D jsou v dvojím provedení: ■ ovládané úrovní log.1 na T – latch ■ ovládané náběžnou hranou na T T
D
Q
0
0
nemění stav
0
1
nemění stav
1
0
0
1
1
1 23
Klopný obvod JK ■ jiný způsob zamezení nežádoucího stavu KO RS při zachování dvou vstupů je předřazení hradel AND před vstupy R a S ■ na obou výstupech se nikdy neobjeví log.1 současně, protože Q a Q' jsou navzájem opačné
24
Klopný obvod JK ■ obvod reaguje na náběžnou hranu signálu C, hodnoty na datových vstupech musí předcházet před C ■ J=K=0: výstup Q se nemění, pamatuje si předchozí stav ■ J≠K: výstup Q kopíruje hodnotu ze vstupu J ■ J=K=1: na každou náběžnou hranu C se výstup mění na opačnou hodnotu – dělí kmitočet dvěma J
K
Q
0
0
předchozí stav
0
1
0
1
0
1
1
1
překlopení
C J K Q 25
Dvojčinný klopný obvod JK ■ klopné obvody se konstruují jako master-slave, tím se odstraní náchylnost na rušení ■ při náběžné hraně hodinového pulzu se načte vstupní hodnota do obvodu master, slave je blokován (C=0) ■ při sestupné hraně hodinového pulzu předá master data na člen slave (díky invertoru je na jeho vstupu náběžná hrana) a změní se výstup master
slave
J C K
J 1
C K
Q Q
26
Asynchronní vstupy klopných obvodů ■ vstupy klopných obvodů (R,S,D,J,K) jsou synchronně s hodinovými pulzy (C, někdy T) čteny a přenášeny na výstup ■ klopné obvody mají další vstupy pro nastavení (Q=1) a pro vynulování (Q=0) ■ na tyto vstupy reaguje klopný obvod ihned nezávisle na svém stavu, na stavu datových vstupů i na stavu hodinového pulzu ■ mají naprostou přednost, říkáme jim asynchronní vstupy (nejsou synchronizovány s hodinovými pulzy)
27
Asynchronní vstupy klopných obvodů ■ u klopných obvodů D a JK jsou to vstupy: ■ S (set) ■ R (reset)
nastaví Q=1 nastaví Q=0
■ mohou být aktivní v logické 1 logické 0 ■ pozor: oba vstupy nesmí být v aktivní úrovni současně, musíme to zařídit vhodným zapojením log.1
log.0
28
Klopný obvod D 7474 ■ kompletní funkční tabulka klopného obvodu D typu 7474 ■ obvod je řízen náběžnou hranou hod. signálu ■ - – náběžná hrana ■ X – libovolná úroveň D
S' R' C D Q Q'
režim
0
1
X
X
1
0
asynchronní
1
0
X
X
0
1
asynchronní
0
0
X
X
1
1
asynchronní, neurčitý stav
1
1
-
1
1
0
synchronní
1
1
-
0
0
1
synchronní
1
1
0
X Q Q'
beze změn
T
Q
C S R
Q
29
Klopný obvod D vytvořený z JK ■ klopný obvod je univerzálně použitý pro různé aplikace ■ KO D vznikne zapojením invertoru mezi vstupy J a K ■ invertor zamezí, aby vstupy J a K měly stejnou úroveň ■ chová se jako standardní klopný obvod D, reaguje na sestupnou hranu hodinového pulzu ■ ¯ značí sestupnou hranu hodinového pulzu
D
J
C
C 1
K
TT
Q Q
D
C
Q
0
¯
0
1
¯
1
X
0
předchozí stav 30
Klopný obvod T vytvořený z JK ■ klopný obvod T pracuje jako dělič kmitočtu dvěma ■ při T=1 se z výstupu Q odebírá poloviční kmitočet, než jaký se přivádí na vstup C
T
J
C
C K
TT
Q Q
T
C
Q
0
¯
předchozí stav
1
¯
Q' - překlopí se
X
0
předchozí stav
31
Registry
Registry ■ registr je složen z paměťových buněk ■ statické registry – (paměťové), uchovávají data v jednotlivých buňkách ■ posuvné registry – posouvají data v registru doleva či doprava
33
Statické registry ■ slouží pro vložení a uchování n-bitové informace ■ lze je sestavit z klopných obvodů D i JK ■ hodinovým pulzem C (u D náběžná, u JK sestupná hrana) se hodnoty ze vstupů a0 až a3 zapíší na výstupy Q0 až Q3
34
Posuvné registry ■ slouží k posouvání (stěhování) informace doleva či doprava pomocí hodinového (posouvacího) signálu ■ rozdělení: ■ sériový vstup, sériový výstup ■ sériový vstup, paralelní výstup ■ paralelní vstup, sériový výstup ■ paralelní vstup, paralelní výstup ■ sériový – informace vstupuje nebo vystupuje v jednom místě ■ paralelní – informace z jednotlivých bitů jsou přístupné všechny najednou 35
Posuvný registr D ■ pro vynulování všech klopných obvodů slouží vstup Nulování ■ registrem budeme posouvat jeden impulz přivedený na vstup Data ■ posun se realizuje náběžnou hranou na vstupu Posuv
36
Časový diagram posuvného registru D ■ jednotkový impulz ze vstupu Data cestuje zleva doprava celým registrem, až je úplně "vystrčen" ven ■ po ukončení vstupního impulzu se na vstup Data přivádí log. 0 ■ vstupní impulz musí začínat před náběžnou hranou signálu na vstupu Posuv a musí končit před příchodem následující náběžné hrany Posuv Data Q0 Q1 Q2 Q3 37
Časový diagram posuvného registru D ■ na vstup Data přivedeme log.1 a ponecháme ji tam ■ registr se postupně po 4 impulzech na vstupu Posuv zaplní logickými jedničkami
Posuv Data Q0 Q1 Q2 Q3
38
Posuvný registr JK ■ posuvný registr lze též sestavit z klopných obvodu JK ■ vlastní posuv se realizuje při sestupné hraně signálu Posuv
Posuv Data Q0 Q1 Q2 Q3 39
Kruhový registr JK ■ vznikne propojením výstupu Q posledního členu na vstup J prvního členu, stejně i Q' se připojí na K ■ předpokládáme výchozí stav KO0=1, KO1=0, KO2=0, KO3=0
40
Kruhový registr JK ■ jeho pravdivostní tabulka: ■ informace v kruhovém registru obíhá stále dokola ■ časový diagram:
posuv KO0 KO1 KO2 KO3 0 1 0 0 0 1 0 1 0 0 2 0 0 1 0 3 0 0 0 1 4 1 0 0 0 5 0 1 0 0 6 0 0 1 0 7 0 0 0 1 8 1 0 0 0
Posuv Q0 Q1 Q2 Q3 41
Johnsonův čítač ■ je zvláštním případem kruhového registru ■ zpětná vazba je zapojena "křížem" – výstup Q posledního členu je přiveden na vstup K prvního členu, podobně Q' se přivede na vstup J
42
Johnsonův čítač ■ pravdivostní tabulka:
posun KO0 0 0 1 1 2 1 3 1 4 1 5 0 6 0 7 0 8 0 9 1
KO1 0 0 1 1 1 1 0 0 0 0
KO2 0 0 0 1 1 1 1 0 0 0
KO3 0 0 0 0 1 1 1 1 0 0
■ registr se postupně zleva plní log.1, po naplnění se zase zleva plní log.0 ■ celý cyklus se po 8 krocích opakuje 43
Johnsonův čítač ■ časový diagram: posun Q0 Q1 Q2 Q3
44
Čítače
Čítače ■ čítače jsou sekvenční logické obvody vytvořené z klopných obvodů ■ používají se k počítání počtu impulzů, které se přivádějí na jejich vstup ■ tyto impulzy způsobí, že klopné obvody v čítači se mění takovým způsobem, že jejich stav v binárním kódu vyjadřuje počet vstupních impulzů
46
Rozdělení čítačů ■ podle způsobu spouštění: ■ synchronní ■ asynchronní ■ podle použitého kódu: ■ binární (dvojkové) ■ BCD (desítkové) ■ podle směru čítání: ■ vzestupné (čítají vpřed, nahoru) ■ sestupné (čítají vzad, dolů) ■ reverzibilní (čítají oběma směry) 47
Základ čítačů ■ základem čítačů je klopný obvod zapojený jako dělič kmitočtu dvěma ■ klopný obvod D:
■ klopný obvod JK:
48
Počet stupňů čítače ■ čítač vznikne kaskádním zapojením základních stupňů
■ počet stupňů čítače definuje číslo, to kterého čítač čítá, pak se celý cyklus opakuje od nuly ■ počet stavů je dán vztahem: 2n kde n je počet stupňů
Počet stupňů
1 2 3 4 5 8
Počet stavů čítače
2 4 8 16 32 256
49
Počet stupňů čítače
■ výstup A je nejnižší bit (s nejnižší váhou), výstup D je nejvyšší bit (s největší váhou) ■ na výstupu A je 1/2 vstupního kmitočtu ■ na výstupu B je 1/4 vstupního kmitočtu ■ na výstupu C je 1/8 vstupního kmitočtu ■ na výstupu D je 1/16 vstupního kmitočtu 50
Asynchronní čítače ■ výstup jednoho stupně je spojen se vstupem následujícího stupně ■ změna stavů jednotlivých stupňů probíhá postupně, stav klopného obvodu následujícího bitu se změní až po změnách stavů klopných obvodů předchozích bitů ■ výhoda – jednodušší zapojení celého čítače ■ nevýhoda – menší rychlost čítání, každý člen je spouštěn předchozím, trvá tedy delší dobu, než impulz "projde" všemi členy až na výstup ■ nevýhoda – vznik nežádoucích stavů při současné změně více výstupů
51
4 bitový asynchronní čítač nahoru ■ použijeme JK klopné obvody ■ čítání nahoru – příchodem impulzu na vstup se stav čítače zvětší o 1
U1 CT CT
A B C D
QA QB IN CLR
QC QD
Hodiny D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 52
4 bitový asynchronní čítač nahoru ■ největší číslo uchované ve 4 bitovém čítači je 1111B, to je 15 dekadicky ■ po dalším impulzu se stav změní na 0000 – došlo k přetečení čítače ■ časový diagram: 0 1
2 3 4
5 6 7 8 9 10 11 12 13 14 15 0
vstup A B C D 53
4 bitový asynchronní čítač nahoru ■ chování sekvenčního obvodu lze také popsat stavovým diagramem ■ stavový diagram se skládá z uzlů, které představují stav obvodu, a z šipek, ty představují směr přechodu z jednoho stavu do dalšího ■ ze stavového diagramu lze vyčíst:
0
1
2
3
4
15
5
■ jaké je pořadí stavů
14
6
■ jaká je délka cyklu
13
7
■ zda vznikl uzavřený cyklus
12
11
10
9
8 54
4 bitový asynchronní čítač dolů ■ vznikne tak, že na čítací vstup následujícího stupně přivedeme signál Q' z předchozího stupně ■ čítání dolů – příchodem impulzu na vstup se stav čítače zmenší o 1 ■ čítač čítá od hodnoty 1111B dolů k hodnotě 0000B ■ po dalším impulzu se stav změní na 1111 – došlo k podtečení čítače
Hodiny
D
C
B
A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 55
4 bitový asynchronní čítač dolů ■ čítač dolů
■ čítač nahoru
56
4 bitový asynchronní čítač dolů ■ časový diagram: 15 14 13 12 11 10 9 8 7 6
5 4 3 2
1 0
vstup A B C D
57
4 bitový asynchronní čítač dolů ■ stavový diagram:
0
1
2
3
4
15
5
14
6
13
7
12
11
10
9
8
58
Synchronní čítače ■ čítané impulzy jsou přivedeny na hodinové vstupy všech klopných obvodů ■ všechny klopné obvody mění svůj stav najednou, se zpožděním jediného členu, nezávisle na počtu stupňů ■ "synchronizační princip": aktuální stupeň překlápí pouze v případě, jsou-li všechny předchozí stupně v log.1 ■ výhody – malé zpoždění, rychlejší, nevznikají na výstupu nežádoucí mezistavy ■ nevýhoda – složitější zapojení
59
Čtyřbitový synchronní čítač ■ hradlo H1 dovolí překlopit členu C jen, platí-li A=B=1 ■ člen D může klopit při A=B=C=1 ■ časový diagram, stavový diagram i pravdivostní tabulka jsou shodné jako u asynchronního čítače
60
Zkrácení cyklu čítače ■ v některých případech potřebujeme, aby čítač čítal kratší cyklus, než odpovídá počtu stupňů (2n) ■ typickou metodou je dekódování stavu, který už nechceme a aktivování vstupů pro nastavení nebo nulování (R, S) ■ příklad: Hrací kostka ■ navrhneme tříbitový čítač, který bude simulovat stavy jako u hrací kostky, tj. čísla 1 až 6 ■ řešení: ■ chceme, aby po stavu 6 nastal stav 1, nechceme tedy stav 7 (111B)
61
Zkrácení cyklu čítače ■ jakmile má nastat stav 7, tento stav dekódujeme hradlem AND a člen A nastavíme (vstup S), členy B a C vynulujeme (vstup R) ■ po zapnutí čítač poběží od stavu 0
62
Zkrácení cyklu čítače ■ stavový diagram kostky: 0
1
2
3
6
5
4
■ časový diagram: 1
2
3
4
5
6
1
Cl A B C AND 63
Desítkové (BCD) čítače ■ mají 10 stavů – čítají od 0 do 9 a pak se cyklus opakuje
Hodiny D
0 1 2 3 4 5 6 7 8 9 0
■ stavový diagram:
0 0 0 0 0 0 0 0 1 1 0
C 0 0 0 0 1 1 1 1 0 0 0
B 0 0 1 1 0 0 1 1 0 0 0
0
1
2
3
4
9
8
7
6
5
A 0 1 0 1 0 1 0 1 0 1 0
64
Desítkové (BCD) čítače ■ časový diagram 0 1 vstup A B C
2
3 4
5
6
7
8
9
0
1
D ■ detekujeme stav 10 – binárně 1010 (pořadí DCBA, A=0, B=1, C=0, D=1) a nastane-li, nulujeme všechny klopné obvody asynchronním vstupem R
65
Desítkové (BCD) čítače ■ u obvodů A a C využijeme negované výstupy, pak nám stačí jedno čtyřvstupé hradlo AND
66
Literatura
67
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. 68