Homepage

ČVUT FEL

  Návrh sekvenčních logických obvodů

Příklad návrhu sekvenčního logického obvodu z úvodu do počítačových systému v letním semestru 1999/2000.

Zadání

Navrhněte sekvenční logický obvod, který bude mít dva vstupy X1 a X2 a jeden výstup Y. Vzestupná hrana vstupu X1 způsobí přechod výstupu do úrovně logické jedničky, sestupná hrana vstupu X2 způsobí přechod výstupu Y do úrovně logické nuly. Na ostatní impulzy nechť výstup nereaguje.

1. Zakreslení zadání do časové osy

Průběh signálů v časové osa není nezbytné kreslit, ale může pomoci sestavit graf přechodů v bodě 2.

Časová osa

2. Graf přechodů

Toto je naprosto nejdůležitější část řešení. Grafem přechodů se rozumí grafické znázornění vnitřních stavů systému s přechodů mezi nimi. Pro danou úlohu může existovat několik různých, a přesto správných, grafů přechodů.

Graf přechodů

Vysvětlivky:  kolečko = stav
modrý text = označení stavu
číslice v kolečku = výstup
šipka = přechod mezi stavy
černé popisky = podmínky přechodu
Stav Z1:Čekání na sestupnou hranu X1.
Výstup je ve stavu logické nuly. Dokud je na vstupu X1 logická jednička, nic se nemění, na vstupu X2 nezáleží. Při přechodu vstupu X2 do úrovně logické 0 (sestupná hrana X2) dojde přechodu do stavu Z2.
Stav Z2:Čekáme, až bude X2=0, abychom mohli čekat na vzestupnou hranu.
Výstup je ve stavu logické jedničky. Dokud je na vstupu X2 logická jednička, nic se nemění, na vstupu X1 nezáleží. Při přechodu vstupu X1 do úrovně logické 0 (sestupná hrana X1) dojde přechodu do stavu Z3.
Stav Z3:Čekání na vzestupnou hranu X2.
Výstup je ve stavu logické jedničky. Dokud je na vstupu X2 logická nula, nic se nemění, na vstupu X1 nezáleží. Při přechodu vstupu X2 do úrovně logické 1 (vzestupná hrana X2) dojde přechodu do stavu Z4.
Stav Z4:Čekáme, až bude X1=1, abychom mohli čekat na sestupnou hranu.
Výstup je ve stavu logické nuly. Dokud je na vstupu X1 logická nula, nic se nemění, na vstupu X2 nezáleží. Při přechodu vstupu X1 do úrovně logické 1 (vzestupná hrana X2) dojde přechodu do stavu Z1.

3. Zakódování vnitřních stavů

Každému vnitřnímu stavu přiřadíme libovolné, ale neopakující se, binární číslo, počet cifer je určen počtem vnitřních stavů.

2 počet stavů £ počet cifer

    Q1     Q2  
 Z1    0 0
 Z2 0 1
 Z3 1 1
 Z4 1 0

Q1 a Q2 jsou vnitřní proměnné - cifry binárního čísla, označují též výstupy klopných obvodů.

4. Přechody klopných obvodů

Tato tabulka udává, jaký signál musíme přivést na vstup klopného obvodu pro změnu výstupu daného klopného obvodu. Tabulka je nejjednodušší pro D-klopné obvody. Je charakteristikou klopného obvodu, nikoliv příkladu. D označuje vstup klopného obvodu.

D - klopný obvod
 původní 
výstup
nový
 výstup 
 vstup 
D
000
011
100
111

5. Hlavní tabulka

Hlavní tabulka je smíchání předchozích bodů.
První sloupec obsahuje pojmenování stavu, ke kterému se vztahují následující sloupce. Sloupce Q1(n) a Q2(n) obsahují kódování daného stavu. Sloupce X1 a X2 obsahují množinu všech možných vstupů pro každý stav. Q1(n+1) a Q2(n+1) obsahuje kód stavu, do kterého má systém přejít pro daný vstup X1 a X2. Pokud nemá dojít ke změně stavu, je shodné s Q1(n) a Q2(n). Sloupce D1 a D2 obsahují úroveň signálu, kterou musíme přivést na vstup klopného obvodu, aby došlo ke změně výstupu z Q1(n) na Q1(n+1), resp. Q2(n) na Q2(n+1).
Pokud je určitá situace nedefinovaná (v stavu "A" nemůže dojít ke vstupu X1="B" a X2="C", apod.), v tabulce jej označíme křížkem ve sloupcích Q1(n+1), Q2(n+1), D1 a D2.

   Q1(n)   Q2(n)   X1   X2   Q1(n+1)   Q2(n+1)   D1   D2 
 Z1 00000101
00010101
00100000
00110000
 Z2 01001111
01010101
01101111
01110101
 Z3 11001111
11011010
11101111
11111010
 Z4 10001010
10011010
10100000
10110000

6. Tabulky a vzorce pro vstup klopných obvodů

Tabulkami pro vstup klopných obvodů rozumíme vyjádření D1, resp. D2, jako funkci Q1(n), Q2(n), X1 a X2. Nabízí se použití Karnaughových map - pozor na správné pořadí řádek a sloupců. Minimalizací z Karnaughových map sestavíme rovnice pro vstupy klopných obvodů. Viz skripta FEL Matematická logika. Vykřičník označuje negaci operandu. Ještě jednou uvádím, že D označuje vstup klopného obvodu, Q výstup a X vstupní signál.
Pokud některé políčko tabulky obsahuje křížek (nedefinovaný stav podle pátého bodu), můžete každý libovolně nahradit nulou nebo jedničkou tak, aby se Karnaughova mapa dobře minimalizovala.

 D1  Q1(n)  0  0  1  1 
 Q2(n) 0110
 X1  X2 
000111
010011
110010
100110
     
 D2  Q1(n)  0  0  1  1 
 Q2(n) 0110
 X1  X2 
001110
011100
110100
100110

D1 = Q1.Q2 + Q1.!X1 + Q2.!X2
D2 = !Q1.Q2 + !Q1.!X1 + Q2.!X2

7. Tabulka a vzorec výstupu

Tabulka výstupu určuje, jak z výstupu klopných obvodů získám výstupní signál Y. Získá se z grafu přechodů a kódování vnitřních stavů. Sloupce Q1 a Q2 označují kódování vnitřních stavů, sloupec Y je požadovaný výstup (cifra v kolečku v grafu přechodů).

    Q1     Q2     Y  
 Z1    0 0 0
 Z2 0 1 1
 Z3 1 1 1
 Z4 1 0 0

Y = Q2

Poznámka: Z tabulky je vidět, že k určení (a vyvedení) výstupu stačí (v tomto případě) výstup druhého klopného obvodu. To však neznamená, že se prvního můžeme nějak zbavit, celý automat funguje na definované spolupráci všech (v tomto případě dvou) klopných obvodů.

8. Drátování

Nyní máme již všechny informace potřebné k "zadrátování" úlohy. Typ klopných obvodů je určen ve čtvrtém bodě, vstup klopných obvodů je stanoven v šestém bodě, výstup automatu v bodě sedmém.
Pro opravdu neznalé: Násobení v rovnici znamená použití hradla AND, součet OR, apod. Časté bývá převedení rovnic do tvaru k použití hradel NAND.