91
Univerzitet u Nišu Elektronski fakultet Niš Mikroprocesorski sistemi - Opis konačnih automata pomoću VHDL-a- Student : Petrović Vladimir Broj indeksa: 10605

Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Univerzitet u Nišu Elektronski fakultet Niš

Mikroprocesorski sistemi - Opis konačnih automata pomoću VHDL-a-

Student: Petrović Vladimir Broj indeksa: 10605

Page 2: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Sadržaj

1. Uvod……………………………………………………………………………………..3

2. Konačni automati FSM…………………………………………………………………..3

3. Tabela stanja i dijagram stanja…………………………………………………………..6

4. FSM dizajn i elementi projektovanja……………………………………………………8

4.1. Stil HDL kodiranja……………………………………..……………………...9

4.2. Resetovanje i bezbedno ponašanje………………………..…….…………….24

4.3. Kodiranje stanja automata……………………………………..….…………..26

4.4. Automat sa Moore-ovim i Mealy-evim tipom izlaza……………...………….41

4.5. Logika za sekvenciranje narednog stanja i izlazna logika………….…..…….47

4.6. Interaktivni automati……………………………………………………….…52

5. Laboratorijaska vežba…………………………………………………………………..77

5.1. Postupak rada………………………………………………………………....78

6. Literatura……………………………………………………………………………..…91

2

Page 3: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

1. Uvod Projektanti digitalnih kola se neprestano suočavaju sa potrebama da projektuju kola koja će

obavaljati specifične sekvence operacija. Tako na primer, kontroleri se koriste da upravljaju radom drugih kola. Konačni automati (Finite State Machine – FSM) predstavljaju veoma efikasno sredstvo za modeliranje kola tipa sekvencer. Kod modeliranja FSM-a opisanih na jednom od HDL-ova i korišćenja odgovarajućih sredstava za sintezu, projektanti se mogu usmeriti na modeliranje željenih sekvenci operacija bez da se razmatraju problemi implementacije kola, što se kasnije prepušta kao zadatak koji obavljaju sredstva za sintezu. FSM-ovi su važni deo hardverskog dizajna, a shodno tome modeliranju hardvera na HDL nivou.

Projektant treba da razmotri različite aspekte FSM-a pre nego što pokuša da kreira model. Dobro kreirani model je veoma važan za korektnu funkcionalnost kola koje treba da ispuni zahteve na optimalan način. Loše kreiran model može da ne ispuni bilo koji od specificiranih kriterijuma. Iz tog razloga, od posebne važnosti je da se dobro razume rad FSM-a i da se bude familijaran sa različitim stilovima HDL modeliranja.

2. Konačni automati (FSM) FSM je bilo koje kolo specifično projektovano da sekvencira kroz specifični niz stanja na

unapred odredjen sekvenciran način, Koje se po svojoj strukturi opisuje kao ono dato na slici 1.a. Stanje se predstavlja binarnom vrednošću koja se pamti u regstru tekućeg stanja (Current State Register). FSM strukturu čine sledeća tri dela:

a.

b.

3

Page 4: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

c.

Slika 1. a) Blok šema konačnog automata; b) FSM-ov referentni implementacioni model; c)Dekomponovanje kontrolne jedinice i staze podataka

1. Registar tekućeg stanja. Registar tekućeg stanja – n-to bitni registar, korisiti se za čuvanje tekućeg stanja

FSM-a. Njegova vrednost odgovara tekućem stanju pojedine sekvence operacija, koje ovaj automat obavlja. U toku rada, on se taktuje taktnim signalom.

2. Logika narednog stanja. Logika narednog stanja (Next State Logic) – kombincioni blok koji se koristi za

generisanje narednog stanja u sekvenci. Izlaz naredno stanje zavisi od primarnih ulaza u mašinu i ulaza tekuće stanje. 3. Izlazna logika.

Izlazna logika (Output Logic) – kombinaciona logika koja se koristi za generisanje željenih izlaznih signala. Izlazi zavise od registra tekućeg stanja i verovatno od primarnih ulaza mašine.

4

Page 5: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

FSM-ovi su standardni modeli za izračunavanje koji se koriste od strane sistemskih projektanata već duži period. Uobičajno se FSM može predstaviti na nekoliko različitih načina, kakvi su:

Grafički zasnovane prezentacije (dijagrami stanja i dijagrami toka)

Tekstulano

Ograničićemo se na korišćenje dijagrama toka. Princip modeliranja se bazira na karakterizaciji sistema u funkciji globalnih stanja u kojima se sistem može naći, i u funkciji uslova koji mogu da uzrokuju promene izmedju stanja (t.j. tranzicija izmedju stanja).

Bazični FSM čine konačni skup stanja S (pri čemu se inicijalna vrednost specificira kao S0), skupa ulaznih signala I, skupa izlaznih signala O, izlazna funkcija f, i funkcija narednog stanja h. Izlazni signali i signali narednog stanja (f i h, respektivno) preslikavaju unakrsni proizvod S i I u S i O, respektivno (f: S × I → S, h: S × I → O). Dva osnovna modela koja se mogu razmatrati kod modeliranja izlaza su: a) Moore-ov tip mašine nazvan state-based FSM, kod koga su izlazi pridruženi aktiviranom stanju (i gde izlazna funkcija f samo vrši preslikavanje stanja S u izlaze O; i b) Mealy-ev tip mašine nazvan transition-based FSM, kod koga se izlazi pridružuju tranzicijama izmedju stanja. Važno je napomenuti da oba modela imaju iste mogućnosti za modeliranje.

Sa tačke gledišta implementacije uobičajno je da se FSM dekomponuje na skup funkcija koje izračunavaju naredno stanje i izlaze, i skup promenljivih stanja - vidi kako je to predstavljeno na slici 1.b.

Sa tačke gledišta izvršne semantike moguće je ralizovati sledeća dva referentna pristupa kod FSM-ova:

1) sinhroni FSM-ovi

2) asinhroni FSM-ovi

Kod sinhronih FSM-ova izračunavanje i komunikacija se izvršavaju trenutno u dikretnim trenucima u ritmu upravljačkih takt signala. U tom smislu sa tačke gledišta aktivnih promena stanja svaka tranzicija se eksplicitno AND-uje sa rastućom ili opadajućom ivicom taktnog signala.

Kod asinhronih FSM-ova ponašanje procesa je slično kao i kod sinhronih FSM-ova, ali tranzicije nisu zavisne od promene taktnog signala. Asinhroni sistem je sistem kod koga dva dogadjaja ne mogu da imaju isti vremenski marker. U tom smislu dva asinhrona FSM-ova neće nikad istovremeno obaviti tranziciju.

FSM sa stazom podataka predstavlja proširenje stadndardnog FSM-a i pruža podršku radu memoriji podataka i procesnoj jedinici. Ovaj tip FSM-a se naziva FSMD.

FSMD dodaje osnovnom FSM-u skup promenljivih i redefiniše funkcije narednog stanja i funkciju izlaza. To znači da FSMD čini konačni skup stanja S (sa unapred specificiranim stanjem S0), skup ulaznih signala I, skup izlaznih signala O, skup promenljivih V, izlazna finkcija f, i funkcija narednog stanja h. Funkcija narednog stanja h preslikava unakrsni proizvod od S, I i V u S (f: S × I × V → S). Izlazna funkcija f preslikava tekuća stanja na izlaze i promenljive (h: S → O + V). Kao što je definisano, izlazna finkcija f samo podržava Moore-ov tip izlaza, a može se lako proširiti da se prilagodi na Mealy-ev tip izlaza.

Sa implementacione tačke gledišta, FSM model se dekomponuje kako je to predstavljeno na slici 1.c., gde se upravljački deo može predstaviti pomoću jednostavnog FSM modela, a deo staze podataka se karakteriše kao RT (Register Transfer) arhitektura. To znači da se staza podataka dekomponuje na skup promenljivih koje se koriste za čuvanje operanada i rezultata, i skup procesnih blokova koji obavljaju izračunavanja nad ovim vrednostima. Napomenimo da struktura sa slike 1.c. odgovara jednoprocesorskom sistemu koji se najčešće implementira kod mikroprocesorskih rešenja.

5

Page 6: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

3. Tabela stanja i dijagram stanja Dijagram stanja je grafička prezentacija sekvenvcijalnog rada mašine i često predstavlja

direktni ulaz u komercijalnim sredstvima za sintezu na osnovu koga se može generisati sintetizovano kolo i HDL simulacioni model. Da li koristiti dijagram stanja ili HDL opis u najvećem broju slučajeva predstavlja izbor projektanta, a to zavisi od dostupnih sredstava za projektovanje sa kojima raspolaže. Ponekad kompanije diktiraju odredjenu metodologiju projektovanja tako da je izbor sredstava za projektovanje unapred odredjen.

Na slici 2. prikazane su dve reprezentacije dijagrama stanja iste FSM koja ima pet stanja, a ekvivalentna tabela stanja data je u Tabeli 1. Ukažimo sada na detalje koji se odnose na dijagrame stanja sa slike 2.

Krugovi odgovaraju stanjima, a linije i strelice predstavljaju prelaze izmedju stanja koje se dešavaju nakon svakog taktnog impulsa. Signal za taktovanje se implicitno podrazumeva da postoji, pa zbog toga on nije prikazan u dijagramu stanja niti u tabeli stanja.

Binarni broj koji predstavlja vrednost registra stanja (prvi dijagram stanja), ili njegovim pridruženim imenom stanja (drugi dijagram stanja) su upisani unutar kruga. Ulazno-signalni uslovi koji diktiraju prelaz izmedju stanja su naznačena pored odgovarajuće linije ali pre (/) slash znaka. Slash znak se koristi da razdvoji ulazne od izlaznih signala. Dva ulazna signala A i Hold su prikazana pre slash-a. Vrednosti nakon slash znaka, ako postoje, ukazuju na vrednost izlaznih signala koje su funkcija kako od primarnih ulaza tako i od izlaza registra tekućeg stanja. Ovaj tip automata se naziva Mealy-ev tip automata. Kada je vrednost izlaznih signala funkcija samo izlaza registra tekućeg stanja, tada se oni prikazuju pored kruga koji predstavlja odgovarajuće stanje. Ovaj tip automata se naziva Moore-ov automat. Glavna razlika u drugom dijagramu stanja je ta što se ulazni i izlazni signali prikazuju samo kada su aktivni.

Ulazi Izlazi A Hold

Tekuće stanje Naredno stanje Y_Me Y_Mo

0 X 000 (st0) 000 (st0) 1 0 1 X 000 (st0) 001 (st0) 0 0 0 X 001 (st1) 000 (st0) 0 1 1 X 001 (st1) 010 (st0) 1 1 X X 010 (st2) 011 (st0) 0 0 X 1 011 (st3) 011 (st0) 1 1 0 0 011 (st3) 000 (st0) 1 1 1 0 011 (st3) 100 (st0) 0 1 X X 100 (st4) 000 (st0) 0 1

Tabela 1. Tabela stanja automata datih na slici 2

6

Page 7: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 2. Dijagrami stanja jednog automata

7

Page 8: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

4. FSM dizajn i elementi projektovanja Projektovanje FSM-a i njegovo modeliranje razmatraćemo kroz sledeće aspekte:

1. Stil HDL kodiranja 2. Resetovanje i bezbedno ponašanje 3. Kodiranje stanja automata 4. Automat sa Moore-ovim i Mealy-evim tipom izlaza 5. Logika za sekvenciranje narednog stanja i izlazna logika 6. Interaktivni automati

Arhitektura automata može da ima jednu od sledećih triju formi, prikazanih na slici 3. FSM

se sastoji od kombinacionog bloka “Logika narednog stanja”, sekvencijalni blok “Registar tekućeg stanja” i opcioni kombinacioni blok “Izlazna logika”. Blok Izlazna logika nije neophodan ako se izlazi vode direktno sa registra tekućeg stanja. Tekuće stanje se memoriše u flip-flop-ovima, lečevi uzrokuju oscilacije kod generisanja stanja kada oni rade u transparentnom režimu rada. Blok naredno stanje i izlazni blok mogu sadržati sekvencijalnu logiku, koja je nevidljiva u okviru tela modela, pa se zbog toga ne razmatraju kao deo automata. Automat u datom trenutku može da se nadje u samo jednom stanju, svaka aktivna tranzicija takta uzrokuje promenu od tekućeg ka narednom stanju i definisana je logikom bloka naredno stanje.

Slika 3.Strukture Mealy-evog, Moore-ovog automata i kombinovanog automata

8

Page 9: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Mašina sa n-to bitnim registrom za čuvanje tekućeg stanja ima 2n binarnih brojeva koji se mogu koristiti da predstave stanja. Najčešće, svih 2n brojeva se ne koriste, tako da se neiskorišćeni brojevi odgovaraju stanjima koja se ne mogu javiti u toku rada automata. Automat sa pet stanja, na primer zahteva minimum tri flip-flop-a pri čemu 23-5=3 broja ostaju neiskorišćena.

4.1. Stil HDL kodiranja Postoje različiti načini modeliranja FSM-ova, sa druge strane, male izmene u kodu mogu

uzrokovati od modela da se drugačije ponaša od očekivanog. Zbog toga projektanti treba da budu svesni egzistencije različitih stilova modeliranja koji se podržavaju od strane sredstva za sintezu koje oni koriste, i treba da koriste modeliranje automata, koje je nezavisno od sredstava, što znači da oni mogu da primene stil modeliranja na bilo koji tip kola. Kakao je prikazano na slici 3. HDL kod se može struktuirati u tri posebna dela, koji odgovaraju triju različitih blokova u okviru automata. Pored toga, različite kombinacije blokova je moguće kombinovati u jedan model. Svaki put, stil kodiranja je nezavisan od automata koji se projektuje.

Logika narednog stanja se najbolje modelira korišćenjem iskaza case, mada se ona može modelirati korišćenjem signal iskaza, što zanči da se FSM ne može modelirati u okviru jednog procesa. Direktivom others u okviru iskaza case se izbegava definisanje svih 2n vrednosti t.j. ne definišu se nedodeljena stanja mašine.

Primeri 1 i 2 ukazuju na loš i dobar stil modeliranja za FSM-ove za 3 i 4 stanja, respektivno. Model u primeru 2 ukazuje kako sva tri gradivna bloka automata mogu biti kombinovana, ili izdvojena u modelu, i kako se može obezbediti prenosivost izmedju sredstava za sintezu. Primer 3 prikazuje modelirani automat sa ulaznim i tekućim stanjem, kao primarna branch direktiva.

9

Page 10: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Primer 1. Loše i dobro opisani model automata sa tri stanja Na narednim slikama su pomoću dijagrama stanja i kôdova prikazani, loše i dobro opisani

modeli automata koji prolazi kroz tri stanja. Odgovarajući VHDL kôdovi koriste promenljive koje su važeće samo za jedno stanje i nabrojivog su tipa. To zači da će alat za sintezu automatski dodeljuje sekvencijalne binarne vrednosti stanjima.

Podjimo od lošeg opisa zadatog konačnog automata koji prolazi kroz tri stanja:

Prvi kôd koji se odnosi na model FSM1_BAD, je nekorektan iz dole navedenih razloga:

a. Automat poseduje tri stanja, što zahteva ugradnju dva flip-flopa. Sa dva flip-flopa imaćemo četiri moguće binarne kombinacije, pa tako jedna kombinacija ostaje neiskorišćena. U opisu ne postoji RESET, kao ni vrednost narednog stanja definisanog za neiskorišćeno četvrto stanje. Ovo znači da se mašina nakon uključenja na napajanje može postaviti u nedefinisano stanje.

b. Logika tekućeg stanja, logika narednog stanja, kao i logika izlaza su definisane u okviru jednog VHDL procesa. S obzirom da VHDL process sadrži wait iskaz, izlazima read i write se dodeljuju dva dodatna flip-flopa.

c. Definicija promenljive za State u VHDL opisu, dobija inicijalnu vrednost ST_Read. Ovo je pogodno za simulaciju, ali ignorisano od strane sredstava za sintezu! Promenljive ili signali ne bi trebalo da budu inicijalizovani na ovaj način ako se želi da model bude sintetizovan; ne odgovaraju inicijalnom stanju samog realnog (stvarnog) hardvera.

Napomena: U ovom primeru tip stanja kao i njegova deklaracija su lokalni za proccess.

Slika 5. Prikaz kola loše opisanog automata

10

Page 11: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz koda loše opisanog automata

11

Page 12: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Dobro opisan model, pogodan za sintezu i simulaciju Model pod imenom FSM1_GOOD, prikazuje korektnu verziju. Sekvencijalna logika tekućeg

stanja odvojena je od kombinovane, kombinacione logike narednog stanja i logike izlaza. VHDL opis sadrži i dalje wait iskaz, mada opšte je pravilo koristiti if iskaz. Pomoću if direktive može se modelovati sva sinhrona i asinhrona logika, a isto tako omogućuje kombinovanje sekvencijalne i kombinacione logike u okviru istog procesa.

Slika 6. prikaz kola dobro opisanog automata.

Slika 7. Dijagram stanja modela FSM1_GOOD

12

Page 13: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz koda dobro opisanog automata

13

Page 14: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Primer 2. Loše opisan i četiri dobro opisana konačna automata Jedan neispravan i četiri korektna opisa konačnog automata, kao i dijagram stanja koji važi

za sve pomenute automate dati su na slici 8. Automat ima četiri stanja i koristi asinhroni reset. Kao i u prethodnom primeru, VHDL modeli koriste nabrojivi tip podataka za promenljive stanja.

Prvi model FSM2_BAD, je nekorektno opisan iz istih razloga kao i nekorektan opis modela iz prethodnog primera. Dakle, flip-flopvi su sintetizovani u izlaznoj logici. Izlazi dati u VHDL opisu, su ovoga puta ispod iskaza “if rising_edge(clock)”.

Dobro opisani modeli (od FSM2_GOOD1 do FSM2_GOOD4) prikazuju različite kombinacije, gde se logika narednog stanja, logika tekućeg stanja i logika izlaza međusobno kombinovati ili se izdvojiti, u zavisnosti od izabranog modela. Dakle, dobri opisi su izvedeni na sledeći način:

FSM2_GOOD1 ZASEBNI LNS, LTS I IL;

FSM2_GOOD2 ZASEBNI IL, KOMBINOVANI LTS I LNS;

FSM2_GOOD3 ZASEBNI LTS, KOMBINOVANI IL I LNS;

FSM2_GOOD4 KOMBINOVANI LNS, LTS I IL.

Gde navedene skraćenice imaju sledeće značenje:

LNS – Logika narednog stanja;

LTS – Logika tekućeg stanja;

IL – Izlazna logika.

Što se samih šema realizacije tiče one su date na sledećim slikama. Na slici 9. prikazana je realizacija kola datog odgovarajućim kodom FSM2_BAD. Na njoj se jasno može uočiti dopunska logika izlaza, sačinjena od trobitnog “D” Flip-Flop-a. Na slici 10. prikazano je kolo korektno opisanog automata, a na slici 11. realizacija kola preko standardnih gejtova.

a.

14

Page 15: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

b.

15

Page 16: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

c.

16

Page 17: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

d.

17

Page 18: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

e.

18

Page 19: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

f.

Slika 8. a) Dijagram stanja primera 2; b) Prikaz loše opisanog automata; c) Prikaz dobro opisanog automata prva varijanta; d) Prikaz koda dobro opisanog modela – druga verzija; e) Prikaz koda dobro opisanog automata – treća verzija; f) Prikaz koda dobro opisanog automata – treća verzija

19

Page 20: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 9. Kolo realizovano nekorektnim opisom opisom FSM2_BAD, datom na slici 8.b

Slika 10. Kolo realizovano korektnim kôdom (od FSM2_GOOD1 do FSM2_GOOD4)

20

Page 21: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 11. Realizacija kola korektno opisanog automata pomoću standardnih gejtova za

kodove sa slike 8.c, 8.d, 8.e, 8.f.

Primer 3. Konačni automati sa ulaznim signalima ili stanjima datim kao primarne direktive grananja

Konačni automat, odgovara dijagramu stanja koji je dat na slici 12, inače modelovan na dva različita načina. Dijagram stanja predstavlja kontroler brzine kretanja vozila. Prva verzija opisa, koristi Accelerate i Brake kao dve if direktive grananja, i u okviru svake od njih, koristeći case iskaz, dodeljuje nove vrednosti stanja. Druga verzija opisa prikazuje češće korišćeni metod, gde se vrednost stanja koristi kao primarna direktiva grananja.

Slika 12. Dijagram stanja kontolera brzine

Slika 13. Hardverska realizacija kontrolera brzine

21

Page 22: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz koda datog primera

22

Page 23: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz koda druge verzije

23

Page 24: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

4.2. Resetovanje i sigurno ponašanje automata U zavisnosti od aplikacije, reset signal ne mora da bude dostupan, može da bude sinhroni ili

asinhroni, ili i jedno i drugo. da bi obezbedili bezbedno ponašanje u zavisnosti od tipa reseta moraju se obezbediti sledeće dve stvari:

• Korišćenje asinhronog reseta. Ovo obezbedjuje da se automat uvek inicijalizira u poznato važeće stanje, pre prve aktivne tranzicije takta i početka normalnog rada. Ovaj pristup ima prednost jer ne zahteva da se dekodira bilo koja neiskorišćena vrednost koja predstavlja tekuće stanje, čime se minimizira logika narednog stanja.

• Bez reseta ili sinhronog reseta. U odsustvu asinhronog reseta, nakon uključenja sistema na napajanje, ne postoji način za predikciju inicijalne vrednosti registra stanja kada se on implementira u integrisanom kolu. Moguće je da se neki ulazi postave na vrednosti koje će rezultirati da se automat postavi u nekodirano stanje. Svih 2n binarnih vrednosti, moraju se zbog toga dekodirati u logici narednog stanja, nezavisno od toga da li oni pripadaju skupu dozvoljenih stanja ili ne. Zbog toga se ugradjuju posebna kola u logici narednog stanja koja imaju za cilj da postave automat u željeno stanje ali po ceni dodatne režije (overhead).

Analiziraćemo sada automat sa deset stanja koji je modeliran korišćenjem Johnson-ovog kodiranja. Registar stanja se sastoji od pet flip-flopova i postoji 25-10 neiskorišćenih stanja. Kada se koristi sinhroni reset umesto asinhronog, logika narednog stanja biće 11% veća.

Kod VHDL-a asinhroni reset se može modelirati korišćenjem if iskaza, dok sinhroni reset se može modelirati korišćenjem bilo wait ili if iskaza; nedostatak korišćenja wait iskaza je taj da je ceo proces sinhron tako da se drugi if iskazi ne mogu koristiti za modeliranje kombinacione logike.

Primer 4 pokazuje automat koji ima kombinovanu logiku tekućeg i narednog stanja modeliranu sa: asinhronim resetom, sinhronim resetom i bez reseta.

Ako se logika tekućeg i narednog stanja modelira svaka posebno u sekvencijalnoj logici tekućeg stanja mora da postoji asinhroni reset, dok kod sinhronog reseta on može da bude ugradjen bilo u logici tekućeg i narednog stanja. Nešto detaljnije, ugradnjom reseta u logici tekućeg stanja ako se izvodi promena sa asinhrog na sinhroni reset i obratno, ako je to potrebno.

Primer 4. Konfiguracije reset ulaza, konačnog automata

Ovaj primer služi za prikaz kako u opisu konačnog automata, definisati asinhroni ili sinhroni reset. Na slikama 13. i 14. prikazani su primeri opisa asinhronog i sinhronog reseta, respektivno. Npomena: Kôdovi nisu potpuni i predstavljaju samo deo opisa.

24

Page 25: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 13. Asinhroni reset

Slika 14. Sinhroni reset

25

Page 26: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

4.3. Kodiranje stanja Način na koji se binarne vrednosti dodeljuju stanjima nazivamo kodiranje stanja. Postoje

nekoliko različitih formata kodiranja stanja koja se uobičajno koriste, a to su: 1. sekvencijalni 2. Gray-ov 3. Johnson-ov 4. one-hot 5. definisan od strane korisnika 6. definisan sintezom

Ovi formati su prikazani u Tabeli 2 za 16 stanja.

No. Sekvencijalni Gray Johnson One-Hot

0 0000 0000 00000000 0000000000000001

1 0001 0001 00000001 0000000000000010

2 0010 0011 00000011 0000000000000100

3 0011 0010 00000111 0000000000001000

4 0100 0110 00001111 0000000000010000

5 0101 0111 00011111 0000000000100000

6 0110 0101 00111111 0000000001000000

7 0111 0100 01111111 0000000010000000

8 1000 1100 11111111 0000000100000000

9 1001 1101 11111110 0000001000000000

10 1010 1111 11111100 0000010000000000

11 1011 1110 11111000 0000100000000000

12 1100 1010 11110000 0001000000000000

13 1101 1011 11100000 0010000000000000

14 1110 1001 11000000 0100000000000000

15 1111 1000 10000000 1000000000000000

Primer 6 prikazuje automat za Black-Jack kontroler koji koristi sve formate kodiranja stanja, a pored toga sadrži i definisane formate za sintezu. Primer takodje prikazuje efekat koje kodiranje stanja ima na kolo za sintezu ovog modela.

26

Page 27: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

1) Sekvencijalni format. Svakom stanju se dodeljuje binarni broj koji se inkrementira.

2) Gray-ovo i Johnson-ovo kodiranje. Svakom stanju kod Gray-ovog ili Johnson-ovog kodiranja stanja se dodeljuju sukscesivni binarni brojevi pri čemu izmedju dva susedna broja postoji razlika samo na jednoj bit poziciji. Primarni razlog za korišćenje ovakvog kodiranja je smanjenje mogućnosti pogrešnih tranzicija uzrovanim promenama na asinhronim ulazima u trenutku postavljanja flip-flopova.

Svih 2n binarnih brojeva moguće je koristiti kod kodiranja stanja sa Gray-ovim kodom. Ali zbog rasporeda jedinica i nula kod Johnson-ovog kodiranja stanja potreban je veći broj flip flopova i uvek postoji veći broj neiskorišćenih binarnih brojeva. To znači da je poželjnije koristiti asinhroni reset, jer logika narednog stanja mora da dekodira svih 2n binarnih vrednosti, a to rezultira složenijoj logici. Primer 5 pokazuje automat koji predstavlja kontroler pozicije platforme a koristi Johnson-ovo i Gray-ovo kodiranje stanja

3) One – hot. Kod One-hot kodiranja stanja svakom stanju je dodeljen po jedan flip-flop, što znači da za n stanja je potrebno n flip-flopova pri čemu samo jedan flip-flop u datom trenutku se nalazi u pravom stanju. Povećani broj flip-flopova obično rezultuje većoj logici.

4) Definisan kôd od strane korisnika. Svakom stanju se dodeljuje binarni broj u saglasnosti sa pojedinim zahtevom projektanta.

5) Kôd definisan sintezom. Ovi formati se biraju od strane sredstava za sintezu i imaju cilj da minimizuju logiku narednog stanja. Nešto odredjednije stvarne dodele zavise od dizajnera. Da bi videli kako se to ostvaruje dodela projektant mora da konsultuje literaturu koja se odnosi na sredstva za sintezu.

U daljem delu teksta, potrebno je obratiti pažnju na načine kodiranja stanja, kao i njihovog pozivanja u telu glavnog opisa modela.

27

Page 28: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Primer 5. Konačni automat za kontrolu ugaone pozicije izveden Gray-ovim i Johnson-ovim načinom kodiranja

Dijagram stanja konačnog automata dat na slici 15, prolazi kroz osam stanja. Stanja su kodirana bilo Gray-ovim ili Johnson-ovim načinom kodiranja i prikazuju željenu ugaonu poziciju rotora u koracima od po 45 stepeni. Kretanje stanja počinje od trenutnog stanja koje definiše trenutni položaj rotora do postavljenog željenog stanja, u kojem će se automat naći i koje je definisano od strane korisnika. Kretanje se ostvaruje pomerajima rotora u koracima od po 45 stepeni u smeru kazaljke na časovniku ili u suprotnom smeru u zavisnosti od zadatog.

Iz razloga što spoljašnje sile mogu pomeriti rotor van željene pozicije, ulaz pod imenom PhysicalPosition se asinhrono menja (nezavisan je od clock-a). Iz tog razloga Gray-ov ili Johnson-ov način kodiranja je idealan. Ovo proističe iz činjenice da promena asinhronih ulaza, u toku postavljanja stanja na flip-flopovima registra stanja, neće dovesti automat u neka od nedefinisanih ili nestabilnih stanja. Tako, sa ostalim načinima kodiranja, postoji mala verovatnoća nepravilnog rada. Jedna od osnovnih nepravilnosti jeste da se zahteva kretanje rotora za 180 stepeni u jednom takt intervalu.

Postoje dva načina specifikacije kodiranja stanja:

1) Koristiti signal tipa broj, za koji je atribut sinteze primenjen. Ovo je konvencionalan način zadavanja načina kodiranja stanja, ali zbog specifičnosti imena atributa za odredjeni alat za sintezu, ime mora biti promenjeno, ako se želi korišćenje u drugim alatima za sintezu. Paket pod imenom ENUM_STATE_ENCODE_TYPES, definiše dva identična tipa kodiranja stanja, jedan za Gray-ov, a drugi za Johnson-ov način kodiranja. Dalje, različiti atributi su upotrebljeni za ove tipove kodiranja, gde su tri bit-a data na raspolaganje Gray-ovom načinu kodiranja, a četiri Johnson-ovom. Atribut je nazvan ENUM_TYPE_ENCODING za alat VeryBest tipa, za ostale alate za sintezu mora biti drugog imena (u našem primeru je korišćen alat za sintezu Sinplify Pro 7.7).

2) Koristiti konstante za predstavljanje pojedinačnih vrednosti stanja. Model prikazuje dva paketa za dva metoda kodiranja. Celina entitet – arhitektura opisa ovog automata je identična kao za kodiranje dva stanja, izuzev use naredbe, koja se poziva iz odgovarajućeg paketa. Drugi paket prikazje korišćenje neoznačenog broja, u Gray-ovoj i Johnson-ovoj verziji kodiranja. Automat je modelovan, korišćenjem jednoprocesnog kôda, slično kao i u primeru 2. (FSM2_GOOD4). Ulaz i izlaz su tipa odredjenog na osnovu metode kodiranja – Gray ili Johnson.

Slika 15. Dijagram stanja kontrolera ugla

28

Page 29: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

29

Page 30: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz VHDL opisa datog automata

30

Page 31: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Primer 6. Formati za kodiranje stanja konačnih automata – BlackJack mašina za igru

Model automata kod koga se kodiranje stanja može birati, dat je u ovom primeru. U

konkretnom slučaju prikazan je uticaj kodiranja stanja na površinu Si-a, kao i tajming. Šeme koje se koriste za kodiranje stanja su bazirane na: sekvencijalnom kodiranju, Gray-ovom, Johnson-ovom, One-Hot i tri tipa Nova šeme kodiranja. Za prva četiri načina kodiranja definisani su HDL modeli. Za ostala tri koristi se Nova tip kodiranja, koja zahteva grafičku prezentaciju.

Pošto je potrebno sačiniti kontroler BlackJack igre, potrebno je najpre upoznati se sa opštim pravililma igre. Igra se sa standardnim skupom od 52 karte. Bitne su vrednosti karata, Jack, Queen i King imaju vrednosti 10, dok je As najjači i može imati vrednosti od 1 do 11, koliko igrač želi. Igrač može u rukama imati najviše 21 poen. Poenta je pobediti dilera igre. Diler je igrač koji ima u zbiru 17 ili više. Igrač gubi ako njegov totalni zbir padne ispod sume koju ima diler. Ako igrač želi da nastavi igru, upituje dilera za dobijanje još jedne karte. Ovo je poznato kao pozajmica. Ako je igrač zadovoljan sa skupom karata i njihovom sumom igra se nastavlja.

Black Jack FSM kontroler ima 16 stanja i njegov dijagram stanja prikazan je na slici 18. Kada se HDL model sintetizuje, sredstvo za sintezu kreira poseban dizajn fajl za svaki proces. Da bi se analizirao efekat kodiranja stanja na logiku narednog stanja, tekućeg stanja i izlazne logike, u VHDL opisu su modelirani posebni procesi. Arhitektura Black Jack mašine, prikazana na slici 17, odgovara strukturi procesa u VHDL modelu.

Definisanje kodiranja stanja

U svakom VHDL modelu postoje četiri iskaza koji se odnose na kodiranje stanja. U konkretnom slučaju kodiranje stanja je specificirano u VHDL modelu definisanjem dva signala CurrentState i NextState, i predstavljaju jedno od četiri tipa definisana u VHDL paketu STATE_ENCODE_TYPES. Ovaj paket prvo definiše atribut nazvan SYN_ENCODING kao tipa niz. Ovaj atribut je poznat sredstvu za sintezu Sinplicity 7.7 Pro, i specijalno se koristi za definisanje niza koji predstavlja podatke nabrojivog tipa. Četiri nabrojiva tipa podataka su definisani u paketu, pri čemu svaki ima 16 mogućih vrednosti koja odgovaraju stanju automata. Svaki tip ima svoj atribut, SYN_ENCODING, koji je pridružen tom tipu i predstavlja binarni niz koji odgovara pojedinom kodiranju stanja.

Na narednim slikama prikazani su sintetizovano kolo i dijagram stanja, respektivno.

31

Page 32: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

32

Page 33: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 18. Dijagram stanja automata datog primerom 6

Da bi se na pravi način sagledala problematika opisa složenijih automata, potrebno je proći

kroz opis samog automata. Kao i u prethodnim primerima, na odgovarajućim mestima u opisu dati su komentari koji olakšavaju razumevanje korišćenih naredbi i struktura. Dakle, na narednim slikama dati su opis automata i vremenski dijagram dešavanja u kolu.

33

Page 34: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz opisa paketa koji definiše načine kodiranja koji se mogu koristiti prilikom eksploatacije automata

34

Page 35: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

35

Page 36: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

36

Page 37: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

37

Page 38: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

38

Page 39: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 19. Prikaz VHDL kôda automata za BlackJack igru kartama

39

Page 40: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

40 40

Page 41: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

4.4.Tipovi izlaza automata

Strukture Mealy-evog, Moore-vog i kombinovanog Mealy/Moore-ovog tipa automata prikazani su na slici 3. Mealy-ev tip automata ima izlaze, koji su funkcija signala sa primarnih ulaza i signala sa registra tekućeg stanja. Moore-ov tip automata, sa druge strane, poseduje izlaze, koji su funkcija samo signala sa registra tekućeg stanja. Ako izlazi automata dolaze direktno sa registra stanja, tada ne postoji izlazna logika. Kombinovani Mealy/Moore-ov automat ima oba tipa izlaza. Izbor koji od modela automata koristiti je apsolutno zavisan od problema zadatka (projekta).

Primer 7. prikazuje isti automat, projektovan pomoću Mealy-evog ili Moore-vog tipa izlaza. Primer 8. ukazuje na kombinovani automat sa Murovim i Milijevim tipom izlaza.

Primer 7. Konačni automat sa Milijevim ili Murovim tipom izlaza

Konačni automati dati u ovom primeru, razlikuju se po tome što jedan ima Milijev, a srugi Murov tip izlaza. U primeru je opisano kako se generiše izlaz (NewColor) u zavisnosti ulaza (Red, Green i Blue). Na Narednim likama dati su dijagrami stanja ovih automata, kao i odgovarajući VHDL opisi, sa komentarima na koje treba obratiti pažnju prilikom projektovanja automata.

Slika 21. Dijagram stanja automata sa Mealy-evim tipom izlaza

41

Page 42: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 22. Dijagram stanja automata sa Moore-ovim tipom izlaza

42

Page 43: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz VHDL opisa koji odgovara Mealy-evom tipu automata. Dijagram stanja koji odgovara ovom opsu dat je na slici 21.

43

Page 44: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz VHDL opisa koji odgovara Moor-ovom tipu automata. Odgovarajući dijagram stanja prikazan je na slici 22.

44

Page 45: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Primer 8. Konačni automat sa Mealy-evim i Moore-ovim tipom izlaza

Ovaj model dat je na osnovu dijagrama stanja definisanog još na početku ovog rada, na slici 2. Ista slika data je i ovde radi preglednosti. Na njoj se razlikuju dva načina opisivanja dijagrama stanja. Jasno se uočava da je Moore-ov izlaz zavisan samo od trenutnog stanja u kome se konačni automat nalazi, dok se kod Mealy-evog tipa izlaza uočava zavisnost i od trenutnog stanja i od trenutnih vrednosti signala na ulazu. Na narednim slikama dati su dijagrami stanja sa slike 2. kao i potrebni VHDL opis.

Slika 2. Načini predstavljanja dijagrama stanja jednog konačnog automata sa pet stanja

45

Page 46: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz VHDL opisa konačnog automata sa istovremenim posedovanjem i Mealy-evog i Moore-ovog tipa izlaza, kome odgovaraju dijagrami stanja dati na prethodnoj strani.

46

Page 47: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

4.5. Sekvencijalna logika narednog stanja i logika izlaza

Obe, logika narednog stanja i logika izlaza automata realizuju se kao kombinaciona logika. Ipak, u zavisnosti od tipa aplikacije moguće je da se ugradi dodatna sekvencijalna logika u oba bloka i to ugradi u kodu modela automata. Opisaćemo sada ulogu svake od ovih logika posebno.

Sekvencijalna logia narednog stanja. Ova logika upravlja grananjem na nardno stanje na osnovu prethodnog skupa signala. Ovi signali treba da budu postavljeni kada je automat bio u drugom stanju, do koje se došlo preko odredjene sekvence stanja, ili zbog neke akumulirane vrednosti koja je rezultirala zbog izvršavanja u petlji odredjene sekvence sukscesivnog stanja. Upravljački ulazi narednog stanja mogu takodje da se koriste za generisanje izlaza automata. Primer 9 prikazuje jedan takav model koji sadrži jedan upravljački flip-flop u logici narednog stanja.

Sekvencijalna izlazna logika. Ova logika registruje činjenicu da se javilo odredjeno stanje ili sekvenca stanja. Primer 10 prikazuje tipičnu aplikaciju ovoga, gde se vrednost akumulatora inkrementira svaki put kada automat predje kroz odredjeno stanje.

Primer 9. Konačni automat sa sekvencijalnom logikom narednog stanja

Konačni automat dat u ovom primeru koristi u delu izlazne logike extra Flip-Flop. Dijagram stanja dat je na narednoj slici i daje sliku kako ovaj automat funkcioniše. Za praćenje rada automata pogodnije je pratiti ga uz VHDL opis dat na narednoj strani. Ovaj automat prolazi kroz pet stanja u okviru jednog ciklusa njegovog rada, tri ulaza A, B i C utiču na to da se rad automata grana kroz tri stanja ThreeA, ThreeB i ThreeC, respektivno, na bazi prioritet kodiranja. Sinhroni Reset garantovano zadržava automat u početnom stanju za prva tri taktna intervala, koliko je dovoljno da se postave sva stanja u sistemu i da automat otpočne siguran rad.

Slika 23. Dijagram stanja konačnog automata sa sekvencijalnom logikom narednog stanja

47

Page 48: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz VHDL kôda automata sa

sekvencijalnom logikom narednog stanja sa pojedinim objašnjenjima koje mogu biti korisne pri projektovanju konačnih automata.

48

Page 49: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 24. Prikaz sintetizovanog kola konačnog automata sa sekvencijalnom logikom narednog stanja

Primer 10. Konačni automat sa sekvencijalnom logikom izlaza

Konačni automat je modelovan prema dijagramu stanja datog na slici 25. Prolazi kroz četiri stanja i sastoji se od konačnog automata i ogovarajuće izlazne logike, kako je to i prikazano na slici 26.

Nakon aktivnog signala RESET, automat započinje svoj rad iz stanja One, i izlazna logika postavlja izlaz na nulu. Prilikom rada automata uočavaju se dva grananja u okvru drugog stanja. Grananje se vrši kroz TwoCount ili TwoNoCount. Kada je ulaz EnableCount u stanju logičke jedinice, tada je u petlju uključeno stanje TwoCount i brojač broji. U suprotnom imamo da je aktivno stanje u petlji TwoNoCount i brojač u tom slučaju ne broji. Prikaz VHDL kôda se nalazi nakon dijagrama stanja i sintetizovanog kola.

Slika 25. Dijagram stanja automata sa sekvencijalnom izlaznom logikom

49

Page 50: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 26. Sintetizovano kolo na kome se jasno uočava sekvencijalni izlaz

50

Page 51: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz VHDL kôda konačnog automata sa sekvencijalom izlaznom logikom.

51

Page 52: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

4.6. Interaktivni automati Ako se tekuće stanje mašine ili izlazni signali koriste da bi uticali na rad drugih automata,

tada se ti automati nazivaju interaktivni. Interakcija izmedju automata može da bude jednosmerna ili dvosmerna.

Jednosmerna interakcija. Automati mogu biti hijerarhijski organizovani, pa u tom slučaju oni

su pogodni za razbijanje komplikovanih upravljačkih struktura na veći broj manjih upravljačkih celina. Slika 27.a. prikazuje strukturu koju čine dva automata, pri čemu FSM1 ima jednosmerno upravljanje u odnosu na FSM2, a to znači da naredno stanje FSM2 zavisi kako od njegovih ulaza i tekućeg stanja, tako i od stanja FSM1. Primer 11 prikazuje tri različite konfiguracije automata koje se odnose na model upravljanjam, koji se koristi za upravljanje iste staze podataka. Kontroler je modeliran na tri različita načina:

1) Master FSM koji upravlja sa tri subhijerahijska FSM-a. 2) Tri FSM-a sa serijskim upravljanjem od jednog ka narednim 3) Korišćenje jedinstvenog FSM-a. Dvosmerna interakcija. Automati koji imaju dvosmerno upravljanje jedan u odnosu na drugi

korsni su za modeliranje kola koja zahtevaju Handshaking mehanizme (mehanizme rukovanja). Slika 27.b. prikazuje strukturu koju čine tri interaktivna automata pri čemu svaki automat ima izvedeno bidirekciono upravljanje u odnosu na ostala dva.

52

Page 53: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

53

Page 54: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Primer 11. Jednosmerni interaktivni konačni automati

Tri različito modelovana interaktivna automata, iskorišćena su za kontrolu istog toka podataka. Ovo je učinjeno iz razloga da se uporede načini modelovanja i stekne znanje poterebno za što efikasnijim modelima. Prvi kontroler toka, modelovan je pomoću glavnog automata, koji kontroliše tri slave automata. Drugi kontroler toka podataka koristi tri automata, sa serijskom medjusobnom kontrolom. Treći način modelovanja baziran je na jednom konačnom automatu. Sva tri modela su funkcionalno evivalentna.

Staza podataka

Staza podataka ne vrši neku tačno definisanu funkciju, ali je problem dovoljan da demonstrira različite konfiguracije konačnih automata, upotrebljenih za njegovu kontrolu. Sa aspekta hardvera, Data Path prihvata tri ili četiri sekvence, četvorobitnih vrednosti na ulazu, zatim nakon procesiranja podataka, razvrstava podatke u dve ili tri sekvence sa devet bitova na izlaznim priključcima. Sama staza podataka je kontrolisana od strane kontrolera toka podataka, kako bi se izvršile dole navedene jednačine. Ulazni podaci su A, B, C i D, a izlazni Y1, Y2 i Y3.

Četvoroulazna sekvenca data je kao:

Y1=A*B+A*C Y2=A*D+B*C Y3=B*D+C*D

Troulazna sekvenca data je kao:

Y1=A*B+A*C Y4=B*C Zbog šest množenja koja su potrebna prilikom razmatranja četiri četvorobitna ulazna

podatka, a postoji samo jedan množač, najbrže rešenje se dobija tek nakon šest takt intervala. Kada se radi sa tri četvorobitna broja, potrebna su samo tri množenja, što dovodi do bržeg rada.

Kontrolne jedinice Na slici 27.c. na narednoj strani, prikazane su strukturne konfiguracije kontrolnih jedinica.

Control Path 1. Galvni automat, FSM_MASTER, na svojim izlazima generiše kontrolne signale za tri automata StartFSM1, StartFSM2 i StartFSM3. Na osnovu ovih signala se trigeruju FSM1, FSM2 i FSM3. Konačni aujtomat, FSM1, je predodređen da omogući četiri signala dozvole, koji se inače koriste da taktuju serijski ulaz podataka u odgovarajući hold registar. Konačni automat FSM2, daje signale koji omogućuju selekciju koja od dva zadrzana ulaza da pomnoži zajedno, a takođe daje signale dozvole za upis rezulatata množenja u odgovarajuće regisre stanja. Automat, FSM3, omogućuje selekciju linija koje služe za slanje rezultata na odgovarajući izlaz.

Control Path 2. Tri konačna automata generišu identične kontrolne signale kao i u opisu gore navedenom. Razlika je jedina u tome što FSM1 generiše izlazni kontrolni signal StartFSM2 za automat FSM2, a automat FSM2 generiše kontrolni signal StartFSM3 za automat FSM3.

Control Path 3. Pošto je u pitanju samo jedan automat za kontrolu toka podataka, najjednostavnije je sagledati njegov dijagram stanja dat na slici 35.

54

Page 55: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 27.c. Prikaz varijanti strukture kontrolnih jedinica

Na narednoj strani prikazana je hardverska realizacija Data Path kola.

Data Path opis dat je u narednom delu teksta, nakon čega su dati VHDL opisi i realizacije načina kontrole istog.

55

Page 56: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

56

Page 57: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

57

Page 58: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Kako je u pitanju jedan od komplikovanijih primera, krenimo najpre od prve varijante realizacije ovog sistema. Dakle, tri automata kontrolisana od strane glavnog - MASTER_FSM. Prvo prolazimo kroz kôd koji opisuje dato kolo, a zatim ćemo sagledati dijagrame stanja svakog od konačnih automata koji učestvuju u prvoj verziji realizacije.

58

Page 59: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Control Path 1 – Tri automata kontrolisana glavnim MASTER_FSM automatom

59

Page 60: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

60

Page 61: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

61

Page 62: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

62

Page 63: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

***-VHDL kodiranje stanja definisano je da počinje od st0, a ne od st1. Ovo se radi iz razloga, što alat za sintezu automatski dodeljuje sekvencijalna stanja, počev od 0, tako kada se izvrši simulacija stanju st1 se automatski dodeljuje stanje 1, a ne 0. ovim je izbegnuta nepotrebna konfuzija.

****- inicijalizacija izlaza pre case naredbe se vrši da bi se izbegla nepotrebna latch kola na izlazu, kao i zbog tačnosti prolazaka automata kroz stanja prilikom rada.

*****- pošto je postavljanje izlaza izvršeno pre case naredbe, nije potrebno to činiti u okviru when others dela. U suprotnom, u okviru when others dela potrebno je navesti inicijalne vrednosti izlaza.

Prikaz kôda, prvog sistema za kontrolu Data Path, raelizovanog pomoću tri automata FSM1, FSM2 i FSM3, kontrolisanih automatom MASTER_FSM. Na narednim slikama nalaze se odgovarajući dijagrami stanja, gore navedenih automata.

63

Page 64: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 28. Dijagram stanja konačnog automata FSM1

Slika 29. Dijagram stanja konačnog automata FSM2

64

Page 65: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 30. Dijagram stanja konačnog automata FSM3

65

Page 66: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 31. Dijagram stanja konačnog automata korišćenog za kontrolu ostalih automata u sistemu - MASTER_FSM

U daljem delu teksta, problem realizacije se svodi na drugu verziju realizacije sistema za kontrolu Data Path dela kola.

66

Page 67: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Control Ptah 2 – Serijski kontrolisana tri automata

67

Page 68: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

68

Page 69: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

69

Page 70: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Prikaz koda za realizaciju Control Path sistema

Na narednim slikama prikazani su dijagrami stanja konačnih automata FSM1, FSM2 i

FSM3, koji upravljaju Data Path-om, ali u ovom delu primera BEZ glavnog automata za kontrolu rada MASTER_FSM. U ovom slučaju imamo serijsku kontrolu tri automata.

Slika 32. Dijagram stanja automata FSM1

70

Page 71: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 33. Dijagram stanja konačnog automata FSM2

71

Page 72: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 34. Dijagram stanja konačnog automata FSM3

72

Page 73: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Control Path 3 – Single FSM

73

Page 74: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

74

Page 75: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

VHDL kôd, za slučaj kada samo jedan automat vrši kontrolu rada Data path-a.

75

Page 76: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 35. Dijagram stanja konačnoga automata, koji sam vrči kontrolu rada sistema DataPath

76

Page 77: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

LABORATORIJSKA VEŽBA

Konačni automati (FSM)

Predmet rada U ovoj vežbi biće analiziran konačni automat sa četiri stanja. Najpre ćemo pristupiti

projektovanju istog, a zatim ćemo na osnovu rezultata simulacije sagledati rad datog automata. Projektovanje se bazira na unošenju kôda, koji opisuje ponašanje automata, njegovo kompajliranje i sagledavanje rezultata kompajliranja.

Slika 36. Dijagram stanja automata na osnovu koga vršimo projektovanje istog

77

Page 78: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Postupak rada

Korak 1.

Za pokretanje programa u Windows okruženju, biramo ikonu Active-HDL 5.1. Može se koristiti i Start→All Programs→Active-HDL 5.1. Kada se program startuje, na ekranu se pojavljuje dialog box dat na slici 37.

Slika 37. Dialog box vezan za podešavanje parametara - vezano za licencu

Postavljanjem parametara kao što je prikazano na slici 37 i pritiskom na Next, pojaviće se sledeći dialog box koji je vezan za konkretne primere i koji je prikazan na slici 38. Potrebno je samo čekirati Create new design i kliknuti na OK. Time smo započeli proces kreiranja novog projekta. Nakon ovih radnji pojavljuje se novi dialog box prikazan na slici 39.

Slika 38. Dialog box koji omogućuje otvaranje postojećih ili kreiranje novih projekata

78

Page 79: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 39. Dilaog box za kontrolu resursa novog projekta

U dialog box-u za kontrolu resursa, kako bi se kreirao potpuno nov projekat, potrebno je čekirati Create an empty design. Potrebno je kliknuti na Next nakon čega se pojavljuje nov dialog box vezan za alat za sintezu koji će se koristiti u projektu. O alatima za sintezu i problemima na koje treba obratiti pažnju, rečeno je u uvodu za ovu laboratorijsku vežbu. Prikaz kako treba biti popunjen dialog box nalazi se na slici 40.

Slika 40. Prikaz dialog box-a za podešavanje alata za sintezu

79

Page 80: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Nakon potvrdjivanja alata za sintezu i dodele imena projektu (prikazano je na narednoj slici kako dodeliti ime, gde grupa obeležava redni broj automata, datog u listi automata za vežbu - u daljem delu teksta).

Slika 41. Dialog box za dodelu imena projektu

Nakon pritiska tastera Next pojaviće se još jedan dialog box, koji ovde nije prikazan, a koji inače služi za potvrdu imena projekta. U okviru tog dialog box-a potrebno je samo kliknuti na Finish. Nakon toga pojavljuje se radno okruženje pomenutog programa. Na narednim slikama prikazano je radno okruženje sa zaokruženim stavkama koje se tokom projekta moraju izvršiti.

80

Page 81: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Korak 2. Dakle, potrebno je kreirati kôd koji opisuje rad konačnog automata, datog dijagramom stanja na slici 36. u koraku 1 prikazano je kako kreirati podlogu projekta (ime, alat za sintezu itd.). U ovom koraku biće prikazano kako kreirati i simulirati odgovarajući kôd.

1. Duplim klikom na zonu obeleženu brojem 1, otvara se dialog box u kome je potrebno navesti ime konačnog automata. U istom dialog box-u potrebno je selektovati VHDL Source code i u prostoru ispod navesti ime automata. Sve ovo je prikazano na narednoj slici.

81

Page 82: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

2. Nakon pritiska tastera OK, otvara se editor kôda u kome se vrši opis automata pomoću jezika za opis hardvera. U prethodnom delu teksta, vezanog za načine opisivanja konačnih automata, skrenuta je pažnja kako i na koji način izbeći sve greške koje mogu da nastanu prilikom projektovanja istih. Iz tog razloga, ovde se nećemo zadržavati na tome.

3. Posle unošenja kôda, potrebno je izvršiti kompilaciju datog projekta. Kôd je prikazan na slici 46. Na slici 45, prikazano je okruženje nakon unošenja kôda.

Slika 45. Prikaz radnog okruženja nakon unošenja koda

Jednim klikom na zonu koju obeležava broj 2 ili pritiskom na F11, vrši se komajliranje (Compile) unetog koda. U okviru zone označene brojem 3, nakon uspešnog kompajliranja, umesto znaka pitanja ?, pojaviće se zeleni znak √. U suprotnom, kompajler će prijaviti grešku (crveni znak χ), gde se greška odnosi na ispravnost korišćenja jezika, ali ne i funkcionalnu ispravnost. Tako se može desiti da je sam kôd ispravan, ali da projekat ne odgovara funkciji koja je zadata zadatkom. Kada je automat ispravno opisan prelazimo na naredni korak.

82

Page 83: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 46. Prikaz kôda, generisanog na osnovu dijagrama stanja datog na slici 36

83

Page 84: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Korak 3.

U okviru ovog koraka vrši se sagledavanje rezultata simulacije. Na narednoj slici predstavljen je proces generisanja Test Bench-a za dati primer. Test Bench nam omogućuje da testiramo uredjaj koji smo prethodno opisali, tako što ćemo definisati karakteristične signale ulaza i sagledati ponašanje izlaza u toku odredjenog vremenskog perioda. Tek nakon pozitivno ocenjenog odziva našeg novoprojektovanog sistema, možemo govoriti o ispravnosti njegovog rada.

Slika 47. Generisanje Test Bench-a

Nakon pritiska tastera u zoni na koju ukazuje broj 4, program automatski generiše Test

Bench kôd. On se smešta u okviru osnovnog stabla Design Browser-a (na narednoj slici – polje na koje ukazuje broj 6). Potrebno je sada samo navesti, u okviru novog Test Bench koda, vremenske raspodele vrednosti ulaznih signala. Vrednosti ulaznih signala se navode u zoni na koju ukazuje broj 5. Za naš konkretan primer, u odgovarajuću zonu 5, se unosi sledeći kod:

clock<= '0', '1' after 5 ns, '0' after 10 ns, '1' after 15 ns,

'0' after 20 ns, '1' after 25 ns, '0' after 30 ns, '1' after 35 ns, '0' after 40 ns, '1' after 45 ns, '0' after 50 ns, '1' after 55 ns, '0' after 60 ns, '1' after 65 ns, '0' after 70 ns, '1' after 75 ns, '0' after 80 ns, '1' after 85 ns, '0' after 90 ns, '1' after 95 ns; keys<= '0', '1' after 10 ns; accelerate<= '0', '1' after 10 ns, '0' after 45 ns; brake<= '0', '1' after 45 ns, '0' after 75 ns;

84

Page 85: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 48. Definisanje ulaznih signala u okviru koda Test Bench-a

Korak 4.

Nakon simulacije (F11 ili klikom na zonu 2), generisan je u okviru Test Bench direktorijuma, fajl sa ekstenzijom *.do . Desnim klikom na ovaj fajl (koji se na slici 48. uočava u zoni 6 ispod koda Test Bench-a), javiće se padajući meni, na kome je potrebno odabrati opciju Execute. Nakon toga automatski će se otvoriti Waveform Editor, koji služi za posmatranje signala našeg projekta (prikazan na slici 49). U polju pod brojem 8, se nalazi opis strukture jedinice koja se testira (UUT-Unit Under Test). Pritiskom na polje koje je označeno brojem 8, izvršiće se prikaz signala u okviru Waveform Editor-a.

85

Page 86: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Slika 49 i 50. Prikaz Waveform Editor-a koji preti signale na ulazu i izlazu

86

Page 87: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Na prethodnoj slici vidimo da smo zadavanjem signala na ulazu, automat vodili kroz sva stanja od prvog do četvrtog, a zatim od četvrtog do prvog unazad. To direktno pokazuje signal pod imenom speed. Korak 5. Napisati odgovarajuće VHDL kodove za sledeće automate sa četiri stanja. Ulazni signali su A i B, dok je izlazni signal obeležen sa NextState.

Grupa 1. Grupa 4.

Grupa 2. Grupa 5.

Grupa 3. Grupa 6.

87

Page 88: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Grupa 7. Grupa 10.

Grupa 8. Grupa 11.

Grupa 9. Grupa 12.

88

Page 89: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Grupa 13. Grupa 16.

Grupa 14. Grupa 17.

Grupa 15. Grupa 18.

89

Page 90: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Grupa 19. Grupa 20.

90

Page 91: Mikroprocesorski sistemi - Opis konačnih automata …es.elfak.ni.ac.rs/Papers/Konacni automati u boji.pdfFSM je bilo koje kolo specifično projektovano da sekvencira kroz specifini

Literatura 1. Gajski, D.D., Dutt, N.D., Wu, A.C.-H., Lin, S.Y.-L., "High-Level Synthesis An

Introduction to Chip and System Design", New York, Kluwer-Academic, 1992

2. HDL Synthesis Guide, Release 4.2, Copyright 1991-1998 Exemplar Logic, Inc.

All Rights Reserved, Exemplar Logic, Inc. 6503 Dumbarton Circle, Fremont, CA 94555, [Online], Dostupno: http://www.xilinx.com/support/library.htm

3. Softverski paket, [Online], Dostupan:

https://www.altera.com/support/software/download/altera_design/mp2_student/dnl-student.jsp 4. Xilinx Data Sheets, [Online], Dostupno: http://www.xilinx.com/support/library.htm 5. Softverski paket, [Online], Dostupan: http://www.xilinx.com/ise_eval/index.htm 6. Softverski paket, [Online], Dostupan: http://www.xilinx.com/webpack/index.htm

91