Układy sekwencyjne

42
I T P W ZPT 1 Układy sekwencyjne UKŁAD KOMBINACYJNY Wektor wyjściowy Y t w chwili t zależy od wektora wejściowego X t w chwili t UKŁAD SEKWENCYJNY Wektor wyjściowy Y t w chwili t zależy od sekwencji wektorów wejściowych X t , X t-1 , X t-2 , …. w chwilach t, t-1, t-2, ……. X t Y t UK X t , X t-1 , X t-2 , …. Y t US Modelem układu sekwencyjnego jest AUTOMAT Historia wejść

description

Układy sekwencyjne. UKŁAD KOMBINACYJNY Wektor wyjściowy Y t w chwili t zależy od wektora wejściowego X t w chwili t. UK. US. X t , X t-1 , X t-2 , …. X t. Y t. Y t. Historia wejść. UKŁAD SEKWENCYJNY Wektor wyjściowy Y t w chwili t - PowerPoint PPT Presentation

Transcript of Układy sekwencyjne

Page 1: Układy sekwencyjne

ITPW

ZPT

1

Układy sekwencyjne

UKŁAD KOMBINACYJNYWektor wyjściowy Yt w chwili t zależy od wektora wejściowego Xt w chwili t

UKŁAD SEKWENCYJNYWektor wyjściowy Yt w chwili t zależy od sekwencji wektorów wejściowych Xt, Xt-1, Xt-2, …. w chwilach t, t-1, t-2, …….

Xt YtUKXt, Xt-1, Xt-2, …. YtUS

Modelem układu sekwencyjnego jest AUTOMAT

Historia wejść

Page 2: Układy sekwencyjne

ITPW

ZPT

2

Układy sekwencyjne - pojęcie automatu

 Automat

a) zbioru liter wejściowych V (X)

b) zbioru stanów wewnętrznych S,

c) funkcji przejść (ozn. ),

d) funkcji wyjść (ozn. ).

i wyjściowych Y,

v V y Y

jest definiowany przez określenie: 

S1

S1 S2

S2

S3

S3

v1

v1

v2

v2

v2

v2

v2

v2

v1

v1

v1

v1

v3

v3

v3

v3

v3

v3

v2

v2

Y2

Y2v1

v1

Y1

Y1Y3

Y3v3

v3v1

v1

/Y2

/Y2 /Y1

/Y1

/Y3

/Y3

Page 3: Układy sekwencyjne

ITPW

ZPT

3

Funkcja przejść i wyjść

Funkcja wyjść:

: S Y (tzw. automat Moore’a)

Funkcja przejść: : S X S

: S X Y (tzw. automat Mealy’ego)

Automat może być zupełny lub niezupełny.

Automat jest niezupełny, jeżeli funkcja nie jest określona dla całego zbioru S X, lub funkcja nie jest określona dla całego zbioru S X lub zbioru S

Page 4: Układy sekwencyjne

ITPW

ZPT

4

Specyfikacja automatu

Mealy’egoTablica przejść-wyjść automatu:

Moore’a

v1 v2 v1 v2

S1 S2 S1 y1 y2

S2 S3 S2 y3 y1

S3 S2 S1 y2 y3

v1 v2 v3 y

S1 S2 S1 S3 y2

S2 S3 S1 S2 y1

S3 S1 S3 S2 y3

... i grafMealy’ego: Moore’a:

stan/wyjście

wejście

stan

wejście/wyjście

Page 5: Układy sekwencyjne

ITPW

ZPT

5

Specyfikacja automatu

Mealy’egoTablica przejść-wyjść automatu:

Moore’a

v1 v2 v1 v2

S1 S2 S1 y1 y2

S2 S3 S2 y3 y1

S3 S2 S1 y2 y3

v1 v2 v3 y

S1 S2 S1 S3 y2

S2 S3 S1 S2 y1

S3 S1 S3 S2 y3

... i graf

Mealy’ego

Moore’a

v

vvv

v

v

v

v

v1

11

2

2

3

3

2

3

y

y

1

3

2

S

S

S

3

1

/y2

v /y

v /y

v /y

v /y

v /y

v /y1

1

1

1

2

2

2

1

2

3

3

2

1S

3S

2S

Page 6: Układy sekwencyjne

ITPW

ZPT

6

x1

xn

y1

ym

Q1

Qk

q1

qk

Układ sekwencyjny

wejście synchronizujące

UK

BP

CLK

US

Zakodowane litery wejściowe

Zakodowane litery wyjściowe

Zakodowane stany

automatu

00x1 x2 01 11

W układach synchronicznych W układach asynchronicznych

Jak zrealizowaćautomat

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

0100

11

1001

000

001

010

Q1Q2Q1Q2

011

100

Page 7: Układy sekwencyjne

ITPW

ZPT

7

x1

xn

y1

ym

Q1

Qk

q1

qk

Klasyfikacja układów sekwencyjnych

Układy sekwencyjne:

Synchroniczne (BP zbudowany z przerzutników synchronicznych)

wejście synchronizujące

Asynchroniczne (BP realizują opóźnienia lub przerzutniki asynchroniczne)

UK

BP

CLK

Brak sygnału zegarowego

Page 8: Układy sekwencyjne

ITPW

ZPT

8

x1

xn

y1

ym

Q1

Qk

q1

qk

Synchroniczne układy sekwencyjne

UK

Przerzutniki

CLK

BP

FFI1

I2

Q

Q

CLK

Przerzutnik – to automat typu Moore’a

o dwóch stanach wewnętrznych,

jednym lub dwóch wejściach informacyjnych,

dwóch wyjściach (prostym i zanegowanym)

oraz wejściu synchronizującym (zegarowym).

Page 9: Układy sekwencyjne

ITPW

ZPT

9

Przerzutniki

W zależności od rodzaju wejść informacyjnych wyróżniamy przerzutniki typu: D, T, SR oraz JK.

FFDQ

Q

CLK

FFTQ

Q

CLK

FFSR

Q

Q

CLK

FFJK

Q

Q

CLK

Przerzutnik jest określony: tablicą przejść, równaniem charakterystycznym, tablicą wzbudzeń.

Page 10: Układy sekwencyjne

ITPW

ZPT

10

Przerzutniki – tablice przejść

D

Q0 1

0 0 1

1 0 1

Q’ = D

T

Q0 1

0 0 1

1 1 0

QTQTQ'

SR

Q00 01 11 10

0 0 0 – 1

1 1 0 – 1

JK

Q00 01 11 10

0 0 0 1 1

1 1 0 0 1

Równanie charakterystyczne: Q’ = f(I1,I2,Q)

Page 11: Układy sekwencyjne

ITPW

ZPT

11

Przerzutniki – tablice wzbudzeń

Q Q’ D T S R J K

00 0 0 0 – 0 –

01 1 1 1 0 1 –

10 0 1 0 1 – 1

11 1 0 – 0 – 0

D – delay T – trigger

S – Set (wejście włączające)R – Reset (wejście wyłączające)

J – wejście włączająceK – wejście wyłączające

Page 12: Układy sekwencyjne

ITPW

ZPT

12

Przebiegi czasowe – przerzutnik typu D

D

Q

CLK

FFDQ

Q

CLK

D

Q0 1

0 0 1

1 0 1

Page 13: Układy sekwencyjne

ITPW

ZPT

13

Przebiegi czasowe – przerzutnik typu T

T

Q

CLK

FFTQ

Q

CLK

T

Q 0 1

0 0 1

1 1 0

Page 14: Układy sekwencyjne

ITPW

ZPT

14

Przebiegi czasowe - porównanie

D (T)

Q (D)

Q (T)

CLK

Page 15: Układy sekwencyjne

ITPW

ZPT

15

Synteza układów sekwencyjnych

Etapy syntezy: synteza abstrakcyjna (utworzenie tablicy przejść-wyjść) redukcja (minimalizacja) liczby stanów kodowanie stanów, liter wejściowych i wyjściowych synteza kombinacyjna (obliczanie funkcji wzbudzeń przerzutników i funkcji wyjściowych)

S1

S1 S2

S2

S3

S3

v1

v1

v2

v2

v2

v2

v2

v2

v1

v1

v1

v1

v3

v3

v3

v3

v3

v3

/Y2

/Y2 /Y

1

/Y

1

/Y3

/Y3

v1 v2 v1 v2

S1 S2 S1 y1 y2

S2 S3 S2 y3 y1

S3 S2 S1 y2 y3

T1Q1

Q 1

Q1

Q 1

T0Q0

Q 0

CLK

x x Y

Page 16: Układy sekwencyjne

ITPW

ZPT

16

Synteza kombinacyjna…

UK wePrzerzutniki

UK wyXXYY

Obliczanie funkcji sterujących wejściami przerzutników (funkcje wzbudzeń)

Obliczanie funkcji wyjściowych

CLK

QQQ’Q’

Q’ = f(X,Q)Y = f(Q) (Moore)

Y = f(X,Q) (Mealy)

Page 17: Układy sekwencyjne

ITPW

ZPT

17

Przykład syntezy (detektor sekwencji)

X S

0 1 0 1

A B A 0 0

B C A 0 0

C C A 0 1

X Q1Q0

0 1 0 1

A 00 01 00 0 0

B 01 11 00 0 0

C 11 11 00 0 1

(–) 10 – – – – – –Y

Do zakodowania trzech symboli stanów potrzebne są dwie zmienne binarne

Samo przyporządkowanie symbolom stanów słów binarnych jest zazwyczaj dowolne, gdyż staramy się spełnić wyłącznie warunek jednoznaczności kodowania, ale…

czyli wystarczą dwa przerzutniki, oznaczamy je Q1, Q0

Page 18: Układy sekwencyjne

ITPW

ZPT

18

Obliczanie funkcji wzbudzeń i wyjściowych

XS Q1Q0

0 1 0 1

A 00 01 00 0 0

B 01 11 00 0 0

C 11 11 00 0 1

(–) 10 – – – – – –

XQ1Q0

0 1X

Q1Q00 1

00 0 0 00 1 0

01 1 0 01 1 0

11 1 0 11 1 0

10 – – 10 – –

D1=Q1’ D0=Q0’

Y

xQ1Y

Q0xD1Q1' xD0Q0'

QQ’ D

00 0

01 1

10 0

11 1

Tworzymy tabelki dla funkcji wzbudzeń

poszczególnych przerzutników

Tworzymy tabelki dla funkcji wzbudzeń

poszczególnych przerzutników

Page 19: Układy sekwencyjne

ITPW

ZPT

19

Schemat logiczny detektora sekwencji

xQ1YQ0xD1 xD0

D 1Q 1

Q 1

D 1Q 1

Q 1

D 0Q 0

Q 0

x Y

CLKCLK

Schemat logiczny rysujemy na podstawie obliczonych funkcji wzbudzeń: Schemat logiczny rysujemy na podstawie obliczonych funkcji wzbudzeń:

Page 20: Układy sekwencyjne

ITPW

ZPT20

Jak pracuje automat

D 1Q 1

Q 1

D 1Q 1

Q 1

D 0Q 0

Q 0

x Y

CLKCLK

XS Q1Q0

0 1 0 1

A 00 01 00 0 0

B 01 11 00 0 0

C 11 11 00 0 1

(–) 10 – – – – – –

0 0

0

Q1

Q0

clk

1 1

1

0 0

Page 21: Układy sekwencyjne

ITPW

ZPT

21

Przykład... Realizacja T

XQ1Q0

0 1

00 0 0

01 1 0

11 1 0

10 – –

XQ1Q0

0 1

00 1 0

01 1 0

11 1 0

10 – –

QQ’ T

00 0

01 1

10 1

11 0

XQ1Q0

0 1

00

01

11

10 – –

XQ1Q0

0 1

00

01

11

10 – –

Q1’ Q0’

T1 T0

xQ1x1Q0QT1 xQ00QxT0 Y – jak poprzednio

0 0

0

0

1

1

0

0

0 1

1

1

Page 22: Układy sekwencyjne

ITPW

ZPT

22

Schemat logiczny detektora (T)

xQ1x1Q0QT1 xQ00QxT0 Y – jak poprzednio

T1Q1

Q 1

Q1

Q 1

T0Q0

Q 0

CLK

xx

Y

Page 23: Układy sekwencyjne

ITPW

ZPT

23

Przykład... Realizacja JK

QQ’ J K

00 0 –

01 1 –

10 – 1

11 – 0

Q1Q0 0 1 Q1Q0 0 1

00 00

01 01

11 11

10 – – 10 – –

J1 K1

Q1Q0 0 1 Q1Q0 0 1

00 00

01 01

11 11

10 – – 10 – –

J0 K0

Q0xJ1 xJ0 xK1 xK0

XQ1Q0

0 1

00 0 0

01 1 0

11 1 0

10 – –

XQ1Q0

0 1

00 1 0

01 1 0

11 1 0

10 – –

Q1’ Q0’

– 1

0 –0

0– 0

– 0

0 –

–1

1

–– 0

1

1

Page 24: Układy sekwencyjne

ITPW

ZPT

24

Schemat logiczny detektora (JK)

Q0xJ1 xJ0 xK1 xK0

1QJ

K Q0K

J Q

QCLK

Y

Y – jak poprzednio

x

Page 25: Układy sekwencyjne

ITPW

ZPT

Porównanie realizacji

25

D 1Q 1

Q 1

D 1Q 1

Q 1

D 0Q 0

Q 0

x Y

CLKCLK

T1Q1

Q 1

Q1

Q 1

T0Q0

Q 0

CLK

x

xY

1QJ

K Q0K

J Q

QCLK

Yx

Realizacja D Realizacja T

Realizacja JK

Page 26: Układy sekwencyjne

ITPW

ZPT

26

a – up – liczenie do przodu

b – down – liczenie do tyłu

c – clear – zerowanie

x1

x2

Zadanie nieco trudniejsze

(Licznik mod. 5 ze sterowaniem)

Licznik to układ cyfrowy (blok funkcjonalny), w którym zliczane są impulsy zegarowe. Pojawienie się impulsu zwiększa lub zmniejsza zawartość licznika o 1.

Czyli jest to prosty układ sekwencyjny, który musi pamiętać poprzednią zawartość reprezentowaną stanem wewnętrznym.

Zaprojektować licznik, który będzie wykonywał trzy czynności:

(up, down, clear)yLicznik

Informację o tym jaka czynność (mikrooperacja) ma być wykonywana, wprowadzana jest do licznika sygnałami x1, x2.

Page 27: Układy sekwencyjne

ITPW

ZPT

27

Zadanie: licznik mod. 5 ze sterowaniem

XS

a b c YX

Q2Q1Q000 01 11 10

S0 S1 S4 S0 0 000 001 100 000 000

S1 S2 S0 S0 0 001 010 000 000 000

S2 S3 S1 S0 0 010 011 001 000 000

S3 S4 S2 S0 0 011 100 010 000 000

S4 S0 S3 S0 1 100 000 011 000 000

a – up – liczenie do przodub – down – liczenie do tyłuc – clear – zerowanie

a – up – liczenie do przodu

b – down – liczenie do tyłu

c – clear – zerowanie

Licznik(up, down, clear)

x1

x2

clk

y

Naturalny kod binarny

NKB

Page 28: Układy sekwencyjne

ITPW

ZPT

28

Licznik ze sterowaniem…

X Q2Q1Q0 00 01 11 10

000 001 100 000 000

001 010 000 000 000

010 011 001 000 000

011 100 010 000 000

100 000 011 000 000

x1x2

Q2Q1Q0 00 01 11 10

000

001

011

010

110

111

101

100

001 100 000 000001 100 000 000

010 000 000 000010 000 000 000

100 010 000 000100 010 000 000

011 001 000 000011 001 000 000

000 011 000 000000 011 000 000

--- --- --- --- --- --- --- --- --- --- --- ---

--- --- --- --- --- --- --- --- --- --- --- ---

Q2’Q1’Q0’Q2’Q1’Q0’

Q2’Q1’Q0’Q2’Q1’Q0’

Page 29: Układy sekwencyjne

ITPW

ZPT

29

x1x2

Q2Q1Q000 01 11 10

x1x2

Q2Q1Q000 01 11 10

x1x2

Q2Q1Q000 01 11 10

000 0 1 0 0 000 0 0 0 0 000 1 0 0 0001 0 0 0 0 001 1 0 0 0 001 0 0 0 0011 1 0 0 0 011 0 1 0 0 011 0 0 0 0010 0 0 0 0 010 1 0 0 0 010 1 1 0 0110 – – – – 110 – – – – 110 – – – –111 – – – – 111 – – – – 111 – – – –101 – – – – 101 – – – – 101 – – – –100 0 0 0 0 100 0 1 0 0 100 0 1 0 0

x1x2

Q2Q1Q000 01 11 10

000 001 100 000 000

001 010 000 000 000

011 100 010 000 000

010 011 001 000 000

110 --- --- --- ---

111 --- --- --- ---

101 --- --- --- ---

100 000 011 000 000

Q2’Q1’Q0’Q2’Q1’Q0’

Q2’Q2’ Q1’Q1’ Q0’Q0’

Dla przerzutników typu D: Q’ = D

Dla przerzutników typu D: Q’ = D

= D0 = D0 = D1 = D1 = D2 = D2

Przerzutniki DPrzerzutniki DKolory wyróżniają stan bieżący i następny poszczególnych przerzutników

Kolory wyróżniają stan bieżący i następny poszczególnych przerzutników

Q2 Q2 Q1 Q1 Q0 Q0

Page 30: Układy sekwencyjne

ITPW

ZPT

30

x1x2

Q2Q1Q000 01 11 10

x1x2

Q2Q1Q000 01 11 10

x1x2

Q2Q1Q000 01 11 10

000 0 1 0 0 000 0 0 0 0 000 1 0 0 0

001 0 0 0 0 001 1 0 0 0 001 0 0 0 0

011 1 0 0 0 011 0 1 0 0 011 0 0 0 0

010 0 0 0 0 010 1 0 0 0 010 1 1 0 0

110 – – – – 110 – – – – 110 – – – –

111 – – – – 111 – – – – 111 – – – –

101 – – – – 101 – – – – 101 – – – –

100 0 0 0 0 100 0 1 0 0 100 0 1 0 0

D2 D1 D0

D2 = D2 = 2

x1

xQ1Q0

2x

1x0Q1Q2Q

D1 = D1 = 2

x1

x0QQ12

x1

x1Q0Q

2x

1xQ1Q0

2x

1xQ2

D0 = D0 =

2x

1x0Q2Q1

x0QQ1

2x

1xQ2

Licznik ze sterowaniem - przerzutniki D

Page 31: Układy sekwencyjne

ITPW

ZPT

31

Licznik ze sterowaniem - przerzutniki JK

Page 32: Układy sekwencyjne

ITPW

ZPT

32

Licznik ze sterowaniem - JK

x1x2

Q2Q1Q0

00 01 11 10x1x2

Q2Q1Q0

00 01 11 10

000 0 1 0 0 000 – – – –

001 0 0 0 0 001 – – – –

011 1 0 0 0 011 – – – –

010 0 0 0 0 010 – – – –

110 – – – – 110 – – – –

111 – – – – 111 – – – –

101 – – – – 101 – – – –

100 – – – – 100 1 1 1 1

J2 K2

J2 = J2 = 2x

1xQ1Q0

2x

1x0Q1Q K2 = K2 = 1

x1x2

Q2Q1Q0

00 01 11 10

000 0 1 0 0

001 0 0 0 0

011 1 0 0 0

010 0 0 0 0

110 – – – –

111 – – – –

101 – – – –

100 0 0 0 0

Q2’ Q2’

QQ’ J K00 0 –01 1 –10 – 111 – 0

QQ’ J K00 0 –01 1 –10 – 111 – 0

Page 33: Układy sekwencyjne

ITPW

ZPT

33

x1x2

Q2Q1Q0

00

01 11 10x1x2

Q2Q1Q0

00 01 11 10

000 0 0 0 0 000 – – – –

001 1 0 0 0 001 – – – –

011 – – – – 011 1 0 1 1

010 – – – – 010 0 1 1 1

110 – – – – 110 – – – –

111 – – – – 111 – – – –

101 – – – – 101 – – – –

100 0 1 0 0 100 – – – –

J1 K1

J1 = J1 = 2x

1xQ0

2x

1xQ2 K1 = K1 = x1 2

xQ02

0xQ

x1x2

Q2Q1Q0

00 01 11 10

000 0 0 0 0

001 1 0 0 0

011 0 1 0 0

010 1 0 0 0

110 – – – –

111 – – – –

101 – – – –

100 0 1 0 0

Q1’ Q1’

Licznik ze sterowaniem - JKQQ’ J K00 0 –01 1 –10 – 111 – 0

QQ’ J K00 0 –01 1 –10 – 111 – 0

Page 34: Układy sekwencyjne

ITPW

ZPT

34

x1x2

Q2Q1Q0

00 01 11 10x1x2

Q2Q1Q0

00 01 11 10

000 1 0 0 0 000 – – – –

001 – – – – 001 1 1 1 1

011 – – – – 011 1 1 1 1

010 1 1 0 0 010 – – – –

110 – – – – 110 – – – –

111 – – – – 111 – – – –

101 – – – – 101 – – – –

100 0 1 0 0 100 – – – –

J0 K0

J0 = J0 = 2x

1x2Q 1

xQ1K0 = K0 = 12

x1

xQ2

x1x2

Q2Q1Q0

00 01 11 10

000 1 0 0 0

001 0 0 0 0

011 0 0 0 0

010 1 1 0 0

110 – – – –

111 – – – –

101 – – – –

100 0 1 0 0

Q0’ Q0’

Licznik ze sterowaniem - JKQQ’ J K00 0 –01 1 –10 – 111 – 0

QQ’ J K00 0 –01 1 –10 – 111 – 0

Page 35: Układy sekwencyjne

ITPW

ZPT

35

Nie martwmy się ...

trzeba przetwarzać ogromne tablice wypełnione

zerami i jedynkami.

Ale nie martwmy się! Proces ten – w systemach komputerowego projektowania – jest całkowicie zautomatyzowany.

Synteza kombinacyjna układów sekwencyjnych może być

(i zazwyczaj jest) procesem żmudnym,

01100100

10011110

01001000

01010101

010100111...i jeszcze zakreślać pętelki!!!

Page 36: Układy sekwencyjne

ITPW

ZPT

36

Nie martwmy się ...

AHDL lub VHDL

…dalej automatycznie

…aż do zaprogramowania

jedyną czynnością użytkownika jest ...

Page 37: Układy sekwencyjne

ITPW

ZPT

37

Specyfikacja automatu

Nie wnikając w szczegóły takiego zapisu (będą one omawiane na wykładzie z Układów cyfrowych) trzeba podkreślić, że jest to wierne odwzorowanie tablicy przejść wyjść automatu.

AHDLVHDL

AHDLVHDL

Page 38: Układy sekwencyjne

ITPW

ZPT

38

Na przykład licznik ze sterowaniem...

TABLE % current current next next % % state input state output %

s, v[] => s, y; s0, B"00„ => s1, 0; s0, B"01„ => s4, 0; s0, B"1X„ => s0, 0; s1, B"00„ => s2, 0; s1, B"01„ => s0, 0; s1, B"1X„ => s0, 0; s2, B"00„ => s3, 0; s2, B"01„ => s1, 0; s2, B"1X„ => s0, 0; s3, B"00„ => s4, 0; s3, B"01„ => s2, 0; s3, B"1X„ => s0, 0; s4, B"00„ => s0, 1; s4, B"01„ => s3, 1; s4, B"1X„ => s0, 1;

END TABLE;

XS

00 01 10 Y

S0 S1 S4 S0 0

S1 S2 S0 S0 0

S2 S3 S1 S0 0

S3 S4 S2 S0 0

S4 S0 S3 S0 1

zapisany w języku AHDL…

Page 39: Układy sekwencyjne

ITPW

ZPT

…lub VHDL

*********************Plik VHDL automat.vhd*********************

LIBRARY ieee;USE ieee.std_logic_1164.all;

ENTITY automat ISPORT(zegar, reset : IN STD_LOGIC;X: IN STD_LOGIC_VECTOR(1 DOWNTO 0);Y : OUT STD_LOGIC);END automat;

ARCHITECTURE funkcja_przejsc OF automat ISCONSTANT a : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";CONSTANT b : STD_LOGIC_VECTOR(1 DOWNTO 0) := "01";CONSTANT c : STD_LOGIC_VECTOR(1 DOWNTO 0) := "11";

CONSTANT S0 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";CONSTANT S1 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "001";CONSTANT S2 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "010";CONSTANT S3 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "011";CONSTANT S4 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "100";SIGNAL state_reg, state_next : STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGINPROCESS(reset, zegar)BEGINIF reset = '1' THENstate_reg <= S0;ELSIF(zegar'EVENT AND zegar = '1') THENstate_reg <= state_next;END IF;END PROCESS;

PROCESS(X, state_reg)BEGIN CASE state_reg ISWHEN S0 =>CASE X ISWHEN a =>state_next <= S1;WHEN b =>state_next <= S4;WHEN c =>state_next <= S0;WHEN OTHERS =>state_next <= S0;END CASE;

………..

WHEN S4 =>CASE X ISWHEN a =>state_next <= S0;WHEN b =>state_next <= S3;WHEN c =>state_next <= S0;WHEN OTHERS =>state_next <= S0;END CASE;WHEN OTHERS =>state_next <= S0; END CASE;END PROCESS;-- funkcja wyjscia Y <= '1' WHEN state_reg = S4 ELSE '0';

END funkcja_przejsc;

po wprowadzeniu…

Page 40: Układy sekwencyjne

ITPW

ZPT

40

…specyfikacji do edytora tekstowego

TABLE % current current next next % % state input state output %

s, v[] => s, y; s0, B"00„ => s1, 0; s0, B"01„ => s4, 0; s0, B"1X„ => s0, 0; s1, B"00„ => s2, 0; s1, B"01„ => s0, 0; s1, B"1X„ => s0, 0; s2, B"00„ => s3, 0; s2, B"01„ => s1, 0; s2, B"1X„ => s0, 0; s3, B"00„ => s4, 0; s3, B"01„ => s2, 0; s3, B"1X„ => s0, 0; s4, B"00„ => s0, 1; s4, B"01„ => s3, 1; s4, B"1X„ => s0, 1;

END TABLE;

Page 41: Układy sekwencyjne

ITPW

ZPT

41

i uruchomieniu kompilatora…

q0 _EQ001 = !q0 & q1 & !X1 & X2 # q2 & !X1 & X2 # !q0 & !q2 & !X1 & !X2;

q1 _EQ002 = q2 & !X1 & X2 # q0 & q1 & !X1 & X2 # !q0 & q1 & !q2 & !X1 & !X2 # q0 & !q1 & !q2 & !X1 & !X2;

q2 _EQ003 = !q0 & !q1 & !q2 & !X1 & X2 # q0 & q1 & !q2 & !X1 & !X2;

EPM7032

...zostanie automatycznie zrealizowany bez udziału projektanta.

Page 42: Układy sekwencyjne

ITPW

ZPT

42

Wniosek

Skoro kompilator oblicza funkcje wzbudzeń automatycznie, to umiejętność ta nie jest w dzisiejszych czasach sprawą najważniejszą.

Lepiej skoncentrować się na tych metodach i procedurach syntezy logicznej, które nie są jeszcze wbudowane do systemów komercyjnych.