Stavový diagram a návrh obvodov
Stavový diagram a návrh obvodov [1] Stavy sekvenčných obvodov sú definované dvoma druhmi veličín: vstupnými údajmi pamäťovými prvkami Správanie sa obvodu môžeme popísať (okrem tabuľkovej formy) aj tzv. stavovým diagramom, ktorý znázorňuje podmienky, za ktorých obvod prechádza z jedného stavu do iného. Stavom obvodu rozumieme hodnoty jeho pamäťových prvkov v danom okamihu. Pri práci so stavovým diagramom rozlišujeme dva časové okamžiky a im prislúchajúce stavy obvodu: východzí stav a stav po komutácii (stav po vykonaní jedného kroku) Označujeme ich indexmi napr. n a n+1.
Stavový diagram a návrh obvodov [2] Pre D-klopný obvod sú takýmito veličinami vstupná hodnota D a stav priameho výstupu obvodu Q. Tabuľkovo: D=0 Q=0 Q=1 D n Q n Q n+1 0 0 0 0 1 0 nulovanie 1 0 1 nastavenie 1 1 1 alebo zjednodušene: D 0 1 D=1 D
Stavový diagram a návrh obvodov [3] Podobne pre RS klopný obvod (asynchrónny): R S Q n Q n+1 0 1 0 0 0 1 1 0 nulovanie 1 0 0 1 nastavenie 1 0 1 1 1 1 0 0 1 1 1 1 0 0 X X zakázaný stav RS S 0 1 RS R
Stavový diagram a návrh obvodov [4] Skúsme navrhnúť synchrónny klopný obvod s novými vlastnosťami: pamäťový režim nulovanie nastavenie preklopenie potrebujeme dva vstupy (J, K), ktorými sa dá vybrať jeden zo štyroch režimov. Tabuľkovo: J K Q n Q n+1 režim činnosť 0 0 0 0 pamäťový 0 0 1 1 režim 0 1 0 0 nulovanie 0 1 1 0 nulovanie 1 0 0 1 nastavenie nastavenie 1 0 1 1 1 1 0 1 nastavenie preklopenie 1 1 1 0 nulovanie
Stavový diagram a návrh obvodov [5] Z tabuľky vyčítame, že skutočné nulovanie (t.j. prechod Q: 1 0) nasta- J K Q n Q n+1 režim činnosť 0 0 0 0 pamäťový 0 0 1 1 režim 0 1 0 0 nulovanie 0 1 1 0 nulovanie 1 0 0 1 1 0 1 1 nastavenie nastavenie 1 1 0 1 preklopenie nastavenie 1 1 1 0 nulovanie ne vo dvoch prípadoch (J=0, K=1, Q n =1) a (J=1, K=1, Q n =1), čomu zodpovedá zápis v tvare mintermov: JJ. KK. QQ nn + JJ. KK. QQ nn = (JJ + JJ). KK. QQ nn = KK. QQ nn Pre skutočné nastavenie t.j. prechod Q: 0 1 platia podmienky (J=1, K=0, Q n =0) a (J=1, K=1, Q n =0), čo vedie k podmienke prechodu: JJ. KK. QQ nn + JJ. KK. QQ nn = JJ. (KK + KK). QQ nn = JJ. QQ nn
Stavový diagram a návrh obvodov [6] V stavovej reprezentácii výsledok potom vyzerá nasledovne: K Q=0 Q=1 J K tomu, aby sa obvod vynuloval, musí byť pred príchodom hodinového (synchronizačného) impulzu nastavený (Q n =1) a vstup K musí byť v stave 1 (na stave vstupu J teraz nezávisí). Nastavenie obvodu sa uskutoční vtedy, keď bol obvod vynulovaný (Q n =0) a J=1 (teraz nezávisí na stave vstupu K).
Stavový diagram a návrh obvodov [7] Podmienky prechodov KK. QQ nn a JJ. QQ nn vieme realizovať pomocou NAND hradiel: Pohľadom na funkčnú tabuľku tejto dvojice hra- diel vidíme predovšetkým, že v žiadnom riadku nie sú ich výstupy zároveň nulové. Výstup je nulový pre tie prechody, u ktorých dochádza k nastaveniu obvodu Q: 0 1 a výstup KK. QQ je nulový vtedy, keď sa obvod nuluje Q: 1 0. To nás privádza k uzáveru, že JJ. QQ signálmi a možno priamo KK. QQ ovládať základný RS klopný obvod. JJ. QQ J K Q JJ QQ KK QQ JJ. QQ JJ. QQ KK. QQ KK. QQ 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 QQ
Stavový diagram a návrh obvodov [8] Zapojenie potom vyzerá nasledovne: Obvodu pridáme synchronizačný vstup CLK a prekreslíme cesty signá- JJ QQ JJ. QQ Q lov spätných väzieb od výstupov. KK QQ QQ KK. QQ Výsledné zapojenie bude: JJ QQ Q CCCCCC KK QQ QQ
Stavový diagram a návrh obvodov [9] Zjednodušená funkčná tabuľka JK-klopného obvodu má tvar: J K Q n+1 režim 0 0 Q n pamäťový režim 0 1 0 nulovanie 1 0 1 nastavenie 1 1 Q n preklopenie Kvôli kontrole urobme ešte test funkčnosti navrhnutého JK-KO.
Stavový diagram a návrh obvodov [10] Ako pomôcku vrátime označenie vstupov RS-KO: J K CLK Q n Q n S R Q n+1 x x 0 x x 1 1 Q n pamäťový režim JJ QQ SS Q 0 0 1 x x 1 1 Q n pamäťový režim CCCCCC 0 1 1 0 1 1 1 Q n ostáva 0 0 1 1 1 0 1 0 0 skutočné nulovanie KK RR QQ 1 0 1 0 1 0 1 1 skutočné nastavenie QQ 1 0 1 1 0 1 1 Q n ostáva 1 1 1 1 0 1 0 1 1 skutočné nastavenie 1 1 1 1 0 1 0 0 skutočné nulovanie Napriek tomu, že tabuľka signalizuje korektnú funkčnosť navrhnutého obvodu, bližšia analýza časových priebehov odhalí chybu aj v tomto zapojení.
Stavový diagram a návrh obvodov [11] Ak si v režime preklápania (J=K=1) nakreslíme časový diagram signálov: CCCCCC JJ KK QQ t vidíme, že ak hodinový vstup CLK je v aktívnom stave (CLK=1) dlhšie než sa zmenia stavy výstupov Q a QQ ( t), nové (invertované) hodnoty výstupných signálov privodia opätovné preklopenie obvodu. Snaha zabrániť tomuto javu vznikol JK-klopný obvod typu "master - slave ". Tvoria ho v princípe dva klopné obvody, ktoré majú hodinové vstupy oddelené invertorom. Naviac - spätná väzba je vedená z výstupov Q a QQ druhého obvodu (slave) na vstupy prvého (master).
Stavový diagram a návrh obvodov [12] Principiálna schéma JK klopného obvodu master slave: JJ QQ Qm Q CCCCCC CCCCCC KK QQ mm QQ QQ Výstupný klopný obvod je jednoduchý RST-KO a v dobe, keď je hodinový signál v neaktívnom stave (CLK=0) je práve tento obvod otvorený a na výstupy Q a QQ kopíruje stav výstupov časti master Q m a Q m Samotný master je v pamäťovom režime a nevie zmeniť svoj výstup.
Stavový diagram a návrh obvodov [13] Vo chvíli, keď prejde hodinový signál do aktívneho stavu CLK=1, zavrie sa výstupná časť slave a stav výstupov Q a QQ sa od tohto okamžiku nedá zmeniť. Vstupná časť master funguje na počiatku ako JK-klopný obvod ale iba dovtedy, kým sa nezačnú meniť výstupné hodnoty. Zmeny výstupov master-a sa teraz neprenášajú na vstup a nemôžu ho ovplyvniť. Konkrétne je to dôležité v režime preklápania, kedy pri trvajúcom aktívnom hodinovom signále CLK=1 nedochádza k opakovanému preklápaniu výstupu. QQ Skutočný výstup obvodu preberie JJ Qm výstupný stav časti master až pri CCCCCC CCCCCC závernej hrane hodinového sig- QQ mm nálu. KK QQ Q QQ
Stavový diagram a návrh obvodov [14] Návrh čítačov na báze JK-klopného obvodu. Počet použitých KO (n) určuje kapacitu čítača (0 až 2 n -1). Pomocou dvoch JK-KO (označme ich ako A a B) vieme zostrojiť čítač v rozsahu 0 až 3. Jeho stavový diagram zrejme vyzerá takto: Čítač nepoužíva žiaden vstupný signál (samozrejme okrem synchronizačného -hodinového vstupu CLK). Znamená to, -že jedinými premennými v obvode sú Q B Q A =00 Q B Q A =01 -stavové veličiny Q A a Q B (hodnoty priamych výstupov použitých klopných obvodov). Q B Q A =11 Q B Q A =10 Úlohou návrhu čítača je nájsť zapojenie vstupov J a K oboch použitých klopných obvodov (J A, K A, J B, K B ) také, aby sa každým hodinovým impulzom obvod posunul podľa stavového diagramu o jednu pozíciu ďalej v šípkami naznačenom smere.
Stavový diagram a návrh obvodov [15] Kvôli zjednodušeniu nákresov budeme používať neštandardnú značku JK-klopného obvodu, ktorá bude obsahovať iba bezprostredne využívané vstupy a výstupy: J JK Základná funkčná tabuľka JK-KO je CLK Q veľmi prostá: K J K Q n+1 režim 0 0 Q n pamäťový režim 0 1 0 nulovanie 1 0 1 nastavenie 1 1 Q n preklopenie V každom riadku tejto tabuľky sú však ukryté dva riadky tabuľky, ktorá rešpektuje skutočne vykonané alebo nevykonané prechody stavu klopného obvodu. Takže našu tabuľku rozšírime na tvar:
Stavový diagram a návrh obvodov [16] Rozšírená tabuľka prechodov JK- klopného obvodu: J K Q n Q n+1 prechod režim 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 pamäťový nulovanie nastavenie preklápanie Tabuľka nám priamo slúži k nakresleniu stavového grafu JK klopného obvodu aj s vyznačenými podmienkami na vstupoch J a K, ktoré vedú k tomu-ktorému prechodu:
Stavový diagram a návrh obvodov [17] Podmienky pre jednotlivé prechody: 0 0 (prvý a tretí riadok) JJ. KK + JJ. KK = JJ 0 1 (piaty a siedmy riadok) JJ. KK + JJ. KK = JJ 1 1 (druhý a šiesty riadok) JJ. KK + JJ. KK = KK J K Q n Q n+1 prechod režim 0 0 0 0 0 0 0 0 1 1 1 1 pamäťový 0 1 0 0 0 0 0 1 1 0 1 0 nulovanie 1 0 0 1 0 1 1 0 1 1 1 1 nastavenie 1 1 0 1 0 1 1 1 1 0 1 0 preklápanie 1 0 (štvrtý a ôsmy riadok) z rozpisu prechodov vidíme, že ak je obvod JJ. KK + JJ. KK = KK v stave Q=O o ďalšom kroku, ktorý sa vykoná rozhoduje iba vstup J, pre obvod v stave Q=1 je takto rozhodujúci vstup K. V oboch prípadoch druhý (neaktívny) vstup môže nadobúdať ľubovoľnú hodnotu čo v tabuľke označíme symbolom "x".
Stavový diagram a návrh obvodov [18] Úplný stavový diagram a podmienky prechodov: J K Q=0 Q=1 J Teraz sme pripravení vrátiť sa k zadaniu úlohy návrhu dvojbitového binárneho čítača zostaveného z dvoch JK-KO (A, B) ktorého stavový graf je: Q B Q A =00 K Q B Q A =11 prechod J K 0 0 0 x 0 1 1 x 1 1 x 0 1 0 x 1 Q B Q A =01 Q B Q A =10
Stavový diagram a návrh obvodov [19] Stavový graf vieme rovnocenne vyjadriť aj v tabuľkovej podobe: krok n krok n+1 vstupy BB AA QQ prechod B prechod A J B K B J A K A nn+1 QQ nn+1 0 0 0 1 0 0 0 1 0 x 1 x QQ nn BB QQ nn AA 0 1 1 0 0 1 1 0 1 x x 1 1 0 1 1 1 1 0 1 x 0 1 x 1 1 0 0 1 0 1 0 x 1 x 1 prechod J K 0 0 0 x 0 1 1 x 1 1 x 0 1 0 x 1 Tabuľka definuje štyri logické funkcie (pre vstupy J B, K B, J A, K A ) pre ktoré úlohu vstupných premenných hrajú stavy obvodov QQ nn a QQ nn pred komutá- BB AA ciou: J B BB AA = f( QQ nn, QQ nn ) a podobne pre ostatné vstupy.
Stavový diagram a návrh obvodov [20] Riešiť ich budeme pomocou Karnaughových máp (pre dve premenné AA QQ a BB nn QQ nn ): pre vstup J B pre vstup K B pre vstup J A pre vstup K A Q B \ Q A 0 1 0 1 1 x x Q B \ Q A 0 1 0 x x 1 1 Q B \ Q A 0 1 0 1 x 1 1 x Q B \ Q A 0 1 0 x 1 1 x 1 Stavy označené ako "x" sú tie, od ktorých určitý prechod JK-KO nezávisí a môžeme ich podľa potreby nahradiť nulou alebo jednotkou. V Karnaughovej mape spájame jedničkové bunky do čo najväčších blokov. Pre vstupy klopného obvodu "B" sa dajú spojiť bunky v stĺpci pre Q A =1, čo znamená, že na hodnote druhej premennej Q B nezáleží a vstup J B = Q A a aj K B = Q A a treba ich pripojiť priamo na výstup Q A. Pre obvod "A" je situácia ešte jednoduchšia, pretože všetky bunky môžeme považovať za jednotkové a vstupy J A = K A = 1. Znamená to, že ich treba pripojiť na logickú hodnotu "1".
Stavový diagram a návrh obvodov [21] Takže zapojenie dvojbitového binárneho čítača bude: log 1 Q A Q B CLK J A CLK K J B CLK K Výsledok návrhu nie je prekvapivý. Najnižší bit čítača (obvod A) sa musí preklápať každým hodinovým impulzom (čo je pre JK-KO práve režim J=K=1). Bit v ráde 2 1 (obvod B) sa preklápa každým druhým hodinovým impulzom vtedy, keď Q A =1. Keď je Q A =0, je obvod B v pamäťovom režime (J B =K B =0).
Návrh 4-bitového čítača. Stavový diagram a návrh obvodov [22] Stavový diagram (poradie obvodov: Q D Q C Q B Q A ): 0000 0001 0010 0011 1111 1110 1101 1100 1011 1010 1001 0100 0101 0110 0111 1000 Odtiaľ vytvoríme tabuľku prechodov:
Stavový diagram a návrh obvodov [23] Tabuľka prechodov: DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB AA QQ nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 x 0 0 x 1 x x 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 x 0 0 x x 0 1 x 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 x 0 1 x x 1 x 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 x 0 x 0 0 x 1 x 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 x 0 x 0 1 x x 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 x 0 x 0 x 0 1 x 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 x 1 x 1 x 1 x 1
Z tabuľky priamo formu- jeme Karnaughove mapy pre všetky vstupy J a K: Stavový diagram a návrh obvodov [24] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 Vstup J D : Vstup K D : BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 x 0 0 x 1 x x 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 x 0 0 x x 0 1 x 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 x 0 1 x x 1 x 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 x 0 x 0 0 x 1 x 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 x 0 x 0 1 x x 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 x 0 x 0 x 0 1 x 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 x 1 x 1 x 1 x 1 Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 x x x x 1 0 x x x x J D = Q C.Q B.Q A Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x x x x 0 1 x x x x 1 1 1 1 0 K D = Q C.Q B.Q A
A ďalej pre obvod C: Stavový diagram a návrh obvodov [25] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 Vstup J C : Vstup K C : BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 x 0 0 x 1 x x 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 x 0 0 x x 0 1 x 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 x 0 1 x x 1 x 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 x 0 x 0 0 x 1 x 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 x 0 x 0 1 x x 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 x 0 x 0 x 0 1 x 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 x 1 x 1 x 1 x 1 Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 1 0 1 x x x x 1 1 x x x x 1 0 1 J C = Q B.Q A Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x x x x 0 1 1 1 1 1 1 0 x x x x K C = Q B.Q A
pre obvod B: Stavový diagram a návrh obvodov [26] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 x 0 0 x 1 x x 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 x 0 0 x x 0 1 x 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 x 0 1 x x 1 x 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 x 0 x 0 0 x 1 x 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 x 0 x 0 1 x x 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 x 0 x 0 x 0 1 x 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 x 1 x 1 x 1 x 1 Vstup J B : Vstup K B : Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 1 x x 0 1 1 x x 1 1 1 x x 1 0 1 x x J B = Q A Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x x 1 0 1 x x 1 1 1 x x 1 1 0 x x 1 K B = Q A
pre obvod A: Stavový diagram a návrh obvodov [27] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 x 0 0 x 1 x x 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 x 0 0 x x 0 1 x 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 x 0 1 x x 1 x 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 x 0 x 0 0 x 1 x 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 x 0 x 0 1 x x 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 x 0 x 0 x 0 1 x 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 x 1 x 1 x 1 x 1 Vstup J A : Vstup K A : Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 1 x 1 x 0 1 1 x 1 x 1 1 1 x 1 x 1 0 1 x 1 x Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x 1 x 1 0 1 x 1 x 1 1 1 x 1 x 1 1 0 x 1 x 1 J A = 1 K A = 1
Stavový diagram a návrh obvodov [28] Získané výsledky dovoľujú nakresliť schému 4-bitového binárneho čítača na báze JK-KO: J A = 1 K A = 1 J B = Q A J C = Q B.Q A J D = Q C.Q B.Q A K B = Q A K C = Q B.Q A K D = Q C.Q B.Q A log 1 Q A Q B Q C Q D J A J B J C J D CLK CLK K CLK K CLK K CLK K Q A.Q B.Q C Q A.Q B
Stavový diagram a návrh obvodov [29] A nakoniec ešte návrh desiatkového čítača: 0000 1001 1000 0111 0001 0110 0010 0011 0100 0101 DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 x 1 0 x 0 x x 1 Aj keď zmeny v tabuľke prechodov nie sú veľké, pri aplikácii Karnaughových máp rozdiely zistíme. Predovšetkým tabuľky nebudú úplné, pretože niektoré stavy (kombinácie výstupov) neexistujú.
Znova formulujeme Karnaughove mapy pre všetky vstupy J a K: Stavový diagram a návrh obvodov [30] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 Vstup J D : Vstup K D : prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 x 1 0 x 0 x x 1 Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 # # # # 1 0 x x # # Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x x x x 0 1 x x x x 1 1 # # # # 1 0 1 # # J D = Q C.Q B.Q A K D = Q A Symbolom "#" je označený neexistujúci stav, ktorý samozrejme možno pri optimalizácii využiť ako stav s hodnotou "1".
Pre obvod C: Stavový diagram a návrh obvodov [31] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 x 1 0 x 0 x x 1 Vstup J C : Vstup K C : Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 1 0 1 x x x x 1 1 # # # # 1 0 # # J C = Q B.Q A Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x x x x 0 1 1 1 1 # # # # 1 0 x x # # K C = Q B.Q A
pre obvod B: Stavový diagram a návrh obvodov [32] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 x 1 0 x 0 x x 1 Vstup J B : Vstup K B : Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 1 x x 0 1 1 x x 1 1 # # # # 1 0 # # J B = Q D.Q A Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x x 1 0 1 x x 1 1 1 # # # # 1 0 x x # # K B = Q A
pre obvod A: Stavový diagram a návrh obvodov [33] DD QQ CC BB nn QQ nn QQ AA DD CC nn QQ nn QQ nn+11 QQ nn+11 BB QQ AA nn+11 QQ nn+11 prechody D C B A J D K D J C K C J B K B J A K A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 x 0 x x 0 1 x 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 x 1 x x 1 x 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 x x 0 0 x 1 x 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 x x 0 1 x x 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 x x 0 x 0 1 x 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 x x 1 x 1 x 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 x 0 0 x 0 x 1 x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 x 1 0 x 0 x x 1 Vstup J A : Vstup K A : Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 1 x 1 x 0 1 1 x 1 x 1 1 # # # # 1 0 1 x # # Q D Q C /Q B Q A 0 0 0 1 1 1 1 0 0 0 x 1 x 1 0 1 x 1 x 1 1 1 # # # # 1 0 x 1 # # J A = 1 K A = 1
Stavový diagram a návrh obvodov [34] 4-bitového binárneho čítača s modulom 10: J A = 1 K A = 1 J B = Q D.Q A J C = Q B.Q A J D = Q C.Q B.Q A K B = Q A K C = Q B.Q A K D = Q A Q A.Q D log 1 J A Q A J B Q B J C Q C J D Q D CLK CLK K CLK K CLK K CLK K Q A.Q B.Q C Q A.Q B