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

Hasonló dokumentumok
Digitális technika (VIMIAA02) Laboratórium 5.5

Összetett feladatok megoldása

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4

SZORGALMI FELADAT. 17. Oktober

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Digitális technika (VIMIAA01) Laboratórium 4

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

Digitális technika VIMIAA01 5. hét

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

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

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 1

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 (VIMIAA02) Laboratórium 1

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

Adatfeldolgozó rendszer tervezése funkcionális elemekkel

DIGITÁLIS TECHNIKA I

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

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

Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350. Mérési feladatok az 1., 2. és 3. mérési alkalomhoz

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnö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 (VIMIAA02) Laboratórium 2

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb...

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

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

Újrakonfigurálható eszközök

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Digitális mérések PTE Fizikai Intézet

DIGITÁLIS TECHNIKA feladatgyűjtemény

Digitális technika (VIMIAA01) Laboratórium 2

Újrakonfigurálható eszközök

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

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

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET

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

Digitális technika (VIMIAA01) Laboratórium 2

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

Digitális technika VIMIAA01 9. hét

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

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Digitális technika Laboratórium 6.

14. TARTALOM FUTTATÁSA A FEJLESZTŐLAP HÉTSZEGMENSES KIJELZŐJÉN

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

Digitális technika VIMIAA02 7. hét

Analóg-digitál átalakítók (A/D konverterek)

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 II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Előadó: Nagy István (A65)

4. Fejezet : Az egész számok (integer) ábrázolása

Máté: Számítógép architektúrák

Digitális jelfeldolgozás

DIGITÁLIS TECHNIKA I PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ HOGYAN HASZNÁLHATÓ EGY 4/16-OS DEKÓDER 3/8-AS DEKÓDERKÉNT? D 2 3 DEKÓDER BŐVÍTÉS

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

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...

EB134 Komplex digitális áramkörök vizsgálata

Programozott soros szinkron adatátvitel

Digitális technika VIMIAA01

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

5. Hét Sorrendi hálózatok

Dr. Oniga István DIGITÁLIS TECHNIKA 4

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

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika VIMIAA01

Digitális technika (VIMIAA01) Laboratórium 9

Dr. Oniga István DIGITÁLIS TECHNIKA 9

7.hét: A sorrendi hálózatok elemei II.

A fealdatot két részre osztjuk: adatstruktúrára és vezérlőre

DIGITÁLIS TECHNIKA II

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Számítógép felépítése

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

Digitális technika VIMIAA02 1. EA

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

Digitális elektronika gyakorlat

Újrakonfigurálható eszközök

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

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

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

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Digitális technika VIMIAA02

Nyolcbites számláló mintaprojekt

Számrendszerek. Bináris, hexadecimális

Logikai tervezés gyakorlatok (2017.)

Assembly programozás: 2. gyakorlat

2.3. Soros adatkommunikációs rendszerek CAN (Harmadik rész alapfogalmak II.)

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

A gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók.

Átírás:

Számlálók, adatfeldolgozó egységek F1. A LOGSYS kártya órajel generátora 16MHz frekvenciájú szimmetrikus négyszögjelet állít elő. Egy digitális stoppert szeretnénk készíteni. A stopper alapvetően a hagyományos mechanikus stopperekhez hasonló felhasználói interfésszel (egygombos kezelés) rendelkezzen, START-STOP- RESET, de képes legyen századmásodperc felbontással mérni, majdnem 10 perc időtartamig. F1.a Első lépésként készítsen egy ütem generátort, amely 0,01 mp gyakorisággal előállít egy 1 órajel széles pulzussorozatot az időalap órajel generátor 16MHz frekvenciájú jeléből. A feladat megoldásánál az időalap kiszámításából kell kiindulnunk. A 16MHz-es alapórajel periódusideje 62,5ns. A 0,01 mp-es ütemező jelhez egy 160000-es osztásra van szükségünk. Azaz egy bináris számlálóból pulzuskimenetű frekvenciaosztót készítünk, a modulus 160000, azaz a végérték jelzés dekódolását decimális 159999 értékre állítjuk. Ezt 18 bites bináris számlálót használva lehet a legegyszerűbben megoldani, melynek számolási tartománya 2 18-1, azaz 262143 (>159999). A decimális 159999 érték bináris megfelelője 10_0111_0000_1111_1111, azaz hexadecimálisan 18 h270ff, ezt az értéket kell a végérték jelzés figyeléséhez beállítani. Megjegyzés: 1. Lehetséges lenne 4 db 4 bites decimális BCD számláló és 1 db 4 bites bináris számláló kaszkádosításával is pontosan beállítani a 159999 osztási periódust, de ez a megoldás nagyon bonyolult lenne tervezési és megvalósítási szempontból is. Az időalap generátor Verilog kódja: Ez minden 160000.-ik órajel periódusban kiadja a tick01 nevű 62,5ns szélességű pulzust, ami engedélyezi majd a STOPPER teljes időmérő láncát egy számolási ciklusra.

F1.b Tervezze meg blokkszinten a stopperóra számláló láncát, ha PERC : TÍZMP_MP, TIZEDMP_SZÁZADMP formátumú kijelzést kell realizálni. Ez 5 digit, a LOGSYS kártyán esetleg éppen kijelezhető lenne... A teljes számolási lánc felépítését viszont a mérési és kijelzési formátum miatt már célszerűbb közvetlenül BCD dekadikus számlánccal felépíteni, mert így elkerülhetjük a BIN->BCD átalakítás bonyolult feladatát. A számlánc felépítéséhez 5 db azonos könyvtári BCD számláló elemet alkalmazunk, amelyet a 4 bites számlálóból alakítunk ki modulus csökkentéssel. Az 5 dekadikus helyiérték közül a TÍZMP számjegyen a számolás csak 0 5 ig terjed, ennek kezeléséről majd gondoskodni kell: 0 : 00,00 - tól 9 : 59,99 - ig F1.b Tervezze meg a szükséges számláló áramkör modulok Verilog HDL specifikációját, kialakítva a kaszkádosításhoz szükséges jeleket. Az egyszerű, törölhető felfelé számláló BCD dekadikus egység teljes Verilog HDL kódja a következő: Ebből építünk be 5 példányt, követve az egyszerű soros kaszkádosítási szabályt, ahol lehetséges. Az első fokozat engedélyező jele az állapotvezérlő RUN parancsjele és a tick01 ütemező jel.

A következő szinten, a tíz másodpercnél megtörik a dekadikus szabály, mert itt hatvanas számrendszer következik. Ezt a dekadikus számláló modulusának 6-ra csökkentésével, azaz az 5 állapot komparálásával/dekódolásával figyeljük, és két helyen avatkozunk be: egyrészt ebből származtatjuk a tick_tmp átviteljelet, másrészt ezzel a jellel kiegészítjük a vezérlő RESET pulzusának hatását, azaz 59,99- kor is nullázzuk a tíz másodperc számlálót. MEGJEGYZÉS: Természetesen itt használhatnánk a CNT10 modulhoz hasonlóan egy CNT6 modult és akkor a kétfajta modullal szabályosan folytatódhatna a számlánc felépítése, de a könyvtári elemek száma feleslegesen gyarapodna. A szimuláció könnyebb értékelhetősége érdekében bevezetünk egy 20 bites, 5 BCD digites változót, az időt és ez lesz a STOPPER kimenőjele. F1.c Tervezze meg a STOPPER vezérlő egységét, ami a START parancs 0 1 átmenetére elindítja a stoppert, a STOP parancs 0 1 átmenetére leállítja az órát. A RESET parancs pedig nullázza a számlálót, és a stoppert újra mérésre kész állapotba teszi.

A vezérlőegység két részletből áll. Az első a MOSI (a LOGSYS GUI 1 bites kimeneti adata) vezérlőjel felfutó él detektálása. A második egy 3 bites gyűrűs számláló, ami a 3 állapotot közvetlenül realizálja. Itt most az egyszerűbb felírás érdekében eltekintettünk a szokásos state <= next_state felírástól, közvetlenül a gyűrűs számlálót írjuk le, csak éppen egy state nevű változóval. A 3 bites state változó 1-az-N-ből kódolású, azaz egy-egy bitje közvetlenül a szükséges kimeneti jelet definiálja. Egy gyors szimulációs ábra a 9p59.99mp átfordulásról

A teljes terv blokkvázlata a következő (a kijelző hálózat megtervezésével nem foglalkoztunk): dig4 dig3 dig2 dig1 dig0 ou7seg in4 perc e (min) idõmultiplexált kijelzõ in3 in2 ticktmp tmp tickmp mp e (10s) (1s) e in1 tickmpt mpt e (0.1s) in0 tickmpsz mpsz e (0.01s) tick01 4 mod = 16x10 elõosztó rst (16MHz) tickmp tmp[2] tmp[0] RESET init run idle RESET=1 eou=1 eou=0 RESET RUN stopper vez. rst felfutó él figyelõ rst in rst 100 010 001 MOSI SZORGALMI FELADAT F2. Tervezzen egy adatfeldolgozó egységet, ami a két bemeneti 8 bites adatból képes kiválasztani a nagyobbikat és azt a kimenetre kapcsolni. Az adatábrázolási formátum előjel nélküli egész. F2.a Első lépésként tegyen javaslatot a tervezendő áramkörre. Milyen funkcionális egységeket használna a terv megvalósítására? Az első kérdésre a válasz egy nagyság szerint összehasonlító komparátor, aminek a kimenete egy 8 bites 2:1 méretű busz multiplexert vezérel. Legyen a két adatbemenet A[7:0] és B[7:0]. Ha ezek előjel nélküli 8 bites egész számok, akkor változtatás nélkül a komparátor bemenetére kapcsolhatók, (vagy egy kivonást végző modullal az A-B művelet utáni átvitel bit jelzi, ha A kisebb, mint B) és az A_GT_B kimenet felhasználható a kimeneti adatválasztó multiplexer vezérlésére. Az áramkör tisztán kombinációs hálózat, a kimeneti eredményt a tranziens jelterjedések lezajlása után azonnal megjeleníti. Az egyenlőség esete is beleérthető a kimenet előállításába, hiszen nincs más lehetőségünk, mint valamelyik bemeneti jelet kiadni, amelyik biztosan nem a kisebbik a kettő közül. Ez miatt a feltétel logikát bonyolítani egy kiegészítő egyenlőség vizsgálattal felesleges lenne.

F2.b Egészítse ki az áramkört úgy, hogy a bemenetére érkező adatokat sorba rendezve NAGYOBB- KISEBB módon kiadja a kimenetén. Milyen módon oldotta meg az újabb feladatot? Az előző megoldás egyszerűen kiegészíthető egy újabb, az előző áramkör kimenetét pont fordítva generáló multiplexerrel. Az egyenlőség esete itt is egyértelműen helyes kimeneti eredményként értékelhető. Olvassuk el a második megjegyzést a kódban! F2.c Az előző pontban kialakított egység felhasználásával tervezzen meg egy 3 pontos medián szűrőt. Medián szűrő: A bemeneti adatokat egy 3 fokozatú késleltető regiszter sor tárolja. A regiszterekben tárolt értékeket nagyság szerint sorba rendezve, a 3 közül mindig a középső elemet (medián) adja a kimenetre. Tesztelésként használja az elmúlt heti gyakorlat adatsorát: (Az előző héten 4 pontos átlagolással lineárisan szűrtünk.) x(0) = 21, x(1) = 19, x(2) = 22, x(3) = 20, x(4) = 27, x(5) = 22, x(6) = 20, x(7) = 21, x(8) = 18, x(9) = 22, A medián szűrő egy olyan nemlineáris szűrő, ami a bemeneti adatokat nem átlagolással (lásd előző heti feladat!), hanem egyszerű sorba rendezéssel és a középső elem kiválasztásával dolgozza fel. Az első feladat egy 3 fokozatú késleltető regiszter sor beépítése. A bemeneti x(t) adat mintáit órajelenként az R1, R2 és R3 regiszterekbe írjuk, úgy, hogy az X R1-be, az R1 R2-be, az R2 R3-ba másolódik minden órajelre. Így az R1, R2 és R3 regiszterek kimenetén mindig a legutóbbi 3 minta, azaz x(t-1), x(t-2), x(t-3) értéke lesz elérhető.

A szűrés ezeken az R1, R2, és R3-ban tárolt adatokon történik, páronkénti összehasonlítással. A SORTER modul mindig 2 adatot vizsgál és kimenetén a GT-LT viszony szerint rendezve adja ki őket. Tehát az első modul az R1 és R2-t vizsgálja és generálja a GT12, LT12 sorba rendezett adatpárost. Ezek a részeredmények még további feldolgozást, rendezést igényelnek. Ha az R1, R2 közüli kisebbet (LT12) rendezzük R3-al, akkor biztosan megkapjuk a 3 közül a legkisebbet LT123 és egy olyan eredményt, GT3LT12, ami még akár lehet a legnagyobb is. Ezért ezt újra vizsgáljuk az R1 és R2 közül nagyobbnak talált GT12-vel, ami alapján generálódik a GT123 és ennek a SORTER-nek az LT kimenetén pedig a MED123, hiszen a 3 adat közül, ha már megvan az LT123 és a GT123, akkor a maradék harmadik elem már csak a MED123 lehet. A 3 SORTER-ből álló adatfeldolgozó hálózat: A feladatkiírásban adott minta adatsorozatot alkalmazva x(0) = 21, x(1) = 19, x(2) = 22, x(3) = 20, x(4) = 27, x(5) = 22, x(6) = 20, x(7) = 21, x(8) = 18, x(9) = 22, a MEDIAN3 kimenete a következő eredményt adja:

A mintavevő regiszterek, a belső részeredmények és adatok részletes feltüntetése mutatja a rendezés folyamatát: F2.d Ha esetleg az elkészített egységet egy nagyobb méretű adatvektor (5,7,9 adat) medián szűrését vagy akár sorba rendezését elvégző feladatra szeretné használni, milyen topológiájú elrendezést kellene kialakítania? Hasonlítsa össze ezt a megoldást egy buborék jellegű rendezést végző algoritmussal? Szempontok: Erőforrás igény, végrehajtási idő, kialakítás komplexitása.. Nagyobb adatszám esetén N*(N-1)/2 SORTER egység kell, egy háromszögszerű elrendezésben. 5 adat 10, 7 adat 21, 9 adat 36 SORTER egységgel rendezhető ebben a párhuzamos felépítésben.