28
I T P W ZPT 1 Problem kodowania stanów w układach sekwencyjnych (automatach) Sekwencyjne układy asynchroniczne Informacje uzupełniające o układach sekwencyjnych (zamiast W12 i W13)

Problem kodowania stanów w układach sekwencyjnych (automatach)

  • Upload
    kaiyo

  • View
    42

  • Download
    1

Embed Size (px)

DESCRIPTION

Problem kodowania stanów w układach sekwencyjnych (automatach). Informacje uzupełniające o układach sekwencyjnych ( zamiast W12 i W13). Sekwencyjne układy asynchroniczne. Problem kodowania w automatach. - PowerPoint PPT Presentation

Citation preview

Page 1: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT1

Problem kodowania stanów w układach sekwencyjnych (automatach)

Sekwencyjne układy asynchroniczne

Informacje uzupełniające o układach

sekwencyjnych (zamiast W12 i W13)

Page 2: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT2

Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych.

b = log2|S|

Problem kodowania w automatach

Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S|

v1 v2 v3 Y

S1 S1 S4 ─ y2

S2 S5 S3 S1 y1

S3 S4 ─ S5 y3

S4 S1 S2 S3 y2

S5 S4 ─ S2 y4

000

001

010

011

100

Q1Q2Q3Q1Q2Q3

Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!

Page 3: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

3

Problem kodowania

xs

0 1 0 1

A A B 0 0

B A C 0 0

C D C 0 0

D A B 0 1

Wariant I

A = 00B = 01C = 10D = 11

Wariant I

A = 00B = 01C = 10D = 11

Wariant II

A = 00B = 11C = 01D = 10

Wariant II

A = 00B = 11C = 01D = 10

21211 QQxQQD

2121212 QQxQxQQQxD

21QxQy

2121 QQxQxD

xD2

21QxQy

Wariant IIWariant II

Wariant IWariant I

Page 4: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

4

Kodowanie

3 stany - 3 różne kodowania3 stany - 3 różne kodowania

4 stany - 3 różne kodowania4 stany - 3 różne kodowania

5 stanów - 5 stanów - 140 kodowań140 kodowań

7 stanów - 7 stanów - 840 kodowań840 kodowań

9 stanów - 9 stanów -

Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?

Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?

Czy realne jest sprawdzenie wszystkich możliwościCzy realne jest sprawdzenie wszystkich możliwości

??????????????????????

Page 5: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

5

Problem kodowania jest bardzo trudny i nawet na poziomie akademickim nie powstały żadne praktycznie użyteczne narzędzia komputerowe wspomagające ten proces (SUL rozdz. 4.3.2).

Problem kodowania jest bardzo trudny i nawet na poziomie akademickim nie powstały żadne praktycznie użyteczne narzędzia komputerowe wspomagające ten proces (SUL rozdz. 4.3.2).

KODOWANIE

Jedyną realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.

Jedyną realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.

Page 6: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

6

Własność podstawienia

Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany następne Ik Si oraz Ik Sj należą do wspólnego bloku .

Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany następne Ik Si oraz Ik Sj należą do wspólnego bloku .

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

FDCEBA ,,;,,1

Podziały z własnością podstawienia:Podziały z własnością podstawienia:

FEDBCA ,;,;,2

Page 7: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

7

Twierdzenie

Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.

() – liczba bloków podziału

Jeżeli istnieje podział z własnością podstawienia i jeżeli r

spośród k zmiennych kodujących Q1, ..., Qk, gdzie

r = log2(), jest przyporządkowanych blokom podziału tak, że

wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi

kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych

(k – r) zmiennych.

Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.

() – liczba bloków podziału

Jeżeli istnieje podział z własnością podstawienia i jeżeli r

spośród k zmiennych kodujących Q1, ..., Qk, gdzie

r = log2(), jest przyporządkowanych blokom podziału tak, że

wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi

kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych

(k – r) zmiennych.

Page 8: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

8

Przykład - interpretacja w.p.

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

FDCEBA ,,;,,1

0 0

0 1

0 1

0 0

1 0

1 0

Kodowanie wg 1Kodowanie wg 1

A

B

C

D

E

F

0

0

1

1

0

1

FECBDAτ ,;,;,

Nie wystarcza to do zakodowania

1 • = (0) Warunek jednoznaczności kodowania!Warunek jednoznaczności kodowania!

Page 9: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

9

Przykład …

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

Q1Q2Q3

A 0 0 0

B 0 0 1

C 1 0 1

D 1 0 0

E 0 1 0

F 1 1 0

Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:

Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:

Q1’ = D1 = f(x,Q1)Q1’ = D1 = f(x,Q1)

Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że

pierwsza z nich, czyli D1 będzie…

Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:

Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:

a co z pozostałymi?

Q2’ = D2 = f(x,Q1,Q2,Q3)

Q3’ = D3 = f(x,Q1,Q2,Q3)

Q2’ = D2 = f(x,Q1,Q2,Q3)

Q3’ = D3 = f(x,Q1,Q2,Q3)

Page 10: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

10

Przykład …

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

FEDBCA ,;,;,2π

FDCEBA ,,;,,1π

Kodowanie wg 1 Kodowanie wg 1

0 0

0 1

0 0

0 1

1 0

1 0

A

B

C

D

E

F

0

0

1

1

0

1

2 2

)(0 21

Jest to kodowanie jednoznaczne

A może jest więcej podziałów zamkniętych:A może jest więcej podziałów zamkniętych:

Można wykazać, że oprócz 1 Można wykazać, że oprócz 1

jest 2 jest 2

Page 11: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

11

PRZYKŁAD c.d.

Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli

Q1’ = f(x,Q1)

Q2’ = f(x,Q2,Q3)

Q3’ = f(x,Q2,Q3)

Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli

Q1’ = f(x,Q1)

Q2’ = f(x,Q2,Q3)

Q3’ = f(x,Q2,Q3)

Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.

Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.

Dla całego roku! Dla całego roku!

Page 12: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

12

W rozwiązaniu problemu kodowania z pomocą przychodzi technologia…

KODOWANIE

Zadanie to znacznie się upraszcza w strukturach z pamięciami, które są

bezpośrednio realizowalne w układach FPGA.

Page 13: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

Sekwencyjne układy asynchroniczne

Układy asynchroniczne – przeznaczone do specyficznych, nietypowych zastosowań

W najnowszych książkach…

…nic się na ten temat nie pisze …jedynie w specjalistycznych

Page 14: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT14

x1

xn

y1

ym

Q1

Qk

q1

qk

Model układu asynchronicznego

układ kombinacyjny

Pamięć jest realizowana przez współdziałanie litery wejściowej i stanu wewnętrznego

UK

BP

Model układu sekwencyjnego(synchronicznego)

Model układu sekwencyjnego(synchronicznego)

Stan stabilny s: (s,x) = s

W automacie asynchronicznym wszystkie stany są stanami stabilnymi

W automacie asynchronicznym wszystkie stany są stanami stabilnymi

ttss

xxxx

Model układu asynchronicznegoModel układu asynchronicznego

clockclockprzerzutnikiprzerzutniki

(możliwe są również realizacje z przerzutnikami asynchronicznymi)

Page 15: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

15

(Najprostszy układ asynchroniczny)SRq

00 01 11 10

0 0 0 – 1

1 1 0 – 1

QQ SRqQ

QQSS

RRQ

Rq

Asynchroniczny przerzutnik SRAsynchroniczny przerzutnik SR

SRq SRq

Dlaczego RS ≠ 11 ?

1

1

0

0

1

1

Page 16: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

16

Synteza układów asynchronicznych

. . . jest bardzo trudna na etapie kodowania stanów, ale z całkiem innych powodów niż w układach synchronicznych.

. . . jest bardzo trudna na etapie kodowania stanów, ale z całkiem innych powodów niż w układach synchronicznych.

Przy niewłaściwym doborze kodowania automat może pracować niezgodnie z pierwotną tablica przejść-wyjść

Przy niewłaściwym doborze kodowania automat może pracować niezgodnie z pierwotną tablica przejść-wyjść

Powstają wtedy tzw. wyścigi krytyczne wprowadzające automat do stanu innego niż jest podany

w tablicy przejść wyjść.

Powstają wtedy tzw. wyścigi krytyczne wprowadzające automat do stanu innego niż jest podany

w tablicy przejść wyjść.

Przyczyną kłopotów są zjawiska niejednakowego opóźnienia sygnału w elementach logicznych.

Przyczyną kłopotów są zjawiska niejednakowego opóźnienia sygnału w elementach logicznych.

Page 17: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

17

Synteza układów asynchronicznych

x1x2

S00 01 11 10 y

A 00 00 00 01 10 0

B 01 – 10 01 10 1

(-) 11 – – – – –

C 10 00 10 10 10 0

1010

0101

A/0A/0B/1B/1

C/0C/0

0000

0000 1010

1111 1111

10100101

1111

010100

01

10

Kod stanu

Graf stanówGraf stanów

x1x2

S00 01 11 10 y

A A A B C 0

B – C B C 1

C A C C C 0

Page 18: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

18

Analiza działania układu asynchronicznego

1 > 2

0 1 0 0 1 0

1 < 2

0 1 1 1 1 0

x1x2

S00 01 11 10 y

A 00 00 00 01 10 0

B 01 – 10 01 10 1

(-) 11 – – – – –

C 10 00 10 10 10 0

10

x1

x2

y

Q1

Q2

q1

q2

Układkombinacyjny(bez opóźnień)

Układkombinacyjny(bez opóźnień)

1

2

OpóźnieniaOpóźnienia

Wyścigniekrytyczny

0110

Wyścigkrytyczny!

Page 19: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

19

Zmodyfikowana tablica przejść

x1x2

S00 01 11 10 y

A 00 00 00 01 10 0

B 01 – 11 01 10 1

(-) 11 – 10 – 10 –

C 10 00 10 10 10 0

x1x2

Q1Q200 01 11 10 00 01 11 10 00 01 11 10

00 00 00 01 10 0 0 0 1 0 0 1 0

01 -- 11 01 10 - 1 0 1 - 1 1 0

11 -- 10 -- 10 - 1 - 1 - 0 - 0

10 00 10 10 10 0 1 1 1 0 0 0 0

Q1’Q1’Q1’Q2’Q1’Q2’ Q2’Q2’

W celu uzyskania prawidłowego działania układu asynchronicznego jego tablicę przejść należy odpowiednio modyfikować

W celu uzyskania prawidłowego działania układu asynchronicznego jego tablicę przejść należy odpowiednio modyfikować

Page 20: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

20

Wyznaczanie funkcji wzbudzeń

x1x2

Q1Q200 01 11 10 00 01 11 10 00 01 11 10 Y

00 00 00 01 10 0 0 0 1 0 0 1 0 0

01 -- 11 01 10 - 1 0 1 - 1 1 0 1

11 -- 10 -- 10 - 1 - 1 - 0 - 0 -

10 00 10 10 10 0 1 1 1 0 0 0 0 0

Q1’Q1’Q1’Q2’Q1’Q2’ Q2’Q2’

1x

1Q

2x

1x

1x

2Q

2x

1QQ1'

2x

2Q

1Q

2x

1x

1QQ2'

Y = Q2Y = Q2

Dlaczego dodano dodatkową pętlę – składnik ? Dlaczego dodano dodatkową pętlę – składnik ? 1x

1Q

Zjawisko hazardu Zjawisko hazardu

Page 21: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

21

Zjawisko hazardu

Z

ZX1

X2

X2

Q11

1

2

2

2x

1x

1x

2Q

2x

1QQ1'

11 22

Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 0 na wyjściu Z powinna być stała 1

Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 0 na wyjściu Z powinna być stała 1

2x

1x

2x

1QZ

Na skutek opóźnienia sygnału w sygnale Z pojawia się krótki impuls o wartości 0.

Jest to hazard statyczny - szkodliwy w układach asynchronicznych!

Na skutek opóźnienia sygnału w sygnale Z pojawia się krótki impuls o wartości 0.

Jest to hazard statyczny - szkodliwy w układach asynchronicznych!

2x

Page 22: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

22

Zjawisko hazardu

W układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny.

W układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny.

Wyrażenia boolowskie należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą.

Wyrażenia boolowskie należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą.

x1x2

Q1Q200 01 11 10

00 0 0 0 1

01 - 1 0 1

11 - 1 - 1

10 0 1 1 1 1x

1Q

2x

1x

1x

2Q

2x

1QQ1'

1x

1Q

2x

1x

1x

2Q

2x

1QQ1'

Page 23: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

23

Jak jest zbudowany przerzutnik synchroniczny?

??Przerzutnik

typu D

DD

ClkClk Q

DQ

0 1

0 0 1

1 0 1

Q

Przerzutniki synchroniczne realizujemy jako układy asynchroniczne

Przerzutniki synchroniczne realizujemy jako układy asynchroniczne

Sygnał zegarowy nie występuje w opisie działania (w tablicy przejść) tego przerzutnika

Sygnał zegarowy nie występuje w opisie działania (w tablicy przejść) tego przerzutnika

Page 24: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

24

Przykład

Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim

Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim

S

R

Q

Q

Q00 01 11 10

0 – 1 0 0

1 – 1 1 0

R S

Przerzutn ikR S

SQ

RQ

Automatsteru jący

Y1

Y2

D

Clk

Page 25: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

25

Przykład c.d.

Autom atsterujący

Przerzutn ikR S

Y1

Y2

SQ

RQ

D

Clk

0101

0010

00101/111/11

2/012/01

3/103/10

1101

1101

1101

1101

1111

0010

0010

0010

0010

R S

D clkD clk

R S

Graf Rozdz. 4.4

D

clk

Q

0000 10101111

Page 26: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

26

Przykład c.d.

D,clkS

00 01 11 10 Y1Y2

1 1 3 2 1 11

2 1 2 2 1 01

3 1 3 3 1 10

0011

11

11

00

00

10

10

10

01

01

01

2/01

1/11

3/10

D clk

S R

Tablica przejść-wyjśćTablica przejść-wyjść

D,cQ1Q2

00 01 11 10 Y1Y2

00 -- -- -- -- --

(2) 01 11 01 01 11 01

(1) 11 11 10 01 11 11

(3) 10 11 10 10 11 10

(clk c)(clk c)

Zakodowana tablica p-w(kody stanów takie same,

jak wyjścia Y1, Y2)

Zakodowana tablica p-w(kody stanów takie same,

jak wyjścia Y1, Y2)

Page 27: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

27

Przykład c.d.

D,cQ1Q2

00 01 11 10 Y1Y2

00 -- -- -- -- --

(2) 01 11 01 01 11 01

(1) 11 11 10 01 11 11

(3) 10 11 10 10 11 10

(clk c)(clk c)

Q1’ Q2’Q1’ Q2’

D,cQ1Q2

00 01 11 10

00 - - - -

(2) 01 1 0 0 1

(1) 11 1 1 0 1

(3) 10 1 1 1 1

D,cQ1Q2

00 01 11 10

00 - - - -

(2) 01 1 1 1 1

(1) 11 1 0 1 1

(3) 10 1 0 0 1

2QD

1Qc

1QD

2Qc

Q1’Q1’ Q2’Q2’

Page 28: Problem kodowania stanów w układach  sekwencyjnych (automatach)

ITPW

ZPT

28

Przykład - realizacja

2Q D

1Qc

2QD

1Qc

2QD

1QcQ1'

1Q D

2Qc

1QD

2Qc

1QD

2QcQ2'

S

R

Q

Q

D

Clk(c)

Q 1’=Y1

Q 2’=Y2Autom at sterujący