Digitális technika (VIMIAA01) Laboratórium 8

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

Digitális technika VIMIAA01 9. hét

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

Digitális technika VIMIAA02 9. hét

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

A MiniRISC processzor

A MiniRISC processzor

A MiniRISC processzor (rövidített verzió)

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

A MiniRISC processzor

Digitális technika (VIMIAA02) Laboratórium 5.5

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

A PicoBlaze vezérlő alkalmazása a LOGSYS kártyán

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

Bevezetés az informatikába

Digitális technika VIMIAA hét

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

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 VIMIAA hét

Digitális technika (VIMIAA01) Laboratórium 11

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

Adatok ábrázolása, adattípusok

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

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

Számítógépek felépítése, alapfogalmak

Digitális technika (VIMIAA01) Laboratórium 11

Programozott soros szinkron adatátvitel

Digitális rendszerek. Utasításarchitektúra szintje

Digitális technika (VIMIAA02) Laboratórium 4

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

Digitális technika (VIMIAA02) Laboratórium 2

Mintavételes szabályozás mikrovezérlő segítségével

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

Aritmetikai utasítások I.

Digitális technika HF2 Elkészítési segédlet Gépi szintű programozás

Digitális technika (VIMIAA01) Laboratórium 10

Digitális technika (VIMIAA02) Laboratórium 4

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

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

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Digitális technika (VIMIAA01) Laboratórium 2

Digitális technika (VIMIAA01) Laboratórium 2

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

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Bevezetés az informatikába

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Egyszerű RISC CPU tervezése

A LOGSYS rendszer ismertetése

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

A számítógép alapfelépítése

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 12

Digitális technika (VIMIAA02) Laboratórium 12

Architektúra, megszakítási rendszerek

Egyszerű számítógép működése

Az interrupt Benesóczky Zoltán 2004

Mikrorendszerek tervezése

Elemi alkalmazások fejlesztése I.

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

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

A 32 bites x86-os architektúra regiszterei

Digitális technika VIMIAA hét

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Perifériák hozzáadása a rendszerhez

MPLAB ICD használata

Digitális technika VIMIAA hét

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

Adatelérés és memóriakezelés

Mikrorendszerek tervezése

Nagy Gergely április 4.

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

LOGSYS EGYSZERŰ ALKALMAZÁS KÉSZÍTÉSE A LOGSYS KINTEX-7 FPGA KÁRTYÁRA A XILINX VIVADO FEJLESZTŐI KÖRNYEZET HASZNÁLATÁVAL június 16. Verzió 1.

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

A mikroprocesszor felépítése és működése

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

Assembly programozás levelező tagozat

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

Számítógépek felépítése, alapfogalmak

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

Modellező eszközök, kódgenerálás

Informatika 1 2. el adás: Absztrakt számítógépek

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Digitális technika Xilinx ISE GUI használata

Verilog HDL ismertető 2. hét : 1. hét dia

The modular mitmót system. DPY kijelző kártya C API

Mikrorendszerek tervezése

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

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA01) Laboratórium 8 Fehér Béla Raikovich Tamás, Fejér Attila Digit labor 7., 2014.08.18. (v1.0) BME MIT

Lab8: A MiniRISC processzor 1. A MiniRISC processzor felépítése Adatstruktúra Vezérlőegység 2. Fejlesztői környezet A MiniRISC assembler A MiniRISC IDE Szoftverfejlesztés (példákkal) MiniRISC processzor, 2013.04.17. (v1.2) 1

Lab8: A MiniRISC processzor 8 bites vezérlőegység egyszerű alkalmazásokhoz Jól illeszkedik a LOGSYS Spartan-3E FPGA kártya komplexitásához Egyszerű felépítés, kis erőforrásigény Harvard architektúra 256 x 16 bites programmemória 256 x 8 bites adatmemória Egyszerű RISC jellegű utasításkészlet Load/store architektúra Műveletvégzés csak regisztereken 16 x 8 bites belső regisztertömb MiniRISC processzor, 2013.04.17. (v1.2) 2

Lab8: MiniRISC processzor Egyszerű RISC jellegű utasításkészlet Adatmozgató utasítások Aritmetikai utasítások (+, -, összehasonlítás) Logikai utasítások (AND, OR, XOR, bittesztelés) Léptetési, forgatási és csere utasítások Programvezérlési utasítások Operandusok: két regiszter vagy regiszter és 8 bites konstans Abszolút és regiszter indirekt címzési módok Zero (Z), carry (C), negative (N), overflow (V) feltételbitek Feltételes ugró utasítások a teszteléshez Szubrutinhívás 16 szintű hardveres verem használatával Programelágazás a teljes címtartományban Egyszintű, egyszerű megszakításkezelés MiniRISC processzor, 2013.04.17. (v1.2) 3

Lab8: A MiniRISC processzor Felépítése követi az adatstruktúra-vezérlő szemléletet Vezérlő: az utasítások beolvasása, feldolgozása és ennek megfelelően az adatstruktúra vezérlése Adatstruktúra: műveletek végrehajtása az adatokon Programmemória Adatmemória ADDR DOUT RD WR ADDR DIN DOUT Vezérlőegység MiniRISC processzor, 2013.04.17. (v1.2) Vezérlő jelek Feltétel jelek 4 Adatstruktúra MiniRISC processzor

Lab8: A MiniRISC processzor blokkvázlata A részletes felépítést lásd a Verilog forráskódban Programmemória Adatmemória ADDR DOUT DIN DOUT RD WR ADDR IRQ Debug modul PC Számláló 0x00 0x01 ugrási cím Init Break Vezérlő állapotgép Vezérlőegység MiniRISC processzor, 2013.04.17. (v1.2) Verem Z,C,N,V Fetch Decode Execute Int_req Z,C,N,V IE bit IF bit 5 IR vezérlő jelek feltétel jelek MiniRISC processzor 8 bites konstans ugrási cím MUX1 WrX Regisztertömb RdX RdY OP1 Adatstruktúra ALU MUX2 OP2

Lab8: MiniRISC processzor 1. A MiniRISC processzor felépítése Adatstruktúra Vezérlőegység 2. Fejlesztői környezet A MiniRISC assembler A MiniRISC IDE Szoftverfejlesztés (példákkal) MiniRISC processzor, 2013.04.17. (v1.2) 6

Lab8: A MiniRISC IDE és assembler A LOGSYS Spartan-3E FPGA kártyához készült MiniRISC mintarendszerre történő programfejlesztéshez egy grafikus fejlesztői környezet áll rendelkezésre (MiniRISC IDE) Az assembly nyelven megírt programok lefordítása a LOGSYS MiniRISC assemblerrel lehetséges A.NET keretrendszer 4.0 verziója szükséges a futtatáshoz (Windows 7-től az operációs rendszer része) Az assembler a processzorhoz illesztett képességű Egyszerű utasítás értelmezés Abszolút kódot generál (nincs linker) Nincs makrózás Nincs cím aritmetika Nincs feltételes fordítás Hiba esetén hibaüzenettel leáll MiniRISC processzor, 2013.04.17. (v1.2) 7

Lab8: A MiniRISC assembler használata Futtatása parancssorból: MiniRISCv2-as filename.s A filename.s assembly forrásfájlt beolvassa és ha nincs benne hiba, lefordítja és generálja a következő fájlokat filename.lst code.hex data.hex filename.svf filename.dbgdat assembler listafájl címekkel, címkékkel, azonosítókkal, utasításkódokkal szöveges fájl a Verilog kódból történő programmemória inicializáláshoz szöveges fájl a Verilog kódból történő adatmemória inicializáláshoz a LOGSYS GUI-val letölthető, a program- és adatmemória tartalmát inicializáló SVF fájl a debug információkat tartalmazó fájl Az esetleges hibaüzenetek a konzolon jelennek meg A MiniRISC assembler a MiniRISC IDE integrált részét képezi, a parancssorból való futtatása ezért nem gyakori MiniRISC processzor, 2013.04.17. (v1.2) 8

Lab8: A MiniRISC assembler használata Forrásfájl: egyszerű szövegfájl.s kiterjesztéssel A feldolgozás soronként történik: 1 sorban 1 utasítás Az assembly forráskód sorok formátuma LABEL: MNEMONIC OP1{, OP2} ; Comment LABEL Azonosító, értéke az azt követő utasítás címe MNEMONIC A végrehajtandó műveletre utaló mnemonik, pl. ADD összeadás, JMP ugrás, stb. OP1{, OP2} A művelet operandusai, OP2 nincs mindig (OP1 sincs az RTS, RTI, STI és CLI utasítások esetén) ; Comment A ; karakter a megjegyzés kezdete, melyet az assembler figyelmen kívül hagy Javaslat Minden utasításhoz írjunk megjegyzéseket A formázáshoz használjuk a TAB karaktert MiniRISC processzor, 2013.04.17. (v1.2) 9

Lab8: A MiniRISC assembler használata Kevés szabály van Az utasítások operandusai lehetnek Regiszter r0 r15 Konstans #0 #255 (ALU műveletekhez) Memóriacím 0 255 (ez is konstans, csak más célra) Indirekt cím (r0) (r15) Numerikus konstans Nincs prefix decimális 0 255 0x prefix hexadecimális 0x00 0xFF 0b prefix bináris 0b00000000 0b11111111 Karakter konstans A jelek közötti karakter (pl. # A értéke 65) Escape szekvenciák: \, \, \\, \a, \b, \f, \n, \r, \t, \v String konstans A jelek közötti karakterfüzér (pl. MiniRISC\r\n ) Csak az adat szekcióban használható MiniRISC processzor, 2013.04.17. (v1.2) 10

Lab8: A MiniRISC assembler használata Assembler direktívák DEF: azonosítót rendel konstanshoz DEF SW 0x81 ;A DIP kapcsoló periféria címe Ez nem CPU utasítás, hanem az assembler számára definiál egy helyettesítési szabályt, ami a felhasználó számára biztosítja a forráskód jobb olvashatóságát CODE: a kód szekció kezdetét jelzi Az utána lévő forráskód részből generált kód a prg. memóriába kerül DATA: az adat szekció kezdetét jelzi Az utána lévő forráskód részből generált kód az adatmemóriába kerül Az adat szekcióban csak címkék és DB direktívák lehetnek DB: az adatmemória inicializálása konstansokkal DB MiniRISC.\r\n, 0 ;Nulla végű string Csak az adat szekcióban lehet használni Numerikus, karakter és string konstansok adhatók meg utána Az egyes konstansokat vesszővel kell elválasztani egymástól MiniRISC processzor, 2013.04.17. (v1.2) 11

Lab8: A MiniRISC assembler használata Assembler direktívák ORG: kezdőcím közvetlen előírása ORG memóriacím Az utána lévő kódrész kezdőcímét állítja be Használható a kód és az adat szekcióban is Az assembler által generált LST fájlban ellenőrizhető az utasítások címe és gépi kódja, valamint a fordító által használt azonosítók értelmezése Ha a kód hibátlanul lefordult, akkor beépíthető a hardver tervbe, mint memória inicializáló adat (.HEX kimeneti fájlok) vagy letölthető a kész konfigurációra (.SVF kimeneti fájl) MiniRISC processzor, 2013.04.17. (v1.2) 12

Lab8: A MiniRISC IDE Futtatás: - Szimulátorban - Hardveren Fordítás és letöltés Végrehajtás vezérlése Forráskód szerkesztő Assembler konzol Adatmemória tartalma MiniRISC processzor, 2013.04.17. (v1.2) USRT terminál Kijelző vezérlőpanel Periféria vezérlőpanel: - LED-ek, DIP kapcsoló - Nyomógombok CPU állapot: - PC, flag-ek, verem teteje, regiszterek tartalma - Végrehajtott utasítások száma - Elfogadott megszakításkérések száma 13 GPIO vezérlőpanel

Lab8: A MiniRISC IDE A forráskód szerkesztő szolgáltatásai: Szintaxis kiemelés A hibás programsorok aláhúzása, illetve a hibaüzenet megjelenítése, ha az egérkurzor a hibás sorra mutat Lefordított program esetén az azonosítók értékének megjelenítése, ha az egérkurzor az azonosítóra mutat Letöltött program esetén A regiszter értékének megjelenítése, ha az egérkurzor a regiszterre mutat Indirekt címzésnél a cím és a memóriában tárolt adat megjelenítése, ha az egérkurzor a regiszterre mutat MiniRISC processzor, 2013.04.17. (v1.2) 14

Lab8: A MiniRISC IDE A legördülő menüből kiválasztható, hogy a program A szimulátorban fusson (ez mindig rendelkezésre áll) A csatlakoztatott hardveren fusson (LDCxxx letöltőkábel) Választás csak akkor lehetséges, ha program nem fut Szimulátor Órajelciklus pontossággal szimulálja az FPGA áramkörben megvalósított processzoros rendszert A program végrehajtása itt lassabb, mint a hardveren Kb. 400000 utasítás/s kb. 1,2 MHz rendszerórajel frekvencia A MiniRISC mintarendszerben lévő perifériák nagy része a szimulátorban is elérhető (ami nincs: DMA, VGA, PS/2) Futtatás hardveren Ha van FPGA kártya csatlakoztatva a számítógéphez MiniRISC processzor, 2013.04.17. (v1.2) 15

Lab8: A MiniRISC IDE A program a Compile (, F5) gombbal fordítható le A hibaüzenetek a konzolban jelennek meg A hibás programsorok pirossal aláhúzásra kerülnek A lefordult program a Download (, F6) gombbal tölthető le Hardveren történő futtatás esetén ha még nincs felkonfigurálva az FPGA, akkor először ez történik meg A program futása megáll a 0x00 címen (reset vektor) A program végrehajtásának vezérlése Run (, F7): a program végrehajtásának folytatása Break (, F8): a program futásának felfüggesztése, a következő végrehajtandó utasítást sárga kiemelés jelzi Step (, F10): az aktuális utasítás végrehajtása, a program futása megáll a következő utasításnál MiniRISC processzor, 2013.04.17. (v1.2) 16

Lab8: A MiniRISC IDE A program végrehajtásának vezérlése Auto step ( ): a Step parancs automatikus kiadása A gyakoriság a Debug menüben állítható be Az automatikus léptetés a Break paranccsal állítható le Reset (, F9): reset jel kiadása a processzoros rendszernek Stop ( ): a program futtatásának befejezése Ezután ismételt programletöltés szükséges Töréspont elhelyezése a szerkesztőben a margóra történő kattintással lehetséges A töréspontot piros kör jelzi a margón Töréspontra futáskor a program végrehajtása megáll Lényegében egy Break parancs kiadása történik meg hardveresen MiniRISC processzor, 2013.04.17. (v1.2) 17

Lab8: A MiniRISC IDE A processzor állapotának és az adatmemória tartalmának módosítása, illetve a perifériák vezérlése csak felfüggesztett programvégrehajtás (break állapot) esetén lehetséges Processor state panel: a processzor állapota Programszámláló (PC) értéke Flag-ek (Z, C N, V, IE, IF) értéke (IF csak olv.) Verem tetejének értéke (csak olvasható) Regiszterek értéke A végrehajtott utasítások száma Az elfogadott megszakításkérések száma Alap perifériák vezérlőpanelje A LED-ek, a kapcsolók és a nyomógombok állapotát jeleníti meg Biztosítja a perifériák regiszterszintű vezérlését MiniRISC processzor, 2013.04.17. (v1.2) 18

Lab8: A MiniRISC IDE Memory ablak A 128 x 8 bites adatmemória tartalmát jeleníti meg Az egyes adatbájtokra kattintva azok módosíthatók A tartalom fájlból betölthető (Send file gomb), illetve fájlba elmenthető (Save to file gomb) Display ablak A hétszegmenses és a pontmátrix kijelzők vezérlését biztosítja A kijelzők szegmenseire kattintva azok ki- és bekapcsolhatók A szövegdobozokban megadható az egyes szegmensek értéke, illetve a megjelenítendő karakter MiniRISC processzor, 2013.04.17. (v1.2) 19

Lab8: A MiniRISC IDE USRT terminal ablak Soros kommunikációs lehetőséget biztosít A leütött karakterek elküldésre kerülnek, a vett karakterek megjelennek a terminál ablakban Lehetőség van fájl elküldésére és a vett adat fájlba mentésére is GPIO ablak A GPIO perifériák állapotát jeleníti meg és ezek regiszterszintű vezérlésére szolgál (kimeneti adat, aktuális állapot, irány) Ábra az FPGA kártya bővítőcsatlakozóinak lábkiosztásáról MiniRISC processzor, 2013.04.17. (v1.2) 20

Lab8: A programfejlesztés lépései Gondoljuk át a problémát és készítsünk vázlatos elképzelést, hogy mit és hogyan szeretnénk megoldani Fogalmazzuk meg a megoldást a MiniRISC assembly utasítások szintjén és készítsük el a forráskódot A begépelt programot fordítsuk le a Compile (F5) paranccsal Az esetleges hibákat javítsuk ki A hibátlanul lefordult programból generált SVF fájl letölthető a Download (F6) paranccsal Ellenőrizzük a program működését debug módban a MiniRISC IDE szolgáltatásainak segítségével MiniRISC processzor, 2013.04.17. (v1.2) 21

Lab8_1 feladat: Bevezető feladatok A MiniRISC processor programozásának gyakorlásához a félév első heti egyszerű Verilog HDL alapú bevezető feladatokat ismételjük meg gépi szintű programozással. A feladatok így ismertek, csak egy kicsit más szemlélet szükséges a realizációhoz Sok esetben az új megközelítés sokkal egyszerűbb, sok esetben itt ütközünk nehézségekbe Sok sikert a gépi szintű programozáshoz! MiniRISC processzor, 2013.04.17. (v1.2) 22

Lab8_1 feladat: Bevezető feladatok Lab8_1_x feladatok: Az SW DIP kapcsolókon beállított érték beolvasása (feldolgozása) és kiírása az LD LED-ekre A MiniRISC rendszernek perifériája a LD és SW eszköz, a dokumentációban adott funkcionalitással Az LD periféria címe 0x80, a 8 bites kimeneti regiszter írható, és visszaolvasható (ez sokszor praktikus, bár itt most nem használjuk ki) Az SW periféria címe a 0x81, a 8 bites bemeneti regiszter csak olvasható A programok : Egyszerű, végtelen ciklusban beolvassuk a kapcsolók állapotát, SW (0x81) (feldolgozzuk), és kiírjuk a LED-ekre LD (0x80) A programok kezdődhetnek a 0x00 címen (reset vektor) MiniRISC processzor, 2013.04.17. (v1.2) 23

Lab8_1 feladat: Bevezető feladatok Szükséges adminisztrációs műveletek: Adatmozgatások és végtelen ciklus szervezése feltétel nélküli ugrással Funkcionális műveletek: az aktuális feladattól függően Indítsuk el a a MiniRISC IDE fejlesztői környezetet A Lab8_1.s új forrás létrehozásakor az IDE rákérdez a használni kívánt perifériákra. A párbeszédablakban felsorolja az összes rendszerperifériát, amiből a jelölő négyzetek kiválasztásával a perifériaregiszterek neveinek deklarálása automatikusan része lesz a forráskódnak. MiniRISC processzor, 2013.04.17. (v1.2) 24

Lab8_1 feladat: Bevezető feladatok A LD és SW perifériák kiválasztásával a szükséges regiszter deklarációk megjelennek a szerkesztőablakban. A MiniRISC IDE két üzemmódban használható: Ha nincs LOGSYS kártya csatlakoztatva, akkor a programfejlesztés csak szimulátor módban lehetséges: Ha van LOGSYS kártya is csatlakoztatva, akkor a programfejlesztés akár szimulátor módban, akár közvetlen valódi hardver programteszteléssel is lehetséges. A legördülő menü alapján a kívánt mód választható: MiniRISC processzor, 2013.04.17. (v1.2) 25

Lab8_1 feladat: Bevezető feladatok A feladatok megoldását jelentő utasítássorozatok a szerkesztőablakba begépelhetők. Lab8_1_1: SW átmásolása LD-re Lab8_1_2: SW kettes kompl. másolása LD-re Lab8_1_3: SW 8 bitjén adott két 4 bites érték összegének kijelzése a LD-re. Milyen megoldási lehetőségeket érdemes megvizsgálni? Az elkészített forrásokat fordítsuk le, ellenőrizzük lépésenkénti végrehajtással, majd a LOGSYS kártyát csatlakoztatva és kiválasztva, valós idejű futtatást is alkalmazva A tapasztalatokat jegyezzük fel a Lab8_Eredmények kérdőíven. MiniRISC processzor, 2013.04.17. (v1.2) 26

Lab8_2 feladatok A labor további idejében a következő feladatok közül válasszon és készítse el a hozzá tartozó assembly programot: Lab8_2_1: Ellenőrző összeg generálása memóriában lévő adatvektorra Lab8_2_2: MAX/MIN elem keresése adatvektorban Lab8_2_3: Előjeles adatvektor elemei összegének meghatározása Lab8_2_4: Előjeles adatsorozat 4 pontos átlagoló szűrése Lab8_2_5: Előjeles adatsorozat 3 pontos medián szűrése Lab8_2_6: Fibonacci MiniRISC processzor, 2013.04.17. (v1.2) 27

Lab8_2_1 feladat Lab8_2_1: Ellenőrző összeg generálása memóriában lévő adatvektorra (pl. NEPTUN kód), és ellenőrzése (vétel). A távolsági adatátvitelek során az ellenőrző összeg generálása a forrásoldalon az adatvektor elemeinek modulo 256-os összeadásával generálható, és a végösszeg kettes komplemensét az üzenethez fűzzük. A távoli helyen a vételnél ugyanezt az összegzés műveletet végezzük el, az ellenőrzőösszeget is hozzáadva. Amennyiben az ellenőrzés eredménye nulla, az adás-vétel hibátlan volt. MiniRISC processzor, 2013.04.17. (v1.2) 28

Lab8_2_2 feladat Lab8_2_2: A memóriában található egy előjel nélküli / előjeles adatsorozat. Kezdőcíme: r0-ban, mérete (<50) r1-ben. A feladat az adatsorozat MAX és MIN értékeinek megtalálása, és ezen értékek és pozíciójuk tárolása r2/r3 és r4/r5 regiszterpárokban. MiniRISC processzor, 2013.04.17. (v1.2) 29

Lab8_2_3 feladat Lab8_2_3: A memóriában található egy előjeles adatsorozat. Kezdőcíme: r0-ban, mérete (<50) r1- ben. A feladat az adatsorozat elemei összegének kiszámítása és eltárolása az r2/r3 regiszterpárban. MiniRISC processzor, 2013.04.17. (v1.2) 30

Lab8_2_4 feladat Lab8_2_4: A memóriában található egy előjeles adatsorozat. Kezdőcíme: r0-ban, mérete (<50) r1- ben. A feladat az adatsorozat elemeinek simítása, lineáris szűrése, 4 pontos mozgó átlagolást használva (Gyak. 5. F2 feladat szoftver verziója): y(t) = 1/4*(x(t-3) + x(t-2) + x(t-1) + x(t)) Az algoritmus az eredményeket az eredeti adatpontok után, egy új memória területre mentse el (pl. a 128 bájtos adatmemória felső felébe) MiniRISC processzor, 2013.04.17. (v1.2) 31

Lab8_2_5 feladat Lab8_2_5: A memóriában található egy előjeles adatsorozat. Kezdőcíme: r0-ban, mérete (<50) r1- ben. A feladat az adatsorozat elemeinek simítása, nemlineáris szűrése, 3 pontos medián szűrést végezve (Gyak. 7. F2.c feladat, (MIN,MED,MAX)): y(t-1) = MED(x(t-2) + x(t-1) + x(t)) Az algoritmus az eredményeket az eredeti adatpontok után, egy új memória területre mentse el (pl. a 128 bájtos adatmemória felső felébe) MiniRISC processzor, 2013.04.17. (v1.2) 32

Lab8_2_6 feladat Lab8_2_6: Készítse el a Fibonacci sorozat generáló programot, 16 bites bináris aritmetikát használva. Az értékeket a memóriába írja be, 16 bites formátumban, amíg lehetséges. Milyen számformátum esetén tudja a legtöbb generált elemet elhelyezni a 128 bájtos adatmemóriában? MiniRISC processzor, 2013.04.17. (v1.2) 33

Lab8_2 feladatok A megfelelő feladat kiválasztása és elkészítése után válaszoljon a Labor 8 Eredmények kérdőív kérdéseire. MiniRISC processzor, 2013.04.17. (v1.2) 34