CESR Release fel.mzf.cz

Transkript

CESR Release fel.mzf.cz
CESR
Release
fel.mzf.cz
January 06, 2016
CONTENTS
1
Obsah
1.1 O tomto materiálu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Seznam otázek ke zkoušce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Otázky
2.1 Číslicové signály a součástky . . . . . . . . . .
2.2 Technologie CMOS, BiCMOS . . . . . . . . . .
2.3 Dynamická logika . . . . . . . . . . . . . . . .
2.4 Členy s otevřeným kolektorem a třístavové členy
2.5 Kombinační obvody . . . . . . . . . . . . . . .
2.6 Návrh kombinačních obvodů . . . . . . . . . . .
2.7 Realizace kombinačního obvodu pamětí . . . . .
2.8 Základní funkční bloky . . . . . . . . . . . . . .
2.9 Přechodné děje v kombinačních obvodech . . . .
2.10 Klopné obvody . . . . . . . . . . . . . . . . . .
2.11 Registry . . . . . . . . . . . . . . . . . . . . . .
2.12 Čítače . . . . . . . . . . . . . . . . . . . . . . .
2.13 Principy časovacích obvodů . . . . . . . . . . .
2.14 Sekvenční obvody . . . . . . . . . . . . . . . .
2.15 Metastabilita . . . . . . . . . . . . . . . . . . .
2.16 Pipeline . . . . . . . . . . . . . . . . . . . . . .
2.17 Paměti . . . . . . . . . . . . . . . . . . . . . .
2.18 Programovatelné logické obvody . . . . . . . .
2.19 Rušení v elektronických systémech . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
7
.
7
. 12
. 16
. 16
. 21
. 24
. 25
. 25
. 35
. 41
. 50
. 57
. 64
. 73
. 82
. 87
. 89
. 108
. 108
3
Další poznámky
115
3.1 CMOS logické členy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4
Search
117
i
ii
CESR, Release
Note: Pokud máte nějaké příklady, či konkrétní otázky/odpovědi ze zkoušky, bylo by super, když by se tu mohly
objevit v dalších sekcích. Kdybyste něco měli, tak můžete v jakémkoliv formátu posílat na [email protected].
Doporučuji si přečíst stránku O tomto materiálu, a to nejlépe ještě před tím, než se začnete na zkoušku učit.
CONTENTS
1
CESR, Release
2
CONTENTS
CHAPTER
ONE
OBSAH
1.1 O tomto materiálu
Tento materiál se snaží přistoupit ke zkoušce z předmětu CESR odlišným způsobem, než většina běžně dostupných
materiálů. Nejde o vysoce koncentrovaný materiál typu “zapamatuj a napiš do testu”.
Materiál se zakládá na seznamu otázek ke zkoušce. To není definitivní seznam otázek, které by se u zkoušky objevili,
pouze doporučení, co se učit.
Z tohoto materiálu by mělo být jasné, co je důležité, a co není. Poznámky pod čarou (footnotes) jsou jen pro doplnění.
Čísla většinou mají nižší důležitost než text. V podstatě jde o nadpisy:
• 1.1 jsou velmi důležité
• 1.1.1 jsou sice méně důležité, ale pořád dost důležité
• 1.1.1.1 jsou více méně doplnění pro úplnost
Čím hlouběji se propracujete, tím lépe :)
Jelikož víc lidí víc ví, můžete svou troškou přispět na [email protected].
Materiál byl vytvořen pomocí nástroje Sphinx. Původně je to nástroj pro tvorbu dokumentace, ale velmi dobře se dá
využít i na poznámky tohoto typu. To je důvod, proč je část v angličtině, nechtělo se mi přepisovat celý template ;).
1.2 Download
PDF verze těchto poznámek je dostupná, ovšem jde o verzi, jako je v současné podobě na webu. Až bude kompletní
webová verze, bude automaticky i PDF verze. Toto platí i pro epub verzi.
HTML/zip verze je tato webová verze zabalená v zipu. Po rozbalení spust’te index.html a můžete tuto stránku prohlížet
bez připojení k internetu. Jde o to, že webová verze vypadá asi nejlíp ze všech.
Verze
PDF
Epub
HTML/zip
Datum vytvoření
6/1/2016
6/1/2016
6/1/2016
Odkaz
CESR.pdf
CESR.epub
CESR.zip
1.3 Seznam otázek ke zkoušce
Z roku 2014/15. Jde pouze o doporučený seznam.
1. Číslicové signály a součástky. Logické členy, obecné vlastnosti. Charakteristiky, napět’ové úrovně.
3
CESR, Release
2. Technologie CMOS, BiCMOS. Příkon, statické a dynamické parametry, vliv zátěže (rozvětvení), nevyužité vstupy, ochrana vstupů, hystereze. Vlivy parazitních kapacit. Slučitelnost různých technologií.
3. [0 %] Dynamická logika. Princip, zapojení, činnost, vlastnosti.
4. Členy s otevřeným kolektorem a třístavové členy. Sběrnice, budiče sběrnice, terminátory pasivní a aktivní. Vliv
délky spojů. Řízení přístupu na sběrnici.
5. Kombinační obvody. Pravidla pro práci s logickými výrazy. Pravdivostní tabulka. Mintermy a implikanty.
Neurčené stavy. Minimalizace logických funkcí, skupinová minimalizace, tabulka implikantů. Mapy a jejich
použití.
6. [50 %] Návrh kombinačních obvodů. Možnosti realizace - obvody malé integrace a multiplexory - rozklad
funkce.
7. [10 %] Realizace kombinačního obvodu pamětí - konstrukce tabulky obsahu paměti z výrazu.
8. Základní funkční bloky. Často používané kombinační obvody - dekodéry, multiplexory, komparátory, prioritní
kodér a prioritní řetězec, sčítačky a možnosti zrychlení činnosti. U všech: popis log. výrazem, přechodné děje.
9. Přechodné děje v kombinačních obvodech. Zpoždění a hazardy. Vznik hazardu a jeho prognóza - z výrazu, z
mapy a z obvodu. Vliv úprav výrazů. Projevy hazardů v číslicových systémech, metody odstranění. Změny
dvou a více proměnných. Dynamický hazard. Grayův kód a jeho význam. Souběhy signálů - vznik, význam.
10. Klopné obvody, chování (RS, D, T, JK), reakce na hodinový impuls (řízení hranou, úrovní, Master-Slave),
podmínky bezchybné funkce, metastabilita. Nastavení počátečního stavu - prostřednictvím vstupů R,S nebo
multiplexoru. Blokování činnosti KO. Transformace KO - D na T, T/D, JK.
11. Registry, datové a posuvné, podmínky správného časování hod. impulsů. Nulování a přednastavení u posuvných
registrů. Posuvy o větší počet míst na obě strany. Lineární čítače s max. délkou cyklu.
12. Čítače asynchronní a synchronní, binární a modulo, reverzivní. Časové diagramy asynch. a synch. čítače.
Čítače s předvolbou (přednastavením). Návrh čítačů v kódu bin., modulo, Gray. Blokování v koncovém stavu.
Provedení reverzivních čítačů. Čítače s programovatelným modulem.
13. Principy časovacích obvodů. Zkrácení, prodloužení a stabilizace délky impulsu. Využití zpoždění hradel.
Monostabilní KO, MKO-NR a MKO-R. Synchronní časovače, využití čítačů. Detektory hrany. Impulsněšířkový modulátor (PWM).
14. Sekvenční obvody. Přechodová a výstupní funkce, Mealyho a Mooreho automat. Synchronní a asynchronní
sekvenční obvody. Popis stavovým grafem, stavovou tabulkou, stavovými rovnicemi. Neurčené stavy a jejich
projevy. Nastavení počátečního stavu - různé možnosti. Analýza sekv. obvodu (od schématu k tabulce či grafu).
Návrh synch. sekv. obvodů - kódování stavů, výběr KO, návrh budících funkcí.
15. [95 %] Dynamické vlastnosti sekvenčních obvodů. Časování a max. kmitočet hodinových impulsů, časování vstupních a výstupních signálů, předstih a přesah pro celý systém. Možnost vzniku falešných výstupních impulsů.
Vliv zpoždění v rozvodu CLK a nestability hran CLK (jitter).
16. Metastabilita a její projevy v sekvenčních obvodech. Vzorkovače, jejich činnost a spolehlivost, vliv souběhů
signálů. Předávání dat mezi nesynchronními systémy (sféry synchronizace). Korespondenční provoz (“handshake”) - princip a obvodové řešení (pomalý zdroj dat, rychlý příjemce).
17. Pipeline, vlastnosti, zrychlení systému, vedení signálů přes registry.
18. Paměti. Paralelní a sériový přístup. Pamět’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické
(DRAM, SDRAM), ovládání, obnovování obsahu, typické průběhy cyklů, práce po stránkách, latence. Paměti
ROM, (EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Paměti FLASH
„NOR“ a „NAND“. Speciální typy pamětí - FIFO, dvojbránová. Arbitrážní obvody u DPM.
19. [0 %] Programovatelné logické obvody. Principy realizace programovatelných spojů. SPLD- matice AND,
makrobuňky. Cesty signálů při realizaci kombinačních a sekvenčních systémů. Obvody CPLD - propojovací
matice, I/O obvody. Obvody FPGA. Typické vlastnosti.
4
Chapter 1. Obsah
CESR, Release
20. Rušení v elektronických systémech. Vnější rušení, cesty pro vstup rušivých signálů, jejich omezení. Optrony,
diferenční přenos.
21. Vnitřní rušení - rozvod napájení, přeslechy, sběrnice, dlouhé spoje.
1.3. Seznam otázek ke zkoušce
5
CESR, Release
6
Chapter 1. Obsah
CHAPTER
TWO
OTÁZKY
Otázky jsou zde trochu jinak, než v sekci Seznam otázek ke zkoušce, protože jsou drobet jinak poskládané.
2.1 Číslicové signály a součástky
Číslicové signály a součástky. Logické členy, obecné vlastnosti. Charakteristiky, napět’ové úrovně.
2.1.1 Úroveň integrace součástek
Pro představu, co znamenají různé úrovně integrace:
Název
Malá integrace
Střední integrace
Vysoká integrace
Velmi vysoká integrace
Ultra vysoká integrace
Označení (en)
SSI
MSI
LSI
VLSI
ULSI
Počet tranzistorů
1 - 10
10 - 500
500 - 20k
20k - 1M
1M a více
Počet log. členů
1 - 12
13 - 99
100 - 9,999
10k - 99,999
100k a více
Zdroj
2.1.2 Rozhodovací úrovně
Technologie
ALS 2
HC 3
HCT 4
CMOS 5
Vcc
(V)
4.5 5.5
2-6
4.5 5.5
5 - 15
Vr 1
1.4
0.5*Vcc
1.3
0.5*Vcc
Pozn.: nezapojený vstup TTL se chová jako kdyby tam nebyl. Více v části o BiCMOS
Pozn.: všechny vstupy by se měly vždy “ošetřit”, aby nikde nevznikl nežádoucí stav
1 Rozhodovací
úroveň
Low-power Schottky (TTL)
3 High-speed CMOS Wiki: HC logic
4 CMOS technologie se vstupní úrovní TTL kvůli kompatibilitě CMOS s TTL Wiki: CMOS-TTL
5 Complementary metal–oxide–semiconductor
2 Advanced
7
CESR, Release
2.1.3 Spojení více log. členů
Při spojování více log. členů je důležité dodržet správné vstupní a výstupní napětí. Jak je vidět na obrázku, výstupní
napětí předcházející členu musí být 0 - U OLmax pro log. 0 a U OHmin - Ucc pro log. 1.
Vždy musí platit:
• U OHmin > U IHmin
• U OLmax < U ILmax
Pozn.: Značení je zde: <I/O><H/L><min/max>, I - input, O - output, H - high (log. 1), L - low (log. 0)
2.1.4 Převodní charakteristika
Jednoduše: závislost U
nějaký opakovač).
8
out
na U in . Následující obrázek ukazuje převodní charakteristiku neinvertujícího členu (čili
Chapter 2. Otázky
CESR, Release
Pro člen s hysterezí bude vypadat převodní charakteristika následovně:
A na to se váže odstavec o rozkmitání.
Rozkmitání
Těsně kolem U ref se chová člen jako zesilovač. Pomalý přeběh napětí může člen rozkmitat (cca 10 ns přeběh). Pokud
nelze zaručit dost rychlé signály, tak je potřeba přidat/použít člen s hysterezí.
Hystereze je hezky vidět na následujícím obrázku. Vlevo, kdy se signál motá kolem U ref , bude výstup skákat mezi
1/0, zatímco s hysterezí se člen překlopí až za U ref . Vzdálenost mezi U ref a 1 nebo 0 bude vždy 1/2 · ∆U .
2.1. Číslicové signály a součástky
9
CESR, Release
2.1.5 Dynamické vlastnosti hradel
t pHL a t pLH udávají zpoždění signálu při přepnutí z jednoho logického stavu do druhého. Čili t pHL udává: pokud se
změní vstup z H -> L, jak dlouho potrvá, než se ustálí hodnota na výstupu. Měří se vždy v hodnotě 50% Vcc.
Pro představu všech časů, které jsou pro dynamické vlastnosti důležité, viz následující obrázek:
Max. frekvence
fmax =
1
tr +tf
, kde t r je doba náběhu (rise) a t f doba “spadnutí” (fall). Určuje se mezi 10% a 90% úrovně signálu.
2.1.6 Zatížení součástek
CMOS
CMOS je v současné době nejpoužívanější technologie, tady se zatížení projevuje jako kapacitní zátěž. Ta ovlivňuje
dynamické vlastnosti, hlavně časy t pHL a t pLH , a to samozřejmě negativně. To znamená, že na výstup jednoho členu
nemůžeme napojit libovolné množství dalších, protože každý k celkové kapacitě přidá svou trošku + kapacita vodičů,
a to ve výsledku značně ovlivní doby přeběhů. To se musí vejít do nějakého požadavku na rychlost systému.
10
Chapter 2. Otázky
CESR, Release
Pozn.: výstupní rozvětvení je počet vstupů číslicových součástek na výstup jedné dané součástky.
Pozn.: nestandardní zátěž jsou LEDky, rezistory, atd. Standardní jsou další logické členy.
2.1.7 Bipolární technologie
Zatížení
Nelze zanedbat vstupní proud součástek, což vytváří úbytek napětí a to vede ke zhoršení napět’ových úrovní. Na vinně
jsou výstupní obvody bipolárních členů.
Na levém obrázku: na výstupu členu je 1 (U OH ) a nějaká zátěž (at’ už standardní nebo ne), odebírá proud I OH . Jak je
vidět, čím více proudu zátěž odebírá, tím klesá výstupní napětí tohoto členu. A samozřejmě, pokud klesne napětí pod
U OHmin , není splněné pravidlo pro napět’ové hladiny.
Pozn.: Pro nestandardní zátěž je tyto charakteristiky nutné znát. Jakmile se na výstup navěsí nestandardní zátěž, už by
se signál neměl nikam dále zavádět.
O technologii
Transistor - transistor logic (TTL) je takto nazvaná, jelikož tranzistory obstarávají jak logickou funkci, tak i funkci
zesílení výstupu.
Pozn.: existují pak i Diode - transistor logic a Resistor - transistor logic, obojí z let 195x a 196x.
2.1. Číslicové signály a součástky
11
CESR, Release
Odběrová charakteristika
Tenhle graf ukazuje závislost odebíraného proudu na vstupním napětí log. členu. Jak je vidět, kolem U ref se zvedá
odběr, protože jsou na chvilku otevřené “oba tranzistory” (invertor, jinak jich tam bude víc). Samozřejmě, že čím déle
bude trvat přechod mezi stavy 1/0, tím větší bude tento odběr.
Spotřeba se snižuje v případě technologií TTL-LS (Low-power Schottky) a TTL-ALS (Advanced Low-power Schottky).
2.2 Technologie CMOS, BiCMOS
Technologie CMOS, BiCMOS. Příkon, statické a dynamické parametry, vliv zátěže (rozvětvení), nevyužité vstupy,
ochrana vstupů, hystereze. Vlivy parazitních kapacit. Slučitelnost různých technologií.
2.2.1 Vnitřní zapojení
Negace
12
Chapter 2. Otázky
CESR, Release
Funguje to tak, že 1 na vstupu otevře tranzistor N a celé vstupní napětí jde do země. Tranzistor P je zavřený, takže se
Ucc nemá jak dostat na výstup a Y bude 0.
A opačně: pokud je A = 0, pak se otevře horní tr. P a napětí Ucc se objeví na výstupu. Současně tranzistor N bude
zavřený, takže Ucc nemůže jít dolů na zem, může se objevit jedině na Y.
Tento a další logické obvody poskládané z jednotlivých součástek najdete v dokumentu CMOS logické členy. Některé
z těchto zapojení se mohou objevit u zkoušky, proto doporučuji projít i tohle.
2.2.2 Vstupní obvody
Na vstupu CMOS součástek bude vždy něco jako je na obrázku:
Protože mají MOS tranzistory vysoký vstupní odpor (109 Ω), může i malý náboj prorazit oxid pod hradlem.
Funguje to zhruba takto:
• Pokud přijde na vstup záporné napětí (co to tam má co dělat, že?), tak jde přes diodu na zem. Jenže dioda má
svůj vlastní úbytek, takže z např. -10 V se -9.3 V protlačí na zem a zůstane -0.7 V.
• Pokud přijde kladné napětí větší než Ucc, bude procházet přes horní diodu. Takže když přijde 10 V, tak 0.7 V
zůstane na diodě a promítne se dál, a zbytek se protlačí do zdroje. Tzn. na výstupu zůstane 5.7 V.
• A pokud je signál v rozmezí 0 - Ucc, tak 0 V žádnou diodu neotevře, na výstupu je 0, všechno OK. Pokud přijde
5 V jako log. 1, tak rozdíl na diodě bude 0 V, neotevře se, a těch 5 V zase v klidu projde dál.
2.2.3 Parazitní kapacita
Stejně jako u TTL, během přechodu z jednoho log. stavu do druhého, jsou na krátký okamžik propustné obě větve
tranzistorů. To vytvoří vyšší odběr proudu ze zdroje.
2.2. Technologie CMOS, BiCMOS
13
CESR, Release
Výpočet
Symbol
Cp
∆U
f
Qp
Icc
∆t
Význam
parazitní kapacita
napět’ový skok (budeme předpokládat Ucc)
frekvence přepínání 1/0
náboj, který je potřeba k nabití parazitní kapacity
proud, který parazitní kapacitu nabíjí
čas, po který se parazitní kapacita nabíjí (doba přechodu mezi 1 a 0)
Qp = Cp · ∆U = Icc · ∆t
Z toho chceme Icc :
Icc = Cp ·
ΔU
Δt
Víme, že:
f=
1
Δt
takže to přepíšeme:
Icc = Cp · ∆U · f
A už vidíme, že čím větší parazitní kapacita, čím větší napět’ový skok a čím větší pracovní frekvence, tím větší odběr
proudu ze zdroje.
Pro ztracený výkon jednoduše:
2
·f
Ucc · Icc = Cp · Ucc
Jelikož je Ucc konstantní, dá se říct, že příkon CMOS členů roste lineárně s pracovní frekvencí. Z toho vztahu taky
vidíme, proč se stále snižuje napájecí napětí všech zařízení.
A pro porovnání TTL a CMOS:
2.2.4 Rozdíly oproti TTL
• Rozdíl v chování nevyužitých vstupů
14
Chapter 2. Otázky
CESR, Release
• CMOS nepotřebuje proud pro řízení tranzistorů - nižší spotřeba
• CMOS jsou náchylnější na zničení statickým nábojem
2.2.5 Kompatibilita
Pozn.: V poznámce u napět’ových úrovní je zmínka o kompatibilitě CMOS s TTL
Todo
víc info
2.2.6 BiCMOS
Jde o kombinaci bipolární technologie a CMOS. Z obou to nejlepší. Bipolární tranzistory pracují s vyššími proudy, a
proto jsou z nich udělané výstupní obvody. Logicky unipolární technologie je pak použitá na vstupní obvody a střední
bloky, tedy na realizaci logické funkce.
BiCMOS se hodí na sběrnice, kde se nachází vysoká kapacitní zátěž.
Nevyužité vstupy
TTL
Jako kdyby tam ten vstup nebyl. Neteče jím žádný proud. To ovšem znamená, že jsou obvody náchylné k rušení.
Jak to řešit:
• Nechat vstup volně viset (ale rušení...)
• Spojit s vedlejším vstupem (v 0 OK, v 1 se zdvojnásobí vstupní proud, ale ten je i tak malý, takže taky OK)
• Pro OR/NOR lze vstup připojit na zem
• Pro AND/NAND lze vstup připojit přes odpor na Ucc
CMOS a BiCMOS
Zde se nevyužitý vstup nesmí nechat nezapojený. Kvůli vysoké impedanci by stačil malý proud a na nevyužitém
vstupu by se objevilo poměrně vysoké napětí. Pokud by toto napětí mělo úroveň někde kolem referenční úrovně,
zvýšilo by to podstatně i napájecí proud.
Řešení v tomto případě je stejné jako u TTL, akorát odpadá nutnost přidat odpor, protože vstupní proud CMOS je
stejně nula.
2.2. Technologie CMOS, BiCMOS
15
CESR, Release
2.3 Dynamická logika
Dynamická logika. Princip, zapojení, činnost, vlastnosti.
2.4 Členy s otevřeným kolektorem a třístavové členy
Členy s otevřeným kolektorem a třístavové členy. Sběrnice, budiče sběrnice, terminátory pasivní a aktivní. Vliv délky
spojů. Řízení přístupu na sběrnici.
2.4.1 Otevřený kolektor
O co jde
Jde o členy, které namísto výstupu o určitém napětí (nebo proudu), jsou přivedeny na bázi NPN tranzistoru (nebo na
gate MOSFETu, pak se to nazývá open drain). Emitor tranzistoru je připojen na zem. Ještě se k tomu přidává pull-up
resistor (ve skriptech vnější rezistor 6 )
Jak to funguje
Když je tranzistor sepnutý, napětí jde přes pull-up resistor a přes tranzistor do země. Tzn. vstup 1 vytvoří výstup 0. A
vstup 0 tranzistor nesepne, tzn. celé napětí Ucc bude na výstupu jako log. 1.
Z toho vyplývá, že tohle zapojení funguje jako obyčejná negace.
6
16
Fun fact: “pull up resistor” v googlu -> 1.79e6 výsledků, “vnější rezistor” -> 180e3 výsledků
Chapter 2. Otázky
CESR, Release
A když jich spojíme víc na jednu sběrnici, tak není problém. Pokud budou tranzistory všech vstupních členů nesepnuté,
bude na všech výstupech tedy log. 1, tak stále bude na sběrnici jenom jedno Ucc, nic se nesčítá. Když budou na
výstupech log. 0 (tranzistory sepnuté), tak stále jen jedno Ucc jde do jedné země. To znamená, že jich můžeme spojit
jakékoliv množství.
Když se signálů dostane na sběrnici více, jediné, co se stane, je, že se signály zkreslí, ale nic se nezničí.
K čemu se to hodí
• Ty tranzistory na výstupu někdy vydrží větší napětí/proud než samotný IC, takže kde je napětí nad 5V, lze to
využít na spínání.
• Interrupty na sběrnici (jedna sběrnice, potřebujeme přerušit procesor, tak je jedno odkud to přijde, prostě tam
jeden člen nahodí signál a ostatním je to jedno)
• Podobně jako interrupty, taky resety, resp. všude, kde nastane nějaká událost a je potřeba nějakému procesoru
říct, že k ní došlo
2.4.2 Třístavové členy
Takže kromě stavů 1/0 tu máme ještě stav vysoké impedance (značení Z).
2.4. Členy s otevřeným kolektorem a třístavové členy
17
CESR, Release
Pozn.: CS - chip select
Pokud je CS = 1, tak W = 0 a Y = 1. 0 zavře tr. N, 1 zavře tr. P. V tu chvíli bude na výstupu stav Z. No a pokud bude
CS = 0, tak výstup záleží na X, tzn. může být bud’ 0 nebo 1. Celkem tedy 3 stavy.
Kromě toho tu přibudou další dynamické parametry. Pokud je totiž CS = 0, tak cesta signálu je jasná, stačí t
t pLH . Ale blokování/odblokování chvilku trvá, takže:
pHL
a
• Zablokování:
– L -> Z - t pLZ
– H -> Z - t pHZ
• Odblokování:
– Z -> L - t pZL
– Z -> H - t pZH
Pozn.: všechny tyhle doby budou obvykle v jednotkách ns
K čemu je to dobré
Budiče sběrnice
Pozn.: anglicky bus driver
Třístavové členy používají pro připojení různých obvodů na sběrnice. V jednom okamžiku může být připojen pouze
jeden takový člen. Ostatní musí být zablokované. Pokud by se na sběrnici odblokovaly dva a oba v opačných stavech,
tekl by tam velký proud (100+ mA) a došlo by pravděpodobně na kouřové signály.
td;dr - můžeme si vybírat zdroj signálu
2.4.3 Sběrnice
Dlouhé vedení
Za dlouhé vedení se považuje i 10 cm. Všechno je tam rušeno, některé signály pomalu přechází kolem U r a k tomu
všemu se objeví nějaký ten překmit a proto mají ty členy, kam signály putují, hysterezní charku.
Abychom zamezili odrazům na vedení (to si určitě všichni pamatujeme, co je), bylo by potřeba vedení zakončit
odporem, stejně velkým jako je charakteristická impedance vedení (Z 0 ). Na DPS je to blízko 100 Ω.
Někdy se používají jenom odpory, někdy i kondíky, všechno se nazývá terminátor.
18
Chapter 2. Otázky
CESR, Release
Terminátory jsou na obou stranách, protože není jasné, kde sběrnice začíná a kde končí.
Obousměrné budiče
Pozn.: DIR - direction
Klasicky CS připojuje/odpojuje člen na sběrnici a DIR řídí ještě směr signálu. Hodně se to používá u pamětí
(čtení/zápis) a taky u programovatelných logických obv. PLD a FPGA.
2.4.4 Terminátory
Pasivní
Pasivní terminátor - pasivní součástky.
2.4. Členy s otevřeným kolektorem a třístavové členy
19
CESR, Release
• Ve stavu log. 1 je výstupní proud budičů velký, v log. 0 nulový
• Velká spotřeba proudu ze zdroje Ucc
• Menší spotřeba než u předchozího terminátoru, ale pořád dost vysoká
• R1 ||R2 = R0 = Z0 , pro Z0 = 100 Ω je vhodné R1 = 180 Ω, R2 = 220 Ω, takže paralelně 99Ω.
• Poměr R1 /R2 se volí tak, aby po odpojení všech budičů bylo napětí na sběrnici v pásmu U H . Pro hodnoty výše
a Ucc = 5 V to je 2.75 V.
• R1 a R2 jsou velké, kvůli nižšímu odběru proudu z Ucc
• Impedanční zakončení je starost R0
• R1 a R2 udržují požadované napětí na sběrnici, pokud není žádný budič připojen
• C blokuje střídavé signály
• Časová konstanta R0 C se volí 4x zpoždění signálů na vedení
20
Chapter 2. Otázky
CESR, Release
Aktivní
Funguje to jako bistabilní klopný obvod. Pokud je A = 1, pak je B = 0 a tudíž znova A = 1. A opačně. Pokud se uvolní
cesta přes sběrnici někam dál, tak proud teče tudy, takže v bodě A bude 0. Tím se celý BKO překlopí a už tak zůstane.
Tzn. pokud je stav stále stejný, tenhle aktivní terminátor neodebírá skoro žádný proud a je tak velmi úsporný. Pak
ovšem na sběrnici zůstává poslední stav před odpojením všech budičů.
2.5 Kombinační obvody
Kombinační obvody. Pravidla pro práci s logickými výrazy. Pravdivostní tabulka. Mintermy a implikanty. Neurčené
stavy. Minimalizace logických funkcí, skupinová minimalizace, tabulka implikantů. Mapy a jejich použití.
Pozn.: Tahák na Booleovu algebru
2.5.1 Pár pojmů
• Součtová (disjunktní) forma - logická funkce vyjádřená jako součet mintermů
• Součinová (konjunktní) forma - logická funkce vyjádřená jako součin maxtermů
• Mintermy - elementární funkce (součin proměnných) z úplného tvaru
• Maxtermy - elementární funkce (součet proměnných) z úplného tvaru
• Koncová forma - po zjednodušení z úplného tvaru
• Implikant - elementární funkce z konečného tvaru
• Minimální forma - ještě vyhodíme některé implikanty
Příklad
n
0
1
2
3
4
5
6
7
a
b
c
y
y’
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
P
y=
m(0, 1, 3, 4, 6) = abc + abc + abc + abc + abc
2.5. Kombinační obvody
21
CESR, Release
Takže např. abc je minterm. Celá funkce y je ve formě, která se nazývá úplná součtová (disjunktní) normální forma
(ÚDNF).
Q
y = M (2, 5, 7) = (a + b + c) · (a + b + c) · (a + b + c)
A tady (a + b + c) je maxterm. Celá funkce y je ve formě, která se nazývá úplná součinová (konjunktní) normální
forma (ÚKNF).
2.5.2 Neurčené stavy
Jsou stavy, které nemůžou nastat. Světlo bud’ svítí, nebo nesvítí a zároveň jeho spínač je on/off. Takže jsou jisté
stavy, které nemůžou nastat. A pokud nastanou, tak je něco špatně. V pravdivostní tabulce se pak označují “-” (jako
nezájem).
2.5.3 Minimalizace log. funkce
Pokud zjednodušíme log. funkci tak, že už to dál nejde, tak se její forma už nenazývá úplná, ale koncová
(KDNF/KKNF). Jednotlivé členy už nejsou mintermy/maxtermy, ale implikanty.
Tabulka implikantů
Máme úplnou formu:
y = abc + abc + abc + abc
A zjednodušili jsme ji na koncovou formu:
y = ac + bc + ab
Následuje tabulka, kde “Ano” znamená, že implikant zahrnuje/pokrývá minterm:
Implikanty
ac
bc
ab
Mintermy
abc
abc
Ano Ano
Ano
abc
abc
Ano
Ano
Ano
Pokryté musí být všechny mintermy. Kdyby nebyly, tak jsme zjednodušovali až moc a vynechali jsme něco, co tam
mělo zůstat. Když tady ale vyhodíme řádek s implikantem bc, budou všechny mintermy pořád pokryté:
Implikanty
ac
ab
Mintermy
abc
abc
Ano Ano
abc
abc
Ano
Ano
Takže výborně, zbavili jsme se dalších členů a obvod se tím zjednoduší. Tímto jsme dostali formu, které říkáme
minimální disjunktní forma (MDNF). Btw, někdy může být těchto forem víc, záleží, co vypustíme a co zbude.
Skupinová minimalizace
To se dělá tak, že se jednotlivé funkce (samozřejmě jich tu je víc) zjednodušují zvlášt’ a pak se napíše tabulka všech
implikantů, tj. ze všech funkcí. No a stane se, že některé funkce mají společné implikanty, takže lze pak využít obvod
pro jeden implikant pro více funkcí. Občas kvůli tomu nesmíme zjednodušovat moc, ale to je případ od případu.
22
Chapter 2. Otázky
CESR, Release
2.5.4 Karnaughova mapa
Máme takovouhle pravdivostní tabulku:
a
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
b
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
c
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
d
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
y
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
Vytvoříme mapu:
Pozn.: Modrá oblast se s červenou překrývají, proto je část fialová. Super barvičky, co?
Získáme rovnici:
y = bd + cd + abd
A jak se to vytvoří:
1. Červená oblast:
(a) Pokrývá a celou oblast? Ne, jen částečně, takže a tam nebude
2.5. Kombinační obvody
23
CESR, Release
(b) Pokrývá b celou oblast? Ani kouskem, ale negace b zabírá celou oblast, takže tam bude b v negaci
(c) Pokrývá c celou oblast? Ne, zase jenom kouskem, takže zahodit.
(d) Pokrývá d celou oblast? Zase v negaci
2. Modrá oblast:
(a) a a b pokrývají modrou oblast jenom částí, takže nic
(b) c ji pokrývá celou, takže bude c
(c) d ji nepokrývá vůbec, takže bude d v negaci
3. Zelená oblast:
(a) a, b i d pokrývají celou oblast, takže všechny budou v implikantu
(b) c zase zabírá jen kousek, takže nic
Pravidla tvorby
• Každý bod mapy vyjadřuje jen jednu řádku v pravdivostní tabulce, kde je 1. Ne víc, ne míň.
• Těmi pruhy kolem mapy musíme samozřejmě pokrýt všechny možnosti tabulky, takže se nesmí překrývat celé,
vždy jen částí. To znamená, že v mapě musí být bod, ve kterém se “sejdou všechny pruhy” a bod, ve kterém
nebude ani jeden.
• Oblasti, které v mapě vybíráme, musí mít velikost mocniny 2. Nelze vybrat třeba 3 jedničky v řadě.
• Oblasti můžeme vybírat i za hranicemi mapy, tj. že ta oblast přeteče na druhou stranu.
Použití
Tohle je sranda tak do 4 proměnných, pak už se značně zapotíte. Takže se to v praxi moc nehodí, protože takhle
jednoduché obvody nejsou obvyklé.
2.6 Návrh kombinačních obvodů
Návrh kombinačních obvodů. Možnosti realizace - obvody malé integrace a multiplexory - rozklad funkce.
2.6.1 Shannonova věta o rozkladu
Vždycky rozkládáme podle nějaké proměnné. Hodí se to k tomu, že z funkce uděláme dvě, a výsledné obvody se spojí
multiplexorem.
y = d(b + ac)
Rozložíme podle a:
1. Dosadíme: a = 0; y0 = bd
2. Dosadíme: a = 1; y1 = d(b + c)
3. Slepíme to dohromady: y = a · y0 + a · y1 = a · (bd) + a · (d(b + c))
Slepuje se to takhle:
y =x·A+x·B
24
Chapter 2. Otázky
CESR, Release
x ... proměnná
A ... co mi zbylo, když jsem dosadil 0
B ... co mi zbylo, když jsem dosadil 1
Vždycky se násobí dvojce “negace + 0” a “nenegace + 1”.
Ta proměnná, podle které jsme rozkládali, bude řídit vstup multiplexoru.
2.7 Realizace kombinačního obvodu pamětí
Realizace kombinačního obvodu pamětí – konstrukce tabulky obsahu paměti z výrazu.
K čemu:
• Převodníky kódů
• Tabulka hodnot funkcí (sin, cos, ...) - možné generování periodické funkce
• U PLD
2.8 Základní funkční bloky
Základní funkční bloky. Často používané kombinační obvody - dekodéry, multiplexory, komparátory, prioritní kodér a
prioritní řetězec, sčítačky a možnosti zrychlení činnosti. U všech: popis log. výrazem, přechodné děje.
2.8.1 Dekodér
Vstup: binární kód
Výstup: kód 1zN
1zN znamená, že jenom 1 z N výstupů bude aktivní. Pozice toho výstupu odpovídá kombinaci na vstupu. Takže
N = 2k , kde k je počet bitů na vstupu. N je pak počet bitů na výstupu.
Vstup EN znamená Enable. Jednoduše on/off.
Pozn.: Zablokovaný dekodér bude mít na výstupu neaktivní stav (log. 1), zatímco třístavový člen tam bude mít stav Z
(vysokoimpedanční stav).
2.7. Realizace kombinačního obvodu pamětí
25
CESR, Release
x2
0
0
0
0
1
1
1
1
x1
0
0
1
1
0
0
1
1
x0
0
1
0
1
0
1
0
1
y7
1
1
1
1
1
1
1
0
y6
1
1
1
1
1
1
0
1
y5
1
1
1
1
1
0
1
1
y4
1
1
1
1
0
1
1
1
y3
1
1
1
0
1
1
1
1
y2
1
1
0
1
1
1
1
1
y1
1
0
1
1
1
1
1
1
y0
0
1
1
1
1
1
1
1
Použití
Vybrání jednoho z N obvodů. Velmi často se prý vybírají 3stavové členy, všechny na jedné sběrnici.
Vnitřní zapojení
x1
0
0
1
1
y0
y1
y2
y3
26
x0
0
1
0
1
y3
1
1
1
0
y2
1
1
0
1
y1
1
0
1
1
y0
0
1
1
1
= x0 · x1
= x0 · x1
= x0 · x1
= x0 · x1
Chapter 2. Otázky
CESR, Release
Přechodné děje
Pokud se mění aspoň dva vstupy skoro současně, tak se může vyskytnout falešný impulz. Může se to obecně stát na
kterýchkoliv výstupech.
2.8.2 Multiplexor
Vstup: binární kód (adresa) a N datových vstupů
Výstup: vstup zvolený adresou
Kromě multiplexoru pro jednobitové vstupy existují i multiplexory skupinové (na obrázku).
Vnitřní zapojení
2.8. Základní funkční bloky
27
CESR, Release
Funguje to hodně podobně jako dekodér. Navíc se akorát jednotlivé výstupy ještě násobí se vstupy, resp. se tu násobí
adresa a vstup. Tím se stane, že vlastně zase bude aktivní jenom jeden výstup, takže ho můžeme s klidným svědomím
sečíst s ostatními, protože ty aktivní nebudou.
Přechodné děje
O tom se sice ve skriptech nepíše, ale vzhledem k podobnosti s dekodérem bych řekl, že když se bude měnit adresa
ve více než jednom bitu, že by mohlo nastat, že budou dva vstupy chtít proplout na výstup. Takže by se pak mohly na
výsledném ORu tlouct.
2.8.3 Demultiplexor
Vstup: binární kód (adresa) a 1 datový vstup
Výstup: datový vstup na příslušném výstupu (zvoleném adresou)
Abych dlouho nenapínal, demultiplexor je opak multiplexoru. Adresa tady vybírá výstupní kanál. Ten vybraný je
aktivní a ostatní jsou v 0.
28
Chapter 2. Otázky
CESR, Release
Vnitřní zapojení
Tady v podstatě využíváme dekodéru na vybrání vstupu. 2-to-4 decoder je vlastně to, čemu se ve skriptech říká 1zN.
Je to jedno a to samé, i na wiki tomu říkají oběma způsoby.
Přechodné děje
Ve skriptech opět ticho. Tady to vypadá, že při změnách na adresovém vstupu by mohlo dojít k tomu, že bude na
krátkou dobu aktivní víc než jeden výstup. Ono jestli je tam dekodér – u něj falešný impulz může nastat – tak pak
může i tady.
2.8.4 Prioritní kodér
Opak dekodéru.
2.8. Základní funkční bloky
29
CESR, Release
Vstup: kód 1zN
Výstup: binární kód
Stejně jako má dekodér aktivní vždy jen jeden výstup, tak i kodér potřebuje mít jen jeden vstup aktivní. Jenže ono to
není tak jednoduché, zajistit se to nedá. Takže i když bude aktivních vstupů více než 1, tak my potřebujeme z nich
vybrat jen jeden – stejně jako kdyby na vstupu byl aktivní pouze 1. A to uděláme tak, že těm vstupům přiřadíme
prioritu.
x7
1
0
0
0
0
0
0
0
0
30
x6
1
0
0
0
0
0
0
0
x5
1
0
0
0
0
0
0
x4
1
0
0
0
0
0
x3
1
0
0
0
0
x2
1
0
0
0
x1
1
0
0
x0
1
0
y2
1
1
1
1
0
0
0
0
-
y1
1
1
0
0
1
1
0
0
-
y0
1
0
1
0
1
0
1
0
-
z
1
1
1
1
1
1
1
1
0
Chapter 2. Otázky
CESR, Release
Vnitřní zapojení
Jak to funguje: pokud je x7 = 1, tak přes negaci se deaktivuje AND vedoucí k dalšímu bloku, takže priorita je na
prvním vstupu. Zároveň ta log. 1 otevře ten druhý AND (víc vlevo) a tím na horní 3s člen přivede +U H . Ten se tudíž
otevře a na sběrnici propluje binární kód.
Pokud x7 = 1, tak v druhém členu řetězce už +U H nebude. Namísto toho bude P = 0. Tzn. i když by náhodou x6 bylo
taky 1, tak už se 3s člen nemůže otevřít, protože +U H mu ukradl první blok řetězce. Když ale bude x7 = 0, tak první
P bude +U H , takže si prioritu může ukrást nějaký jiný blok.
Centralizovaný kodér
Až do ted’ to byl kodér s prioritním řetězcem. Centralizovaný kodér vznikne z pravdivostní tabulky. Prostě si jenom
napíšete log. funkce z té tabulky výše a podle toho se centralizovaný kodér sestaví z bloků AND/OR/NOT.
Přechodné děje
Tak jediné, co se tu může měnit, jsou vstupy x. Když se bude měnit jenom jeden, tak asi OK, ale když se budou měnit
dva a víc? Imho je to taky v pohodě. Možná by se mohlo stát, že když x7 půjde do 1 a předtím byl x6 taky 1, tak
než P za x7 padne do 0, tak už bude na sběrnici tlačit 111. Možná by to ještě vadilo, třeba když by šel x7 do 1 a P by
proplouvalo až třeba do posledního bloku. To by mohlo trvat dlouho, takže by možná vznikl impulz na jednom bitu
sběrnice.
No pokud to někdo náhodou víte s jistotou, tak napište.
2.8.5 Komparátor
K = (an ≡ bn ) · (an−1 ≡ bn−1 ) · ...
K - výstup
a - jedno vstupní číslo
2.8. Základní funkční bloky
31
CESR, Release
b - druhé vstupní číslo
Takže ta rovnice říká: porovnáme první bit a s prvním bitem b, pokud jsou stejné -> 1, pokud ne -> 0. A pak všechny
tyhle části vynásobíme, takže výstup K bude 1, pouze pokud budou všechny bity a a b shodné.
Na obrázku je vidět, že některé komparatory mají i porovnávací funkce >, <.
2.8.6 Sčítačka
Aritmetická sčítačka - abychom nemuseli počítat na prstech.
a
0
0
1
1
0
0
1
1
b
0
1
0
1
0
1
0
1
c in
0
0
0
0
1
1
1
1
s
0
1
1
0
1
0
0
1
c out
0
0
0
1
0
1
1
1
a - vstup 1
b - vstup 2
c in - přenos z předchozí sčítačky
c out - přenos pro další sčítačku
Jak to funguje: úplně jednoduše se použije aritmetický součet. 0 + 0 = 0, 0 + 1 = 1, 1 + 1 = 2. Pokud je ovšem výsledek
větší než 1, tak už se to samozřejmě nevejde do jednoho bitu, takže informace o tom, že výsledek přetekl rozsah se
zapíše na c out . Následující sčítačka už bude tudíž vědět, že je o řád výše.
32
Chapter 2. Otázky
CESR, Release
Pro více bitů se samozřejmě dají sčítačky řetězit:
Tady je problém s tím, že přenosy se s každým blokem zpožd’ují.
Řešení je:
2.8. Základní funkční bloky
33
CESR, Release
Tohle se nazývá sčítačka se zrychlením přenosů. Prostě se přenosy c generují současně pro všechny bloky. Je to
rychlejší, ale taky složitější na zapojení.
2.8.7 Odčítačka
Ta funguje tak, že se k jednomu číslu přičítá to druhé s otočeným znaménkem. To se v binární soustavě řeší dvojkovým
doplňkem. To se znegují všechny bity a pak se přičte 1.
P /M mění funkci mezi sčítáním (0) a odčítáním (1). Ta 1 totiž jde c in , což, jak je napsáno výše, přičte jedničku kvůli
dvojkovému doplňku. Zároveň se všechny bity vstupního čísla B protáhnout XORem, což je zneguje (tj. že XOR
vlastně funguje jako řízená negace).
34
Chapter 2. Otázky
CESR, Release
2.8.8 Převodník kódu
Je to obecně obvod, který převádí jeden kód na druhý. Do této skupiny můžeme zařadit dekodér a možná i prioritní
kodér.
Pro LED segmenty se třeba používá kód BCD (binary-coded decimal).
U tohoto převodníku nehrají hazardy roli, yay! Prý je to vzácný případ.
2.9 Přechodné děje v kombinačních obvodech
Přechodné děje v kombinačních obvodech. Zpoždění a hazardy. Vznik hazardu a jeho prognóza - z výrazu, z mapy
a z obvodu. Vliv úprav výrazů. Projevy hazardů v číslicových systémech, metody odstranění. Změny dvou a více
proměnných. Dynamický hazard. Grayův kód a jeho význam. Souběhy signálů – vznik, význam.
2.9.1 Hazardy
O co jde
Někdy se - při změně vstupu - na výstupu obvodu objeví impulz, který by se tam objevit neměl. Nelze se spolehnout,
že někde budou nebo nebudou.
Symboly
ã ... a může být 1/0 bez vlivu na výstup
a l ... a se mění mezi 1/0
a ↑ ... a se změní 1 -> 0
a ↓ ... a se změní 0 -> 1
abc̃d znamená: a = 1, b = 0, c = se mění mezi 1/0 (ale je to jedno), d = 1
Maximální zpoždění
Máme: tpLH = 5ns a tpHL = 3ns. b = 0, c = 0/1, d = 1 a mění se a.
Když jde a z 0 -> 1:
1. d = 1, a jde do 1, takže člen 2 (AND) jde taky do 1, započítáme tpLH
2. f šlo do 1, b = 0, takže g půjde taky do 1, započítáme další tpLH
2.9. Přechodné děje v kombinačních obvodech
35
CESR, Release
3. e bude vždycky 1, protože b = 0, takže člen 4 (NAND) půjde do 0 (na obou vstupech je 1), a tudíž započítáme
tpHL
tp = 2 · tpLH + tpHL = 2 · 5 + 3 = 13 ns
Takhle to projdeme pro všechny stavy a dojdeme k maximálnímu zpoždění. To se pak hodí při návrhu.
2.9.2 AND, OR
Co se tu stalo: signál b přišel o chvíli déle než signál a. Čekali bychom, že to půjde následovně:
1. 0*1 = 0
2. 1*0 = 0
3. 0*1 = 0
Jenže na krátkou dobu bude a = b = 1 a tudíž jejich součin taky 1. Tím vznikne falešný impulz. To samé se pak děje u
OR-u.
2.9.3 Výrazy
Booleova algebra funguje jen v ustáleném stavu. Resp. by se dalo říct, že platí pořád, ale pro každý okamžik musíme
výstup počítat znovu, jak je vidět na obrázku.
Z obrázku vidíme, že a · a 6= 0 (vstupy měly být k sobě opačné a tudíž měla být na výstupu 0, ale nebyla). Stejně tak
a + a 6= 1.
I když použijeme nějaké pravidlo pro zjednodušení log. funkce, tak v přechodném ději nemusí platit tak docela, jako
třeba ab + ab 6= a.
36
Chapter 2. Otázky
CESR, Release
Hazard je např. vyloučený na 3 vstupém ANDu, kde jeden ze vstupů je 0. Logicky, když se proti sobě mění zbylé dva,
tak výstup bude pořád 0. Ale k čemu to je, he? No když tohle víme, můžeme člen blokovat jenom v době, kdy se na
něm nějaké vstupy mění.
Takže co se tady děje: výstupy z členů 2 a 3 jdou proti sobě. Na členu 1 je 0, takže ten nic neblokuje, a proto může
nastat hazard. Nastal by, pokud by oba výstupy byly na krátkou chvíli v 0, pak by i výstup y byl 0, namísto očekávané
1.
Na pravém obrázku jsme přidali další člen. Ten má na výstupu pořád 1, takže i y musí být pořád 1. I když se členy 2
a 3 sejdou v 0, člen 4 výstup ponechá v 1. Tím sice pomocí 8 hradel generujeme log. 1, ale co na tom? Hazard tam
není.
Hledání hazardu z výrazu
Když máme log. funkci a chceme zjistit, jestli v takovém případě dojde k hazardu, musíme ji rozložit podle proměnné,
která se bude měnit, podle Shannona.
Po rozložení nám vyjde něco ve tvaru: y = x · A + x · B + C. Když potom bude A = 1, B = 1 a C = 0, dostaneme
soustavu 3 rovnic. Jestli jde vyřešit, pak hazard nastane. Pokud nejde vyřešit, hazard nenastane. A, B i C jsou logické
výrazy a všechny musí platit najednou, což zapsáno vypadá jako A · B · C = 1.
Takže když budeme mít funkci: y = b · d + bc + ab a měnit se bude b. Použijeme Shannona:
y = b(a) + b(c + d) + 0
Z toho vidíme, že: A = a, B = (c + d) a C = 0.
Když mají platit všechny, tak to dosadíme do vztahu výše:
a · (c + d) · 1 = 1
ac + a · d = 1
Řešení:
1. a = 0, c = 1
2. a = 0, d = 0
2.9. Přechodné děje v kombinačních obvodech
37
CESR, Release
Pokud by se stalo, že nenajdeme takovou kombinaci proměnných, aby dohromady daly 1, tak to znamená, že řešení
neexistuje a hazard nenastane. Tady jsme ale řešení našli, takže hazard vznikat bude. A to dokonce ve dvou případech:
˜bl
1. acd,
2. ac̃d, b l
Vysvětlení (pro 1. řešení):
• a = 0, takže dáme negaci
• b jsme použili pro rozložení, takže se mění
• c = 1, takže bez negace
• d tu není vůbec, takže s vlnovkou, protože se může měnit jak chce, stejně se neprojeví
Tuto metodu lze použít jen pro jednu měnící se proměnnou. Jakmile se mění dvě a více, existuje mnohem více
kombinací, jak se mohou vzájemně měnit a je proto lepší použít jiné metody na odstranění hazardů.
Vliv úprav na hazardy
Máme dva typy úprav:
• Hazard měnící – spojování mintermů
• Hazard neměnící – vytýkání před závorky, roznásobení závorek, DeMorgan
Takže když si navrhneme obvod a zjistíme, že v něm jsou hazardy a pak použijeme hazard měnící úpravu, všechno je
v tahu a musíme se po hazardech podívat znovu. Pak se dokonce může stát, že se hazardů zbavíme úplně.
2.9.4 Mapy
Takže jak víme, jedna oblast v mapě, je jeden jeden implikant. Na obrázku vidíme přeskok mezi ac a ab. Pak tu máme
čárkovaně další oblast, která je nám pro zjednodušení k ničemu, byla by tam navíc.
Ale při zjišt’ování existence hazardu se nám hodí, pohybujeme se mezi dvěma buňkami tabulky v rámci té nadbytečné
oblasti. A vidíme, že se tak mění proměnná a. Takže když do výrazu zahrneme i tu nadbytečnou smyčku, měl by se
hazard eliminovat (za cenu složitějšího obvodu).
2.9.5 Grayův kód
Je to binární kód, kde dvě po sobě jdoucí hodnoty se liší pouze v jednom bitu. Původně byl navržen pro eliminaci
falešných impulzů, dnes se používá pro opravu chyb v dig. komunikacích.
38
Chapter 2. Otázky
CESR, Release
Binární kód
000
001
010
011
100
101
110
111
Grayův kód
000
001
011
010
110
111
101
100
Když si označíme pozice u obou kódů: b2 b1 b0 (binární) a g2 g1 g0 (Grayův), můžeme zapsat vztahy pro převod:
Binární na Grayův
g2 = b2 (MSB)
g1 = b2 ⊕ b1
g0 = b1 ⊕ b0 (LSB)
Čili pro n bitů obecně:
• MSB zůstane stejný
• Každá další pozice v Grayově kódu je předchozí pozice v binárním XOR stejná pozice v binárním (7 -> 7 a 6
-> 6 a 5 -> 5 a 4 -> atd...)
Grayův na binární
b2 = g2 (MSB)
b1 = g2 ⊕ g1
b0 = g2 ⊕ g1 ⊕ g0 (LSB)
A obecně pro n bitů:
• MSB zůstane
• Každý další bit je XOR všech významnějších, vč. sebe sama. (7 -> 7 a 6 -> 7 a 6 a 5 -> 7 a 6 a 5 a 4 -> atd...)
2.9.6 Odstranění hazardů
Filtr
2.9. Přechodné děje v kombinačních obvodech
39
CESR, Release
Jak je vidět, falešný impulz se sice zmenší, ale nezmizí úplně (x -> y). Graf z ukazuje průběh s větší časovou konstantou
RC.
Tohle řešení má několik problémů:
• Každý impulz se zpomaluje a tím se zpomaluje všechno za filtrem.
• Záleží na délce impulzu, takže ty delší falešné impulzy klidně můžou projít dál
Tj. tahle metoda ne-e.
Registr
Jak tohle funguje: náš milý kombinační obvod plný nevyzpytatelných hazardů sype výstup do registru (Y). Ty se do
registru zapíší signálem WR (write) a zůstanou tam až do dalšího WR. No a podle grafu je vidět, že když se změní
40
Chapter 2. Otázky
CESR, Release
vstup kombinačního obvodu (X), chvíli trvá, než se to ustálí na výstupu (Y) a teprve po ustálení zapíšeme hodnotu do
registru (WR) a výstup bude už správný (Z).
Stane se totiž to, že hazard vznikne při změně vstupu. Ale vstup se mění dál, až se konečně rozhodne, že už se měnit
nebude, a v tu chvíli vypustíme signál WR a tu ustálenou hodnotu pošleme dál.
Může se zdát, že generování impulzu WR přináší další složitosti do obvodu, tedy synchronizaci. Jenže tu v každém
rozumném obvodu stejně mít budeme, takže takhle je to dobře.
2.9.7 Dynamický hazard
Dynamický hazard vzniká kombinací měnících se vstupů a alespoň jednoho vstupu, kde se může objevit statický
hazard (to je to, o čem se tak dlouho mluvilo v téhle kapitole).
Jak je vidět na grafu: vstup a se mění, vstup b měl být konstantní, ale v nějakém předchozím obvodu nastal hazard,
čímž se pokazil i výstup y.
Opravit to lze celkem jednoduše: zbavíme se statického hazardu. Potom se v součinu a a b nemá šanci nějaký další
hazard projevit.
2.10 Klopné obvody
Klopné obvody - chování (RS, D, T, JK), reakce na hodinový impuls (řízení hranou, úrovní, Master-Slave), podmínky bezchybné funkce, metastabilita. Nastavení počátečního stavu - prostřednictvím vstupů R,S nebo multiplexoru.
Blokování činnosti KO. Transformace KO - D na T, T/D, JK.
2.10. Klopné obvody
41
CESR, Release
2.10.1 RS
S
0
0
1
1
R
0
1
0
1
Q
Q
0
1
0
Q’
Q’
1
0
0
R - reset
S - set
Přechod z S = R = 1 do S = R = 0 je zakázaný. Není totiž jasné, do jakého stavu se má RS dostat, takže se dostane
do pseudo-náhodného stavu, který je daný drobnými rozdíly v hradlech. Zakázaný je ale jenom přechod, ne ten stav
samotný.
42
Chapter 2. Otázky
CESR, Release
Pomocí NAND
S’
0
1
0
1
R’
0
0
1
1
Q
1
0
1
Q
Q’
1
1
0
Q’
Zde je zakázaný přechod z S’ = R’ = 0 do S’ = R’ = 1.
2.10. Klopné obvody
43
CESR, Release
2.10.2 D
D mění stav jenom se synchronizačním/hodinovým impulzem CLK.
• CLK = 0 - R a S jsou 0, takže stav Q zůstává stejný
• CLK = 1 - na R bude D’ a na S bude D, takže ve výsledku na Q bude D
Řízení úrovní
D
0
1
-
CLK
1
1
0
Q
0
1
Q
Q’
1
0
Q’
1. Žádný efekt, CLK je 0
44
Chapter 2. Otázky
CESR, Release
2. Na výstup Q se přenese vstup D se zpožděním tpDQ
3. Tady jsou změny zakázány. Tj. v intervalu [ts , th ].
4. Tady už by měl být výstup konstantní
ts - setup time = doba předstihu
th - hold time = doba přesahu
Pokud tyto doby dodržíme, výstup se bude držet na nastavené hodnotě celý zbytek periody CLK. Pokud je nedodržíme,
může vzniknout metastabiliní stav.
Řízení hranou
1. CLK = 0, žádné změny
2. CLK = 1 a zároveň náběžná hrana D, takže se hodnota uloží (se zpožděním tpDQ )
3. CLK = 1, ale už tu není žádná hrana, takže se nic nezmění
Zase se tu musí dodržet doby ts a th , jinak zase může vzniknout metastabiliní stav.
2.10. Klopné obvody
45
CESR, Release
Poslední 3 řádky tabulky, kdy se Q nemění - žádná náběžná hrana. “-” znamená, že se hodnota nemění. Proto se bude
výstup měnit pouze u prvních 2 řádků, kdy jde CLK z 0 do 1.
A vnitřní zapojení je tak složité, že to snad ani nemá cenu snažit se zapamatovat. To prostě nejde.
2.10.3 JK
J - jump - set
K - kill - reset
Tady je to podobné jako s D. Poslední 3 řádky CLK brání zápisu hodnoty. Hodnota se nezmění ani u prvního řádku,
protože je J = 0. Takže pak tu máme 2. řádek, kdy se Q nastaví na 1, protože J (set) je 1. Opačně pro J = 0. A očividně
J = K = 1 obrací/neguje uloženou hodnotu.
2.10.4 T
T jako toggle.
Asynchronní
Tohle se přepíná každou náběžnou hranou na T. Krásně se to dá využít v Minecraftu na otevírání dveří, apod. Zmáčknu
tlačítko jednou - dveře se otevřou, zmáčknu ho podruhý - dveře se zavřou.
46
Chapter 2. Otázky
CESR, Release
Synchronní
Tady je to podobné, ale náběžná hrana musí být udělaná signálem CLK a zároveň musí být T = 1, jinak se obvod
nepřepne.
2.10.5 Podmínky bezchybné funkce
• Dodržení doby předstihu a doby přesahu
• Minimální strmost hrany CLK
• Minimální doba trvání CLK ve stavu 1
• Minimální prodleva CLK ve stavu 0 (tj. než se zase hejbne do 1)
Nedodržením jedné z podmínek vzniká metastabilita.
2.10.6 Řízení Master-Slave
Jak to funguje:
1. CLK = 1 - aktivuje se Master a deaktivuje se Slave
2. Tím se vlastně na Master uloží hodnota na vstupu (ukládá se celou dobu, kdy je CLK = 1, ale teprve v CLK = 0
je viditelná)
2.10. Klopné obvody
47
CESR, Release
3. CLK se přepne do 0, Master drží hodnotu, kterou si uloží Slave
To znamená, že se všechno stihne v jedné periodě CLK (no, jinak by to bylo celkem k ničemu).
2.10.7 Nastavení hodnot klopných obvodů
Na obrázku je vidět D, který má asynchronní vstupy R’ (reset) a S’ (set). Tj. např. po připojení napájení lze nastavit
počáteční stav všech klopáků.
2.10.8 Blokování klopných obvodů
Jak se to nedělá: nepoužívá se jednoduchý AND jako on/off, protože kdo by ho řídil? A kdy by se to spínalo/rozpínalo?
Takhle by to mohlo ukrojit kus pulzu, a ten zbytek už by nemusel klopák překlopit, a jsme zase u metastability.
Takže jak se to dělá:
48
Chapter 2. Otázky
CESR, Release
Pokud je EN = 0 (enable), tak je aktivní R’, což vždycky nastaví 0 na výstup Q. Na CLK nesaháme, to jde dovnitř do
klopáku a až na výstup Y. Takže z toho už vyplývá, že na vyrobení stavu Y = 1 potřebujeme, aby byl EN = 1 a zároveň
CLK v náběžné hraně.
Ke konci grafu je vidět, že když najednou chceme výstup utnout tím, že dáme EN = 0, tak to nejde hned. V tu chvíli
totiž ještě bylo CLK = 1, takže R’ byl neaktivní. Teprve když CLK padlo do 0, tak se aktivoval R’ a Q šel taky do
nuly.
Tzn. že okamžité zablokování není možné a projeví se vždy až po celé periodě CLK. A to byl cíl, kterého bylo třeba
dosáhnout.
Pomocí multiplexoru
Tohle vypadá mnohem jednodušeji. Při EN = 1 je všechno v pohodě, funguje standardně jako každé jiné D. Ale když
je EN = 0, tak Q = D, a tím vlastně blokujeme KO. On funguje dál, ale žádná změna vstupu se neprojeví.
Signál EN nelze měnit v oblasti náběžné hrany CLK.
2.10. Klopné obvody
49
CESR, Release
2.10.9 Transformace KO
Moc toho v téhle kapitole není. Těch možností transformace je dost, ale kdo si to má sakra všechno pamatovat?
Synchronní D na asynchronní T
2.11 Registry
Registry - datové a posuvné, podmínky správného časování hod. impulsů. Nulování a přednastavení u posuvných
registrů. Posuvy o větší počet míst na obě strany. Lineární čítače s max. délkou cyklu.
50
Chapter 2. Otázky
CESR, Release
R’ - reset
WR - WRite
2.11.1 Datový registr
2.11.2 Posuvný registr
2.11. Registry
51
CESR, Release
Funguje to jednoduše: s každým pulzem CLK se data posunou doprava:
SD
1
0
0
0
0
-
Q (1-4)
1011
1101
0110
0011
0001
0000
V tabulce každá řádka odpovídá jednomu pulzu CLK. Začalo se se stavem 1011 a na vstupu pro další cyklus byla
připravená log. 1. Data na pravé straně se ztrácí.
Použití:
• Převod sériových dat na paralelní - data se sází na SD a po pár cyklech si je můžeme vyzvednout z výstupů Q
• Převod paralelních dat na sériová - registr nacpeme daty (rozhodně nebudeme v první fázi nic cpát na SD) a
potom začneme cykly posouvat data ven, takže na posledním Q už budou sériová.
Časování
tpCQ ≥ th
TCLK ≥ tpCQ + ts
52
Chapter 2. Otázky
CESR, Release
2.11.3 Podmínky časování
Jelikož se registr skládá z KO (hranou řízený nebo úrovní), tak se časování řídí pravidly pro časování KO.
Rozdíly mezi hranou a úrovní
Úrovní řízený registr:
• Je jednodušší
• Uložení nebo průchod dat je možný po celou dobu (je transparentní), kdy WR = 1 (ne jen při hraně)
Hranou řízený:
• Vyžaduje stálý přísun zápisových pulzů, takže nikdy není transparentní.
2.11.4 Nulování a přednastavení
Některé registry mají - stejně jako KO - funkce set a reset. Akorát se tady tomu říká preload.
Pro přednastavení je většinou potřeba aktivovat vstup PE = 1 (preload enable), tím se přepne multiplexor a namísto
posouvání dat se všechny KO nastaví podle jejich vstupů D. Až je to nastaveno, tak se zase přepne PE = 0 a data se
začnou posouvat pomocí CLK.
Přednastavení je synchronní - používáme CLK, zatímco nulování je asynchronní - je nezávislé na CLK.
(Pro lepší přehlednost jsem to vybarvil :o))
2.11. Registry
53
CESR, Release
2.11.5 Posun na obě strany
Jak to funguje: Když je DIR = 1, tak je vstupe SDL a funguje to jako posuvný registr zmíněný výše. Pokud je DIR
= 0, tak se vlastně propojí výstupy n-tého KO se vstupem toho předchozího (vlevo). Takže při CLK ten úplně vpravo
pošle data tomu předposlednímu. Předposlední je pošle tomu před-předposlednímu. Atd. až je druhý pošle prvnímu a
první je pošle do p.. data se ztratí.
2.11.6 Posun o jiný počet míst
Se dělá podobně jako posun na obě strany. Akorát si představte, že se nespojí jeden za druhým, ale třeba ob jeden.
Takže potom se třeba z 5. KO posunou na 3. a z něj na 1.
2.11.7 Kruhový registr
Jednoduše: co leze ven - a jinak by se ztrácelo - zase zavedeme zpátky na vstup (z posledního na první).
Použití:
• Řídící impulzy
• Třeba posouvání textu na LED panelu (i když by byl asi uPC jednodušší)
54
Chapter 2. Otázky
CESR, Release
Twisted ring counter
Taky Johnsonův čítač nebo Möbiův. Vnikne tak, že vezmu poslední Q v negaci a to zapojím na vstup prvního KO.
No, vypadá to spíš jako hračka, ale generuje to Grayův kód.
2.11. Registry
55
CESR, Release
2.11.8 Lineární čítač
Ta krabička vlevo, to je XOR některých výstupů Q. Takže když budu mít 4 výstupy a vezmu Q2 a Q3, XOR na ně a
co z toho vyleze, to půjde na vstup, tak dostanu řadu:
0001 - 1000 - 0100 - 0010 - 1001 - 1100 - atd...
Mrkněte na wiki, tam je hezký obrázek.
Využití to najde v šifrování, protože lineární čítač generuje pseudonáhodný signál, i když periodický. Ale i funkce ve
spoustě standardních knihoven programovacích jazyků používají taky pseudonáhodné generátory. Ono to ve spoustě
případů stačí.
Mimochodem počáteční stav se nazývá seed.
56
Chapter 2. Otázky
CESR, Release
2.12 Čítače
Čítače asynchronní a synchronní, binární a modulo, reverzivní. Časové diagramy asynch. a synch. čítače. Čítače
s předvolbou (přednastavením). Návrh čítačů v kódu bin., modulo, Gray. Blokování v koncovém stavu. Provedení
reverzivních čítačů. Čítače s programovatelným modulem.
2.12.1 Co to je
• Každý čítač má vnitřní stav
• Těch stavů má určitý konečný počet
• Jakmile dosáhne posledního stavu, začne se vše opakovat
• Žádné dva stavy se neopakují
• Čítač má výstupy, kde to binární číslo často odpovídá dekadickému (ale taky lze využít pro Grayův kód)
Druhy čítačů
• Inkrementující a dekrementující - bud’ počítá nahoru nebo dolů
• Reverzivní - umí obojí a lze to přepínat
• Binární - je ten, který má délku cyklu M = 2k , (k - počet bitů), takže není nikde utnutý
• Dekadický - má cyklus s délkou M = 10
• Modulo M - ten je zkrácený na délku M, která nespadá do žádné z předchozích kategorií
• Asynchronní a synchronní
2.12. Čítače
57
CESR, Release
2.12.2 Asynchronní čítač
Jak to funguje: první impulz nastaví Q0 = 1, takže T1 = 0. Pak přijde další impulz a nastaví Q0 = 0 a T1 = 1, takže Q1
= 1. Atd...
Nevýhoda je zpoždění signálu, takže se to moc použít nikde nedá. Jediná výjimka je použití jako dělič kmitočtu.
Pro počítání dolů:
58
Chapter 2. Otázky
CESR, Release
2.12.3 Synchronní čítač
Všechny KO se překlápí současně.
Pokud CLK impulzy splňují podmínky časování, pak na výstupu čítače nebudou falešné impulzy.
Jenže pokud za čítač dáme další KO, může se stát, že výrobní odchylky na jednotlivých KO poruší podmínky časování
a tím můžou způsobit falešné impulzy na výstupu následujícího KO.
2.12. Čítače
59
CESR, Release
Příklad 4-bitového synchronního čítače
Tedy: máme stav 0000 a následující má být 0001. Budící funkce je to, jak se k tomu stavu dostaneme. My totiž víme,
že Q0 = D0, Q1 = D1, atd... takže nový stav čítače je pro nás nový stav všech KO typu D. Takže to je pro nás budící
funkce pro KO D.
Pokud bychom to chtěli postavit z KO typu T, tak na to musíme trochu jinak. T totiž přepínají s každým impulzem,
namísto posouvání hodnoty jako u D. A proto T musí měnit hodnotu tam, kde se mění starý stav na nový. Takže u
0000 -> 0001 se mění Q0 (LSB). Tzn. že budící funkce pro T musí být 0001 (T0 = 1). Např. pro 1101 -> 1110 se
mění dva bity, takže budící funkce by byla 0011. tl;dr
Budící funkce je:
• pro T - starý stav XOR nový stav
• pro D - nový stav
Potom se udělá to, že se vytvoří rovnice pro starý stav.
Pro to naše T to bude:
T3
T2
T1
T0
60
= Q3 Q2 Q1 Q0 + Q3 Q2 Q1 Q0 = Q2 Q1 Q0
= ... = Q1 Q0
= Q0
=1
Chapter 2. Otázky
CESR, Release
Lze samozřejmě využít i Karnaughovu mapu.
A tady ty dva ANDy, to je přesně to, co se v odstavci Synchronní čítač označuje jako krabička s nápisem Kombinační
obvody.
No a pokud bychom chtěli, aby čítal dolů, nebo aby čítal v Grayově kódu, tak jenom na začátku napíšeme jinak tabulku
přechodů (tj. starý stav -> nový stav) a pak už postupujeme stejně.
2.12.4 Reverzivní čítače
Dva způsoby:
1. Vstup UP a DN (down), směr je řešený přivedením CLK na jiný vstup
2. CLK je pořád na jednom vstupu, ale druhý vstup ovládá směr čítání (DIR) 1/0
2.12.5 Nulování a přednastavení
Pro synchronní čítače
Je stejné jako u přednastavení posuvného registru.
2.12. Čítače
61
CESR, Release
Pro asynchronní čítače
Tady je to trochu složitější.
DI - data in
LD - load
CLR - clear
Pokud chceme nastavit data:
• DI budou data, co chceme nastavit
• LD’ = 0 (aktivní - nezapomeňte na negaci)
• CLR = 0 (neaktivní)
• R’ a S’ se řídí podle DI
– S’ = 0 (aktivní) je při DI = 1
– R’ = 0 (aktivní) je při DI = 0
Pokud chceme KO vynulovat:
• LD’ = 1 (neaktivní)
• CLR = 1 (aktivní)
• R’ = 0 (aktivní)
62
Chapter 2. Otázky
CESR, Release
• S’ = 1 (neaktivní)
• DI nerozhoduje
Stačí si pamatovat, jak to má fungovat, že to má 3 vstupy a zbytek se už dá nakreslit. Snad se nic nestane, pokud
zapomenete, který vstup je aktivní v 0, protože pak stačí jenom přidat negaci...
2.12.6 Přenosy
Asynchronní
Opět je problém se zpožděním, protože signál musí putovat po celé kaskádě.
Synchronní
Takže jakmile jsou všechny Q v posledním stavu (1111), tak se ANDem vygeneruje signál CY (carry), nebo v případě
dekrementujícího čítače BO (borrow). Ještě se to musí vynásobit signálem UP/DN, jinak by ten impulz vznikl o stav
nebo půl stavu dříve.
2.12.7 Čítač modulo M
Dva způsoby:
• Synchronní čítač - už na začátku si navrhnu tabulku přechodů, aby se cyklus zkrátil
• Asynchronní čítač - ve stavu, kdy chci skončit, kombinačním obvodem vynásobím/sečtu ten stav a tím výsledkem vyresetuju všechny KO
2.12. Čítače
63
CESR, Release
2.12.8 Programovatelné modulo
Funguje to tak, že se na začátku nastaví dělící poměr (M) na vstup DI (data in), tím se čítač přednastaví. Potom si
vesele čítá dál a až přeteče, tak se vygeneruje BO, který spustí LD (load) a znovu se načte počáteční stav. Pokud
změníme dělící poměr M, tak se to projeví po dalším přetečení.
Úprava impulzu tu znamená, že se zajišt’uje správné časování. Protože u synchronního čítače se musí LD ukončit
aspoň o tsLC před dalším CLK (tady na DN).
2.13 Principy časovacích obvodů
Principy časovacích obvodů. Zkrácení, prodloužení a stabilizace délky impulsu. Využití zpoždění hradel. Monostabilní
KO, MKO-NR a MKO-R. Synchronní časovače, využití čítačů. Detektory hrany. Impulsně-šířkový modulátor (PWM)
2.13.1 Co to je
Časovací obvody slouží ke generování nebo úpravě signálů v čase - zkrácení, prodloužení, atd...
Jsou zase synchronní a asynchronní. Synchronní mají tu výhodu, že se všechno vztahuje na periodu CLK. Takže jestli
je nepřesné CLK, tak by se to nemělo v zásadě projevit, protože se od toho odvíjí funkce všech obvodů stejně.
2.13.2 Asynchronní časovací obvody
Ty jsou založeny na přechodných dějích. Vzpomeňte si na YTE a RC obvody.
Mají ovšem velké nevýhody:
• Malá strmost hran může způsobit rozkmitání.
64
Chapter 2. Otázky
CESR, Release
• Malá přesnost časování (no ono už jenom když budete chtít nastavit časovou konstantou kondíkem, který má
toleranci třeba 20%...)
• Časová nestálost časování (a asi i teplotní, trochu se to zahřeje a odpor i kondík budou mít drobet jiné hodnoty
a časová konstanta se taky změní).
Zpoždění
Takže bud’ takhle, nebo za sebe naházíme několik opakovačů/invertorů. Pak to zpoždění teda bude celý násobek tp d.
Detektor změn
2.13. Principy časovacích obvodů
65
CESR, Release
2.13.3 Monostabilní KO
Je taky asynchronní, ale zaslouží si vlastní odstavec.
Existují dvě varianty:
• Znovu spustitelný (retriggerable) – MKO-R
• Ne-znovu spustitelný (zatracená čeština) (non-retriggerable) – MKO-NR
A taky nevím, proč se plete česká zkratka s anglickou...
66
Chapter 2. Otázky
CESR, Release
Retriggerable je jako schodišt’ák. Non-retriggerable je jako když v PC hře skáčete - nemůžete odletět, takže stisknete
mezerník a začne se počítat čas skoku a jak jste ve vzduchu, hra ignoruje další stisk mezerníku. Retriggerable by
zajistil chování jako ve hře Flappy Bird.
Tyhle KO se dělají v integrované verzi, kde se běžně dosahuje stavu, že kolísání Ucc o 5% a teploty 0 - 75 C nehýbe
s dobou tw o méně než 1% (no ve skriptech je napsáno zlomky procenta, ale to je takové neurčité. Takže asi bude víc
typů s různou přesností, atd...)
2.13. Principy časovacích obvodů
67
CESR, Release
2.13.4 Synchronní časovací obvody
Detektor hran
68
Chapter 2. Otázky
CESR, Release
Jak na to: dva za sebou jdoucí KO typu D. To znamená, že když se změní D1, tak o jednu periodu za ním se změní
D2. Simple enough. No a všechno ostatní se dělá kombinančními obvody. Nejlépe si to nakreslete, pak vyzkoušejte
pár kombinací s ANDy a jednu s XORem a máte to. To, jestli se trefíte to značení jako na tomhle grafu, to je jedno.
Tady třeba může být otázka u zkoušky, abyste navrhli synchronní obvod, který vygeneruje impulz, když se vstup
změní, a to se zpožděním X taktů. Tzn. to je případ nahoře Y3. A zpozdit by se to dalo dalšími KO typu D. Už
samotný obv. nahoře bude mít zpoždění 1 takt.
Generování impulzu dané délky
MKO-NR
Jak to funguje: impulz START nastaví Q na 1. Ta jednička se začne posouvat v posuvném registru doprava. Zatím je
ale na konci registru 0, tu znegujeme, takže v tom ANDu jsou dvě jedničky a Y = 1. To se děje až to dé doby, než se
2.13. Principy časovacích obvodů
69
CESR, Release
ta původní jednička vsune na konec registru, pak nastane stav Y = 0.
To by celkem už mohlo fungovat i bez toho ORu na začátku. Ten ale zaručí to, že se do registru budou sypat další
jedničky a tím se vytvoří druhá část impulzu. V podstatě ty jedničky tam vytvoří stejně dlouho část impulzu i v 0.
Délka impulzu je dána pouze délkou registru. A ta délka je celým násobkem periody CLK. Taky může být u zkoušky.
Tohle je taky jinak řečeno synchronní MKO-NR. Takže se ten impulz nedá prodloužit.
Tady to je druhá možnost. Máme Q = 0. Čítač je zastavený, protože Q’ = 1 a na CLR ho resetuje.
Když přivedeme impulz na START, tak se Q = 1, takže náš požadovaný impulz právě začal. Q’ = 0, čítač čitá a jakmile
se jeho stav rovná reg. délky, tak se vyresetuje KO, což zase začne resetovat i čítač a náš impulz skončil. Zase to je
synchronní MKO-NR.
Hlavní rozdíl oproti předchozí verzi je ten, že 1. verze na N stavů potřebuje N klopných obv., zatímco druhá verze se
stejným množstvím KO udělá až 2N stavů.
Ovšem, má to i jednu nevýhodu - a to dost podstatnou - na výstupu komparátoru můžou vznikat falešné impulzy.
Ale i to má řešení:
70
Chapter 2. Otázky
CESR, Release
V grafu jsou falešné impulzy čárkovaně (lajna K). My znegujeme CLK, takže na NANDu bude 1 v druhé půlce periody
CLK. Takže pokud vznikne falešný impulz v první půlce periody CLK, nic se nestane. V druhé půlce ale už falešné
impulzy odezní, takže tam můžeme KO resetovat. A je to!
2.13. Principy časovacích obvodů
71
CESR, Release
MKO-R
Jediné, co tu je navíc, je OR u STARTu. Tzn. že bud’ se čítač vyresetuje dosažením hodnoty reg. délky, a nebo ho
vyresetujeme ručně. Takže Q = 1 a čítač si čítá a čítá a pak někdo přijde a zmáčkne START a bum, čítač je na 0, Q je
pořád ještě 1 a my musíme čekat o to dýl, než komparátor vyresetuje KO.
2.13.5 PWM
PWM zná asi každý, kdo se do ted’ drží na FEL. Pokud i tak ne, mrkněte na wiki.
Uavg = U1 ·
t1
T
T - perioda impulzů
t1 - doba, kdy je impulz v 1
U1 - amplituda signálu
Uavg - střední hodnota napětí, co nám PWM generuje
72
Chapter 2. Otázky
CESR, Release
Takže ty ANDy před RSkem jsou zase kvůli eliminaci falešných impulzů. CLK je tam v negaci, takže pokud se má
něco stát, stane se v druhé půlce periody CLK. No a potom čítač čitá a jak jsou všechny bity = 0, tak ten obrovský
OR nastaví výstup PWM na 1. Pak se čítá od 0 dál, jakmile se rovná stav čítače reg. délky, tak komparátor hodí 1 a
vyresetuje RS. Taky by to určitě šlo pomocí CO/BO výstupů čítače.
Tak, ted’ čítáč má M stavů. V registru délky je číslo N.
Celková doba, než čítač proběhne všechny stavy je proto:
T = M · TCLK
Zatímco doba, než se trefí do N je:
t1 = N · TCLK
Takže ted’ to výstupní napětí je dáno poměrem N/M. A my můžeme zjistit relativní chybu nastavení t1 . Když vezmeme
1 bitový čítač, tak ten má 2 stavy. To znamená, že můžeme bud’ mít úplnou nulu na výstupu nebo signál se střídou
1:1. To je chyba 50%. Když vezmeme 2 bitový čítač, tak už je to 25%. Atd.
Počet bitů
1
2
3
4
5
6
7
8
Relativní chyba
50%
25%
12.5%
6.25%
3.13%
1.56%
0.78%
0.4%
2.14 Sekvenční obvody
Sekvenční obvody. Přechodová a výstupní funkce, Mealyho a Mooreho automat. Synchronní a asynchronní sekvenční
obvody. Popis stavovým grafem, stavovou tabulkou, stavovými rovnicemi. Neurčené stavy a jejich projevy. Nastavení
počátečního stavu - různé možnosti. Analýza sekv. obvodu (od schématu k tabulce či grafu). Návrh synch. sekv.
obvodů - kódování stavů, výběr KO, návrh budících funkcí.
2.14. Sekvenční obvody
73
CESR, Release
Mrkněte taky na wiki.
2.14.1 Přechodová funkce
Tato funkce vyjadřuje: mám současný vnitřní stav a současný vstupní a stav a jak se tím změní následující vnitřní stav.
S t+1 = f (S t , I t )
S t - současný vnitřní stav
S t+1 - následující vnitřní stav
I t - současný vstupní stav (signály na vstupu)
2.14.2 Výstupní funkce
Tahle funkce říká, jak budou vypadat výstupy sekvenčního obvodu.
Mealyho automat
Tady to závisí na vnitřním stavu a stavu vstupů
Ot = g(S t , I t )
Mooreho automat
A tady jenom na vnitřním stavu.
Ot = g(S t )
2.14.3 Asynchronní sekvenční obvody
Jsou ty, které mění svůj vnitřní stav hned po změně vstupního stavu. Plus nějaké to zpoždění součástek uvnitř.
2.14.4 Synchronní sekvenční obvody
Změny vnitřního stavu se odehrávají v pevně daných okažicích určený hodinovým signálem. Všechno je tu jasnější
co se týče časování, takže tyhle jsou častější.
74
Chapter 2. Otázky
CESR, Release
2.14.5 Popis grafem
Říká se tomu stavový diagram. Obsahuje jak přechodovou funkci, tak výstupní.
Mooreho automat
Jak na to: S jsou vnitřní stavy, I jsou vstupní stavy a O jsou výstupní. Víme, že v případě Mooreho automatu jsou
výstupní stavy závislé jenom na vnitřním stavu. Takže z obrázku vidíme, že ve stavu S0 je na výstupu stav O0. Pokud
v tomhle stavu přivedem na vstup stav I1, dostane se automat zase do stejného stavu S0. Teprve stav I0 nebo I2 ho
přepnou do stavu S1, kde má ovšem výstup zase O0. Např. vstupním stavem I2 ho pak můžeme přepnout z S1 do S3.
A tady odsud už žádná cesta nevede.
2.14. Sekvenční obvody
75
CESR, Release
Mealyho automat
Výstup Mealyho automatu závisí jak na vnitřním stavu, tak na vstupním stavu. Funguje to víceméně jako Mooreho
automat, takže vstupními stavy I přepínáme vnitřní stavy S. Rozdíl je ve výstupech.
Tak třeba jsme ve stavu S1 a na vstup přivedeme I1. V tu chvíli se automat přepne do stavu S0 a na výstupu bude stav
O2. Kdybychom ovšem místo toho přivedli na vstup I2, tak se automat přepne zase do S1 a výstup už bude jiný, totiž
O0. Tady je vidět, že výstup závisí i na vstupu, ne jenom na vnitřním stavu.
2.14.6 Popis rovnicemi
Přechodová funkce se popisuje takhle:
Si αIj → Sk
tedy vnitřní stav S v kombinaci se vstupním stavem I vytvoří jiný vnitřní stav S.
Pro výstupní funkci takhle:
Si αIj : Ok
Takže když se vrátíme k Mealyho automatu v předchozím odstavci, tak můžeme napsat:
S1 αI1 → S0 – pro přechodovou funkci
76
Chapter 2. Otázky
CESR, Release
S1 αI1 : O2 – pro výstupní funkci
Pro Mooreho automat budou všechny výstupní vypadat např. S0 : O0
2.14.7 Popis tabulkou
Následující tabulky se vztahují zase k těm obrázkům nahoře.
Mooreho automat
Přechodová funkce:
S0
S1
S2
S3
I0
S1
S2
S2
S3
I1
S0
S0
S0
S3
I2
S1
S3
S2
S3
Výstupní funkce:
S0
S1
S2
S3
O0
O1
O2
O3
Mealyho automat
Přechodová funkce:
S0
S1
S2
I0
S1
S2
S2
I1
S0
S0
S0
I2
S0
S1
S0
Výstupní funkce:
S0
S1
S2
I0
O0
O2
O0
I1
O1
O2
O0
I2
O1
O0
O0
Tady je zase hezky vidět, že u Mealyho automatu závisí výstup i na vstupech.
2.14.8 Kódování stavů
• Vstupní kód – přiřazuje vstupní signály vstupnímu stavu I
• Vnitřní kód – přiřazuje vnitřní signály vnitřnímu stavu S
• Výstupní kód – přiřazuje výstupní signály výstupnímu stavu O
Tedy ke každému stavu je potřeba určit kombinaci signálů.
Počet signálů, které potřebujeme k zakódóvání stavů můžeme určit z následující nerovnosti:
2k−1 < n ≤ 2k
2.14. Sekvenční obvody
77
CESR, Release
n - počet stavů
k - minimální počet signálů
Pro 5 stavů to znamená 3 signály (4 < 5 < 8). Jenže 23 = 8, takže třemi signály pokryjeme celkem 8 stavů. 3
kombinace tudíž budou navíc. Těm se říká nevyužité stavy.
Při kódování musí mít:
• 1 stav -> 1 kombinaci signálů
• 1 kombinace signálů -> 1 stav
Pro zakódování 5 vstupních stavů vytvoříme následující kód:
I0
I1
I2
I3
I4
x2 · x1 · x0
x2 · x1 · x0
x2 · x1 · x0
x2 · x1 · x0
x2 · x1 · x0
000
001
010
011
100
Kde je 0, tam je x a kde je 1, tam je x.
I5, I6, I7 jsou ty tři nevyužité stavy, takže je kódovat nebudeme.
2.14.9 Návrh sekvenčního obvodu
Kódování stavů
Pokud bychom chtěli zakódovat Mealyho automat z úvodu, pak by to bylo:
Vstupní kód:
I0
I1
I2
x1 · x0
x1 · x0
x1 · x0
000
001
010
Vnitřní kód:
S0
S1
S2
78
Q1 · Q0
Q1 · Q0
Q1 · Q0
000
001
010
Chapter 2. Otázky
CESR, Release
Tahle tabulka je jenom graf přepsaný do rovnic a za stavy je zde dosazený vstupní/vnitřní kód.
Budící funkce
Ted’ si musíme zvolit klopné obvody, takže bud’ D/T/JK... Jde to s kterýmkoliv typem, ale pro D budou jednodušší
budící funkce.
Tady zase platí to, co jsem psal u čítačů.
Zvolíme si tedy D.
Z tabulky přechodů kousek výš musíme napsat rovnice pro D1 a D0. Píše to stejně jako když máme tabulku 1/0 a
píšeme logickou funkci. Takže hledáme ty řádky, kde D1 = 1. To je řádek 3 a 6 (není tam negace). A bereme starý
stav:
D1 = Q1 · Q0 · x1 · x0 + Q1 · Q0 · x1 · x0 A pro D0 by to byly řádky 1 a 5.
Pokud bychom to chtěli udělat s T místo D, tak musíme vybírat ty řádky, kde se Q mění ze starého stavu na nový.
Takže pro T1 řádky 3 a 7, tam se Q1 mění (z 1 do 0 nebo z 0 do 1, ale mění).
Pro JK bychom museli udělat jednu funkci pro přechody z 0 do 1 a druhou pro přechody z 1 do 0, ale v každém případě
úplně stejným způsobem.
A tím by byl návrh téměř kompletní. Pak už jenom z rovnic nakreslit schéma a je to.
2.14. Sekvenční obvody
79
CESR, Release
2.14.10 Časování
Maximální frekvence CLK
TCLK ≥ tpCQ + tpKmax + ts
fCLK =
1
TCLK
tpKmax - maximální zpoždění kombinačních obvodů
tp CQ - doba překlopení KO (od CLK po ustálení výstupu Q)
ts - doba předstihu KO
Proč
Takhle vypadá sekvenční obvod. Když přijde impulz CLK, tak se překlopí KO a trvá to tp CQ. Potom signály doputují
ke kombinačním obvodům, kde se propletou, pak se se počká na odeznění hazardů a to trvá tpKmax (od konce KO do
konce kombinačních obv.). Potom pro další cyklus je potřeba dodržet dobu předstihu těch KO, takže tady se přičte ts .
80
Chapter 2. Otázky
CESR, Release
Doba předstihu/přesahu
Z toho, co je napsáno v předchozím odstavci, můžeme hned určit dobu předstihu sekvenčního obvodu. Takže se změní
vstup, po tpKmax se ustálí budící signály E, pak musíme počkat ts kvůli KO a pak můžeme změnit vstup a kvůli tomu
potřebujeme další impulz CLK. Takže celkem musíme počkat:
tss ≥ tpKmax + ts
A než se zase rozhodneme vstup změnit, musíme počkat dobu přesahu sekvenčního obvodu. Každý KO má dobu
přesahu th , to jsme si řekli už v kapitole klopné obvody. Pak ale víme, že kombinačním obvodům to taky chvilku trvá,
takže už můžeme sázet vstupy, ještě než oni skončí. Minimální doba, za kterou to stihnou, je tpKmin . O tuhle dobu se
nám to tedy zkrátí:
ths ≥ th − tpkmin
2.14. Sekvenční obvody
81
CESR, Release
2.14.11 Nastavení počátečního stavu
Funkce tohoto obvodu:
• Základní je hysterezní člen, odpor a kondík. Při náběhu napájení je napětí na kondíku malé, takže hysterezní
člen má na svém výstupu 0. Jakmile se kondík dostatečně nabije, hysterezní člen se překlopí a KO se přestane
nulovat.
• Dioda umožňuje vybít kondenzátor v případě krátkodobého výpadku napájení.
• Tlačítko vnutí 0 na vstup hysterezního členu a vyvolá tak reset od uživatele.
• Člen s otevřeným kolektorem umožňuje reset vyvovat obvodům (ne-člověk). To se hodí u větších systémů (jako
třeba když programujete arduino, taky se dá resetovat softwarově i hardwarově).
2.15 Metastabilita
Metastabilita a její projevy v sekvenčních obvodech. Vzorkovače, jejich činnost a spolehlivost, vliv souběhů signálů.
Předávání dat mezi nesynchronními systémy (sféry synchronizace). Korespondenční provoz (“handshake”) - princip
a obvodové řešení (pomalý zdroj dat, rychlý příjemce).
82
Chapter 2. Otázky
CESR, Release
2.15.1 Co to je
Metastabilita je jev, kdy v důsledku špatného časování signálů nastane na KO stav, který nemůžeme předvídat.
2.15.2 Dvojitý vzorkovač
Na grafu vidíme, že impulz na D1 začíná zhruba ve stejnou dobu jako hrana CLK. Jenže to je jasně nedodržená
podmínka časování. Ten impulz D1 měl být stabilní už dobu předstihu (ts ) před hranou CLK.
Z toho jsou možné dvě situace:
1. KO se na chvíli bude snažit se přepnout, ale nepodaří se to, takže po první periodě CLK nebude vstupní signál
D1 zaznamenám. V druhé periodě už vidíme, že je D1 stabilní, takže se KO překlopí správně. To znamená, že
se celý průběh o jeden takt zpozdí.
2. KO se přeci jenom překlopí a po první periodě CLK bude D1 na výstupu Q1. V tom případě v druhé periodě
bude signál dál pokračovat přes druhý KO.
Z toho vyplývá, že na Q2 bude vždy správně časovaný signál. Důležité je, že na Q1 nemůžeme předvídat stav po první
periodě, a tudíž za to ani nemůžeme postavit další obvody na zpracování. Proto je tam druhý KO, za kterým už bude
signál správně, i když nemůžeme odhadnout, jestli bude o takt zpožděný nebo ne.
2.15. Metastabilita
83
CESR, Release
Podmínkou, aby dvojitý vzorkovač fungoval je, že perioda CLK musí být větší než doba trvání metastabilního stavu.
Jenže tahle doba není známá. Závisí na době mezi hranou CLK a hranou vstupního signálu a to přece jenom nemůžeme
spolehlivě určit. To znamená, že žádný vzorkovač nefunguje na 100%.
A aby se vstupní signál vůbec zaznamenal - jak je vidět na obrázku - musí být jeho trvání dlouhé alespoň dvojnásobek
periody CLK (btw na obrázku vidíme vlastně jenom půlku periody). Takže vlastně frekvence vzorkování (CLK) musí
být aspoň 2x vyšší než frekvence vzorkované signálu (Zase ten Shannon).
No a pokud máme signálu víc (říká se tomu vektor), tak už nám dvojitý vzorkovač nepomůže. Pak se totiž může
změnit 1 z X vstupů dřív než ostatní, např.:
1000 -> 0000 -> 0111. Takže dekadicky to mělo být z 8 na 7, ale mezitím se tam objevila 0! Wow. No kdyby to měly
být třeba souřadnice rakety, tak útočník sestřelí sám sebe...
2.15.3 Handshake
84
Chapter 2. Otázky
CESR, Release
Jak to funguje:
1. RQ (request) signál požádá o data. Tím nastaví RS vlevo na 1, takže SD (Send Data) = 1.
2. Levá strana pošle data do registru a přijde signál ACK (Acknowledge - potrvrzení), že jsou data v pohodě. Tím
se zároveň nastaví pravý RS na 1, tedy DV (Data Valid) = 1. No a zároveň se ještě levý RS překlopí do 0, takže
SD = 0, aby nikdo nic neposílal.
3. Ted’ si příjemce dat zjistí, jestli DV = 1 a když jo, tak si data může v klidu přečíst. Až si je zchroustá, nastaví
RQ = 1, čímž se vynuluje pravý RS a DV = 0, takže nemůže nic číst, dokud zase nedojdou nová data.
Takže když to shrnem: zleva se hrnou data, zprava se čtou. Když přijdou data, zůstanou v registru, dokud je příjemce
nepřečte. To znamená, že zdroj dat čeká. Teprve až když si příjemce řekne, tak mu pošle nová data.
Když by teoreticky zdroj mohl dodávat data rychleji, než je příjemce může zpracovávat, nic se neděje, protože je pošle
vždy, až když si o ně příjemce řekne.
V opačném případě, kdy bude zdroj pomalý a příjemce rychlý, se taky nic neděje, protože příjemce má hotovo, pošle
RQ, takže zdroj má SD = 1. Jenže zdroj ještě není ready, takže nenastaví ACK na 1, tudíž příjemce čeká.
2.15.4 Synchronizace více subsystémů
Máme dva (nebo víc) systémy, každý zpracovává data. Každý je vyplivne po jiné době, takže je nemůžeme jen tak
spojit dohromady. Vyřešíme to tak, že tam přidáme nějaký kousek, který zaručí, že budou všechny obvody dostávat a
vydávat data, kdy mají.
2.15. Metastabilita
85
CESR, Release
FBx jsou funkční bloky, tj. to, co zpracovává data. Každý blok má svůj registr, kam mu ta data připravíme. Samozřejmě každý blok má vstup DI a výstup DO.
No a dole je Generátor synchronizačních impulzů. Ten řídí to, kdy se data kam posouvají. Jak vidíme, jeho výstupy
jsou signály WR (write).
86
Chapter 2. Otázky
CESR, Release
Na grafu vidíme, že generátor vytvořil WR1, čímž se vstupní data na DI1 zapsala do registru FB1 a začalo zpracování.
Po zpracování se data objevila na výstupu DO1 a generátor vytvořil WR2, který data zase předal FB2.
Opět je potřeba dodržet podmínky časování, takže data na DI musí být stabilní před dobou předstihu a ještě celou dobu
přesahu.
Samozřejmě, že když máme spoustu bloků a každý jinak rychlý, bychom mohli synchronizovat podle toho nejpomalejšího, ale to by se zpomalil celý systém. Proto stačí, aby každý FB měl výstupní signál, který říká, že už skončil zpracování. Všechny tyhle signály nacpeme generátoru synch. impulzů a on pak může posouvat data vždy po dokončení
dílčího zpracování. Říká se tomu variabilní časování.
2.16 Pipeline
Pipeline, vlastnosti, zrychlení systému, vedení signálů přes registry.
Pipeline je způsob, jak urychlit zpracování nějakého signálu. Spočívá v rozdělení systému do sekcí. Každá z nich má
svoje zpoždění tp a součet všech logicky dá dohromady zpoždění celého systému.
Mezi oddělené kousky se pak dají registry:
2.16. Pipeline
87
CESR, Release
A všechny registry mají společné CLK. To znamená, že jedním CLK se posunou data mezi všemi sekcemi. Jinak
řečeno:
1. 1. sekce data zpracuje a má je připravená na výstupu
2. CLK zapíše data do registru a 1. sekce si dál hledí svého. Ve stejném okamžiku už ale 2. sekce zpracovává nová
data.
3. Dalším taktem se to opakuje, takže data z bodu 1. budou ted’ u třetí sekce
Takhle to prolézá celým systémem (pipeline - trubka).
• V tpi je zahrnuto i odeznění falešných impulzů.
• Signály na vstupu registru musí být stabilní minimálně ts před hranou CLK.
• tpCQ trvá překlopení KO registru
• Každá sekce má jiné zpoždění, takže musíme vzít to nejvyšší - tpM AX
88
Chapter 2. Otázky
CESR, Release
Periodu CLK tudíž můžeme určit součtem těchto tří dob:
TC LK ≥ tpM AX + ts + tpCQ
No a pokud použijeme tu nejmenší periodu (nejvyšší frekvenci), tak můžeme spočítat dobu, za kterou data projdou
celou pipeline:
tDD = N · tpM AX + N · (ts + tp CQ)
N je počet sekcí. Každá má ts a tpCQ , takže se to jednoduše vynásobí. Samozřejmě by šlo tpM AX taky hodit do druhé
závorky, ale je tu asi naznačeno, že je to něco jiného.
Kdybychom použili původní systém bez pipeline, tak by namísto N · tpM AX byla suma všech tp :
PN
tpc = 1 tpi
To by logicky znamenalo, že jsme systém spíš zpomalili. Jenže, když do původního systému budeme cpát data
pravidelně, tak:
1. Musíme přivést data
2. Počkáme tpc
3. Data lze zpracovávat v dalších blocích
4. A můžeme přivést další data a opakuje se to od 1.
Ale když tam dáme pipeline, tak můžeme cpát data ne s periodou tpc , ale s periodou TCLK , která je podstatně kratší.
A ve stejném rytmu se budou zpracovaná data objevovat na výstupu. Musí tam teda ty data ale plynout pravidelně.
Pak se dá spočítat celkové zrychlení:
apl =
P
tpi
TCLK
Takže např. sekce se zpožděními: 7, 7, 6, 8, 10 ns, tpCQ = 4ns a ts = 2ns. TCLK spočítáme na (minimálně) 16 ns
38
(62.5 MHz). Zrychlení bude: apl = 7+7+6+8+10
= 16
= 2.375
16
Zrychlení může být i N, tedy podle počtu sekcí, ale to se málokdy stane, že by měly všechny sekce stejné zpoždění.
2.17 Paměti
Paměti. Paralelní a sériový přístup. Pamět’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické
(DRAM, SDRAM), ovládání, obnovování obsahu, typické průběhy cyklů, práce po stránkách, latence. Paměti ROM,
(EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Paměti FLASH „NOR“ a
„NAND“. Speciální typy pamětí - FIFO, dvojbránová. Arbitrážní obvody u DPM.
Tuhle kapitolu jsem si dovolil rozdělit - je toho dost, takže to snad takhle bude přehlednější.
2.17.1 Energeticky závislé
Paměti. Paralelní a sériový přístup. Pamět’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické
(DRAM, SDRAM), ovládání, obnovování obsahu, typické průběhy cyklů, práce po stránkách, latence. Paměti ROM,
(EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Paměti FLASH „NOR“ a
„NAND“. Speciální typy pamětí - FIFO, dvojbránová. Arbitrážní obvody u DPM.
Vybavovací doba - tAC - doba od začátku čtecího cyklu do vydání platných dat.
2.17. Paměti
89
CESR, Release
Paralelní vs. sériový přístup
Paralelní
Tady vidíme, že máme vstup ADR na adresu, ten je vícebitový, řídící signály (R/W’) a vstup pro data (ty jsou také
vícebitové). Pokud jsou DI a DO sloučené, pak určitě budeme potřebovat další řídící signál, který určí směr. (No ono
by možná stačilo R/W’ i na tohle...)
90
Chapter 2. Otázky
CESR, Release
Sériový
Tady se používá třívodičové spojení pro SPI. Podle wiki se to používá třeba pro připojení SD karet. O SPI se víc mluví
v MPP. V podstatě tu jsou ty vodiče takhle:
• SI - slave in
• SO - slave out
• SCK - CLK
Master v tomhle případě bude asi něco v PC, co bude řídit operační systém...
2.17. Paměti
91
CESR, Release
Statické RAM (SRAM)
Vybavovací doba těchto pamětí jde i pod 10 ns. Jsou velmi rychlé a používají se pro cache procesorů.
Data se ukládají pomocí kladné zpětné vazby, což je takový BKO (bistabilní KO). Bud’ ho přepneme do 1 nebo do 0,
podle dat. A on si tu hodnotu pamatuje, dokud ji zase nepřepíšeme.
Řídící signály jsou tady:
• CS’ - chip select
• OE’ - output enable
• WR’ - write (někdy taky WE’ - write enable)
CS’
1
0
0
0
OE’
0
1
WR’
1
0
1
funkce
čtení
zápis
-
DI/DO
Z
DO
DI
Z
Icc
nízký
plný
plný
plný
Z - stav vysoké impedance
Nezapomeňte, že jsou ty řídící signály v negaci, takže jsou aktivní v 0.
92
Chapter 2. Otázky
CESR, Release
Čtení
Takže když chci data číst:
1. Odblokuju obvod - CS’ = 0
2. Povolím výstup - OE’ = 0
3. Zablokuju vstup - WR’ = 1 (co se tam má co zapisovat, když chci číst)
4. Na výstupu DI/DO (pokud jsou společné, jinak jenom DO) budu mít připravená data
Tady je vidět ta doba tAC - od té doby, co jsem ADR řekl, jaká data chci, do té doby, než data vylezou na DO.
tCZD - jak dlouho trvá než se projeví CS’
tOZD - doba od OE’ po data
Imho to CZD bude znamenat něco jako C - chip select, Z - vysoká impedance, D - data
2.17. Paměti
93
CESR, Release
Zápis
U zápisu je to maličko složitější:
tAW - doba odstupu zápisového pulzu od ADR
tW P - trvání zápisového pulzu
tDS - předstih dat kolem zápisového pulzu
tDH - přesah dat kolem zápisového pulzu
Jinými slovy, data jsou na DI připravená od začátku. ADR vybere, kam se zapíše. Pak musím počkat tAW , než můžu
aktivovat WR’. Jak se WR’ aktivuje, data se začnou zapisovat do paměti. Ted’ musí WR’ být pořád aktivní a to po
dobu tW P . A ke konci, když už ho můžu zase deaktivovat, tak od začátku tDS do konce tDH se data nesmí měnit.
94
Chapter 2. Otázky
CESR, Release
Dynamické RAM (DRAM)
Tady se k zapamatování používají kondíky. Kondík je bud’ vybitý nebo nabitý. To se zjistí komparátorem a referenčním napětím. Jenže ten kondík se vybíjí samovolně, takže se musí jednou za čas znovu dobít.
DRAM je oproti SRAM levnější - pamět’ové buňky jsou jednodušší a proto se jich na stejnou plochu vejde víc. Na
jeden bit je potřeba jenom jeden tranzistor a kondík. Ten kondík má kapacitu v řádu fF - femto Farad. To je 10−15 F.
Fakt hodně málo.
DRAM (resp. potom SDRAM) se používají jako hlavní pamět’ PC, telefonů, tabletů, PS, atd...
U DRAM jsou také jiné řídící signály:
• RAS’ - ovládání řádkové adresy
• CAS’ - ovládání sloupcové adresy
• R/W
Čtení
Čtecí cyklus pak taky vypadá jinak než u SRAM:
1. RAS’ zapíše řádkovou adresu do registru řádkové adresy (RAS’ je aktivní v 0, takže na doběžnou hranu).
2. Do čtecích zesilovačů se přivede napájení.
2.17. Paměti
95
CESR, Release
3. Řádkový dekodér vybere danou řádku a podle stavu jednotlivých buněk se překlopí čtecí zesilovače.
4. Ted’ se přivede adresa sloupce a signálem CAS’ se zapíše do registru (zase na doběžnou hranu).
5. Sloupcový dekodér vybere skupinu čtecích zesilovačů (jeden byte (no někdy třeba dva, podle toho, jak je definovaná velikost slova)).
6. Nakonec se odblokují 3s členy, aby se vyčtená data objevila na výstupu.
tRAC - vybavovací doba - tady od hrany RAS’ do platných dat (podobně jako tAW u SRAM) - bývá kolem 50 ns
tCAC - taky vybavovací doba, ale od hrany CAS’
tRH - doba nabíjení sloupců
tRC - celková doba čtecího cyklu - byvá kolem 100 ns (takže jo, DRAM je fakt pomalejší)
96
Chapter 2. Otázky
CESR, Release
Zápis
Ten rámeček u dat je oblast, kde se data už nesmí měnit. Jinak to je podobné jako u čtecího cyklu. Tj. RAS’ -> WR
-> CAS’.
Obnovování nábojů na kondíkách
Dělá se to tak, že se jednou za čas někam strčí obnovovací cyklus. Vždycky při čtecím nebo zápisovém cyklu se
totiž obnoví všechna data na řádce. Takže stačí dodat adresu řádku, aktivovat RAS’ a řádka se obnoví. Jenže my
potřebujeme obnovovat celou pamět’, ne jen to, co zrovna čteme. Takže existuje několik možností:
• Blokové obnovování (burst refresh) - prostě se proleze celá pamět’ a obnoví se řádek po řádku (ale trvá to
dlouho)
• Obnovování rozložené v čase (time-distributed refresh) - namísto obnovení celé paměti se obnoví kousek, pak
zase kousek a pak zase kousek a mezitím se zřejmě dá číst i zapisovat
• Skryté obnovování (transparent refresh) - tady to řídí procesor tak, že vždycky někam mezi čtecí a zápisové
cykly hodí ty obnovovací, když se pamět’ nevyužívá
• Nedělat to vůbec - pokud se čte celá pamět’, pak to není třeba (pamět’ grafické karty - ten obraz se tam asi mění
celý, takže není třeba nic obnovovat)
Na ty obnovovací cykly se používá čítač adres - ten čítá a projíždí tím všechny řádky. Když se k tomu přihodí ještě
multiplexor a řídící obvody k tomu, vznikne řadič dynamické paměti.
Řadič obsluhuje celou pamět’. Jenom dostává povely, co kam zapsat, co odkud číst. Všechny cykly a časování a
obnovování už je na něm.
2.17. Paměti
97
CESR, Release
Čtení po stránkách
Namísto vybrání kousku řádky vybere řadič celou řádku do čtecích zesilovačů. Pak se začne zvyšovat adresa sloupce,
aby se mohla celá řádka přečíst byte po bytu. A samozřejmě tam ten řadič musí cpát CAS’. Takže zjednodušeně: když
chci 8 bytů, tak je nebudu číst po 1 bytu, ale přečtu všech 8 a pak je po jednom šoupu ven. Takže namísto 8 čtení řádky
je tam jenom 1 čtení řádky. Tím se celý čtecí cyklus urychlí.
Synchronní DRAM (SDRAM)
SDRAM funguje jako DRAM s jedním důležitým rozdílem - všechno je tu synchronní. Všechny řídící signály,
adresové vstupy i datové vstupy/výstupy se hýbou v rytmu CLK. Díky tomu se taky může zajistit lepší spolupráce
s dalšími obvody v systému (procesor, ...).
Zrychlení se tady dosáhne tak, že jakmile se přečte řádka, začne vnitřní čítač zvyšovat sloupcovou adresu, a tudíž se
data hrnou na výstup rychlostí CLK, což můžou být jednotky ns v periodě. To ale znamená, že se to vyplatí jen u
čtení/zápisu většího množství dat. Říká se tomu dávkové čtení/zápis (burst read/write).
MODE - registr režimu
Matice buněk a ty věcičky okolo se nazývají pamět’ový blok (memory bank). Těch bývá několik (2, 4, ...). To taky
urychluje pamět’, protože se může z jednoho číst, do druhého zapisovat, ve třetím může zrovna probíhat obnovovací
cyklus.
98
Chapter 2. Otázky
CESR, Release
Čtení/zápis
1. Při náběžné hraně CLK se přivede adresa bloku (MSB) a adresa řádku
2. Zároveň se přivede RAS’
3. Máme zapsanou adresu řádku a po dvou taktech přivedem adresu sloupce a CAS’
4. Tím se ale - narozdíl od DRAM - přednastaví čítač adresy sloupce
5. Současně s CAS’ přivádíme WE’, pokud chceme zapisovat
6. Po chvilce máme data na výstupu, yay!
A ta chvilka - od CAS’ do prvních dat - se nazývá latence, nebo doba latence. Počet vydaných slov (at’ už je to 1 byte
nebo 2) se nazývá délka dávky. Je to naprogramováno v řídících obvodech a může to být 1, 2, 4, 8 nebo prostě celý
řádek.
2.17. Paměti
99
CESR, Release
DDR (SDRAM)
DDR je vylepšená SDRAM. DDR znamená Double Data Rate. Čítač sloupců je tady inkrementován navíc i doběžnou
hranou CLK, takže 2x během jedné periody CLK. Proto Double.
2.17.2 Energeticky nezávislé
Paměti. Paralelní a sériový přístup. Pamět’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické
(DRAM, SDRAM), ovládání, obnovování obsahu, typické průběhy cyklů, práce po stránkách, latence. Paměti ROM,
(EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Paměti FLASH „NOR“ a
„NAND“. Speciální typy pamětí - FIFO, dvojbránová. Arbitrážní obvody u DPM.
100
Chapter 2. Otázky
CESR, Release
Read only memory (ROM)
Když to porovnáme s DRAM, jsou téměř totožné. Akorát tu odpadají cesty pro zápis, protože je read-only.
Jedna buňka tu je taky dost podobná, ale přece jiná. Je tu akorát trandík mezi řádkem a sloupcem:
2.17. Paměti
101
CESR, Release
Při výrobě se funkční tranzistory vyrobí s tenkou vrstvou oxidu křemíku, zatímco ty nefunkční s tlustou vrstvou. Jak
je ta vrstva tlustá, tak se nedokáže vytvořit vodivý kanál. Takže když tam naženeme napětí, tak tam zůstane, zatímco
u funkčního projde na zem. Tím se rozliší 0 od 1.
Programmable ROM (PROM)
Dřív se přepalovaly spojky velkými proudy.
Potom někoho napadlo to udělat v technologii CMOS (hallelujah):
Mezi řídícím hradlem a zbytkem je vložená další vodivá vrstva. Je ale izolovaná oxidem křemíku. Říká se jí plovoucí
hradlo (floating gate). Na tohle hradlo lze naházet elektrony, takže to hradlo bude nabité záporně. No a pokud
vybudíme řádek (dáme tam log. 1), tak:
• U nenabitých plovoucích hradel se vytvoří kanál a sloupec se zkratuje na zem - log. 0
• U nabitých se to kladné napětí sníží o to, co je nabité na plovoucím hradle, a tím je to napětí malé a nestačí k
vytvoření kanálu - log. 1
Jak tam dostat elektrony
1. Lavinová injekce - na koncích kanálu je elektrické pole, které elektrony urychlí. Energie je tak vysoká, aby
elektrony dokázaly vytvořit omezený lavinový průraz. Zároveň se vychýlí kladným napětím na řídícím hradle. Takže mají dohromady takovou energii, aby proletěly tou vrstvou oxidu a dostaly se na plovoucí hradlo.
Jmenuje se to FAMOS (Floating-gate Avalanche-Injection MOS). Doba programování se pohybuje v jednotkách
mikrosekund.
102
Chapter 2. Otázky
CESR, Release
2. Použití kvantového jevu - elektrony přemístíme přes vsrtvu oxidu, naženeme ho tam vyšším napětím. Že prý
stačí kolem 20V. Upp se značí programovací napětí. Doba programování se pohybuje v jednotkách milisekund
- to je hodně. Tomuhle se prý říká tunelování elektronů.
Vlevo je nabití, vpravo vybití.
Erasable PROM (EPROM)
Používá buňku FAMOS. K programování je potřeba programátor - zařízení, které dodá programovací napětí (tady
okolo 12V) a nacpe data do paměti. Trvanlivost dat bývá desetiletí - záleží na teplotě.
Vymazání se provádí pomocí UV záření - zase je na to potřeba extra mašinka - o vlnové délce 254 nm. Trvá to asi 15
minut. Záření dodá elektronům energii a ty jsou schopné se osvobodit ze svého vězení v podobně plovoucího hradla.
A pak budou všude samé log. 1.
Cyklů mazání/programování může být u EPROM jen málo - desítky. Navíc to musíte furt tahat z DPSky a nesmíte
ohnout ani ulomit vývody. Takže pro dnešní použití na nic.
Electrically Erasable PROM (EEPROM)
Tady se využívá tunelování v obou směrech. Buňka má 2 tranzistory - pamět’ový a výběrový:
2.17. Paměti
103
CESR, Release
Pamět’ový tr. má plovoucí a řídící hradlo, zatímco ten výběrový plovoucí nemá.
Mazání a opětovné programování může být provedeno víckrát než u EPROM, cca to jsou desítky až stovky tisíc cyklů.
FLASH
FLASH kombinuje lavinovou injekci pro naprogramování s tunelováním pro mazání. 1 buňka = 1 trandík. Je to ale
tak jednoduchý, že nejde mazat bit po bitu, ale musí se mazat po blocích (sektorech). Sektor se vybírá MSB adresy.
Programování je rychlé (jako blesk - flash!), ale mazání pomalé. Takže když chceme přepisovat, musí se nejdřív
smazat blok a pak přepsat celý znovu (takže asi se data vyčtou, kousek změní a to se zapíše).
Jelikož tam je jenom jeden tranzistor, tak se ta pamět’ dá dobře nahustit (proto jsou flashky tak levné).
Přepisovací cykly jsou omezené zhruba jako u EEPROM, takže 10k, 100k, ... cyklů. Tohle číslo platí pro buňku, ne
pro celou pamět’. Takže když si to řadič nebo filesystem (nebo kdo) dobře rozprostře, tak celá pamět’ vydrží mnohem
déle (to se dělá dneska u SSD, ale nesmíte ho mít úplně plnej).
Programování je celkem snadné díky tomu, že už v čipu FLASH paměti je integrovaný řadič programování. Kromě
toho i větší napětí na tunelování je přítomno, dělá to nábojová pumpa (nebylo to v AESR?). Tzn. že pro svojí aplikaci
si do obvodu švihnete FLASHku, připojíte Ucc a zbytek už se děje uvnitř.
Čtení probíhá jako u SRAM. Zápis a mazání je odlišné podle výrobce.
Zápis je pomalejší než u RAM. Data se nasunou do registru, což je rychlá operace, a pak se jeho vývody propojí se
sloupci a data se nasunou do buněk. Ale pořád je to pomalejší.
Vybavovací doba je zhruba 10x vyšší než u SRAM, kde to bylo 10 ns, takže tady bych čekal 100 ns. Trochu se to
povedlo zrychlit jako u SDRAM (vnitřní čítač sloupcové adresy).
NOR FLASH
Až do ted’ se povídalo o NOR FLASH. Ta se nazývá NOR, protože zapojení tranzistorů připomíná hradlo NOR.
104
Chapter 2. Otázky
CESR, Release
NAND FLASH
Tady to pro změnu připomíná NAND. Spojení je tady jednodušší, horší je ale přístup k bitům, už je nelze číst po
jednom. Hlavní výhoda NAND FLASH je vysoká hustota buněk a tudíž i nižší cena. To jsou všechny ty naše flashky.
Podle všeho je NAND pomalejší ve čtení, ale rychlejší v zápisu než NOR.
2.17.3 Speciální paměti
Paměti. Paralelní a sériový přístup. Pamět’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické
(DRAM, SDRAM), ovládání, obnovování obsahu, typické průběhy cyklů, práce po stránkách, latence. Paměti ROM,
(EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Paměti FLASH „NOR“ a
„NAND“. Speciální typy pamětí - FIFO, dvojbránová. Arbitrážní obvody u DPM.
Dvojbránová pamět’ (DPM)
DPM - dual-port memory. Je to SRAM, která umožňuje čtení ze dvou bran. Každá brána má zvlášt’ adresu, data a
řídící signály. Účel paměti je ve výměně dat mezi dvěma částmi systému. Tyhle dvě části pak vůbec nemusí být v
synchronismu. Vlastně to je jako komunikace mezi dvěma procesy v PC.
2.17. Paměti
105
CESR, Release
Takhle by to mohlo fungovat pouze, pokud se dokážou ty dvě části L/P střídat, takže když L čte, P musí zpracovávat,
a pak se prohodí. A to taky nejde úplně vždycky.
Pro lepší přístup se používá následující verze:
106
Chapter 2. Otázky
CESR, Release
Takže každá buňka nemá jenom 1 sloupec, ale 2 sloupce. Takže lze číst zároveň ze dvou stran. Co se ale nesmí stát, je
zápis z obou stran. Pokud jsou data stejná, tak OK, ale pokud nejsou, nastane nedefinovaný stav. Není možné zaručit,
co se tam nakonec uloží.
Jelikož jsou adresy i řídící signály nezávislé, je možné číst i zapisovat na různých místech zároveň. Jediný problém je
zápis na stejné místo, to se musí vyloučit.
Arbitrážní obvody
To je obvod, který právě řeší zápis ze dvou (nebo více) stran do stejného místa. Pokud se tedy sejdou dva požadavky,
dostane prioritu ten první. Pokud přijdou současně, tak náhodně.
Důležitý je hlavně adresový komparátor. Pokud arbitrážní obvod přijde na to, že uživatel nemůže zapisovat, hodí mu
na BUSY’ 0.
FIFO
First in - first out. Tedy fronta (queue). Tady odpadají adresy - pořadí je vždy jasné.
Data se většinou skládají na pevné pozice a posouvá se jenom ukazatel na ně (pointer).
FIFO se používá jako vyrovnávací pamět’ mezi dvěma systémy, které krátkodobě nemusí fungovat ve stejném rytmu.
Ale nejde to pořád. Pokud máme systém A -> FIFO -> B, tak je jasné, že když bude A trvale rychlejší, tak se FIFO
brzo zaplní.
FIFO paměti můžou obsahovat indikaci naplnění/vypráznění:
2.17. Paměti
107
CESR, Release
• FF - full FIFO
• EF - empty FIFO
• HF - half empty FIFO
Takže je dobré si před zápisem zkontrolovat, jestli není FIFO plná, a pokud je, tak se zápisem počkat.
FIFO je vlastně DPM, ale jedna brána umožňuje jenom zápis a druhá jenom čtení. Adresy se generují čítači.
Akce
Zápis
Zápis
Čtení
Zápis
Čtení
Atd..
Čítač zápisu
1
2
2
3
3
Čítač čtení
0
0
1 (čtu data z pozice 1)
1
2
Kromě toho tam je zase komparátor adresy, který zjistí, jestli je pamět’ plná/prázdná a když tak zablokuje jeden z
čítačů.
Existuje i synchronní verze, která zavádí CLK podobně jako SDRAM.
2.18 Programovatelné logické obvody
2.19 Rušení v elektronických systémech
Rušení v elektronických systémech. Vnější rušení, cesty pro vstup rušivých signálů, jejich omezení. Optrony, diferenční
přenos.
Vnitřní rušení - rozvod napájení, přeslechy, sběrnice, dlouhé spoje.
2.19.1 Vnější
Vnější rušení proniká do obvodů z míst, jako jsou WiFi, mobilní sítě, prostě všechno co lítá vzduchem. Jelikož mají
elektronické systémy svoje vstupy a výstupy, bondování čipu k pouzdru, cestičky na DPS, tak se tyto kusy kovu chovají
108
Chapter 2. Otázky
CESR, Release
jako anténa.
Jelikož se dnešní systémy taktují poměrně vysokou frekvencí (GHz) a provozují na sníženém napájecím napětí (např.
3.3 V), tak jsou vůči tomuto rušení náchylné. Čím menší napětí potřebujeme k přepnutí tranzistoru, tím snažší
samozřejmě bude ho přepnout z vnějšku nějakým rušením.
Analogové signály jsou obecně náchylnější k rušení, takže je dobré co nejdříve přejít na digitální. Proto se vyrábějí
čidla rovnou digitální (teplotní a kdovíjaká...). Čidlo naměří hodnotu (analogově) a hned v sobě ji převede na číslicový
signál a z pouzdra už vede jenom to číslo.
Galvanická vazba
Rušení ze sítě asi všichni známe. To by mohlo pronikat do napájecích obvodů, a jak víme, na napájení závasisí některé
vlastnosti hradel, např. rychlost přechodu 0/1. Ale i bez toho to může zahýbat s 1/0 v celém systému.
Odstranění dosáhneme galvanickou vazbou, tj. trafo:
Cívky jsou navinuty proti sobě, což znamená, že se magnetické pole požere. Ty cívky právě to RF rušení odfiltrují.
2.19. Rušení v elektronických systémech
109
CESR, Release
Kapacitní vazba
Takže máme tady dva nějaké členy, které jsou spojené a mezi tím spojením a něčím venku působí parazitní kapacitní
vazba. Může to být cokoliv, to je v tuhle chvíli jedno, ale mění se tam napětí v čase. No a z YTE víme, že:
ic = Cp ·
du
dt
A takovýhle parazitní proud nám proniká do vedení. Jelikož má předchozí člen svůj výstupní odpor, vznikne nám tam
navíc ještě úbytek napětí:
u = ic · Ro
Řešení:
1. Snížit výstupní odpor - toho docílíme použitím výkonových budících členů.
2. Snížit/potlačit parazitní kapacitu - to můžeme udělat několika způsoby:
(a) Použít stínění - to by šlo na vnější vodiče, ale co cestičky na DPS? (obrázek nahoře)
(b) Kroucení - natočíme signálový vodič se zemnícím do spirály
(c) Střídání signálového vodiče se zemnícím na DPS
Kroucení:
Střídání vodičů:
110
Chapter 2. Otázky
CESR, Release
Induktivní vazba
Je častá u průmyslových systému u 50 Hz. Prostě a jednoduše: magnetické pole indukuje proud, kam jenom může.
Jenže nemůžeme použít magnetické stínění (prý to jde jen u VF).
Takže se snažíme, aby dopad byl co nejmenší. Víme, že magnetický tok se zvyšuje s indukcí a plochou:
Φ=B·S
Indukce je tady v tom případě zdroj rušení, takže ten neovlivníme. Ale pokusíme se ovlivnit plochu, tzn.:
1. Vodiče táhneme blízko sebe (v jednom kabelu nejlépe) - tím se samozřejmě zmenší celková plocha
2. Vodiče můžeme kroutit, čímž taky trochu eliminujeme rušení
3. Použijeme diferenční přenos
4. Nebo použijeme optron
Diferenční přenos
2.19. Rušení v elektronických systémech
111
CESR, Release
Pokud se nějaké rušení naindukuje na vodič, je nám to fuk. Komparátor vyhodnocuje rozdíl, takže my máme obě cesty
zkreslené stejně, ale jejich rozdíl zůstává stejný.
V případě vyššího napětí může dojít k průrazu vstupu diferenčního zesilovače (kolem 100V, nebo podle toho, jak je
zesilovač konstruovaný).
Optron
Tohle řešení je pomalejší, do stovek kHz. Nicméně, rušení nám může způsobit akorát změnu intenzity diody. Ale na
druhé straně ten fototranzistor jenom spíná a zřejmě když si zvolíme vhodnou úroveň, tak úplně eliminujeme rušení.
2.19.2 Vnitřní
Přeslechy
Přeslech je, že v důsledku vazby mezi vodiči se přenáší část signálu z jednoho vodiče na druhý. Samozřejmě ta vazba
je v tomto případě elmag.:
Řešením je vložit mezi signálové vodiče ty zemnící. Potom ta vazba nebude mezi signálovými tak silná, ale část půjdu
na zem. Neznamená to ovšem úplnou eliminaci.
112
Chapter 2. Otázky
CESR, Release
Nepřizpůsobené vedení
Dlouhé vedení při frekvencích v GHz znamená už kolem desítek cm. A jak víme, nepřizpůsobené vedení způsobuje
odrazy.
Funguje to jako vstupní obvod CMOS. Takže vyšší napětí než Vcc jde nahoru, nižší než nula na zem. Zůstane jen to,
co má.
2.19. Rušení v elektronických systémech
113
CESR, Release
Rozvod napájení
Snahou je snížit impedanci vedení Z0 =
q
L
C.
Řešení:
1. Snažit se o co nejmenší počet ohybů.
2. Všechny ohyby tvořit zkosené nebo úplně oblé, namísto pravých úhlů.
3. Napájecí vodiče táhnout co nejblíž u sebe
4. Bezindukční kondenzátory kolem členů - krátké přívody, kapacita stačí desítky nF
Ohyby vodičů:
Vodiče u sebe:
114
Chapter 2. Otázky
CHAPTER
THREE
DALŠÍ POZNÁMKY
Zde jsou další poznámky, které se nevešly do otázek samotných, nebo by působily nepřehlednost.
3.1 CMOS logické členy
3.1.1 Negace
Y =A
Funguje to tak, že 1 na vstupu otevře tranzistor N a celé vstupní napětí jde do země. Tranzistor P je zavřený, takže se
Ucc nemá jak dostat na výstup a Y bude 0.
A opačně: pokud je A = 0, pak se otevře horní tr. P a napětí Ucc se objeví na výstupu. Současně tranzistor N bude
zavřený, takže Ucc nemůže jít dolů na zem, může se objevit jedině na Y.
115
CESR, Release
Todo
doplnit další členy
Krásně načasovaná reklama od hostingu (zobrazuje se dole pod stránkou) :’D
116
Chapter 3. Další poznámky
CHAPTER
FOUR
SEARCH
• search
117