konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/materijal/predavanja/konacni...

19
Konačni automati eng. Finite State Machine FSM Za modeliranje sekvencijalnih kola (pre svega, upravljačkih 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 automata Određuje novo stanje u Čuva kod tekućeg stanja Generiše izlazne signale zavisnosti od tekućeg stanja i ulaza tekućeg stanja izlazne signale Milijev K i Arhitektura mikrosistema Kombinacione mreže Murov Konačni automat Konacni automat

Upload: others

Post on 15-Aug-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 2: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 3: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 4: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 5: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 6: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 7: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 8: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 9: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 10: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 11: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 12: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 13: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 14: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 15: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 16: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 17: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 18: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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

Page 19: Konačni automati - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konacni automati1.pdf · Višesegmentni kodni šablonVišesegmentni kodni šablon - kontroler memorije

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