Aritmetikai processzor fejlesztése FPGA-n
|
|
- Zsombor Magyar
- 8 évvel ezelőtt
- Látták:
Átírás
1 Aritmetikai processzor fejlesztése FPGA-n Tartalomjegyzék Dokumentáció Olasz-Szabó Bence A feladat specifikációja Megoldási vázlat A megoldás részletezése A fejlesztési folyamat Ismerkedés a fejlesztői környezettel Az LCD kijelző vezérlésének elkészítése Köztes karakterkód létrehozása Input beolvasása PS/2 billentyűzetről Input értelmező állapotgép elkészítése Állapotok Események Az input értelmező állapotgép állapottáblája Számformátum választása a számításokhoz BCD fixpontos bináris konverzió BCD számjegyek sorrendezése Operandusok egész- és törtrészének átalakítása bináris formába Fixpontos bináris BCD konverzió Fixpontos összeadó- és kivonó modul implementálása Fixpontos szorzás implementálása Fixpontos osztás implementálása Az osztandó megfelelő hosszúságúra konvertálása Az osztás algoritmusa Az osztás algoritmusának implementálása Verilog nyelven Az osztási algoritmus értékelése Műveletek kaszkádosítása Architektúra Modulok hierarchiája Modulok funkciói A sorrendiség biztosítása a feldolgozás lépéseihez...14
2 1. A feladat specifikációja A feladatom aritmetikai processzor fejlesztése FPGA-n. A megoldásnak bemutathatónak kell lennie Altera DE2 típusú panelen egy egyszerű számológép alkalmazás formájában, ami képes a négy alapművelet elvégzésére tizedestört alakú számokon. Az operandusok bevitele a panelhez PS/2 csatlakozó segítségével illeszthető billentyűzet segítségével történik. A számítások eredménye a panelen található LCD kijelzőn jelenik meg. 2. Megoldási vázlat A feladat az alábbi fő részfeladatokra bontható: Input beolvasása a billentyűzetről Input feldolgozása és a számítás elvégzése Eredmény kijelzése A fenti 3 részfeladat megoldását külön modulok végzik, amik között az összeköttetést a legfelső szintű modul (calc_top) biztosítja. A feladat egyik nehézsége az, hogy a billentyűzetről érkező adat formátuma és az LCD kijelzőnek küldendő adat formátuma különböznek egymástól és a számításokhoz egyszerűen felhasználható adatformátumtól is. Ezért a megoldás jelentős részében a különböző adatformátumok közötti konverziót kell megoldani. Az input beolvasását végző modul (ps2_interpreter) a billentyűzetről a PS/2 formátumnak megfelelő adatot alakítja át az aritmetikai modul számára könnyebben értelmezhető formára. Ezen kívül már ez a modul kiszűri a feladat szempontjából lényegtelen input karaktereket. Továbbá ez a modul értesíti az aritmetikai modult, ha a feladat szempontjából értékes bemenet érkezett a billentyűzetről. Az input feldolgozását és az eredmény számítását végző modul az aritmetikai modul (arithmetic_controller). Ez a modul a beérkező értékes karaktereket egy állapotgép alapján feldolgozza, majd a számítások elvégzéséhez optimális formátumra alakítja és vezérli a számítások elvégzését, majd az eredményt átalakítja a kijelző modul számára megfelelő formátumra, és kezdeményezi a kijelzés frissítését. A kijelzésért felelős modul (LCD_DigitCoder) átalakítja az aritmetikai modultól kapott karaktereket az LCD kijelző adatformátumára, és frissíti a kijelzőt, amikor erre az aritmetikai modultól utasítást kap. A megoldás alapelve: a felhasználótól a billentyűzeten keresztül érkező input események hatására történik a számítások elvégzése, tisztán eseményvezérelt módon, adatáramlásos információfeldolgozási modell szerint. A megvalósítás tisztán hardveres, nincs beépített mikrovezérlő, a vezérlési feladatokat hardveresen megvalósított állapotgép látja el.
3 A fő modulokat és kapcsolataikat az alábbi ábra szemlélteti: 3. A megoldás részletezése 3.1. A fejlesztési folyamat Ismerkedés a fejlesztői környezettel A feladat megoldását az Altera Quartus II fejlesztői környezet és az Altera DE2 panel megismerésével kezdtem Az LCD kijelző vezérlésének elkészítése A fejlesztői környezet megismerése után az LCD kijelző vezérlését kellett megoldani, hogy a később készített modulok könnyen tesztelhetőek legyenek. Ehhez a feladatrészhez felhasználtam a fejlesztői panelhez tartozó DVD-n található LCD_Controller i és LCD_TEST ii modulokat, amik megoldják az LCD kijelző alacsony szintű kezelését. Az LCD_TEST modult átalakítottam úgy, hogy ne konstans szöveget írjon ki, hanem paraméterül kapja a kiírandó szöveget, ez lett az LCD_Driver modul. Az LCD_Driver modul így bemenő paraméterül a kiírandó szöveg karaktereinek tömbjeit kéri, ahol a karakterek formátuma az LCD kijelző számára értelmezhető, 9 biten tárolt karakterformátum iii.
4 Köztes karakterkód létrehozása Az LCD kijelző számára értelmezhető karakterformátum a feladat szempontjából nem optimális, mivel nem kompatibilis a PS/2 billentyűzetről érkező karakterformátummal, valamint 9 bit feleslegesen sok a feladat szempontjából, mivel csak az alábbi karakterek megjelenítésére van szükség: Számjegyek 0-9-ig Üres hely,. (pont), =, +, -, *, /, e (hiba jelzésére) Ez 18 különböző karakter, ami 5 biten kódolható a bővíthetőség szem előtt tartása mellett is. Ezért létrehoztam egy köztes karakterformátumot, amit a különböző karakter típusok és számformátumok közötti konverzió egyszerűsítésére használok. A formátummal szemben elvárás, hogy a számjegyek könnyen konvertálhatóak legyenek BCD formátumba a számításokhoz, valamint a vezérlő jelek kódjainak feldolgozása is egyszerű legyen. A formátumra a továbbiakban (és a forráskódban) SBCD formátum néven hivatkozok. Az 5 bites SBCD formátum MSB bitje alapján lehet megkülönböztetni a számjegyek kódjait a vezérlő- és megjelenítést segítő karakterek kódjaitól (a 0 MSB érték jelenti a számjegyet). Számjegy esetén a maradék 4 biten a számjegy BCD kódja található. A műveleti jelek kódjai az utolsó 2 biten különböznek egymástól, így az elvégzendő művelet könnyen dekódolható Input beolvasása PS/2 billentyűzetről A következő feladat a felhasználói bemenet beolvasása és értelmezése volt. A PS/2 billentyűzet illesztését a PS2_Controller, Altera_UP_PS2_Command_Out és Altera_UP_PS2_Data_In modulok iv végzik. A PS2_Controller a beérkező karaktereket 8 bites keyboard scan code v formában adja tovább a ps2_interpreter modulnak. A ps2_interpreter modul kiszűri az érkező karakterek közül a feladat szempontjából értékeseket, és ha érkezett ilyen karakter, akkor jelzést küld az arithmetic_controller modulnak, valamint megoldja a konverziót SBCD formátumba. A billentyűzetről érkező speciális vezérlő karakterek (ENTER, DEL, ESC) miatt az SBCD kódot itt ki kellett bővíteni. A teljes SBCD LCD PS/2 kódtábla: SBCD char SBCD code LCD char LCD code PS/2 char PS/2 code b b NUM 0 70h 0 (english keyboard) 45h 0 (hungarian keyboard) 0Eh b b NUM 1 69h 1 16h b b NUM 2 72h 2 1Eh b b NUM 3 7Ah 3 26h b b NUM 4 6Bh 4 25h
5 SBCD char SBCD code LCD char LCD code PS/2 char PS/2 code b b NUM 5 73h 5 2Eh b b NUM 6 74h 6 36h b b NUM 7 6Ch 7 3Dh b b NUM 8 75h 8 3Eh b b NUM 9 7Dh 01010b-01111b: reserved for hexadecimal characters (not implemented) (space) 10000b space b 9 46h Not needed for input. (dot) 10001b b NUM. 71h. 49h = 10010b = b Not needed for input b b NUM + 79h b b NUM - 7Bh * 10101b * b A S NUM * / 10110b / b NUM / E0h, 4Ah (other key / error) 10111b e b Unexpected key 11000b-11011b: reserved for other special characters ok 11100b Not displayed NUM ENTER E0h, 5Ah delete digit (not implemented) M D ENTER 1Ch 1Bh 7Ch 3Ah 23h 5Ah 11101b Not displayed BACKSPACE 66h delete number 11110b Not displayed DEL E0h, 71h reset 11111b Not displayed ESC 76h Megjegyzés: egy SBCD kódhoz több PS/2 kód is tartozhat, ezért lehet például a számjegyeket a NUM billentyűk segítségével is beírni.
6 Input értelmező állapotgép elkészítése Az arithmetic_controller modul a ps2_interpreter modultól kap egy 1 órajel hosszú impulzust amikor új értékes karakter érkezett a billentyűzetről (keycode_arrived jel), valamint megkapja a legutóbbi értékes karakter kódját is SBCD formátumban (keycodesbcd). Ezek alapján a vezérlő modulban egy állapotgép végzi a bemenet értelmezését, és a megfelelő események hatására kezdeményezi a műveletek elvégzését. Állapotváltás a keycode_arrived események hatására történhet, a keycodesbcd kód értelmezésére ekkor kerül sor Állapotok A bemenet értelmezése szempontjából az alábbi 6 fő állapot különböztethető meg: 0: start: reset utáni állapot 1: op1_int: az első operandus egészrészéhez tartozó számjegy érkezett 2: op1_fract: az első operandus törtrészéhez tartozó számjegy érkezett 3: operation (művelet): műveleti jel (nem előjel!) érkezett 4: op2_int: a második operandus egészrészéhez tartozó számjegy érkezett 5: op2_fract: a második operandus törtrészéhez tartozó számjegy érkezett 6: result (eredmény): op2_int vagy op2_fract állapotból OK jel (ENTER) hatására ebbe az állapotba kerül az állapotgép. Megjegyzés: az eredmény állapotból műveleti jel hatására egyből a művelet állapotba lehet átmenni, mivel ha már van eredmény, akkor az bemásolódik az op1-be a megfelelő esemény hatására, ezért az op1-et nem kell újra beolvasni. Ezzel lehetőség adódik több művelet egymás utáni elvégzésére Események Az állapotváltás szempontjából a lehetséges eseményeket (azaz az összes különböző értékes karakter érkezését) az alábbiak szerint lehet csoportosítani: digit_arrived esemény: Számjegy érkezett dot_arrived esemény: Tizedespont érkezett sign_arrived esemény: Műveleti jel érkezett delete_arrived esemény: Törlés jel érkezett ok_arrived esemény: OK jel (ENTER) érkezett Megjegyzés: a fenti eseményeket a keycodesbcd aktuális értékéből lehet előállítani. Itt ki lehet használni az SBCD formátum előnyeit, például azt, hogy a számjegyek kódja 0-val kezdődik.
7 Az input értelmező állapotgép állapottáblája digit_arrived dot_arrived sign_arrived delete_arrived ok_arrived 0: start op1_int op1_fract : op1_int - op1_fract operation start - 2: op1_fract - - operation start - 3: operation op2_int op2_fract : op2_int - op2_fract - operation result 5: op2_fract operation result 6: result - - operation start - Megjegyzések: Az állapottáblában a könnyebb áttekinthetőség érdekében csak az állapotátmeneteket tüntettem fel, az események hatására elvégzendő egyéb feladatokat nem. A teljes állapotgép megvalósítása az arithmetic_controller.v fájlban található. Eredmény állapotból csak akkor lehet más állapotba lépni, ha az aktuális eredmény számításának befejeződése (BCD számjegyek tömbjeként rendelkezésre áll az aktuális eredmény) után következett be az állapotváltó esemény Számformátum választása a számításokhoz A feladat specifikációja szerint az aritmetikai processzornak képesnek kell lennie tizedestört alakú számokon végeznie műveleteket. Tizedestörtek ábrázolására bináris formában a fixpontos és a lebegőpontos számábrázolási módszerek a legelterjedtebbek. Lebegőpontos számábrázolás esetén az alap (fraction) és a kitevő (exponent) segítségével, a matematikai normálalakhoz hasonló módon lehet a számokat ábrázolni. A módszer előnye a nagy ábrázolható számtartomány, azonban a számtartomány szélső részein végzett műveletek pontossága korlátozott (például ha elég nagy a különbség két szám abszolútértéke között, akkor a számok összeadásakor a kisebbik elhanyagolódhat). Fixpontos számábrázolás használatával előre meghatározott számú egész- és tört számjegyeket lehet tárolni. A módszer előnye, hogy az ábrázolt számtartományon végzett műveletek pontos eredményt adnak. A megoldás során a fixpontos számábrázolási módszert választottam, mivel így az elvégzendő műveletek implementálása során kisebb módosításokkal használhatóak az egész számokon végzett műveletek algoritmusai, amik egyszerűbbek a lebegőpontos algoritmusoknál. Egyszerűbb algoritmusok használatával készített harver leírásból általában kisebb komplexitású hardvert lehet szintetizálni, ami gyorsabb végrehajtást vagy kisebb elfoglalt területet jelent az FPGA-n. Az LCD kijelző összesen 32 karaktert tud megjeleníteni. Ebből 1-1 karaktert elfoglalhat a tizedespont és az előjel, ezért 30 karakter marad a számjegyek ábrázolására. A 30 értékes tízes számrendszerbeli számjegyet kettes számrendszerben _log _ +1=100 biten lehet ábrázolni fixpontos formában. A 30 számjegyből 15 számjegy az egészrész és 15 számjegy a törtrész a tízes számrendszerbeli alakban.
8 BCD fixpontos bináris konverzió Az arithmetic_controller modulban működő állapotgép a billentyűzetről egymás után érkező SBCD karakterekből kiválogatja a számjegyeket, majd az aktuális állapottól függően eltárolja az érkezett számjegyeket a megfelelő operandus egész- vagy törtrészét tároló BCD karakterek tömbjeként. A műveletek elvégzéséhez a BCD számjegyek tömbjeit át kell alakítani fixpontos operandusokká. Ezt a feladatot a BCDarrayToBinary modul végzi BCD számjegyek sorrendezése A BCDarrayToBinary modul először a megfelelő sorrendbe rendezi a számjegyeket. Az egészrész számjegyek beolvasáskor fordított sorrendben kerülnek be az op1_int_digits és op2_int_digits tömbökbe, mivel a felhasználó először az aktuálisan legnagyobb helyiértékű számjegyet írja be, ami azonban nem feltétlenül egyezik meg a tárolható legnagyobb helyiértékkel (azaz a felhasználó nem ír be felesleges 0-kat a szám elejére), ezért ezeket a számjegyeket a megfelelő sorrendbe kell rendezni. A sorrendezéshez szükség van arra az információra, hogy a felhasználó hány darab egész számjegyet írt be, ezért a modul paraméterül megkapja ezt az adatot (int_digitcount paraméter). Azonban ha az operandust nem a felhasználó írja be, hanem az már rendelkezésre áll (például az előző számítás eredményeként), akkor az egész számjegyek a megfelelő sorrendben rendelkezésre állnak, ezért ilyenkor nem kell sorrendezni azokat. A BCDarrayToBinary modulnak ezt az információt úgy lehet átadni, hogy az int_digitcount paraméter értékeként 0-t állítunk be (0 db egész számjegy esetén teljesen mindegy, hogy megcseréljük-e a számjegyeket, ezért ez a választás nem rontja el a konverziót). A törtrész számjegyek esetén nem áll fenn a sorrendezési probléma, mivel ilyenkor a felhasználó mindenképpen a tizedes helyiértéken szereplő számjegyet írja be először Operandusok egész- és törtrészének átalakítása bináris formába A BCDarrayToBinary modul a sorrendezéssel egy lépésben (ugyanabban az órajelciklusban) átalakítja a BCD számjegyeket tároló 2 dimenziós tömböt 1 dimenziós tömbbé, hogy az átadható legyen a bcd_to_binary vi modulnak, ami a tényleges BCD bináris átalakítást végzi. A bcd_to_binary modulnak az egyes operandusok egész- és törtrészét egymás után fűzve kell átadni, különben az átalakítás után keletkező külön törtrész számnak nem lehetne egyszerűen meghatározni, hogy pontosan melyik biten van az MSB helyiértéke a kettes számrendszerbeli alakban, emiatt a törtrész-egészrész közötti átvitel nem működne helyesen. Így azonban a kettes számrendszerbe konvertált formában nem tudjuk, hogy pontosan melyik bit a törtrész és az egészrész határa, ezért ezt a műveleteknél nem tudjuk kihasználni Fixpontos bináris BCD konverzió A műveletek az eredményt fixpontos bináris formában állítják elő. Ezt a kijelzéshez előbb vissza kell alakítani BCD számjegyek tömbjévé, majd a megfelelő helyiértékre kell rendezni a számjegyeket. A fixpontos bináris BCD konverziót végző modul (binary_to_bcd vii ) 200 bites fixpontos bináris számot alakít át 60 számjegyből álló BCD formába (azért kell kétszer annyi bit, mint a BCD bináris konverzió esetén, mert a szorzás művelet eredményét az operandusok hosszának kétszeresében lehet veszteség nélkül eltárolni).
9 Az eredmény BCD számjegyeinek megfelelő helyiértékre rendezett, 2 dimenziós tömb formátumú változatát az arithmetic_controller modul állítja elő. A rendezés paraméterei a végrehajtott művelet típusától is függenek Fixpontos összeadó- és kivonó modul implementálása A BCD fixpontos bináris konverzió elvégzése után az operandusokat bináris egészekként lehet kezelni az összeadás és a kivonás során. Előjeles számokon kell összeadás és kivonás műveleteket végezni, ezért célszerű az előjeles-abszolútértékes formátumot kettes komplemens módba alakítani az összeadás és kivonás műveletek elvégzése előtt, majd a műveletek elvégzése után a kapott eredményt visszaalakítani előjeles-abszolútértékes formába. A kettes komplemens előjeles-abszolútértékes formátum közötti konverziók miatt az összeadás és kivonás műveletek végrehajtása 3 órajelciklus alatt történik meg. A modul forráskódja az addsub.v fájlban található Fixpontos szorzás implementálása A fixpontos szorzás művelet az FPGA-ban található beépített 70db 18 bites hardveres szorzó áramkör segítségével 1 órajelciklus alatt megoldható. A hardveres szorzók összekötéséről a szintézer automatikusan gondoskodik, a verilog kódban elegendő a * operátort használni. A megoldás hátránya, hogy viszonylag nagy területet foglal el az FPGA-ból. A számformátumot szorzás esetén előjeles-abszolútértékes formában érdemes hagyni, mert így az eredmény előjelének számítása egy egyszerű kizáró vagy művelet segítségével megoldható. A szorzás művelet eredményét az operandusok hosszának kétszeresében lehet veszteség nélkül eltárolni, ez 200 bitet jelent bináris formában, ami a fixpontos bináris BCD átalakítás után 60 számjegynek felel meg. A kijelzőn azonban csak 30 értékes számjegyet lehet biztosan megjeleníteni. Ezért a kijelzés módját a panelen található SW17 kapcsoló segítségével át lehet állítani debug üzemmódba, ahol az SW0 kapcsoló állásától függően külön-külön lehet az eredmény egész- és törtrészét megnézni. Ez a funkció más műveletek elvégzése után is használható, de a szorzás esetén van igazán nagy jelentősége, mivel így a számítás pontos eredményét is meg lehet tekinteni. Azonban a megjelenített pontos eredmény számjegyen kívül eső részét a műveletek kaszkádosításakor nem lehet továbbvinni a következő művelet operandusaként, mivel az továbbra is csak 30 számjegy pontosságú. Ezért az operandusok ábrázolási tartományán kívül eső számjegyek az eredmény első operandusba másolásakor elvesznek! A modul forráskódja a mult.v fájlban található Fixpontos osztás implementálása Az osztandó megfelelő hosszúságúra konvertálása A fixpontos osztás művelet implementálható az egészek osztására használható algoritmusok segítségével, azonban figyelni kell a helyiértékek megfelelő kezelésére. Az előző alfejezetben leírtak alapján a szorzás művelet eredményét az operandusok hosszának kétszeresében lehet veszteség nélkül eltárolni. Ez a fixpontos osztásra visszafele alkalmazva azt jelenti, hogy az osztandónak kétszer olyan hosszúnak kell lennie mint az osztónak és az eredménynek ahhoz, hogy az eredmény megjelenítése a megfelelő helyiértéken, veszteség nélkül történhessen (ennek hiányában a fixpontos osztás egészek osztására használható algoritmusok segítségével megvalósított verziója nem veszi figyelembe a törtrészt, helyette tényleges egészosztást végez).
10 Azonban az osztandó csak 100 biten van tárolva a szükséges 200 helyett. Az osztandót bináris formában már nem szabad változtatni, mivel nem lehet pontosan tudni, hogy melyik bitnél van a törtrész-egészrész határ benne. Ezért az osztandót még a BCD fixpontos bináris konverzió előtt kell eltolni balra 30 számjeggyel, majd a kapott BCD számot kell átadni a BCD fixpontos bináris átalakítást végző modulnak. A BCDarrayToBinary modul kimenete viszont csak 100 bit hosszú. Ezért az osztás művelet osztandójának előállításához szükség van a BCDarrayToBinary200 modulra, ami a BCDarrayToBinary modulhoz hasonló módon működik. A különbség csak annyi, hogy a BCDarrayToBinary200 modul a bcd_to_binary200 viii modulnak adja át az osztandó BCD alakját, ami az első operandus BCD alakjának és 120 db 0 bitnek az egymás után fűzésével jön létre Az osztás algoritmusa A fixpontos bináris osztást az alábbi bináris egészosztást végző algoritmus alapján implementálam: if D == 0 then throw DivisionByZeroException end Q := 0 //initialize quotient and remainder to zero R := 0 for i = n do //where n is number of bits in N R := R << 1 //left-shift R by 1 bit R(0) := N(i) //set the least-significant bit of R equal to //bit i of the numerator if R >= D then R = R - D Q(i) := 1 end end ix Az algoritmus változóinak jelentése: Q: kvóciens, az osztás eredménye R: egészosztási maradék, fixpontos esetben ez végeredményben az ábrázolási tartományon kívül eső maradék törtszámjegy lesz N: osztandó D: osztó Az algoritmus az általános iskolából ismert osztási módszer kettes számrendszerbeli megfelelője. Az algoritmus először teszteli, hogy az osztó nulla-e. Ha igen, akkor hibajelzést ad. A következő lépés az R és a Q változók inicializálása. Ezután egy cikluson belül 2 fő lépést kell egymás után végrehajtani. Az első lépésben az aktuális maradékot tároló regiszter (R) értékét kell balra shiftelni. Az R regiszter LSB bitjére az osztandó i-edik bitjét kell beírni, ahol az i-edik bit az MSB-től csökkenően halad. A következő lépésben azt kell megvizsgálni, hogy az aktuális maradék nagyobb-e, mint az osztó. Ha igen, akkor a maradék értékét az osztó értékével kell csökkenteni, és az eredmény i-edik bitjére 1-et kell írni. Ha nem, akkor az eredmény i-edik bitje marad 0.
11 Az osztás algoritmusának implementálása Verilog nyelven Verilog nyelven a for ciklus szintézis időben értékelődik ki, ezért nem használható futási idejű sorrendiség leírására. Ezért a fenti algoritmusban szereplő i ciklusváltozót egy lefelé számláló (counter változó) segítségével valósítom meg. A ciklus kilépési feltétele az, ha elértük az inputhosszt. Ez akkor történik meg, ha a counter ciklusváltozó túlcsordult, azaz az értéke 255 lesz. Mivel az inputhossz 200 bit (az osztandó hossza), ezért a counter kezdőértéke 199, így a 255 érték használható a ciklus kilépési feltételeként. Ha ez az esemény bekövetkezik, a ready flag 1 értékre állítódik be és az osztást közvetlenül vezérlő állapotgép olyan állapotba kerül, ahonnan csak reset vagy újabb osztási művelet kezdése parancs hatására léphet ki, így befejeződik az algoritmus futása. A cikluson belül 2 fő lépést kell egymás után végrehajtani, ez egy 2 állapotú állapotgép segítségével oldható meg, aminek az aktuális állapotát a divstate regiszter tárolja. divstate==0 esetén az első lépés kerül végrehajtásra, továbbá a divstate értékének 1-be állítása is megtörténik. Ennek hatására a következő órajelre a 2. lépés kerül végrehajtásra, továbbá a divstate értéke újra nullázódik, a ciklusszámláló (counter) értéke pedig csökken 1-el. Az eredmény előjelét a szorzásnál ismertetett módon, kizáró vagy művelet segítségével lehet előállítani az osztás esetén is. A fixpontos osztó modul Verilog nyelvű forráskódja a div.v fájlban található Az osztási algoritmus értékelése Az algoritmus sorrendi jellege miatt az osztás végrehajtási idejének nagyságrendje az inputhosszal lineárisan arányos. Mivel a cikluson belül 2 lépést kell egymás után végrehajtani, az inputhossz pedig az osztandó miatt 200 bit, ezért az osztás végrehajtása 200*2+1(inicializációs lépés)=401 órajelciklus alatt történik meg. Ez az érték 2 nagyságrenddel meghaladja a többi művelet végrehajtási idejét, ezért az osztást érdemes lehet hatékonyabb algoritmus segítségével implementálni. Ugyanakkor a jelenlegi megoldás az FPGA-ból felhasznált terület szempontjából jónak tekinthető, továbbá a 401 órajelciklus végrehajtása a panelen található 50MHz frekvenciájú órajel mellett 8,02us-ig tart, ami a jelenlegi alkalmazásban (számológép) nem okoz észrevehető lassulást Műveletek kaszkádosítása A műveletek kaszkádosítása alatt azt értem, hogy az előző művelet eredményét a következő művelet operandusként felhasználja. Ehhez az eredményt az első operandusba kell másolni, amikor az eredmény állapotban új műveleti jel érkezik, aminek hatására a következő órajelre a művelet állapotba kerül az állapotgép (azaz az első operandust már nem olvassa be újra). Ebben az esetben az első operandust nem a felhasználó írja be, tehát az egész számjegyek a megfelelő sorrendben rendelkezésre állnak, ezért ilyenkor nem kell sorrendezni azokat, ezért a BCDarrayToBinary modulnak az int_digitcount paraméter értékeként 0-t kell beállítani.
12 3.2. Architektúra Modulok hierarchiája Megjegyzés: az ábrán egyes modulnevek rövidítve szerepelnek Modulok funkciói calc_top: Legfelső szintű modul Kezeli a be- és kimeneteket Összeköti az almodulokat Értéket ad a reset jelnek ps2_interpreter: ps2ip Kiválogatja a PS2_Controller által küldött karakterek közül az értékeseket PS2_Controller: ps2c A PS/2 kommunikációt vezérlő modul Altera_UP_PS2_Command_Out: PS2_Command_Out Parancsokat küld a PS/2 billentyűzetnek Altera_UP_PS2_Data_In: PS2_Data_in Fogadja a billentyűzetről érkező adatot arithmetic_controller: arithmetic Feldolgozza az inputot Kezdeményezi a műveletek végrehajtását Előállítja a kijelzendő szöveget addsub: addersubtractor Elvégzi az összeadást és a kivonást div: divider Elvégzi az osztást
13 mult: multiplier Elvégzi a szorzást auto-generated multiplier modules: A fejlesztői környezet által generált modulok. Összekötik és vezérlik a beépített szorzó áramköröket BCDarrayToBinary: op1convertertobinary Megfelelő sorrendbe rendezi az első operandus BCD számjegyeit Átalakítja a BCD számjegyeket tároló 2 dimenziós tömböt 1 dimenziós tömbbé bcd_to_binary: conv Bináris formába konvertálja az első operandust BCDarrayToBinary200: op1convertertobinary200 Megfelelő sorrendbe rendezi az első operandus BCD számjegyeit Átalakítja a BCD számjegyeket tároló 2 dimenziós tömböt 1 dimenziós tömbbé Hozzáfűz a BCD számjegyeket tároló 1 dimenziós tömb végére 120db nullát bcd_to_binary200: conv Bináris formába konvertálja az első operandust 200 bit hosszú eredményt ad BCDarrayToBinary: op2convertertobinary Megfelelő sorrendbe rendezi a második operandus BCD számjegyeit Átalakítja a BCD számjegyeket tároló 2 dimenziós tömböt 1 dimenziós tömbbé bcd_to_binary: conv Bináris formába konvertálja a második operandust binary_to_bcd: res_intfract_conv Az eredményt bináris formából BCD formába alakítja LCD_DigitCoder: lcd Előállítja az LCD kijelző számára értelmezhető karakterkódokat LCD_Driver: driver A kijelzendő szöveget karakterenként átadja az LCD_Controller modulnak LCD_Controller: controller Vezérli az LCD kijelzőt LineCoder: line1coder A kijelzendő szöveg első sorát kódolja át SBCD formátumból az LCD kijelző számára értelmezhető formátumra LineCoder: line2coder A kijelzendő szöveg második sorát kódolja át SBCD formátumból az LCD kijelző számára értelmezhető formátumra
14 A sorrendiség biztosítása a feldolgozás lépéseihez A feldolgozás egyes lépéseinek sorrendiségét engedélyező jelek segítségével lehet megvalósítani. Ha az 'A' modulnak a 'B' modul által előállított eredményt kell feldolgoznia, akkor a 'B' modul feldolgozás kész (ready) jelét lehet az 'A' modul engedélyező jeleként használni. Ezzel a módszerrel egymás után lehet fűzni az egyes részfeladatokat ellátó modulokat. Ez azért fontos, mert az egyes részfeladatok feldolgozása több órajelciklust is igénybe vehet, így engedélyező jelek hiányában előfordulhatna, hogy az 'A' modul egy félkész részeredményt dolgoz fel. Az interfészek egyezésére azonban minden esetben figyelni kell: a ready jel például lehet egy 1 órajel hosszú impulzus a művelet elvégzése után, vagy lehet egy olyan jel, ami csak akkor nem aktív, ha éppen folyik a számítás (busy negált jel). A ready jelhez hasonlóan az engedélyező jel is többféle lehet: start jellegű engedélyező jel, ami impulzus hatására elkezdi a számítást, vagy folyamatosan aktív engedélyező jel, amit a számítás befejezéséig high szinten kell tartani. Busy negált típusú ready jelből start jellegű engedélyező impulzust felfutó él detektálásával lehet előállítani. A megoldásban a felhasználói input érkezése hatására kell a feldolgozást elkezdeni, a folyamat eredményeként a kijelzőt kell frissíteni. Ezek között a lépések között a részfeladatokat egymás után kell elvégezni. Az egyes részfeladatokat végző modulok az előző részfeladatért felelős modultól kapják a feldolgozandó adatot és az engedélyező jelet. Az adatot a saját funkciójuk szerint átalakítják, majd mikor végeztek, jelzik ezt a következő részfeladatot végző modulnak.
15 A modulok közötti engedélyező jeleket az alábbi ábra szemlélteti: Megjegyzés: a könnyebb áttekinthetőség érdekében az ábra nem tartalmazza minden modulnak az összes engedélyező feltételét.
16 i Altera DE2 fejlesztői panelhez tartozó DVD: DE2Systems/DE2_demonstrations/DE2_Default/LCD_Controller.v ii Altera DE2 fejlesztői panelhez tartozó DVD: DE2Systems/DE2_demonstrations/DE2_Default/LCD_TEST.v iii Altera DE2 fejlesztői panelhez tartozó DVD: DE2Systems/Datasheets/LCD/CFAH1602BTMCJP.pdf 13. oldal iv v vi Copyright (C) 2002 John Clayton and OPENCORES.ORG vii Copyright (C) 2002 John Clayton and OPENCORES.ORG viiicopyright (C) 2002 John Clayton and OPENCORES.ORG ix
Assembly programozás: 2. gyakorlat
Assembly programozás: 2. gyakorlat Számrendszerek: Kettes (bináris) számrendszer: {0, 1} Nyolcas (oktális) számrendszer: {0,..., 7} Tízes (decimális) számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a
A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással
.. A tervfeladat sorszáma: 1 A ALU egység 8 regiszterrel és 8 utasítással Minimálisan az alábbi képességekkel rendelkezzen az ALU 8-bites operandusok Aritmetikai funkciók: összeadás, kivonás, shift, komparálás
Digitális technika VIMIAA hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 14. hét Fehér Béla BME MIT Rövid visszatekintés, összefoglaló
Digitális technika VIMIAA hét
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 VIMIAA02 14. hét Fehér Béla BME MIT Digitális technika
The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003
. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,
4. Fejezet : Az egész számok (integer) ábrázolása
4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson
2. Fejezet : Számrendszerek
2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College
ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA
1. Tízes (decimális) számrendszerből: a. Kettes (bináris) számrendszerbe: Vegyük a 2634 10 -es számot, és váltsuk át bináris (kettes) számrendszerbe! A legegyszerűbb módszer: írjuk fel a számot, és húzzunk
3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}
3. gyakorlat Számrendszerek: Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} Alaki érték: 0, 1, 2,..., 9,... Helyi
Fixpontos és lebegőpontos DSP Számrendszerek
Fixpontos és lebegőpontos DSP Számrendszerek Ha megnézünk egy DSP kinálatot, akkor észrevehetjük, hogy két nagy család van az ajánlatban, az ismert adattipus függvényében. Van fixpontos és lebegőpontos
Harmadik gyakorlat. Számrendszerek
Harmadik gyakorlat Számrendszerek Ismétlés Tízes (decimális) számrendszer: 2 372 =3 2 +7 +2 alakiérték valódi érték = aé hé helyiérték helyiértékek a tízes szám hatványai, a számjegyek így,,2,,8,9 Kettes
Összeadás BCD számokkal
Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok
Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 1. EA Fehér Béla BME MIT Digitális Rendszerek Számítógépek Számítógép
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu
Dr. Oniga István DIGITÁLIS TECHNIKA 2
Dr. Oniga István DIGITÁLIS TECHNIKA 2 Számrendszerek A leggyakrabban használt számrendszerek: alapszám számjegyek Tízes (decimális) B = 10 0, 1, 8, 9 Kettes (bináris) B = 2 0, 1 Nyolcas (oktális) B = 8
LEBEGŐPONTOS SZÁMÁBRÁZOLÁS
LEBEGŐPONTOS SZÁMÁBRÁZOLÁS A fixpontos operandusoknak azt a hátrányát, hogy az ábrázolás adott hossza miatt csak korlátozott nagyságú és csak egész számok ábrázolhatók, a lebegőpontos számábrázolás küszöböli
Programozott soros szinkron adatátvitel
Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.
Digitális technika VIMIAA02 1. EA
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 VIMIAA02 1. EA Fehér Béla BME MIT Digitális Rendszerek
SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA
SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA BINÁRIS (kettes) ÉS HEXADECIMÁLIS (tizenhatos) SZÁMRENDSZEREK (HELYIÉRTÉK, ÁTVÁLTÁSOK, MŰVELETEK) A KETTES SZÁMRENDSZER A computerek világában a
Digitális technika (VIMIAA02) Laboratórium 1
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 (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,
Digitális technika (VIMIAA02) Laboratórium 1
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 (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,
Összetett feladatok megoldása
Összetett feladatok megoldása F1. A laboratóriumi feladat a legnagyobb közös osztó kiszámító algoritmusának realizálása digitális hardver eszközökkel. Az Euklideszi algoritmus alapja a maradékos osztás,
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Összeadó áramkör A legegyszerűbb összeadó két bitet ad össze, és az egy bites eredményt és az átvitelt adja ki a kimenetén, ez a
Digitális technika VIMIAA01
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 Fehér Béla BME MIT Digitális Rendszerek Számítógépek
Digitális technika VIMIAA01
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA01 Fehér Béla BME MIT Digitális Rendszerek Számítógépek Számítógép
Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:
Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,
Dr. Oniga István DIGITÁLIS TECHNIKA 8
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
Aritmetikai utasítások I.
Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást
Műveletek lebegőpontos adatokkal
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Műveletek lebegőpontos adatokkal Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Műveletek az IEEE 754
Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:
Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 10 3.1. Megoldások... 12 A gyakorlósor lektorálatlan,
Informatika érettségi vizsga
Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés
A PiFast program használata. Nagy Lajos
A PiFast program használata Nagy Lajos Tartalomjegyzék 1. Bevezetés 3 2. Bináris kimenet létrehozása. 3 2.1. Beépített konstans esete.............................. 3 2.2. Felhasználói konstans esete............................
5. Fejezet : Lebegőpontos számok. Lebegőpontos számok
5. Fejezet : Lebegőpontos The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda
Újrakonfigurálható eszközök
Újrakonfigurálható eszközök 4. Verilog példaprogramok EPM240-hez Hobbielektronika csoport 2017/2018 1 Debreceni Megtestesülés Plébánia Tartalom C-M240 fejlesztői kártya, felhasznált kivezetések 15-fdiv-LED:
Adatok ábrázolása, adattípusok
Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában
Amit a törtekről tudni kell Minimum követelményszint
Amit a törtekről tudni kell Minimum követelményszint Fontos megjegyzés: A szabályoknak nem a pontos matematikai meghatározását adtuk. Helyettük a gyakorlatban használható, egyszerű megfogalmazásokat írtunk.
Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350. Mérési feladatok az 1., 2. és 3. mérési alkalomhoz
Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350 Mérési feladatok az 1., 2. és 3. mérési alkalomhoz A mérés tárgya: FPGA áramkörök és tervezési rendszereik megismerése A mérések során egy egyszerű
Máté: Számítógép architektúrák
Fixpontos számok Pl.: előjeles kétjegyű decimális számok : Ábrázolási tartomány: [-99, +99]. Pontosság (két szomszédos szám különbsége): 1. Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós
5. Fejezet : Lebegőpontos számok
5. Fejezet : Lebegőpontos The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda
1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba
Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai
A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása
A programozás alapjai 1 A C nyelv típusai 4. előadás Híradástechnikai Tanszék C típusok -void - skalár: - aritmetikai: - egész: - eger - karakter - felsorolás - lebegőpontos - mutató - függvény - union
Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Adattípusok Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Az adatmanipulációs fa z adatmanipulációs fa
2018, Funkcionális programozás
Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a
Bevezetés az informatikába
Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON
11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON 1 Számos alkalmazásban elegendő egyszerű, hétszegmenses LED vagy LCD kijelzővel megjeleníteni a bináris formában keletkező tartalmat,
Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.
Kedves Diákok! Szeretettel köszöntünk Benneteket abból az alkalomból, hogy a Ceglédi Közgazdasági és Informatikai Szakközépiskola informatika tehetséggondozásának első levelét olvassátok! A tehetséggondozással
I+K technológiák. Számrendszerek, kódolás
I+K technológiák Számrendszerek, kódolás A tárgyak egymásra épülése Magas szintű programozás ( számítástechnika) Alacsony szintű programozás (jelfeldolgozás) I+K technológiák Gépi aritmetika Számítógép
Digitális technika (VIMIAA02) Laboratórium 5.5
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 (VIMIAA02) Laboratórium 5.5 Fehér Béla Raikovich Tamás,
INFO1 Számok és karakterek
INFO1 Számok és karakterek Wettl Ferenc 2015. szeptember 29. Wettl Ferenc INFO1 Számok és karakterek 2015. szeptember 29. 1 / 22 Tartalom 1 Bináris számok, kettes komplemens számábrázolás Kettes számrendszer
Programozási segédlet DS89C450 Fejlesztőpanelhez
Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.
SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA
1 ELSŐ GYAKORLAT SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA A feladat elvégzése során a következőket fogjuk gyakorolni: Számrendszerek közti átváltás előjelesen és előjel nélkül. Bináris, decimális, hexadexcimális számrendszer.
Véges állapotú gépek (FSM) tervezése
Véges állapotú gépek (FSM) tervezése F1. Tervezzünk egy soros mintafelismerőt, ami a bemenetére ciklikusan, sorosan érkező 4 bites számok közül felismeri azokat, amelyek 3-mal vagy 5-tel oszthatók. A fenti
Verilog HDL ismertető 2. hét : 1. hét dia
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 2. hét : 1. hét + 15 25 dia Fehér Béla, Raikovich
Amit a törtekről tudni kell 5. osztály végéig Minimum követelményszint
Amit a törtekről tudni kell. osztály végéig Minimum követelményszint Fontos megjegyzés: A szabályoknak nem a pontos matematikai meghatározását adtuk. Helyettük a gyakorlatban használható, egyszerű megfogalmazásokat
Véges állapotú gépek (FSM) tervezése
Véges állapotú gépek (FSM) tervezése F1. A 2. gyakorlaton foglalkoztunk a 3-mal vagy 5-tel osztható 4 bites számok felismerésével. Abban a feladatban a bemenet bitpárhuzamosan, azaz egy időben minden adatbit
Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév
Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév (2011-11-27) Az ellenőrző mérésen az alábbiakhoz hasonló feladatokat kapnak a hallgatók (nem feltétlenül ugyanazeket). Logikai analizátor
DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.
26..5. DIGITÁLIS TEHNIK I Dr. Lovassy Rita Dr. Pődör álint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet INÁRIS SZÁMRENDSZER 5. ELŐDÁS 2 EVEZETŐ ÁTTEKINTÉS 6. előadás témája a digitális rendszerekben
Bevezetés a számítástechnikába
Bevezetés a számítástechnikába Beadandó feladat, kódrendszerek Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 12.
Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék
Gyakorló feladatok Számrendszerek: Feladat: Ábrázold kettes számrendszerbe a 639 10, 16-os számrendszerbe a 311 10, 8-as számrendszerbe a 483 10 számot! /2 Maradék /16 Maradék /8 Maradék 639 1 311 7 483
SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1
INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép
Digitális technika VIMIAA01
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 Fehér Béla BME MIT Digitális Rendszerek Számítógépek
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix
2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.
Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
A SZÁMFOGALOM KIALAKÍTÁSA
A SZÁMFOGALOM KIALAKÍTÁSA TERMÉSZETES SZÁMOK ÉRTELMEZÉSE 1-5. OSZTÁLY Számok értelmezése 0-tól 10-ig: Véges halmazok számosságaként Mérőszámként Sorszámként Jelzőszámként A számok fogalmának kiterjesztése
Digitális technika (VIMIAA02) Laboratórium 2
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 (VIMIAA02) Laboratórium 2 Fehér Béla Raikovich Tamás,
Informatikai Rendszerek Alapjai
Informatikai Rendszerek Alapjai Egész és törtszámok bináris ábrázolása http://uni-obuda.hu/users/kutor/ IRA 5/1 A mintavételezett (egész) számok bináris ábrázolása 2 n-1 2 0 1 1 0 1 0 n Most Significant
Mérési jegyzőkönyv. az ötödik méréshez
Mérési jegyzőkönyv az ötödik méréshez A mérés időpontja: 2007-10-30 A mérést végezték: Nyíri Gábor kdu012 mérőcsoport A mérést vezető oktató neve: Szántó Péter A jegyzőkönyvet tartalmazó fájl neve: ikdu0125.doc
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT
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 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Digitális technika VIMIAA01 9. hét
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 9. hét Fehér Béla BME MIT Eddig Tetszőleges
DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,
10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek.
Számrendszerek: 10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek. ritmetikai műveletek egész számokkal 1. Összeadás, kivonás (egész számokkal) 2. Negatív
3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA
3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA Az FPGA tervezésben való jártasság megszerzésének célszerű módja, hogy gyári fejlesztőlapot alkalmazzunk. Ezek kiválóan alkalmasak tanulásra, de egyes ipari tervezésekhez
Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás
Programozás alapjai 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Háziellenőrzés Egészítsd ki úgy a simplemaths.c programot, hogy megfelelően működjön. A program feladata az inputon soronként megadott
A mikroprocesszor felépítése és működése
A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor
Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István
Vektorok A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István Octave: alapok Az octave mint számológép: octave:##> 2+2 ans = 4 Válasz elrejtése octave:##> 2+2; octave:##> + - / * () Hatványozás:
1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.
Témakörök 1. Digitális írástudás: a kőtáblától a számítógépig ( a kommunikáció fejlődése napjainkig) 2. Szedjük szét a számítógépet 1. ( a hardver architektúra elemei) 3. Szedjük szét a számítógépet 2.
TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6
TARTALOMJEGYZÉK ELŐSZÓ... 3 1. BEVEZETÉS... 4 1.1. A logikai hálózatok csoportosítása... 5 1.2. Logikai rendszerek... 6 2. SZÁMRENDSZEREK ÉS KÓDRENDSZEREK... 7 2.1. Számrendszerek... 7 2.1.1. Számok felírása
A/D és D/A konverterek vezérlése számítógéppel
11. Laboratóriumi gyakorlat A/D és D/A konverterek vezérlése számítógéppel 1. A gyakorlat célja: Az ADC0804 és a DAC08 konverterek ismertetése, bekötése, néhány felhasználási lehetőség tanulmányozása,
Máté: Számítógép architektúrák
Bit: egy bináris számjegy, vagy olyan áramkör, amely egy bináris számjegy ábrázolására alkalmas. Bájt (Byte): 8 bites egység, 8 bites szám. Előjeles fixpontok számok: 2 8 = 256 különböző 8 bites szám lehetséges.
Assembly Utasítások, programok. Iványi Péter
Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk
BASH SCRIPT SHELL JEGYZETEK
BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...
2. Elméleti összefoglaló
2. Elméleti összefoglaló 2.1 A D/A konverterek [1] A D/A konverter feladata, hogy a bemenetére érkező egész számmal arányos analóg feszültséget vagy áramot állítson elő a kimenetén. A működéséhez szükséges
Programozás alapjai gyakorlat. 2. gyakorlat C alapok
Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel
A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.
Mikroprocesszor A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. A mikroprocesszor részei A mikroprocesszor a szokásos
Matematikai alapok. Dr. Iványi Péter
Matematikai alapok Dr. Iványi Péter Számok A leggyakrabban használt adat típus Egész számok Valós számok Bináris számábrázolás Kettes számrendszer Bitek: és Byte: 8 bit 28 64 32 6 8 4 2 bináris decimális
A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium
BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A LOGSYS GUI Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT atórium
Architektúra, megszakítási rendszerek
Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép
Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat
Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól
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 II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy
Számítógép felépítése
Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége
Aritmetikai kifejezések lengyelformára hozása
Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási
(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek
Egész számok ábrázolása (jegyzet) Bérci Norbert 2015. szeptember 10-i óra anyaga Tartalomjegyzék 1. Számrendszerek 1 1.1. A számrendszer alapja és a számjegyek........................ 1 1.2. Alaki- és
C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi
C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Könyvészet Kátai Z.: Programozás C nyelven Brian W. Kernighan, D.M. Ritchie: A C programozási
A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...
2..év hó nap NÉV:...neptun kód:.. Kurzus: feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:... Kedves Kolléga! kitöltést a dátum, név és aláírás rovatokkal
A racionális számok és a fixpontos processzorok numerikus felületének a kapcsolata
7.2.1. A racionális számok és a fixpontos processzorok numerikus felületének a kapcsolata A valósidejű jel- és képfeldolgozás területére eső alkalmazások esetében legtöbbször igény mutatkozik arra, hogy