310 likes | 518 Views
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
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 -jednom taktnom ciklusu) 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
Konverzija dijagram stanja u ASM dijagram Arhitektura mikrosistema
Primer - detektor ivice • Na svaku rastuću ivicu signala strobe, na izlazu p se generiše kratkotrajan 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 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
Automat za prodaju karata Ubacuju se kovanice od 5 din. (signal D5) i 10 din. (signal D10) Cena karte 15 din. K - signal za izdavanje karte (kad ubačeni iznos postane jednak ili veći od 15 din.) V - signal za vraćanje kusura od 5 din., za slučaj je ubačeno dva puta po 10 din. Arhitektura mikrosistema