Kalábovi

Kalábovic wikina

Uživatelské nástroje

Nástroje pro tento web


pitel:isz:sekvencni_obvody

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

pitel:isz:sekvencni_obvody [03. 07. 2012, 13.53:44] (aktuální)
Řádek 1: Řádek 1:
 +====== Sekvenční logické obvody ======
 +Na rozdíl od [[kombinacni_obvody|kombinačních logických obvodů]] mají zpětnou vazbu.
 +===== Klopné obvody =====
 +Mají dva stavy a mezi nimi se přepínají.
  
 +==== Astabilní ====
 +Sám se překlápí mezi stavy, generuje periodický obdélníkový signál. Perioda každého stavu je //t = ln(2)RC//, celková perioda je tedy //T = t<​sub>​1</​sub>​ + t<​sub>​2</​sub>​ = ln(2) R<​sub>​2</​sub>​ C<​sub>​1</​sub>​ + ln(2) R<​sub>​3</​sub>​ C<​sub>​2</​sub>//​.
 +
 +Princip: Jeden z tranzistorů má o maličko nižší potřebné napětí na bázi, aby se otevřel. Tzn. na začátku se jeden tranzistor (řekněme Q1) otevře dřív. V tu chvíli se C1 začíná vybíjet a C2 naopak nabíjet. Jakmile se C1 vybije, otočí se na něm polarita a nabíjí se opačným směrem. To způsobí napětí na Q2, který se následně otevře, což zařídí vybíjení C2 a následné uzavření Q1. V tu chvíli se proces se otáčí.
 +
 +[[http://​commons.wikimedia.org/​wiki/​File:​Transistor_Multivibrator.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​6/​6a/​Transistor_Multivibrator.svg/​500px-Transistor_Multivibrator.svg.png |Astabilní klopný obvod}}]]
 +
 +[[http://​www.falstad.com/​circuit/​e-multivib-a.html|Interaktivní ukázka]]
 +==== Monostabilní ====
 +Má jeden stabilní stav, pro přechod do druhého je potřeba jej //​nakopnout//,​ po čase //t = ln(2) R<​sub>​2</​sub>​ C<​sub>​1</​sub>//​ se zase vrátí zpět do svého stabilního stavu.
 +
 +[[http://​commons.wikimedia.org/​wiki/​File:​Transistor_Monostable.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​5/​59/​Transistor_Monostable.svg/​500px-Transistor_Monostable.svg.png |Monostabilní klopný obvod}}]]
 +
 +[[http://​www.falstad.com/​circuit/​e-multivib-mono.html|Interaktivní ukázka]]
 +==== Bistabilní ====
 +Má oba stavy stabilní, pro přechod je potřeba do něj //kopnout// vždy. Lze jej tedy použít jako jednoduchou paměť.
 +
 +[[http://​commons.wikimedia.org/​wiki/​File:​Transistor_Bistable.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​9/​98/​Transistor_Bistable.svg/​500px-Transistor_Bistable.svg.png |Bistabilní klopný obvod}}]]
 +
 +[[http://​www.falstad.com/​circuit/​e-multivib-bi.html|Interaktivní ukázka]]
 +==== RS ====
 +[[http://​commons.wikimedia.org/​wiki/​File:​SR_(NAND)_Flip-flop.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​9/​94/​SR_(NAND)_Flip-flop.svg/​100px-SR_(NAND)_Flip-flop.svg.png|RS}}]]
 +Reset/Set
 +^  R  ^  S  ^  Akce  ^  Q  ^  Q<​sub>​další</​sub> ​ ^
 +|  0  |  0  |  Ponechá stav  |  Q<​sub>​minulý</​sub> ​ |  Q  |
 +|  0  |  1  |  Set  |  0  |  1  |
 +|  1  |  0  |  Reset  |  1  |  0  |
 +|  1  |  1  |  Nedefinovaný stav  |||
 +
 +RS klopný obvod se obvykle staví [[http://​upload.wikimedia.org/​wikipedia/​commons/​e/​e1/​Flipflop_SR2.svg|ze dvou NANDů]]
 +
 +[[http://​www.falstad.com/​circuit/​e-nandff.html|Interaktivní ukázka]]
 +==== T ====
 +[[http://​commons.wikimedia.org/​wiki/​File:​T-Type_Flip-flop.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​a/​a9/​T-Type_Flip-flop.svg/​100px-T-Type_Flip-flop.svg.png|T}}]]
 +Toggle, přepínač. Změna se provede pouze pokud přijde signál hodin!
 +^  T  ^  Q  ^  Q<​sub>​další</​sub> ​ ^  Akce  ^
 +|  0  |  0  |  0  |  Ponechá stav  |
 +|  0  |  1  |  1  |  Ponechá stav  |
 +|  1  |  0  |  1  |  Přepnutí ​ |
 +|  1  |  1  |  0  |  Přepnutí ​ |
 +
 +==== JK ====
 +[[http://​commons.wikimedia.org/​wiki/​File:​JK_Flip-flop_(Simple)_Symbol.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​3/​37/​JK_Flip-flop_%28Simple%29_Symbol.svg/​100px-JK_Flip-flop_%28Simple%29_Symbol.svg.png|JK}}]]
 +Kombinace RS a T. Odstraňuje nedefinovaný stav u RS (J = S, K = R) při kterém funguje jako T.
 +^  J  ^  K  ^  Q<​sub>​další</​sub> ​ ^  Akce  ^
 +|  0  |  0  |  Q<​sub>​minulý</​sub> ​ |  Ponechá stav  |
 +|  0  |  1  |  0  |  Reset  |
 +|  1  |  0  |  1  |  Set  |
 +|  1  |  1  |  !Q<​sub>​minulý</​sub> ​ |  Přepnutí ​ |
 +
 +[[http://​www.falstad.com/​circuit/​e-jkff.html|Interaktivní ukázka]]
 +==== D ====
 +[[http://​commons.wikimedia.org/​wiki/​File:​D_Flip-flop_(Simple)_Symbol.svg|{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​5/​57/​D_Flip-flop_%28Simple%29_Symbol.svg/​100px-D_Flip-flop_%28Simple%29_Symbol.svg.png|D}}]]
 +Data -- je-li na D 1, nastaví se při impulzu z hodin na 1, je-li 0, nastaví se na 0. Bez impulzu hodin stav vstup D ignoruje a pamatuje si předchozí stav.
 +^  Hodiny ​ ^  D  ^  Q  ^
 +|  1  |  0  |  0  |
 +|  1  |  1  |  1  |
 +|  0  | |  Q<​sub>​minulý</​sub> ​ |
 +
 +[[http://​www.falstad.com/​circuit/​e-edgedff.html|Interaktivní ukázka]]
 +===== Čítače =====
 +Nejjednodušeji je to řada D klopných obvodů které mají vždy svůj invertovaný výstup připojený na svůj vlastní vstup, a jako vstup hodin používají výstup předchozího klopného obvodu (kromě prvního, ten má normální hodinový vstup). Kromě binárního čítače fungují také jako děličky frekvencí.
 +[[http://​www.eecs.tufts.edu/​~dsculley/​tutorial/​flopsandcounters/​flops6.html|{{ http://​www.eecs.tufts.edu/​~dsculley/​tutorial/​flopsandcounters/​rippleCounter.jpg |Ripple counter}}]]
 +
 +[[http://​www.falstad.com/​circuit/​e-counter.html|Interaktivní ukázka]]
 +===== Registry =====
 +==== Paralelní ====
 +Nejjednodušší. Paralelně zapojené D KO se společnými hodinami.
 +
 +==== Posuvný ====
 +Také z D KO se společnými hodinami, ale zapojených za sebe, výstupy vedou na vstupy (kromě prvního), zde také najdeme výstupní bity.
 +
 +Při zapojení posledního negovaného výstupu na první vstup dostaneme čítač.
 +===== Stavové automaty =====
 +Sekvenční automat je šestice:
 +A=(X,​Y,​Q,​q0,​P,​V) kde:
 +  - X je vstupní abeceda (množina hodnot vstupního vektoru)
 +  - Y je výstupní abeceda (množina hodnot výstupního vektoru)
 +  - Q je vnitřní abeceda (množina hodnot vektoru vnitřního stavu)
 +  - q0 je podmnožinou Q, je to počáteční stav, ze kterého se vždy startuje
 +  - P je přechodová funkce, která některým dvojicím z <m>X * Q</m> přirazuje prvek z Q a platí <​m>​q_(i+1) = P(x_i,​q_i)</​m>,​ pro i = 0,1,2,...,n
 +  - V je výstupní funkce, která některým dvojicím z <m>X * Q</m> přirazuje prvek z Y.
 +
 +Existují dva způsoby definice výstupní funkce: Mealyho a Moorův.
 +
 +==== Mealyho automat ====
 +Výstup je funkcí vstupu i stavu.
 +
 +==== Moorův automat ====
 +Výstup je funkcí pouze stavu.
 +
 +==== Reprezentace ====
 +Pomocí pravdivostních tabulek nebo grafů přechodů.
 +==== Implementace ====
 +Pro uložení informace o stavu automatu použijeme klopné obvody. Pro generování výstupů použijeme kombinační logické obvody. Pro detaily syntézy těchto obvodů doporučuju projít si slajdy z INC (inc10_syncho.pdf).
 +
 +V programovacích jazycích se implementují pomocí [[datove ridici struktury#​cykly|cyklu]] a [[datove ridici struktury#​podmineny prikaz|switche]].
 +
 +===== Shrnutí (na co nezapomenout) =====
 +  * mají zpětnou vazbu (paměť, stav)
 +  * klopné obvody: astabilní, monostabilní,​ bistabilní podle v kolika stavech jsou stabilní
 +  * astabilní generuje hodiny, monostabilní krátký impulsy a má jeden vstup, bistabilní má set a reset
 +  * všechny tři jsou multivibrátory (přepíná mezi více stavama, prostě je to název)
 +  * klopné obvody mají 2 výstupy: normální a invertovaný
 +  * RS má nedefinovaný stav (R=1, S=1), staví se ze dvou NANDů
 +  * T je přepínač,​ ke změně dochází jenom při náběžné hraně hodinového signálu
 +  * JK je RS, avšak nemá nedefinovaný stav, místo něj ten stav funguje jako T (tj. na vstupu má i hodiny)
 +  * D nastaví na výstup to, co je na vstupu s hodinovým impulsem
 +  * čítač je řada D klopných obvodů, vstupem je jejich vlastní invertovaný výstup => delička frekvence (dělí dvěma), jako hodiny používá výstup z předchozího D KO, výstupy reprezentují jednotlivé bity čísla
 +  * paralelní registr je několik D KO vedle sebe, posuvný registr je několik D KO zapojených za sebe (lze ho zapojit jako čítač)
 +  * stavový automat je typ zapojení, který má několik stavů a může mezi nima přecházet pomocí vstupů - jestli výstup závisí jenom na stavu je to Moorův automat, jestli závisí i na vstupech je to Mealyho automat
 +  * automaty se reprezentují pomocí pravdivostních tabulek nebo grafů přechodů, při implementaci se na stavy používají KO, na výstupy kombinační log. obvody (cyklus + switch)
 +
 +==== Co je třeba vědět kdyby se zeptali ====
 +  * astabilní KO se nějakou dobu inicializuje/​stabilizuje a generuje periodický obdélníkový signál, využívá kondenzátory
 +  * monostabilní generuje jeden obdélníkový impuls, odpovídá době vybíjení kondenzátoru
 +  * z posuvnýho registru se čítač dělá zapojením posledního invertovaného výstupu na první vstup (dá se tím udělat třeba dělení frekvence deseti)
 +  * sekvenční automat je šestice obsahující množinu hodnot vstupů, množinu hodnot výstupů, množinu hodnot stavů, počáteční stav, přechodovou funkci pro změnu stavu, výstupní funkce pro zjištení výstupu
/var/www/wiki/data/pages/pitel/isz/sekvencni_obvody.txt · Poslední úprava: 03. 07. 2012, 13.53:44 (upraveno mimo DokuWiki)