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 Císlicové signály a souˇcástky . . . . . . . . . . 2.2 Technologie CMOS, BiCMOS . . . . . . . . . . 2.3 Dynamická logika . . . . . . . . . . . . . . . . ˇ 2.4 Cleny s otevˇreným kolektorem a tˇrístavové cˇ leny 2.5 Kombinaˇcní obvody . . . . . . . . . . . . . . . 2.6 Návrh kombinaˇcních obvod˚u . . . . . . . . . . . 2.7 Realizace kombinaˇcního obvodu pamˇetí . . . . . 2.8 Základní funkˇcní bloky . . . . . . . . . . . . . . 2.9 Pˇrechodné dˇeje v kombinaˇcních obvodech . . . . 2.10 Klopné obvody . . . . . . . . . . . . . . . . . . 2.11 Registry . . . . . . . . . . . . . . . . . . . . . . ˇ ce . . . . . . . . . . . . . . . . . . . . . . . 2.12 Cítaˇ 2.13 Principy cˇ asovacích obvod˚u . . . . . . . . . . . 2.14 Sekvenˇcní obvody . . . . . . . . . . . . . . . . 2.15 Metastabilita . . . . . . . . . . . . . . . . . . . 2.16 Pipeline . . . . . . . . . . . . . . . . . . . . . . 2.17 Pamˇeti . . . . . . . . . . . . . . . . . . . . . . 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é cˇ leny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4
Search
117
i
ii
CESR, Release
Note: Pokud máte nˇejaké pˇríklady, cˇ i konkrétní otázky/odpovˇedi ze zkoušky, bylo by super, když by se tu mohly objevit v dalších sekcích. Kdybyste nˇeco mˇeli, tak m˚užete v jakémkoliv formátu posílat na
[email protected]. Doporuˇcuji si pˇreˇcíst stránku O tomto materiálu, a to nejlépe ještˇe pˇred tím, než se zaˇcnete na zkoušku uˇcit.
CONTENTS
1
CESR, Release
2
CONTENTS
CHAPTER
ONE
OBSAH
1.1 O tomto materiálu Tento materiál se snaží pˇristoupit ke zkoušce z pˇredmˇetu CESR odlišným zp˚usobem, než vˇetšina bˇežnˇe dostupných materiál˚u. 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ˇcení, co se uˇcit. Z tohoto materiálu by mˇelo být jasné, co je d˚uležité, a co není. Poznámky pod cˇ arou (footnotes) jsou jen pro doplnˇení. ˇ Císla vˇetšinou mají nižší d˚uležitost než text. V podstatˇe jde o nadpisy: • 1.1 jsou velmi d˚uležité • 1.1.1 jsou sice ménˇe d˚uležité, ale poˇrád dost d˚uležité • 1.1.1.1 jsou více ménˇe doplnˇení pro úplnost ˇ hloubˇeji se propracujete, tím lépe :) Cím Jelikož víc lidí víc ví, m˚užete svou troškou pˇrispˇet na
[email protected]. Materiál byl vytvoˇren pomocí nástroje Sphinx. P˚uvodnˇe je to nástroj pro tvorbu dokumentace, ale velmi dobˇre se dá využít i na poznámky tohoto typu. To je d˚uvod, proˇc je cˇ ást v angliˇctinˇe, nechtˇelo se mi pˇrepisovat celý template ;).
1.2 Download PDF verze tˇechto poznámek je dostupná, ovšem jde o verzi, jako je v souˇcasné podobˇe 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˚užete tuto stránku prohlížet bez pˇripojení k internetu. Jde o to, že webová verze vypadá asi nejlíp ze všech. Verze PDF Epub HTML/zip
Datum vytvoˇrení 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ˇcený seznam. ˇ 1. Císlicové signály a souˇcástky. Logické cˇ leny, obecné vlastnosti. Charakteristiky, napˇet’ové úrovnˇe.
3
CESR, Release
2. Technologie CMOS, BiCMOS. Pˇríkon, statické a dynamické parametry, vliv zátˇeže (rozvˇetvení), nevyužité vstupy, ochrana vstup˚u, hystereze. Vlivy parazitních kapacit. Sluˇcitelnost r˚uzných technologií. 3. [0 %] Dynamická logika. Princip, zapojení, cˇ innost, vlastnosti. ˇ 4. Cleny s otevˇreným kolektorem a tˇrístavové cˇ leny. Sbˇernice, budiˇce sbˇernice, terminátory pasivní a aktivní. Vliv ˇ délky spoj˚u. Rízení pˇrístupu na sbˇernici. 5. Kombinaˇcní obvody. Pravidla pro práci s logickými výrazy. Pravdivostní tabulka. Mintermy a implikanty. Neurˇcené stavy. Minimalizace logických funkcí, skupinová minimalizace, tabulka implikant˚u. Mapy a jejich použití. 6. [50 %] Návrh kombinaˇcních obvod˚u. Možnosti realizace - obvody malé integrace a multiplexory - rozklad funkce. 7. [10 %] Realizace kombinaˇcního obvodu pamˇetí - konstrukce tabulky obsahu pamˇeti z výrazu. ˇ 8. Základní funkˇcní bloky. Casto používané kombinaˇcní obvody - dekodéry, multiplexory, komparátory, prioritní kodér a prioritní ˇretˇezec, sˇcítaˇcky a možnosti zrychlení cˇ innosti. U všech: popis log. výrazem, pˇrechodné dˇeje. 9. Pˇrechodné dˇeje v kombinaˇcních obvodech. Zpoždˇení a hazardy. Vznik hazardu a jeho prognóza - z výrazu, z mapy a z obvodu. Vliv úprav výraz˚u. Projevy hazard˚u v cˇ íslicových systémech, metody odstranˇení. Zmˇeny dvou a více promˇenných. Dynamický hazard. Gray˚uv kód a jeho význam. Soubˇehy signál˚u - vznik, význam. 10. Klopné obvody, chování (RS, D, T, JK), reakce na hodinový impuls (ˇrízení hranou, úrovní, Master-Slave), podmínky bezchybné funkce, metastabilita. Nastavení poˇcáteˇcního stavu - prostˇrednictvím vstup˚u R,S nebo multiplexoru. Blokování cˇ innosti KO. Transformace KO - D na T, T/D, JK. 11. Registry, datové a posuvné, podmínky správného cˇ asování hod. impuls˚u. Nulování a pˇrednastavení u posuvných registr˚u. Posuvy o vˇetší poˇcet míst na obˇe strany. Lineární cˇ ítaˇce s max. délkou cyklu. ˇ ˇ ce asynchronní a synchronní, binární a modulo, reverzivní. Casové 12. Cítaˇ diagramy asynch. a synch. cˇ ítaˇce. ˇ Cítaˇce s pˇredvolbou (pˇrednastavením). Návrh cˇ ítaˇcu˚ v kódu bin., modulo, Gray. Blokování v koncovém stavu. ˇ ce s programovatelným modulem. Provedení reverzivních cˇ ítaˇcu˚ . Cítaˇ 13. Principy cˇ asovacích obvod˚u. Zkrácení, prodloužení a stabilizace délky impulsu. Využití zpoždˇení hradel. Monostabilní KO, MKO-NR a MKO-R. Synchronní cˇ asovaˇce, využití cˇ ítaˇcu˚ . Detektory hrany. Impulsnˇešíˇrkový modulátor (PWM). 14. Sekvenˇcní obvody. Pˇrechodová a výstupní funkce, Mealyho a Mooreho automat. Synchronní a asynchronní sekvenˇcní obvody. Popis stavovým grafem, stavovou tabulkou, stavovými rovnicemi. Neurˇcené stavy a jejich projevy. Nastavení poˇcáteˇcního stavu - r˚uzné možnosti. Analýza sekv. obvodu (od schématu k tabulce cˇ i grafu). Návrh synch. sekv. obvod˚u - kódování stav˚u, výbˇer KO, návrh budících funkcí. ˇ 15. [95 %] Dynamické vlastnosti sekvenˇcních obvod˚u. Casování a max. kmitoˇcet hodinových impuls˚u, cˇ asování vstupních a výstupních signál˚u, pˇredstih a pˇresah pro celý systém. Možnost vzniku falešných výstupních impuls˚u. Vliv zpoždˇení v rozvodu CLK a nestability hran CLK (jitter). 16. Metastabilita a její projevy v sekvenˇcních obvodech. Vzorkovaˇce, jejich cˇ innost a spolehlivost, vliv soubˇeh˚u signál˚u. Pˇredávání dat mezi nesynchronními systémy (sféry synchronizace). Korespondenˇcní provoz (“handshake”) - princip a obvodové ˇrešení (pomalý zdroj dat, rychlý pˇríjemce). 17. Pipeline, vlastnosti, zrychlení systému, vedení signál˚u pˇres registry. 18. Pamˇeti. Paralelní a sériový pˇrístup. Pamˇet’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické (DRAM, SDRAM), ovládání, obnovování obsahu, typické pr˚ubˇehy cykl˚u, práce po stránkách, latence. Pamˇeti ROM, (EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Pamˇeti FLASH „NOR“ a „NAND“. Speciální typy pamˇetí - FIFO, dvojbránová. Arbitrážní obvody u DPM. 19. [0 %] Programovatelné logické obvody. Principy realizace programovatelných spoj˚u. SPLD- matice AND, makrobuˇnky. Cesty signál˚u pˇri realizaci kombinaˇcních a sekvenˇcních systém˚u. 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ˇejší rušení, cesty pro vstup rušivých signál˚u, jejich omezení. Optrony, diferenˇcní pˇrenos. 21. Vnitˇrní rušení - rozvod napájení, pˇreslechy, sbˇernice, 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 Císlicové signály a soucástky ˇ Císlicové signály a souˇcástky. Logické cˇ leny, obecné vlastnosti. Charakteristiky, napˇet’ové úrovnˇe.
ˇ 2.1.1 Úrovenˇ integrace soucástek Pro pˇredstavu, co znamenají r˚uzné úrovnˇe integrace: Název Malá integrace Stˇrední integrace Vysoká integrace Velmi vysoká integrace Ultra vysoká integrace
Oznaˇcení (en) SSI MSI LSI VLSI ULSI
Poˇcet tranzistoru˚ 1 - 10 10 - 500 500 - 20k 20k - 1M 1M a více
Poˇcet log. cˇ lenu˚ 1 - 12 13 - 99 100 - 9,999 10k - 99,999 100k a více
Zdroj
2.1.2 Rozhodovací úrovneˇ 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 cˇ ásti o BiCMOS Pozn.: všechny vstupy by se mˇely vždy “ošetˇrit”, aby nikde nevznikl nežádoucí stav 1 Rozhodovací
úroveˇn Low-power Schottky (TTL) 3 High-speed CMOS Wiki: HC logic 4 CMOS technologie se vstupní úrovní TTL kv˚ uli kompatibilitˇe CMOS s TTL Wiki: CMOS-TTL 5 Complementary metal–oxide–semiconductor 2 Advanced
7
CESR, Release
ˇ 2.1.3 Spojení více log. clen u˚ Pˇri spojování více log. cˇ len˚u je d˚uležité dodržet správné vstupní a výstupní napˇetí. Jak je vidˇet na obrázku, výstupní napˇetí pˇredcházející 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ˇcení je zde:
<min/max>, I - input, O - output, H - high (log. 1), L - low (log. 0)
2.1.4 Pˇrevodní charakteristika Jednoduše: závislost U nˇejaký opakovaˇc).
8
out
na U in . Následující obrázek ukazuje pˇrevodní charakteristiku neinvertujícího cˇ lenu (ˇcili
Chapter 2. Otázky
CESR, Release
Pro cˇ len s hysterezí bude vypadat pˇrevodní charakteristika následovnˇe:
A na to se váže odstavec o rozkmitání. Rozkmitání Tˇesnˇe kolem U ref se chová cˇ len jako zesilovaˇc. Pomalý pˇrebˇeh napˇetí m˚uže cˇ len rozkmitat (cca 10 ns pˇrebˇeh). Pokud nelze zaruˇcit dost rychlé signály, tak je potˇreba pˇridat/použít cˇ len s hysterezí. Hystereze je hezky vidˇet 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 cˇ len pˇreklopí až za U ref . Vzdálenost mezi U ref a 1 nebo 0 bude vždy 1/2 · ∆U .
ˇ ˇ 2.1. Císlicové signály a soucástky
9
CESR, Release
2.1.5 Dynamické vlastnosti hradel ˇ t pHL udává: pokud se t pHL a t pLH udávají zpoždˇení signálu pˇri pˇrepnutí z jednoho logického stavu do druhého. Cili zmˇení vstup z H -> L, jak dlouho potrvá, než se ustálí hodnota na výstupu. Mˇeˇrí se vždy v hodnotˇe 50% Vcc. Pro pˇredstavu všech cˇ as˚u, které jsou pro dynamické vlastnosti d˚uležité, viz následující obrázek:
Max. frekvence fmax =
1 tr +tf
, kde t r je doba nábˇehu (rise) a t f doba “spadnutí” (fall). Urˇcuje se mezi 10% a 90% úrovnˇe signálu.
ˇ 2.1.6 Zatížení soucástek CMOS CMOS je v souˇcasné dobˇe nejpoužívanˇejší technologie, tady se zatížení projevuje jako kapacitní zátˇež. Ta ovlivˇnuje dynamické vlastnosti, hlavnˇe cˇ asy t pHL a t pLH , a to samozˇrejmˇe negativnˇe. To znamená, že na výstup jednoho cˇ lenu nem˚užeme napojit libovolné množství dalších, protože každý k celkové kapacitˇe pˇridá svou trošku + kapacita vodiˇcu˚ , a to ve výsledku znaˇcnˇe ovlivní doby pˇrebˇeh˚u. To se musí vejít do nˇejakého požadavku na rychlost systému.
10
Chapter 2. Otázky
CESR, Release
Pozn.: výstupní rozvˇetvení je poˇcet vstup˚u cˇ íslicových souˇcástek na výstup jedné dané souˇcástky. Pozn.: nestandardní zátˇež jsou LEDky, rezistory, atd. Standardní jsou další logické cˇ leny.
2.1.7 Bipolární technologie Zatížení Nelze zanedbat vstupní proud souˇcástek, což vytváˇrí úbytek napˇetí a to vede ke zhoršení napˇet’ových úrovní. Na vinnˇe jsou výstupní obvody bipolárních cˇ len˚u.
Na levém obrázku: na výstupu cˇ lenu je 1 (U OH ) a nˇejaká zátˇež (at’ už standardní nebo ne), odebírá proud I OH . Jak je vidˇet, cˇ ím více proudu zátˇež odebírá, tím klesá výstupní napˇetí tohoto cˇ lenu. A samozˇrejmˇe, pokud klesne napˇetí pod U OHmin , není splnˇené pravidlo pro napˇet’ové hladiny. Pozn.: Pro nestandardní zátˇež je tyto charakteristiky nutné znát. Jakmile se na výstup navˇesí nestandardní zátˇež, už by se signál nemˇel nikam dále zavádˇet. 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. Císlicové signály a soucástky
11
CESR, Release
ˇ Odberová charakteristika Tenhle graf ukazuje závislost odebíraného proudu na vstupním napˇetí log. cˇ lenu. Jak je vidˇet, kolem U ref se zvedá odbˇer, protože jsou na chvilku otevˇrené “oba tranzistory” (invertor, jinak jich tam bude víc). Samozˇrejmˇe, že cˇ ím déle bude trvat pˇrechod mezi stavy 1/0, tím vˇetší bude tento odbˇer. Spotˇreba se snižuje v pˇrípadˇe technologií TTL-LS (Low-power Schottky) a TTL-ALS (Advanced Low-power Schottky).
2.2 Technologie CMOS, BiCMOS Technologie CMOS, BiCMOS. Pˇríkon, statické a dynamické parametry, vliv zátˇeže (rozvˇetvení), nevyužité vstupy, ochrana vstup˚u, hystereze. Vlivy parazitních kapacit. Sluˇcitelnost r˚uzných technologií.
2.2.1 Vnitˇrní zapojení Negace
12
Chapter 2. Otázky
CESR, Release
Funguje to tak, že 1 na vstupu otevˇre tranzistor N a celé vstupní napˇetí jde do zemˇe. Tranzistor P je zavˇrený, takže se Ucc nemá jak dostat na výstup a Y bude 0. A opaˇcnˇe: pokud je A = 0, pak se otevˇre horní tr. P a napˇetí Ucc se objeví na výstupu. Souˇcasnˇe tranzistor N bude zavˇrený, takže Ucc nem˚uže jít dol˚u na zem, m˚uže se objevit jedinˇe na Y. Tento a další logické obvody poskládané z jednotlivých souˇcástek najdete v dokumentu CMOS logické cˇ leny. Nˇekteré z tˇechto zapojení se mohou objevit u zkoušky, proto doporuˇcuji projít i tohle.
2.2.2 Vstupní obvody Na vstupu CMOS souˇcástek bude vždy nˇeco jako je na obrázku:
Protože mají MOS tranzistory vysoký vstupní odpor (109 Ω), m˚uže i malý náboj prorazit oxid pod hradlem. Funguje to zhruba takto: • Pokud pˇrijde na vstup záporné napˇetí (co to tam má co dˇelat, že?), tak jde pˇres diodu na zem. Jenže dioda má sv˚uj vlastní úbytek, takže z napˇr. -10 V se -9.3 V protlaˇcí na zem a z˚ustane -0.7 V. • Pokud pˇrijde kladné napˇetí vˇetší než Ucc, bude procházet pˇres horní diodu. Takže když pˇrijde 10 V, tak 0.7 V z˚ustane na diodˇe a promítne se dál, a zbytek se protlaˇcí do zdroje. Tzn. na výstupu z˚ustane 5.7 V. • A pokud je signál v rozmezí 0 - Ucc, tak 0 V žádnou diodu neotevˇre, na výstupu je 0, všechno OK. Pokud pˇrijde 5 V jako log. 1, tak rozdíl na diodˇe bude 0 V, neotevˇre se, a tˇech 5 V zase v klidu projde dál.
2.2.3 Parazitní kapacita Stejnˇe jako u TTL, bˇehem pˇrechodu z jednoho log. stavu do druhého, jsou na krátký okamžik propustné obˇe vˇetve tranzistor˚u. To vytvoˇrí vyšší odbˇer proudu ze zdroje.
2.2. Technologie CMOS, BiCMOS
13
CESR, Release
ˇ Výpocet Symbol Cp ∆U f Qp Icc ∆t
Význam parazitní kapacita napˇet’ový skok (budeme pˇredpokládat Ucc) frekvence pˇrepínání 1/0 náboj, který je potˇreba k nabití parazitní kapacity proud, který parazitní kapacitu nabíjí cˇ as, po který se parazitní kapacita nabíjí (doba pˇrechodu 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ˇrepíšeme: Icc = Cp · ∆U · f A už vidíme, že cˇ ím vˇetší parazitní kapacita, cˇ ím vˇetší napˇet’ový skok a cˇ ím vˇetší pracovní frekvence, tím vˇetší odbˇer proudu ze zdroje. Pro ztracený výkon jednoduše: 2 ·f Ucc · Icc = Cp · Ucc
Jelikož je Ucc konstantní, dá se rˇíct, že pˇríkon CMOS cˇ len˚u roste lineárnˇe s pracovní frekvencí. Z toho vztahu taky vidíme, proˇc se stále snižuje napájecí napˇetí všech zaˇrízení. A pro porovnání TTL a CMOS:
2.2.4 Rozdíly oproti TTL • Rozdíl v chování nevyužitých vstup˚u
14
Chapter 2. Otázky
CESR, Release
• CMOS nepotˇrebuje proud pro ˇrízení tranzistor˚u - nižší spotˇreba • CMOS jsou náchylnˇejší na zniˇcení statickým nábojem
2.2.5 Kompatibilita Pozn.: V poznámce u napˇet’ových úrovní je zmínka o kompatibilitˇe 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ˇelané výstupní obvody. Logicky unipolární technologie je pak použitá na vstupní obvody a stˇrední bloky, tedy na realizaci logické funkce. BiCMOS se hodí na sbˇernice, kde se nachází vysoká kapacitní zátˇež. Nevyužité vstupy TTL
Jako kdyby tam ten vstup nebyl. Neteˇce jím žádný proud. To ovšem znamená, že jsou obvody náchylné k rušení. Jak to ˇrešit: • Nechat vstup volnˇe 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ˇripojit na zem • Pro AND/NAND lze vstup pˇripojit pˇres odpor na Ucc
CMOS a BiCMOS
Zde se nevyužitý vstup nesmí nechat nezapojený. Kv˚uli vysoké impedanci by staˇcil malý proud a na nevyužitém vstupu by se objevilo pomˇernˇe vysoké napˇetí. Pokud by toto napˇetí mˇelo úroveˇn nˇekde kolem referenˇcní úrovnˇe, zvýšilo by to podstatnˇe i napájecí proud. ˇ Rešení v tomto pˇrípadˇe je stejné jako u TTL, akorát odpadá nutnost pˇridat odpor, protože vstupní proud CMOS je stejnˇe nula.
2.2. Technologie CMOS, BiCMOS
15
CESR, Release
2.3 Dynamická logika Dynamická logika. Princip, zapojení, cˇ innost, vlastnosti.
ˇ ˇ 2.4 Cleny s otevˇreným kolektorem a tˇrístavové cleny ˇ Cleny s otevˇreným kolektorem a tˇrístavové cˇ leny. Sbˇernice, budiˇce sbˇernice, terminátory pasivní a aktivní. Vliv délky ˇ spoj˚u. Rízení pˇrístupu na sbˇernici.
2.4.1 Otevˇrený kolektor O co jde Jde o cˇ leny, které namísto výstupu o urˇcitém napˇetí (nebo proudu), jsou pˇrivedeny na bázi NPN tranzistoru (nebo na gate MOSFETu, pak se to nazývá open drain). Emitor tranzistoru je pˇripojen na zem. Ještˇe se k tomu pˇridává pull-up resistor (ve skriptech vnˇejší rezistor 6 )
Jak to funguje Když je tranzistor sepnutý, napˇetí jde pˇres pull-up resistor a pˇres tranzistor do zemˇe. Tzn. vstup 1 vytvoˇrí výstup 0. A vstup 0 tranzistor nesepne, tzn. celé napˇetí Ucc bude na výstupu jako log. 1. Z toho vyplývá, že tohle zapojení funguje jako obyˇcejná negace. 6
16
Fun fact: “pull up resistor” v googlu -> 1.79e6 výsledk˚u, “vnˇejší rezistor” -> 180e3 výsledk˚u
Chapter 2. Otázky
CESR, Release
A když jich spojíme víc na jednu sbˇernici, tak není problém. Pokud budou tranzistory všech vstupních cˇ len˚u nesepnuté, bude na všech výstupech tedy log. 1, tak stále bude na sbˇernici jenom jedno Ucc, nic se nesˇcítá. Když budou na výstupech log. 0 (tranzistory sepnuté), tak stále jen jedno Ucc jde do jedné zemˇe. To znamená, že jich m˚užeme spojit jakékoliv množství. Když se signál˚u dostane na sbˇernici více, jediné, co se stane, je, že se signály zkreslí, ale nic se nezniˇcí. ˇ K cemu se to hodí • Ty tranzistory na výstupu nˇekdy vydrží vˇetší napˇetí/proud než samotný IC, takže kde je napˇetí nad 5V, lze to využít na spínání. • Interrupty na sbˇernici (jedna sbˇernice, potˇrebujeme pˇrerušit procesor, tak je jedno odkud to pˇrijde, prostˇe tam jeden cˇ len nahodí signál a ostatním je to jedno) • Podobnˇe jako interrupty, taky resety, resp. všude, kde nastane nˇejaká událost a je potˇreba nˇejakému procesoru ˇríct, že k ní došlo
ˇ 2.4.2 Tˇrístavové cleny Takže kromˇe stav˚u 1/0 tu máme ještˇe stav vysoké impedance (znaˇcení Z).
ˇ ˇ 2.4. Cleny s otevˇreným kolektorem a tˇrístavové cleny
17
CESR, Release
Pozn.: CS - chip select Pokud je CS = 1, tak W = 0 a Y = 1. 0 zavˇre tr. N, 1 zavˇre 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˚uže být bud’ 0 nebo 1. Celkem tedy 3 stavy. Kromˇe toho tu pˇribudou další dynamické parametry. Pokud je totiž CS = 0, tak cesta signálu je jasná, staˇcí 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 cemu je to dobré ˇ sbernice ˇ Budice
Pozn.: anglicky bus driver Tˇrístavové cˇ leny používají pro pˇripojení r˚uzných obvod˚u na sbˇernice. V jednom okamžiku m˚uže být pˇripojen pouze jeden takový cˇ len. Ostatní musí být zablokované. Pokud by se na sbˇernici odblokovaly dva a oba v opaˇcných stavech, tekl by tam velký proud (100+ mA) a došlo by pravdˇepodobnˇe na kouˇrové signály. td;dr - m˚užeme si vybírat zdroj signálu
ˇ 2.4.3 Sbernice Dlouhé vedení Za dlouhé vedení se považuje i 10 cm. Všechno je tam rušeno, nˇekteré signály pomalu pˇrechází kolem U r a k tomu všemu se objeví nˇejaký ten pˇrekmit a proto mají ty cˇ leny, kam signály putují, hysterezní charku. Abychom zamezili odraz˚um na vedení (to si urˇcitˇe všichni pamatujeme, co je), bylo by potˇreba vedení zakonˇcit odporem, stejnˇe velkým jako je charakteristická impedance vedení (Z 0 ). Na DPS je to blízko 100 Ω. Nˇekdy se používají jenom odpory, nˇekdy 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ˇernice zaˇcíná a kde konˇcí. ˇ ˇ Obousmerné budice
Pozn.: DIR - direction Klasicky CS pˇripojuje/odpojuje cˇ len na sbˇernici a DIR ˇrídí ještˇe smˇer signálu. Hodnˇe se to používá u pamˇetí (ˇctení/zápis) a taky u programovatelných logických obv. PLD a FPGA.
2.4.4 Terminátory Pasivní Pasivní terminátor - pasivní souˇcástky.
ˇ ˇ 2.4. Cleny s otevˇreným kolektorem a tˇrístavové cleny
19
CESR, Release
• Ve stavu log. 1 je výstupní proud budiˇcu˚ velký, v log. 0 nulový • Velká spotˇreba proudu ze zdroje Ucc
• Menší spotˇreba než u pˇredchozího terminátoru, ale poˇrád dost vysoká • R1 ||R2 = R0 = Z0 , pro Z0 = 100 Ω je vhodné R1 = 180 Ω, R2 = 220 Ω, takže paralelnˇe 99Ω. • Pomˇer R1 /R2 se volí tak, aby po odpojení všech budiˇcu˚ bylo napˇetí na sbˇernici v pásmu U H . Pro hodnoty výše a Ucc = 5 V to je 2.75 V.
• R1 a R2 jsou velké, kv˚uli nižšímu odbˇeru proudu z Ucc • Impedanˇcní zakonˇcení je starost R0 • R1 a R2 udržují požadované napˇetí na sbˇernici, pokud není žádný budiˇc pˇripojen • C blokuje stˇrídavé signály ˇ • Casová konstanta R0 C se volí 4x zpoždˇení signál˚u 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ˇcnˇe. Pokud se uvolní cesta pˇres sbˇernici nˇekam dál, tak proud teˇce tudy, takže v bodˇe A bude 0. Tím se celý BKO pˇreklopí a už tak z˚ustane. 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ˇernici z˚ustává poslední stav pˇred odpojením všech budiˇcu˚ .
ˇ obvody 2.5 Kombinacní Kombinaˇcní obvody. Pravidla pro práci s logickými výrazy. Pravdivostní tabulka. Mintermy a implikanty. Neurˇcené stavy. Minimalizace logických funkcí, skupinová minimalizace, tabulka implikant˚u. Mapy a jejich použití. Pozn.: Tahák na Booleovu algebru
2.5.1 Pár pojmu˚ • Souˇctová (disjunktní) forma - logická funkce vyjádˇrená jako souˇcet minterm˚u • Souˇcinová (konjunktní) forma - logická funkce vyjádˇrená jako souˇcin maxterm˚u • Mintermy - elementární funkce (souˇcin promˇenných) z úplného tvaru • Maxtermy - elementární funkce (souˇcet promˇenných) z úplného tvaru • Koncová forma - po zjednodušení z úplného tvaru • Implikant - elementární funkce z koneˇcného tvaru • Minimální forma - ještˇe vyhodíme nˇekteré implikanty Pˇrí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
ˇ obvody 2.5. Kombinacní
21
CESR, Release
Takže napˇr. abc je minterm. Celá funkce y je ve formˇe, která se nazývá úplná souˇctová (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ˇe, která se nazývá úplná souˇcinová (konjunktní) normální forma (ÚKNF).
ˇ 2.5.2 Neurcené stavy Jsou stavy, které nem˚užou nastat. Svˇetlo bud’ svítí, nebo nesvítí a zároveˇn jeho spínaˇc je on/off. Takže jsou jisté stavy, které nem˚užou nastat. A pokud nastanou, tak je nˇeco špatnˇe. V pravdivostní tabulce se pak oznaˇcují “-” (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é cˇ leny už nejsou mintermy/maxtermy, ale implikanty. Tabulka implikantu˚ 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ˇeco, co tam mˇelo z˚ustat. Když tady ale vyhodíme ˇrádek s implikantem bc, budou všechny mintermy poˇrád pokryté: Implikanty ac ab
Mintermy abc abc Ano Ano
abc
abc
Ano
Ano
Takže výbornˇe, zbavili jsme se dalších cˇ len˚u a obvod se tím zjednoduší. Tímto jsme dostali formu, které ˇríkáme minimální disjunktní forma (MDNF). Btw, nˇekdy m˚uže být tˇechto forem víc, záleží, co vypustíme a co zbude. Skupinová minimalizace To se dˇelá tak, že se jednotlivé funkce (samozˇrejmˇe jich tu je víc) zjednodušují zvlášt’ a pak se napíše tabulka všech implikant˚u, tj. ze všech funkcí. No a stane se, že nˇekteré funkce mají spoleˇcné implikanty, takže lze pak využít obvod pro jeden implikant pro více funkcí. Obˇcas kv˚uli tomu nesmíme zjednodušovat moc, ale to je pˇrípad od pˇrí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ˇríme mapu:
Pozn.: Modrá oblast se s cˇ ervenou pˇrekrývají, proto je cˇ ást fialová. Super barviˇcky, co? Získáme rovnici: y = bd + cd + abd
A jak se to vytvoˇrí: ˇ 1. Cervená oblast: (a) Pokrývá a celou oblast? Ne, jen cˇ ásteˇcnˇe, takže a tam nebude
ˇ obvody 2.5. Kombinacní
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 cˇ ástí, takže nic (b) c ji pokrývá celou, takže bude c (c) d ji nepokrývá v˚ubec, 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ˇruje jen jednu ˇrádku v pravdivostní tabulce, kde je 1. Ne víc, ne míˇn. • Tˇemi pruhy kolem mapy musíme samozˇrejmˇe pokrýt všechny možnosti tabulky, takže se nesmí pˇrekrývat celé, vždy jen cˇ ástí. To znamená, že v mapˇe musí být bod, ve kterém se “sejdou všechny pruhy” a bod, ve kterém nebude ani jeden. • Oblasti, které v mapˇe vybíráme, musí mít velikost mocniny 2. Nelze vybrat tˇreba 3 jedniˇcky v ˇradˇe. • Oblasti m˚užeme vybírat i za hranicemi mapy, tj. že ta oblast pˇreteˇce na druhou stranu. Použití Tohle je sranda tak do 4 promˇenných, pak už se znaˇcnˇe zapotíte. Takže se to v praxi moc nehodí, protože takhle jednoduché obvody nejsou obvyklé.
ˇ 2.6 Návrh kombinacních obvodu˚ Návrh kombinaˇcních obvod˚u. Možnosti realizace - obvody malé integrace a multiplexory - rozklad funkce.
ˇ o rozkladu 2.6.1 Shannonova veta Vždycky rozkládáme podle nˇejaké promˇenné. Hodí se to k tomu, že z funkce udˇeláme dvˇe, 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ˇenná 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ˇenná, podle které jsme rozkládali, bude ˇrídit vstup multiplexoru.
ˇ ˇ 2.7 Realizace kombinacního obvodu pametí Realizace kombinaˇcního obvodu pamˇetí – konstrukce tabulky obsahu pamˇeti z výrazu. K cˇ emu: • Pˇrevodníky kód˚u • Tabulka hodnot funkcí (sin, cos, ...) - možné generování periodické funkce • U PLD
ˇ bloky 2.8 Základní funkcní ˇ Základní funkˇcní bloky. Casto používané kombinaˇcní obvody - dekodéry, multiplexory, komparátory, prioritní kodér a prioritní rˇetˇezec, sˇcítaˇcky a možnosti zrychlení cˇ innosti. U všech: popis log. výrazem, pˇrechodné dˇeje.
2.8.1 Dekodér
Vstup: binární kód Výstup: kód 1zN
1zN znamená, že jenom 1 z N výstup˚u bude aktivní. Pozice toho výstupu odpovídá kombinaci na vstupu. Takže N = 2k , kde k je poˇcet bit˚u na vstupu. N je pak poˇcet bit˚u 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ˇrístavový cˇ len tam bude mít stav Z (vysokoimpedanˇcní stav).
ˇ ˇ 2.7. Realizace kombinacního obvodu pametí
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˚u. Velmi cˇ asto se prý vybírají 3stavové cˇ leny, všechny na jedné sbˇernici. Vnitˇrní 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ˇrechodné deje Pokud se mˇení aspoˇn dva vstupy skoro souˇcasnˇe, tak se m˚uže vyskytnout falešný impulz. M˚uže se to obecnˇe stát na kterýchkoliv výstupech.
2.8.2 Multiplexor Vstup: binární kód (adresa) a N datových vstup˚u Výstup: vstup zvolený adresou
Kromˇe multiplexoru pro jednobitové vstupy existují i multiplexory skupinové (na obrázku).
Vnitˇrní zapojení
ˇ bloky 2.8. Základní funkcní
27
CESR, Release
Funguje to hodnˇe podobnˇe jako dekodér. Navíc se akorát jednotlivé výstupy ještˇe násobí se vstupy, resp. se tu násobí adresa a vstup. Tím se stane, že vlastnˇe zase bude aktivní jenom jeden výstup, takže ho m˚užeme s klidným svˇedomím seˇcíst s ostatními, protože ty aktivní nebudou. ˇ Pˇrechodné deje O tom se sice ve skriptech nepíše, ale vzhledem k podobnosti s dekodérem bych rˇekl, že když se bude mˇenit 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ˇrí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ˇrní zapojení
Tady v podstatˇe využíváme dekodéru na vybrání vstupu. 2-to-4 decoder je vlastnˇe to, cˇ emu se ve skriptech ˇríká 1zN. Je to jedno a to samé, i na wiki tomu ˇríkají obˇema zp˚usoby. ˇ Pˇrechodné deje Ve skriptech opˇet ticho. Tady to vypadá, že pˇri zmˇená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ˇej falešný impulz m˚uže nastat – tak pak m˚uže i tady.
2.8.4 Prioritní kodér Opak dekodéru.
ˇ bloky 2.8. Základní funkcní
29
CESR, Release
Vstup: kód 1zN Výstup: binární kód
Stejnˇe jako má dekodér aktivní vždy jen jeden výstup, tak i kodér potˇrebuje 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˚u více než 1, tak my potˇrebujeme z nich vybrat jen jeden – stejnˇe jako kdyby na vstupu byl aktivní pouze 1. A to udˇeláme tak, že tˇem vstup˚um pˇriˇradí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ˇrní zapojení
Jak to funguje: pokud je x7 = 1, tak pˇres negaci se deaktivuje AND vedoucí k dalšímu bloku, takže priorita je na prvním vstupu. Zároveˇn ta log. 1 otevˇre ten druhý AND (víc vlevo) a tím na horní 3s cˇ len pˇrivede +U H . Ten se tudíž otevˇre a na sbˇernici propluje binární kód. Pokud x7 = 1, tak v druhém cˇ lenu ˇretˇezce už +U H nebude. Namísto toho bude P = 0. Tzn. i když by náhodou x6 bylo taky 1, tak už se 3s cˇ len nem˚uže otevˇrít, protože +U H mu ukradl první blok ˇretˇezce. Když ale bude x7 = 0, tak první P bude +U H , takže si prioritu m˚uže ukrást nˇejaký jiný blok. Centralizovaný kodér Až do ted’ to byl kodér s prioritním rˇetˇezcem. Centralizovaný kodér vznikne z pravdivostní tabulky. Prostˇe si jenom napíšete log. funkce z té tabulky výše a podle toho se centralizovaný kodér sestaví z blok˚u AND/OR/NOT. ˇ Pˇrechodné deje Tak jediné, co se tu m˚uže mˇenit, jsou vstupy x. Když se bude mˇenit jenom jeden, tak asi OK, ale když se budou mˇenit dva a víc? Imho je to taky v pohodˇe. Možná by se mohlo stát, že když x7 p˚ujde do 1 a pˇredtím byl x6 taky 1, tak než P za x7 padne do 0, tak už bude na sbˇernici tlaˇcit 111. Možná by to ještˇe vadilo, tˇreba když by šel x7 do 1 a P by proplouvalo až tˇreba do posledního bloku. To by mohlo trvat dlouho, takže by možná vznikl impulz na jednom bitu sbˇernice. No pokud to nˇekdo 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í cˇ íslo
ˇ bloky 2.8. Základní funkcní
31
CESR, Release
b - druhé vstupní cˇ íslo
Takže ta rovnice ˇríká: porovnáme první bit a s prvním bitem b, pokud jsou stejné -> 1, pokud ne -> 0. A pak všechny tyhle cˇ á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ˇet, že nˇekteré komparatory mají i porovnávací funkce >, <.
ˇ cka ˇ 2.8.6 Scíta Aritmetická sˇcítaˇcka - abychom nemuseli poˇcí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ˇrenos z pˇredchozí sˇcítaˇcky c out - pˇrenos pro další sˇcítaˇcku
Jak to funguje: úplnˇe jednoduše se použije aritmetický souˇcet. 0 + 0 = 0, 0 + 1 = 1, 1 + 1 = 2. Pokud je ovšem výsledek vˇetší než 1, tak už se to samozˇrejmˇe nevejde do jednoho bitu, takže informace o tom, že výsledek pˇretekl rozsah se zapíše na c out . Následující sˇcítaˇcka už bude tudíž vˇedˇet, že je o ˇrád výše.
32
Chapter 2. Otázky
CESR, Release
Pro více bit˚u se samozˇrejmˇe dají sˇcítaˇcky ˇretˇezit:
Tady je problém s tím, že pˇrenosy se s každým blokem zpožd’ují. ˇ Rešení je:
ˇ bloky 2.8. Základní funkcní
33
CESR, Release
Tohle se nazývá sˇcítaˇcka se zrychlením pˇrenos˚u. Prostˇe se pˇrenosy c generují souˇcasnˇe pro všechny bloky. Je to rychlejší, ale taky složitˇejší na zapojení.
ˇ cka ˇ 2.8.7 Odcíta Ta funguje tak, že se k jednomu cˇ íslu pˇriˇcítá to druhé s otoˇceným znaménkem. To se v binární soustavˇe ˇreší dvojkovým ˇ doplnkem. To se znegují všechny bity a pak se pˇriˇcte 1.
P /M mˇení funkci mezi sˇcítáním (0) a odˇcítáním (1). Ta 1 totiž jde c in , což, jak je napsáno výše, pˇriˇcte jedniˇcku kv˚uli dvojkovému doplˇnku. Zároveˇn se všechny bity vstupního cˇ ísla B protáhnout XORem, což je zneguje (tj. že XOR vlastnˇe funguje jako ˇrízená negace).
34
Chapter 2. Otázky
CESR, Release
2.8.8 Pˇrevodník kódu Je to obecnˇe obvod, který pˇrevádí jeden kód na druhý. Do této skupiny m˚užeme zaˇradit dekodér a možná i prioritní kodér. Pro LED segmenty se tˇreba používá kód BCD (binary-coded decimal). U tohoto pˇrevodníku nehrají hazardy roli, yay! Prý je to vzácný pˇrípad.
ˇ v kombinacních ˇ 2.9 Pˇrechodné deje obvodech Pˇrechodné dˇeje v kombinaˇcních obvodech. Zpoždˇení a hazardy. Vznik hazardu a jeho prognóza - z výrazu, z mapy a z obvodu. Vliv úprav výraz˚u. Projevy hazard˚u v cˇ íslicových systémech, metody odstranˇení. Zmˇeny dvou a více promˇenných. Dynamický hazard. Gray˚uv kód a jeho význam. Soubˇehy signál˚u – vznik, význam.
2.9.1 Hazardy O co jde Nˇekdy se - pˇri zmˇenˇe vstupu - na výstupu obvodu objeví impulz, který by se tam objevit nemˇel. Nelze se spolehnout, že nˇekde budou nebo nebudou. Symboly
a ˜ ... a m˚uže být 1/0 bez vlivu na výstup a l ... a se mˇení mezi 1/0 a ↑ ... a se zmˇení 1 -> 0 a ↓ ... a se zmˇení 0 -> 1
cd znamená: a = 1, b = 0, c = se mˇení mezi 1/0 (ale je to jedno), d = 1 ab˜ ˇ Maximální zpoždení
Máme: tpLH = 5ns a tpHL = 3ns. b = 0, c = 0/1, d = 1 a mˇení se a. Když jde a z 0 -> 1: 1. d = 1, a jde do 1, takže cˇ len 2 (AND) jde taky do 1, zapoˇcítáme tpLH 2. f šlo do 1, b = 0, takže g p˚ujde taky do 1, zapoˇcítáme další tpLH ˇ v kombinacních ˇ 2.9. Pˇrechodné deje obvodech
35
CESR, Release
3. e bude vždycky 1, protože b = 0, takže cˇ len 4 (NAND) p˚ujde do 0 (na obou vstupech je 1), a tudíž zapoˇcí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ˇení. To se pak hodí pˇri návrhu.
2.9.2 AND, OR
ˇ Co se tu stalo: signál b pˇrišel o chvíli déle než signál a. Cekali bychom, že to p˚ujde následovnˇe: 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ˇcin taky 1. Tím vznikne falešný impulz. To samé se pak dˇeje u OR-u.
2.9.3 Výrazy Booleova algebra funguje jen v ustáleném stavu. Resp. by se dalo ˇríct, že platí poˇrád, ale pro každý okamžik musíme výstup poˇcítat znovu, jak je vidˇet na obrázku. Z obrázku vidíme, že a · a 6= 0 (vstupy mˇely být k sobˇe opaˇcné a tudíž mˇela být na výstupu 0, ale nebyla). Stejnˇe tak a + a 6= 1. I když použijeme nˇejaké pravidlo pro zjednodušení log. funkce, tak v pˇrechodném dˇeji nemusí platit tak docela, jako tˇreba ab + ab 6= a.
36
Chapter 2. Otázky
CESR, Release
Hazard je napˇr. vylouˇcený na 3 vstupém ANDu, kde jeden ze vstup˚u je 0. Logicky, když se proti sobˇe mˇení zbylé dva, tak výstup bude poˇrád 0. Ale k cˇ emu to je, he? No když tohle víme, m˚užeme cˇ len blokovat jenom v dobˇe, kdy se na nˇem nˇejaké vstupy mˇení.
Takže co se tady dˇeje: výstupy z cˇ len˚u 2 a 3 jdou proti sobˇe. Na cˇ lenu 1 je 0, takže ten nic neblokuje, a proto m˚už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ˇcekávané 1. Na pravém obrázku jsme pˇridali další cˇ len. Ten má na výstupu poˇrád 1, takže i y musí být poˇrád 1. I když se cˇ leny 2 a 3 sejdou v 0, cˇ 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ˇrípadˇe dojde k hazardu, musíme ji rozložit podle promˇenné, která se bude mˇenit, podle Shannona. Po rozložení nám vyjde nˇeco 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ˇrešit, pak hazard nastane. Pokud nejde vyˇreš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ˇenit 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 ˇ Rešení: 1. a = 0, c = 1 2. a = 0, d = 0
ˇ v kombinacních ˇ 2.9. Pˇrechodné deje obvodech
37
CESR, Release
Pokud by se stalo, že nenajdeme takovou kombinaci promˇenných, aby dohromady daly 1, tak to znamená, že rˇešení neexistuje a hazard nenastane. Tady jsme ale ˇrešení našli, takže hazard vznikat bude. A to dokonce ve dvou pˇrípadech: ˜bl 1. acd, 2. a˜ cd, b l Vysvˇetlení (pro 1. ˇrešení): • a = 0, takže dáme negaci • b jsme použili pro rozložení, takže se mˇení • c = 1, takže bez negace • d tu není v˚ubec, takže s vlnovkou, protože se m˚uže mˇenit jak chce, stejnˇe se neprojeví Tuto metodu lze použít jen pro jednu mˇenící se promˇennou. Jakmile se mˇení dvˇe a více, existuje mnohem více kombinací, jak se mohou vzájemnˇe mˇenit a je proto lepší použít jiné metody na odstranˇení hazard˚u. Vliv úprav na hazardy Máme dva typy úprav: • Hazard mˇenící – spojování minterm˚u • Hazard nemˇenící – vytýkání pˇred závorky, roznásobení závorek, DeMorgan Takže když si navrhneme obvod a zjistíme, že v nˇem jsou hazardy a pak použijeme hazard mˇenící úpravu, všechno je v tahu a musíme se po hazardech podívat znovu. Pak se dokonce m˚uže stát, že se hazard˚u zbavíme úplnˇe.
2.9.4 Mapy Takže jak víme, jedna oblast v mapˇe, je jeden jeden implikant. Na obrázku vidíme pˇreskok mezi ac a ab. Pak tu máme cˇ árkovanˇe další oblast, která je nám pro zjednodušení k niˇcemu, byla by tam navíc. Ale pˇri zjišt’ování existence hazardu se nám hodí, pohybujeme se mezi dvˇema buˇnkami tabulky v rámci té nadbyteˇcné oblasti. A vidíme, že se tak mˇení promˇenná a. Takže když do výrazu zahrneme i tu nadbyteˇcnou smyˇcku, mˇel by se hazard eliminovat (za cenu složitˇejšího obvodu).
2.9.5 Grayuv ˚ kód Je to binární kód, kde dvˇe po sobˇe jdoucí hodnoty se liší pouze v jednom bitu. P˚uvodnˇe byl navržen pro eliminaci falešných impulz˚u, 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
Grayuv ˚ kód 000 001 011 010 110 111 101 100
Když si oznaˇcíme pozice u obou kód˚u: b2 b1 b0 (binární) a g2 g1 g0 (Gray˚uv), m˚užeme zapsat vztahy pro pˇrevod: Binární na Grayuv ˚ g2 = b2 (MSB) g1 = b2 ⊕ b1 g0 = b1 ⊕ b0 (LSB) ˇ pro n bit˚u obecnˇe: Cili • MSB z˚ustane stejný • Každá další pozice v Grayovˇe kódu je pˇredchozí pozice v binárním XOR stejná pozice v binárním (7 -> 7 a 6 -> 6 a 5 -> 5 a 4 -> atd...) Grayuv ˚ na binární b2 = g2 (MSB) b1 = g2 ⊕ g1 b0 = g2 ⊕ g1 ⊕ g0 (LSB)
A obecnˇe pro n bit˚u: • MSB z˚ustane • Každý další bit je XOR všech významnˇejších, vˇc. sebe sama. (7 -> 7 a 6 -> 7 a 6 a 5 -> 7 a 6 a 5 a 4 -> atd...)
ˇ hazardu˚ 2.9.6 Odstranení Filtr
ˇ v kombinacních ˇ 2.9. Pˇrechodné deje obvodech
39
CESR, Release
Jak je vidˇet, falešný impulz se sice zmenší, ale nezmizí úplnˇe (x -> y). Graf z ukazuje pr˚ubˇeh s vˇetší cˇ asovou konstantou RC. Tohle ˇrešení má nˇekolik problém˚u: • 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ˇe m˚užou projít dál Tj. tahle metoda ne-e. Registr
Jak tohle funguje: náš milý kombinaˇcní obvod plný nevyzpytatelných hazard˚u sype výstup do registru (Y). Ty se do registru zapíší signálem WR (write) a z˚ustanou tam až do dalšího WR. No a podle grafu je vidˇet, že když se zmˇení
40
Chapter 2. Otázky
CESR, Release
vstup kombinaˇcní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ˇri zmˇenˇe vstupu. Ale vstup se mˇení dál, až se koneˇcnˇe rozhodne, že už se mˇenit nebude, a v tu chvíli vypustíme signál WR a tu ustálenou hodnotu pošleme dál. M˚uže se zdát, že generování impulzu WR pˇrináší další složitosti do obvodu, tedy synchronizaci. Jenže tu v každém rozumném obvodu stejnˇe mít budeme, takže takhle je to dobˇre.
2.9.7 Dynamický hazard
Dynamický hazard vzniká kombinací mˇenících se vstup˚u a alespoˇn jednoho vstupu, kde se m˚uže objevit statický hazard (to je to, o cˇ em se tak dlouho mluvilo v téhle kapitole). Jak je vidˇet na grafu: vstup a se mˇení, vstup b mˇel být konstantní, ale v nˇejakém pˇredchozím obvodu nastal hazard, cˇ ímž se pokazil i výstup y. Opravit to lze celkem jednoduše: zbavíme se statického hazardu. Potom se v souˇcinu a a b nemá šanci nˇejaký další hazard projevit.
2.10 Klopné obvody Klopné obvody - chování (RS, D, T, JK), reakce na hodinový impuls (ˇrízení hranou, úrovní, Master-Slave), podmínky bezchybné funkce, metastabilita. Nastavení poˇcáteˇcního stavu - prostˇrednictvím vstup˚u R,S nebo multiplexoru. Blokování cˇ 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ˇrechod 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ˇrechod, 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ˇrechod z S’ = R’ = 0 do S’ = R’ = 1.
2.10. Klopné obvody
43
CESR, Release
2.10.2 D
D mˇení stav jenom se synchronizaˇcním/hodinovým impulzem CLK. • CLK = 0 - R a S jsou 0, takže stav Q z˚ustává stejný • CLK = 1 - na R bude D’ a na S bude D, takže ve výsledku na Q bude D ˇ Rí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ˇrenese vstup D se zpoždˇením tpDQ 3. Tady jsou zmˇeny zakázány. Tj. v intervalu [ts , th ]. 4. Tady už by mˇel být výstup konstantní
ts - setup time = doba pˇredstihu th - hold time = doba pˇresahu
Pokud tyto doby dodržíme, výstup se bude držet na nastavené hodnotˇe celý zbytek periody CLK. Pokud je nedodržíme, m˚uže vzniknout metastabiliní stav. ˇ Rízení hranou
1. CLK = 0, žádné zmˇeny 2. CLK = 1 a zároveˇn nábˇežná hrana D, takže se hodnota uloží (se zpoždˇením tpDQ ) 3. CLK = 1, ale už tu není žádná hrana, takže se nic nezmˇení Zase se tu musí dodržet doby ts a th , jinak zase m˚uže vzniknout metastabiliní stav.
2.10. Klopné obvody
45
CESR, Release
Poslední 3 ˇrádky tabulky, kdy se Q nemˇení - žádná nábˇežná hrana. “-” znamená, že se hodnota nemˇení. Proto se bude výstup mˇenit pouze u prvních 2 ˇrádk˚u, kdy jde CLK z 0 do 1. A vnitˇrní zapojení je tak složité, že to snad ani nemá cenu snažit se zapamatovat. To prostˇe nejde.
2.10.3 JK
J - jump - set K - kill - reset
Tady je to podobné jako s D. Poslední 3 ˇrádky CLK brání zápisu hodnoty. Hodnota se nezmˇení ani u prvního ˇrádku, protože je J = 0. Takže pak tu máme 2. ˇrádek, kdy se Q nastaví na 1, protože J (set) je 1. Opaˇcnˇe pro J = 0. A oˇcividnˇe J = K = 1 obrací/neguje uloženou hodnotu.
2.10.4 T T jako toggle. Asynchronní
Tohle se pˇrepíná každou nábˇežnou hranou na T. Krásnˇe se to dá využít v Minecraftu na otevírání dveˇrí, apod. Zmáˇcknu tlaˇcítko jednou - dveˇre se otevˇrou, zmáˇcknu ho podruhý - dveˇre se zavˇrou.
46
Chapter 2. Otázky
CESR, Release
Synchronní
Tady je to podobné, ale nábˇežná hrana musí být udˇelaná signálem CLK a zároveˇn musí být T = 1, jinak se obvod nepˇrepne.
2.10.5 Podmínky bezchybné funkce • Dodržení doby pˇredstihu a doby pˇresahu • 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 Rízení Master-Slave
Jak to funguje: 1. CLK = 1 - aktivuje se Master a deaktivuje se Slave 2. Tím se vlastnˇe 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ˇrepne do 0, Master drží hodnotu, kterou si uloží Slave To znamená, že se všechno stihne v jedné periodˇe CLK (no, jinak by to bylo celkem k niˇcemu).
2.10.7 Nastavení hodnot klopných obvodu˚
Na obrázku je vidˇet D, který má asynchronní vstupy R’ (reset) a S’ (set). Tj. napˇr. po pˇripojení napájení lze nastavit poˇcáteˇcní stav všech klopák˚u.
2.10.8 Blokování klopných obvodu˚ Jak se to nedˇelá: nepoužívá se jednoduchý AND jako on/off, protože kdo by ho ˇrí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ˇreklopit, a jsme zase u metastability. Takže jak se to dˇelá:
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ˇr do klopáku a až na výstup Y. Takže z toho už vyplývá, že na vyrobení stavu Y = 1 potˇrebujeme, aby byl EN = 1 a zároveˇn CLK v nábˇežné hranˇe. Ke konci grafu je vidˇet, ž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ˇe 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ˇe CLK. A to byl cíl, kterého bylo tˇreba dosáhnout. Pomocí multiplexoru
Tohle vypadá mnohem jednodušeji. Pˇri EN = 1 je všechno v pohodˇe, funguje standardnˇe jako každé jiné D. Ale když je EN = 0, tak Q = D, a tím vlastnˇe blokujeme KO. On funguje dál, ale žádná zmˇena vstupu se neprojeví. Signál EN nelze mˇenit v oblasti nábˇežné hrany CLK.
2.10. Klopné obvody
49
CESR, Release
2.10.9 Transformace KO Moc toho v téhle kapitole není. Tˇech 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 cˇ asování hod. impuls˚u. Nulování a pˇrednastavení u posuvných registr˚u. Posuvy o vˇetší poˇcet míst na obˇe strany. Lineární cˇ ítaˇce 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á ˇrádka odpovídá jednomu pulzu CLK. Zaˇcalo se se stavem 1011 a na vstupu pro další cyklus byla pˇripravená log. 1. Data na pravé stranˇe se ztrácí. Použití: • Pˇrevod sériových dat na paralelní - data se sází na SD a po pár cyklech si je m˚užeme vyzvednout z výstup˚u Q • Pˇrevod paralelních dat na sériová - registr nacpeme daty (rozhodnˇe nebudeme v první fázi nic cpát na SD) a potom zaˇcneme cykly posouvat data ven, takže na posledním Q už budou sériová. ˇ Casování
tpCQ ≥ th TCLK ≥ tpCQ + ts
52
Chapter 2. Otázky
CESR, Release
ˇ 2.11.3 Podmínky casování Jelikož se registr skládá z KO (hranou ˇrízený nebo úrovní), tak se cˇ asování ˇrídí pravidly pro cˇ asování KO. Rozdíly mezi hranou a úrovní Úrovní ˇrízený registr: • Je jednodušší • Uložení nebo pr˚uchod dat je možný po celou dobu (je transparentní), kdy WR = 1 (ne jen pˇri hranˇe) Hranou ˇrízený: • Vyžaduje stálý pˇrísun zápisových pulz˚u, takže nikdy není transparentní.
2.11.4 Nulování a pˇrednastavení Nˇekteré registry mají - stejnˇe jako KO - funkce set a reset. Akorát se tady tomu ˇríká preload. Pro pˇrednastavení je vˇetšinou potˇreba aktivovat vstup PE = 1 (preload enable), tím se pˇrepne multiplexor a namísto posouvání dat se všechny KO nastaví podle jejich vstup˚u D. Až je to nastaveno, tak se zase pˇrepne PE = 0 a data se zaˇcnou posouvat pomocí CLK. Pˇrednastavení je synchronní - používáme CLK, zatímco nulování je asynchronní - je nezávislé na CLK.
(Pro lepší pˇrehlednost jsem to vybarvil :o))
2.11. Registry
53
CESR, Release
2.11.5 Posun na obeˇ strany
Jak to funguje: Když je DIR = 1, tak je vstupe SDL a funguje to jako posuvný registr zmínˇený výše. Pokud je DIR = 0, tak se vlastnˇe propojí výstupy n-tého KO se vstupem toho pˇredchozího (vlevo). Takže pˇri CLK ten úplnˇe vpravo pošle data tomu pˇredposlednímu. Pˇredposlední je pošle tomu pˇred-pˇredposlednímu. Atd. až je druhý pošle prvnímu a první je pošle do p.. data se ztratí.
ˇ míst 2.11.6 Posun o jiný pocet Se dˇelá podobnˇe jako posun na obˇe strany. Akorát si pˇredstavte, že se nespojí jeden za druhým, ale tˇreba ob jeden. Takže potom se tˇreba z 5. KO posunou na 3. a z nˇej 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í: ˇ • Rídící impulzy • Tˇreba 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˚uv cˇ ítaˇc nebo Möbi˚uv. Vnikne tak, že vezmu poslední Q v negaci a to zapojím na vstup prvního KO. No, vypadá to spíš jako hraˇcka, ale generuje to Gray˚uv kód.
2.11. Registry
55
CESR, Release
ˇ cˇ 2.11.8 Lineární cíta
Ta krabiˇcka vlevo, to je XOR nˇekterých výstup˚u Q. Takže když budu mít 4 výstupy a vezmu Q2 a Q3, XOR na nˇe a co z toho vyleze, to p˚ujde na vstup, tak dostanu ˇradu: 0001 - 1000 - 0100 - 0010 - 1001 - 1100 - atd... Mrknˇete na wiki, tam je hezký obrázek. Využití to najde v šifrování, protože lineární cˇ ítaˇc generuje pseudonáhodný signál, i když periodický. Ale i funkce ve spoustˇe standardních knihoven programovacích jazyk˚u používají taky pseudonáhodné generátory. Ono to ve spoustˇe pˇrípad˚u staˇcí. Mimochodem poˇcáteˇcní stav se nazývá seed.
56
Chapter 2. Otázky
CESR, Release
ˇ ce ˇ 2.12 Cíta ˇ ce asynchronní a synchronní, binární a modulo, reverzivní. Casové ˇ ˇ ce Cítaˇ diagramy asynch. a synch. cˇ ítaˇce. Cítaˇ s pˇredvolbou (pˇrednastavením). Návrh cˇ ítaˇcu˚ v kódu bin., modulo, Gray. Blokování v koncovém stavu. Provedení ˇ ce s programovatelným modulem. reverzivních cˇ ítaˇcu˚ . Cítaˇ
2.12.1 Co to je • Každý cˇ ítaˇc má vnitˇrní stav • Tˇech stav˚u má urˇcitý koneˇcný poˇcet • Jakmile dosáhne posledního stavu, zaˇcne se vše opakovat • Žádné dva stavy se neopakují ˇ c má výstupy, kde to binární cˇ íslo cˇ asto odpovídá dekadickému (ale taky lze využít pro Gray˚uv kód) • Cítaˇ ˇ cˇ u˚ Druhy cíta • Inkrementující a dekrementující - bud’ poˇcítá nahoru nebo dol˚u • Reverzivní - umí obojí a lze to pˇrepínat • Binární - je ten, který má délku cyklu M = 2k , (k - poˇcet bit˚u), 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ˇredchozích kategorií • Asynchronní a synchronní
ˇ ce ˇ 2.12. Cíta
57
CESR, Release
ˇ cˇ 2.12.2 Asynchronní cíta
Jak to funguje: první impulz nastaví Q0 = 1, takže T1 = 0. Pak pˇrijde další impulz a nastaví Q0 = 0 a T1 = 1, takže Q1 = 1. Atd... Nevýhoda je zpoždˇení signálu, takže se to moc použít nikde nedá. Jediná výjimka je použití jako dˇeliˇc kmitoˇctu. Pro poˇcítání dol˚u:
58
Chapter 2. Otázky
CESR, Release
ˇ cˇ 2.12.3 Synchronní cíta Všechny KO se pˇreklápí souˇcasnˇe.
Pokud CLK impulzy splˇnují podmínky cˇ asování, pak na výstupu cˇ ítaˇce nebudou falešné impulzy. Jenže pokud za cˇ ítaˇc dáme další KO, m˚uže se stát, že výrobní odchylky na jednotlivých KO poruší podmínky cˇ asování a tím m˚užou zp˚usobit falešné impulzy na výstupu následujícího KO.
ˇ ce ˇ 2.12. Cíta
59
CESR, Release
ˇ ce ˇ Pˇríklad 4-bitového synchronního cíta
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 cˇ ítaˇce 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ˇeli postavit z KO typu T, tak na to musíme trochu jinak. T totiž pˇrepínají s každým impulzem, namísto posouvání hodnoty jako u D. A proto T musí mˇenit hodnotu tam, kde se mˇení starý stav na nový. Takže u 0000 -> 0001 se mˇení Q0 (LSB). Tzn. že budící funkce pro T musí být 0001 (T0 = 1). Napˇr. pro 1101 -> 1110 se mˇení 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ˇelá to, že se vytvoˇrí 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ˇrejmˇe využít i Karnaughovu mapu. A tady ty dva ANDy, to je pˇresnˇe to, co se v odstavci Synchronní cˇ ítaˇc oznaˇcuje jako krabiˇcka s nápisem Kombinaˇcní obvody. No a pokud bychom chtˇeli, aby cˇ ítal dol˚u, nebo aby cˇ ítal v Grayovˇe kódu, tak jenom na zaˇcátku napíšeme jinak tabulku pˇrechod˚u (tj. starý stav -> nový stav) a pak už postupujeme stejnˇe.
ˇ ce ˇ 2.12.4 Reverzivní cíta Dva zp˚usoby: 1. Vstup UP a DN (down), smˇer je ˇrešený pˇrivedením CLK na jiný vstup 2. CLK je poˇrád na jednom vstupu, ale druhý vstup ovládá smˇer cˇ ítání (DIR) 1/0
2.12.5 Nulování a pˇrednastavení ˇ ce ˇ Pro synchronní cíta Je stejné jako u pˇrednastavení posuvného registru.
ˇ ce ˇ 2.12. Cíta
61
CESR, Release
ˇ ce ˇ Pro asynchronní cíta Tady je to trochu složitˇejší.
DI - data in LD - load CLR - clear
Pokud chceme nastavit data: • DI budou data, co chceme nastavit • LD’ = 0 (aktivní - nezapomeˇnte na negaci) • CLR = 0 (neaktivní) • R’ a S’ se rˇ ídí podle DI – S’ = 0 (aktivní) je pˇri DI = 1 – R’ = 0 (aktivní) je pˇri 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ˇcí 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ˇcí jenom pˇridat negaci...
2.12.6 Pˇrenosy Asynchronní
Opˇet je problém se zpoždˇením, protože signál musí putovat po celé kaskádˇe. Synchronní
Takže jakmile jsou všechny Q v posledním stavu (1111), tak se ANDem vygeneruje signál CY (carry), nebo v pˇrípadˇe dekrementujícího cˇ ítaˇce BO (borrow). Ještˇe se to musí vynásobit signálem UP/DN, jinak by ten impulz vznikl o stav nebo p˚ul stavu dˇríve.
ˇ cˇ modulo M 2.12.7 Cíta Dva zp˚usoby: • Synchronní cˇ ítaˇc - už na zaˇcátku si navrhnu tabulku pˇrechod˚u, aby se cyklus zkrátil • Asynchronní cˇ ítaˇc - ve stavu, kdy chci skonˇcit, kombinaˇcním obvodem vynásobím/seˇctu ten stav a tím výsledkem vyresetuju všechny KO
ˇ ce ˇ 2.12. Cíta
63
CESR, Release
2.12.8 Programovatelné modulo
Funguje to tak, že se na zaˇcátku nastaví dˇelící pomˇer (M) na vstup DI (data in), tím se cˇ ítaˇc pˇrednastaví. Potom si vesele cˇ ítá dál a až pˇreteˇce, tak se vygeneruje BO, který spustí LD (load) a znovu se naˇcte poˇcáteˇcní stav. Pokud zmˇeníme dˇelící pomˇer M, tak se to projeví po dalším pˇreteˇcení. Úprava impulzu tu znamená, že se zajišt’uje správné cˇ asování. Protože u synchronního cˇ ítaˇce se musí LD ukonˇcit aspoˇn o tsLC pˇred dalším CLK (tady na DN).
ˇ 2.13 Principy casovacích obvodu˚ Principy cˇ asovacích obvod˚u. Zkrácení, prodloužení a stabilizace délky impulsu. Využití zpoždˇení hradel. Monostabilní KO, MKO-NR a MKO-R. Synchronní cˇ asovaˇce, využití cˇ ítaˇcu˚ . Detektory hrany. Impulsnˇe-šíˇrkový modulátor (PWM)
2.13.1 Co to je ˇ Casovací obvody slouží ke generování nebo úpravˇe signál˚u v cˇ 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ˇresné CLK, tak by se to nemˇelo v zásadˇe projevit, protože se od toho odvíjí funkce všech obvod˚u stejnˇe.
ˇ 2.13.2 Asynchronní casovací obvody Ty jsou založeny na pˇrechodných dˇejích. Vzpomeˇnte si na YTE a RC obvody. Mají ovšem velké nevýhody: • Malá strmost hran m˚uže zp˚usobit rozkmitání.
64
Chapter 2. Otázky
CESR, Release
• Malá pˇresnost cˇ asování (no ono už jenom když budete chtít nastavit cˇ asovou konstantou kondíkem, který má toleranci tˇreba 20%...) ˇ • Casová nestálost cˇ asování (a asi i teplotní, trochu se to zahˇreje a odpor i kondík budou mít drobet jiné hodnoty a cˇ asová konstanta se taky zmˇení). ˇ Zpoždení
Takže bud’ takhle, nebo za sebe naházíme nˇekolik opakovaˇcu˚ /invertor˚u. Pak to zpoždˇení teda bude celý násobek tp d. ˇ Detektor zmen
ˇ 2.13. Principy casovacích obvodu˚
65
CESR, Release
2.13.3 Monostabilní KO Je taky asynchronní, ale zaslouží si vlastní odstavec. Existují dvˇe varianty: • Znovu spustitelný (retriggerable) – MKO-R • Ne-znovu spustitelný (zatracená cˇ eština) (non-retriggerable) – MKO-NR A taky nevím, proˇc se plete cˇ 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ˇre skáˇcete - nem˚užete odletˇet, takže stisknete mezerník a zaˇcne se poˇcítat cˇ as skoku a jak jste ve vzduchu, hra ignoruje další stisk mezerníku. Retriggerable by zajistil chování jako ve hˇre Flappy Bird. Tyhle KO se dˇelají v integrované verzi, kde se bˇežnˇe dosahuje stavu, že kolísání Ucc o 5% a teploty 0 - 75 C nehýbe s dobou tw o ménˇe než 1% (no ve skriptech je napsáno zlomky procenta, ale to je takové neurˇcité. Takže asi bude víc typ˚u s r˚uznou pˇresností, atd...)
ˇ 2.13. Principy casovacích obvodu˚
67
CESR, Release
ˇ 2.13.4 Synchronní casovací 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ˇení D1, tak o jednu periodu za ním se zmˇení D2. Simple enough. No a všechno ostatní se dˇelá kombinanˇcní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ˇcení jako na tomhle grafu, to je jedno. Tady tˇreba m˚uže být otázka u zkoušky, abyste navrhli synchronní obvod, který vygeneruje impulz, když se vstup zmˇení, a to se zpoždˇením X takt˚u. Tzn. to je pˇrípad nahoˇre Y3. A zpozdit by se to dalo dalšími KO typu D. Už samotný obv. nahoˇre bude mít zpoždˇení 1 takt. Generování impulzu dané délky MKO-NR
Jak to funguje: impulz START nastaví Q na 1. Ta jedniˇcka se zaˇcne posouvat v posuvném registru doprava. Zatím je ale na konci registru 0, tu znegujeme, takže v tom ANDu jsou dvˇe jedniˇcky a Y = 1. To se dˇeje až to dé doby, než se ˇ 2.13. Principy casovacích obvodu˚
69
CESR, Release
ta p˚uvodní jedniˇcka vsune na konec registru, pak nastane stav Y = 0. To by celkem už mohlo fungovat i bez toho ORu na zaˇcátku. Ten ale zaruˇcí to, že se do registru budou sypat další jedniˇcky a tím se vytvoˇrí druhá cˇ ást impulzu. V podstatˇe ty jedniˇcky tam vytvoˇrí stejnˇe dlouho cˇ á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˚uže být u zkoušky. Tohle je taky jinak ˇreˇceno synchronní MKO-NR. Takže se ten impulz nedá prodloužit.
ˇ c je zastavený, protože Q’ = 1 a na CLR ho resetuje. Tady to je druhá možnost. Máme Q = 0. Cítaˇ Když pˇrivedeme impulz na START, tak se Q = 1, takže náš požadovaný impulz právˇe zaˇcal. Q’ = 0, cˇ ítaˇc cˇ itá a jakmile se jeho stav rovná reg. délky, tak se vyresetuje KO, což zase zaˇcne resetovat i cˇ ítaˇc a náš impulz skonˇcil. Zase to je synchronní MKO-NR. Hlavní rozdíl oproti pˇredchozí verzi je ten, že 1. verze na N stav˚u potˇrebuje N klopných obv., zatímco druhá verze se stejným množstvím KO udˇelá až 2N stav˚u. Ovšem, má to i jednu nevýhodu - a to dost podstatnou - na výstupu komparátoru m˚užou vznikat falešné impulzy. Ale i to má ˇrešení:
70
Chapter 2. Otázky
CESR, Release
V grafu jsou falešné impulzy cˇ árkovanˇe (lajna K). My znegujeme CLK, takže na NANDu bude 1 v druhé p˚ulce periody CLK. Takže pokud vznikne falešný impulz v první p˚ulce periody CLK, nic se nestane. V druhé p˚ulce ale už falešné impulzy odezní, takže tam m˚užeme KO resetovat. A je to!
ˇ 2.13. Principy casovacích obvodu˚
71
CESR, Release
MKO-R
Jediné, co tu je navíc, je OR u STARTu. Tzn. že bud’ se cˇ ítaˇc vyresetuje dosažením hodnoty reg. délky, a nebo ho vyresetujeme ruˇcnˇe. Takže Q = 1 a cˇ ítaˇc si cˇ ítá a cˇ ítá a pak nˇekdo pˇrijde a zmáˇckne START a bum, cˇ ítaˇc je na 0, Q je poˇrád ještˇe 1 a my musíme cˇ 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ˇete na wiki. Uavg = U1 ·
t1 T
T - perioda impulz˚u t1 - doba, kdy je impulz v 1 U1 - amplituda signálu Uavg - stˇrední hodnota napˇetí, co nám PWM generuje
72
Chapter 2. Otázky
CESR, Release
Takže ty ANDy pˇred RSkem jsou zase kv˚uli eliminaci falešných impulz˚u. CLK je tam v negaci, takže pokud se má nˇeco stát, stane se v druhé p˚ulce periody CLK. No a potom cˇ ítaˇc cˇ itá a jak jsou všechny bity = 0, tak ten obrovský OR nastaví výstup PWM na 1. Pak se cˇ ítá od 0 dál, jakmile se rovná stav cˇ ítaˇce reg. délky, tak komparátor hodí 1 a vyresetuje RS. Taky by to urˇcitˇe šlo pomocí CO/BO výstup˚u cˇ ítaˇce. Tak, ted’ cˇ ítáˇc má M stav˚u. V registru délky je cˇ íslo N. Celková doba, než cˇ ítaˇc probˇehne 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ˇetí je dáno pomˇerem N/M. A my m˚užeme zjistit relativní chybu nastavení t1 . Když vezmeme 1 bitový cˇ ítaˇc, tak ten má 2 stavy. To znamená, že m˚užeme bud’ mít úplnou nulu na výstupu nebo signál se stˇrídou 1:1. To je chyba 50%. Když vezmeme 2 bitový cˇ ítaˇc, tak už je to 25%. Atd. Poˇcet bitu˚ 1 2 3 4 5 6 7 8
Relativní chyba 50% 25% 12.5% 6.25% 3.13% 1.56% 0.78% 0.4%
ˇ obvody 2.14 Sekvencní Sekvenˇcní obvody. Pˇrechodová a výstupní funkce, Mealyho a Mooreho automat. Synchronní a asynchronní sekvenˇcní obvody. Popis stavovým grafem, stavovou tabulkou, stavovými rovnicemi. Neurˇcené stavy a jejich projevy. Nastavení poˇcáteˇcního stavu - r˚uzné možnosti. Analýza sekv. obvodu (od schématu k tabulce cˇ i grafu). Návrh synch. sekv. obvod˚u - kódování stav˚u, výbˇer KO, návrh budících funkcí.
ˇ obvody 2.14. Sekvencní
73
CESR, Release
Mrknˇete taky na wiki.
2.14.1 Pˇrechodová funkce Tato funkce vyjadˇruje: mám souˇcasný vnitˇrní stav a souˇcasný vstupní a stav a jak se tím zmˇení následující vnitˇrní stav. S t+1 = f (S t , I t )
S t - souˇcasný vnitˇrní stav S t+1 - následující vnitˇrní stav I t - souˇcasný vstupní stav (signály na vstupu)
2.14.2 Výstupní funkce Tahle funkce ˇríká, jak budou vypadat výstupy sekvenˇcního obvodu. Mealyho automat Tady to závisí na vnitˇrním stavu a stavu vstup˚u Ot = g(S t , I t ) Mooreho automat A tady jenom na vnitˇrním stavu. Ot = g(S t )
ˇ obvody 2.14.3 Asynchronní sekvencní Jsou ty, které mˇení sv˚uj vnitˇrní stav hned po zmˇenˇe vstupního stavu. Plus nˇejaké to zpoždˇení souˇcástek uvnitˇr.
ˇ obvody 2.14.4 Synchronní sekvencní Zmˇeny vnitˇrního stavu se odehrávají v pevnˇe daných okažicích urˇcený hodinovým signálem. Všechno je tu jasnˇejší co se týˇce cˇ asování, takže tyhle jsou cˇ astˇejší. 74
Chapter 2. Otázky
CESR, Release
2.14.5 Popis grafem ˇ Ríká se tomu stavový diagram. Obsahuje jak pˇrechodovou funkci, tak výstupní. Mooreho automat
Jak na to: S jsou vnitˇrní stavy, I jsou vstupní stavy a O jsou výstupní. Víme, že v pˇrípadˇe Mooreho automatu jsou výstupní stavy závislé jenom na vnitˇrním stavu. Takže z obrázku vidíme, že ve stavu S0 je na výstupu stav O0. Pokud v tomhle stavu pˇrivedem na vstup stav I1, dostane se automat zase do stejného stavu S0. Teprve stav I0 nebo I2 ho pˇrepnou do stavu S1, kde má ovšem výstup zase O0. Napˇr. vstupním stavem I2 ho pak m˚užeme pˇrepnout z S1 do S3. A tady odsud už žádná cesta nevede.
ˇ obvody 2.14. Sekvencní
75
CESR, Release
Mealyho automat
Výstup Mealyho automatu závisí jak na vnitˇrním stavu, tak na vstupním stavu. Funguje to víceménˇe jako Mooreho automat, takže vstupními stavy I pˇrepínáme vnitˇrní stavy S. Rozdíl je ve výstupech. Tak tˇreba jsme ve stavu S1 a na vstup pˇrivedeme I1. V tu chvíli se automat pˇrepne do stavu S0 a na výstupu bude stav O2. Kdybychom ovšem místo toho pˇrivedli na vstup I2, tak se automat pˇrepne zase do S1 a výstup už bude jiný, totiž O0. Tady je vidˇet, že výstup závisí i na vstupu, ne jenom na vnitˇrním stavu.
2.14.6 Popis rovnicemi Pˇrechodová funkce se popisuje takhle: Si αIj → Sk tedy vnitˇrní stav S v kombinaci se vstupním stavem I vytvoˇrí jiný vnitˇrní stav S. Pro výstupní funkci takhle: Si αIj : Ok Takže když se vrátíme k Mealyho automatu v pˇredchozím odstavci, tak m˚užeme napsat:
S1 αI1 → S0 – pro pˇrechodovou 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ˇr. S0 : O0
2.14.7 Popis tabulkou Následující tabulky se vztahují zase k tˇem obrázk˚um nahoˇre. Mooreho automat Pˇrechodová 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ˇrechodová 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ˇet, že u Mealyho automatu závisí výstup i na vstupech.
2.14.8 Kódování stavu˚ • Vstupní kód – pˇriˇrazuje vstupní signály vstupnímu stavu I • Vnitˇrní kód – pˇriˇrazuje vnitˇrní signály vnitˇrnímu stavu S • Výstupní kód – pˇriˇrazuje výstupní signály výstupnímu stavu O Tedy ke každému stavu je potˇreba urˇcit kombinaci signál˚u. Poˇcet signál˚u, které potˇrebujeme k zakódóvání stav˚u m˚užeme urˇcit z následující nerovnosti: 2k−1 < n ≤ 2k
ˇ obvody 2.14. Sekvencní
77
CESR, Release
n - poˇcet stav˚u k - minimální poˇcet signál˚u
Pro 5 stav˚u to znamená 3 signály (4 < 5 < 8). Jenže 23 = 8, takže tˇremi signály pokryjeme celkem 8 stav˚u. 3 kombinace tudíž budou navíc. Tˇem se ˇríká nevyužité stavy. Pˇri kódování musí mít: • 1 stav -> 1 kombinaci signál˚u • 1 kombinace signál˚u -> 1 stav Pro zakódování 5 vstupních stav˚u vytvoˇrí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ˇri nevyužité stavy, takže je kódovat nebudeme.
ˇ 2.14.9 Návrh sekvencního obvodu Kódování stavu˚ Pokud bychom chtˇeli 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ˇrní 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ˇrepsaný do rovnic a za stavy je zde dosazený vstupní/vnitˇrní 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 cˇ ítaˇcu˚ . Zvolíme si tedy D. Z tabulky pˇrechod˚u kousek výš musíme napsat rovnice pro D1 a D0. Píše to stejnˇe jako když máme tabulku 1/0 a píšeme logickou funkci. Takže hledáme ty ˇrádky, kde D1 = 1. To je ˇrá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 ˇrádky 1 a 5. Pokud bychom to chtˇeli udˇelat s T místo D, tak musíme vybírat ty rˇádky, kde se Q mˇení ze starého stavu na nový. Takže pro T1 ˇrádky 3 a 7, tam se Q1 mˇení (z 1 do 0 nebo z 0 do 1, ale mˇení). Pro JK bychom museli udˇelat jednu funkci pro pˇrechody z 0 do 1 a druhou pro pˇrechody z 1 do 0, ale v každém pˇrípadˇe úplnˇe stejným zp˚usobem. A tím by byl návrh témˇeˇr kompletní. Pak už jenom z rovnic nakreslit schéma a je to.
ˇ obvody 2.14. Sekvencní
79
CESR, Release
ˇ 2.14.10 Casování Maximální frekvence CLK TCLK ≥ tpCQ + tpKmax + ts fCLK =
1 TCLK
tpKmax - maximální zpoždˇení kombinaˇcních obvod˚u tp CQ - doba pˇreklopení KO (od CLK po ustálení výstupu Q) ts - doba pˇredstihu KO
Procˇ
Takhle vypadá sekvenˇcní obvod. Když pˇrijde impulz CLK, tak se pˇreklopí KO a trvá to tp CQ. Potom signály doputují ke kombinaˇcním obvod˚um, kde se propletou, pak se se poˇcká na odeznˇení hazard˚u a to trvá tpKmax (od konce KO do konce kombinaˇcních obv.). Potom pro další cyklus je potˇreba dodržet dobu pˇredstihu tˇech KO, takže tady se pˇriˇcte ts .
80
Chapter 2. Otázky
CESR, Release
Doba pˇredstihu/pˇresahu Z toho, co je napsáno v pˇredchozím odstavci, m˚užeme hned urˇcit dobu pˇredstihu sekvenˇcního obvodu. Takže se zmˇení vstup, po tpKmax se ustálí budící signály E, pak musíme poˇckat ts kv˚uli KO a pak m˚užeme zmˇenit vstup a kv˚uli tomu potˇrebujeme další impulz CLK. Takže celkem musíme poˇckat: tss ≥ tpKmax + ts
A než se zase rozhodneme vstup zmˇenit, musíme poˇckat dobu pˇresahu sekvenˇcního obvodu. Každý KO má dobu pˇresahu th , to jsme si ˇrekli už v kapitole klopné obvody. Pak ale víme, že kombinaˇcním obvod˚um to taky chvilku trvá, takže už m˚užeme sázet vstupy, ještˇe než oni skonˇcí. Minimální doba, za kterou to stihnou, je tpKmin . O tuhle dobu se nám to tedy zkrátí: ths ≥ th − tpkmin
ˇ obvody 2.14. Sekvencní
81
CESR, Release
ˇ ˇ 2.14.11 Nastavení pocáte cního stavu
Funkce tohoto obvodu: • Základní je hysterezní cˇ len, odpor a kondík. Pˇri nábˇehu napájení je napˇetí na kondíku malé, takže hysterezní cˇ len má na svém výstupu 0. Jakmile se kondík dostateˇcnˇe nabije, hysterezní cˇ len se pˇreklopí a KO se pˇrestane nulovat. • Dioda umožˇnuje vybít kondenzátor v pˇrípadˇe krátkodobého výpadku napájení. • Tlaˇcítko vnutí 0 na vstup hysterezního cˇ lenu a vyvolá tak reset od uživatele. ˇ • Clen s otevˇreným kolektorem umožˇnuje reset vyvovat obvod˚um (ne-ˇclovˇek). To se hodí u vˇetších systém˚u (jako tˇreba když programujete arduino, taky se dá resetovat softwarovˇe i hardwarovˇe).
2.15 Metastabilita Metastabilita a její projevy v sekvenˇcních obvodech. Vzorkovaˇce, jejich cˇ innost a spolehlivost, vliv soubˇeh˚u signál˚u. Pˇredávání dat mezi nesynchronními systémy (sféry synchronizace). Korespondenˇcní provoz (“handshake”) - princip a obvodové rˇešení (pomalý zdroj dat, rychlý pˇríjemce).
82
Chapter 2. Otázky
CESR, Release
2.15.1 Co to je Metastabilita je jev, kdy v d˚usledku špatného cˇ asování signál˚u nastane na KO stav, který nem˚užeme pˇredvídat.
2.15.2 Dvojitý vzorkovacˇ
Na grafu vidíme, že impulz na D1 zaˇcíná zhruba ve stejnou dobu jako hrana CLK. Jenže to je jasnˇe nedodržená podmínka cˇ asování. Ten impulz D1 mˇel být stabilní už dobu pˇredstihu (ts ) pˇred hranou CLK. Z toho jsou možné dvˇe situace: 1. KO se na chvíli bude snažit se pˇrepnout, ale nepodaˇrí se to, takže po první periodˇe CLK nebude vstupní signál D1 zaznamenám. V druhé periodˇe už vidíme, že je D1 stabilní, takže se KO pˇreklopí správnˇe. To znamená, že se celý pr˚ubˇeh o jeden takt zpozdí. 2. KO se pˇreci jenom pˇreklopí a po první periodˇe CLK bude D1 na výstupu Q1. V tom pˇrípadˇe v druhé periodˇe bude signál dál pokraˇcovat pˇres druhý KO. Z toho vyplývá, že na Q2 bude vždy správnˇe cˇ asovaný signál. D˚uležité je, že na Q1 nem˚užeme pˇredvídat stav po první periodˇe, a tudíž za to ani nem˚užeme postavit další obvody na zpracování. Proto je tam druhý KO, za kterým už bude signál správnˇe, i když nem˚užeme odhadnout, jestli bude o takt zpoždˇený nebo ne.
2.15. Metastabilita
83
CESR, Release
Podmínkou, aby dvojitý vzorkovaˇc fungoval je, že perioda CLK musí být vˇetší než doba trvání metastabilního stavu. Jenže tahle doba není známá. Závisí na dobˇe mezi hranou CLK a hranou vstupního signálu a to pˇrece jenom nem˚užeme spolehlivˇe urˇcit. To znamená, že žádný vzorkovaˇc nefunguje na 100%. A aby se vstupní signál v˚ubec zaznamenal - jak je vidˇet na obrázku - musí být jeho trvání dlouhé alespoˇn dvojnásobek periody CLK (btw na obrázku vidíme vlastnˇe jenom p˚ulku periody). Takže vlastnˇe frekvence vzorkování (CLK) musí být aspoˇn 2x vyšší než frekvence vzorkované signálu (Zase ten Shannon). No a pokud máme signálu víc (ˇríká se tomu vektor), tak už nám dvojitý vzorkovaˇc nepom˚uže. Pak se totiž m˚uže zmˇenit 1 z X vstup˚u dˇrív než ostatní, napˇr.: 1000 -> 0000 -> 0111. Takže dekadicky to mˇelo být z 8 na 7, ale mezitím se tam objevila 0! Wow. No kdyby to mˇely být tˇreba souˇradnice rakety, tak útoˇcník sestˇrelí 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ˇrijde signál ACK (Acknowledge - potrvrzení), že jsou data v pohodˇe. Tím se zároveˇn nastaví pravý RS na 1, tedy DV (Data Valid) = 1. No a zároveˇn se ještˇe levý RS pˇreklopí do 0, takže SD = 0, aby nikdo nic neposílal. 3. Ted’ si pˇríjemce dat zjistí, jestli DV = 1 a když jo, tak si data m˚uže v klidu pˇreˇcíst. Až si je zchroustá, nastaví RQ = 1, cˇ ímž se vynuluje pravý RS a DV = 0, takže nem˚uže nic cˇ íst, dokud zase nedojdou nová data. Takže když to shrnem: zleva se hrnou data, zprava se cˇ tou. Když pˇrijdou data, z˚ustanou v registru, dokud je pˇríjemce nepˇreˇcte. To znamená, že zdroj dat cˇ eká. Teprve až když si pˇríjemce ˇrekne, tak mu pošle nová data. Když by teoreticky zdroj mohl dodávat data rychleji, než je pˇríjemce m˚uže zpracovávat, nic se nedˇeje, protože je pošle vždy, až když si o nˇe pˇríjemce ˇrekne. V opaˇcném pˇrípadˇe, kdy bude zdroj pomalý a pˇríjemce rychlý, se taky nic nedˇeje, protože pˇríjemce má hotovo, pošle RQ, takže zdroj má SD = 1. Jenže zdroj ještˇe není ready, takže nenastaví ACK na 1, tudíž pˇríjemce cˇ eká.
2.15.4 Synchronizace více subsystému˚ Máme dva (nebo víc) systémy, každý zpracovává data. Každý je vyplivne po jiné dobˇe, takže je nem˚užeme jen tak spojit dohromady. Vyˇrešíme to tak, že tam pˇridáme nˇejaký kousek, který zaruˇcí, že budou všechny obvody dostávat a vydávat data, kdy mají.
2.15. Metastabilita
85
CESR, Release
FBx jsou funkˇcní bloky, tj. to, co zpracovává data. Každý blok má sv˚uj registr, kam mu ta data pˇripravíme. Samozˇrejmˇe každý blok má vstup DI a výstup DO. No a dole je Generátor synchronizaˇcních impulz˚u. Ten ˇrí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ˇril WR1, cˇ ímž se vstupní data na DI1 zapsala do registru FB1 a zaˇcalo zpracování. Po zpracování se data objevila na výstupu DO1 a generátor vytvoˇril WR2, který data zase pˇredal FB2. Opˇet je potˇreba dodržet podmínky cˇ asování, takže data na DI musí být stabilní pˇred dobou pˇredstihu a ještˇe celou dobu pˇresahu. Samozˇrejmˇe, že když máme spoustu blok˚u a každý jinak rychlý, bychom mohli synchronizovat podle toho nejpomalejšího, ale to by se zpomalil celý systém. Proto staˇcí, aby každý FB mˇel výstupní signál, který ˇríká, že už skonˇcil zpracování. Všechny tyhle signály nacpeme generátoru synch. impulz˚u a on pak m˚uže posouvat data vždy po dokonˇcení ˇ dílˇcího zpracování. Ríká se tomu variabilní cˇ asování.
2.16 Pipeline Pipeline, vlastnosti, zrychlení systému, vedení signál˚u pˇres registry. Pipeline je zp˚usob, jak urychlit zpracování nˇejakého signálu. Spoˇcívá v rozdˇelení systému do sekcí. Každá z nich má svoje zpoždˇení tp a souˇcet všech logicky dá dohromady zpoždˇení celého systému. Mezi oddˇelené kousky se pak dají registry:
2.16. Pipeline
87
CESR, Release
A všechny registry mají spoleˇcné CLK. To znamená, že jedním CLK se posunou data mezi všemi sekcemi. Jinak ˇreˇceno: 1. 1. sekce data zpracuje a má je pˇripravená 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ˇretí sekce Takhle to prolézá celým systémem (pipeline - trubka).
• V tpi je zahrnuto i odeznˇení falešných impulz˚u. • Signály na vstupu registru musí být stabilní minimálnˇe ts pˇred hranou CLK. • tpCQ trvá pˇreklopení KO registru • Každá sekce má jiné zpoždˇení, takže musíme vzít to nejvyšší - tpM AX
88
Chapter 2. Otázky
CESR, Release
Periodu CLK tudíž m˚užeme urˇcit souˇctem tˇechto tˇrí dob: TC LK ≥ tpM AX + ts + tpCQ No a pokud použijeme tu nejmenší periodu (nejvyšší frekvenci), tak m˚užeme spoˇcítat dobu, za kterou data projdou celou pipeline: tDD = N · tpM AX + N · (ts + tp CQ) N je poˇcet sekcí. Každá má ts a tpCQ , takže se to jednoduše vynásobí. Samozˇrejmˇe by šlo tpM AX taky hodit do druhé závorky, ale je tu asi naznaˇceno, že je to nˇeco jiného. Kdybychom použili p˚uvodní 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˚uvodního systému budeme cpát data pravidelnˇe, tak: 1. Musíme pˇrivést data 2. Poˇckáme tpc 3. Data lze zpracovávat v dalších blocích 4. A m˚užeme pˇrivést další data a opakuje se to od 1. Ale když tam dáme pipeline, tak m˚užeme cpát data ne s periodou tpc , ale s periodou TCLK , která je podstatnˇe kratší. A ve stejném rytmu se budou zpracovaná data objevovat na výstupu. Musí tam teda ty data ale plynout pravidelnˇe. Pak se dá spoˇcítat celkové zrychlení: apl =
P tpi TCLK
Takže napˇr. sekce se zpoždˇeními: 7, 7, 6, 8, 10 ns, tpCQ = 4ns a ts = 2ns. TCLK spoˇcítáme na (minimálnˇe) 16 ns 38 (62.5 MHz). Zrychlení bude: apl = 7+7+6+8+10 = 16 = 2.375 16 Zrychlení m˚uže být i N, tedy podle poˇctu sekcí, ale to se málokdy stane, že by mˇely všechny sekce stejné zpoždˇení.
ˇ 2.17 Pameti Pamˇeti. Paralelní a sériový pˇrístup. Pamˇet’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické (DRAM, SDRAM), ovládání, obnovování obsahu, typické pr˚ubˇehy cykl˚u, práce po stránkách, latence. Pamˇeti ROM, (EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Pamˇeti FLASH „NOR“ a „NAND“. Speciální typy pamˇetí - FIFO, dvojbránová. Arbitrážní obvody u DPM. Tuhle kapitolu jsem si dovolil rozdˇelit - je toho dost, takže to snad takhle bude pˇrehlednˇejší.
2.17.1 Energeticky závislé Pamˇeti. Paralelní a sériový pˇrístup. Pamˇet’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické (DRAM, SDRAM), ovládání, obnovování obsahu, typické pr˚ubˇehy cykl˚u, práce po stránkách, latence. Pamˇeti ROM, (EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Pamˇeti FLASH „NOR“ a „NAND“. Speciální typy pamˇetí - FIFO, dvojbránová. Arbitrážní obvody u DPM. Vybavovací doba - tAC - doba od zaˇcátku cˇ tecího cyklu do vydání platných dat.
ˇ 2.17. Pameti
89
CESR, Release
Paralelní vs. sériový pˇrístup Paralelní
Tady vidíme, že máme vstup ADR na adresu, ten je vícebitový, rˇídící signály (R/W’) a vstup pro data (ty jsou také vícebitové). Pokud jsou DI a DO slouˇcené, pak urˇcitˇe budeme potˇrebovat další ˇrídící signál, který urˇcí smˇer. (No ono by možná staˇcilo R/W’ i na tohle...)
90
Chapter 2. Otázky
CESR, Release
Sériový
Tady se používá tˇrívodiˇcové spojení pro SPI. Podle wiki se to používá tˇreba pro pˇripojení SD karet. O SPI se víc mluví v MPP. V podstatˇe tu jsou ty vodiˇce takhle: • SI - slave in • SO - slave out • SCK - CLK Master v tomhle pˇrípadˇe bude asi nˇeco v PC, co bude ˇrídit operaˇcní systém...
ˇ 2.17. Pameti
91
CESR, Release
Statické RAM (SRAM)
Vybavovací doba tˇechto pamˇetí jde i pod 10 ns. Jsou velmi rychlé a používají se pro cache procesor˚u. Data se ukládají pomocí kladné zpˇetné vazby, což je takový BKO (bistabilní KO). Bud’ ho pˇrepneme do 1 nebo do 0, podle dat. A on si tu hodnotu pamatuje, dokud ji zase nepˇrepíšeme. ˇ Rídící signály jsou tady: • CS’ - chip select • OE’ - output enable • WR’ - write (nˇekdy taky WE’ - write enable) CS’ 1 0 0 0
OE’ 0 1
WR’ 1 0 1
funkce cˇ tení zápis -
DI/DO Z DO DI Z
Icc nízký plný plný plný
Z - stav vysoké impedance Nezapomeˇnte, že jsou ty ˇrídící signály v negaci, takže jsou aktivní v 0.
92
Chapter 2. Otázky
CESR, Release
ˇ Ctení
Takže když chci data cˇ í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 cˇ íst) 4. Na výstupu DI/DO (pokud jsou spoleˇcné, jinak jenom DO) budu mít pˇripravená data
Tady je vidˇet ta doba tAC - od té doby, co jsem ADR ˇrekl, 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ˇeco jako C - chip select, Z - vysoká impedance, D - data
ˇ 2.17. Pameti
93
CESR, Release
Zápis
U zápisu je to maliˇcko složitˇejší:
tAW - doba odstupu zápisového pulzu od ADR tW P - trvání zápisového pulzu tDS - pˇredstih dat kolem zápisového pulzu tDH - pˇresah dat kolem zápisového pulzu
Jinými slovy, data jsou na DI pˇripravená od zaˇcátku. ADR vybere, kam se zapíše. Pak musím poˇckat tAW , než m˚užu aktivovat WR’. Jak se WR’ aktivuje, data se zaˇcnou zapisovat do pamˇeti. Ted’ musí WR’ být poˇrád aktivní a to po dobu tW P . A ke konci, když už ho m˚užu zase deaktivovat, tak od zaˇcátku tDS do konce tDH se data nesmí mˇenit.
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ˇcním napˇetím. Jenže ten kondík se vybíjí samovolnˇe, takže se musí jednou za cˇ as znovu dobít. DRAM je oproti SRAM levnˇejší - pamˇet’ové buˇnky jsou jednodušší a proto se jich na stejnou plochu vejde víc. Na jeden bit je potˇreba jenom jeden tranzistor a kondík. Ten kondík má kapacitu v ˇrádu fF - femto Farad. To je 10−15 F. Fakt hodnˇe málo. DRAM (resp. potom SDRAM) se používají jako hlavní pamˇet’ PC, telefon˚u, tablet˚u, PS, atd... U DRAM jsou také jiné ˇrídící signály: • RAS’ - ovládání ˇrádkové adresy • CAS’ - ovládání sloupcové adresy • R/W ˇ Ctení
ˇ Ctecí cyklus pak taky vypadá jinak než u SRAM: 1. RAS’ zapíše ˇrádkovou adresu do registru ˇrádkové adresy (RAS’ je aktivní v 0, takže na dobˇežnou hranu). 2. Do cˇ tecích zesilovaˇcu˚ se pˇrivede napájení.
ˇ 2.17. Pameti
95
CESR, Release
ˇ 3. Rádkový dekodér vybere danou ˇrádku a podle stavu jednotlivých bunˇek se pˇreklopí cˇ tecí zesilovaˇce. 4. Ted’ se pˇrivede adresa sloupce a signálem CAS’ se zapíše do registru (zase na dobˇežnou hranu). 5. Sloupcový dekodér vybere skupinu cˇ tecích zesilovaˇcu˚ (jeden byte (no nˇekdy tˇreba dva, podle toho, jak je definovaná velikost slova)). 6. Nakonec se odblokují 3s cˇ leny, aby se vyˇctená data objevila na výstupu.
tRAC - vybavovací doba - tady od hrany RAS’ do platných dat (podobnˇe jako tAW u SRAM) - bývá kolem 50 ns tCAC - taky vybavovací doba, ale od hrany CAS’ tRH - doba nabíjení sloupc˚u tRC - celková doba cˇ 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ˇcek u dat je oblast, kde se data už nesmí mˇenit. Jinak to je podobné jako u cˇ tecího cyklu. Tj. RAS’ -> WR -> CAS’. Obnovování náboju˚ na kondíkách
Dˇelá se to tak, že se jednou za cˇ as nˇekam strˇcí obnovovací cyklus. Vždycky pˇri cˇ tecím nebo zápisovém cyklu se totiž obnoví všechna data na ˇrádce. Takže staˇcí dodat adresu ˇrádku, aktivovat RAS’ a ˇrádka se obnoví. Jenže my potˇrebujeme obnovovat celou pamˇet’, ne jen to, co zrovna cˇ teme. Takže existuje nˇekolik možností: • Blokové obnovování (burst refresh) - prostˇe se proleze celá pamˇet’ a obnoví se ˇrádek po ˇrádku (ale trvá to dlouho) • Obnovování rozložené v cˇ ase (time-distributed refresh) - namísto obnovení celé pamˇeti se obnoví kousek, pak zase kousek a pak zase kousek a mezitím se zˇrejmˇe dá cˇ íst i zapisovat • Skryté obnovování (transparent refresh) - tady to rˇídí procesor tak, že vždycky nˇekam mezi cˇ tecí a zápisové cykly hodí ty obnovovací, když se pamˇet’ nevyužívá • Nedˇelat to v˚ubec - pokud se cˇ te celá pamˇet’, pak to není tˇreba (pamˇet’ grafické karty - ten obraz se tam asi mˇení celý, takže není tˇreba nic obnovovat) Na ty obnovovací cykly se používá cˇ ítaˇc adres - ten cˇ ítá a projíždí tím všechny ˇrádky. Když se k tomu pˇrihodí ještˇe multiplexor a ˇrídící obvody k tomu, vznikne rˇadiˇc dynamické pamˇeti. ˇ c obsluhuje celou pamˇet’. Jenom dostává povely, co kam zapsat, co odkud cˇ íst. Všechny cykly a cˇ asování a Radiˇ obnovování už je na nˇem.
ˇ 2.17. Pameti
97
CESR, Release
ˇ Ctení po stránkách
Namísto vybrání kousku ˇrádky vybere ˇradiˇc celou ˇrádku do cˇ tecích zesilovaˇcu˚ . Pak se zaˇcne zvyšovat adresa sloupce, aby se mohla celá ˇrádka pˇreˇcíst byte po bytu. A samozˇrejmˇe tam ten ˇradiˇc musí cpát CAS’. Takže zjednodušenˇe: když chci 8 byt˚u, tak je nebudu cˇ íst po 1 bytu, ale pˇreˇctu všech 8 a pak je po jednom šoupu ven. Takže namísto 8 cˇ tení ˇrádky je tam jenom 1 cˇ tení ˇrádky. Tím se celý cˇ tecí cyklus urychlí. Synchronní DRAM (SDRAM) SDRAM funguje jako DRAM s jedním d˚uležitým rozdílem - všechno je tu synchronní. Všechny ˇrídící signály, adresové vstupy i datové vstupy/výstupy se hýbou v rytmu CLK. Díky tomu se taky m˚uže zajistit lepší spolupráce s dalšími obvody v systému (procesor, ...). Zrychlení se tady dosáhne tak, že jakmile se pˇreˇcte ˇrádka, zaˇcne vnitˇrní cˇ ítaˇc zvyšovat sloupcovou adresu, a tudíž se data hrnou na výstup rychlostí CLK, což m˚užou být jednotky ns v periodˇe. To ale znamená, že se to vyplatí jen u ˇ cˇ tení/zápisu vˇetšího množství dat. Ríká se tomu dávkové cˇ tení/zápis (burst read/write).
MODE - registr režimu Matice bunˇek a ty vˇeciˇcky okolo se nazývají pamˇet’ový blok (memory bank). Tˇech bývá nˇekolik (2, 4, ...). To taky urychluje pamˇet’, protože se m˚uže z jednoho cˇ íst, do druhého zapisovat, ve tˇretím m˚uže zrovna probíhat obnovovací cyklus.
98
Chapter 2. Otázky
CESR, Release
ˇ Ctení/zápis
1. Pˇri nábˇežné hranˇe CLK se pˇrivede adresa bloku (MSB) a adresa ˇrádku 2. Zároveˇn se pˇrivede RAS’ 3. Máme zapsanou adresu ˇrádku a po dvou taktech pˇrivedem adresu sloupce a CAS’ 4. Tím se ale - narozdíl od DRAM - pˇrednastaví cˇ ítaˇc adresy sloupce 5. Souˇcasnˇe s CAS’ pˇrivá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ˇcet vydaných slov (at’ už je to 1 byte nebo 2) se nazývá délka dávky. Je to naprogramováno v ˇrídících obvodech a m˚uže to být 1, 2, 4, 8 nebo prostˇe celý ˇrádek.
ˇ 2.17. Pameti
99
CESR, Release
DDR (SDRAM) ˇ c sloupc˚u je tady inkrementován navíc i dobˇežnou DDR je vylepšená SDRAM. DDR znamená Double Data Rate. Cítaˇ hranou CLK, takže 2x bˇehem jedné periody CLK. Proto Double.
2.17.2 Energeticky nezávislé Pamˇeti. Paralelní a sériový pˇrístup. Pamˇet’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické (DRAM, SDRAM), ovládání, obnovování obsahu, typické pr˚ubˇehy cykl˚u, práce po stránkách, latence. Pamˇeti ROM, (EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Pamˇeti FLASH „NOR“ a „NAND“. Speciální typy pamˇetí - 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ˇeˇr totožné. Akorát tu odpadají cesty pro zápis, protože je read-only. Jedna buˇnka tu je taky dost podobná, ale pˇrece jiná. Je tu akorát trandík mezi ˇrádkem a sloupcem:
ˇ 2.17. Pameti
101
CESR, Release
Pˇri výrobˇe se funkˇcní tranzistory vyrobí s tenkou vrstvou oxidu kˇremíku, zatímco ty nefunkˇcní s tlustou vrstvou. Jak je ta vrstva tlustá, tak se nedokáže vytvoˇrit vodivý kanál. Takže když tam naženeme napˇetí, tak tam z˚ustane, zatímco u funkˇcního projde na zem. Tím se rozliší 0 od 1. Programmable ROM (PROM) Dˇrív se pˇrepalovaly spojky velkými proudy. Potom nˇekoho napadlo to udˇelat v technologii CMOS (hallelujah):
ˇ Mezi ˇrídícím hradlem a zbytkem je vložená další vodivá vrstva. Je ale izolovaná oxidem kˇremíku. Ríká se jí plovoucí hradlo (floating gate). Na tohle hradlo lze naházet elektrony, takže to hradlo bude nabité zápornˇe. No a pokud vybudíme ˇrádek (dáme tam log. 1), tak: • U nenabitých plovoucích hradel se vytvoˇrí kanál a sloupec se zkratuje na zem - log. 0 • U nabitých se to kladné napˇetí sníží o to, co je nabité na plovoucím hradle, a tím je to napˇetí malé a nestaˇcí k vytvoˇrení 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ˇrit omezený lavinový pr˚uraz. Zároveˇn se vychýlí kladným napˇetím na ˇrídícím hradle. Takže mají dohromady takovou energii, aby proletˇely 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ˇremístíme pˇres vsrtvu oxidu, naženeme ho tam vyšším napˇetím. Že prý staˇcí kolem 20V. Upp se znaˇcí programovací napˇetí. Doba programování se pohybuje v jednotkách milisekund - to je hodnˇe. Tomuhle se prý ˇríká tunelování elektron˚u.
Vlevo je nabití, vpravo vybití. Erasable PROM (EPROM) Používá buˇnku FAMOS. K programování je potˇreba programátor - zaˇrízení, které dodá programovací napˇetí (tady okolo 12V) a nacpe data do pamˇeti. Trvanlivost dat bývá desetiletí - záleží na teplotˇe. Vymazání se provádí pomocí UV záˇrení - zase je na to potˇreba extra mašinka - o vlnové délce 254 nm. Trvá to asi 15 minut. Záˇrení dodá elektron˚um energii a ty jsou schopné se osvobodit ze svého vˇezení v podobnˇe plovoucího hradla. A pak budou všude samé log. 1. Cykl˚u mazání/programování m˚už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ˇerech. Buˇnka má 2 tranzistory - pamˇet’ový a výbˇerový:
ˇ 2.17. Pameti
103
CESR, Release
Pamˇet’ový tr. má plovoucí a ˇrídící hradlo, zatímco ten výbˇerový plovoucí nemá. Mazání a opˇetovné programování m˚uže být provedeno víckrát než u EPROM, cca to jsou desítky až stovky tisíc cykl˚u. FLASH FLASH kombinuje lavinovou injekci pro naprogramování s tunelováním pro mazání. 1 buˇnka = 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ˇrepisovat, musí se nejdˇrív smazat blok a pak pˇrepsat celý znovu (takže asi se data vyˇctou, kousek zmˇení a to se zapíše). Jelikož tam je jenom jeden tranzistor, tak se ta pamˇet’ dá dobˇre nahustit (proto jsou flashky tak levné). Pˇrepisovací cykly jsou omezené zhruba jako u EEPROM, takže 10k, 100k, ... cykl˚u. Tohle cˇ íslo platí pro buˇnku, ne pro celou pamˇet’. Takže když si to ˇradiˇc nebo filesystem (nebo kdo) dobˇre rozprostˇre, tak celá pamˇet’ vydrží mnohem déle (to se dˇelá dneska u SSD, ale nesmíte ho mít úplnˇe plnej). Programování je celkem snadné díky tomu, že už v cˇ ipu FLASH pamˇeti je integrovaný rˇadiˇc programování. Kromˇe toho i vˇetší napˇetí na tunelování je pˇrítomno, dˇelá to nábojová pumpa (nebylo to v AESR?). Tzn. že pro svojí aplikaci si do obvodu švihnete FLASHku, pˇripojíte Ucc a zbytek už se dˇeje uvnitˇr. ˇ Ctení 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ˇek. Ale poˇrád je to pomalejší. Vybavovací doba je zhruba 10x vyšší než u SRAM, kde to bylo 10 ns, takže tady bych cˇ ekal 100 ns. Trochu se to povedlo zrychlit jako u SDRAM (vnitˇrní cˇ ítaˇc sloupcové adresy). NOR FLASH
Až do ted’ se povídalo o NOR FLASH. Ta se nazývá NOR, protože zapojení tranzistor˚u pˇripomíná hradlo NOR.
104
Chapter 2. Otázky
CESR, Release
NAND FLASH
Tady to pro zmˇenu pˇripomíná NAND. Spojení je tady jednodušší, horší je ale pˇrístup k bit˚um, už je nelze cˇ íst po jednom. Hlavní výhoda NAND FLASH je vysoká hustota bunˇek a tudíž i nižší cena. To jsou všechny ty naše flashky. Podle všeho je NAND pomalejší ve cˇ tení, ale rychlejší v zápisu než NOR.
ˇ 2.17.3 Speciální pameti Pamˇeti. Paralelní a sériový pˇrístup. Pamˇet’ové obvody RAM statické, seskupení a ovládání. Obvody dynamické (DRAM, SDRAM), ovládání, obnovování obsahu, typické pr˚ubˇehy cykl˚u, práce po stránkách, latence. Pamˇeti ROM, (EPROM), EEPROM, FLASH, programování obsahu a mazání u EEPROM a FLASH. Pamˇeti FLASH „NOR“ a „NAND“. Speciální typy pamˇetí - FIFO, dvojbránová. Arbitrážní obvody u DPM. ˇ (DPM) Dvojbránová pamet’ DPM - dual-port memory. Je to SRAM, která umožˇnuje cˇ tení ze dvou bran. Každá brána má zvlášt’ adresu, data a ˇrídící signály. Úˇcel pamˇeti je ve výmˇenˇe dat mezi dvˇema cˇ ástmi systému. Tyhle dvˇe cˇ ásti pak v˚ubec nemusí být v synchronismu. Vlastnˇe to je jako komunikace mezi dvˇema procesy v PC. ˇ 2.17. Pameti
105
CESR, Release
Takhle by to mohlo fungovat pouze, pokud se dokážou ty dvˇe cˇ ásti L/P stˇrídat, takže když L cˇ te, P musí zpracovávat, a pak se prohodí. A to taky nejde úplnˇe vždycky. Pro lepší pˇrístup se používá následující verze:
106
Chapter 2. Otázky
CESR, Release
Takže každá buˇnka nemá jenom 1 sloupec, ale 2 sloupce. Takže lze cˇ íst zároveˇn 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ˇcit, co se tam nakonec uloží. Jelikož jsou adresy i ˇrídící signály nezávislé, je možné cˇ íst i zapisovat na r˚uzných místech zároveˇn. Jediný problém je zápis na stejné místo, to se musí vylouˇcit. Arbitrážní obvody
To je obvod, který právˇe ˇreší 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ˇrijdou souˇcasnˇe, tak náhodnˇe.
D˚uležitý je hlavnˇe adresový komparátor. Pokud arbitrážní obvod pˇrijde na to, že uživatel nem˚uže zapisovat, hodí mu na BUSY’ 0. FIFO First in - first out. Tedy fronta (queue). Tady odpadají adresy - poˇradí je vždy jasné. Data se vˇetšinou skládají na pevné pozice a posouvá se jenom ukazatel na nˇe (pointer). FIFO se používá jako vyrovnávací pamˇet’ mezi dvˇema systémy, které krátkodobˇe nemusí fungovat ve stejném rytmu. Ale nejde to poˇrá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ˇeti m˚užou obsahovat indikaci naplnˇení/vypráznˇení:
ˇ 2.17. Pameti
107
CESR, Release
• FF - full FIFO • EF - empty FIFO • HF - half empty FIFO Takže je dobré si pˇred zápisem zkontrolovat, jestli není FIFO plná, a pokud je, tak se zápisem poˇckat.
FIFO je vlastnˇe DPM, ale jedna brána umožˇnuje jenom zápis a druhá jenom cˇ tení. Adresy se generují cˇ ítaˇci. Akce Zápis Zápis ˇ Ctení Zápis ˇ Ctení Atd..
ˇ c zápisu Cítaˇ 1 2 2 3 3
ˇ c cˇ tení Cítaˇ 0 0 1 (ˇctu data z pozice 1) 1 2
Kromˇe toho tam je zase komparátor adresy, který zjistí, jestli je pamˇet’ plná/prázdná a když tak zablokuje jeden z cˇ ítaˇcu˚ . Existuje i synchronní verze, která zavádí CLK podobnˇe jako SDRAM.
2.18 Programovatelné logické obvody 2.19 Rušení v elektronických systémech Rušení v elektronických systémech. Vnˇejší rušení, cesty pro vstup rušivých signál˚u, jejich omezení. Optrony, diferenˇcní pˇrenos. Vnitˇrní rušení - rozvod napájení, pˇreslechy, sbˇernice, dlouhé spoje.
ˇ 2.19.1 Vnejší Vnˇejší rušení proniká do obvod˚u z míst, jako jsou WiFi, mobilní sítˇe, prostˇe všechno co lítá vzduchem. Jelikož mají elektronické systémy svoje vstupy a výstupy, bondování cˇ ipu k pouzdru, cestiˇcky 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ˇernˇe vysokou frekvencí (GHz) a provozují na sníženém napájecím napˇetí (napˇr. ˇ 3.3 V), tak jsou v˚ucˇ i tomuto rušení náchylné. Cím menší napˇetí potˇrebujeme k pˇrepnutí tranzistoru, tím snažší samozˇrejmˇe bude ho pˇrepnout z vnˇejšku nˇejakým rušením. Analogové signály jsou obecnˇe náchylnˇejší k rušení, takže je dobré co nejdˇríve pˇrejít na digitální. Proto se vyrábˇejí ˇ cˇ idla rovnou digitální (teplotní a kdovíjaká...). Cidlo namˇeˇrí hodnotu (analogovˇe) a hned v sobˇe ji pˇrevede na cˇ íslicový signál a z pouzdra už vede jenom to cˇ íslo. Galvanická vazba Rušení ze sítˇe asi všichni známe. To by mohlo pronikat do napájecích obvod˚u, a jak víme, na napájení závasisí nˇekteré vlastnosti hradel, napˇr. rychlost pˇrechodu 0/1. Ale i bez toho to m˚uže zahýbat s 1/0 v celém systému. Odstranˇení dosáhneme galvanickou vazbou, tj. trafo:
Cívky jsou navinuty proti sobˇe, což znamená, že se magnetické pole požere. Ty cívky právˇe 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ˇejaké cˇ leny, které jsou spojené a mezi tím spojením a nˇecˇ ím venku p˚usobí parazitní kapacitní vazba. M˚uže to být cokoliv, to je v tuhle chvíli jedno, ale mˇení se tam napˇetí v cˇ 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ˇredchozí cˇ len sv˚uj výstupní odpor, vznikne nám tam navíc ještˇe úbytek napˇetí: u = ic · Ro ˇ Rešení: 1. Snížit výstupní odpor - toho docílíme použitím výkonových budících cˇ len˚u. 2. Snížit/potlaˇcit parazitní kapacitu - to mužeme ˚ udˇelat nˇekolika zpusoby: ˚ (a) Použít stínˇení - to by šlo na vnˇejší vodiˇce, ale co cestiˇcky na DPS? (obrázek nahoˇre) (b) Kroucení - natoˇcíme signálový vodiˇc se zemnícím do spirály (c) Stˇrídání signálového vodiˇce se zemnícím na DPS Kroucení:
Stˇrídání vodiˇcu˚ :
110
Chapter 2. Otázky
CESR, Release
Induktivní vazba Je cˇ astá u pr˚umyslových systému u 50 Hz. Prostˇe a jednoduše: magnetické pole indukuje proud, kam jenom m˚uže. Jenže nem˚užeme použít magnetické stínˇení (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ˇrípadˇe zdroj rušení, takže ten neovlivníme. Ale pokusíme se ovlivnit plochu, tzn.: 1. Vodiˇce táhneme blízko sebe (v jednom kabelu nejlépe) - tím se samozˇrejmˇe zmenší celková plocha 2. Vodiˇce m˚užeme kroutit, cˇ ímž taky trochu eliminujeme rušení 3. Použijeme diferenˇcní pˇrenos 4. Nebo použijeme optron ˇ pˇrenos Diferencní
2.19. Rušení v elektronických systémech
111
CESR, Release
Pokud se nˇejaké rušení naindukuje na vodiˇc, je nám to fuk. Komparátor vyhodnocuje rozdíl, takže my máme obˇe cesty zkreslené stejnˇe, ale jejich rozdíl z˚ustává stejný. V pˇrípadˇe vyššího napˇetí m˚uže dojít k pr˚urazu vstupu diferenˇcního zesilovaˇce (kolem 100V, nebo podle toho, jak je zesilovaˇc konstruovaný). Optron
Tohle ˇrešení je pomalejší, do stovek kHz. Nicménˇe, rušení nám m˚uže zp˚usobit akorát zmˇenu intenzity diody. Ale na druhé stranˇe ten fototranzistor jenom spíná a zˇrejmˇe když si zvolíme vhodnou úroveˇn, tak úplnˇe eliminujeme rušení.
2.19.2 Vnitˇrní Pˇreslechy Pˇreslech je, že v d˚usledku vazby mezi vodiˇci se pˇrenáší cˇ ást signálu z jednoho vodiˇce na druhý. Samozˇrejmˇe ta vazba je v tomto pˇrípadˇe elmag.:
ˇ Rešením je vložit mezi signálové vodiˇce ty zemnící. Potom ta vazba nebude mezi signálovými tak silná, ale cˇ ást p˚ujdu na zem. Neznamená to ovšem úplnou eliminaci.
112
Chapter 2. Otázky
CESR, Release
Nepˇrizpusobené ˚ vedení Dlouhé vedení pˇri frekvencích v GHz znamená už kolem desítek cm. A jak víme, nepˇrizp˚usobené vedení zp˚usobuje odrazy.
Funguje to jako vstupní obvod CMOS. Takže vyšší napˇetí než Vcc jde nahoru, nižší než nula na zem. Z˚ustane 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.
ˇ Rešení: 1. Snažit se o co nejmenší poˇcet ohyb˚u. 2. Všechny ohyby tvoˇrit zkosené nebo úplnˇe oblé, namísto pravých úhl˚u. 3. Napájecí vodiˇce táhnout co nejblíž u sebe 4. Bezindukˇcní kondenzátory kolem cˇ len˚u - krátké pˇrívody, kapacita staˇcí desítky nF Ohyby vodiˇcu˚ :
Vodiˇce 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˚usobily nepˇrehlednost.
ˇ 3.1 CMOS logické cleny 3.1.1 Negace Y =A
Funguje to tak, že 1 na vstupu otevˇre tranzistor N a celé vstupní napˇetí jde do zemˇe. Tranzistor P je zavˇrený, takže se Ucc nemá jak dostat na výstup a Y bude 0. A opaˇcnˇe: pokud je A = 0, pak se otevˇre horní tr. P a napˇetí Ucc se objeví na výstupu. Souˇcasnˇe tranzistor N bude zavˇrený, takže Ucc nem˚uže jít dol˚u na zem, m˚uže se objevit jedinˇe na Y.
115
CESR, Release
Todo doplnit další cˇ leny Krásnˇe naˇcasovaná reklama od hostingu (zobrazuje se dole pod stránkou) :’D
116
Chapter 3. Další poznámky
CHAPTER
FOUR
SEARCH
• search
117