Upload
hoangnga
View
226
Download
0
Embed Size (px)
Citation preview
Šta smo napravili prošli put?
09 Mar 2018 L06. Automati sa konačnim brojem stanja 2
dugmesvetlo [n+1]
svetlo [n]
svetlo [n]
trigger
Kombinaciona mreža
D-registar
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.
09 Mar 2018 L06. Automati sa konačnim brojem stanja 3
U opštem slučaju, izlaz bi mogao biti funkcija trenutnog stanja i/ili ulaza!
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
09 Mar 2018 L06. Automati sa konačnim brojem stanja 5
Tipovi FSM
• Mealy-ev automat: izlaz je funkcija trenutnog stanja i trenutne vrednosti ulaza.
• Moore-ov automat: izlaz je funkcija samo trenutnog stanja.
09 Mar 2018 L06. Automati sa konačnim brojem stanja 6
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
09 Mar 2018 L06. Automati sa konačnim brojem stanja 7
Kako realizovati automat kao digitalni sistem?
09 Mar 2018 L06. Automati sa konačnim brojem stanja 8
Q
QSET
CLR
DLogika za
sledeće stanje
CLK
RST
Ulaz
REG
FSM
Logika za izlaz Izlaz
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
09 Mar 2018 L06. Automati sa konačnim brojem stanja 9
Drugi primer – RoboAnt!
09 Mar 2018 L06. Automati sa konačnim brojem stanja 11
Ulazi (senzori):• iLEFT (leva antena)• iRIGHT (desna antena)
Izlazi (aktuatori):• oFORWARD (napred)• oTURN_LEFT (10 stepeni)• oTURN_RIGHT (10 stepeni)
Ideja: MIT
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.
09 Mar 2018 L06. Automati sa konačnim brojem stanja 13
Primer minimizacije automata
S0 S1 S2 S3 S4 S5 S6 S7
W0 S0/Z0 S2/Z1 S0/Z1 S0/Z0 S3/Z1 S3/Z1 S5/Z1 S0/Z0
W1 S1/Z1 S0/Z0 S4/Z0 S6/Z1 S4/Z0 S4/Z0 S7/Z0 S1/Z1
W2 S7/Z1 S6/Z1 S1/Z0 S0/Z1 S1/Z1 S6/Z0 S1/Z1 S0/Z1
09 Mar 2018 L06. Automati sa konačnim brojem stanja 15
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
09 Mar 2018 L06. Automati sa konačnim brojem stanja 16
Rešenje primera
09 Mar 2018 L06. Automati sa konačnim brojem stanja 17
1
0
2
3
4
5
6
7
1 – 6
0 – 7
0 – 7
2 – 5
0 – 7
1 – 6
0 – 3
1 – 6
1 – 6
2 – 3
0 – 4
1 – 6
3 – 5
4 – 7
A0 A1 A2 A3
W1 A0/Z0 A2/Z1 A0/Z1 A0/Z1
W2 A1/Z1 A0/Z0 A3/Z0 A3/Z0
W3 A0/Z1 A1/Z1 A1/Z0 A1/Z1
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
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
09 Mar 2018 L06. Automati sa konačnim brojem stanja 19
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;
09 Mar 2018 L06. Automati sa konačnim brojem stanja 20
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;
09 Mar 2018 L06. Automati sa konačnim brojem stanja 21
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;
09 Mar 2018 L06. Automati sa konačnim brojem stanja 22
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.
09 Mar 2018 L06. Automati sa konačnim brojem stanja 23
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!
09 Mar 2018 L06. Automati sa konačnim brojem stanja 24