Állapotgépek (state machines)

Slides:



Advertisements
Hasonló előadás
Boole Algebra Felhasználása
Advertisements

Digitális technika.
Memória.
Sorrendi (szekvenciális)hálózatok tervezése
Az integrált áramkörök (IC-k) tervezése
Az előadásokon oldandók meg. (Szimulációs modell is tartozik hozzájuk)
A számítógép működése II.
3. A programozás eszközei, programozás-technikai alapismeretek
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
A C nyelv utasításai. Kifejezés+ ; Utasítás printf("Hello")printf("Hello"); a=b+ca=b+c; fuggveny(a,b)fuggveny(a,b); Blokkok: több utasítás egymás után,
A mikrovezérlők Áttekintő előadás.
Programozás.
Szoftevrismeret Operációs rendszerek.
Logikai műveletek
Ez a dokumentum az Európai Unió pénzügyi támogatásával valósult meg. A dokumentum tartalmáért teljes mértékben Szegedi Tudományegyetem vállalja a felelősséget,
Optimalizálás nemklasszikus architektúrákon
Bevezetés a digitális technikába
Nat Pedellus Informatika 8. osztály óra.
Szintézis Keresztes Péter, 2005 A GAJSKI-KUHN DIAGRAM Alapelv: Rendezzük a digitális- rendszerek leírásait célok és szintek szerint.
A talajok mechanikai tulajdonságai III.
A számítógép fejlődéstörténete
Központi feldolgozó egység (CPU)
Mikroszámítógépek I 8085 processzor.
Mikroszámítógépek I 8085 processzor.
Törtek szorzása.
CISC - RISC processzor jellemzők
ISZAM III.évf. részére Bunkóczi László
Hardver alapismeretek
Egy egyszerű gép vázlata
Egy harmadik generációs gép (az IBM 360) felépítése
1 Béres Attila, osztályvezető, Elemzési és Kontrolling Osztály, Koordinációs IH, NFÜ Budapest, május 6. A monitoring és az értékelés kapcsolata.
A számítógép működése TAKÁCS BÉLA
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Hardvereszközök Hardvereszközök I.rész. Hardvereszközök CPU Memóri a Input Háttértárolók Outpu t A számítógép felépítési elve Neumann elvek: 1.Soros utasításvégrehajtás.
Információtechnológiai alapismeretek
Algoritmus. Folyamatábrák
Holnap munka-, tűzvédelem számonkérés
Magas szintű hardware szintézis
ALGORITMUSOK.
Erőforrások: Hardver Manver Szoftver.
Gyakran előforduló tervezési hibák és elkerülésük Jelek és változók Jelek és változók Bufferek és belső dummy jelek Bufferek és belső dummy jelek Vektorok.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
A számítógép felépítése
A Neumann-elvŰ számítógép
A Neumann-elvű gépek A Neumann elvek:
Egy első generációs gép (az IAS) felépítése
Apache Ant 2. gyakorlat Alkalmazásfejlesztés /2 Gyakorlat Zalatnai Csongor.
Budapest University of Technology and Economics Department of Measurement and Information Systems Monitor komponensek fejlesztése okostelefon platformra.
Mikroprocesszor.
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
IT ALAPFOGALMAK HARDVER.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
Azaz a számítógép „agya” Készítette: Balázs Gergő
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
Kontinuum modellek 2.  Közönséges differenciálegyenletek numerikus megoldásának alapjai  közönséges differenciálegyenletek  Euler módszer  Runge-Kutta.
A Számítógépek Elődei A Számítógépek Generációi Bretus Bence.
Operációs rendszerek Az operációs rendszerek működésének alapfogalmai.
Sz&p prof.
Információtechnológiai alapismeretek
Neumann elvek és a Neumann elvű számítógép felépítése
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
A számítógép felépítése
Compiler illetve interpreter nyelvek
Programozható áramkörök használata
Grosz Imre f. doc. Sorrendi áramkörök
A számítógép felépítése
A számítógép működésének alapjai
Előadás másolata:

Állapotgépek (state machines) Az állapotgép és a CPU összehasonlítása Moore gép

Az állapotgép és a CPU összehasonlítása I. Az állapotgépek használatával hatékonyan lehet szabályozási feladatokat megvalósítani A Neumann-féle szerkezetben (CPU), pl. olyan műveletek kellenek, mint a előhozási (fetch) és végrehajtási ütem, adat útvonalak, ALU regiszterek, stb Egy állapotgép teljesítménye sokkal jobb, mint egy CPU-é, mivel a viselkedést leíró kód a Bool-algebrát megvalósító kapu-hálózatban jelenik meg az állapot pedig flip-flopokban van tárolva A következő kód megvalósítható CPU-ban vagy VHDL nyelven leírt állapotgépben: if a>37 and c<7 then state <= alarm; out_a <= ‘0’; out_b <= ‘0’; out_analog <= a+b; else state <= running; end if; Ha a kódot egy CPU-ban valósítják me,g akkor kb. 10-20 gépi utasítást igényel A végrehajtása különböző számú assembler utasítást igényel attól függően, hogy az if utasítás melyik útvonalat választja

Az állapotgép és a CPU összehasonlítása II. A CPU-nál tehát nem határozható meg egy pontos végrehajtási idő, helyette minimum és maximum végrehajtási időtartamot kell használni Ha ugyanezt a kódot kapukkal és flip-flopokkal valósítják meg, akkor a végrehajtás egy órajel ciklusig tart Következésképpen az állapotgépes megvalósítás teljesítménye és időbeli meghatározottsága lényegesen jobb, mint a CPU-belié Az állapotgép két ütemben működik: első ütemben az új állapotot kiszámítja második ütemben az új állapotot betölti egy regiszterbe A következő állapot kiszámításának időigénye határozza meg az állapotgép sebességét Minden egyes órajelnél frissítik a regisztereket Majd elkezdődik a következő állapot kiszámítása, aminek be kell fejeződnie, mielőtt a következő órajel megérkezik, hogy amikor a regisztereket frissíteni kell, a belső jelek ismét stabil állapotban legyenek

Az állapotgépek típusai Két alapvető típus: Mealy gép a kimenete a jelenlegi állapotának és az összes bemenet függvénye mindig egy órajel ciklus alatt működik azonnal változtatja a kimeneteit, amint változnak a bemenetek Moore gép a kimenete csak a jelenlegi állapotának függvénye először az állapotát kell megváltoztatnia, azaz várnia egy órajel ciklust, mielőtt a kimeneti értékei megváltoznak

A Moore gép tömbvázlata

A Moore gép elemzése I. Példa: legyen négy állapot: S0, S1, S2 és S3, a hozzájuk tartozó kimeneti értékek rendre: “0000”, “1001”, “1100” és “1111”, a VHDL kód: entity pelda is port(clk,in1,reset: in std_logic; out1: out std_logic); end pelda; architecture moore of pelda is type state_type is (s0,s1,s2,s3); -- Állapot bejelentés signal state: state_type; begin demo_process: process(clk,reset) -- Órázott folyamat if reset=‘1’ then state<=s0; -- Állapot törlése elsif clk’event and clk=‘1’ then case state is when s0=> if in1=‘1’ then state<=s1; end if; when s1=> if in1=‘0’ then state<=s2; end if; when s2=> if in1=‘1’ then state<=s3; end if; when s3=> if in1=‘0’ then state<=s0; end if; end case; end if; end process;

A Moore gép elemzése II. Folytatás: output_p: process(state) -- Kombinációs folyamat begin case state is when s0=> out1<=“0000“; when s1=> out1<=“1001“; when s2=> out1<=“1100“; when s3=> out1<=“1111“; end case; end process; end moore; Ahogy a fenti leírásból is látszik, az állapotgép három részből áll: Bejelentés (deklaráció) órázott folyamat kombinációs folyamat

A Moore gép állapotábrája

Bejelentés A bejelentés az állapotot jelenti be Bármilyen név választható az állapot számára, amely felsorolt típusú Egy célszerű választás: type state_type is (start_state, run_state, error_state); signal state: state_type;

Órázott folyamat Az órázott folyamat dönti el, hogy mikor kell az állapotgépnek állapotot váltania Ezt a folyamatot az állapotgép órája aktiválja A jelen állapottól és a bemeneti jelek állapotától függően az állapotgép minden aktív órajel változásra változtathatja az állapotot

Kombinációs folyamat A kombinációs folyamat a jelen állapottól függően rendeli hozzá a kimeneti jelekhez az értékeket Az előző példában látható, hogy az output_p folyamat érzékenységi listájában csak az állapot vektorok vannak felsorolva, ami megfelel a Moore gép kimeneti jeleire vonatkozó meghatározásnak

Moore modell három folyamattal I. Az előző, általános VHDL modellel szemben van olyan modell, amely három folyamatból áll, melyek feladata a következő egy a következő állapotot dekódolja egy hozzárendeli az állapot vektort a current_state-hez egy a kimeneti jelek értékeit állítja be Az így kialakított modell pontosan a Moore gép tömbvázlatának felel meg Némileg hosszabb VHDL kódra vezet és kicsit lassabb a szimulációja Dokumentációs szempontból előnyösebb A későbbi szintézis szempontjából nincs különbség a két modell között

Moore modell három folyamattal II. entity pelda is port(clk,in1,reset: in std_logic; out1: out std_logic); end pelda; architecture moore of pelda is type state_type is (s0,s1,s2,s3); -- Állapot bejelentés signal current_state, next_state: state_type; begin P0: process(state,in1) -- Kombinációs folyamat case state is when s0=> if in1=‘1’ then next_state<=s1; end if; when s1=> if in1=‘0’ then next_ state<=s2; end if; when s2=> if in1=‘1’ then next_ state<=s3; end if; when s3=> if in1=‘0’ then next_ state<=s0; end if; end case; end if; end process;

Moore modell három folyamattal III. P1: process(clk,reset) -- Órázott folyamat begin if reset=‘1’ then state<=s0; -- Állapot törlése elsif clk’event and clk=‘1’ then current_state<=next_state; end if; end process; P2: process(current_state) -- Kombinációs folyamat case state is when s0=> out1<=“0000“; when s1=> out1<=“1001“; when s2=> out1<=“1100“; when s3=> out1<=“1111“; end case; end moore;

A Moore gép tömbvázlata három folyamattal