1 / 37

Konačni automati

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

dannon
Download Presentation

Konačni automati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. Primer - kontroler memorije Milijev izlaz Murovi izlazi Ukazuje na inicijalno (početno stanje) Arhitektura mikrosistema

  5. 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

  6. ASM blok ASM blok (odgovara jednom stanju) Arhitektura mikrosistema

  7. Konverzija dijagram stanja u ASM dijagram Navode samo signali koji su aktivni u datom stanju y = ‘1’ y = ‘0’ Arhitektura mikrosistema

  8. Konverzija dijagram stanja u ASM dijagram Arhitektura mikrosistema

  9. Konverzija dijagram stanja u ASM dijagram Arhitektura mikrosistema

  10. Konverzija dijagram stanja u ASM dijagram

  11. 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

  12. 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

  13. Primer - detektor ivice (Milijev KA) p trenutno reaguje na promenu signala strobe i traje sam do naredne rastuće ivice takta Arhitektura mikrosistema

  14. 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

  15. 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

  16. 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

  17. Višesegmentni kodni šablon - kontroler memorije - logika sledećeg stanja Arhitektura mikrosistema

  18. 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

  19. 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

  20. 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

  21. 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

  22. Dvosegmentni kodni šablon - Kontroler memorije Arhitektura mikrosistema

  23. 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

  24. 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

  25. 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

  26. BCD brojač, opisan kao konačni automat Kao konačni automat Lakši način rst BCD count(3 .. 0) clk Arhitektura mikrosistema

  27. Detektor bit oblika • Kolo koje detektuje tri uzastopne 1-ce u ulaznoj sekvenci Arhitektura mikrosistema

  28. 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

  29. Koder za Mančester kôd Arhitektura mikrosistema

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. Š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

  37. 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

More Related