Véges állapotú gépek (FSM) tervezése

Hasonló dokumentumok
Véges állapotú gépek (FSM) tervezése

Véges állapotú gépek (FSM) tervezése

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4

Kiegészítő segédlet szinkron sorrendi hálózatok tervezéséhez

Digitális technika VIMIAA02

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika VIMIAA02

Megoldás Digitális technika I. (vimia102) 4. gyakorlat: Sorrendi hálózatok alapjai, állapot gráf, állapottábla

5. Hét Sorrendi hálózatok

SZORGALMI FELADAT. 17. Oktober

Digitális technika házi feladat III. Megoldások

Összetett feladatok megoldása

Szekvenciális hálózatok és automaták

Adatfeldolgozó rendszer tervezése funkcionális elemekkel

Digitális technika - Ellenőrző feladatok

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Újrakonfigurálható eszközök

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Dr. Oniga István DIGITÁLIS TECHNIKA 8

10. Digitális tároló áramkörök

Számlálók és frekvenciaosztók Szinkron, aszinkron számlálók

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika VIMIAA01 5. hét

Számlálók, adatfeldolgozó egységek

Állapot minimalizálás

D I G I T Á L I S T E C H N I K A Gyakorló feladatok 3.

Digitális technika VIMIAA01 5. hét Fehér Béla BME MIT

Kombinációs hálózat. sorrendi hálózat. 1. ábra

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Irányítástechnika I. Dr. Bede Zsuzsanna. Összeállította: Dr. Sághi Balázs, egy. docens Dr. Tarnai Géza, egy. tanár

Digitális technika VIMIAA02 7. hét Fehér Béla BME MIT

Digitális technika VIMIAA02 7. hét

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

6. hét: A sorrendi hálózatok elemei és tervezése

Mérési jegyzőkönyv. az ötödik méréshez

Gépészmérnöki és Informatikai Kar Automatizálási és Kommunikáció- Technológiai Tanszék

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

1. Az adott kapcsolást rajzolja le a lehető legkevesebb elemmel, a legegyszerűbben. MEGOLDÁS:

Logikai áramkörök. Informatika alapjai-5 Logikai áramkörök 1/6

Áramkörök elmélete és számítása Elektromos és biológiai áramkörök. 3. heti gyakorlat anyaga. Összeállította:

LOGSYS LOGSYS SZTEREÓ CODEC MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió

Digitális technika VIMIAA01

Digitális technika VIMIAA02

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg. Olvasható aláírás:...minta VIZSGA...

Digitális technika VIMIAA01

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

Digitális Rendszerek (BSc)

A/D és D/A konverterek vezérlése számítógéppel

DIGITÁLIS TECHNIKA feladatgyűjtemény

Hardver leíró nyelvek (HDL)

4. KOMBINÁCIÓS HÁLÓZATOK. A tananyag célja: kombinációs típusú hálózatok analízise és szintézise.

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Verilog HDL ismertető 4. hét : hét dia

Digitális technika VIMIAA02 2. EA Fehér Béla BME MIT

DIGITÁLIS TECHNIKA (VIMIAA02)

8.3. AZ ASIC TESZTELÉSE

DIGITÁLIS TECHNIKA Dr. Lovassy Rita Dr. Pődör Bálint

Készítette: Oláh István mestertanár

Digitális technika VIMIAA hét

Verilog ismertető (Szántó Péter, BME MIT, )

hét Sorrendi hálózatok tervezési lépései: szinkron aszinkron sorrendi hálózatok esetén

1. Kombinációs hálózatok mérési gyakorlatai

Digitális hálózatok. Somogyi Miklós

2. tartály tele S3 A tartály tele, ha: S3=1 I tartály tele S5 A tartály tele, ha: S5=1 I 0.4

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Digitális technika VIMIAA hét

Verilog HDL ismertető

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

Számításelmélet. Második előadás

Széchenyi István Egyetem. dr. Keresztes Péter DIGITÁLIS HÁLÓZATOK ÉS RENDSZEREK

Dr. Oniga István DIGITÁLIS TECHNIKA 4

Digitális technika (VIMIAA02) Laboratórium 5.5

Digitális rendszerek. Mikroarchitektúra szintje

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Karakteres LCD kijelző használata MiniRISC processzoron

ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA VILLAMOSIPAR ÉS ELEKTRONIKA ISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ A MINTAFELADATOKHOZ

Szekvenciális hálózatok Állapotdiagram

Számítógépes Hálózatok. 5. gyakorlat

Szomszédos kódolás szinkron hálózatok esetén

2. Elméleti összefoglaló

Hobbi Elektronika. A digitális elektronika alapjai: Kombinációs logikai hálózatok 1. rész

A Gray-kód Bináris-kóddá alakításának leírása

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

IRÁNYÍTÁSTECHNIKA I.

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István

Mikrorendszerek tervezése

Átírás:

Véges állapotú gépek (FSM) tervezése F1. A digitális tervezésben gyakran szükséges a logikai jelek változását érzékelni és jelezni. A változásdetektorok készülhetnek csak egy típusú változás (0 1, vagy 1 0) jelzésére, de lehetséges minden típusú jelváltás egyetlen áramkörön belüli észlelése és jelzése is. A feladatban egy felfutó él detektort tervezünk. Az X bemenőjel az órajellel szinkron működik (azaz teljesül az előkészítési és tartási idő feltétel), és tetszőlegesen változhat, azaz lehet rajta 1, 2, 3, vagy több órajelnyi, bármilyen hosszú magas vagy alacsony pulzus is. Tervezze meg azt a szinkron működésű FSM-et, amely biztosítja, hogy az X bemenőjel 0 1 váltására a DX kimenet pontosan 1 órajel széles pulzussal reagál. F1.a Tervezze meg az áramkört hagyományos módon, kézi módszerrel előállítva a szükséges függvényeket, állapotkódolást! Rajzolja fel az áramkört! Az előírt működést az alábbi idődiagram szemlélteti, az X jel 0 1 átmeneteit az a,b,c,d,e,f,g órajel felfutó éleknél érzékelve, azaz a korábbi X=0 értékhez képest X=1: A feladat megoldásánál az előzetes állapotdiagramból érdemes kiindulni. A tervezett FSM Moore modell szerinti lesz, azaz a kimenet csak az állapotregiszter értékétől függ. A feladat megoldása során gondoskodnunk kell arról, hogy valóban csak az érvényes 0 1 átmeneteket jelezzük, tehát a bekapcsolás utáni vagy a RESET alatti folyamatos X=1 esetben ne adjunk ki felfutó élet jelző kimeneti pulzust. Ennek figyelembe vételével a felfutó él detektor állapot diagramja a következő: Bekapcsolás vagy RESET hatására az A kezdeti állapotba kerül. Ha a bemenetei jel értéke 0, akkor átlép a B állapotba (a kimenet ez alatt 0 marad) és várja a 0 1 átmenetet. Ha azonban a bekapcsolás vagy a RESET ideje alatt a bemenet folyamatosan 1 volt, akkor az A állapotból a D állapotba lép, mert ahhoz, hogy érvényes 0 1 átmenetet detektálhasson, legalább egy 0 állapotnak is kell lennie. Így az állapot diagramunk 4 állapotot tartalmaz. Vizsgáljuk meg, esetleg lehetséges-e egyes állapotok összevonása: Két állapotra (ezek az A és D) láthatóan a kimenetek értéke azonosan 0, továbbá a következő állapotok is azonosak, a bemenet különböző értékeire. X=0-ra B és X=1-re D. Ezért ez a két

állapot összevonható. Az új összevont állapotot A-val jelölve az egyszerűsített állapot diagram a következő (A RESET jel hatása természetesen öröklődött): Az előzetes állapot átmeneti tábla: Aktuális állapotok Következő állapot és aktuális kimenet, ha X bemenet = 0 Következő állapot és aktuális kimenet, ha X bemenet = 1 A B/0 A/0 B B/0 C/0 C B/1 A/1 Három állapot szükséges, a fenti kimeneti értékekkel. Láthatóan Moore modell szerint működik, hiszen az állapot átmeneti tábla egy-egy sorában (tehát ugyanazokban az állapotokban) csak azonos kimeneti értékek fordulnak elő. Ezért is írtuk a kimeneti értéket az állapotot jelző körön belül. Figyeljük meg, hogy az állapot diagramba írt B/0, C/1 stb. jelzések az AKTUÁLIS állapotot és az AKTUÁLIS kimenetet jelentik, míg az állapot átmeneti tábla celláiba írt értékek a KÖVETKEZŐ állapotot, de az AKTUÁLIS kimenetet jelzik (a C állapot sorában a B/1 ill. A/1 bejegyzések)! A 3 állapot 2 bites állapotregisztert igényel. Az állapotkódolás legyen A=00, B=01, C=10. A feladatmegoldás lényegi része eddig tartott. Ha jól értelmeztük a feladatot és helyesen rajzoltuk fel az állapotdiagramot, továbbá az előzetes állapottáblát, akkor a további lépések, bár fontosak, de már csak a részletes kidolgozást jelentik, tartalmilag nem adnak újat a munkához. Ezután a kódolt állapot átmeneti tábla: Állapot neve A B C Bemenet state next_state Kimenet X [1] [0] [1] [0] DX 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1

A kódolt állapot átmeneti táblából az állapot átmeneti függvény és a kimeneti függvény kiolvasható és felrajzolható. Például az utolsó oszlop alapján a kimenet a C állapotban mindig 1, természetesen X-től függetlenül (Moore modell!). Ez egy 2 mintermet tartalmazó szorzatkifejezés, melyben az X bemenet értéke közömbös, tehát egyszerűsíthető: DX = state[1] * /state[0] * /X + state[1] * /state[0] * X = state[1] * /state[0] MEGJEGYZÉS: Felmerülhetne a DX = state[1] egyszerűsítés is, azonban biztonsági okokból meghagyjuk a C állapot teljesen specifikált kódját. Az 11 állapotkód ugyanis nem használt, és ha esetleg véletlenül, valamely külső hatásra abba az állapotba lépne a vezérlő, akkor a DX = state[1] egyúttal aktív kimenetet is generálna, ami hibás jelzést jelentene. A következő állapot logika függvénye a next_state[0] bitre nagyon egyszerű lesz. Ha X=0, akkor a következő állapot mindig B egyébként pedig A vagy C. Láthatóan a next_state[0] az X invertáltja. next_state[0] = /X A következő állapot logika függvénye a next_state[1] bitre sem bonyolult. Egyetlen esetben 1, amikor B állapotba lépve az X továbbra is 1 értékű. next_state[1] = X */state[1] * state[0]) F1.b Tervezze meg az áramkört Verilog HDL specifikáció alapján, a nyelvi elemek legkedvezőbb alkalmazásával! Túl sok optimalizációs lehetőség nem adódik. Ha már manuálisan elkészítettük a részletes logikai függvényeket, talán az a legegyszerűbb, ha ezeket írjuk be a kódba is. Definiáljuk az állapotváltozót, state[1:0], az őt vezérlő következő állapot logika kimeneti változóját, next_state[1:0] és felírjuk a függvényeket. Az állapotváltozó egy törölhető, minden órajelben frissített 2 bites regiszter.

A következő állapot logika leírása lehetséges lenne egy case szerkezettel, de ebben az esetben nem segít sokat A felfutó él detektor működésének ellenőrzése szimulációval:

SZORGALMI FELADAT F1.c Tervezze meg az áramkört azzal a feltételezéssel, hogy a feladat egy csúszó ablakos mintafelismerés, ahol a felismerendő minta 2 bites értékre a 01 bitvektor, (a 0 a korábban érkezett mintavétel). Miben különbözik ez a korábbi verzióktól? Jelentős a különbség. Más az áramkör, lényegesen egyszerűbb. A feladat előírása alapján közvetlenül definiálható. Nincs állapot átmeneti logika, mert a 2 bites shiftregiszter miatt ez automatikusan, implicit módon meghatározott, követi a bemeneti X jel változási szekvenciáit. Ha hosszabb ideje X=0, akkor 00-ban vár és felfutó élre 10 lesz, további X=1-re átlép az 11 állapotba és tartja, majd lefutó élre 01 állapoton keresztül visszatér a 00 állapotba. A 2 bites (jobbra léptető) shr[1:0] shift regiszteben a következő állapot mindig shr[1]<=x, shr[0] <=shr[1], a logika egyszerű vezetékezés. Figyeljük meg az shift regiszter 11 reset állapotát, ami biztosítja a minden helyzetben történő helyes indulást. A bekapcsolási vagy RESET esetén fennálló X=1 bemeneti jel hatását csak így tudjuk kiküszöbölni. Ha reverse enginering módszerrel visszafejtjük az áramkör működését, állapot regiszterként a shiftregisztert tekintve, akkor azt tapasztaljuk, hogy az áramkörben mind a 4 lehetséges állapot használatban van. Az extra állapot elfogadása teszi lehetővé az állapot átmeneti logika hiányát. Tehát egy 3 állapottal jellemezhető működést 4 állapot használatával realizálunk! Ezt, ha értelmesen megindokoljuk, még a vizsgán is el tudjuk fogadni. Ha jobban megvizsgáljuk az állapotdiagramot, akkor látható, hogy a 00/0 állapot és a 01/0 állapot egymással ekvivalens, ezért összevonható lenne. Mindkettő állapot esetén ugyanis a kimeneti jel értéke azonos, és a bemenet adott értékére (0 vagy 1) azonosan viselkednek, azaz ugyanabba a következő állapotba lépnek. Ezzel visszajutnánk a feladat előző megoldásához, de szükségünk lenne egy állapot átmeneti logikára. Értékelésünk szerint ez az áramkör minden szempontból kedvezőbb az előzőnél.

F2. Mintafelismerő áramkör. A feladat a bemeneten sorosan érkező bitsorozatban egy adott bitminta felismerése. Amennyiben a legutolsó 4 beérkezett bit az 1101 volt, akkor azt a kimeneten az utolsó bit beérkezésével egyidejűleg jelezzük, egyébként a kimenet nulla. F2.a Közvetlen állapotgépes megoldás, azaz a beérkező bitek alapján egy véges állapotú gép végzi a felismerést. Ebben az esetben a kimenet már az első bit megérkezésekor helyesen jelez. A mintafelismerők fontos csoportját jelentik a FSM egységeknek. Tulajdonképpen a véges állapotú automaták egyszerűsített reprezentációi. A mintafelismerés történhet Mealy automatával, amikor a beérkező bittel azonos időben már jelezzük is a találatot (az azonnali kimeneti jelet az állapot átmeneti nyílra írjuk), vagy Moore automatával, amikor kimeneti jelzés az állapotkódból következik és csak az órajel felfutó éle után jelenik meg. A feladatot most a Mealy állapot diagrammal rajzoljuk fel. Az állapotok jele, neve legyen most az a bitsorozat, ami addig beérkezett, amíg az adott állapotba jutottunk. Rövid magyarázat: RESET után az induló állapotban vár a rendszer. Még nem érkezett egyetlen bit sem. A várt minta az 1101 ebben a sorrendben balról jobbra (először a legnagyobb helyiértékű bit jön). Tehát amíg nullák érkeznek, a gép a kiindulási állapotban marad, a kimeneti jel értéke is 0 (ezt a nyílra írt 0/0 jelölés mutatja). Amint beérkezik egy 1 értékű bit, átlépünk az _1 jelű állapotba (Az _ karakter a korábbi tetszőleges, a mintafelismerés szempontjából viszont értéktelen bitsorozatot jelöli, azaz eddig tetszőleges számú 0 bitet.). Ha ez után egy nulla jön, visszalépünk a kiindulási állapotba. Ha az első egyes után még egy 1 bit jön, továbblépünk az _11 jelű állapotba. Mindeddig a kimenet nulla. Az _11 jelű állapotban további 1 értékű bitek jönnek, akkor ott maradunk, hiszen ennek az állapotnak a jelentése az, hogy a legutoljára beérkezett 2 bit egy 11 páros volt. Ezután az első nullára átlépünk az _110 jelű állapotba. Ha itt egy 1 értékű bit jön, akkor megérkezett egy teljes üzenet (1101), az állapot átmeneti nyílon az 1/1 jelzéssel aktiváljuk a kimenetet is. Mivel az utolsó beérkező bit 1 értékű volt, így egyből az _1 jelű állapotba lépünk, mert ez az utolsó bit már érvényes első bitje lesz a lehetséges következő mintának. Ha viszont 0 érkezett az _110 jelű állapotban, akkor ez azt jelenti, hogy 2 nulla érkezett egymás után, ami sajnos az összes eddig beérkezett biteket érvényteleníti, azaz teljesen vissza kell lépnünk a kezdőállapotba. Az állapotdiagram alapján felrajzoltuk a kezdeti állapot átmeneti táblát. Ez alapján történhet a Verilog HDL kód elkészítése. Megjegyzés: Az állapot átmeneti tábla utolsó sorában láthatóan a bemeneti INPUT jel függvényében különböző kimeneti értékek jelennek meg. Ez mutatja, hogy Mealy modell szerint tervezünk.

Az állapotdiagram és az előzetes állapottábla alapján az FSM specifikációból a Verilog HDL általános minta szerinti kód előállítható. Egyetlen modulban realizáljuk az F3a és F3b megoldást, így a kimeneti válaszok összehasonlíthatók lesznek. Az F3a megoldás előkészítése, állapotkód kijelölés, állapotváltozók. Ezt követi a már ismert általános FSM stílusban az állapotregiszter működése, az állapot átmeneti logika, és a kimeneti logika. Figyeljük meg, hogy a kimeneti logika a Mealy működési mód miatt a változói között nem csak az állapotregiszter bitjeit, hanem az INP bemeneti adatbitet is tartalmazza!

SZORGALMI FELADAT F3.b Véges memóriájú megoldás. Egy megfelelően hosszú shiftregiszter fogadja a biteket és a beérkező bittel együtt a minta felismerése logikai áramkörrel történik. Hasonlítsa össze a két megoldást egymással! A véges bemeneti memóriájú realizáció elve az ilyen mintafelismerők esetén azon alapul, hogy a minta felismeréséhez az érkező biteket egy shiftregiszterbe léptetjük. Ha az n bites minta utolsó előtti n-1 bitje már a shiftregiszterben tárolódik, akkor az éppen beérkező bittel együtt pontosan kiadják a minta bitsorozatot, ami könnyen dekódolható. A megoldásban jobbról balra léptetjük be a biteket, így a shiftregiszterben éppen a szöveges felírásnak megfelelő irányban olvashatók a bitek. Az F3b feladat Verilog HDL kódrészlete a következő (közös modulban az F3a feladattal): A két mintafelismerő áramkört közös bemeneti bitsorozattal teszteltük. Először olyan mintákat adtunk ki, amelyek nem tartalmazták a helyes bitsorozatot, ezért mindkét egység kimenete folyamatosan nulla maradt. Ezután két helyes 1101 bitsorozatot is kiadtunk, egyik esetben 000_1101_1111 beágyazással, a másik esetben 111_1101_000 környezettel. Mindkét esetben a két mintafelismerő helyesen reagált a mintákra, a szimulációs idődiagramok által megerősítve. Megjegyzés: A két realizáció Mealy típusú megoldást mutat be. Azonnal látszik a Mealy típusú realizáció egyik problémája is. Az INP jel jelen esetben az órajel fél periódusában, a lefutó órajel időpontjában vált, mert a szimulációs tesztkörnyezetben éppen így állítottuk be. Ezért a kimeneti out_f3a és out_f3b pulzusok is csak fél órajel periódusnyi hosszúak. Mindaddig, amíg az ilyen

rövidítések, csonkulások a kimeneti pulzuson nem veszélyeztetik a kimenetet feldolgozó áramkörben előírt előkészítési időt, ez nem lényeges probléma. De ha esetleg a kimenet túl későn veszi fel stabil értékét, akkor sajnos lehet, hogy a kimeneti jelet feldolgozó egység lemarad a jelzésről. Ezért javasoljuk, hogy Mealy típusú automatánál, ha a bemeneti jel nem az automata saját órajelével szinkron keletkezett (pl. külső jel), akkor feldolgozás előtt minden esetben bemeneti mintavételezéssel gondoskodjunk annak szinkronizálásáról.