410 likes | 800 Views
Konačni automati. eng. F inite S tate M achine – 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
E N D
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 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 zavisnosti od tekućeg stanja i ulaza Čuva kod tekućeg stanja Generiše izlazne signale Milijev Konacni automat Kombinacione mreže Murov Konačni automat Arhitektura mikrosistema
Dijagram stanja Stanje ST0 - ime stanja mo - Murovi izlazi vrednost - ´0´ ili ´1´ Skraćeno zapisivanje Navode se samo izlazi koji dobijaju vrednost ´1´ Prelazi logički izraz - uslov prelaza me - Milijevi izlazi vrednost - ´0´ ili ´1´ Arhitektura mikrosistema
Primer - kontroler memorije Milijev izlaz Murovi izlazi Ukazuje na inicijalno (početno stanje) Arhitektura mikrosistema
ASM dijagram • ASM (Algorithmic State Machines) dijagrami • Zamena za dijagrame stanja • Za opis algoritama koji se realizuju u hardveru. • Koristi tri grafička simbola: Blok grananja Blok uslovnog izlaza Blok stanja Arhitektura mikrosistema
ASM blok ASM blok (odgovara jednom stanju) Arhitektura mikrosistema
Konverzija dijagram stanja u ASM dijagram Navode samo signali koji su aktivni u datom stanju y = ‘1’ y = ‘0’ Arhitektura mikrosistema
Konverzija dijagram stanja u ASM dijagram Arhitektura mikrosistema
Konverzija dijagram stanja u ASM dijagram Arhitektura mikrosistema
Primer - detektor ivice • Na svaku rastuću ivicu signala strobe, na izlazu p se generiše kratkotrajni impuls Sporo promenljiv signal (u odnosu na takt) Arhitektura mikrosistema
Primer - detektor ivice (Murov KA) Vrednost strobe je bitna samo u trenucima rastućih ivica takta p=´1´ traje jedan ceo taktni ciklus Arhitektura mikrosistema
Primer - detektor ivice (Milijev KA) p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta Arhitektura mikrosistema
Opis u VHDL-u: Višesegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl IS TYPE state IS (ST0, ST1,ST2); SIGNAL pr_state, nx_state : state; BEGIN -- registar stanja ------------------- PROCESS(clk, rst) BEGIN ... END PROCESS; -- logika sledeceg stanja ------------ PROCESS(pr_state, ulazi) BEGIN ... END PROCESS; -- logika za Murove izlaze PROCESS(pr_state) BEGIN ... END PROCESS; -- logika za Milijeve izlaze PROCESS(pr_state, ulazi) BEGIN ... END PROCESS; END multi_seg_arch; Korisnički tip: definiše stanja automata pr_state - tekuće stanje (registar stanja) nx_state - sledeće stanje Arhitektura mikrosistema
Višesegmentni kodni šablon - kontroler memorije - deklaracija stanja ARCHITECTURE multi_seg_arch of mem_ctrl IS TYPE state IS (IDLE, READ1, READ2, READ3, READ4, WRITE); SIGNAL pr_state, nx_state : state; BEGIN Arhitektura mikrosistema
Višesegmentni kodni šablon - kontroler memorije - registar stanja -- registar stanja ------------------- PROCESS(clk, rst) BEGIN IF(rst = '1') THEN pr_state <= IDLE; ELSIF( clk'EVENT AND clk = '1') THEN pr_state <= nx_state; END IF; END PROCESS; Arhitektura mikrosistema
Višesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja Arhitektura mikrosistema
Višesegmentni kodni šablon - kontroler memorije - Murovi izlazi PROCESS(pr_state) BEGIN we <= '0'; -- podrazumevana vrednost oe <= '0'; -- podrazumevana vrednost CASE pr_state IS WHEN IDLE => WHEN WRITE => we <= '1'; WHEN READ1 => oe <= '1'; WHEN READ2 => oe <= '1'; WHEN READ3 => oe <= '1'; WHEN READ4 => oe <= '1'; END CASE; END PROCESS; Arhitektura mikrosistema
Višesegmentni kodni šablon - kontroler memorije - Milijevi izlazi PROCESS(pr_state, mem, rw) BEGIN we_me <= '0'; -- podrazumevana vrednost CASE pr_state IS WHEN IDLE => IF(mem = '1') AND (rw = '0') THEN we_me <= '1'; END IF; WHEN WRITE => WHEN READ1 => WHEN READ2 => WHEN READ3 => WHEN READ4 => END CASE; END PROCESS; Arhitektura mikrosistema
Višesegmentni kodni šablon - kontroler memorije - Milijevi izlazi we_me <= ’1’ WHEN ((pr_state = IDLE) AND (mem=’1’) AND (rw=’0’)) ELSE ’0’; Može i jednostavnije Arhitektura mikrosistema
Dvosegmentni kodni šablon ARCHITECTURE multi_seg_arch of mem_ctrl IS TYPE state IS (ST0, ST1,ST2); SIGNAL pr_state, nx_state : state; BEGIN -- registar stanja ------------------- PROCESS(clk, rst) BEGIN ... END PROCESS; -- logika sledeceg stanja/izlaza -- PROCESS(pr_state, ulazi) BEGIN ... END PROCESS; END multi_seg_arch; Arhitektura mikrosistema
Dvosegmentni kodni šablon - Kontroler memorije Arhitektura mikrosistema
Asinhrona inicijalizacija -- registar stanja ------------------- PROCESS(clk, rst) BEGIN IF(rst = '1') THEN pr_state <= IDLE; ELSIF( clk'EVENT AND clk = '1') THEN pr_state <= nx_state; END IF; END PROCESS; Arhitektura mikrosistema
Sinhrona inicijalizacija -- registar stanja ------------------- PROCESS(clk) BEGIN IF(clk'EVENT AND clk = '1') THEN IF(syn_rst = '1') pr_state <= IDLE; ELSE pr_state <= nx_state; END IF; END IF; END PROCESS; Modifikuje se svako stanje u dijagramu stanja tako da syn_res = ´1´ vraća automat u inicijalno stanje Obično se ne crta, već se podrazumeva ! Arhitektura mikrosistema
Konačni automat Murovog tipaPrimer • Izlaz automata zavisi jedino od tekućeg stanja(ali ne i od trenutnog ulaza) • Izlazi su pridruženi stanjima (a ne prelazima) Inicijalno stanje Arhitektura mikrosistema
BCD brojač, opisan kao konačni automat Kao konačni automat Lakši način rst BCD count(3 .. 0) clk Arhitektura mikrosistema
Detektor bit oblika • Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci Arhitektura mikrosistema
Koder za Mančester kôd • Kod za kodiranje binarnih sekvenci za prenos preko serijske komunikacione linije. • 0 => ´0´→´1´ • 1 => ´1´→´0´ Kodiranje binarne sekvence: ˝0010011˝ Arhitektura mikrosistema
Koder za Mančester kôd Arhitektura mikrosistema
Arbitar • Sprečava konflikte i koordinira pristup deljivom resursu • Request (r)-zahtev • 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 grant Arhitektura mikrosistema
Arbitar - Murova automat • Stanja: • waitr - resurs je slobodan, a arbitar čeka za zahtev • grant1 - resurs je dodeljen podsistemu 1 • grant0 - resurs je dodeljen podsistemu 0 U slučaju istovremenog upućivanja zahteva, prednost uvek dobija podsistem 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 kad su uputili zatev Arhitektura mikrosistema
Arbitar - “fer” 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. • Stanja: • waitr0 - viši prioritet ima podsistem 0 • waitr1 - viši prioritet ima podsistem 1 • grant0 - resurs je dodeljen podsistemu 1 • grant1 - resurs je dodeljen podsistemu 1. Arhitektura mikrosistema
Problem kodiranja stanja • Dodela binarnih kombinacija simboličkim stanjima konačnog automata • Kodiranje stanja automata sa 4 stanja: • 24 moguća kodiranja. • Funkcionalno identična, ali razika u složenosti kombinacione logike • Koje kodiranje je optimalno ? • Težak problem Arhitektura mikrosistema
Konačni automati - kodiranje stanja • Može se razložiti na dva potproblema: • Izbor broja bitaza kodiranje: • Za konačni automat sa N stanja minimalni broj bita za kodiranja iznosi • Binarno kodiranje - kodiranje minimalnim brojem bita • Onehot kodiranje - kodiranje sa N bita. Svakom stanju odgovara jedan bit u kodnoj reči: • S0 : 0001 • S1 : 0010 • S2 : 0100 • S4 : 1000 Arhitektura mikrosistema
Šeme (heuristike) kodiranja stanja • Binarno kodiranje: • Minimalnan broj bita za kodiranje • Stanjima se proizvoljno dodeljuju bin. kombinacije • Garantuje minimalni broj FF, ali je logika složenija. • Onehot kodiranje: • 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ža • Gary-ov kôd • Minimalni broj bita za kodiranje, ali složenije pravilo za dodelu kodova 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
Konačni automati - kodiranje stanja • Može se razložiti na dva potproblema: • Izbor broja bitaza kodiranje • Pridruživanje stanjima jedinstvenih n-bitnih kombinacija • Automatsko - obavlja alat za sintezu u skaladu sa izabranom heuristikom kodiranja • Direktno - definiše projektant Arhitektura mikrosistema