Transcript pps

Slide 1

VTŠ Novi Sad

Elektronika 2 - Digitalna elektronika

6. IMPLEMENTACIJA
SEKVENCIJALNE
LOGIKE
dr Zoran Mitrović


Slide 2

Implementacija sekvencijalne logike
 Sekvencijalna kola

Osnovni sekvencijalni elementi
Kombinaciona logika

 Modeli za predstavljanje sekvencijalnih kola
Metoda konačnih stanja (Finite-state machines)
Predstavljanje memorije (stanja)
Promene stanja (tranzicije)

 Osnovna sekvencijalna kola
Pomerački registri
Brojači

 Procedura projektovanja
Dijagrami stanja
Tabela tranzicija
Funkcije sledećeg stanja

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 2


Slide 3

Elementi stanja
 Podeliti kolo na kombinacionu logiku i stanje
 Lokalizovati petlje povratne sprege i obezbediti da je
olakšano da se raskinu
 Implementacija elemenata memorije vodi do različitih
formi sekvencijalne logike
Ulazi

Combinational
Logic

Ulazi stanja

Izlazi

Izlazi stanja
Elementi memorije

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 3


Slide 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
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 4


Slide 5

Prikaz “mašine” konačnih stanja
 Stanja: definisana mogućim vrednostima u
sekvencijalnim memorijskim elementima
 Tranzicija: promena stanja
 Takt: dozvoljava kad stanje može da se promeni
kontrolom memorijskih elemenata
010

001
In = 0

 Sekvencijalna logika

In = 1
100

111

In = 0

In = 1

110

Sekvencijalni prolazak kroz niz stanja
Bazirana na sekvenci vrednosti ulaznih signala
Periodi takta definišu elemente sekvence
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 5


Slide 6

Primer dijagrama “mašine” konačnih stanja
 Kombinaciona brava sa početka kursa

GREŠKA
zatvoreno
nije jednako
& novi

reset

nije jednako
& novi

nije jednako
& novi
S3
S1
S2
OTVORENO
zatvoreno
zatvoreno
zatvoreno
otvoreno
mux=C1 jednako mux=C2 jednako mux=C3 jednako
& novi
& novi
& novi
nije novi

nije novi

nije novi

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 6


Slide 7

Može li bilo koji sekvencijalni sistem
da se predstavi dijagramom stanja?
 Pomerački registar
Ulazna vrednost
predstavljena
na tranzicionim
lukovima
Izlazna vrednost
prikazana
unutar čvora
100
stanja
1

0

OUT1

IN

0

1
0

D Q

110
1

1

1
010

0
001

D Q

OUT3

CLK

1

000

D Q

OUT2

101
0
0

111

0
1

0
011

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 7

1


Slide 8

Brojači su proste “mašine” konačnih stanja
 Brojači
Prolaze kroz dobro definisanu sekvencu stanja kao odgovor na
enable

 Mnogo tipova brojača: binarni, BCD, sa grejovim kodom
3-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, ...
001

000

010

011

100

3-bitni brojač na gore

111

110

101

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 8


Slide 9

Kako pretvaramo dijagram stanja u logiku?
 Brojač
Tri flip-flopa pamte stanje
Logika za izračunavanje sledećeg stanja
Takt 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
OUT1
D Q

OUT2
D Q

CLK

"1"
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 9

OUT3
D Q


Slide 10

Procedura projektovanja “mašine” konačnih stanja
 Počinje se od brojača
Prosto, jer je izlaz samo stanje
Prosto, jer izbor sledećeg stanja ne zavisi od ulaza

 Dijagram stanja -> tabela prelaza iz stanja u stanje
Tabularna forma dijagrama stanja
Nalik na kombinacionu tabelu

 Kodiranje stanja
Odluka o prikazu stanja
Za brojače je to prosto: samo njegova vrednost

 Implementacija
Flip-flop za svaki bit stanja
Kombinaciona logika bazirana na kodiranju
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 10


Slide 11

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

 Nalik na kombinacionu tabelu (specifirati izlaze za sve
ulazne kombinacije)
 Kodiranje stanja: prosto za brojače – samo se koristi
vrednost
tekuće stanje
sledeće state
001

000

010

011

100

3-bitni brojač na gore

111

110

101

0
1
2
3
4
5
6
7

000
001
010
011
100
101
110
111

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 11

001
010
011
100
101
110
111
000

1
2
3
4
5
6
7
0


Slide 12

Implementacija
 D flip-flop za svaki bit stanja
 Kombinaciona logika bazirana na kodiranju
C3
0
0
0
0
1
1
1
1

C2
0
0
1
1
0
0
1
1

C1
0
1
0
1
0
1
0
1

N3

C1

N3
0
0
0
1
1
1
1
0

C3
0

0

1

1

0

1

0

1

C2

N2
0
1
1
0
0
1
1
0

notacija koja pokazuje
koja funkcija predstavlja
ulaz u D-FF

N1
1
0
1
0
1
0
1
0

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

N2

C1

C3
0

1

1

0

1

0

0

1

N1

C2
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 12

C1

C3
1

1

1

1

0

0

0

0

C2


Slide 13

Implementacija (nastavak)
 Programabilni blok za građenje sekvencijalne logike
Makro-ćelija: FF + logika
D-FF
Sposobnost logike u dva nivoa, nalik na PAL (npr., 8 proizvodnih izraza)

DQ
Q

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 13


Slide 14

Još jedan primer
 Pomerački registar
Ulaz određuje sledeće stanje
In
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

C1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

C2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

C3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

N1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

N2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

N3
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

1

100
0

1

0

0

101

0

0
001

N1 := In
N2 := C1
N3 := C2
IN

0

OUT1
D Q

1

1

1
010

1

000

110

D Q

CLK

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 14

111

0
1

0
011

OUT2
D Q

OUT3

1


Slide 15

Primer kompleksnijeg brojača
 Kompleksni brojač

Ponavlja pet stanja u sekvenci
Nije prikaz binarnih brojeva

 Korak 1: Nacrtati dijagram tranzicije stanja
Brojačka sekvenca: 000, 010, 011, 101, 110

 Korak 2: Nacrtati tabelu tranzicije stanja iz dijagrama
tranzicije stanja
000

110

010

101
011

Trenutno stanje
C
B
A
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

Sledeće stanje
C+
B+
A+
0
1
0



0
1
1
1
0
1



1
1
0
0
0
0




primetiti stanja nije-važno koja su ustvari nekorišćeni kodovi stanja
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 15


Slide 16

Primer kompleksnijeg brojača (nastavak)
 Korak 3: K-mape za funkciju sledećeg stanja
C+

A

B+

C
0

0

0

X

X

1

X

1

A

A+

C
1

1

0

X

X

0

X

1

B

B

C+ := A
B+ := B' + A'C'
A+ := BC'

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 16

A

C
0

1

0

X

X

1

X

0

B


Slide 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
C+

A

B+

C
0

0

0

0

1

1

1

1

A

1

1

0

1

1

0

0

1

A

C
0

1

0

0

0

1

0

0

B

B
Sadašnje
C
B
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

A+

C

A
0
1
0
1
0
1
0
1

Sledeće
C+ B+
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0

B

111
A+
0
0
1
1
0
0
0
0

001
000

110

100
010

101
011

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 17


Slide 18

Samo-startujući brojači
 Početna stanja

 Prilikom uključenja brojač može da bude i u nekorišćenom ili u ne-validnom
stanju
 Projektant mora da obezbedi da brojač radi i kad uđe u ne-validno stanje

 Rešenje sa samo-startovanjem

Projektovati brojač tako da ne-validna stanja prelaze u validna
Može da se ograniči rad sa stanjima nije-važno
111

111

001

000

implementacija
na prethodnom slajdu

110

000

100

110

100
010

101

010

011
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 18

101

011

001


Slide 19

Model stanja (State Machine)
 Vrednosti koje se čuvaju u registrima predstavljaju
stanje kola
 Kombinaciona 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”)
Ulazi

izlazna
logika

sledeće stanje
logika

Izlazi
Sledeće stanje

Sadašnje stanje
VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 19


Slide 20

Model stanja (nastavak)
Izlazi

izlazna logika
Ulazi

logika
sledećeg stanja

 Stanja: S1, S2, ..., Sk
 Ulazi: I1, I2, ..., Im
 Izlazi: O1, O2, ..., On

Sledeće stanje

Sadašnje stanje

 Funkcija tranzicije: Fs(Si, Ij)
 Izlazna funkcija: Fo(Si) or Fo(Si, Ij)
Sledeće stanje
Stanje

Takt 0

1

2

3

4

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 20

5


Slide 21

Primer: Automat za prodaju
 Izbaciti proizvod nakon što je ubačeno 15 dinara

 Jedan prorez za ubacivanje novca, samo metalni 5 i 10
dinara
 Nema vraćanja novca
N
Senzor
novčića

D

Reset

Vending
Machine
FSM

za
Otvaranje mehanizam
izbacivanje
proizvoda

Takt

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 21


Slide 22

Primer: Automat za prodaju (nastavak)
 Pogodan prikaz

Reset

Prouč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

S0
N
S1

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

N
S3

Pretpostavke:
Pretpostavimo da su u jednom
ciklusu prihvaćeni N i D
Svako stanje ima petlju za
N = D = 0 (nema novčića)

D
S2

D

N

D

S4
S5
S6
[otvoreno] [otvoreno] [otvoreno]

N
S7
[otvoreno]

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 22


Slide 23

Primer: Automat za prodaju (nastavak)
 Minimizirati broj stanja – koristiti definisano stanje kad god je
moguće
sadašnje
stanje
0 din

Reset

0 din
5 din

N
5 din
N
D

D
10 din

10 din
N+D
15din
[otvaranje]

15 din

ulazi
D
N
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1



sledeći

0 din
5 din
10 din

5 din
10 din
15 din

10 din
15 din
15 din

15 din

tabela simboličkih stanja

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 23

izlaz
otvaranje
0
0
0

0
0
0

0
0
0

1


Slide 24

Primer: Automat za prodaju (nastavak)
 Jedinstveno kodiranje stanja
sadašnje
stanje
Q1 Q0
0 0

0

1

1

0

1

1

ulazi
D
0
0
1
1
0
0
1
1
0
0
1
1


N
0
1
0
1
0
1
0
1
0
1
0
1


sledeće
izlaz
stanje
D1 D0 otvaranje
0 0
0
0 1
0
1 0
0
– –

0 1
0
1 0
0
1 1
0
– –

1 0
0
1 1
0
1 1
0
– –

1 1
1

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 24


Slide 25

Primer: Automat za prodaju (nastavak)
 Mapiranje u logiku

Q1

D1

0 0 1 1
0 1 1 1
D

X X X X
1 1 1 1
Q0

Q1

D0

Q1
Open
0 0 1 0

0 1 1 0
1 0 1 1

N
D

X X X X

0 0 1 0

N

0 1 1 1

D

X X X X

N

0 0 1 0

Q0

Q0

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

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 25


Slide 26

Primer: Automat za prodaju (nastavak)
 Kodiranje za slučaj da je samo jedan ulaz aktivan
sadašnje
stanje
Q3 Q2 Q1 Q0
0 0 0 1

0 0

0 1

1 0

1

0

0

0

0

0

ulazi
D
0
0
1
1
0
0
1
1
0
0
1
1
-

N
0
1
0
1
0
1
0
1
0
1
0
1
-

sledeće
stanje
D3 D2 D1 D0
0 0 0 1
0 0 1 0
0 1 0 0
- - - 0 0 1 0
0 1 0 0
1 0 0 0
- - - 0 1 0 0
1 0 0 0
1 0 0 0
- - - 1 0 0 0

izlaz
otvaranje
0
0
0
0
0
0
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

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 26


Slide 27

Jedna implementacija detektora ivice
 "Ad hoc" rešenje - nije minimalno, ali je jeftino i brzo
X’

X’
10
[0]

X’

00
[0]

X

X

01
[1]

X’

11
[0]

X

X

VTŠ Novi Sad Elektronika 2 - Digitalna elektronika 27