Sekvenční logika

Cíle přednášky

Sekvenční logické obvody si vždy něco pamatují (obsah paměti, stav klopného obvodu, registru, hodnotu čítače), mají svůj vnitřní stav — stav na výstupech pak odpovídá jak momentálnímu stavu na vstupech, ale i vnitřnímu stavu.

Co je sekvenční logika?

  • také logika s vnitřním stavem zahrnuje obvody, jejich výstupní stav (stav na výstupech) nemusí záviset pouze na momentálním stavu na vstupech, ale také na vnitřním stavu obvodu.

  • například klopný obvod typu D (Data flip-flop, D-flip-flop) se vstupem dat D, hodinovým vstupem CLK a výstupem Q:

  • jeho stav se změní ve chvíli aktivace hodinovým pulzem CLK, jinak zůstává.

Sekvenční logické obvody tedy mají vnitřní stav, paměť.

Typy základních sekvenčních obvodů

Západka (latch)

1bitový paměťový prvek, obvykle asynchronní nebo úrovňově řízený; typický příklad je R-S západka.

Klopný obvod (flip-flop)

1bitový paměťový prvek, obvykle synchronní a mění stav při určené hraně hodinového signálu.

Registr

(register) vícebitová paměť (např. 8-bitová), obvykle složená z více západek nebo klopných obvodů; uchovává jeden vícebitový údaj.

Posuvný registr

(shift-register) speciální registr, který umí bity při hodinových pulsech posouvat.

Čítač

(counter) sekvenční obvod, který uchovává číslo a při hodinových impulsech jej zvyšuje nebosnižuje.

Rozdíl latch vs. flip-flop je hlavně v řízení změny stavu: latch reaguje po dobu aktivní úrovně řídicího signálu, zatímco flip-flop typicky jen v okamžiku náběžné nebo sestupné hrany hodin.

Klopné obvody

  • Klopné obvody si pamatují stav a obvykle mění výstup v návaznosti na hodinový signál.

  • Do širší rodiny 1bitových paměťových prvků patří i západky (latches), které jsou asynchronní nebo úrovňově řízené.

R-S západka (Reset-Set, R-S latch)

  • R-S je základní sekvenční logický obvod, který slouží jako jednobitová paměť.

  • Má jeden vstup pro nulování (R), jeden pro nastavení do 1 (S).

  • Přesněji jde o R-S západku (R-S latch), ne o hranově řízený klopný obvod.

  • Je asynchronní; na rozdíl od dalšího klopného obvodu D nemá hodinový vstup a jeho výstup se mění okamžitě, když se změní vstup R či S do aktivní úrovně.

  • Kromě výstupu obvykle značeného Q mohou mít invertovaný výstup Q nesoucí opačnou hodnotu než Q.

Schematická značka R-S

rs latch symbol

Animace R-S západky

Klopný obvod D (Data)

  • Je synchronní; mění se při příchodu hodinového pulsu = při změně signálu CLK.

  • Zápis může být iniciován náběžnou ↑ (0 → 1) nebo sestupnou ↓ (1 → 0) hranou CLK.

  • Hodnota přítomná na vstupu D ve chvíli aktivace zápisu se vepíše do registru a na výstup Q.

  • Fakticky jde o jednobitový registr, pamatuje si 1 bit.

Schematická značka D klopného obvodu

d ff symbol

Animace klopného obvodu D

Klopný obvod D se vstupy R-S

  • Běžně se používají obvody, které mají jak vstup D řízený hodinami (synchronně), tak R a S chovající se asynchronně (reset či nastavení se provede hned).

  • Typický příklad: obvod 7474 z řady TTL logiky je dvojitý klopný obvod D se vstupy R a S.

Pravdivostní tabulka pro D klopný obvod s asynchronním S a R

CLK (↑)RSDQ (nový)Q (nový)Co se stalo

X

0

X

X

0

1

Proběhl Reset

X

X

0

X

1

0

Proběhl Set

↑

1

1

0

0

1

Zapsána 0 s náběžnou hranou hodin

↑

1

1

1

1

0

Zapsána 1 s náběžnou hranou hodin

Pokud jsou S = 0 a R = 0 zároveň, stav je nedefinovaný. (Nelze současně resetovat a nastavovat.)

Klopný obvod J-K

  • Poměrně univerzální klopný obvod, jenž může funkčně nahradit R-S západku i D klopný obvod.

Schematická značka J-K

jk ff symbol
JKChování výstupu Q při náběžné hraně hodin

1

0

Výstup Q přejde do logické 1 (nastavení).

0

1

Výstup Q přejde do logické 0 (vynulování).

1

1

Výstup Q se překlopení do opačného stavu než byl.

0

0

Výstup Q zůstane nezměněn.

Animace klopného obvodu J-K

Použití klopných obvodů

Paměť

zapamatování 1bitového stavu: třeba světlo zapnuto/vypnuto

Dělič

zavedeme-li Q zpět na vstup, vytvoříme dělič hodinové frekvence

  • každý hodinový puls obrátí hodnotu na výstupu, protože se za vstupu načte předchozí Q,

  • na výstupech Q1…​ dostáváme tak postupně pulzy s frekvencí f/2, f/4, f/8 …​

Block diagram of the frequency divider
Obr. 1. Credits: Xiong et al. Journal of Biological Engineering (2015) 9:14

Registry

Registry mají určitý počet bitů, které se pamatují — taková elementární paměť na jeden údaj.

Paralelní registry

  • Klopný obvod RS se dal označit za 1bitový registr, pamatuje si 1 bit, viz [key_ff]

  • 1 bit je ale málo, většinou potřebujeme registr na 4, 8, 32 …​ bitů — tedy paralelní registr.

  • Registry často mívají třístavové výstupy (tri-state output).

n0020a.png large
Obr. 2. 8bitový registr s resetem SN74LS273

Schematická značka paralelního registru

parallel register symbol

Značení obvodů

  • SN74LS273 je konkrétní 8bitový registr

    SN

    je kód, který používá výrobce (Texas Instruments), jinak nic neznamená.

    74

    označuje klasickou řadu logických obvodů pro běžné průmyslové použití.

    LS

    označuje technologii: Low-power Schottky

    273

    uvádí, že jde o 8bitový registr

54 misto 74 označuje řadu funkčně stejných logických obvodů, ale pro vojenské použití (vyšší odolnost).

Diagram vstupů a výstupů

  • Dle standardu ANSI/IEEE 91-1984 se vstupy a výstupy obvodů znázorňují diagramem, jako je tento.

  • Je zde vidět, co je vstup (signály xD vlevo), co výstup (signály xQ vpravo)

  • V jaké úrovni jsou signály aktivní poznáme podle případného nadtržení označení signálu:

  • zde vstup CLR (reset) je aktivní v úrovni L (active-low).

sn74ls273 diagram
Obr. 3. Diagram SN74273

Pouzdro

  • Představuje nákres skutečného tvaru pouzdra — zde provedení DIL 20 (Dual-in-line se 20 vývody).

  • Umístění jednotlivých signálů (vstup/výstup, napájení) na vývody odpovídá reálnému výrobku.

sn74ls273 package
Obr. 4. Pouzdro SN74273

SN74273: funkční (pravdivostní) tabulka

sn74ls273 table
Obr. 5. Funkční (pravdivostní) tabulka SN74273

Příklad: registr se třístavovými výstupy

  • CD74HCT574

  • HIGHSPEED CMOS LOGIC OCTAL D-TYPE FLIP-FLOP 3STATE, POSITIVE-EDGE TRIGGERED

    HIGHSPEED CMOS LOGIC

    vysokorychlostní CMOS (HCT)

    OCTAL FLIP-FLOP

    8-bitový registr

    3STATE

    se třístavovými výstupy,

    POSITIVE-EDGE TRIGGERED

    zapisovaný náběžnou hranou hodin

Oproti předchozímu registru vstup OE

  • oproti předchozímu registru další vstup OE (Output Enabled), je active-low

    OE = 0

    pak jsou výstupy Qi aktivní a je na nich 0 nebo 1

    OE = 1

    pak jsou výstupy Qi neaktivní, ve stavu Z (vysoká impedance), tedy odpojené

CD74HCT574 table
Obr. 6. CD74HCT574

Posuvné (sériové) registry

  • Dva typy posuvných registrů:

    serial-in → parallel-out

    krmí se postupně bity a najednou lze přečíst obsah

    parallel-in → serial-out

    nakrmí se najednou a postupně umí bity vydávat ven

Schematická značka SIPO registru

shift sipo symbol

Sériový (posuvný) registr 74LS164

Princip činnosti:
  • osm klopných obvodů D tvoří řetězec.

  • Každý hodinový impuls posune bity směrem k vyšším výstupům.

  • Nový bit je přiveden na A/B (logické AND dvou vstupů).

  • Asynchronní nCLR (aktivní LOW) vynuluje celý registr.

Vstupy a výstupy 74LS164

Vstupy:
A, B

sériové datové vstupy (AND)

CLK

hodinový vstup (aktivní náběžná hrana)

nCLR

reset (aktivní LOW)

Výstupy:
Q0 … Q7

paralelní data

Časování a funkce 74LS164

Při náběžné hraně hodin:
  1. Hodnota z A/B se načte do Q0.

  2. Každé Qn se přesune do Qn+1.

  3. nCLR = 0 → všechna Q = 0 (asynchronně).

Typické parametry:
  • fmax ≈ 25 MHz

  • tpd(CLK→Q) ≈ 20 ns (zpozdění mezi hodinovým pulsem a promítnutím na výstup)

  • Napájení 5 V TTL

Paralelní registr 74LS165

  • Konkrétní součástka SN74165: PARALLEL-LOAD 8-BIT SHIFT REGISTERS

  • 8-bitový registr opačné funkce než 74LS164

  • Umožňuje paralelní načtení 8 bitů a jejich sériový výstup.

  • nPL (Parallel Load) = 0 → vstupy D0 – D7 se načtou.

  • CLK↑ → bity se posouvají doprava, Q7 → seriový výstup (Qh).

  • SH/nLD a CLK INH umožňují řídit, kdy se data posouvají.

Vstupy

D0 – D7, nPL, CLK, CLK INH, SER

Výstupy

Qh, Qh’ (invertovaný)

Schematická značka PISO registru

shift piso symbol

Západky (latches)

  • Západka (latch) nebo alternativně závora je 1bitový paměťový prvek, který není hranově synchronní jako typický klopný obvod.

  • Základním příkladem je R-S západka probíraná v předchozí části.

  • Jako samostatné obvody se dělají většinou 8bitové registry obsahující tedy 8 západek.

  • Mohou ale nemusí mít třístavové výstupy.

  • Častěji ano kvůli připojení výstupů více obvodů na společnou sběrnici.

Schematická značka D západky

d latch symbol

Rozdíl klopný obvod D vs západka

Klopný obvod D (D-Flip-flop) a západka jsou dosti podobné prvky (1-bitové registry) s jedinou principiální odlišností:

Klopný obvod D
  • zapamatuje si hodnotu přítomnou na vstupu D v okamžiku aktivace

  • aktivace třeba náběžnou hranou hodin (CLK transition from LOW to HIGH)

Západka
  • po dobu aktivačního signálu (LE = Latch Enabled) je "průchozí" a hodnota ze vstupu D se hned promítá na výstup.

  • Jakmile aktivační signál pomine, zůstává v západce poslední hodnota.

Lze tedy říci, že klopný obvod D je prvek synchronní (změna stavu v okamžiku časového pulzu), zatímco západka je asynchronní nebo úrovňově řízená (změna stavu může proběhnout kdykoli po dobu aktivity povolovacího signálu).

Příklady

mm74hct573
Obr. 7. 3-STATE Octal D-Type Latch
  • Registr z klopných obvodů: MM74HCT574

  • onsemi MM74HCT574

mm74hct574
Obr. 8. 3-STATE Octal D-Type Flip-Flop

Čítače

Čítače jsou další ze skupiny základních sekvenčních obvodů.

  • V danou chvíli v sobě drží hodnotu (číslo) v mezích rozsahu čítače, která je dostupná na výstupech, značených například QA až QD.

  • Nejjednodušší mívají rozsah 4 bity, tzn. 0..24-1 = 0..15.

  • Umožňují čítání nahoru (přičítání jedničky, inkrementaci, count up), někdy i dolů (odečítání jedničky count down).

Schematická značka čítače

counter symbol

Synchronní čítače

  • Čítání se obvykle děje s příchodem hodinového impulsu, tj. s jeho náběžnou nebo sestupnou hranou dle dokumentace.

  • Některé umí asynchronní (nezávislý) reset (vstupy jako RST, CLR): okamžité vynulování.

  • Do některých se dá asynchronně zapsat hodnota zadaná na vstupech (LOAD, LD).

  • Takové čítače mohou sloužit i jako registry.

Příklad: Čítač SN74LS191

Table 1. Vstupní a výstupní signály čítače SN74LS191
signálvýznam

D/U

směr čítání 1 dolů, 0 nahoru

LOAD

načtení hodnoty z datových vstupů

CTEN

count enabled, povolení čítání

A–D

výstupy: A nejnižší bit, D nejvyšší

MAX/MIN

dosaženo maximum/minimum

CLOCK

hodinový vstup

RCO

ripple carry out

Výstup MAX/MIN je aktivní tehdy, je-li dosažena maximální hodnota 15 (11112 při čítání nahoru D/U = 0) nebo 0 (00002 při čítání dolů D/U = 1).

Časové průběhy

Diagramy časových průběhů popisují chování obvodu v modelových situacích:

  1. první událostí je aktivace LOAD = 0, což způsobí zápis hodnoty 13 (11012) ze vstupů A..D

  2. mezitím jsou aktivní CTEN = 0 (povolení čítání) a D/U = 0, což značí čítání nahoru (Up)

  3. s příchodem náběžné hrany CLOCK se výstup zvýší na 14,

  1. a s dalším CLOCK pulzem na 15 (11112), čímž se aktivuje MAX = 1

  2. s bezprostředně následující sestupnou hranou CLOCK se aktivuje ripple carry out RCO = 0, což značí,

  3. že s další náběžnou hranou CLOCK čítač přeteče a vynuluje se. Signál RCO lze využít při kaskádovém propojení dvou či více čítačů; pak lze se dvěma počítat namísto 0..15 až 0..255 tedy na 2 * 4 = 8 bitech.

SN74LS191 v pouzdře SOIC

SN74LS191

Datasheet SN74LS191

  • Diagram časového průběhu čítače

ls191

SN74LS191 (Texas Instruments)

Na další kapitolu: Procesory