# 25 — Sekvenční logické obvody > [!abstract] O tématu > ==**Sekvenční logické obvody**== = obvody, jejichž ==**výstup závisí na aktuálních vstupech I na předchozím stavu**==. Mají **paměť**. Základem jsou ==**klopné obvody (flip-flopy)**==. > [!info] Maturitní otázka > **a)** Parametry a vlastnosti · **b)** Návrh sekvenčního obvodu · **c)** Využití · **d)** Synchronní a asynchronní · **e)** Příklady sekvenčních obvodů --- ## a) Parametry a vlastnosti ### Definice ==**Sekvenční obvod**== = elektronický obvod, který ==**uchovává informaci a pamatuje si předchozí stavy**==. Výstup závisí na vstupech **i na vnitřním stavu** obvodu. ### Stavba Skládá se ze ==**dvou částí**==: - ==**kombinační část**== — klasický kombinační obvod - ==**paměťová část**== — kombinační obvod se ==**zpětnou vazbou**==, realizovaný ==**klopnými obvody**== Vnitřní stav je dán ==**vnitřními proměnnými**==, které jsou uloženy v paměťových členech. > [!warning] Pozor na **hazardy** — vlivem zpoždění mohou vznikat krátké chybné stavy. ### Rozdíl proti kombinačním | | Kombinační | ==**Sekvenční**== | |---|---|---| | Výstup závisí | jen na vstupech | **na vstupech + vnitřním stavu** | | Paměť | NEMÁ | ==**MÁ** (klopné obvody)== | | Zpětná vazba | nemá | ==**má**== | | Příklad | sčítačka, MUX | čítač, registr, paměť | ### Klíčové parametry a vlastnosti - ==**Počet vnitřních stavů**== — kapacita a komplexnost obvodu - ==**Přenosové zpoždění**== (propagation delay) — rychlost odezvy - ==**Hodinová frekvence**== (Hz) — maximální taktovací rychlost - ==**Setup time**== — vstup musí být stabilní **před** hranou hodin - ==**Hold time**== — vstup musí být stabilní **po** hraně hodin - ==**Spotřeba energie**== - ==**Stabilita a spolehlivost**== --- ## b) Návrh sekvenčního obvodu ### Postup návrhu 1. ==**Specifikace**== — identifikace vstupů, výstupů a počtu stavů 2. ==**Návrh konečného automatu**== — definice přechodů mezi stavy (==**graf přechodů**==) 3. ==**Tabulka přechodů**== — pro každý stav a vstup → další stav a výstup 4. ==**Kódování stavů**== — přiřazení binárních hodnot stavům 5. ==**Volba klopných obvodů**== (D, JK, T) 6. ==**Implementace logických funkcí**== — Booleovský výraz pro vstupy KO (Karnaugh mapa) 7. ==**Schéma a ověření**== — klopné obvody + kombinační logika ### Konečné automaty (FSM — Finite State Machine) Standardní nástroj pro popis sekvenčního obvodu. Učitel uváděl příklad ==**kódového zámku otvíraného třemi čísly**==. ==**Mealyho konečný automat**== (graf přechodů): - ==**kolečka**== = všechny možné **vnitřní stavy** - ==**šipky (hrany)**== = **přechody** označené vstupní kombinací - ==**za lomítkem výstupní hodnota**== po přechodu - výstup závisí na ==**stavu + vstupech**== ==**Mooreův konečný automat**==: - výstup závisí ==**jen na stavu**== Další možnost: ==**Petriho sítě**==. --- ## c) Využití sekvenčních obvodů ### Paměťové prvky - ==**Registry**== — uchovávají data pro okamžitý přístup (PC, IR, ACC...) - ==**Paměťové buňky (RAM)**== — SRAM, DRAM - ==**Cache**== — vyrovnávací paměť (typicky SRAM) ### Procesorové jednotky - ==**Řadič (CU)**== — řídí tok dat, instrukční cyklus - ==**Čítače a časovače**== — počítání událostí, generování přerušení - ==**Stavové automaty (FSM)**== — řízení složitých systémů ### Komunikační systémy - ==**Sériové převodníky**== — UART, SPI - ==**Posuvné registry**== — sériový-paralelní převod - ==**Síťové protokoly**== ### Další - ==**Mikrokontroléry**== (Arduino, ESP), ==**PLC**== — řízení strojů - ==**Klávesnice**== — detekce stisku kláves - ==**Semafory, výtahy, automaty na nápoje**== --- ## d) Synchronní a asynchronní sekvenční obvody ### Asynchronní ==**Reaguje ihned na změnu vstupních hodnot**== — bez hodinového signálu. - ==**Rychlejší**== (nečeká na takt) - ==**Náchylné k hazardům**== a chybám - ==**Obtížně navrhované**== - použití: rychlé speciální aplikace ### Synchronní ==**Reaguje na změnu hodinového signálu**==. Dvě varianty: - ==**Řízené úrovní (latch)**== — reaguje po celou dobu H úrovně hodin - ==**Řízené hranou (flip-flop)**== — reaguje pouze v ==**momentu změny hodin**== - > [!tip] ==**Drtivá většina dnešních obvodů!**== Výhody synchronních: ==**předvídatelné chování, snadná diagnostika, standard v moderním HW**==. ### Hodinový signál (clock) ==**Pravidelný obdélníkový signál**== vysílaný ==**GHI — Generátorem Hodinového Impulzu**== (oscilátor, krystal). - ==**T = 1 / f**== [s] (T = perioda, f = frekvence, např. 3 GHz) - ==**Náběžná hrana (rising edge)**== — přechod 0 → 1 - ==**Sestupná hrana (falling edge)**== — přechod 1 → 0 - klopné obvody reagují obvykle na **jednu z hran** --- ## e) Příklady sekvenčních obvodů ### Klopné obvody (multivibrátory) ==**Klopný obvod = multivibrátor**== — nabývá ==**právě dvou napěťových stavů**==, přechod mezi nimi je ==**skokový**==. Druhy: - ==**Astabilní**== — nemá stabilní stav, neustále kmitá (impulzní generátory, blikače) - ==**Monostabilní**== — má jeden stabilní stav, překlopí s příchodem hodin (zpožďovací prvky) - ==**Bistabilní**== — ==**má dva stabilní stavy, slouží jako paměťové prvky**== — **tyto nás zajímají!** ### Bistabilní klopné obvody ==**Základní stavební prvek sekvenčních obvodů**== — uchovává 1 bit. Typy: ==**RS, JK, D, T**==. #### RS klopný obvod (Set-Reset) ==**Nejjednodušší**== klopný obvod. Realizovaný pomocí ==**hradel NAND nebo NOR**==. - ==**S**== (Set) → Q = 1 - ==**R**== (Reset) → Q = 0 | S | R | Q (další) | | |---|---|---|---| | 0 | 0 | Q (drží) | uchová stav | | 0 | 1 | 0 | reset | | 1 | 0 | 1 | set | | 1 | 1 | ==**zakázáno**== | nedefinovaný stav | #### JK klopný obvod ==**„Jack Kilby" / „jump-kill"**== — podobné jako RS, ale ==**odstraňuje zakázaný stav**==. | J | K | Q (další) | | |---|---|---|---| | 0 | 0 | Q | drží stav | | 0 | 1 | 0 | reset | | 1 | 0 | 1 | set | | 1 | 1 | ==**¬Q**== | ==**překlopí (toggle)**== | #### D klopný obvod (Data) ==**Jednobitová paměť**==. Nejjednodušší použití. | D | Q (po hraně) | |---|---| | 0 | 0 | | 1 | 1 | ==**Výstup Q kopíruje D při hraně hodin**==. Žádné zakázané stavy. Provedení: ==**řízený hranou (flip-flop)**== nebo ==**řízený úrovní (latch)**==. #### T klopný obvod (Trigger) ==**Dělička frekvence**==. Používá se v ==**čítačích**==. | T | Q (další) | |---|---| | 0 | Q (drží) | | 1 | ==**¬Q (překlopí)**== | ### Registry ==**Skupina klopných obvodů (typicky D)**== pro uchování ==**vícebitového slova**== (8, 16, 32, 64 bitů). - ==**Paralelní registr**== — všechny bity zapsány najednou - ==**Posuvný registr (shift register)**== — bity se posouvají při každém taktu (sériový-paralelní převod) ### Čítače ==**Sekvenční obvod, který počítá taktovací pulzy**==. - ==**Vzestupný (up-counter)**== / ==**Sestupný (down-counter)**== - ==**Asynchronní (ripple counter)**== — jednodušší, ale pomalejší - ==**Synchronní**== — všechny bity současně, rychlejší - ==**Modulo N**== — počítá 0 až (N-1), pak nuluje (např. modulo 10 pro BCD) - ==**Binární**== vs ==**Grayův**== čítač ### Sériové převodníky - ==**UART**==, ==**SPI**== — sériová komunikace mezi zařízeními ### Paměti - ==**SRAM**== — 6 tranzistorů (typu flip-flop), rychlá, drahá → ==**cache**== - ==**DRAM**== — kondenzátor + tranzistor, levná, nutná obnova → ==**hlavní RAM**== - viz [[09 - Polovodicove pameti|otázka 9]] ### Procesor ==**Velmi složitý sekvenční obvod**== — obsahuje ==**registry, řadič (FSM), čítače, cache**==. --- ## Shrnutí > [!summary] Co si pamatovat > **a) Vlastnosti:** ==**výstup závisí na vstupech + vnitřním stavu**==. Skládá se z ==**kombinační části + paměťové části se zpětnou vazbou**== (klopné obvody). Pozor na hazardy. > **b) Návrh:** specifikace → ==**graf přechodů (Mealy/Moore automat)**== → tabulka přechodů → kódování → volba KO → schéma. > **c) Využití:** ==**registry, RAM/cache, čítače, řadič CPU, sériové převodníky (UART/SPI), FSM**==. > **d) Synchronní vs asynchronní:** asynchronní = reaguje hned (rychlé, rizikové); synchronní = řízené ==**hodinami (GHI)**==, dále ==**latch (úrovní)**== nebo ==**flip-flop (hranou — drtivá většina)**==. > **e) Příklady:** ==**bistabilní KO (RS, JK, D, T)**==, ==**registry (paralelní, posuvné)**==, ==**čítače (binární, Grayův, modulo N)**==, ==**UART/SPI**==, ==**paměti (SRAM, DRAM)**==.