Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Állapotgépek (state machines) Az állapotgép és a CPU összehasonlítása Az állapotgép és a CPU összehasonlítása Moore gép Moore gép."— Előadás másolata:

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

2 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 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 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 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: A következő kód megvalósítható CPU-ban vagy VHDL nyelven leírt állapotgépben: if a>37 and c 37 and c<7 then state <= alarm; out_a <= ‘0’; out_b <= ‘0’; out_analog <= a+b; state <= alarm; out_a <= ‘0’; out_b <= ‘0’; out_analog <= a+b;else state <= running; state <= running; end if; Ha a kódot egy CPU-ban valósítják me,g akkor kb gépi utasítást igényel Ha a kódot egy CPU-ban valósítják me,g akkor kb 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 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

3 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 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 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é 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: 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 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

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

5 A Moore gép tömbvázlata

6 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: 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 demo_process: process(clk,reset)-- Órázott folyamat begin begin if reset=‘1’ then state<=s0;-- Állapot törlése if reset=‘1’ then state<=s0;-- Állapot törlése elsif clk’event and clk=‘1’ then elsif clk’event and clk=‘1’ then case state is when s0=> if in1=‘1’ then state if in1=‘1’ then state<=s1; end if; when s1=> if in1=‘0’ then state if in1=‘0’ then state<=s2; end if; when s2=> if in1=‘1’ then state if in1=‘1’ then state<=s3; end if; when s3=> if in1=‘0’ then state if in1=‘0’ then state<=s0; end if; end case; end case; end if; end if; end process;

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

8 A Moore gép állapotábrája

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

10 Órázott folyamat Az órázott folyamat dönti el, hogy mikor kell az állapotgépnek állapotot váltania 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 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 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

11 Kombinációs folyamat A kombinációs folyamat a jelen állapottól függően rendeli hozzá a kimeneti jelekhez az értékeket 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 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

12 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ő 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 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 A későbbi szintézis szempontjából nincs különbség a két modell között

13 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 P0: process(state,in1)-- Kombinációs folyamat begin begin case state is when s0=> if in1=‘1’ then next_state if in1=‘1’ then next_state<=s1; end if; when s1=> if in1=‘0’ then next_ state if in1=‘0’ then next_ state<=s2; end if; when s2=> if in1=‘1’ then next_ state if in1=‘1’ then next_ state<=s3; end if; when s3=> if in1=‘0’ then next_ state if in1=‘0’ then next_ state<=s0; end if; end case; end case; end if; end if; end process;

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

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


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

Hasonló előadás


Google Hirdetések