Logičko projektovanje računarskih sistema 2 L06. Automati sa konačnim brojem stanja
Šta smo napravili prošli put? dugme svetlo [n+1] svetlo [n] svetlo [n] trigger Kombinaciona mreža D-registar 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Kako se ponaša sistem koji smo napravili? U D-registrima je zapisano trenutno stanje sistema. Kombinaciona mreža računa naredno stanje sistema kao logičku funkciju trenutne vrednosti ulaza i trenutnog stanja sistema. Sistem menja stanje periodično na svakoj rastućoj (ili opadajućoj) ivici takt signala. Izlaz sistema je jednak trenutnom stanju sistema. U opštem slučaju, izlaz bi mogao biti funkcija trenutnog stanja i/ili ulaza! 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Primer sekvencijalnog sistema … 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Automati sa konačnim brojem stanja 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja Definicija automata Automat (Finite State Machine – FSM) sa konačnim brojem stanja je sistem definisan sledećim vrednostima: Skup stanja sistema Skup ulaza sistema Skup izlaza sistema Početno stanje sistema Funkcija prelaza sistema Funkcija izlaza sistema Automati svu svugde! Primeri: ćelija, biološki procesi, svakodnevne rutine, itd. 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja Tipovi FSM Mealy-ev automat: izlaz je funkcija trenutnog stanja i trenutne vrednosti ulaza. Moore-ov automat: izlaz je funkcija samo trenutnog stanja. 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Ostali tipovi automata Prema broju stanja: Automati sa konačnim brojem stanja Automati sa beskonačnim brojem stanja Prema tipu funkcije prelaza: Deterministički automati Nedeterministički automati 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Kako realizovati automat kao digitalni sistem? Spojiti dve kombinacione mreže u jednu! 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja Primer automata Hajde da napravimo digitalnu bravu koja otvara vrata ukoliko se unese šifra 0110. Registar – broj bita zavisi od broja stanja. Reset asinhron ili sinhron (MUX) Kombinaciona mreža – 4 funkcije od 4 promenljive Minimizacija (logičkim kolima) ili ROM 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja © 123RF 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Minimizacija automata 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja Ekvivalentna stanja Stanja su ekvivalentna ako i samo ako: Oba stanja imaju iste izlaze, Oba stanja imaju ekvivalentne prelaze, odn. za istu kombinaciju ulaza prelaze u stanja iste klase ekvivalencije. 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Primer minimizacije automata S0 S1 S2 S3 S4 S5 S6 S7 W0 S0/Z0 S2/Z1 S0/Z1 S3/Z1 S5/Z1 W1 S1/Z1 S4/Z0 S6/Z1 S7/Z0 W2 S7/Z1 S1/Z0 S6/Z0 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Procedura minimizacije automata Formirati trougaonu matricu prelaza između parova stanja Ako dva stanja imaju iste izlaze, napisati različitosti u prelazima Ako dva stanja nemaju iste izlaze, precrtati polje Iterativno precrtati polja koja imaju parove prelaza koji nisu ekvivalentni, odn. koji su već precrtani Preostala polja su ekvivalentna stanja Formirati minimalni automat 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja Rešenje primera Stanje A0 – kome odgovaraju stanja S0, S3 i S7 Stanje A1 – kome odgovaraju stanja S1 i S6 Stanje A2 – kome odgovaraju stanja S2 i S5 Stanje A3 – kome odgovara stanje S4 A0 A1 A2 A3 W1 A0/Z0 A2/Z1 A0/Z1 W2 A1/Z1 A3/Z0 W3 A1/Z0 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja VHDL opis automata 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja VHDL opis automata Skup stanja type tSTATE is (S0, S1, S2); signal sSTATE : tSTATE; Skup ulaza i skup izlaza Opisan u entitetu; obavezno koristiti tipove std_logic i std_logic_vector Početno stanje Definiše se u resetu sekvencijalnog procesa 08 Mar 2019 L06. Automati sa konačnim brojem stanja
VHDL opis funkcije prelaza – jedan proces process (iCLK, inRST) begin if (inRST = ‘0’) then sSTATE <= <POČETNO_STANJE>; elsif (iCLK’event and iCLK = ‘1’) then <FUNKCIJA_PRELAZA> end if; end process; 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja VHDL opis funkcije prelaza – dva procesa (Kombinaciona logika i funkcija izlaza - primer) process (iA, sSTATE) begin case (sSTATE) is when S0 => sNEXT_STATE <= S1; oY <= ‘0’; when S1 => if (iA = ‘0’) then sNEXT_STATE <= S2; oY <= ‘1’; else sNEXT_STATE <= S0; oY <= ‘0’; end if; when others => sNEXT_STATE <= S0; oY <= ‘0’; end process; 08 Mar 2019 L06. Automati sa konačnim brojem stanja
VHDL opis funkcije prelaza – dva procesa (Registar) process (iCLK, inRST) begin if (inRST = ‘0’) then sSTATE <= <POČETNO_STANJE>; elsif (iCLK’event and iCLK = ‘1’) then sSTATE <= sNEXT_STATE; end if; end process; 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Varijante u funkciji izlaza Kombinaciona funkcija izlaza Sekvencijalna funkcija izlaza – buffer-ovan izlaz! Registar na izlazu kombinacione logike koja računa izlaz Opis funkcije izlaza u posebnom ili već postojećem procesu koji je sekvencijalan Izlaz će kasniti jedan takt u odnosu na stanje koje je u registru. 08 Mar 2019 L06. Automati sa konačnim brojem stanja
Verifikacija automata Stimulus proces treba da počne sa resetom sistema inRST <= ‘0’; wait for 5 * iCLK_period; inRST <= ‘1’; Nakon toga vreme igra ulogu, promena stanja se vrši posle svake periode takta, u zavisnosti od tada postavljenog ulaza! 08 Mar 2019 L06. Automati sa konačnim brojem stanja
L06. Automati sa konačnim brojem stanja 08 Mar 2019 L06. Automati sa konačnim brojem stanja