Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
— | pitel:isz:sekvencni_obvody [30. 12. 2022, 13.43:01] (aktuální) – vytvořeno - upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řá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< | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | [[http:// | ||
+ | ==== Monostabilní ==== | ||
+ | Má jeden stabilní stav, pro přechod do druhého je potřeba jej // | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | ==== 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:// | ||
+ | |||
+ | [[http:// | ||
+ | ==== RS ==== | ||
+ | [[http:// | ||
+ | Reset/Set | ||
+ | ^ R ^ S ^ Akce ^ Q ^ Q< | ||
+ | | 0 | 0 | Ponechá stav | Q< | ||
+ | | 0 | 1 | Set | 0 | 1 | | ||
+ | | 1 | 0 | Reset | 1 | 0 | | ||
+ | | 1 | 1 | Nedefinovaný stav ||| | ||
+ | |||
+ | RS klopný obvod se obvykle staví [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | ==== T ==== | ||
+ | [[http:// | ||
+ | Toggle, přepínač. Změna se provede pouze pokud přijde signál hodin! | ||
+ | ^ T ^ Q ^ Q< | ||
+ | | 0 | 0 | 0 | Ponechá stav | | ||
+ | | 0 | 1 | 1 | Ponechá stav | | ||
+ | | 1 | 0 | 1 | Přepnutí | ||
+ | | 1 | 1 | 0 | Přepnutí | ||
+ | |||
+ | ==== JK ==== | ||
+ | [[http:// | ||
+ | Kombinace RS a T. Odstraňuje nedefinovaný stav u RS (J = S, K = R) při kterém funguje jako T. | ||
+ | ^ J ^ K ^ Q< | ||
+ | | 0 | 0 | Q< | ||
+ | | 0 | 1 | 0 | Reset | | ||
+ | | 1 | 0 | 1 | Set | | ||
+ | | 1 | 1 | !Q< | ||
+ | |||
+ | [[http:// | ||
+ | ==== D ==== | ||
+ | [[http:// | ||
+ | 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 | ||
+ | | 1 | 0 | 0 | | ||
+ | | 1 | 1 | 1 | | ||
+ | | 0 | | Q< | ||
+ | |||
+ | [[http:// | ||
+ | ===== Čí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:// | ||
+ | |||
+ | [[http:// | ||
+ | ===== 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, | ||
+ | - 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í < | ||
+ | - 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# | ||
+ | |||
+ | ===== Shrnutí (na co nezapomenout) ===== | ||
+ | * mají zpětnou vazbu (paměť, stav) | ||
+ | * klopné obvody: astabilní, monostabilní, | ||
+ | * 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č, | ||
+ | * 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/ | ||
+ | * 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 |