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

Post on 08-Jan-2016

40 views 1 download

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

Transcript of 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)

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!

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

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

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

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.

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

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.

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!

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)

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

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!

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.

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

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)

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

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.

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

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!

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ć

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

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

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'

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

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

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

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)

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’

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