konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/materijal/predavanja/konacni...
TRANSCRIPT
Konačni automati eng Finite State Machine ndash FSM Za modeliranje sekvencijalnih kola (pre svega upravljačkih j j (p g p j
jedinica) Definiše ulaze izlaze stanja i prelaze U svakom taktnom ciklusu automat je u jednom od konačnog
broja svojih stanja Pod dejstvom taktnog signala a u zavisnosti od tekućeg Pod dejstvom taktnog signala a u zavisnosti od tekućeg
stanja i trenutne vrednosti ulaza automat prelazi u novo stanje i generiše odgovarajuće izlaze
Arhitektura mikrosistema
Blok dijagram konačnog automataOdređuje novo
stanje u Čuva kod
tekućeg stanjaGeneriše
izlazne signalezavisnosti od
tekućeg stanja i ulaza
tekućeg stanja izlazne signale
MilijevK i
Arhitektura mikrosistema
Kombinacionemreže
MurovKonačni automat
Konacni automat
Dijagram stanjaStanje
ST0 - ime stanjaM i i l i
Skraćeno zapisivanje
mo - Murovi izlazivrednost - acute0acute ili acute1acute
Navode se samo izlazi koji dobijaju vrednost acute1acutekoji dobijaju vrednost 1
Prelazilogički izraz - uslov prelaza
Arhitektura mikrosistema
logički izraz uslov prelazame - Milijevi izlazivrednost - acute0acute ili acute1acute
Primer - kontroler memorije
Milijev izlaz
Murovi izlazi
Ukazuje na inicijalno ( č
Arhitektura mikrosistema
(početno stanje)
ASM dijagram ASM (Algorithmic State Machines) dijagrami
Zamena za dijagrame stanja Zamena za dijagrame stanja
Za opis algoritama koji se realizuju u hardveru
Koristi tri grafička simbola Koristi tri grafička simbola
Blok stanja Blok grananja Blok uslovnog izlaza
Arhitektura mikrosistema
ASM blok
Ulaz u stanje
Murovii l i
Blok stanjaIme stanja
izlazi
Logički i
Blok grananja
Blok uslovnogT F
ASM blok(odgovara jednom stanju)
izraz
Milijevi izlazi
Blok uslovnogizlaza
Izlaz ka drugom Izlaz ka drugom
Arhitektura mikrosistema
Izlaz ka drugom ASM bloku
Izlaz ka drugom ASM bloku
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
ST0
Navode samo signali koji su aktivni u datom stanju
y y y = lsquo1rsquo
- -
ST1
y = lsquo0rsquo
ST1
y = 0
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
rsquo 0
ST0
arsquo a0
1
ay0-
y0
ST1y1
y1
ST1
Arhitektura mikrosistema
y1
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Primer - detektor ivice Na svaku rastuću ivicu signala strobe na
i la se generiše kratkotrajni imp lsizlazu p se generiše kratkotrajni impuls
Sporo
Detektorivicestrobe p
Sporo promenljiv
signal (u odnosu na takt))
Arhitektura mikrosistema
Primer - detektor ivice (Murov KA)strobersquo
Vrednost strobe je bitna samo u trenucima rastućih
zero
p=acute1acute traje jedan ceo
trenucima rastućih ivica takta
edgep
strobe
strobersquo
p= 1 traje jedan ceo taktni ciklus
p
strobestrobersquo
clk
t1 t2onestrobe
zero zeroedge one
strobe
Stanje(Murov FSM)
Arhitektura mikrosistema
g(Murov FSM)
p(Murov FSM)
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Dijagram stanjaStanje
ST0 - ime stanjaM i i l i
Skraćeno zapisivanje
mo - Murovi izlazivrednost - acute0acute ili acute1acute
Navode se samo izlazi koji dobijaju vrednost acute1acutekoji dobijaju vrednost 1
Prelazilogički izraz - uslov prelaza
Arhitektura mikrosistema
logički izraz uslov prelazame - Milijevi izlazivrednost - acute0acute ili acute1acute
Primer - kontroler memorije
Milijev izlaz
Murovi izlazi
Ukazuje na inicijalno ( č
Arhitektura mikrosistema
(početno stanje)
ASM dijagram ASM (Algorithmic State Machines) dijagrami
Zamena za dijagrame stanja Zamena za dijagrame stanja
Za opis algoritama koji se realizuju u hardveru
Koristi tri grafička simbola Koristi tri grafička simbola
Blok stanja Blok grananja Blok uslovnog izlaza
Arhitektura mikrosistema
ASM blok
Ulaz u stanje
Murovii l i
Blok stanjaIme stanja
izlazi
Logički i
Blok grananja
Blok uslovnogT F
ASM blok(odgovara jednom stanju)
izraz
Milijevi izlazi
Blok uslovnogizlaza
Izlaz ka drugom Izlaz ka drugom
Arhitektura mikrosistema
Izlaz ka drugom ASM bloku
Izlaz ka drugom ASM bloku
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
ST0
Navode samo signali koji su aktivni u datom stanju
y y y = lsquo1rsquo
- -
ST1
y = lsquo0rsquo
ST1
y = 0
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
rsquo 0
ST0
arsquo a0
1
ay0-
y0
ST1y1
y1
ST1
Arhitektura mikrosistema
y1
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Primer - detektor ivice Na svaku rastuću ivicu signala strobe na
i la se generiše kratkotrajni imp lsizlazu p se generiše kratkotrajni impuls
Sporo
Detektorivicestrobe p
Sporo promenljiv
signal (u odnosu na takt))
Arhitektura mikrosistema
Primer - detektor ivice (Murov KA)strobersquo
Vrednost strobe je bitna samo u trenucima rastućih
zero
p=acute1acute traje jedan ceo
trenucima rastućih ivica takta
edgep
strobe
strobersquo
p= 1 traje jedan ceo taktni ciklus
p
strobestrobersquo
clk
t1 t2onestrobe
zero zeroedge one
strobe
Stanje(Murov FSM)
Arhitektura mikrosistema
g(Murov FSM)
p(Murov FSM)
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
ASM dijagram ASM (Algorithmic State Machines) dijagrami
Zamena za dijagrame stanja Zamena za dijagrame stanja
Za opis algoritama koji se realizuju u hardveru
Koristi tri grafička simbola Koristi tri grafička simbola
Blok stanja Blok grananja Blok uslovnog izlaza
Arhitektura mikrosistema
ASM blok
Ulaz u stanje
Murovii l i
Blok stanjaIme stanja
izlazi
Logički i
Blok grananja
Blok uslovnogT F
ASM blok(odgovara jednom stanju)
izraz
Milijevi izlazi
Blok uslovnogizlaza
Izlaz ka drugom Izlaz ka drugom
Arhitektura mikrosistema
Izlaz ka drugom ASM bloku
Izlaz ka drugom ASM bloku
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
ST0
Navode samo signali koji su aktivni u datom stanju
y y y = lsquo1rsquo
- -
ST1
y = lsquo0rsquo
ST1
y = 0
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
rsquo 0
ST0
arsquo a0
1
ay0-
y0
ST1y1
y1
ST1
Arhitektura mikrosistema
y1
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Primer - detektor ivice Na svaku rastuću ivicu signala strobe na
i la se generiše kratkotrajni imp lsizlazu p se generiše kratkotrajni impuls
Sporo
Detektorivicestrobe p
Sporo promenljiv
signal (u odnosu na takt))
Arhitektura mikrosistema
Primer - detektor ivice (Murov KA)strobersquo
Vrednost strobe je bitna samo u trenucima rastućih
zero
p=acute1acute traje jedan ceo
trenucima rastućih ivica takta
edgep
strobe
strobersquo
p= 1 traje jedan ceo taktni ciklus
p
strobestrobersquo
clk
t1 t2onestrobe
zero zeroedge one
strobe
Stanje(Murov FSM)
Arhitektura mikrosistema
g(Murov FSM)
p(Murov FSM)
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
ST0
Navode samo signali koji su aktivni u datom stanju
y y y = lsquo1rsquo
- -
ST1
y = lsquo0rsquo
ST1
y = 0
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
ST0
rsquo 0
ST0
arsquo a0
1
ay0-
y0
ST1y1
y1
ST1
Arhitektura mikrosistema
y1
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Primer - detektor ivice Na svaku rastuću ivicu signala strobe na
i la se generiše kratkotrajni imp lsizlazu p se generiše kratkotrajni impuls
Sporo
Detektorivicestrobe p
Sporo promenljiv
signal (u odnosu na takt))
Arhitektura mikrosistema
Primer - detektor ivice (Murov KA)strobersquo
Vrednost strobe je bitna samo u trenucima rastućih
zero
p=acute1acute traje jedan ceo
trenucima rastućih ivica takta
edgep
strobe
strobersquo
p= 1 traje jedan ceo taktni ciklus
p
strobestrobersquo
clk
t1 t2onestrobe
zero zeroedge one
strobe
Stanje(Murov FSM)
Arhitektura mikrosistema
g(Murov FSM)
p(Murov FSM)
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Arhitektura mikrosistema
Konverzija dijagram stanja u ASMKonverzija dijagram stanja u ASM dijagram
Primer - detektor ivice Na svaku rastuću ivicu signala strobe na
i la se generiše kratkotrajni imp lsizlazu p se generiše kratkotrajni impuls
Sporo
Detektorivicestrobe p
Sporo promenljiv
signal (u odnosu na takt))
Arhitektura mikrosistema
Primer - detektor ivice (Murov KA)strobersquo
Vrednost strobe je bitna samo u trenucima rastućih
zero
p=acute1acute traje jedan ceo
trenucima rastućih ivica takta
edgep
strobe
strobersquo
p= 1 traje jedan ceo taktni ciklus
p
strobestrobersquo
clk
t1 t2onestrobe
zero zeroedge one
strobe
Stanje(Murov FSM)
Arhitektura mikrosistema
g(Murov FSM)
p(Murov FSM)
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Primer - detektor ivice Na svaku rastuću ivicu signala strobe na
i la se generiše kratkotrajni imp lsizlazu p se generiše kratkotrajni impuls
Sporo
Detektorivicestrobe p
Sporo promenljiv
signal (u odnosu na takt))
Arhitektura mikrosistema
Primer - detektor ivice (Murov KA)strobersquo
Vrednost strobe je bitna samo u trenucima rastućih
zero
p=acute1acute traje jedan ceo
trenucima rastućih ivica takta
edgep
strobe
strobersquo
p= 1 traje jedan ceo taktni ciklus
p
strobestrobersquo
clk
t1 t2onestrobe
zero zeroedge one
strobe
Stanje(Murov FSM)
Arhitektura mikrosistema
g(Murov FSM)
p(Murov FSM)
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Primer - detektor ivice (Milijev KA)
p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta
t t
clk
t1 t2
zero zeroone
strobe
Stanje(Milijev FSM)
Arhitektura mikrosistemap
(Milijev FSM)
Opis u VHDL-u Višesegmentni kodniOpis u VHDL-u Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN
Korisnički tip definiše stanja automata
-- registar stanja -------------------PROCESS(clk rst)BEGIN
END PROCESS
pr_state - tekuće stanje (registar stanja)nx_state - sledeće stanje
END PROCESS-- logika sledeceg stanja ------------PROCESS(pr_state ulazi)BEGIN
END PROCESS-- logika za Murove izlazePROCESS(pr_state)BEGIN
END PROCESS-- logika za Milijeve izlaze
PROCESS(pr_state ulazi)BEGIN
Arhitektura mikrosistema
BEGIN
END PROCESSEND multi_seg_arch
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - deklaracija stanjaARCHITECTURE multi_seg_arch of mem_ctrl ISTYPE state IS (IDLE READ1 READ2 READ3 READ4 WRITE)SIGNAL pr state nx state stateSIGNAL pr_state nx_state state
BEGIN
Writewe
memrwrsquo we_me
Idle
- memrsquo
-
Read1 Read2 Read4Read3burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
Read1oe
Read2oe
Read4oe
Read3oe
burst
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - registar stanja-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THENpr_state lt= IDLE
ELSIF( clkEVENT AND clk = 1) THENELSIF( clk EVENT AND clk 1 ) THENpr_state lt= nx_state
END IFEND PROCESS
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja
PROCESS(pr_state mem rw burst) BEGIN CASE pr_state IS WHEN IDLE =gt
IF(mem = 1) THENMicrosoft Word
Document IF(mem 1 ) THEN IF(rw = 1) THEN nx_state lt= READ1 ELSE nx_state lt= WRITE END IF ELSE nx_state lt= IDLE END IF WHEN WRITE =gt nx_state lt= IDLE _ WHEN READ1 =gt IF(burst = 1) THEN nx_state lt= READ2 ELSE nx_state lt= IDLE END IF WHEN READ2 =gt nx_state lt= READ3 WHEN READ3 =gt nx_state lt= READ4
WHEN READ4 gt
Arhitektura mikrosistema
WHEN READ4 =gt nx_state lt= IDLE END CASE END PROCESS
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Murovi izlaziPROCESS(pr_state)BEGIN
we lt= 0 -- podrazumevana vrednostoe lt= 0 -- podrazumevana vrednostCASE pr_state ISWHEN IDLE =gtWHEN WRITE =gt WriteWHEN WRITE =gt
we lt= 1WHEN READ1 =gt
oe lt= 1
Writewe
memrwrsquo we_me
WHEN READ2 =gtoe lt= 1
WHEN READ3 =gtoe lt= 1
Idle
memrw
- memrsquo
-
oe lt= 1 WHEN READ4 =gtoe lt= 1
END CASE Read1oe
Read2oe
Read4oe
Read3oe
burst - -
memrwrst
burstrsquo
Arhitektura mikrosistema
END PROCESSoe oe oeoe
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlaziPROCESS(pr_state mem rw)BEGIN
we me lt= 0 -- podrazumevana vrednostwe_me 0 podrazumevana vrednostCASE pr_state IS
WHEN IDLE =gtIF(mem = 1) AND (rw = 0) THEN( ) ( )
we_me lt= 1END IF
WHEN WRITE =gt Writewe
WHEN READ1 =gt WHEN READ2 =gt WHEN READ3 =gt
memrwrsquo we_me
- memrsquo
WHEN READ4 =gt END CASEEND PROCESS
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Višesegmentni kodni šablon - kontrolerVišesegmentni kodni šablon - kontroler memorije - Milijevi izlazi
Može i jednostavnijeMože i jednostavnije
we_me lt= rsquo1rsquo WHEN ((pr_state = IDLE) AND (mem=rsquo1rsquo) AND (rw=rsquo0rsquo)) ELSE rsquo0rsquo
Writewe
memrwrsquo we_me
- memrsquo
Idle
memrw
-
rst
Arhitektura mikrosistemaRead1oe
Read2oe
Read4oe
Read3oe
burst - -burstrsquo
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Dvosegmentni kodni šablonARCHITECTURE multi_seg_arch of
mem_ctrl ISTYPE state IS (ST0 ST1ST2)SIGNAL pr_state nx_state state
BEGIN-- registar stanja -------------------PROCESS( lk t)PROCESS(clk rst)BEGIN
END PROCESSEND PROCESS-- logika sledeceg stanjaizlaza --PROCESS(pr_state ulazi)BEGIN
END PROCESSEND multi_seg_arch
Arhitektura mikrosistema
Dvosegmentni kodni šablon -Dvosegmentni kodni šablon Kontroler memorije
Microsoft Word Document
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Asinhrona inicijalizacija
-- registar stanja -------------------PROCESS(clk rst)BEGINBEGINIF(rst = 1) THEN
pr_state lt= IDLEELSIF( clkEVENT AND clk = 1) THENELSIF( clkEVENT AND clk = 1) THEN
pr_state lt= nx_stateEND IF
END PROCESSEND PROCESS
Arhitektura mikrosistema
Sinhrona inicijalizacija-- registar stanja -------------------PROCESS(clk)BEGIN
Modifikuje se svako stanje u dijagramu stanja
BEGINIF(clkEVENT AND clk = 1) THEN
IF(syn_rst = 1)t t IDLE
tako da syn_res = acute1acutevraća automat u inicijalno stanje
pr_state lt= IDLEELSEpr_state lt= nx_state
END IFEND IF
END PROCESS
Arhitektura mikrosistemaObično se ne crta već se podrazumeva
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Konačni automat Murovog tipaKonačni automat Murovog tipaPrimer
1 ---------------------------------------------- 2 ENTITY fsm_1 IS 3 PORT (abcdclkrst IN BIT
Izlaz automata zavisi jedino od tekućeg stanja (ali ne i od trenutnog ulaza)
4 x OUT BIT)5 END fsm_1 6 ---------------------------------------------- 7 ARCHITECTURE fsm_1 OF fsm_1 IS 8 TYPE state IS (stateA stateB) 9 SIGNAL pr_state nx_state state 10 BEGIN 11 ---- sekvencijalni deo -------------------- 12 PROCESS (clkrst) 13 BEGIN
Izlazi su pridruženi stanjima (a ne prelazima)
14 IF(rst=1)THEN 15 pr_state lt=stateA 16 ELSIF(clkEVENT AND clk=1) THEN 17 pr_state lt= nx_state 18 END IF 19 END PROCESS 20 ---- kombinacioni deo -------------------- 21 PROCESS(abdpr_state) 22 BEGIN 23 CASE pr state IS
p _
24 WHEN stateA =gt 25 xlt=a 26 IF(d=1)THEN 27 nx_state lt= stateB 28 ELSE 29 nx_state lt= stateA 30 END IF 31 WHEN stateB =gt 32 xlt=b 33 IF(d=1)THEN
FSM
a
b
d
x
clk rst
stateA(x=a)
stateB(x=b)
d=1
d=1
d=0d=0
rst
33 IF(d 1 )THEN34 nx_state lt= stateA 35 ELSE 36 nx_state lt= stateB 37 END IF 38 END CASE 39 END PROCESS 40 END fsm_1 41 ---------------------------------------------
Inicijalno stanje
Arhitektura mikrosistema
BCD brojač opisan kao konačniBCD brojač opisan kao konačni automat
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 ---------------------------------------------- 5 ENTITY BCD IS 6 PORT (clkrst IN STD_LOGIC 7 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 8 END BCD 9 ---------------------------------------------- 10 ARCHITECTURE FSM OF BCD IS 11 TYPE state IS (nula jedan dva tri cetiri 12 pet sest sedam osam devet) 13 SIGNAL pr_state nx_state state 14 BEGIN 15 ---- sekvencijalni deo -------------------- 16 PROCESS (clkrst) 17 BEGIN 18 IF(rst=1)THEN 19 pr_state lt=nula 20 ELSIF(clkEVENT AND clk=1) THEN 21 pr_state lt= nx_state 22 END IF 23 END PROCESS 24 ---- kombinacioni deo --------------------
BCDcount(3 0)
rst
1 --------------------------------------------- 2 LIBRARY ieee 3 USE ieeestd_logic_1164all 4 USE ieeestd_logic_unsignedall 5 ---------------------------------------------- 6 ENTITY BCD IS 7 PORT (clkrst IN STD_LOGIC 8 count OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) 9 END BCD 10
Kao konačni automat
Lakši način
25 PROCESS(pr_state) 26 BEGIN 27 CASE pr_state IS 28 WHEN nula =gt 29 count lt= 0000 30 nx_state lt= jedan 31 WHEN jedan =gt 32 count lt= 0001 33 nx_state lt= dva 34 WHEN dva =gt 35 count lt= 0010 36 nx_state lt= tri 37 WHEN tri =gt 38 count lt= 0011 39 nx_state lt= cetiri 40 WHEN cetiri =gt 41 count lt= 0100 42 nx_state lt= pet 43 WHEN pet =gt 44 count lt= 0101 45 t t t
nula(0000)
jedan(0001)
dva(0010)
tri(0011)
cetiri(0100)
pet(0101)
sest(0110)
sedam(0111)
osam(1000)
devet(1001)
rst
BCD
clk
10----------------------------------------------11 ARCHITECTURE counter OF BCD IS 12 SIGNAL reg STD_LOGIC_VECTOR(3 downto 0) 13 BEGIN 14 PROCESS(clkrst) 15 BEGIN 16 IF(rst=1) THEN 17 reg lt= (OTHERS =gt 0) 18 ELSIF(clkEVENT AND clk=1) THEN 19 IF(reg = 1001) THEN 20 reg lt= 0000 21 ELSE
Arhitektura mikrosistema
45 nx_state lt= sest 46 WHEN sest =gt 47 count lt= 0110 48 nx_state lt= sedam 49 WHEN sedam =gt 50 count lt= 0111 51 nx_state lt= osam 52 WHEN osam =gt 53 count lt= 1000 54 nx_state lt= devet 55 WHEN devet =gt 56 count lt= 1001 57 nx_state lt= nula 58 END CASE 59 END PROCESS 60 END FSM
21 ELSE 22 reg lt= reg + 1 23 END IF 24 END IF 25 END PROCESS 26 count lt= reg 27 END counter 28 --------------------------------------------
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Detektor bit oblika Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci
Microsoft Word Document
Arhitektura mikrosistema
Koder za Mančester kocircd Kod za kodiranje binarnih sekvenci za prenos preko serijske
komunikacione linije0 acute0acute acute1acute 0 =gt acute0acuterarracute1acute
1 =gt acute1acuterarracute0acute
Kodiranje binarne sekvence ˝0010011˝
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Koder za Mančester kocircd
Microsoft Word Document
Arhitektura mikrosistema
Arbitar Sprečava konflikte i koordinira pristup deljivom resursu
Request (r)- zahtev Grant (g) - dozvola Grant (g) dozvola
Podsistem koji želi da pristupi resursu aktivira request i čeka na grant Kad završi s korišćenjem resursa podsistem deaktivira request a onda i
arbit deaktivira grantarbit deaktivira grant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Arbitar - Murova automat Stanja
waitr - resurs je slobodan a arbitar čeka za zahtev waitr resurs je slobodan a arbitar čeka za zahtev grant1 - resurs je dodeljen podsistemu 1 grant0 - resurs je dodeljen podsistemu 0g j j p
U slučaju istovremenog upućivanja zahteva prednost uvek dobija podsistem 1podsistem 1
Arhitektura mikrosistema
Arbitar - Milijev automat Brži odziv arbitra ali Podsistem 1 i dalje ima viši prioritet
Š Šta ako podsistem 1 neprekidno zahteva resurs Podsistem 0 nikad neće dobiti priliku da koristi resurs
Podsistemi dobijaju dozvolu u istom taktnom ciklusu kadu istom taktnom ciklusu kad
su uputili zatev
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Arbitar - ldquoferrdquo politika arbitraže Arbitar vodi računa o tome koji podsistem je poslednji
koristio resurs i u slučajevima istovremenog upućivanja zahteva prednost daje onom drugom podsistemu
r1middotr0 r1middotr0
Stanja waitr0 - viši prioritet ima podsistem 0 waitr1 - viši prioritet ima podsistem 1
waitr1r1middotr0
waitr0
r0
g1p p
grant0 - resurs je dodeljen podsistemu 1 grant1 - resurs je dodeljen podsistemu 1
r1 g1
g0 r1middotr
r0 g0
Microsoft Word Document
grant0g0
grant1g1
r1 r0
01
Arhitektura mikrosistema
r0r1
Problem kodiranja stanja Dodela binarnih kombinacija simboličkim stanjima konačnog
automata
Kodiranje stanja automata sa 4 stanja
24 moguća kodiranjag j
Funkcionalno identična ali razika u složenosti kombinacione logike
Koje kodiranje je optimalno Težak problem
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S2 S3
1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01
Arhitektura mikrosistema
5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema Izbor broja bita za kodiranje Izbor broja bita za kodiranje
Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi Nn 2logkodiranja iznosi
Binarno kodiranje - kodiranje minimalnim brojem bita Onehot kodiranje - kodiranje sa N bita Svakom stanju
Nn 2og
j j jodgovara jedan bit u kodnoj reči S0 0001 S1 0010 S1 0010 S2 0100 S4 1000
Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja Binarno kodiranje
Minimalnan broj bita za kodiranje St ji i lj d d lj j bi k bi ij
Nn 2log
Stanjima se proizvoljno dodeljuju bin kombinacije Garantuje minimalni broj FF ali je logika složenija
Onehot kodiranjej Broj bita za kodiranje jednak je broju stanja Kodovi su oblika 0001
0010 0100 (pozicija 1-ce ukazuje na stanje) Veliki broj FF ali kombinaciona logika je jednostavnija i bržaj g j j j
Gary-ov kocircd Minimalni broj bita za kodiranje ali složenije pravilo za dodelu
kodova stanjimakodova stanjima Susednim stanjima (tj povezanim stanjima) dodeljuju se binarne
kombinacije koje se razlikuju na najmanjem broju bita Manja složenost u odnosu na binarno koridiranje
Arhitektura mikrosistema
Manja složenost u odnosu na binarno koridiranje
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema
Konačni automati - kodiranje stanja Može se razložiti na dva potproblema
I b b j bi k di j1 Izbor broja bita za kodiranje
2 Pridruživanje stanjima jedinstvenih n-bitnih kombinacija Automatsko - obavlja alat za sintezu u skaladu sa
izabranom heuristikom kodiranja
Direktno - definiše projektant
Arhitektura mikrosistema