Návrh synchronního čítače Zadání: Navrhněte synchronní čítač mod 7, který čítá vstupní impulsy na vstupu x. Při návrhu použijte klopné obvody typu -K a maximálně třívstupová hradla typu NAND. Řešení: Čítač mod 7 čítá od do 6 a pak opět od, tj. na výstupu čítače je posloupnost hodnot 3 4 5-6 atd. Samozřejmě, že čítač zvyšuje svoji hodnotu, pokud je hodnota vstupního signálu x =, pro x = hodnota čítače zůstává beze změny (signál x můžeme chápat také jako signál povolující čítání). Použijeme automat typu Moore, takže nebude třeba výstupní logiky K zakódování hodnot až 6 potřebujeme 3 bity, čítač bude mít tedy 3 vnitřní proměnné,,, které budou zároveň výstupem čítače. Proměnná představuje bit nejvyššího řádu, budeme ji zapisovat vlevo, tedy zápis čítané hodnoty =. Vstupní signál má čítač jeden, a to x, synchronizační signál (hodiny) clk je speciální vstup každého synchronního obvodu, nepovažujeme jej za vstup z hlediska návrhu (obr. ). x clk Čítač Obrázek : Čítač Sestavíme tabulku přechodů čítače. ednotlivé řádky čteme následovně: je-li čítač v počátečním stavu Q - (červené políčko), tj. aktuální čítaná hodnota je rovna, a vstup x je roven (druhý sloupec), pak následný stav (následná čítaná hodnota) je modré políčko - (čítač nečítá, stojí ). Naopak, je-li vstup x roven, následný stav je (zelené políčko). Pak přejde v čítání do řádku pro Q, tj. a bude čítat při x = druhý impuls a přejde do Q, tj. atd. Q Q Q Q Q Q Q Q Q 3 Q 3 Q 3 Q 4 Q 4 Q 4 Q 5 Q 5 Q 5 Q 6 Q 6 Q 6 Q Tabulka : Tabulka přechodů čítače Čítaná hodnota (vnitřní stav) je ukládána ve třech klopných obvodech typu -K, kombinační logika realizuje stavově přechodovou funkci. Klopné obvody označíme indexy
až, analogicky vnitřním proměnným, tedy v klopném obvodu KO bude uložena vnitřní proměnná nejvyššího řádu, vstupy KO označíme a K. Bloková struktura čítače je na obr.. Kombinační logika vytváří budící funkce vstupů a K tří klopných obvodů ze vstupu x a aktuální čítané hodnoty (stavu čítače), tedy každá budící funkce je funkcí čtyř proměnných x,,,. Obrázek : Bloková struktura čítače Dalším krokem je vytvoření map pro budící funkce klopných obvodů. Připomeneme chování klopného obvodu typu -K (tab. (a)). Při návrhu vyjdeme z rozšířené tabulky přechodů (tab. (b)); vypovídá o přechodech klopného obvodu -K a její odvození je snadné: má-li klopný obvod přejít ze stavu do stavu (tzv. silná ), je to možné provést dvěma způsoby, a to buď tím, že na obou vstupech, K musejí být (změna stavu) nebo na vstupu je a na vstupu K je (nastavení KO do ), neboli vstup = a na hodnotě vstupu K nezáleží (K = x). Analogicky odvodíme další řádky této rozšířené tabulky pro slabou a a silnou. K + + K x x x Q t x (a) (b) Tabulka : Tabulka přechodů čítače Mapy pro budící funkce klopných obvodů jsou na obr. 3. Obrázek 3: Mapy budicích funkcí klopných obvodů
Mapy obsahují silné a slabé jedničky a nuly, nesou tedy informaci o funkcích budící oba vstupy a K. Postup vyplnění demonstrujeme na červeně podbarveném políčku. Mapa je vztažena ke klopnému obvodu KO, sledujeme v tabulce přechodů bit nejnižšího řádu. Políčko mapy je ohodnoceno vstupy: x =, =, =, =. Zde tedy zapíšeme přechod čítače, resp. proměnné, ze stavu při vstupním písmenu x =. Část tabulky přechodů je opět na obr. 4; vidíme, že proměnná přechází ze stavu do, do mapy zapíšeme silnou. + proměnná přechod z na = silná Obrázek 4: Vyplnění map na základě tabulky přechodů Smyčky v každé mapě uzavíráme jak pro budicí funkce a K. Z rozšířené tabulky přechodů (tab. (b)) vidíme, že při hledání minimální formy funkce musíme smyčkami pokrýt všechny silné, nesmíme pokrýt žádnou slabou a do smyček můžeme (ale nemusíme!) zahrnout neurčené stavy a silné a slabé. Při hledání minimální formy funkce K musíme smyčkami pokrýt všechny silné, nesmíme pokrýt žádnou slabou a do smyček můžeme (ale nemusíme!) zahrnout neurčené stavy, silné a slabé. Protože uzavírání smyček pro obě funkce v jedné mapě může být nepřehledné, je výhodné rozdělit každou mapu na dvě, zvlášť pro funkci a K. Při přepisu silných a slabých jedniček se řídíme rozšířenou tabulkou přechodů, tab. (b). K x x x x x x x x x x x x x x x x x x x x Ze smyček odvodíme výrazy pro budící funkce klopných obvodů a upravíme pro realizaci pomocí hradel NAND (použijeme zákon dvojí negace a De Morganových zákonů). q q K = x q = x q Pokud bychom měli v zadání podmínku na omezený počet vstupů hradel NAND, bylo by nutné výrazy ještě upravit. K převodu je možné využít Rottových mřížek, pro takto jednoduché případy využijeme prosté závorkování. = x q q = x q q = ( x q q = x q q ) ( ) 3
Schéma funkce pro vstup je na obr. 5 ve dvou variantách: třívstupovými a dvouvstupovými hradly NAND. Ve schématu s třívstupovým hradlem NAND je zapojeno dvouvstupové hradlo NAND ve funkci invertoru. Obrázek 5: Schéma budicí funkce K x x x x x x x x x x x x x x x x x x x x K + x q + x q x q K x x x x x x x x x x x x x x x x x x x x q + x q = x q + x q = x q x q = K = x Schéma čítače je na další stránce. K dispozici na webových stránkách je také odkaz na soubor se schématem vytvořený ve zkušební verzi programu BSpice Logic, která je volně stažitelná. Program umožňuje provést také simulaci. 4
5