vtŠ novi sad - kelm.ftn.uns.ac.rs · vtŠ novi sad elektronika 2 - digitalna elektronika 5 in = 0...
TRANSCRIPT
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
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
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
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, ...
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
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
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
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+
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
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
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
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
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
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’