vtŠ novi sad - kelm.ftn.uns.ac.rs · vtŠ novi sad elektronika 2 - digitalna elektronika 5 in = 0...

14

Click here to load reader

Upload: hoangkhanh

Post on 05-Jul-2018

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi SadElektronika 2 - Digitalna elektronika

6. IMPLEMENTACIJA SEKVENCIJALNE

LOGIKEdr Zoran Mitrović

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 2

Implementacija sekvencijalne logike

Sekvencijalna kolaOsnovni sekvencijalni elementiKombinaciona logika

Modeli za predstavljanje sekvencijalnih kolaMetoda konačnih stanja (Finite-state machines)Predstavljanje memorije (stanja)Promene stanja (tranzicije)

Osnovna sekvencijalna kolaPomerački registriBrojači

Procedura projektovanjaDijagrami stanjaTabela tranzicijaFunkcije sledećeg stanja

Page 2: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 3

Elementi stanja

Podeliti kolo na kombinacionu logiku i stanjeLokalizovati petlje povratne sprege i obezbediti da je olakšano da se raskinuImplementacija elemenata memorije vodi do različitih formi sekvencijalne logike

CombinationalLogic

Elementi memorije

Izlazi

Izlazi stanjaUlazi stanja

Ulazi

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 4

Forme sekvencijalne logike

Asinhrona sekvencijalna logika – promene stanja se dešavaju kad se menjaju stanja ulaza (elementi mogu da budu obične šice ili elementi kašnjenja)Sinhrona sekvencijalna logika – promene stanja se dešavaju u definisanim koracima kroz memorijske elemente (koristeći periodični talasni oblik - takt)

Takt

Page 3: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5

In = 0

In = 1

In = 0In = 1

100

010

110

111001

Prikaz “mašine” konačnih stanja

Stanja: definisana mogućim vrednostima u sekvencijalnim memorijskim elementimaTranzicija: promena stanjaTakt: dozvoljava kad stanje može da se promeni kontrolom memorijskih elemenata

Sekvencijalna logikaSekvencijalni prolazak kroz niz stanjaBazirana na sekvenci vrednosti ulaznih signalaPeriodi takta definišu elemente sekvence

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 6

Primer dijagrama “mašine” konačnih stanja

Kombinaciona brava sa početka kursa

resetS3

zatvoreno

zatvorenomux=C1 jednako

& novi

nije jednako& novi

nije jednako & novi

nije jednako & novi

nije novinije novinije novi

S1 S2 OTVORENO

GREŠKA

zatvorenomux=C2 jednako

& novi

zatvorenomux=C3 jednako

& novi

otvoreno

Page 4: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 7

Može li bilo koji sekvencijalni sistem da se predstavi dijagramom stanja?

Pomerački registarUlazna vrednost predstavljenana tranzicionim lukovimaIzlazna vrednost prikazanaunutar čvora stanja 100 110

111

011

101010000

001

0

1

1 1

11

1

1

0

0

0

0 0

1

00

D Q D Q D QIN

OUT1 OUT2 OUT3

CLK

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 8

010

100

110

011001

000

101111

3-bitni brojač na gore

Brojači su proste “mašine” konačnih stanja

BrojačiProlaze kroz dobro definisanu sekvencu stanja kao odgovor na enable

Mnogo tipova brojača: binarni, BCD, sa grejovim kodom3-bitni brojač na gore: 000, 001, 010, 011, 100, 101, 110, 111, 000, ...3-bitni brojač na dole: 111, 110, 101, 100, 011, 010, 001, 000, 111, ...

Page 5: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 9

Kako pretvaramo dijagram stanja u logiku?

BrojačTri flip-flopa pamte stanjeLogika za izračunavanje sledećeg stanjaTakt kontroliše kad može da se promeni stanje flip-flop-a⌧Sačekati dovoljno dugo da kombinaciona logika izračuna novu vrednost⌧Ne sme se čekati predugo – niske performanse

D Q D Q D Q

OUT1 OUT2 OUT3

CLK

"1"

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 10

Procedura projektovanja “mašine” konačnih stanja

Počinje se od brojačaProsto, jer je izlaz samo stanjeProsto, jer izbor sledećeg stanja ne zavisi od ulaza

Dijagram stanja -> tabela prelaza iz stanja u stanjeTabularna forma dijagrama stanjaNalik na kombinacionu tabelu

Kodiranje stanjaOdluka o prikazu stanjaZa brojače je to prosto: samo njegova vrednost

ImplementacijaFlip-flop za svaki bit stanjaKombinaciona logika bazirana na kodiranju

Page 6: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 11

010

100

110

011001

000

101111

3-bitni brojač na gore

tekuće stanje sledeće state0 000 001 11 001 010 22 010 011 33 011 100 44 100 101 55 101 110 66 110 111 77 111 000 0

Procedura projektovanja “mašine” konačnih stanja: dijagram stanja -> tabela prelaza iz stanja u stanje

Tabularna forma dijagrama stanjaNalik na kombinacionu tabelu (specifirati izlaze za sve ulazne kombinacije)Kodiranje stanja: prosto za brojače – samo se koristi vrednost

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 12

C3 C2 C1 N3 N2 N10 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 0 0

N1 := C1'N2 := C1C2' + C1'C2

:= C1 xor C2N3 := C1C2C3' + C1'C3 + C2'C3

:= C1C2C3' + (C1' + C2')C3:= (C1C2) xor C3

notacija koja pokazuje koja funkcija predstavlja ulaz u D-FF

Implementacija

D flip-flop za svaki bit stanjaKombinaciona logika bazirana na kodiranju

0 0

0 1

1 1

0 1C1

C2

C3N3

0 1

1 0

1 0

0 1C1

C2

C3N2

1 1

0 0

1 1

0 0C1

C2

C3N1

Page 7: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 13

D QQ

Implementacija (nastavak)

Programabilni blok za građenje sekvencijalne logikeMakro-ćelija: FF + logika⌧D-FF⌧Sposobnost logike u dva nivoa, nalik na PAL (npr., 8 proizvodnih izraza)

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 14

In C1 C2 C3 N1 N2 N30 0 0 0 0 0 00 0 0 1 0 0 00 0 1 0 0 0 10 0 1 1 0 0 10 1 0 0 0 1 00 1 0 1 0 1 00 1 1 0 0 1 10 1 1 1 0 1 11 0 0 0 1 0 01 0 0 1 1 0 01 0 1 0 1 0 11 0 1 1 1 0 11 1 0 0 1 1 01 1 0 1 1 1 01 1 1 0 1 1 11 1 1 1 1 1 1

N1 := InN2 := C1N3 := C2

Još jedan primer

Pomerački registarUlaz određuje sledeće stanje

100 110

111

011

101010000

001

0

1

1 1

11

1

1

0

0

0

0 0

1

00

D Q D Q D QIN

OUT1 OUT2 OUT3

CLK

Page 8: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 15

Primer kompleksnijeg brojača

Kompleksni brojačPonavlja pet stanja u sekvenciNije prikaz binarnih brojeva

Korak 1: Nacrtati dijagram tranzicije stanjaBrojačka sekvenca: 000, 010, 011, 101, 110

Korak 2: Nacrtati tabelu tranzicije stanja iz dijagrama tranzicije stanja

Trenutno stanje Sledeće stanjeC B A C+ B+ A+0 0 0 0 1 00 0 1 – – –0 1 0 0 1 10 1 1 1 0 11 0 0 – – –1 0 1 1 1 01 1 0 0 0 01 1 1 – – –

primetiti stanja nije-važno koja su ustvari nekorišćeni kodovi stanja

010

000 110

101

011

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 16

C+ := A

B+ := B' + A'C'

A+ := BC'

Primer kompleksnijeg brojača (nastavak)

Korak 3: K-mape za funkciju sledećeg stanja

0 0

X 1

0 X

X 1A

B

CC+

1 1

X 0

0 X

X 1A

B

CB+

0 1

X 1

0 X

X 0A

B

CA+

Page 9: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 17

Primer kompleksnijeg brojača (nastavak)

Uključiti i stanja nije-važno u tabelu tranzicija, da se definiše način kako se brojač vraća u projektovani sled

0 0

1 1

0 0

1 1A

B

CC+

1 1

1 0

0 1

0 1A

B

CB+

0 1

0 1

0 0

0 0A

B

CA+

Sadašnje Sledeće C B A C+ B+ A+0 0 0 0 1 00 0 1 1 1 00 1 0 0 1 10 1 1 1 0 11 0 0 0 1 01 0 1 1 1 01 1 0 0 0 01 1 1 1 0 0

010

000 110

101

011

001111

100

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 18

Samo-startujući brojači

Početna stanjaPrilikom uključenja brojač može da bude i u nekorišćenom ili u ne-validnom stanjuProjektant mora da obezbedi da brojač radi i kad uđe u ne-validno stanje

Rešenje sa samo-startovanjemProjektovati brojač tako da ne-validna stanja prelaze u validnaMože da se ograniči rad sa stanjima nije-važno

implementacijana prethodnom slajdu

010

000 110

101

011

001111

100

010

000 110

101

011

001 111

100

Page 10: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 19

Model stanja (State Machine)

Vrednosti koje se čuvaju u registrima predstavljaju stanje kolaKombinaciona logika računa:

Sledeće stanje⌧Funkcija sadašnjeg stanja i ulaza

Izlaze⌧Funkcija sadašnjeg stanja i ulaza (Mealy-jeva “mašina”)⌧Funkcija samo sadašnjeg stanja (Moore-ova “mašina”)

UlaziIzlazi

Sledeće stanje

Sadašnje stanje

izlaznalogika

sledeće stanjelogika

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 20

Model stanja (nastavak)

Stanja: S1, S2, ..., SkUlazi: I1, I2, ..., ImIzlazi: O1, O2, ..., OnFunkcija tranzicije: Fs(Si, Ij)Izlazna funkcija: Fo(Si) or Fo(Si, Ij)

UlaziIzlazi

Sledeće stanje

Sadašnje stanje

izlazna logika

logika sledećeg stanja

Takt

Sledeće stanje

Stanje

0 1 2 3 4 5

Page 11: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 21

VendingMachine

FSM

N

D

Reset

Takt

OtvaranjeSenzornovčića

mehanizam za izbacivanjeproizvoda

Primer: Automat za prodaju

Izbaciti proizvod nakon što je ubačeno 15 dinaraJedan prorez za ubacivanje novca, samo metalni 5 i 10 dinaraNema vraćanja novca

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 22

Primer: Automat za prodaju (nastavak)

Pogodan prikazProučiti tipične ulazne sekvence:⌧3 novčića od 5 din⌧5 din, zatim 10 din⌧10 din, zatim 5 din⌧2 novčića od 10 din

Nacrtati dijagram stanja:⌧Ulazi: N (5 din), D (10 din), reset⌧Izlaz: otvaranje vratanaca

Pretpostavke:⌧Pretpostavimo da su u jednom

ciklusu prihvaćeni N i D⌧Svako stanje ima petlju za

N = D = 0 (nema novčića)

S0

Reset

S2

D

S6[otvoreno]

D

S4[otvoreno]

D

S1

N

S3

N

S7[otvoreno]

N

S5[otvoreno]

N

Page 12: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 23

Primer: Automat za prodaju (nastavak)

Minimizirati broj stanja – koristiti definisano stanje kad god je moguće

tabela simboličkih stanja

sadašnje ulazi sledeći izlazstanje D N otvaranje

0 din 0 0 0 din 00 1 5 din 01 0 10 din 01 1 – –

5 din 0 0 5 din 00 1 10 din 01 0 15 din 01 1 – –

10 din 0 0 10 din 00 1 15 din 01 0 15 din 01 1 – –

15 din – – 15 din 1

0 din

Reset

5 din

N

N

N + D

10 din

D

15din[otvaranje]

D

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 24

sadašnje ulazi sledeće izlazstanje stanje Q1 Q0 D N D1 D0 otvaranje0 0 0 0 0 0 0

0 1 0 1 01 0 1 0 01 1 – – –

0 1 0 0 0 1 00 1 1 0 01 0 1 1 01 1 – – –

1 0 0 0 1 0 00 1 1 1 01 0 1 1 01 1 – – –

1 1 – – 1 1 1

Primer: Automat za prodaju (nastavak)

Jedinstveno kodiranje stanja

Page 13: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 25

D1 = Q1 + D + Q0 N

D0 = Q0’ N + Q0 N’ + Q1 N + Q1 D

OPEN = Q1 Q0

Primer: Automat za prodaju (nastavak)

Mapiranje u logiku0 0 1 1

0 1 1 1

X X X X

1 1 1 1

Q1D1

Q0

ND

0 1 1 0

1 0 1 1

X X X X

0 1 1 1

Q1D0

Q0

ND

0 0 1 0

0 0 1 0

X X X X

0 0 1 0

Q1Open

Q0

ND

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 26

sadašnje ulazi sledeće izlazstanje stanje

Q3 Q2 Q1 Q0 D N D3 D2 D1 D0 otvaranje0 0 0 1 0 0 0 0 0 1 0

0 1 0 0 1 0 01 0 0 1 0 0 01 1 - - - - -

0 0 1 0 0 0 0 0 1 0 00 1 0 1 0 0 01 0 1 0 0 0 01 1 - - - - -

0 1 0 0 0 0 0 1 0 0 00 1 1 0 0 0 01 0 1 0 0 0 01 1 - - - - -

1 0 0 0 - - 1 0 0 0 1

D0 = Q0 D’ N’

D1 = Q0 N + Q1 D’ N’

D2 = Q0 D + Q1 N + Q2 D’ N’

D3 = Q1 D + Q2 D + Q2 N + Q3

OPEN = Q3

Primer: Automat za prodaju (nastavak)

Kodiranje za slučaj da je samo jedan ulaz aktivan

Page 14: VTŠ Novi Sad - kelm.ftn.uns.ac.rs · VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5 In = 0 In = 1 In = 1 In = 0 100 010 110 001 111 Prikaz “mašine” konačnih stanja aStanja:

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 27

Jedna implementacija detektora ivice

"Ad hoc" rešenje - nije minimalno, ali je jeftino i brzo

00[0]

10[0]

01[1]

X’ X

X’

X

X

X11[0]

X’

X’