SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU LOGICKÉ SYSTÉMY

Dohnal Jan, studijní skupina 323

stažení celé semestrální práce

  1. Pomocí synchronního sekvenčního obvodu realizujte konečný automat se dvěma vstupy a, b a jedním výstupem z, zadaný následující tabulkou přechodů a tabulkou výstupů. Použijte vhodnou metodu pro minimalizaci a zakódování vnitřních stavů. Správnost návrhu ověřte pomocí simulace tak, aby se v časovém diagramu prošlo všemi vnitřními stavy minimalizovaného automatu.
  2.   
        \ba| tabulka přechodů          tabulka výstupů
       Qi\ | 00   01   10               00   01   10
      --------------------             --------------
         Q0| Q8   Q7   Q3                1    0    1   
         Q1| Q8   Q5   Q4                1    0    1   
         Q2| Q0   Q3   Q9                1    1    0   
         Q3| Q2   Q8   Q6                1    0    0   
         Q4| Q2   Q8   Q6                1    0    0   
         Q5| Q4   Q6   Q1                1    1    0   
         Q6| Q9   Q4   Q10               0    1    1   
         Q7| Q3   Q6   Q1                1    1    0   
         Q8| Q8   Q10  Q9                1    1    0   
         Q9| Q2   Q9   Q5                1    0    1   
        Q10| Q0   Q3   Q9                1    1    0   
    
      Použijte klopné obvody typu 7474.
        

    1. Použijte hradla typu 7400 a 7410; 7420 jen pokud používáte D-klopné obvody.
    2. Nejvyšší povolená logická zátěž IO je pět.
    3. Vnější vstupy máte k dispozici pouze v přímé formě.
    4. Zpoždění obvodů nechť je pro hradla 20ns a pro klopné obvody 30ns.

  3. Stanovte maximální možnou hodinovou frekvenci za předpokladů: Vstupní stavy obvodu se mění pouze v intervalu < T , T + 50ns >, kde T jsou okamžiky příchodu záporné hrany hodinových pulzů. Správný výstupní stav musí trvat po dobu nejméně 50 ns.

minimalizace vnitřních stavů

Označíme vnitřní stavy podle výstupů a pak přepíšeme stavy v tabulce přechodů podle tříd. Stejné sekvence sjednotíme do jednoho stavu.


  \ ba tabulka přechodůtabulka výstupůtřídy
výstupů
tabulka přechodů
Qi \0001 10 000110000110
Q0 Q8Q7 Q3 1 0 1 A B B C
Q1 Q8Q5 Q4 1 0 1 A B B C
Q2 Q0Q3 Q9 1 1 0 B A C A
Q3 Q2Q8 Q6 1 0 0 C B B D
Q4 Q2Q8 Q6 1 0 0 C B B D
Q5 Q4Q6 Q1 1 1 0 B C D A
Q6 Q9Q4 Q100 1 1 D A C B
Q7 Q3Q6 Q1 1 1 0 B C D A
Q8 Q8Q10Q9 1 1 0 B B B A
Q9 Q2Q9 Q5 1 0 1 A B A B
Q10Q0Q3 Q9 1 1 0 B A C A


a pak

  \ ba tabulka přechodůtabulka výstupů
Qi \000110000110
Q0Q5Q3Q21 0 1
Q1Q0Q2Q61 1 0
Q2Q1Q5Q41 0 0
Q3Q2Q4Q01 1 0
Q4Q6Q2Q10 1 1
Q5Q5Q1Q61 1 0
Q6Q1Q6Q31 0 1

zakódování vnitřních stavů včetně zdůvodnění volby kódu

Volbu kódu jsem chtěl původně udělat ručně pomocí metody Dolotta-McCluskey. Po zjištění, že mi po minimalizaci vnitřních zbývá 7 vnitřních stavů, jsem použil program KVS.

  \ ba zakódování
vnitřních stavů
Qi \zyx
Q0000
Q1101
Q2001
Q3011
Q4100
Q5010
Q6111


pak bude tabulka přechodů a výstupů vypadat následovně ...

  \ ba tabulka přechodůtabulka výstupů
zyx \000110000110
0000100110011 0 1
1010000011111 1 0
0011010101001 0 0
0110011000001 1 0
1001110011010 1 1
0100101011111 1 0
1111011110111 0 1

mapy pro vstupy klopných obvodů a mapy pro výstupní proměnné

Smyčky jsou v mapách barevně označeny. Tam kde se překrývají jsou hodnoty červenou barvou. Barvy smyček jsou vyznačeny i v termech.


  \ ba Dz
zyx \00011110
000 00X0
001 10X1
011 01X0
010 01X1
110 XXXX
111 11X0
101 00X0
100 10X1
    
  \ ba Dy
zyx \00011110
000 11X0
001 01X0
011 00X0
010 10X1
110 XXXX
111 01X1
101 00X1
100 10X0
    
  \ ba Dx
zyx \00011110
000 01X1
001 10X0
011 10X0
010 01X1
110 XXXX
111 11X1
101 01X1
100 11X1
    
  \ ba Y
zyx \00011110
000 10X1
001 10X0
011 11X0
010 11X0
110 XXXX
111 10X1
101 11X0
100 01X1


Dz=ay+azyx+byx+bzy+bxy+azx =ayazyxbyxbzybxyazx
Dy=azy+abx+ayx+bzx+azy =azyabxayxbzxazy
Dx=bz+zy+ax+abzx+bx+az+zx =bzzyaxabzxbxazzx
Y=abz+ayz+byz+byx+ayz+abx =abzayzbyzbyxayzabx

schéma obvodu ve dvou exemplářích pro dvě různá ohodnocení vodičů

Schema č.1 (a=b=x=z=y=0)
Schema č.2 (a=x=z=y=0,b=1)

výpočet maximální možné frekvence hodinových pulzů

Minimální délka periody je dána vztahem:

Tmin = max[ZKO + max(NZK3 + DY, NZK2 + tsetup), DX + max(NZK4 + DY, NZK1 + tsetup)]
Kde:
V zadání jsou stanoveny doby zpoždění a požadavky na vstup/výstup: Z katalogu ještě určíme tsetup = 10 ns (pro MH7474)

Podle schématu vypočítáme největší zpoždění v jednotlivých větvích kombinační části: Maximální délka úrovně L hodinového pulzu je

Tmin = max[30 + max(80 + 50, 80 + 10), 50 + max(80 + 50,80 + 10)] = 180 ns

Z toho vyplívá,že maximální frekvence hodinových pulzů je
fmax = 1/Tmin = 5 MHz


Použijeme-li hladinové kopné obvody, nesmí být šířka signálu kratší než tmin = 20 ns (doba nutná k bezprostřednímu překlopení - udaná výrobcem) a širší než tmax = 20, což je zpoždění nejkratší větve kombinační části K2. Šířka hodinového pulzu tedy musí být t1 = 20 ns.

časový diagram získaný ze simulátoru s označením vnitřních stavů



1. takt ... Q0[000] -> Q3 [011]; vstupy [ba]=[01]; výstup=0
2. takt ... Q3[011] -> Q0 [000]; vstupy [ba]=[10]; výstup=0
3. takt ... Q0[000] -> Q2 [001]; vstupy [ba]=[10]; výstup=1