Beágyazott rendszerek a mérnöki gyakorlatban Molnár, András Turóczi, Antal Stojcsics, Dániel Léczfalvy, Ádám Kelemen, József Somlyai, László

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Beágyazott rendszerek a mérnöki gyakorlatban Molnár, András Turóczi, Antal Stojcsics, Dániel Léczfalvy, Ádám Kelemen, József Somlyai, László"

Átírás

1 Beágyazott rendszerek a mérnöki gyakorlatban Molnár, András Turóczi, Antal Stojcsics, Dániel Léczfalvy, Ádám Kelemen, József Somlyai, László

2 Beágyazott rendszerek a mérnöki gyakorlatban írta Molnár, András, Turóczi, Antal, Stojcsics, Dániel, Léczfalvy, Ádám, Kelemen, József, és Somlyai, László

3 Tartalom I. könyv. Digitális technikai alapáramkörök labormérése Bevezetés A mérés során használt eszközök Spartan 3 FPGA család Kapcsolómátrix Órajel Konfigurálható logikai blokk Lookup table (LUT) Erőforrások Digilent Basys 2 Spartan-3E FPGA Board Xilinx ISE fejlesztő rendszer Első mintafeladat elkészítése kapcsolási rajz alapú tervezés Kapcsolási rajz készítése A kapcsolás ellenőrzése szimulációval Szimulációs fájl készítése Makró hozzáadása meglévő projekthez Példa kapcsolási rajz alapú makró készítésére Kapcsolási rajz alapú saját makró módosítása Kapcsolási rajz alapú saját makró hozzáadása projekthez VHDL alapú saját makró hozzáadása projekthez Kapcsolási rajz elkészítése a makró használatával A kapcsolás hardveres ellenőrzése A konfigurációs fájl letöltése az FPGA-ba Az órajel bemenet prellmentesítése Egyszerű kombinációs hálózatok Multiplexer, demultiplexer Multiplexer bemenetű multiplexer bemenetű multiplexer Latch Korrekt flip-flop órajel engedélyezés Demultiplexer Laborfeladat Alkalmazandó műszerek és eszközök Kódolók Komparátorok (Magnitude Comparators) Enkóderek Prioritáskódoló (priority encoder) Dekóder ről 1-re dekóder engedélyező jellel Laborfeladat Alkalmazandó műszerek és eszközök Összeadó áramkör Teljes összeadó (full adder) BCD összeadó Laborfeladat Alkalmazandó műszerek és eszközök Aritmetikai és Logikai Egység (ALU) ALU blokkvázlata ALU műveletvégző egységei Laborfeladat Alkalmazandó műszerek és eszközök Shift regiszter Léptető regiszterek Soros-párhuzamos átalakító Párhuzamos-soros átalakító iii

4 Beágyazott rendszerek a mérnöki gyakorlatban Jobbra-balra léptető regiszter Barrel shifter Egyéb alkalmazások shift-regiszterrel Lifo A Johnson számláló Soros összeadó Laborfeladat Alkalmazandó műszerek és eszközök Négybites CPU tervezés Bevezetés Számítógépes architektúrák Utasításkészlet A labormérés alatt megépítendő CPU architektúrája A CPU utasításainak felépítése Az A és B regiszter bemenetének kiválasztása (Register input select) ALU vezérlése (ALU control) Ugró utasítások, a programszámláló megváltoztatása (Branch control) Egyéb vezérlő jelek Az utasítások felépítése Mnemonik A CPU teljes utasításkészlete Laborfeladat Alkalmazandó műszerek és eszközök Órajel forrás, programszámláló, utasításregiszter, kijelzés ALU és regiszterek Kimeneti regiszterek, memória, ugró utasítás Programkód írás II. Könyv. Gadgeteer Kiknek szól a tananyag? Miért.NETGadgeteer? Szükséges előismeretek Bevezetés a.net Gadgeteer használatába NET Gadgeteeralkalmazások készítéséhez szükséges eszközök FEZ Spider Starter Kit A FEZ Spider demóapanel használata Jelölések a demópanelen Jelölések a próbamodulokon A demópanel csatlakoztatása PC-hez Egy egyszerű Gadgeteer program elkészítése Felkészülést segítő kérdések Stopper alkalmazás készítése.netgadgeteer-el A feladat célja A projekt létrehozása Az eszköz elkészítése Az program megírása Stopper osztály készítése A főprogram elkészítése A program futtatása Felkészülést segítő kérdések Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával A feladat célja A projekt létrehozása A program megírása A teljes forráskód Felkészülést segítő kérdések SD kártya olvasó.net Gadgeteer használatával A feladat célja iv

5 Beágyazott rendszerek a mérnöki gyakorlatban A projekt létrehozása A program megírása A teljes forráskód Felkészülést segítő kérdések Felhasznált irodalom Irodalomjegyzék v

6 Az ábrák listája 2.1. A Spartan-3 család belső felépítése [2] Az órajel hálózat részei [1] A szeletek elhelyezkedése a CLB-ben [2] A szeletek összetevői [2] LUT Kapcsoló mátrix összeköttetések [2] A részegységek FPGA-n belüli tömbszerkezete [2] Digilent Basys 2 Spartan-3E FPGA panel [3] Az Adept program konfigurációs felülete Kapcsolók, nyomógombok és hétszegmenses kijelzők [3] A tervezés menete [1] Új projekt létrehozása Új projekt létrehozása A Project Navigator részei A Symbols segédablak és a használt alkatrészek Szimulációs fájl hozzáadása a projekthez vhd-1.../section/src/codetestbrench1.vhd vhd-2.../sections/src/codetestbrench2.vhd A szimuláció eredménye a Xilinx ISE Simulator hullámforma ablakában Kijelzés formátuma További jelek hozzáadása Kapcsolási rajz módosítása Elkészült makró kiválasztása Top modul Kimenet Kapcsolási rajz alapú makró módosítása Módosított szimbólumfájl Makró szerkesztés bites számláló kapcsolási rajza bites számláló fájlok vhd-3.../sections/src/codetestbrench3.vhd bites számláló szimulációs eredmény A Basys2_100_250General.ucf fájl vhd-4.../sections/src/codeucfclk4bit.vhd UCF vhd-5.../sections/src/codeucfclkprell.vhd A teszt.sch kapcsolási rajz módosítása Két bemenetű multiplexer kapcsolási rajza Két bemenetű multiplexer logikai rajza Négy bemenetű multiplexer logikai rajza Négy bemenetű multiplexer kapcsolási rajza bemenetű multiplexer tervezése kisebb multiplexerek felhasználásával Look-up table megvalósítása multiplexer segítségével Latch Korrekt flip-flop órajel engedélyezés Négy kimenetű demultiplexer Négy kimenetű demultiplexer kapcsolási rajza szer 4-bites komparátor blokkrajza Magnitude Comparator egy áramköri megvalósítása _to_3 enkóder egy áramköri megvalósítása: bites prioritáskódoló rajzjele bites prioritáskódoló blokkrajza A 8 bites prioritáskódoló megvalósítása 2 4 bitesből ről 1-re dekóder blokkrajza ről 1-re dekóder engedélyező jellel egy áramköri megvalósítása Félösszeadó áramkör kapcsolási rajza vi

7 Beágyazott rendszerek a mérnöki gyakorlatban Teljes összeadó egy megvalósítása Teljes összeadó egy megvalósítása Teljes összeadó megvalósítása félösszeadó áramkörök segítségével bites összeadó áramkör BCD összeadó A laborgyakorlat során megépítésre kerülő ALU blokkvázlata ALU Gyűrüs számláló Shift regiszter Shift regiszter párhuzamos adatbemenettel Jobbra-balra léptető regiszter Fast, Compact Barrel Shifter with Encoded Shift Control LIFO Johnson számláló Shift Register Applications Example: Intel os processzor Neumann és Harvard számítógép architektúra A laborgyakorlatok alatt épített négybites CPU blokkvázlata Az utasítások felépítése Az utasítások felépítése Utasításkészlet A mintaprogram mnemonikjai és utasításkódjai Ki-bemeneti egységek A CPU műveletvégző egysége és regiszterei A mintaprogram mnemonikjai és utasításkódjai Ki-bemeneti egységek A processzor blokkvázlatának részlete A mintaprogram mnemonikjai és utasításkódjai Ki-bemeneti egységek Fordító program felépítése Mintaprogram for ciklusra vhd-6.../sections/src/codefor.vhd Mintaprogram for ciklusra, hibaüzenettel FEZ Spider Starter Kit FEZ Spider demópanel "Piros modul" Csatlakozó aljzat a demópanelen Csatlakozó aljzat a próbamodulon Demópanelhez kapcsolt piros modul Új projekt létrehozása A létrehozni kívánt Gadgeteer projekt opciói A létrehozott Gadgeteer projekt A demópanel csere után Próbamodulok a grafikus tervezőben A demópanelra bekötött nyomógomb A bekötött alkatrészek A programkódot tartalmazó fájl kiválasztása a program futtatás közben Új projekt létrehozása Projekt tulajdonságainak beállítása Stopper készülék tervező nézetben Új elem létrehozása a projektben Új osztály hozzáadása a projekthez Az új kódfájlban elhelyezett osztálydefiníció A stopper állapotátmenet diagramja Aprogram futtatás közben A Visual Studio 2010 új.netgadgeteer projekt az összekötött rendszer Teljesen kikapcsolt lámpa %-os kitöltésű lámpa vii

8 Beágyazott rendszerek a mérnöki gyakorlatban 9.5. Teljesen felkapcsolt lámpa A Visual Studio 2010 új.net Gadgeteer projekt az összekötött rendszer a kezdőképernyő a beolvasás folyamatábrája csak txt-re keresés minden fájlra keresés nincs találat viii

9 A táblázatok listája 2.1. A függvény igazságtáblázata: Egybemenetű multiplexer igazságtáblázata Kétbemenetű multiplexer igazságtáblázata Magnitude Comparator igazságtáblázata Magnitude Comparator egyszerűsített igazságtáblázata ról 3-ra enkóder igazságtáblázata bites prioritáskódoló igazságtáblázata, (4.1), (4.2), (4.3) bites prioritáskódoló igazságtáblázata, (4.4), (4.5), (4.6), (4.7) ről 1-re dekóder igazságtáblázata Portkiosztás A két bites félösszeadó igazságtáblázata, (4.8), (4.9) A két bites teljes összeadó igazságtáblázata, (4.10), (4.11) Az ALU kimeneti jelei a vezérlőjeleinek függvényében Portkiosztás Johnson számláló igazságtáblázata Az A és B regiszter bemenetének kiválasztása ALU vezérlő jelei Ugró utasítások Kimeneti regiszterek vezérlő jelei Kijelzők portkiosztása Portkiosztás Kimenet portkiosztása Portkiosztás Kijelzők portkiosztása Ugró utasítások Portkiosztás ix

10 Az egyenletek listája 4.1. (4.1) (4.2) (4.3) (4.4) (4.5) (4.6) (4.7) (4.8) (4.9) (4.10) (4.11) x

11 I. könyv. rész - Digitális technikai alapáramkörök labormérése

12 Tartalom 1. Bevezetés A mérés során használt eszközök Spartan 3 FPGA család Kapcsolómátrix Órajel Konfigurálható logikai blokk Lookup table (LUT) Erőforrások Digilent Basys 2 Spartan-3E FPGA Board Xilinx ISE fejlesztő rendszer Első mintafeladat elkészítése kapcsolási rajz alapú tervezés Kapcsolási rajz készítése A kapcsolás ellenőrzése szimulációval Szimulációs fájl készítése Makró hozzáadása meglévő projekthez Példa kapcsolási rajz alapú makró készítésére Kapcsolási rajz alapú saját makró módosítása Kapcsolási rajz alapú saját makró hozzáadása projekthez VHDL alapú saját makró hozzáadása projekthez Kapcsolási rajz elkészítése a makró használatával A kapcsolás hardveres ellenőrzése A konfigurációs fájl letöltése az FPGA-ba Az órajel bemenet prellmentesítése Egyszerű kombinációs hálózatok Multiplexer, demultiplexer Multiplexer bemenetű multiplexer bemenetű multiplexer Latch Korrekt flip-flop órajel engedélyezés Demultiplexer Laborfeladat Alkalmazandó műszerek és eszközök Kódolók Komparátorok (Magnitude Comparators) Enkóderek Prioritáskódoló (priority encoder) Dekóder ről 1-re dekóder engedélyező jellel Laborfeladat Alkalmazandó műszerek és eszközök Összeadó áramkör Teljes összeadó (full adder) BCD összeadó Laborfeladat Alkalmazandó műszerek és eszközök Aritmetikai és Logikai Egység (ALU) ALU blokkvázlata ALU műveletvégző egységei Laborfeladat Alkalmazandó műszerek és eszközök Shift regiszter Léptető regiszterek Soros-párhuzamos átalakító Párhuzamos-soros átalakító Jobbra-balra léptető regiszter

13 Digitális technikai alapáramkörök labormérése Barrel shifter Egyéb alkalmazások shift-regiszterrel Lifo A Johnson számláló Soros összeadó Laborfeladat Alkalmazandó műszerek és eszközök Négybites CPU tervezés Bevezetés Számítógépes architektúrák Utasításkészlet A labormérés alatt megépítendő CPU architektúrája A CPU utasításainak felépítése Az A és B regiszter bemenetének kiválasztása (Register input select) ALU vezérlése (ALU control) Ugró utasítások, a programszámláló megváltoztatása (Branch control) Egyéb vezérlő jelek Az utasítások felépítése Mnemonik A CPU teljes utasításkészlete Laborfeladat Alkalmazandó műszerek és eszközök Órajel forrás, programszámláló, utasításregiszter, kijelzés ALU és regiszterek Kimeneti regiszterek, memória, ugró utasítás Programkód írás

14 1. fejezet - Bevezetés A könyv bevezetést kíván nyújtani a digitális áramkörök tervezésébe, célja a tervezési lehetőségek minél szélesebb körben való ismertetése. Manapság több módja is van az áramkörtervezésnek. A következőkben az FPGA alapú digitális áramkörtervezéshez szükséges ismeretekkel és eszközökkel ismerkedhetünk meg. Ismertetésre kerül a XILINX cég SPARTAN 3 FPGA családja és a hozzá kiadott fejlesztői környezet. Valamint egy Basys 2 nevű FPGA fejlesztői kártya, aminek segítségével a megszerzett tudás kipróbálására islehetőség nyílik. A tananyag végén egy összetettebb projekt keretén belül, négybites CPU tervezésére és szimulációjára kerül sor. 4

15 2. fejezet - A mérés során használt eszközök A következő részben az FPGA alapú tervezés alapjainak elsajátításához szükséges eszközök és szoftverek kerülnek ismertetésre. Természetesen a felsoroltak csak egy lehetőség, sok gyártó sokféle FPGA családot forgalmaz a különböző feladatok megoldására, valamint a tervezőszoftverekből is igen sokféle létezik Spartan 3 FPGA család A Xilinx cég a 90 nm-es technológiával készült Spartan-3 FPGA családot olcsó, közepes bonyolultságú digitális áramkörök megvalósítására tervezte. A felhasználó a családon belül rengeteg különböző méretű, tulajdonságú és tokozású eszköz közül választhat igényeinek és az adott alkalmazásnak megfelelően. A Spartan-3 család öt alapvető programozható funkcionális elemből épül fel (2.1. ábra): Konfigurálható logikai blokkok (CLB-k): Logikai függvények és tároló funkció megvalósítására alkalmas elem. Input/Output blokkok (IOB-k): A be- és kimenetek (a külvilág) valamint a belső logika elemek közötti adatáramlást valósítják meg. Lehetővé teszik a kétirányú és háromállapotú (tri-state) interfészek valamint különböző szabványú és feszültségszintű digitális jelek illesztését. Blokk RAM: Adattárolásra alkalmas memória elem. Szorzó blokk (Multiplier): Két 18-bites bináris szám gyors összeszorzására alkalmas egység. Digitális órajel menedzser blokk (DCM): Az órajelek kezelésére szolgáló programozható egység. Szolgáltatásai: késleltetés, frekvencia szorzás-osztás, fázistolás ábra - A Spartan-3 család belső felépítése [2] 5

16 A mérés során használt eszközök Kapcsolómátrix Az FPGA-n belül egy sűrű vezetékhálózat biztosítja az egyes elemek közötti kapcsolatot. A funkcionális blokkok programozható összeköttetéseken (kapcsoló mátrix) keresztül kapcsolódnak a vezetékhálózathoz. Az FPGA programja (konfigurációja) tulajdonképpen a funkcionális blokkok vezérlőjeleit valamint a kapcsolómátrixok állapotát határozza meg, vagyis, hogy a belső vezetékhálózaton keresztül mely egységek kerüljenek egymással összeköttetésbe. A programot az FPGA-n belül statikus konfigurációs memória tárolja, amelyet a tápegység bekapcsolása után a kívánt logikai funkciónak megfelelő adattal fel kell tölteni. A feltöltés történhet külső PROM-ból, külső mikroprocesszoron keresztül, vagy JTAG interfészen keresztül. A konfigurációs adat előállítását, a konfigurációs memóriák feltöltését, valamint a JTAG interfészen történő programozást a gyártó saját Xilinx ISE programcsomagja támogatja Órajel Az órajelek FPGA-n belüli elosztásáért speciális belső vezetékhálózat felelős, amely a flip-flopok és egyéb órajeles működésű egységek órajel bemeneteihez kapcsolódik. Az órajel hálózathoz speciális bemeneti blokk (GCLK) és meghajtó-multiplexer (BUFGMUX) tartozik. A hálózatra kerülő órajelet a multiplexer választja ki a GCLK bemenetről vagy a DCM valamelyik kimenetéről (2.2. ábra) ábra - Az órajel hálózat részei [1] Az FPGA-n belül megengedett, hogy egy flip-flop egy általános felhasználású bemenetről vagy belső vezetékről kapja az órajelét, a nagy-sebességű szinkron működés biztosítása érdekében azonban ez nem javasolt Konfigurálható logikai blokk A konfigurálható logikai blokkok (CLB-k) az elsődleges építő elemei az FPGA-ban felépített kombinációs vagy szinkron sorrendi hálózatoknak. A CLB-k egymással összeköttetésben lévő szeletekből (SLICE) épülnek fel (2.3. ábra) ábra - A szeletek elhelyezkedése a CLB-ben [2] 6

17 A mérés során használt eszközök A szeletek, típustól függően logikai és memória funkciót (SLICEM) vagy csak logikai funkciót (SLICEL) láthatnak el (2.4. ábra). Mindkét szelet tartalmazza az alábbi összetevőket: Két 4-bemenetű LUT Két tároló elem Két multiplexer Carry és aritmetikai logika A SLICEM szeletek további összetevői: Két 16x1 bit RAM blokk két 16-bites shift-regiszter 2.4. ábra - A szeletek összetevői [2] 7

18 A mérés során használt eszközök Lookup table (LUT) A számítógép (sőt számológép) előtti időkben a bonyolultabb függvényeket egy könyv alakban kinyomtatott táblázat segítségével számították ki, ahol a függvény értékei bizonyos felbontásban és pontossággal voltak megadva, és a táblázatban megadott értékek között lineáris interpolációval számoltak (logaritmustáblák, trigonometrikus függvények, stb.). A megfelelő értékek kikeresése sokkal gyorsabb volt, mint a függvény valamilyen képlettel történő közelítő kiszámítása. Természetesen, valakiknek előzőleg ki kellett számolni a táblázat értékeit, sokszor sok-sok éves munkával. A számítástechnikában a használata azon alapul, hogy egy előre feltöltött tárolóból rendszerint sokkal gyorsabban lehet az adatokat kiolvasni, mint azokat valamilyen algoritmussal kiszámolni. A fixpontos és lebegőpontos aritmetikákban is használnak LUT-ota kezdeti pontosságú érték előállítására, a végső pontosságot már számítással érik el. Az FPGA CLB blokkjában a LUT az adott logikai függvény értékeit tartalmazza, amit a fordítóprogram a logikai rajz alapján állít elő és tárol el benne. 4 bemeneti változó esetén az összes lehetséges logikai függvény száma 64K. A következő példa az alábbi háromváltozós logikai függvény Look-Up-Table lel történő megvalósítását láthatjuk táblázat - A függvény igazságtáblázata: ABCY ábra - LUT 8

19 A mérés során használt eszközök 9

20 A mérés során használt eszközök Erőforrások Az FPGA erőforrásai (CLB, IOB, DCM, RAM és a szorzó) közötti kapcsolatot a kapcsoló mátrixok biztosítják (2.6. ábra). A kapcsoló mátrixok a belső vezetékhálózatra kapcsolódnak, ami horizontálisan és vertikálisan az egész FPGA-t lefedi, így bizonyos megkötésekkel bármely elem bármelyik másikkal összeköttetésbe hozható (2.6. ábra, 2.7. ábra) ábra - Kapcsoló mátrix összeköttetések [2] 2.7. ábra - A részegységek FPGA-n belüli tömbszerkezete [2] A Spartan-3 családról további információ a gyártó honlapján érhető el: 10

21 A mérés során használt eszközök 2.2. Digilent Basys 2 Spartan-3E FPGA Board A mérés során a SPARTAN-3E típust tartalmazó demonstrációs panelt (Digilent Basys 2 Spartan-3E FPGA Board) fogjuk használni (2.8. ábra). A fejlesztőkártya paraméterei a következőek: Xilinx Spartan-3E FPGA, kapu 18-bites szorzók, 72Kbits dual-port block RAM USB 2 port az FPGA konfigurálásához (ingyenes Adept 2.0 szoftverrel) XCF02 Platform Flash ROM az FPGA konfiguráció tárolásához Programozható frekvenciájú oszcillátor (25, 50, and 100 MHz), egy további foglalat kvarc- oszcillátorhoz Stabilizált tápegységek (1.2V, 2.5V, and 3.3V) 8 LED, 4 db. hétszegmenses kijelző, 4 nyomógomb, 8 kapcsoló, PS/2 port, VGA port Felhasználói I/O csatlakozók 2.8. ábra - Digilent Basys 2 Spartan-3E FPGA panel [3] A panelt a hozzá tartozó USB kábel segítségével csatlakoztatjuk a PC-hez. Bár lehetőség van külső tápforrás bekötésére, a tápellátás és a programozás is az USB kábelen keresztül történik. A panel be- és kikapcsolása az SW8 jelű kapcsolóval végezhető. A programozásához szükséges (.bit kiterjesztésű) konfigurációs állományt amelyet a későbbiekben ismertetett Xilinx ISE fejlesztő rendszerrel állítunk elő a panel gyártója által ingyenesen hozzáférhető Adept segédprogram segítségével tölthetjük le közvetlenül az FPGA-ba, vagy a hozzá kapcsolódó külső konfigurációs PROM-ba (Platform Flash). A program kezelői felületét az alábbi ábrán látható (2.9. ábra). A közvetlenül az FPGA-ba töltött konfiguráció a tápfeszültség kikapcsolása után törlődik, a következő bekapcsolást követően az FPGA a Platform Flash-ben tárolt állomány szerint konfigurálódik fel automatikusan. A négy nyomógomb bemenet alapállapotban logikai 0 (L) szinten van. Logikai 1 szint (H) a gomb megnyomásával adható a bemenetekre. A nyolc kapcsoló konstans L vagy H szintet ad a hozzájuk tartozó bemenetekre. A nyolc LED a hozzájuk tartozó kimenetek logikai 1 szintje esetén világítanak (2.10. ábra) ábra - Az Adept program konfigurációs felülete 11

22 A mérés során használt eszközök A négy hétszegmenses kijelző szegmensei és a tizedes pont multiplexált módban vezérelhetők. A CA, CB, CC, CD, CE, CF, CG és DP jelekkel a szegmenseket és a tizedes pontot kapcsolhatjuk ki/be. Az AN0, AN1, AN2 és AN3 jelekkel választhatjuk ki, hogy a négy kijelző közül melyikre vonatkoznak a szegmenseket vezérlő jelek. A vezérlő és kiválasztó jelek megfelelően gyors egymás utáni kapcsolgatásával négydigites számokat jelezhetünk ki ábra - Kapcsolók, nyomógombok és hétszegmenses kijelzők [3] 12

23 A mérés során használt eszközök 13

24 3. fejezet - Xilinx ISE fejlesztő rendszer A Xilinx ISE WebPack (Integrated Software Environment integrált szoftverkörnyezet) a Xilinx cég FPGAihoz és CPLD-ihez kifejlesztett ingyenes szoftvere, amely az internetről, a cég weboldaláról szabadon letölthető. A fejlesztőrendszer tartalmazza mindazon elemeket, amelyek kapcsolási rajz alapú és hardverleíró nyelv alapú fejlesztéshez szükségesek. A mérési segédlet bevezetést kíván nyújtani az áramkörök tervezésébe, célja a tervezési lehetőségek minél szélesebb körben való ismertetése. Elmélyülésre a korlátozott laboridő miatt saját munkával, illetve a konzultációk alatt van lehetőség. A mérések sikeres elvégzését nagymértékben segíti a mérést előkészítő előadás anyagának elsajátítása. Az ISE tervező rendszer alrendszereinek, részeinek működését a Project Navigator szoftver, az ISE keretprogramja fogja össze (3.1. ábra) ábra - A tervezés menete [1] 14

25 Xilinx ISE fejlesztő rendszer A tervező az elképzeléseit, terveit: beviheti kapcsolási rajz (Schematic) formájában, a kapcsolási rajz készítő és beviteli program segítségével. beviheti hardver leíró nyelven. Ezt a HDL editor rész támogatja. A támogatott nyelvek: Verilog és VHDL. A rendszer sok mintaleírást is tartalmaz, úgynevezett sablonok (template) formájában. A bevitel utáni az ellenőrzéssel megbizonyosodunk arról, hogy a terv szerinti áramkör működése megfelel-e a feladat specifikációjának. Az ellenőrzés általában szimulációval történik. A WebPACK rendszer szimulátora a 15

26 Xilinx ISE fejlesztő rendszer Xilinx ISE Simulator. A szimulációs vizsgálathoz a modellt működtetni, gerjeszteni kell, azaz a modell bemeneteire megfelelően változó jeleket kell adni. Ez az úgynevezett tesztvektorok sorozatának ráadásával történik. A tesztvektorokat a tervező HDL leírással adhatja meg (testbench). A régebbi ISE verziókban rendelkezésre álló grafikus felület az újabb verziókban már nem érhető el. Ha a tervet rendben találtuk, akkor következhet a szintézis, amit jelen esetben a Xilinx Synthesis Technology (XST) alrendszer végez, amely ugyancsak az ISE része. A szintézer a HDL leírásból előállít egy minimalizált és optimalizált huzalozási listát, amely az adott FPGA primitíveket (LUT, FF ) és a köztük levő kapcsolatokat tartalmazza. Ezt követik a Translate, a Map és a Place&Route fázisok (összefoglalva: implementáció). A Translate a huzalozási listákból és a felhasználói megkötésekből (constraint-ek) generál egy fájlt, a Map leképezi ezt az adott FPGA primitívkészletére, végül a Place&Route elhelyezi a primitíveket az eszközben és kialakítja a köztük levő fizikai huzalozást. A programozói fájl előállítását követő programozást normál esetben ( égetés ) az IMPACT alrendszer vezérli. A mérések során használt demonstrációs panelhez a panel gyártója saját programozói felületet biztosít Első mintafeladat elkészítése kapcsolási rajz alapú tervezés A Xilinx ISE WebPack segítségével hozzunk létre egy egyszerű példaprogramot a gyakorlópanelen található LED-ek, kapcsolók és nyomógombok tesztelésére! A program ikonjára kattintva, vagy a Start menüből indítsuk el a Xilinx ISE Design Suite ISE Design Tools 32-bit Project Navigator-t. A mintapélda projekt létrehozásához a File menüben válasszuk a New Project parancsot, és töltsük ki a párbeszédablakot az alábbi módon (3.2. ábra). Az ISE fejlesztő környezetben kerülni kell a fájlnevekben és a könyvtárszerkezetben a különleges karaktereket (ékezet, szóköz, vessző, pont, stb). A fájlok, könyvtárak lenevezésekor csak az angol ABC betüit használjuk! A Project Name legyen proba. A rendszer automatikusan létrehoz egy ilyen nevű mappát a Project Location mezőben megadott elérési útnak megfelelően. Az ISE a projekthez tartozó állományokat ebbe a mappába fogja menteni. Top-Level Module Type mezőben a legördülő ablakból válasszuk a Schematic-ot. A Next gombra kattintás után megjelenik a New Project Wizard, a Project Settings táblába írhatunk be paramétereket, válasszuk a próbapanelhez tartozó alábbi értékeket: Family: Spartan3E Device: XC3S100E Package: CP132 Speed : -4 Synthesis Tool: XST (VHDL/Verilog) Simulator: ISim (VHDL/Verilog) 3.2. ábra - Új projekt létrehozása 16

27 Xilinx ISE fejlesztő rendszer 3.3. ábra - Új projekt létrehozása 17

28 Xilinx ISE fejlesztő rendszer A többi paramétert most nem kell változtatnunk. A Next gombra kattintva megjelennek a készülő projekt adatai. A Finish gombra kattintva elkészül a még üres próba projekt. Új modul létrehozásához a Project menüben kattintsunk a New Source parancsra, és válasszuk a Schematic típusú forrást. A létrehozandó modul neve legyen teszt, amit a File name ablakba kell beírni, és jelöljük ki az Add to Project opciót. A Next majd Finish gombra kattintás után egy üres kapcsolási rajz szerkesztő jelenik meg, amiben elkészíthetjük a próbaalkalmazást. A View menüpont Panel alpontjában kijelölhetjük, hogy a szerkesztő ablakban mely segédablakok jelenjenek meg. Egyelőre hagyjuk meg az alapértelmezés szerinti beállításokat. A jobb oldalon a rajzlap, a bal oldalon a Select Options jelenik meg. Itt a rajzolással kapcsolatos néhány paramétert állíthatunk be. Általában a képernyő az alábbi részekre van osztva (3.3. ábra, 3.4. ábra). Alul a Consol látható, ahol a parancsok szöveges formában jelennek meg ábra - A Project Navigator részei 18

29 Xilinx ISE fejlesztő rendszer Kapcsolási rajz készítése A tesztalkalmazásban egy T-tárolókból felépített 4-bites bináris számláló kapcsolást valósítunk meg. A számláló kimeneti bitjei a panelen található LED-eket hajtják meg, így ellenőrizhető a kapcsolás működése. A számlálót a Basys 2 FPGA fejlesztő kártyán található SW0 kapcsolóval engedélyezzük, a BTN0 nyomógombbal pedig nullázhatjuk. A segédablakok közül válasszuk a Symbols fület, ennek segítségével helyezhetjük el a kapcsolási rajzban használt alkatrészeket (3.5. ábra), felül a kategória, alatta a hozzátartozó egyik elem kiválasztásával: FTCE: Engedélyezhető T-flip-flop (4 db, a négybites számlálóhoz) AND3, AND2: három, ill. két bemenetű ÉS kapuk (a bemeneti kombinációs hálózathoz) PULLUP: Pozitív tápfeszültség (logikai magas jelszint (H)) PULLDOWN: Földpont (logikai alacsony jelszint (L)) CONSTANT: Jelnek vagy busznak konstans értékadás. IBUF: Egybites bemeneti buffer (több bites változatai: IBUF4, IBUF8, IBUF16) OBUF: Egybites kimeneti buffer (több bites változatai: OBUF4, OBUF8, OBUF16) Az alkatrészek megkeresése történhet kategóriák (Categories) alapján, de használhatjuk a névkeresőt is (Symbol Name Filter). Az alkatrészek forgatását az Orientation mezőben állíthatjuk be ábra - A Symbols segédablak és a használt alkatrészek 19

30 Xilinx ISE fejlesztő rendszer Az alkatrészek huzalozásakor a következő parancsokat, ill. parancsikonokat fogjuk használni: Select ( ): Kiválasztás/mozgatás. Add Wire ( ): Vezeték hozzáadása. Add Net Name ( ): Vezetékezés elnevezése. Rename Selected Bus ( ): A kijelölt busz átnevezése. 20

31 Xilinx ISE fejlesztő rendszer Add Bus Tap ( ): Buszos vonalra csatlakozás hozzáadása. Add I/O Marker ( ): Be-, kimeneti pontok hozzáadása. Add Symbol ( ): Szimbólum (alkatrész, könyvtári, vagy saját) hozzáadása. Mindegyik művelethez a bal alsó ablakban (Process/Options) találunk beállítási lehetőségeket, illetve műveleteket. A kényelmesebb szerkesztés érdekében megnövelhetjük a lap méretét is. Ezt a rajz területen jobb kattintásra felugró Object Properties parancs kiválasztásával tehetjük meg. A megjelenő ablakban a Sheets sort kiválasztva módosíthatjuk a lap méretét (Size). Vezeték vagy busz elnevezéséhez válasszuk az Add Net Name parancsot majd a bal alsó ablakban az Options fülnél a Name sorba írjuk a nevet. Ezután kattintsunk az elnevezni kívánt vezetékre. A vezetékek neveire a kapcsolási rajz átláthatósága érdekében is hivatkozhatunk, ugyanis ha két vagy több vezetéket ugyan úgy nevezünk el, az olyan, mintha fizikailag összehuzaloztuk volna őket (lásd az és kapuk bemeneteit és a tárolók kimeneteit). A tárolók q(0), q(1), q(2) és q(3) kimenetei a speciális q(7:0) un. buszvezetékre csatlakoznak (buszvezetékeket a kapcsolási rajzokban az összetartozó vezetékek ábrázolása érdekében használunk). A buszok, illetve leágazásaik elnevezése utal arra, hogy adott buszon belül melyik vonalra (bitre) csatlakozunk. Az előző példa (3.5.ábra) kapcsolásán a q(7:0) jel egy 8 bites busz, melyre az adott helyértékű bitvezeték (q(0) q(7)) buszcsatlakozáson (Bus Tap) keresztül kapcsolódik. A kapcsolódás be- és kimeneti jelei I/O buffer-eken keresztül kapcsolódnak a külvilágot reprezentáló I/O Markerekhez. A CLK, ENABLE, és CLEAR bemenetekre IBUF, a LED(7:0) kimenetekre pedig OBUF (itt egy 8 bites OBUF8) elemeket helyezünk el, ez a szabályos megoldás. Az automatikus buffer-elhelyezés miatt a kapcsolás ezek nélkül is implementálható, de a be- és kimenetek nincsenek optimálisan bufferelve. Az IBUF és OBUF elemekkel számos beállítás mellett pl. a logikai családhoz, illetve a logikai szintekhez való illesztés valósítható meg. A rajz ellenőrzése az alsó Processes területen kibontva a Design Utilities-t, a Check Design Rules-ra kattintva fut le, ami ha jó, egy zöld pipa jelenik meg mellette. Ugyanezt tehetjük meg a Tools > Check Schematic paranccsal A kapcsolás ellenőrzése szimulációval Teszteljük le a kapcsolás működését szimulációval! Ehhez létre kell hoznunk egy ellenőrzési környezetet (testbench, tesztelési környezet) melyben az egységet működtető gerjesztő jeleket és jelformákat definiáljuk. Régebbi ISE verziókban lehetőség volt a gerjesztő-jelek grafikus felületen történő megadására, az újabb verziókból azonban kikerült ez a funkció, így az egyetlen lehetőség a HDL nyelvű leírás. A gyakorlatokon nem cél a HDL nyelvek ismertetése, ezért a tesztkörnyezetet leíró forrást nem kell elkészíteni, a kész forrásokat csak a projekthez kell adni Szimulációs fájl készítése Az elkészült projekthez szimulációs fájlt a Design/Simulation ablakban, az Add New Source opcióval lehet hozzáadni (3.6. ábra). Fontos hogy minden port nevet adjunk meg a kapcsolási rajzon a szimulációs fájl elkészítése előtt, mert a program az aktuális port neveket használja fel a sablon elkészítésére ábra - Szimulációs fájl hozzáadása a projekthez 21

32 Xilinx ISE fejlesztő rendszer Ezután a VHDL Test Bench opciót válasszuk és adjuk meg a tesztfájl nevét (teszt_tb). A Next gomb lenyomása után a program megkérdezi melyik forrásfájlhoz készül a tesztfájl. Itt válasszuk a fő kapcsolási rajzot (példánkban: teszt.sch), majd válasszuka Next gombot, végül kattintsunk a Finish gombra. Az ISE által generált sablon fájl tartalmazza a ki- és bemeneti portokat és a VHDL fájl keretét. Ha mindent jól csináltunk a következő VHDL fájlt kapjuk eredményül: vhd-1. ábra -../section/src/codetestbrench1.vhd 22

33 Xilinx ISE fejlesztő rendszer A vizsgálójelek előállításához az alapértelmezett tesztfájlt módosítani kell. Az első kiegészítéssel adjuk hozzá a szimulációhoz a számlálót működtető 1MHz-es órajelet (CLK). A kódba a constantclk_period : time :=1us; sor beszúrásával definiálásra kerül az órajel periódusideje és a clk_process : processbegin. end process-el az órajel előállításra kerül. Amennyiben nem CLK az órajel port neve, módosítani kell az általunk használt névre. A fenti kiegészítéseket elvégezve, a szimuláció során a CLK bemeneti porton egy 1 us periódusidejű órajel jelenik meg. vhd-2. ábra -../sections/src/codetestbrench2.vhd 23

34 Xilinx ISE fejlesztő rendszer A jeleknek értéket a "<=" értékadó utasítással lehet adni (példa: ENABLE<= 1 ). Buszvezetékeknél értékadás binárisan történik (példa egy négybites busz értékadására: INB<="1011"). A jelek beállítása után a wait for paranccsal adhatjuk meg mennyi ideig maradjanak meg a beállított értékek. Lehetőség van kész VHDL testbench-et hozzáadni a projekthez. A "valami_tb.vhd" fájlt ami tartalmazza a szimulációs környezetet, célszerű a projekt könyvtárába másolni, majd a Project menü Add Source parancsával adhatjuk hozzá a projekthez. A megjelenő Adding Source Files ablakban az Association alatt a Simulation kell, hogy legyen. A szimuláció elindítása a korábban ismertetett módon történik. A szimuláció elindításához a Design segédablakban jelöljük be a Simulation rádiógombot, majd jelöljük ki a megjelenő "teszt_tb.vhd" fájlt. Kibontva a Isim Simulatort az alsó segédablakban, megjelenik a Simulate Behavioral Model parancs, amivel elindíthatjuk az ISE szimulátorát. A szimuláció lépéseit alul, a Console területen láthatjuk. A szimuláció során a CLK órajel, az ENABLE és a CLEAR vezérlő jelek a VHDL forrásban megadottak szerint változnak. A szimuláció eredménye egy új ablakban fog megjelenni (3.7. ábra, a képen látható eredmény a Zoom to Full View ikonra kattintás után látható). A Zoom In, Zoom Out, Zoom to Full View ikonokkal (3.7. ábra, piros téglalappal jelölt 24

35 Xilinx ISE fejlesztő rendszer rész) tudjuk a megjelenített időtartományt módosítani. A Restart ikon újraindítja a szimulátort, törli a megjelenített idődiagramot, Run for the time specified on toolbar ikon lenyomásakor a szimuláció a beállított időegységnyit lép előre ábra - A szimuláció eredménye a Xilinx ISE Simulator hullámforma ablakában. Az egyes jelnevekre a jobb gombbal kattintva lehetőség van a kijelzés formátumát megváltoztatni. A led[7:0] kimenet esetén ezt (jobb gomb, Radix / Hexadecimal) hexadecimálisra állítva máris könnyebben ellenőrizhető a helyes működés ábra - Kijelzés formátuma Sokszor nagyon hasznos a modulok belső jeleit vizsgálni, ennek elvégzéséhez nem szükséges ezeket a jeleket kivezetni a modulból, a szimulátorban egyszerűen hozzáadhatjuk őket a Wave ablakhoz. A szimuláció a View>Panels> Instance and Process Name bal oldali ablakában megjelenik a szimulációs hierarchia, amelyben megtalálható (UUT unit under test néven) a tesztelés alatt álló kapcsolási rajz modul. A View>Panels>Objects ablakban látjuk a modul összes jelét, melyek közül a vizsgálni kívánt jel egyszerű dragand-drop módszerrel adható hozzá a Wave ablakhoz (3.9. ábra). Ezután már csak a szimuláció újraindítására van szükség ahhoz, hogy a jelek értékeit figyelemmel tudjuk követni (Kék, enter-szerű gomb a felső menüben, majd 25

36 Xilinx ISE fejlesztő rendszer a homokórás play-szerű gomb, amelyet nyomkodva, a mellette beállított értéknek megfelelő időt haladunk a szimulációban) ábra - További jelek hozzáadása Lehetőség van a szimulációs beállítások mentésére, ezt a File>Save paranccsal tehetjük meg. Az elmentett *.wcfg fájlt a szimulátorban megnyitva, visszaállítható a korábbi konfiguráció. A szimulátor bezárásakor, ha nincs elmentve a szimulátor konfigurációja, a program megkérdezi, hogy szeretnénk e menteni a beállításokat Makró hozzáadása meglévő projekthez Minden az ISE kapcsolási rajz szerkesztőjében használt makróhoz két fájl tartozik. Az egyik egy szimbólumfájl (*.sym), ami leírja a makró kapcsolási rajzon való megjelenését. A másik a működést leíró fájl, ami lehet kapcsolási rajz (*.sch), vagy HDL (*.vhd) alapú. Ha makrót akarunk a rajzból készíteni későbbi felhasználásra, akkor a portok be- és kimenetekre történő hozzáadása után, a Design ablak alsó Processes részén kibontva a Design Utilities menü-pontot rá kell kattintanunk a Create Schematic Symbol-ra. Az eddigi rajz neve alatt egy új elem jelenik meg, amit egy másik rajzra le is tehetünk. Ha rögtön makrót akarunk készíteni, akkor más az eljárás. A Project Navigator-ban, kiválasztva a Project > New Source menüpontot, megjelenik a New Source Wizard ablak. A forrás típusaként kiválasztjuk a rajzot (Schematic), megadjuk a fájl nevét és helyét majd a Next és Finish megnyomása után hozzáadódik a projekthez és megnyílik az adott nevű üres rajz. Ezután i/o portokat kell a rajzhoz hozzáadnunk a Tools > Create I/O Markers segítségével. A megjelenő dialógus dobozba be kell írni sorban, vesszővel elválasztva, az összes bemeneti, kimeneti és esetleg kétirányú port nevét. Az üres rajzon megjelennek a portok, ezután hozzárajzoljuk a makró többi részét. Ha kész, el kell mentenünk Példa kapcsolási rajz alapú makró készítésére A következő példa során a korábbi négybites számlálót felhasználva készítjük el a makrónkat, így később lehetőség nyílik rá, hogy a számlálót önálló szimbólumként kezeljük. A ábra szerint módosítsuk az előző feladatban szereplő számlálót. A korábbi kapcsolási rajzhoz képest csak a kimeneti busz szélessége változott, valamint a ki és bemeneti portokon csak IO markerek találhatóak. Az IO markereket a "ADD" I/O Marker" nevű gombbal lehet hozzáadni. IBUF-ra és OBUF-ra csak olyan portok esetén van szükség ami a külvilággal tart kapcsolatot. Az I/O markerekhez kapcsolódó vezeték neve lesz az IO marker neve és ez lesz a makró ki- és bemeneti portjának a nev is. A kapcsolási rajzot kijelölve, megjelenik a "Create Schematic Symbol" opció (3.10. ábra). Ezt a processt futtatva elkészül a makró (létrejön egy sym kiterjesztésű fájl a kapcsolási rajz mellett) ábra - Kapcsolási rajz módosítása 26

37 Xilinx ISE fejlesztő rendszer A fejlesztő környezet parancssorában a makró sikeres elkészítését a következő üzenet jelzi: "Process completed successfully". A szimbólumok között ezután már megtalálható a makró szimbólum (3.11. ábra) ábra - Elkészült makró kiválasztása A makró tartalmát a "View" menü "Push into Symbol" gombjával lehet megtekinteni. Előtte szükséges kijelölni a makrót, a kapcsolási rajzon! A korábbi teszt.sch fájl most szimbólum fájlként létezik, így szükséges egy új kapcsolási rajz fájl hozzáadása a projekthez, aminek adjuk a teszt_macro.sch nevet (3.12. ábra). Az új kapcsolási rajz file jelenleg nem "Top Modul", ezért módosítsuk a teszt_macro.sch fájl beállításait top modul szintűre (3.12. ábra) ábra - Top modul 27

38 Xilinx ISE fejlesztő rendszer Kapcsolási rajz alapú saját makró módosítása Ha a változtatás nem érinti a makró ki- és bemeneti portjait, akkor a "Push into Symbol" paranccsal megnyitva lehetőség van a makró módosítására. A változásokat minden esetben el kell menteni. Amennyiben a változás a makró megjelenésére is kihat, például új portot kell hozzáadni, törölni, vagy port nevet kell változtatni, akkor a következőképpen kell eljárni. Első lépésként meg kell nyitni a makrót tartalmazó sch fájlt. Ezt a "Push into Symbol" paranccsal, vagy a "Design" ablakban a kapcsolási rajzra kétszer kattintva lehet megtenni. Végezzük el a változtatásokat a makró fájlon. A példában a régi rajzot egészítsük ki egy új kimenettel, ami a számláló 15-ös értékét jelzi (3.13. ábra) ábra - Kimenet 28

39 Xilinx ISE fejlesztő rendszer A módosítások mentése után a teszt.sch kapcsolási rajz fájlt kijelölve, a "Create Schemetic Symbol" parancs-ra jobb gombbal kattintva a "Process Properties..." opciót kiválasztva engedélyezni kell a létező szimbólumfájl felülírását, úgy hogy az "Owerwrite Existing Symbol" jelölő négyzetet bepipáljuk. A "Run" parancs futtatásával módosul a makró megjelenését leíró szimbólum fájl. Ha valamelyik kapcsolási rajzban használunk egy ilyen makrót, amit módosítottunk, majd a makró megjelenésére kiható változtattatást hajtunk végre, a kapcsolási rajz szerkesztőben "Obsolate Symbols" ablak jelenik meg. Az "Update" paranccsal frissíthetjük a kijelölt objektumra vonatkozó módosításokat (3.14. ábra) ábra - Kapcsolási rajz alapú makró módosítása Ha a makró újrafordítása után nem kínálja fel a program a makró szimbólum frissítését, és a kapcsolási rajzon nem is változik meg a makró megjelenése, akkor újra kell indítani az ISE fejlesztőkörnyezetet (előtte mindent mentsünk el!). Az újraindulás után már a módosított szimbólumnak kell megjelennie (3.15. ábra) ábra - Módosított szimbólumfájl 29

40 Xilinx ISE fejlesztő rendszer A szimbólumfájl külső megjelenésén is lehetőség van módosítani. A kapcsolási rajzon elhelyezett teszt nevű makró fájlra jobb gombbal kattintva válasszuk a Symbol->Edit Symbol opciót (3.16. ábra) ábra - Makró szerkesztés Kapcsolási rajz alapú saját makró hozzáadása projekthez Másoljuk át a makró fájlokat a projektkönyvtárba. A makró megjelenését és működését egy azonos nevű *.sym és egy *.sch kiterjesztésű fájl írja le. A *.sch fájlt az Add Source paranccsal a projekthez kell adni. Mivel korábban átmásoltuk a projektkönyvtárunkban kell lennie. Fontos, hogy a fájlok másolása után hajtsuk végre ezt a lépés. Végül a szimbólumok között megjelenik az új makró. Lehetőség van a projekthez hozzáadott makró tartalmának megtekintésére. A makró szimbólum kijelölése után a View menü Push into Symbol gombjára kattintva megjelenik a működést leíró fájl VHDL alapú saját makró hozzáadása projekthez Másoljuk át a makró fájlokat a projektkönyvtárba. A makró megjelenését és működését egy azonos nevű *.sym és egy *.vhd kiterjesztésű fájl írja le. A *.vhd fájlt az Add Source paranccsal a projekthez kell adni. Mivel korábban átmásoltuk a projektkönyvtárunkban kell lennie. Fontos, hogy a fájlok másolása után hajtsuk végre ezt a lépés, mert az ISE ellenkező esetben a *.vhd fájlt felülírhatja egy template fájllal. Végül a szimbólumok között megjelenik az új makró. Lehetőség van a projekthez hozzáadott makró tartalmának megtekintésére. A makró szimbólum kijelölése után a View menü Push into Symbol gombjára kattintva megjelenik a működést leíró fájl Kapcsolási rajz elkészítése a makró használatával 30

41 Xilinx ISE fejlesztő rendszer Készítsünk egy új kapcsolási rajzot "teszt_macro.sch" néven. A ábra szerint készítsük el a kapcsolási rajzot. Felhasználva a négybites számláló makrót, készíthetünk 8 bites számlálót. Figyeljünk rá, hogy a "teszt_macro.sch" rajz legyen a topmodul (3.18. ábra) ábra - 8 bites számláló kapcsolási rajza Az áramkör szimulációját hasonló képen végezzük el, mint a 4 bites számláló esetében. A tesztfájl elkészítése után a következő VHDL kódot használjuk fel ábra - 8 bites számláló fájlok vhd-3. ábra -../sections/src/codetestbrench3.vhd 31

42 Xilinx ISE fejlesztő rendszer A szimuláció lefuttatása után a ábra szerinti eredményt kell kapnunk ábra - 8 bites számláló szimulációs eredmény 3.4. A kapcsolás hardveres ellenőrzése 32

43 Xilinx ISE fejlesztő rendszer Jelöljük be az Implementation rádiógombot a Design panelen. A Project menü Add Source parancsával adjuk hozzá a projekthez a laborok során használt Basys2 fejlesztőpanel alapértelmezett lábkiosztását és a felhasználói megkötéseket (constraint-ek) tartalmazó Basys2_100_250General.ucf fájlt. A Megnyitás és OK gombok megnyomása után a projektben megjelenik a kiválasztott fájl, amit kettős kattintással szerkesztésre meg is nyithatunk (3.20. ábra). A fájl egyéb itt nem részletezett felhasználói megkötések mellett a kapcsolási rajzban használt vezetékek neveit (NET) és a hozzájuk tartozó FPGA IC kivezetések (lábak) összerendeléseit definiálja ábra - A Basys2_100_250General.ucf fájl A "Basys2_100_250General.ucf" fájl az FPGA összes panelen bekötött kivezetéséhez alapértelmezett belső vezetékneveket rendel. Az alapértelmezett elnevezések segítenek a panelen való tájékozódásnál, azonban nincsenek összhangban a kapcsolási rajzban általunk használt I/O Marker nevekkel, emellett legtöbbjüket nem is használjuk (3.21. ábra). vhd-4. ábra -../sections/src/codeucfclk4bit.vhd 33

44 Xilinx ISE fejlesztő rendszer A helyes működéshez, módosítsuk az alapértelmezett ucf fájlt az alábbiak szerint ábra - UCF Ezzel a kapcsolási rajzunk Led(7:0) kimeneteit a panelen található LED-ekhez, az ENABLE bemenetet az SW0 kapcsolóhoz a CLK és CLEAR bemeneteket pedig a BTN1 és BTN0 nyomógombokhoz rendeltük (a buszvezetékek elnevezésében szereplő zárójelek az.ucf-fájlban <> karakterekkel helyettesítendők). Az összes többi nem használt vezetékek definíciót tartalmazó sorokat a # karakterrel alakítsuk megjegyzéssé (comment), vagy töröljük. Mentsük el a változtatásokat. A kapcsolás implementálásához és az FPGA konfigurációs állományának előállításához a Design segédablakban jelöljük ki a teszt.sch kapcsolási rajzot. Ennek hatására a Processes ablakban az Implement Design kibontásakor megjelenik a Generate Programming File parancs, amelynek feladata, hogy létrehozza az FPGA-ba letölthető teszt.bit állományt. Ez általában elég sokáig tart, a művelet lépéseit a Console területen követhetjük. Először a parancs futtatásának eredménye hibaüzenet, amit az Errors ablakban tekinthetünk meg. Mivel a kapcsolásban a tárolók órajele nem dedikált órajel vezetéken keresztül kerül az FPGA-ba, a program figyelmeztet. Mivel esetünkben ez a nem optimális vezetékezés elfogadható, az ucf-fájlban el kell helyeznünk a NET "CLK" CLOCK_DEDICATED_ROUTE = FALSE; kiegészítést. Az újabb Generate Programming File parancs futtatásakor a fenti hibajelzés már csak a Warnings ablakban jelenik meg. Az elkészült konfigurációs állományt ( teszt.bit ) a korábban ismertetett Adept program segítségével letölthetjük az FPGA-ba. 34

45 Xilinx ISE fejlesztő rendszer A konfigurációs fájl letöltése az FPGA-ba Először telepíteni kell az Adept kezelő programot (jelenleg digilent.adept.system_v2.8.1.exe), ezt még azelőtt kell megtenni, mielőtt a tesztkártyát az PC-hez csatlakoztatnánk. Csatlakoztatáskor a Windows észreveszi az új hardvert, engedélyezni kell a driver telepítését. Az Adept indulásakor észreveszi, hogy melyik eszköz van csatlakoztatva. A Config fül kiválasztásával Browse-ra kattintva kikeressük az adott bit kiterjesztésű fájlunkat és bevisszük az FPGA melletti edit box-ba. A Program gombra kattintva megtörténik a letöltés, és a kártyán azt látjuk, ami sikerült Az órajel bemenet prellmentesítése A prellezés (a mechanikusan működő villamos érintkezők egymáson való pattogása) miatt az órajelet szolgáltató BTN1 nyomógomb nem mindig ad rögtön stabil jelet. Rövid ideig egyszeri lenyomás hatására is két állapot között pereg, ezzel többszöri 0 -> 1 átmenetet adhat a tárolók órajel bemenetére. Ennek a jelenségnek a kiküszöbölésére módosítsuk a kapcsolást a ábra szerint, az ucf-fájlt pedig az alábbiak szerint. vhd-5. ábra -../sections/src/codeucfclkprell.vhd Az aszinkron törlés és beállítás (CLR, PRE) bemenetekkel rendelkező FDCP flip-flop az UP bemenetre csatlakozó BTN3 nyomógomb megnyomásával (preset) logikai 1 szintre vált, a DOWN bemenetre csatlakozó BTN2 nyomógomb megnyomásával (clear) pedig logikai 0 szintre vált. Egy teljes órajel periódust (felfutó él - lefutó él) a BTN3 és BTN2 nyomógombok egymás utáni lenyomásával hozhatunk létre ábra - A teszt.sch kapcsolási rajz módosítása 35

46 4. fejezet - Egyszerű kombinációs hálózatok 4.1. Multiplexer, demultiplexer Multiplexer A multiplexer egy olyan áramkör, amely több bemenet közül egyet enged tovább a kimenetén, méghozzá azt a bemenetet, amelynek a címe rákerül a címző bemenetre. Ez a leggyakrabban használt kombinációs hálózat bemenetű multiplexer Legegyszerűbb esetben a cím egybites select jel (S), ami két bemenet közül (I0, I1) választ ki egyet (4.1. ábra, 4.2. ábra). A két bemenetű multiplexer igazságtáblája a következő: 4.1. táblázat - Egybemenetű multiplexer igazságtáblázata SY 0I 0 1I ábra - Két bemenetű multiplexer kapcsolási rajza 4.2. ábra - Két bemenetű multiplexer logikai rajza 36

47 Egyszerű kombinációs hálózatok A multiplexert legtöbbször bonyolult adatutak kialakítására használják pl. a processzorok ALU-jában. Vannak egyéb alkalmazási, ezek közül először kettőt mutatunk meg bemenetű multiplexer A multiplexer címbitjeinek eggyel való megnövelése a bemenetek számának a kétszeresét teszi lehetővé. Így két címbit esetén kapjuk a 4-bemenetű multiplexert (4.3. ábra, 4.4. ábra). A négy bemenetű multiplexer igazságtáblája a következő: 4.2. táblázat - Kétbemenetű multiplexer igazságtáblázata SSY 10 00I 0 01I 1 10I 2 11I ábra - Négy bemenetű multiplexer logikai rajza 37

48 Egyszerű kombinációs hálózatok 4.4. ábra - Négy bemenetű multiplexer kapcsolási rajza 38

49 Egyszerű kombinációs hálózatok A nagyobb számú bemenetekkel rendelkező multiplexer tervezése kétféleképpen lehetséges: a megfelelő számú kapuból megtervezve, vagy kisebb multiplexerek felhasználásával. Például egy 16 bemenetű multiplexert így is megtervezhetünk. Ez ugyan redundáns a felhasznált kapuk számát illetően, de lehet, hogy az alkatrészkészlet ezt a megoldást teszi alkalmasabbá (4.5. ábra) ábra - 16 bemenetű multiplexer tervezése kisebb multiplexerek felhasználásával 39

50 Egyszerű kombinációs hálózatok A multiplexer lehetőséget nyújt look-up table megvalósítására (4.6. ábra). Az általunk használt FPGA CLBjében 4-bemenetű LUT található tetszőleges 4-változós logikai függvény előállítására. Ha ezt egy tárolóval oldanák meg, minden egyesclb-ben egy 64K bites tárolóra lenne szükség az összes logikai függvény előállítására. Ehelyett pl. egy 16 bites regiszter és egy 16 bemenetű multiplexer elegendő. A multiplexer címbitjeire csatlakozik az adott logikai függvény 4 változója. A rajz alapján a szoftver kiszámolja, hogy melyik logikai függvény kell a megvalósításhoz, és a 4 bemenet összes kombinációjának megfelelő 16 kimeneti bitet betölti egy 16 bites regiszterbe, amelynek kimenetei csatlakoznak a multiplexer megfelelő címzésű bemenetéhez. Látható, hogy egy ilyen megoldás erőforrás igénye lényegesen kisebb ábra - Look-up table megvalósítása multiplexer segítségével 40

51 Egyszerű kombinációs hálózatok Latch A latch egy olyan tároló elem, amely nem órajelre (élre) működik, hanem egy engedélyező jel megléte esetén az áramkör transzparens, azaz átengedi a bemenetén lévő jelet, az engedélyező jel megszűnésére az utolsó értéket tárolja. Az alábbi rajzon az engedélyező jel aktív értéke az első esetben magas, a másik esetben alacsony (4.7. ábra) ábra - Latch Korrekt flip-flop órajel engedélyezés 41

52 Egyszerű kombinációs hálózatok Az órajelre működő szinkron hálózatok esetén fontos, hogy az összes tároló egyszerre billenjen, ellenkező esetben rövid időre hazárd állapotok léphetnek fel. Ezenkívül a dinamikus bemeneten a jelnek stabilnak kell lennie bizonyos idővel az órajel felfutása előtt és után. Ez az áramkörre jellemző katalógus érték (setup time, hold time). Ha ezek a feltételek nem teljesülnek a flip-flop működése bizonytalanná válik, ha például az órajelet kapuzzuk, így plusz késleltetést viszünk bele. Ezért a korrekt megoldást egy multiplexeren áthaladó enable jel biztosítja (4.8. ábra). az első esetben egy D flip-flop, a másodikban egy T flip-flop esetében. Az első esetben, ha az órajel nincs engedélyezve, az órajelre saját magát írja be újra meg újra, ugyanaz a hatás, mintha nem lenne órajel. A második esetben a bemenetre 0 kerül, így a T flip-flop nem billen ábra - Korrekt flip-flop órajel engedélyezés Demultiplexer A demultiplexer működése a multiplexerének a fordítottja. Egy bemenete van, és a címző bemenetek határozzák meg, hogy melyik kimeneten megy ki a jel (4.9. ábra, ábra). A többi kimenet állapota inaktív. A felhasználási területe főként a számítástechnika ábra - Négy kimenetű demultiplexer 42

53 Egyszerű kombinációs hálózatok ábra - Négy kimenetű demultiplexer kapcsolási rajza Laborfeladat Tervezzen meg egy 8-bemenetű multiplexert. Az adatbemeneteket a Digilent Basys2 kártyán lévő SW0-SW7 kapcsolókon lehessen beállítani, a címző bemeneteket a multiplexer bemenetére csatlakozó 3-bites számláló kimenete adja. A számláló órajelét a BTN0 nyomógomb adja. A helyi értékek megfelelnek a kapcsolók és a 43

54 Egyszerű kombinációs hálózatok számláló kimeneteinek indexének. Végezze el az áramkör szimulációját, és ha jó, fordítsa le, a kapott bit kiterjesztésű fájlt töltse le a Basys2 kártyába, és a kapcsolók és az órajel nyomógomb segítségével próbálja ki az áramkör működését Alkalmazandó műszerek és eszközök PC számítógép Digilent Basys2 Spartan-3E FPGA mérőpanel Digilent Adept konfiguráló szoftver 4.2. Kódolók Komparátorok (Magnitude Comparators) A digitális komparátorok 2 azonos bitszélességű bináris értéket hasonlítanak össze, egyszerűbb esetben csak az egyenlőséget jelezve, de az un. magnitude komparátorok ezen kívül a kisebb-nagyobb relációt is jelzik (4.11. ábra) ábra - 2-szer 4-bites komparátor blokkrajza A két bemenet A(3:0) és B(3:0), az EQ kimenet igaz volta az egyenlőséget (equal), a BGA a B(3:0) a nagyobb voltát, (B greater), az AGB az A(3:0) nagyobb relációt jelenti. A relációt a legnagyobb helyi érték dönti el, ha egyenlők, akkor a következő helyi érték, stb. (4.3. táblázat) 4.3. táblázat - Magnitude Comparator igazságtáblázata 44

55 Egyszerű kombinációs hálózatok AB AB AB AB AB E GQ BA 10xxxxxx100 01xxxxxx010 ==10xxxx100 ==01xxxx010 ====10xx100 ====01xx010 ======10100 ======01010 ========001 Miután az A nagyobb, a B nagyobb és A=B relációk egymást kizárják, ezért az előző igazságtábla redundáns, egyszerűsíthető (4.4. táblázat). Így, ha AGB=0 és EQ=0, akkor BGA=1 (4.12. ábra) táblázat - Magnitude Comparator egyszerűsített igazságtáblázata AB AB AB AB AE GQ B 10xxxxxx10 ==10xxxx10 ====10xx10 = = = = = = = = = = = = = = ábra - Magnitude Comparator egy áramköri megvalósítása 45

56 Egyszerű kombinációs hálózatok Enkóderek Az encoder (átkódoló, kódoló stb.) egy olyan áramkör, amely az információt valamely formából valamilyen másikba alakítja át. (Természetesen, van sokkal precízebb definíció is). Mi két átkódolóval foglalkozunk, az egyszerű átkódolóval és a priority átkódolóval. Az egyszerű átkódoló a sorszámozott egyedi bemeneteket (one hot) átkódolja a sorszám (v. index) bináris kódjává (4.5. táblázat, ábra). A bemenetek közül egy és csakis egy lehet aktív. Az áramkör nem tudja megkülönböztetni azt, hogy az I0 bemenet van, vagy egy bemenet sincs táblázat - 8-ról 3-ra enkóder igazságtáblázata Y 210 I 000 n 0 I 001 n 1 I 010 n 2 I 011 n 3 I 100 n 46

57 Egyszerű kombinációs hálózatok 4 I 101 n 5 I 110 n 6 I 111 n ábra - 8_to_3 enkóder egy áramköri megvalósítása: Prioritáskódoló (priority encoder) A prioritáskódoló esetében egyszerre több bemenet is lehet, a kimeneten a legnagyobb prioritású jel indexe jelenik meg binárisan. Ezen kívül van egy kimenet, amely jelzi, hogy legalább egy bemenet aktív. A következőkben láthatunk példát egy 4 bites (4.6. táblázat) és egy 8 bites (4.7. táblázat) prioritás kódolóra (4.14. ábra, ábra, ábra) táblázat - 4 bites prioritáskódoló igazságtáblázata, (4.1), (4.2), (4.3) I I I I OOI 47

58 Egyszerű kombinációs hálózatok nnnnuut 0123t t xx x xx10101 xxx egyenlet - (4.1) 4.2. egyenlet - (4.2) 4.3. egyenlet - (4.3) 4.7. táblázat - 8 bites prioritáskódoló igazságtáblázata, (4.4), (4.5), (4.6), (4.7) I I I I I I I I OI nnnnnnnnuuut t t t 210 xxxxxxx11111 xxxxxx xxxxx xxxx xxx xx x x x x egyenlet - (4.4) 4.5. egyenlet - (4.5) 4.6. egyenlet - (4.6) 4.7. egyenlet - (4.7) ábra - 8 bites prioritáskódoló rajzjele 48

59 Egyszerű kombinációs hálózatok ábra - 8 bites prioritáskódoló blokkrajza ábra - A 8 bites prioritáskódoló megvalósítása 2 4 bitesből 49

60 Egyszerű kombinációs hálózatok Dekóder A dekóder a kódoló inverze, visszaalakítja az információt a kezdetire. Az egyszerű dekóder esetében a binárisan kódolt bemenetet egy és csakis egy (one hot) kimeneti jelre ről 1-re dekóder engedélyező jellel 4.8. táblázat - 4-ről 1-re dekóder igazságtáblázata ESS O N1 0 U TTT T ábra - 4-ről 1-re dekóder blokkrajza 50

61 Egyszerű kombinációs hálózatok ábra - 4-ről 1-re dekóder engedélyező jellel egy áramköri megvalósítása Laborfeladat Tervezzen 2 2 bites komparátorból 2 4 bitest! A 2 2 bites komparátor bemenetei: A0, A1, B0, B1, EQin, AGin kimenetei: EQout, AGout. Az igazságtábla alapján tervezze meg az áramkört, legfelsőbb szintű rajzot top.schnak nevezze el! A szimulációhoz használja a kiadott tesztfájlt (testbench, tb_.vhd). A BASYS2 kártya portjaiból a következőket használja: 4.9. táblázat - Portkiosztás SSSS SSSS BL L WT TEE 51

62 Egyszerű kombinációs hálózatok NN D 0101 A BE AE A QG QG i i oo nnuu t t Alkalmazandó műszerek és eszközök PC számítógép Digilent Basys2 Spartan-3E FPGA mérőpanel Digilent Adept konfiguráló szoftver 4.3. Ö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 félösszeadó (half adder) (4.10. táblázat, ábra) táblázat - A két bites félösszeadó igazságtáblázata, (4.8), (4.9) I I SC nnuo 01mu t egyenlet - (4.8) 4.9. egyenlet - (4.9) ábra - Félösszeadó áramkör kapcsolási rajza 52

63 Egyszerű kombinációs hálózatok Teljes összeadó (full adder) A teljes összeadó egy logikai áramkör, ami összeadás műveletet valósít meg három bináris számjegy között (4.11. táblázat, ábra, ábra, ábra). A teljes összeadó egy összeg és egy átvitel értéket szolgáltat, melyek mind bináris számjegyek. Kombinálható más teljes összeadókkal vagy egymaga is dolgozhat táblázat - A két bites teljes összeadó igazságtáblázata, (4.10), (4.11) I I CS C nni uo 01nmu t egyenlet - (4.10) egyenlet - (4.11) ábra - Teljes összeadó egy megvalósítása 53

64 Egyszerű kombinációs hálózatok ábra - Teljes összeadó egy megvalósítása 54

65 Egyszerű kombinációs hálózatok ábra - Teljes összeadó megvalósítása félösszeadó áramkörök segítségével Több bit bites összeadó áramkörben (4.23. ábra) minden helyi értékre kell egy teljes összeadó, az előző helyi érték átvitel kimenete van csatlakoztatva az adott átvitel bemenetére (COUTn-1 -> CINn). Ha kivonást is akarunk végeztetni az összeadónkkal, akkor a második operandus kettes komplemensét (bitenként negált +1) kell az elsőhöz hozzáadnunk. A negálást exkluzív vagy kapuval, az egyes hozzáadását az első helyi értéken a CIN-re adott egyessel oldhatjuk meg. A sorba kapcsolt összeadókkal történő megoldást ripple carry módnak hívjuk. Ennek a megoldásnak az a hátránya, hogy meg kell várnunk, amíg az egyes átvitelek végighaladnak az összes összeadón. Ezért alkalmaznak gyorsítókat (look ahead carry) ábra - 4 bites összeadó áramkör 55

66 Egyszerű kombinációs hálózatok BCD összeadó A decimális összeadónál is használhatunk hexa összeadót (4.24. ábra). A bemenet itt is 2db 4 bites operandusból és a bemenő átvitelből áll, de az operandusok maximális értéke 9 lehet, és ez a tervező felelőssége. Átvitel akkor keletkezik,amikor az összeg 10 vagy annál nagyobb, maximálisan 19 lehet. Ha az összeg eléri vagy meghaladja a tízes értékek, ki kell adnunk az átvitel jelet a következő helyi érték felé (a 3 kapuval megoldva), és a bináris értékből le kell vonnunk tízet. Miután modulo 16-ban dolgozunk, ez ekvivalens a 6 hozzáadásával, és ez az egyszerűbb. Ha az összeadás értéke 9 vagy kisebb, a második összeadóval még hozzáadunk 0-t (látszólag feleslegesen). A COUT=0, amely a H5 második operandusának B1 és B2 bemenetére kerül, a B0, B3 és a Cin fixen nullára van kötve. Ha azonban a H6-on keletkezett összeg 10 vagy annál nagyobb, a COUT=1, ez kerül a H6 B1 és B2 bemenetére, így H6 második operandusa 6 lesz ábra - BCD összeadó 56

67 Egyszerű kombinációs hálózatok Laborfeladat Tervezzen egy 4 bites összeadót-kivonót! Az első operandus a 4 bal oldali SW kapcsoló, a második a 4 jobb oldali legyen. A helyi értékek a digiteken belül bal felé nőnek. A kivonás a jobb legszélső nyomógomb (BTN0) lenyomásakor történjen. Az áramkört vizsgálja meg szimulációval, majd töltse le a BASYS2 kártyára, és úgy ellenőrizze a működését Alkalmazandó műszerek és eszközök PC számítógép Digilent Basys2 Spartan-3E FPGA mérőpanel Digilent Adept konfiguráló szoftver 4.4. Aritmetikai és Logikai Egység (ALU) A számítástechnikában az aritmetikai-logikai egység (rövidítése ALU az angol Arithmetic Logic Unit alapján) aritmetikai és logikai műveleteket elvégző digitális áramkör. Alapvető eleme a számítógép központi vezérlőegységének. Neumann János alkotta meg az ALU fogalmát 1945-ben, amikor cikkében beszámolt új számítógépéről, az EDVAC-ról. Egy tipikus Neumann-féle CPU belső szerkezetének részében az ALU saját maga végzi az összeadást, a kivonást és más egyszerű műveleteket az inputjain, így adva át az eredményt az output regiszternek. Az első integrált aritmetikai logikai egység a 74-es TTL sorozat típusú áramköre volt, ami megalapozta a mai modern CPU-k kialakulását. Egy ALU általában a következő alapműveletek végrehajtására képes: összeadás és kivonás (fixpontos, lebegőpontos számokkal) szorzás, osztás (fixpontos, lebegőpontos számokkal) léptetések bitszintű logikai műveletek A műveletek eredményével kapcsolatos egyéb információkat (pl.: túlcsordulás, az eredmény nulla, carry átvitel) is szolgáltat. 57

68 Egyszerű kombinációs hálózatok ALU blokkvázlata Az egyszerűség kedvéért a laborgyakorlaton csak a legalapvetőbb műveleteket valósítjuk meg az ALU-ban (4.25. ábra) ábra - A laborgyakorlat során megépítésre kerülő ALU blokkvázlata A modul bemenete két 4 bites szám (A, B). Az S bemenet az ALU vezérlését végzi. Ezzel lehet kiválasztani, hogy éppen milyen műveletet szeretnénk végezni a két bemeneti értéken. Az ALU_out kimeneten az eredmény jelenik meg. A extbfflags kimeneten a műveletvégzés eredményét jelző (Carry, Overflow, Zero) információk jelennek meg ALU műveletvégző egységei ADD: Két négybites szám összeadására képes teljes összeadó. Ha kivonást is akarunk végeztetni az összeadóval, akkor a második operandus (B) kettes komplemenést (bitenként negált +1) kell az elsőhöz (A) hozzáadnunk. A negálást exkluzív vagykapuval, az egyes hozzáadását az első helyi értéken a CIN-re adott egyessel oldhatjuk meg. AND, OR, XOR: A két négybites bemenet bitenkénti és, vagy, kizáró-vagy kapcsolatát adja eredményül. ROL, ROR: Az A bemenet egy bittel történő balra, illetve jobbra forgatása. MUX: A multiplexer a vezérlő jeleknek megfelelő műveletvégző egység kimeneti jelét választja ki. Az ALUban minden műveletvégző egység kimenetén megjelenik az adott műveleti eredmény, ezért szükséges a multiplexer ami csak a megfelelő műveleti eredményt adja a kimenetre. Ez lesz az ALU kimeneti értéke. A blokksémán látható hogy a multiplexer több négybites adatvonal kiválasztását végzi (4.12. táblázat), majd az eredmény egy szintén négybites adatvonalra kerül. Megvalósítása: Négy darab multiplexer, a négybites busz helyi értékeinek kiválasztására. 58

69 Egyszerű kombinációs hálózatok Másik lehetőség az ALU_out_mux 1 makró használata. Ez egy 8-ról 1-re multiplexer, 4 bites adatcsatornákkal táblázat - Az ALU kimeneti jelei a vezérlőjeleinek függvényében SSSK L 210i eí m rá e s n e t 000Y A =z A + A B és B be m en et ös sz eg e. 001Y A =z A A B és B be m en et k ül ö n bs ég e 010Y (i ) = A (i ) & A z A és B 1 A makró fájlok a mellékletben megtalálhatóak. 59

70 Egyszerű kombinációs hálózatok 60 B (i ) be m en et bi te n ké nt i É S ka pc so la ta 011Y ( 2 : 0 ) = A ( 3 : 1 ), Y ( 3 ) = A ( 0 ) A z A be m en et ro tá lá sa jo b br a. 100Y (i ) = A (i ) B (i ) A z A és B be m en et bi te n ké nt i

71 Egyszerű kombinációs hálózatok 61 V A G Y ka pc so la ta 101Y ( 3 : 1 ) = A ( 2 : 0 ), Y ( 0 ) = A ( 3 ) A z A be m en et ro tá lá sa ba lr a. 110Y (i ) = A (i ) B (i ) A z A és B be m en et bi te n ké nt i X O R ka pc so la ta

72 Egyszerű kombinációs hálózatok A laborgyakorlaton megépített ALU három Flag bitet tartalmaz. Overflow: Előjeles túlcsordulás. Előjeles számok esetében az összeadás, vagy a kivonás eredménye nem ábrázolható az adott számtartományon. Carry: Átvitel előjel nélküli műveleteknél. Az összeadás eredménye nem ábrázolható az adott számtartományban. Zero: Az ALU művelet eredmény nulla lett Laborfeladat Készítse el egy négybites aritmetikai és logikai egységet (4.26. ábra), a következő műveletek végrehajtására: összeadás, kivonás, ÉS, VAGY, kizáró-vagy, forgatás jobbra, forgatás balra. Az ALU építésénél felhasználható, a szimbólumok között megtalálható ADD4 összeadó áramkör, és a mellékletben megtalálható ALU_out_mux multiplexer. A kész ALU áramkörből készítsen makrót ábra - ALU A makró ki-bemeneteit a megadott módon társítsa portokhoz (4.13. táblázat) táblázat - Portkiosztás MP a o k r r t ó ( U C F f á j l 62

73 Egyszerű kombinációs hálózatok 63 ) S 0, S 1, S 2 B T N 0, B T N 1, B T N 2 A ( 3 : 0 ) S W ( 3 : 0 ) B ( 3 : 0 ) S W ( 7 : 4 ) A L U _ O U T ( 3 : 0 ) L E D ( 3 : 0 ) O V F L E D ( 5 ) C A R R Y L E D ( 6 ) Z E R O L E D (

74 Egyszerű kombinációs hálózatok 7 ) A szimulációhoz használja a kiadott tesztfájlt. Kiegészítő feladat: A bemeneti A, és B számot, a vezérlőbiteket és az eredményt jelenítse meg hétszegmenses kijelzőkön. A feladathoz szükséges makrók: Clk_divide, Bin_to_7_segment_x Alkalmazandó műszerek és eszközök PC számítógép Digilent Basys2 Spartan-3E FPGA mérőpanel Digilent Adept konfiguráló szoftver 4.5. Shift regiszter A shift regiszter sorba kötött, leginkább D flip-flopokból álló áramkör. Ha a flip-flopok bemenetére a tőlük balra lévő flip-flop kimenetét kötik, akkor jobbra léptető, ha a tőlük jobbra lévő flip-flop kimenetét kötik, balra léptető shift regiszterről beszélhetünk. A mikroprocesszorok regisztereinek léptetéskor (shift utasítás) az utolsó bit helyére legtöbbször 0 kerül, rotálásakor a léptető regiszter soros kimenete és bemenete össze van kötve, vagy a Carry jelző bitet léptetjük be az utolsó bit helyére. A shift regisztert használhatjuk számlálónak, vagy állapotgépben a különböző állapotok bináris tárolására. Minden szám egy egyest tartalmaz, a többi zérus (one hot). Minden állapotnak vagy számlálóértéknek egy flip-flop egyes állapota felel meg, azaz, ahány flip-flop van, annyit tud számlálni, vagy annyi állapot feleltethető meg neki. Ez több flip-flopot igényel (n), mint a binárisan kódolt számláló esetén (2 log n), de lényegében nincs szükség kapuáramkörökre. A gyűrűs számláló esetén (4.27. ábra) a jobb szélső kimenet vissza van csatolva a bal szélső bemenetre, így az egyes a számlálás folyamán balról jobbra lép. Az első flip-flop és a kapu a bekapcsolás utáni első egyes bevitelére szolgál, később már nem játszik szerepet. (Máshogy is megoldható.) ábra - Gyűrüs számláló Léptető regiszterek Soros-párhuzamos átalakító A legegyszerűbb shift regiszter, a soros adat a baloldali SHIN bemeneten lép be, és amikor megjelenik a SHOUT kimeneten (8. ütem), a flip-flopok kimenetéről párhuzamosan leolvasható a byte (4.28. ábra). Felhasználására példa a merevlemez illesztő, ahol a lemezről olvasott soros adatokat a párhuzamos buszon keresztül kell eljuttatni a szintén párhuzamos szervezésű memóriába ábra - Shift regiszter 64

75 Egyszerű kombinációs hálózatok Párhuzamos-soros átalakító A párhuzamosan beírt adatokat sorosan kell az SHOUT kimenetre juttatni. Itt az első flip-flop kivételével az adatok két helyről kerülnek a flip-flopok bemenetére, minden órajelre az előző kimenetéről, és 8 ütemenként a párhuzamos bemenetről. Ezt végzik a bemeneti multiplexerek. Ha a MODE bemenet 1 soros léptetés, ha 0 párhuzamos beírás történik. Felhasználására itt is példa lehet a merevlemez illesztő, ahol a párhuzamos szervezésű memóriából olvasott soros adatokat sorosan kell eljuttatni a lemez felületére (4.29. ábra) ábra - Shift regiszter párhuzamos adatbemenettel Jobbra-balra léptető regiszter Az adat sorosan kerül be a SRIN vagy az SLIN bemeneteken, és a DIRECTION bit határozza meg, hogy balra DIRECTION=0 vagy jobbra DIRECTION=1 léptet. A soros kimenet a S7 jobbra léptetésnél, és S0 a balra léptetésnél (4.30. ábra) ábra - Jobbra-balra léptető regiszter Barrel shifter A barrel shifter (4.31. ábra) egy kombinációs hálózat (nem regiszter), legegyszerűbben 2 bemenetű multiplexerekkel építhető fel. Az egy oszlopban lévő multiplexerek száma megegyezik az adatszélességgel, (az ábrán 1 byte), az oszlopokszáma egyenlő a címző bitek számával. A címző bitek a lehetséges maximális eltolás binárisan kódolva (az ábrán 3, azaz a maximális eltolások száma 7). Az első oszlopban lévő multiplexerek, ha a címző bemenetükön egy van, eggyel léptetik el az adatot, a másodikban lévők kettővel, a harmadikban lévők néggyel. A léptetések összegződnek. A léptetés (valójában rotálás) az egyik irányban történik, de ha a barrel shifter N léptetésre alkalmas, akkor az n léptetés az egyik irányban megfelel (N n) léptetésnek a másikban ábra - Fast, Compact Barrel Shifter with Encoded Shift Control 65

76 Egyszerű kombinációs hálózatok Egyéb alkalmazások shift-regiszterrel Lifo Az előre-hátraléptető regiszter felhasználható hardver LIFO, vagy más néven stack, magyar szóhasználattal verem létrehozására (4.32. ábra) ábra - LIFO 66

77 Egyszerű kombinációs hálózatok A példán egy 8 byte mélységű verem látható ahol a LIFOMEM jelenti a 8 byte-os tárolót, az SH_FORE a verem állapotának jelzésére szolgáló áramkör. A memória 8 párhuzamosan, bitenként működő 8 bites előrehátraszámláló léptető regisztert tartalmaz. A LIFOINn jelenti a verem bemenetét, a LIFOOUTn a kimenetét, a LIFOPUSH mutatja meg, hogy mélyítünk vagy kiemelünk. A verem korrekt működéséhez jelezni kell az állapotát, ha üres, csak írni szabad bele (ellenkező esetben az olvasott adat nem jó), ha tele van, azaz a beírt adat elérte a verem alját, csak olvasni szabad belőle (ellenkező esetben az utolsó adatot felülírjuk, így elvész). Az állapot jelzésére egy 9-dik 8 bites előre-hátraszámláló léptető regisztert alkalmazunk, amelynek a jobbra léptető bemenetére egy állandó egyest, a balra léptető bemenetére egy állandó nullát kötünk. Amikor beírunk a LIFO-ba (mélyítés) megy befelé az egyes, és ha megjelenik a jobb kimeneten, akkor a verem tele van. Amikor kiolvasunk a LIFO-ból (kiemelés) a nulla vándorol a bal kimenet felé, és ha a bal kimeneten megjelenik, akkor a verem üres. A hardver vermet a mikroprocesszorok IT kezelésében (amennyiben az többszintes) alkalmazzuk. 67

78 Egyszerű kombinációs hálózatok A Johnson számláló Ha egy léptető regiszter kimenetét egy inverteren keresztül visszacsatoljuk a bemenetére megkapjuk a Johnson számlálót. Egy tízes Johnson számláló öt flip-flopból áll (4.14. táblázat, ábra) táblázat - Johnson számláló igazságtáblázata ABCDEC o u n t Az öt flip-flop kimenetét jelöljük A-tól E-ig. Látható, hogy minden ötbites értékben van két egymás mellett lévő olyan bit, amely egyedi, így ezek a párosok felhasználhatók a számok kódolására 0-tól kilencig. (Ezek: nanb, AnB, BnC, CnD, DnE, EA, nab, nbc,ncd és nde. Az n jelenti a negált értéket). A kimenetek egy-egy esetleg invertált két bemenetű kapuval előállítható. A flip-flopok száma kevesebb, mint a one hot esetében (10), de több, mint a binárisan kódolt számok használatánál (4), de viszonylag kevés kaput használ. Azonkívül, ha sorban számol, a következő szám mindig csak egy bitben különbözik az előzőtől, mint a Grey kód esetén ábra - Johnson számláló Soros összeadó A soros összeadóban van két jobbra léptető regiszter a két operandusnak, egy harmadik az eredménynek, egy flip-flop a carry out tárolására, és egy egybites teljes összeadó. a legkisebb helyi értékű bitek rákerülnek az összeadó adatbemeneteire, az összeg rákerül a harmadik regiszter shift in bemenetére, az esetleg keletkezett átvitel a flip-flop bemenetére, a flip-flop kimenete tartalmazza az előző összeadás átvitelét. Órajelre mindhárom léptető regiszter eggyel jobbra lép, az összeadó adatbemeneteire a következő helyi érték kerül, a flip-flopba 68

79 Egyszerű kombinációs hálózatok beíródik az új átvitel, az összeget tartalmazó léptető regiszterbe belép az adott helyi értékhez tartozó egybites összeg. A 8.-ik órajelre előáll az eredmény, a flip-flop kimenete pedig tartalmazza az esetleges átvitelt (4.34. ábra) ábra - Shift Register Applications Example: Laborfeladat Tervezzen egy 8 bites, jobbra-balra léptető regisztert párhuzamos beírási lehetőséggel. A léptető regiszter kimenetei csatlakozzanak a tesztkártyán lévő LED-ekhez, az órajelet (clk) a BTN0 nyomógombról, a párhuzamos beírás engedélyezése(pen) a BTN1 nyomógomb megnyomásával legyen elérhető. Oldja meg, hogy a léptető regiszterbe beírt byte órajelre addig lépdeljen jobbra ill. balra, amíg egy egyes nem éri el valamelyik (0. vagy 7.) szélső bitet, amikor is a léptetés iránya megfordul. Ha beíráskor a két szélen mindkét bit egyes, a következő órajelre az egyik kerüljön át a másik mellé, és innen folytassa a fentebb leírt működést (futófény) Alkalmazandó műszerek és eszközök PC számítógép Digilent Basys2 Spartan-3E FPGA mérőpanel Digilent Adept konfiguráló szoftver 69

80 5. fejezet - Négybites CPU tervezés 5.1. Bevezetés A CPU (angol: Central Processing Unit központi feldolgozóegység) más néven processzor, a számítógép agya, azon egysége, amely az utasítások értelmezését és végrehajtását vezérli, félvezetős kivitelezésű, összetett elektronikus áramkör. Egy szilícium kristályra integrált, sok tízmillió tranzisztort tartalmazó digitális egység. A bemeneti eszközök segítségével kódolt információkat feldolgozza, majd az eredményt a kimeneti eszközök felé továbbítja. A processzor alatt általában mikroprocesszort értünk, régebben a processzor sok különálló áramkör volt, ám a mikroprocesszorral sikerült a legfontosabb komponenseket egyetlen szilíciumlapkára integrálni ábra - Intel os processzor Az első mikroprocesszor az 1971-ben megjelent 4 bites szóhosszúságú Intel 4004 volt. Később több sikeres 8 bites sorozat jelent meg több gyártó részéről (Intel 8008, 8080, 8085, Zilog Z80, Motorola 6800, MOS Technology 6502). A 80-as évektől kezdve megnőtt a processzorok szóhossza (Intel 8086 (az IBM PC és PC/XT processzora): 16 bit (20-bites címtartomány), Intel (a PC/AT processzora): 16 bit (24 bites címtartomány) 1982, Intel 80386: 32 bit 1985) az órajel folyamatos növekedése mellett Számítógépes architektúrák A mikroszámítógépek fejlődése során két architektúra terjedt el (5.2. ábra). Az egyik a Neumann architektúra, itt ugyanabban a memóriában van a programkód, mint az adatok. Ilyen architektúrájúak például az INTEL x86-os processzorok. A Harvard architektúra esetében külön memória áll rendelkezésre az adatok és az utasításkód tárolására (mikrokontrollerek, PIC család). 70

81 Négybites CPU tervezés 5.2. ábra - Neumann és Harvard számítógép architektúra Utasításkészlet A processzor által ismert műveletek és utasítások összességét értjük a processzor utasításkészlete alatt. Legelőször a RISC (Reduced Instructions Set Computer) utasításkészletet használták, ez leegyszerűsített, rövid utasításokat tartalmazott. Elsődlegesnek tekintette a sebességet, és az egyszerűséget. Később a CISC-et (Complex Instructions Set Computer) alkalmazták, ez már több, hosszabb utasítást tartalmazott, ám a túl sok, bonyolult utasítás nem bizonyult célravezetőnek, ezért visszatértek a RISC-hez. Ma már persze rengeteg utasításkészlet van, melyben keverednek a RISC, és a CISC irányelvei A labormérés alatt megépítendő CPU architektúrája A labormérés korlátozott időtartama miatt az alábbi blokkvázlaton látható (egyszerű felépítésű) Harvard architektúrájú CPU kerül megtervezésre és elkészítésre (5.3. ábra). A gyakorlatban használatos processzorok ennél jóval bonyolultabb belső felépítéssel rendelkeznek, de az általános működés megértéséhez ez az egyszerű változat is elegendő. A következőekben a laborgyakorlatok során összeállított négybites processzor belső felépítése kerül ismertetésre ábra - A laborgyakorlatok alatt épített négybites CPU blokkvázlata 71

82 Négybites CPU tervezés PC (Program Counter): A programszámláló mindig a következő végrehajtandó utasítás címét tartalmazza. A labormérésen épített processzorban a programszámláló maximális értéke 255 lehet, mivel a programmemória 256 elemű. Programmemória (INST_MEM): A programmemória tartalmazza a végrehajtandó programot. A program utasítások sorozatából épül fel. Az utasítások vezérlik a mikroprocesszor működését. Egy utasítás kód hossza 21 bit, így a programmemória is 21 bit szélességű. Utasítás: Az utasítások az alegységeket vezérlő bináris kódokat és operandusokat tartalmaznak. Az éppen végrehajtásra kerülő utasítást a PC választja ki. Az utasítást két részre lehet bontani: Vezérlőjelek: az utasítás azon része, mi a mikroprocesszor vezérléséért felel. Pl.: beolvasás a bemenetről, összeadás, kivonás elvégzése regisztereken Operandus: a vezérlőjeleken kívül az utasítás operandust is tartalmazhat. Ez az utasítás típusától függően lehet adat, vagy cím is. Regiszterek: Vannak speciális célú regiszterek a CPU-ban. Ilyen az A és a B regiszter. Ezekbe lehet az operandusokat betölteni, majd az ALU ezeken végzi el a kiválasztott műveletet. Az ALU művelet eredménye szintén ezekbe a regiszterekbe töltődik. Aritmetikai és Logikai Egység (ALU): Aritmetikai és logikai műveletek végrehajtására alkalmas. Memória (RAM): Címezhető memória. Adatok tárolására alkalmas. A regiszterek értékét, az utasításban megadott című memóriarekeszbe lehet tölteni, vagy kiolvasni. A memória 32 darab 4 bites adatot tud tárolni. Bemenet (input): A processzor két bemeneti porttal rendelkezik. Rajtuk keresztül 4 bites adatokat lehet a processzor belső regisztereibe juttatni. Kimenet (output): A processzor két kimeneti porttal rendelkezik. Rajtuk keresztül 4 bites adatokat lehet a kimenetre írni (pl. LED-ekre vagy hétszegmenses megjelenítőkre) A CPU utasításainak felépítése 72

83 Négybites CPU tervezés A processzoron belül különböző műveletvégző egységek, memóriák, kimeneti, bemeneti egységek találhatóak. Ezek vezérléséhez vezérlőjelek szükségesek. A vezérlőjelek az utasításban általában kódolva jelennek meg, így rövidebb utasítás szóhossz érhető el. Ebben az esetben a vezérlőjelek előállításához az utasítást dekódolni kell. A labormérésen épített CPU egyszerűsítése miatt kihagyjuk az utasításdekódolót, így az utasításokban a vezérlőjelek már dekódolt formában helyezkednek el. A következő táblázatok a CPU egyes egységeinek vetélését adják meg Az A és B regiszter bemenetének kiválasztása (Register input select) A labormérésen tervezett CPU-ban minden adat az A és B regiszteren keresztül mozgatható, ezért a regiszterek bemenete több modulból is érkezhet. A regiszterek bemenetét egy 8 bemenetű multiplexerrel választhatjuk ki a három vezérlőbemenet segítségével. A multiplexer adatbemenetei 4 bitesek. A következő táblázat megadja, az egyes vezérlő bemenet kombinációk esetén melyik forrás kerül a regiszterekre. A multiplexerrel kiválasztott adatot a megfelelő regiszterbe a Ben, ABEN típusú vezérlőbittel lehet beírni. A Ben nulla értéke esetén a kiválasztott adat az A regiszterbe, míg logikai egy értéke esetén a B regiszterbe töltődik táblázat - Az A és B regiszter bemenetének kiválasztása AF Leí eeeurás nnnn 210k c i ó 000AA oreg uiszt t ere k be me net e az A reg iszt er ki me net e 001BA oreg uiszt t ere k be me net e a B reg iszt er ki 73

84 Négybites CPU tervezés me net e 010RA Areg Miszt oere uk t be me net e a me mó ria ki me net e 011I A Nreg Siszt Tere k be me net e az uta sítá s arg um ent um a (ut asít ás els ő 4 bite ) 100I A Nreg 0iszt ere k be me net e az inp ut 0 101I A Nreg 74

85 Négybites CPU tervezés 1iszt ere k be me net e az inp ut 1 110AA Lreg Uiszt oere uk t be me net e az AL U ki me net e ALU vezérlése (ALU control) A processzor Aritmetikai és Logikai Egysége a bemeneti A illetve B regisztereken képes műveleteket végezni. Az eredmény minden esetben az A regiszterbe kerül. A művelet kiválasztása 3 biten történik, ezt ismerteti a következő táblázat táblázat - ALU vezérlő jelei SSSF Leír 210uás n k c i ó 000AAz + A Bés a B regi szte r öss zea dás a, ere dm ény az 75

86 Négybites CPU tervezés A -ba 001AAz - A Bregi szte rből B kiv oná sa, ere dm ény az A -ba 010AAz A aés a n B dregi szte Br bite nké nti ÉS kap csol ata, ere dm ény az A -ba 011RAz O A Rregi szte r rotá lása job bra, ere dm ény az A -ba 100AAz A oés a r B regi Bszte 76

87 Négybites CPU tervezés r bite nké nti VA GY kap csol ata, ere dm ény A -ba 101RAz O A Lregi szte r rotá lása balr a, ere dm ény az A -ba 110AAz A xés a o B r regi szte Br bite nké nti XO R kap csol ata, ere dm ény az A -ba Ugró utasítások, a programszámláló megváltoztatása (Branch control) Normál esetben az utasítás számláló minden utasítás után eggyel növekszik. Ugró utasítás esetén a program végrehajtását az utasításkódban megadott címtől kell folytatni (utasítás első 8 bitje). Ehhez az utasításszámlálót a következő ciklus előtt módosítani kell. Az ugróutasítás lehet feltétel nélküli, vagy feltételes. Feltétel nélküli ugrás esetén mindenképpen megváltozik az utasításszámláló értéke. A feltételes ugrásnál az ugrás 77

88 Négybites CPU tervezés bekövetkezése feltételhez kötött. A feltételeket az ALU Z (zero), C (carry), O (overflow) jelzőbitjei szolgáltatják. Az ugró utasítás előtti ALU művelet módosítja a jelzőbitek értékét, és ennek függvényében az ugróutasítás vagy bekövetkezik (ekkor módosul a PC az utasításban megadott címre), vagy nem következik be (ekkor a PC értéke eggyel növekszik) táblázat - Ugró utasítások BF Leí r r r urás 210n k c i ó 000nNin ocs ugr Bás R 001BAz RAL ZU Z flag -je 1, ugr ás az utas ítás utol só 8 bitj én me gad ott cím re 010BAz RAL NU Z Zflag -je 0, ugr ás az utas ítás utol só 8 bitj én me gad ott 78

89 Négybites CPU tervezés 79 cím re 011B R C Az AL U C flag -je 1, ugr ás az utas ítás utol só 8 bitj én me gad ott cím re 100B R N C Az AL U C flag -je 0, ugr ás az utas ítás utol só 8 bitj én me gad ott cím re 101B R O Az AL U O flag -je 1, ugr ás az utas ítás utol

90 Négybites CPU tervezés só 8 bitj én me gad ott cím re 110BAz RAL NU O flag -je 0, ugr ás az utas ítás utol só 8 bitj én me gad ott cím re 111BFelt Rétel nél küli ugr ás, ugr ás az utas ítás utol só 8 bitj én me gad ott cím re Egyéb vezérlő jelek A processzoron belül található memória adatbemenete az A regiszter kimenetére kapcsolódik. A regiszter értékének memóriába töltése a mwe, MWE típusú vezérlőbittel történik. A beírás során az adatmemória címét az utasítás első 5 bitje határozza meg. 80

91 Négybites CPU tervezés Az A regiszter értékének kimenetre történő másolása Oen és Onb, OEN típusú vezérlőbitekkel lehetséges táblázat - Kimeneti regiszterek vezérlő jelei OF Leí enu rás nbn k c i ó 00- Ne m tört éni k kiír ás 01- Ne m tört éni k kiír ás 10o Az u A t regi 0szte = r Aérté ke a 0. kim ene ti latc h- be ker ül 11o Az u A t regi 1szte = r Aérté ke a 1. kim ene ti latc h- be ker ül 81

92 Négybites CPU tervezés Az utasítások felépítése Egy utasítást két részre lehet bontani. A vezérlőjelek az utasítás azon részei, melyek a mikroprocesszor vezérléséért felelnek (pl. az ALU egyes egységeinek vezérlőjelei), ezeket összefoglalóan "Control signals"-nak nevezzük (5.4. ábra). Az utasítás másik része az operandus, amit a vezérlőjelektől függően lehet adat vagy címként is értelmezni, vagy az utasítás szempontjából nem tartalmaz információt (Address or Operand). Az operandust a következőképpen lehet értelmezni: INSTR address: 8 bites címet tartalmaz, az ugró utasítások esetén. RAM address: 5 bites cím, a memória műveletek esetén. RAM-ba írás, vagy RAM-ból olvasás. A maradék 3 bit nem használt (don t care). DATA: 4 bites adat, a konstans szám regiszterbe töltése esetén. A maradék 4 bit nem használt (don t care) ábra - Az utasítások felépítése Mnemonik A következő táblázat azokat az utasításokat tartalmazza, melyeket a CPU képes értelmezni, és végrehajtani. Vegyük példának egy konstans A regiszterbe való betöltését (5.5. ábra) ábra - Az utasítások felépítése A táblázat első sora a bitszámozást tartalmazza, a második sorában az utasítás általános alakja szerepel. Itt a lényeges vezérlőbitek értéket kaptak (0,1), az utasítás számára lényegtelen biteket x-el jelöltük. Az utolsó sorban az utasítás számára érdektelen biteket nullával helyettesítettük. A ik helyi értéken egy k szám kerül megadásra, ez lesz a betöltendő konstans. Ha vesszük az utasítást hexadecimális formában 0x0C000+k és hozzáadjuk a konstans négybites számot akkor megkapjuk az utasítás kódját. Az ilyen kódok szemléletesebb jelölésére rövid utasításneveket szoktak megadni, melyeket mnemonikoknak nevezünk. Ez a rövid azonosító az operandussal együtt meghatározza az utasításkódot. A példa esetében: LDI k A CPU teljes utasításkészlete 5.6. ábra - Utasításkészlet 82

93 Négybites CPU tervezés Laborfeladat A CPU megtervezése és megépítése 5 laborgyakorlat alatt történik. Az egyes laborgyakorlatokon elkészítendő részfeladatok: CPU laborfeladat és a használt alkatrészek megismerése. Hétszegmenses kijelző modulok használatának megismerése (négy és a nyolc hétszegmenses kijelző). Órajel forrás hozzáadása (manuális, 10Hz-es). Programszámláló és programmemória. A programszámláló és az utasítás megjelenítése. Szimuláció és letöltés. Buszrendszerek. Az A és a B regiszter bemenetének kiválasztása és ALU hozzáadása a rendszerhez. Az A és B regiszter értékének megjelenítése. ALU flag kimeneteinek regiszterbe töltése. Szimuláció és letöltés. Kimeneti regiszterek és memória hozzáadása a rendszerhez. Ugró utasítás megvalósítása. Az így elkészül végleges processzoron az 1. mintaprogram kipróbálása. Letöltés. Az elkészült CPU-ra programkód készítése, és annak vizsgálata. A laborgyakorlatokon elkészítendő részfeladatok a következő 4 alfejezetben kerülnek ismertetésre Alkalmazandó műszerek és eszközök PC számítógép Digilent Basys2 Spartan-3E FPGA mérőpanel Basys2 extboard #1 kiegészítő panel Digilent Adept konfiguráló szoftver Assembler program: assemblerdtcpu4.exe 5.2. Órajel forrás, programszámláló, utasításregiszter, kijelzés 83

94 Négybites CPU tervezés A CPU működéséhez órajel szükséges. Az órajelet a panelen található 50 Mhz-es oszcillátorból nyerhetjük, vagy nyomógombok segítségével állíthatjuk elő. Hogy a processzor működését nyomon követhessük megfelelően kis frekvenciájú órajelre van szükség. Az 50Mhz-es jelből a Clk_divide makróval 10 Hz-es órajelet állíthatunk elő. Másik lehetőség, hogy az órajel fel- és lefutó életi nyomógombok segítségével állíthatjuk elő (lásd: FPGA fejlesztés ISE-ben 16. oldal). Az egyik gomb az UP a másik gomb a DOWN port nevet viseli az ucf fájlban. Egy kiválasztó gomb (OCLK_EN) lenyomásával dönthetjük el, hogy a 10 Hz-es (OCLK_EN=1), vagy az UP/DOWN gombokkal előállított jel (OCLK_EN=0) legyen a CPU órajele (clock jel). Mivel a processzor egységei az órajel különböző éleire aktívak, szükség van az órajel negáltjára (clock_n). A clock_n órajel adja egy 8 bites számláló (CB8CLE) órajelét. Ez a számláló a programszámláló, melynek load bemenetét az ugróutasítások vezérlik. A párhuzamos adatbemenete az utasítás argumentum része lesz, vagyis az ugrási cím. (Az ugró utasításokról későbbi fejezetben ismerkedhetünk meg részletesebben.) Jelen feladatban az ugró utasításokkal nem foglalkozunk, ezért ezt a bemenetet logikai nulla értékre kell kötni. A számláló kimenete a Pcnt busz, ami az utasításmemória (INST_MEM) címbemenetét adja. Azutasításmemória kimenetén (INSTR busz) jelennek meg az utasítások, a clock órajel hatására. Az órajel felfutó élének hatására a programmemóriából a megfelelő utasítás kiolvasásra kerül, majd az órajel lefutó élének hatására végrehajtódik az utasítás, és a programszámláló értéke megváltozik a következő végrehajtandó utasítás címére. A kijelzőkre kösse rá az utasításmemória és a programszámláló kimenetét (részletek a táblázatban) táblázat - Kijelzők portkiosztása BJ Leí ee rás ml e n e t i P nc Pro _ n gra At ms 1( zá 7 ml : áló 4 me ) gje i P len nc ítés _ n e At az 0( A kij 3 : 0 ) elz őn i 0 Ut n0asít _ 0 ás B me 1+ gje len I ítés Ne a S B, T C R és ( D 2 kij 0 elz 84

95 Négybites CPU tervezés 85 ) ő mo dul ok on i n _ B 0 I N S T R ( 1 9 : 1 6 ) i n _ C 1 I N S T R ( 1 5 : 1 2 ) i n _ C 0 I N S T R ( 1 1 : 8 ) i n _ D 1 I N S T R ( 7 : 4 ) i n _ D 0 I N S T R ( 3 : 0 )

96 Négybites CPU tervezés Szimulációval ellenőrizze a működést. A szimuláció során figyelje meg a programszámláló értékét, és a hozzátartozó utasításokat. Alapértelmezésben az alábbi kódrészlet található a programmemóriában (5.7. ábra). Az első oszlop az utasítás helyét jelöli a programmemóriában, ez nullától kezdve folyamatosan növekszik. A harmadik oszlopban az utasítás mnemonikja látható (nop, ldi...) majd a következő oszlopban az argumentum. Az utolsó oszlop az utasítás hexadecimáliskódját mutatja. Helyes működés esetén a PC kiválasztja az aktuális utasítást, a kijelzőn ennek megfelelő utasításkód jelenik meg. A kijelzőkön az (5.7. ábra) első és utolsó oszlopának sorait kell látnunk ábra - A mintaprogram mnemonikjai és utasításkódjai A szimuláció után próbálja meg letölteni a kapcsoláshoz tartozó konfigurációs fájlt az FPGA-ba és ellenőrizze a működést. A 5.8. ábra szemlélteti a CPU teszteléséhez szükséges kapcsolók, kijelzők funkcióját ábra - Ki-bemeneti egységek 86

97 Négybites CPU tervezés A következő táblázat tartalmazza a laborgyakorlaton felhasznált ki-és bemeneti portokat (I/O port) (20. táblázat) táblázat - Portkiosztás PBLeí ourás r s t z n é v S84d E b Gb hét 4i sze ( t gm 7 ens : es 0 kij ) elz ő sze gm ens 87

98 Négybites CPU tervezés 88 ei. A N 4 ( 3 : 0 ) 4 b i t 4d b hét sze gm ens es kij elz ő kiv ála szt ó jel ei. S E G 8 ( 7 : 0 ) 8 b i t A kie gés zít ő pa nel sze gm ens ei. A N 8 ( 7 : 0 ) 8 b i t A kie gés zít ő pa nel kiv ála szt ó jel ei. M C L K - A Cl oc k_ div ide be me net e. 50 Mh z- es óra jel U- btn

99 Négybites CPU tervezés P 3. Le ny om ása kor a ren dsz er óra jel ma gas ért ék ű les z D- btn O 2. WLe N ny om ása kor a ren dsz er óra jel ala cso ny ért ék ű les z O- btn C 1. L Le K ny _ om E ása N kor a ren dsz er óra jel 10 Hz, ell en kez 89

100 Négybites CPU tervezés ő ese tbe n az UP /D O W N R- btn S 0. T Re nds zer ala pál lap otb a hel yez ése. Mi nd en szá ml áló t tör öl ALU és regiszterek Az előző órán elkészített áramkört egészítse ki regiszterekkel. A regiszterekhez FD4CE tárolót használjon. A kapcsolásban szereplő jeleket az ábra szerint nevezze el (5.9. ábra). Az A és B regiszterek vezérlése a rendszer órajel lefutó élére történik. A regiszterek kimeneteit kösse rá az ALU bemeneteire. Az utasítás busz (INSTR) megfelelő jeleit kösse rá az ALU vezérlőjeleire ábra - A CPU műveletvégző egysége és regiszterei 90

101 Négybites CPU tervezés Az A és B regiszter bemenete több forrásból származhat (bemenet, regiszterek, ALU, RAM, utasítás...), melyek közül a multiplexer választja ki az utasításnak megfelelőt (felhasználható makró: mux8_4bit). Az utasítás busz (INSTR) regiszterekre vonatkozó jeleit kösse a multiplexer kiválasztó bemenetére. A regiszterek lehetséges bemeneti forrásait kösse rá a multiplexer adatbemeneteire, ebből hagyja ki a RAMout kiválasztást, mivel ez a jel egy későbbi gyakorlat során kerül a rendszerbe. Most konstans nulla értékkel helyettesítse ezt a bemenetet. A kiválasztott adat A vagy B regiszterbe való töltését az ABEN vezérlőbit irányítja. A Bin_to_7_segment_x4 makró bekötéseit az alábbi táblázat tartalmazza (5.7. ábra) táblázat - Kimenet portkiosztása BJ ee ml e n e t i A no _ u At ( 3 : 0 ) i B no _ u Bt ( 3 : 0 ) 91

102 Négybites CPU tervezés i 0 n _ C i 0 n _ D Szimulációval ellenőrizze a működést. Figyelje meg a programszámláló értékét, az utasításkódokat, valamint az A és B regiszterek értékeit. Az utasításmemóriában ábra szerinti program található ábra - A mintaprogram mnemonikjai és utasításkódjai A szimuláció után próbálja meg letölteni a kapcsoláshoz tartozó konfigurációs fájlt az FPGA-ba és ellenőrizze a működést. Az FLAG bitek ellenőrzésére és az órajel megjelenítésére használja az FPGA fejlesztőpanelen található LED-eket ábra - Ki-bemeneti egységek 92

103 Négybites CPU tervezés A következő táblázat tartalmazza a laborgyakorlaton felhasznált ki-és bemeneti portokat (I/O port) (5.8. táblázat) táblázat - Portkiosztás PBLeí ourás r s t z n é v S84d E b Gb hét 4i sze ( t gm 7 ens : es 0 kij ) elz ő sze gm ens 93

104 Négybites CPU tervezés 94 ei. A N 4 ( 3 : 0 ) 4 b i t 4d b hét sze gm ens es kij elz ő kiv ála szt ó jel ei. S E G 8 ( 7 : 0 ) 8 b i t A kie gés zít ő pa nel sze gm ens ei. A N 8 ( 7 : 0 ) 8 b i t A kie gés zít ő pa nel kiv ála szt ó jel ei. M C L K - A Cl oc k_ div ide be me net e. 50 Mh z- es óra jel U- btn

105 Négybites CPU tervezés P 3. Le ny om ása kor a ren dsz er óra jel ma gas ért ék ű les z D- btn O 2. WLe N ny om ása kor a ren dsz er óra jel ala cso ny ért ék ű les z O- btn C 1. L Le K ny _ om E ása N kor a ren dsz er óra jel 10 Hz, ell en kez 95

106 Négybites CPU tervezés 96 ő ese tbe n az UP /D O W N R S T - btn 0. Re nds zer ala pál lap otb a hel yez ése. Mi nd en szá ml áló t tör öl. S W ( 7 : 0 ) 8 b i t 8d b ka pcs oló be me net. S W( 3:0 ) az inp ut0 és S W( 7:4 ) az inp ut1 ada tbe

107 Négybites CPU tervezés me net e a CP U- na k. L4LE E D Db ki ( i me 3t net :. 0 FL ) A G- ek bit ek és óra jel kij elz ése. LE D( 0): O VF ; LE D( 1): CA RR Y; LE D( 2): ZE RO ; LE D( 3): clo ck 5.4. Kimeneti regiszterek, memória, ugró utasítás A processzor két kimeneti regiszterrel rendelkezik (out0, out1). Ezek a négybites regiszterek az A regiszterből kaphatnak értéket. A kimeneti értékek tárolásához FD4CE tárolót használjon. A megfelelő kimeneti regiszter kiválasztása és az értékadás engedélyezése az OEN vezérlőbitekkel történik. A két kimeneti regiszter értékének kijelzőkön való megjelenítése megjelenítése a Bin_to_7_segment_x4 makróval történik a következő táblázatnak megfelelően táblázat - Kijelzők portkiosztása 97

108 Négybites CPU tervezés 98 B e m e n e t J e l i n _ A A o u t ( 3 : 0 ) i n _ B B o u t ( 3 : 0 ) i n _ C O u t 0 i n _ D O u t ábra - A processzor blokkvázlatának részlete

109 Négybites CPU tervezés A processzor az adatok tárolására adatmemóriát (RAM32X4S 1 ) használ (Harvard architektúra). Az A regiszter értékét, az utasításban megadott című memóriarekeszbe lehet tölteni, vagy a megcímzett memóriarekesz értékét ki lehet olvasni. A memória 32 darab 4 bites adatot tud tárolni. A címzését az utasítás operandusának megfelelő része adja. Írás az MWE vezérlőjel logikai egyes értéke esetén történik. Oldja meg, hogy az mwe=1 jel esetén az A regiszter értéke töltődjön be a memória utasításban megadott című rekeszébe. Memóriából regiszterbe töltés (rekesz kiolvasása) az mwe=0 jel és az A és B regiszter bemenetét adó multiplexer megfelelő vezérlésével érhető el. Az ALU kimeneti jelzőbitjei (flag-ek) az A és B regiszter változása esetén módosulhatnak. Egy FD4CE tárolóval oldja meg, hogy a jelzőbitek mindig az utolsó ALU művelet eredményét mutassák (ALU műveletnek tekintjük, ha az A és B regiszterek bemenetére az ALU kimeneti értéke kerül). Normál esetben az utasítás számláló minden utasítás után eggyel növekszik. Ugró utasítás esetén a program végrehajtását az utasításkódban megadott címtől kell folytatni (INSTR(7:0)). Ehhez az utasításszámlálót a következő ciklus előtt módosítani kell. Az ugróutasítás lehet feltétel nélküli, vagy feltételes. Feltétel nélküli ugrás esetén mindenképpen megváltozik az utasításszámláló értéke. A feltételes ugrásnál az ugrás bekövetkezése feltételhez kötött. A feltételeket az ALU Z (zero), C (carry), O (overflow) jelzőbitjei szolgáltatják. Az ugró utasítás előtti ALU művelet módosítja a jelzőbitek értékét, és ennek függvényében az ugróutasítás vagy bekövetkezik (ekkor módosul a PC az utasításban megadott címre), vagy nem következik be (ekkor a PC értéke eggyel növekszik) táblázat - Ugró utasítások UF U t e g al r st ó í éut t t a áesí sl k ó d B r 2, B r 1, B r tá s b e k ö v et k e z é s e N in c s u g rá s 1 RAM32X4S: A memória rendelkezik külön adatbemeneti és külön adatkimeneti porttal. Órajel hatására olvasás mindig, de írás csak egy külön engedélyező jel (WE) hatására történhet. WE memóriába írás engedélyezése, D adatbemenet, A cím, O adatkimenet, WCLK adat kiolvasása a memóriából, és adat beírás, ha WE=1. 99

110 Négybites CPU tervezés h a Z = 1 U g rá s fe lt ét el te lj e s ül t h a Z = 0 N i n c s u g r á s h a Z = 1 N in c s u g rá s h a Z = 0 U g r á s f e l t é t e l t e l j e s ü l t U g rá s fe lt ét el

111 Négybites CPU tervezés te lj e s ül t ábra - A mintaprogram mnemonikjai és utasításkódjai ábra - Ki-bemeneti egységek 101

112 Négybites CPU tervezés A szimuláció után próbálja meg letölteni a kapcsoláshoz tartozó konfigurációs fájlt az FPGA-ba és ellenőrizze a működést. A LED-eken az utolsó ALU művelet eredményét jelző FLAG bit értékeket és az órajelet jelenítse meg táblázat - Portkiosztás PBLeí ourás r s t z n é v S84db E hét Gb sze 4i gm ( t ens 7 es : kije 0 lző ) sze gm ens ei. 102

113 Négybites CPU tervezés 103 A N 4 ( 3 : 0 ) 4 b i t 4db hét sze gm ens es kije lző kiv ála szt ó jele i. S E G 8 ( 7 : 0 ) 8 b i t A kie gés zítő pan el sze gm ens ei. A N 8 ( 7 : 0 ) 8 b i t A kie gés zítő pan el kiv ála szt ó jele i. M C L K - A Clo ck_ div ide be me net e. 50 Mh z- es óra jel U P - btn 3. Le nyo má sak or a

114 Négybites CPU tervezés ren dsz er óra jel ma gas érté kű les z D- btn O 2. WLe N nyo má sak or a ren dsz er óra jel ala cso ny érté kű les z O- btn C 1. L Le K nyo _ má E sak N or a ren dsz er óra jel 10 Hz, elle nke ző ese tbe n az UP /D O W N R- btn S 0. T Re 104

115 Négybites CPU tervezés 105 nds zer ala páll apo tba hel yez ése. Mi nde n szá mlá lót tör öl. S W ( 7 : 0 ) 8 b i t 8db kap cso lób em ene t. SW (3: 0) az inp ut0 és SW (7: 4) az inp ut1 ada tbe me net e a CP U- nak. L E D ( 3 : 0 ) 4 b i t LE D ki me net. FL AG -ek bite k és óra jel

116 Négybites CPU tervezés kije lzé se. LE D( 0): OV F; LE D( 1): CA RR Y; LE D( 2): ZE RO ; LE D( 3): clo ck 5.5. Programkód írás A laborgyakorlaton az előző órák során elkészült négybites CPU-ra saját programot kell készíteni. A processzor INST_MEM nevű utasításmemóriájának kezdeti tartalmát egy VHDL fájl (INST_MEM.vhd) írja le. A fájlban lehetőség van kézzel átírni az egyes rekeszek értékét egy megadott utasítás hexadecimális kódjára. Ezáltal szerkeszthetőek a processzor utasításmemóriájában lévő utasítások. A programkód készítésének egyszerűbb módja, ha az utasításokat azok memonikjaival adjuk meg, majd az így leírt programot egy fordító gépi kódra fordítja le. A laborgyakorlat során a dt4bit_cpu_assembler nevű program (5.15. ábra) segítségével készíthetjük el a forráskódot, fordíthatjuk le gépi kódra és cserélhetjük ki az utasításmemória alapértelmezett tartalmát. Miután az utasításmemória (INST_MEM.vhd) tartalma megváltozott, az ISE WEBPACK szoftver segítségével újra le kell fordítani a projektet, és lehetőség van a szimulációra, vagy az FPGA-ra való letöltésre. Az így letöltött CPU konfigurációs fájl, már az új programkódot tartalmazza. A Szerkesztő felület-en van lehetőség a program forráskódjának szerkesztésére, ide kell leírni az utasításokat. A fordító számára elérhető utasítások az Elérhető utasítások listája nevű részben található. A szerkesztő felületen csak a következő karakterekhasználhatóak: az angol ABC kisbetűi (a..z), számjegyek (0 9), kettőspont, címke megadására (:), tabulátor az utasítások tagolására (TAB), enter a sorok elválasztására (ENTER). Egy sor tagolása a következő kell, hogy legyen: A címkét és az argumentumot nem kötelező megadni. Ha az utasítás nem tartalmaz argumentumot, akkor az utasítás után új sort kell kezdeni. Ha a sor címkét nem tartalmaz, akkor a sort tabulátorral kell kezdeni, egyébként a címkének kettősponttal megadva kell a sor elején szerepelnie. A címke hossza maximum 3 karakter lehet a kettőspontot nem számolva. Az egyes részeket (címke, utasítás, argumentum) tabulátorral kell elválasztani egymástól. A Forrásfájl műveletek-nél lehetőség van a forráskód elmentésére, vagy egy már meglévő program betöltésére. 106

117 Négybites CPU tervezés ábra - Fordító program felépítése A Fordítási opciók terület két gombot tartalmaz, az egyik a Szintaktikai ellenőrzés, ilyenkor a szerkesztőfelületen elkészült programnak a szintaktikai ellenőrzése történik meg. Az esetleges hibaüzenetek a Fordítási üzenetek panelen jelennek meg. Amennyiben szintaktikai hibát vétettünk, a hibaüzenetre kattintva a fordító megjelöli a hibás sort (5.17. ábra). A Fordítási eredmények panelen az utasítások programmemóriában elfoglalt helye, az utasítás és az utasítás hexadecimális kódjalátható. A Fordítás gombot választva először egy szintaktikai elemzés fut le, és ha nem volt szintaktikai hiba a programkódban, a fordító az utasításmemória (INST_MEM.vhd) tartalmát kicseréli az aktuális programkódra. Ebben az esetben a "Szintaktikai ellenőrzés és Fordítás kész!" üzenetet kapjuk. Első feladatként indítsa el a projektkönyvtárban található assemblerdtcpu4.exe fájlt. Nyissa meg a prog/example_for.txt fájlt (5.16. ábra). A példaprogram egy for ciklust valósít meg. Az első utasítások az input0 bemenet értékét olvassák be, majd az out0 kijelzőt nulla értékre állítják be. Végül az out0 értéke addig fog növekedni, amíg eléri az input0-ról beolvasott értéket. Fordítsa le a programot, majd az ISE WEBPACK szoftver segítségével készítse el az FPGA-ra letölthető konfigurációs fájlt, és töltse le az FPGA fejlesztőpanelre. Figyelje meg a program működését ábra - Mintaprogram for ciklusra 107

118 Négybites CPU tervezés A programrészlet c szintaktikai megfelelője: vhd-6. ábra -../sections/src/codefor.vhd ábra - Mintaprogram for ciklusra, hibaüzenettel 108

119 Négybites CPU tervezés 109

120 II. Könyv. rész - Gadgeteer

121 Tartalom Kiknek szól a tananyag? Miért.NETGadgeteer? Szükséges előismeretek Bevezetés a.net Gadgeteer használatába NET Gadgeteeralkalmazások készítéséhez szükséges eszközök FEZ Spider Starter Kit A FEZ Spider demóapanel használata Jelölések a demópanelen Jelölések a próbamodulokon A demópanel csatlakoztatása PC-hez Egy egyszerű Gadgeteer program elkészítése Felkészülést segítő kérdések Stopper alkalmazás készítése.netgadgeteer-el A feladat célja A projekt létrehozása Az eszköz elkészítése Az program megírása Stopper osztály készítése A főprogram elkészítése A program futtatása Felkészülést segítő kérdések Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával A feladat célja A projekt létrehozása A program megírása A teljes forráskód Felkészülést segítő kérdések SD kártya olvasó.net Gadgeteer használatával A feladat célja A projekt létrehozása A program megírása A teljes forráskód Felkészülést segítő kérdések Felhasznált irodalom

122 6. fejezet Kiknek szól a tananyag? A tananyag minden olyan hallgatónak tapasztalatot nyújthat, aki érdeklődik a beágyazott rendszerek iránt, programozási tudását és tapasztalatait kipróbálná egy olyan eszközön, mely merőben más egy megszokott asztali PC-hez, vagy egy mobileszközhöz képest.a Gadgeteer alapú alkalmazások fejlesztése objektumorientáltan, magasszintű programozási nyelven (C#) történik, így alkalmazkodik napjaink trendjéhez. Minden fejezet úgy került kialakításra, hogy lépésről lépésre vezesse be a hallgatókat a beágyazott rendszerek programozásának világába. A feladatokban szereplő eszközök összeállításához nem szükségesek mély elektronikai ismeretek, így a kizárólag programozási ismeretekkel rendelkező hallgatók is egyszerűen elvégezhetik azokat Miért.NETGadgeteer? A.NETGadgeteer újdonság a beágyazott rendszerek világában.a.net alapú szoftverfejlesztés lehetővé teszi, hogy ne kelljen alacsonyszintű, nehézkes programozási nyelvekkel végezni az alkalmazásfejlesztést. A.NETGadgeteer kompatibilis FEZ Spider Starter Kit olcsón beszerezhető és tartalmazza mindazon modulokat, melyek segítségével az alapvető tudás elsajátítható. A fejlesztést támogató SDK a Microsoft Visual Studio 2010 (és 2012) verzióját támogatja. Ennek segítségével gyorsan és egyszerűen lehet alkalmazásokat készíteni az asztali PC-knélmegszokott módon. A fejlesztőkörnyezet Express Edition változata bárki számára ingyenesen letölthető Szükséges előismeretek A.NETGadgeteer alkalmazásfejlesztéshez elsősorban programozási előismeretek szükségesek. A kidolgozott tananyag feltételezi, hogy a hallgatók rendelkeznek az objektumorientáltsággal kapcsolatos alapismeretekkel és a C# programozási nyelv alapjaival.ezen ismeretek mellett előnyt jelent, ha a hallgatónak vannak elektronikai, vagy beágyazott rendszerekkel kapcsolatos ismeretei is. 112

123 7. fejezet - Bevezetés a.net Gadgeteer használatába A Microsoft.NET Gadgeteer egy nyílt forrású eszközkészlet, melynek segítségével kisméretű elektronikus eszközökön futtatható,.net Micro Framework alapú alkalmazások készíthetők Visual Studio használatával NET Gadgeteeralkalmazások készítéséhez szükséges eszközök Hardver: Demópanel (pl.: Fez Spider, Fez Hydra, Sytech NANO) Piros modul (USBClientDP), mely táplálja a demópanelt és lehetővé teszi a program feltöltést, illetve hibakeresést Próbamodulok teszteléshez (pl.: különféle szenzorok, megjelenítők, tárolók, hálózati eszközök, stb.) Szoftver: Visual Studio 2010 (vagy az ingyenes Visual C# 2010 Express).NET Micro Framework SDK Ademópanelhez szükséges illesztőprogramok és egyéb szoftverek (gyártónként eltérő) 7.2. FEZ Spider Starter Kit A FEZ Spider Starter Kitegy NET Gadgeteer kompatibilis fejlesztőkészlet.ademópanelen és a piros modulon kívül számos próbamodult is tartalmaz. A fejlesztőkészlet tartalma: FEZ Spider demópanel T35 kijelző modul (3.5" méret, érintőképernyő) USB kliens DP modul (piros modul) Kamera modul 2 db Multicolor LED modul 2 db nyomógomb modul J11D Ethernet modul SD kártya modul USB Host modul Bővítő modul Josytick modul Szalag kábelek 7.1. ábra - FEZ Spider Starter Kit 113

124 Bevezetés a.net Gadgeteer használatába A FEZ Spiderdemópanel a GHI Electronics EMX moduljára épül. A.NET Micro Framework támogatáson kívül lehetővé teszi az USB és WiFi eszközök kezelését, valamint az ún. RLP (natív kód) használatát is ábra - FEZ Spider demópanel A demópanel jellemzői: 114

125 Bevezetés a.net Gadgeteer használatába 14.NET Gadgeteer kompatibilis csatlakozó aljzat a következő jelölésekkel: X, Y, A, C, D, E, F, H, I, K, O, P, S, T, U, R, G, B, Z. Konfigurálható LED-ek Konfiguráló kapcsolók EMX modul: 72MHz 32-bit ARM7 processzor 4.5 MB Flash memória 16 MB RAM LCD vezérlő TCP/IP Stack SSL, HTTP, TCP, UDP, DHCP támogatással Ethernet, WiFi meghajtó és PPP (GPRS/ 3G modemekhez), illetve DPWS USB hoszt USB eszköz specializált könyvtárakkal különféle eszközök emulálásához, pl.: thumb-drive, virtual COM (CDC), egér, billentyűzet 76 GPIO Pin 2 SPI (8/16bit) I2C 4 UART 2 CAN busz 7 10-bit Analóg Bemenet 10-bit Analóg Kimenet (WAV audio visszajátszáshoz) 4-bit SD/MMC memóriakártya interfész 6 PWM Egyvezetékes interfész Beépített Valós Idejű Óra (RTC) Processzor regiszter elérés Kimeneti komparátor hanghullámok létrehozásához RLP natív kód támogatás (C/Assembly) valósidejű programozáshoz Matematikai osztály kétszeres pontosságú számításokhoz FAT Fájlrendszer Kriptográfia támogatás (AES és XTEA) Alacsony fogyasztási és hibernált mód támogatása Frissítés SD kártyáról, hálózatról, vagy más forrásból 115

126 Bevezetés a.net Gadgeteer használatába 7.3. A FEZ Spider demóapanel használata A FEZ Spider demópanel 14 db aljzattal rendelkezik a próbamodulok illesztéséhez, melyek körül megtalálható azok sorszáma és egy karaktersorozat. E sorozat határozza meg a csatlakoztatható modultípusokat. A demópanelen elhelyezett Reset gomb segítségével bármikor újraindítható az eszköz. A bekapcsolt állapotot a D1 jelzésű LED mutatja. Az USB Client Dual Power modul, ( piros modul ) táplálja árammal a demópanelt és a csatlakoztatott eszközöket USB bemeneten keresztül, vagy egy 7-30 voltos DC adapter segítségével. Szintén ezzel az eszközzel csatlakoztatható PC-hez a demópanel(usb interfészen keresztül) program feltöltés, illetve hibakeresés céljából (ebben az esetben a tápellátás és a programozás is egyazon bemeneten történik) ábra - "Piros modul" A piros modul egyetlen aljzattal rendelkezik, melynek D jelölése van, ezért a demópanelen kizárólag a vele egyező D jelölésű aljzattal párosítható! 7.4. Jelölések a demópanelen A demópanelen és a modulokon található aljzatokat különféle címkékkel látták el az egyszerű kezelhetőség érdekében. E jelölések határozzák meg, hogy mely eszközök kapcsolhatók össze egymással. Minden egyes aljzat körül található egy szám egyértelmű azonosítás céljából, valamint karakterek bizonyos sorozata az elektronikus és kommunikációs csatlakoztathatóság meghatározásához ábra - Csatlakozó aljzat a demópanelen 116

127 Bevezetés a.net Gadgeteer használatába 7.5. Jelölések a próbamodulokon A próbamodulokon szintén egy karaktersorozattal jelölik, hogy azok mely aljzatokkal párosíthatók. Az ábrán látható XY címkéjű modul például X vagy az Y jelöléssel rendelkező aljzathoz kapcsolható a demópanelen (tehát elég az egyik karakternek egyeznie) ábra - Csatlakozó aljzat a próbamodulon Előfordulhat, hogy egyes modulok csak bizonyos funkciókat használnak, a panelen találhatótovábbikarakterek által jelzett szolgáltatást pedig nem. A csatlakoztatás során mindig ügyelni kell arra, hogy a megfelelő címkével rendelkező csatlakozó felületeket párosítsuk A demópanel csatlakoztatása PC-hez A piros modult a FEZ Spider 1-es csatlakozójához kell kapcsolni (az egyetlen aljzat, mely D jelzéssel rendelkezik). A készlethez mellékelt USB kábelt csatlakoztassuk a piros modulhoz, de annak másik végét még ne kapcsoljuk a PC-hez ábra - Demópanelhez kapcsolt piros modul 117

128 Bevezetés a.net Gadgeteer használatába Ezt követően lehet a demópanelhez kapcsolni a különböző próbamodulokat szalagkábelek segítségével, mindegyiket a megfelelő aljzat kiválasztásával. Amint a művelettel végeztünk, a demópanel áram alá helyezhető az USB kábel segítségével és elkezdhető annak programozása. Figyelem!!! A próbamodulok csak a kikapcsolt demópanelhez csatlakoztathatók, vagy távolíthatók el abból! 7.7. Egy egyszerű Gadgeteer program elkészítése Előkészületek: 1. Győződjünk meg róla, hogy a demópanel nincs-e áram alatt 2. A Starter Kit-ből válasszunk ki egy Button(nyomógomb) és egy Multicolor LED modult A nyomógomb modul hátoldalán XY jelölés található, ami azt jelenti, hogy a demópanelen olyan aljzatba kell csatlakoztatni az eszközt, melynek címkéje tartalmaz X vagy Y karaktert (pl. az 5-ös aljzat). Hasonlóképpen kell a LED modult is bekötni (pl. a 6-os aljzatba).a demópanelt ezután csatlakoztathatjuk a számítógéphez. Indítsuk el a Visual Studio 2010-et, majd kattintsunk a File/New/Project menüpontra ábra - Új projekt létrehozása A felugró ablakbanbaloldaltválasszuk az Installed Templates listából a Gadgeteer sablont. Ekkor felkínálásra kerül egy új NET Gadgeteer Application az ablak közepén, melynek neve megadható a Name adatmezőnél, vagy elfogadható a felajánlott változat (jelen esetben GadgeteerApp1 ). Kattintsunk az OK gombra ábra - A létrehozni kívánt Gadgeteer projekt opciói 118

129 Bevezetés a.net Gadgeteer használatába Előfordulhat, hogy az újonnan létrehozott projekt alapesetben egy FEZ Hydratípusúdemópanelt tartalmaz ábra - A létrehozott Gadgeteer projekt 119

130 Bevezetés a.net Gadgeteer használatába Mivel nekünk FEZ Spider típusú a demópanelünk, ezért csere szükséges. Jelöljük ki a FEZ Hydra-t, majd nyomjuk meg a Del billentyűt. Az eszközkészletből ( Toolbox ) húzzunk be egy FEZ Spider típusú panelt a grafikus tervezőbe ábra - A demópanel csere után A fordítónak is ismernie kell az összeállított demópanel konfigurációt, ezért a grafikus tervezőben meg kell jelölni, hogy az egyes aljzatokba milyen eszközök kerültek bekötésre. Ezt a Toolbox-ban elhelyezett próbamodulok elhelyezésével kell elvégezni.drag and drop technikával húzzunk a grafikus tervezőbe egy Button és egy Multicolor LED komponenst ábra - Próbamodulok a grafikus tervezőben 120

131 Bevezetés a.net Gadgeteer használatába Az egyes alkatrészek szabadon mozgathatók a tervezőben az átláthatóság javításának céljából (fizikai szerepe nincs). Az alkatrészek aljzatokba történő bekötéséhez először jelöljük ki kattintással a bekötni kívánt Button alkatrész csatlakozóját (sárga rész), majd a program által felajánlott kompatibilis aljzatok közül (zölden jelölt) a bal-egérgomb megnyomásával válaszuk ki az 5-ös aljzatot (a demópanelen ugyanis ide kötöttük be a nyomógombot). A sikeres bekötést kék színű vonal jelöli ábra - A demópanelra bekötött nyomógomb Hasonlóképpen kössük be a led komponenst is a 6-os aljzatba! ábra - A bekötött alkatrészek Ezt követően a hardver konfiguráció a fordító számára is ismert lesz és elkezdhető a programkód írása. Kattintsunk duplán a Solution Explorer ablakban található Program.cs fájlra ábra - A programkódot tartalmazó fájl kiválasztása 121

132 Bevezetés a.net Gadgeteer használatába A megjelenő ablakban bővíthetjük és módosíthatjuk a Gadgeteer sablon által létrehozott program keretet. A program indításakor a ProgramStarted() metódus fut le először. using System; using System.Collections; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Presentation; using Microsoft.SPOT.Presentation.Controls; using Microsoft.SPOT.Presentation.Media; using Microsoft.SPOT.Touch; using Gadgeteer.Networking; using GT = Gadgeteer; using GTM = Gadgeteer.Modules; using Gadgeteer.Modules.GHIElectronics; 122

133 Bevezetés a.net Gadgeteer használatába namespace GadgeteerApp1 { public partial class Program { void ProgramStarted() { Debug.Print("Program Started"); } } } A programot az alábbi módon egészítsük ki: public partial class Program { void ProgramStarted() { button.buttonpressed += new Button.ButtonEventHandler(button_ButtonPressed); Debug.Print("Program Started"); } void button_buttonpressed(button sender, Button.ButtonState state) { led.blinkrepeatedly(gt.color.red); } } A módosításokat követően nyomjuk meg az F5 billentyűt. Ennek hatására megtörténik a fordítás és a programkód feltöltésre kerül az eszközre, mely újraindul, majd futtatja az elkészített alkalmazást (a feltöltés és újraindítás hosszabb ideig is eltarthat). A program a nyomógomb megnyomását követően piros színnel, folyamatosan villogtatja a csatlakoztatott LED-et. A futtatás során a hibakereső folyamatosan fut, ezért csak akkor tudunk további módosításokat végezni, ha a Shift+F5 billentyűkombinációval bezárjuk azt (ettől még az eszközön tovább fut a program) ábra - a program futtatás közben 7.8. Felkészülést segítő kérdések 123

134 Bevezetés a.net Gadgeteer használatába Milyen eszközök szükségesek.net Gadgeteer alkalmazások készítéséhez? Mi a szerepe a demópanelen, illetve a próbamodulokon elhelyezett jelöléseknek (címkék)? Milyen lépéseket kell elvégezni egy új Gadgeteer projekt létrehozásához? Mire való a ProgramStarted() metódus? 124

135 8. fejezet - Stopper alkalmazás készítése.netgadgeteer-el 8.1. A feladat célja A feladat célja egy egyszerű stopper alkalmazás készítése: Az időmérés egy nyomógomb segítségével indítható. Ha eztelindították, a gomb másodszori megnyomásával a művelet leállítható, és az eltelt idő leolvasható a grafikus kijelzőn. A gomb harmadszori megnyomásával a mért idő rögzítésre kerül, majd a stopper újraindul. A kijelzőn megjelenítésre kerül az elmúlt három időmérés eredménye A projekt létrehozása Indítsuk el a Visual Studio 2010 fejlesztőkörnyezetet, majd hozzunk létre egy új projektet (File/New/Project ): 8.1. ábra - Új projekt létrehozása A megjelenő ablakban válasszuk a.net GadgeteerApplication sablont a felkínált elemek közül. A projekt neve ( Name ) legyen Stopper ábra - Projekt tulajdonságainak beállítása 125

136 Stopper alkalmazás készítése.netgadgeteer-el 8.3. Az eszköz elkészítése A vizuális tervezőben hozzuk létre a stoppert reprezentáló eszközt a következő modulokból: Fez Spider próbapanel Button (nyomógomb) Display_T35 (érintőképernyős kijelző) A fejlesztőkörnyezet képes meghatározni, hogy a demópanelen melyik aljzathoz csatlakozzanak az egyes eszközök. A vizuális szerkesztő ablakában nyomjuk meg a jobboldali egérgombot, majd a felugró menüből válasszuk a Connectallmodues lehetőséget ábra - Stopper készülék tervező nézetben 126

137 Stopper alkalmazás készítése.netgadgeteer-el Ezt követően készítsük el a stopper készüléket az ábrának megfelelően. Ügyeljünk arra, hogy a készülék még ne legyen csatlakoztatva a PC-hez, illetve ne legyen áram alatt. A szükséges modulok: Piros modul FEZ Spider demópanel Nyomógomb Érintőképernyős kijelző 127

138 8.4. Az program megírása Stopper alkalmazás készítése.netgadgeteer-el Stopper osztály készítése Készítsünk egy Stopper osztályt, az időmérésre szolgáló eszköz reprezentálásához. Az osztályt egy új kódfájlban definiáljuk. Ennek létrehozásához a jobb-egérgombbal kattintsunk a Stopper projekt ikonján, majd válasszuk ki az Add/New Item opciót ábra - Új elem létrehozása a projektben A megjelenő ablakban válasszuk a Class opciót, névnek ( Name ) adjuk a következőt: Stopper.cs ábra - Új osztály hozzáadása a projekthez 128

139 Stopper alkalmazás készítése.netgadgeteer-el Az Add gombra kattintva létrejön az új kódfájl a Stopper osztály definíciójával: 8.6. ábra - Az új kódfájlban elhelyezett osztálydefiníció A stopper állapotának reprezentáláshoz szükséges egy StopperStatus nevű enum. Két állapot vehet fel az eszköz: Started: a stopper elindított állapotban van 129

140 Stopped: a stopper leállított állapotban van A forrásfájlt bővítsük az enum definícióval: Stopper alkalmazás készítése.netgadgeteer-el public enum StopperStatus { Started, Stopped } A stopper osztályon belül vegyük fel a következő mezőket: public static readonly int TimerResolution = 100; public static readonly int BufferCapacity = 3; private Timertimer; public TimeSpan[] LastTimes { get; private set; } private int timeindex; public TimeSpanMeasuredTime { get; private set; } public StopperStatus Stopperstatus { get; private set;} public event EventHandlerStopperUpdated; Az időmérést egy időzítő (Timer) objektum végzi, mely periódikusan, megadott időközönként (TimerResolution) növeli ameasuredtime változót TimerResolution egységgel, illetve kiváltja a StopperUpdated eseményt. Ebből következik, hogy a mérőeszköz pontosságát is ez a változó határozza meg (jelen esetben 100 ms, azaz a mérési pontosság egytized másodperc). Az elmentett mérési eredmények a LastTimes tömbbe kerülnek. Az eltárolt eredmények számát a BufferCapacity nevű változó segítségével lehet beállítani. Ha a bejegyzések száma elérte a maximumot, akkor körbeforgó módszerrel elölről kezdődik az indexelés, melyhez a timeindex változó kerül felhasználásra. A stopper indításakor, illetve leállításakor állapotátmenet következik be. Az aktuális állapotot a StopperStatus mező tárolja. Készítsük el az inicializálást végző konstruktort: public Stopper() { LastTimes = new TimeSpan[BufferCapacity]; timer = new Timer(TimerResolution, Timer.BehaviorType.RunContinuously); timer.tick += new Timer.TickEventHandler(timer_Tick); StopperStatus = StopperStatus.Stopped; } Amennyiben az időzítő Tick eseménye bekövetkezik, a timer_tick metódus kerül meghívásra, ahol a mért időt egységnyivel növeljük, majd kiváltjuk a frissítést jelző eseményt: void timer_tick(timertimer) { MeasuredTime = MeasuredTime.Add(new TimeSpan(0, 0, 0, 0, TimerResolution)); OnStopperUpdated(); } A mért idő frissítését az OnStopperUpdated() metódus jelzi a StopperUpdated eseménykezelő meghívásával, ellenőrizve, hogy az eseményre történt-e feliratkozás: private void OnStopperUpdated() 130

141 Stopper alkalmazás készítése.netgadgeteer-el { } if (StopperUpdated!= null) { StopperUpdated(this, EventArgs.Empty); } A stopper állapotváltását metódusok szabályozzák: Start(): elindítja az időmérést, illetve újraindítja azt, ha már elindult Stop(): leállítja az időmérést 8.7. ábra - A stopper állapotátmenet diagramja Az egyszerűség kedvéért bevezetésre kerül egy NextState() nevű metódus is, mivel gombnyomás hatására mindig a következő állapotba kell lépni, és ez az objektum státusza alapján egyértelműen elvégezhető, így tehát nem kell kívülről lekérdezni az aktuális állapotot és ez alapján állapotot váltani. A fentiek tükrében folytassuk az implementációt: public void Start() { MeasuredTime = new TimeSpan(); timer.start(); StopperStatus = StopperStatus.Started; } public void Stop() { timer.stop(); StopperStatus = StopperStatus.Stopped; } public void NextState() { switch (StopperStatus) { case StopperStatus.Started: SaveMeasuredTime(); Stop(); break; case StopperStatus.Stopped: Start(); break; default: break; } } A mért idő tárolását a SaveMeasuredTime() nevű metódus végzi: 131

142 Stopper alkalmazás készítése.netgadgeteer-el private void SaveMeasuredTime() { LastTimes[timeIndex++ % BufferCapacity] = MeasuredTime; } A LastTimes nevű tömb soron következő elemébe kerül beírásra az aktuálisan mért idő (MeasuredTime). A maradékos osztás biztosítja a körbeforgó indexelést. Az idő típusú változók megjelenítéséhez szükséges azok karakterlánccá konvertálása. A.NET Micro Framework nem tartalmaz Format() metódust, és a tostring() metódus sem alkalmas erre a feladatra, ezért egy sajátkészítésű Format() metódus szükséges, mely hasonló funkciót lát el: public string Format(TimeSpan timespan) { string formattedstring = String.Empty; formattedstring = WithLeadingZero(timeSpan.Minutes) + ":" + WithLeadingZero(timeSpan.Seconds) + "." + timespan.milliseconds / 100; return formattedstring; } Ez a metódus visszatérési értékként a paraméterben megadott idő perc, másodperc, és ezredmásodperc értékét szolgáltatja szöveges formában. Mivel a megjelenítés így nem hasonlít a hagyományos stoppereknél megszokott vezető-nullás megjelenítéshez, ezért szükség van még egy segédmetódusra, amely a megadott számot string-é konvertálja, és ha szükséges vezető-nullával látja el: private string WithLeadingZero(int number) { if (number< 10) { return "0" + number.tostring(); } else { return number.tostring(); } } A mért idő grafikus megjelenítéséhez készítsünk egy GetTimeText() nevű metódust: public string GetTimeText() { return Format(MeasuredTime); } Ezzel elkészült a Stopper osztály. A példányosított objektum szolgáltatásaita főprogramban használjuk fel A főprogram elkészítése A Progam osztály feladata a stopper vezérlése felhasználói interakciók alapján, illetve a grafikus megjelenítés. Az alkalmazás készítését ebben az osztályban kell folytatni (Program.cs fájl). Definiáljuk a következő mezőket: public static readonly GT.ColorMeasuredTimeColor = GT.Color.Red; 132

143 Stopper alkalmazás készítése.netgadgeteer-el public static readonly GT.ColorLastTimesColor = GT.Color.White; private Stopper stopper; private Bitmap bitmap; A sablon által létrehozott ProgramStarted() metódust bővítsük az alkalmazás inicializálásához szükséges hívásokkal: void ProgramStarted() { stopper = new Stopper(); stopper.stopperupdated += new EventHandler(stopper_StopperUpdated); button.buttonpressed += new Button.ButtonEventHandler(button_ButtonPressed); bitmap = new Bitmap((int) display.width, (int) display.height); UpdateUI(); } Az stopper indítása, illetve annak megállítása az eszközhöz csatlakoztatott gomb megnyomásával történik. Az interakció kezeléséhez a button.buttonpressed eseményre való feliratkozáskor megadott button_buttonpressed metódus implementálása szükséges. voidbutton_buttonpressed(buttonsender, Button.ButtonState state) { stopper.nextstate(); UpdateUI(); } Amennyiben a stopper által mért idő frissül, a StopperUpdated esemény bekövetkezik és végrehajtásra kerül a stopper_updated metódus, mely a felhasználói felület frissítését végzi: void stopper_stopperupdated(objectsender, EventArgs e) { UpdateUI(); } A frissítés során meg kell jeleníteni az aktuálisan mért időt és a rögzített időket. A rajzolás a bitmap objektum által szolgáltatott bitképre történik, majd az így elkészült kép megjelenítésre kerül a kijelzőn: private void UpdateUI() { string timetext = stopper.gettimetext(); Font font = Resources.GetFont(Resources.FontResources.NinaB); bitmap.clear(); bitmap.drawtext(timetext, font, MeasuredTimeColor, 0, 0); TimeSpan[] lasttimes = stopper.lasttimes; for (int i = 0; i <lasttimes.length; ++i) { bitmap.drawtext(stopper.format(lasttimes[i]), font, LastTimesColor, 0, ((i + 2) * font.height)); } display.simplegraphics.displayimage(bitmap, 0, 0); } 133

144 8.5. A program futtatása Stopper alkalmazás készítése.netgadgeteer-el A program futtatásához nyomjuk meg az F5 billentyűt és várjuk meg a program feltöltését az eszközre, mely újraindítást követően futtatja az elkészített alkalmazást ábra - Aprogram futtatás közben 8.6. Felkészülést segítő kérdések Mi a szerepe a Stopper osztálynak? Mire szolgál a StopperStatus típus? Mire használjuk a Timer-t és hogy működik? 134

145 9. fejezet - Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával 9.1. A feladat célja A feladat célja megismertetni a.netgadgeteer eszköz T35-ös kijelzőjének és a többszínű ledjének működését. A feladathoz szükség lesz a FEZ Spider panelre, multicolorled modulra és a T35-ös kijelzőre. A program az elindulást követően a kijelző érintésére vár kikapcsolt világítással. A világítást a multicolor (többszínű) led imitálja. A kijelző érintésének hatására a led fényereje fokozatosan növekszik, miközben a fényerő százalékos értéke megjelenítésre kerül a kijelzőn. Másodszori lenyomásra a fényerő csökken, és így tovább A projekt létrehozása Első lépésként nyissunk meg a Visual Studio 2010-et, majd hozzunk létre egy új.netgadgeteerapplication-t: Fájl New Project Visual C# / Gadgeteer Adjunk nevet a projektnek (pl. Light_Switch ), illetve egy elérési utat. Az OK gomb megnyomása után a következő képernyő fog megjelenni: 9.1. ábra - A Visual Studio 2010 új.netgadgeteer projekt A program alapértelmezés szerint a FEZ Hydra panelt rakja ki, ezt le kell cserélni a Spider-re, hiszen azzal dolgozunk. Töröljük ki a Hydrát és a bal oldali toolbox alján lévő GadgeteerMainboards kategóriából válasszuk a FEZ Spider-t. A toolbox GHI Electronics kategóriájából húzzuk a képernyőre a következő elemeket: Display_T35 135

146 MulticolorLed Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával A Spider alaplapjára kattintsunk jobb egérrel, majd a Connectallmodules -ra. Az összekapcsolt panelünknek így kell kinéznie: 9.2. ábra - az összekötött rendszer 9.3. A program megírása Az alapértelmezetten létrejön egy Program.cs nevű fájl, amibe a fejlesztőkörnyezet automatikusan egy programkódot generál. A kommentezést nyugodtan töröljük ki, a generált kód a következőképpen néz ki: namespace Light_Switch { public partial class Program { void ProgramStarted() { Debug.Print("Program Started"); } } } A Program nevű osztály az alkalmazás főosztálya, ezen belül a ProgramStarted() függvény indul el elsőként. Futtatásnál, a Debug.Print("Program Started") utasítás hatására a kimeneti ablakban (output window) megjelenik a felirat. A Program.cs fájlban találhatunk további sorokat. Ezek különböző osztálykönyvtár referenciák, amiket az alkalmazás használni fog. A példakódban külön nem jelöltem. Futtassuk a projektet! Ehhez az USB kliensbe (piros modul, ami az 1. portba van illesztve) csatlakoztassuk az USB kábel megfelelő végét, majd a másikat a PC egyik USB portjába. Az F5 gomb megnyomása után a program lefordul (build) és az eszközre feltöltődik (deploy). Amennyiben az előbbi folyamatok hiba nélkül lefutottak, a kimeneti ablakban megjelenik a Program Started felirat. A kijelző képernyője fekete és az 136

147 Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával alapértelmezés szerinti gyári információkat írja ki (verzió, felbontás). Ennek az az oka, hogy még nincs használatban a modul. Egészítsük ki a programot, úgy, hogy képes legyen a led intenzitását egy adott értékre beállítani, és erről írásos információt adjon a kijelzőn keresztül! Ehhez először helyezzünk el egy változót a ProgramStarted() függvény előtti sorokba: byte lightintensity = 0; A lightintensity változó a fényerőt tárolja érték között. Ha 0, akkor teljesen ki van kapcsolva, ha pedig 255 akkor pedig teljesen fel van kapcsolva a lámpa. Folytatólagosan (a ProgramStarted() függvény után) hozzunk létre két visszatérés nélküli függvényt: renderintensity() és setlightntensity(). void renderintensity() { display.simplegraphics.clear(); display.simplegraphics.displaytext("the light is on " + ((int)(lightintensity /2.55)).ToString() + "% power", Resources.GetFont(Resources.FontResources.NinaB), Colors.White, 50, 50); } voidsetlightintensity() { led.setblueintensity(lightintensity); led.setredintensity(lightintensity); led.setgreenintensity(lightintensity); } A renderintensity() függvény letörli a kijelzőt, és kiírja az aktuális fény intenzitást (lightintensity) százalékos formában. Például, ha a fényforrás teljesen fel van kapcsolva, ez a szöveg jelenik meg: "The light is on 100% power". A százalékot oly módon számoljuk ki, hogy a byte típusú lightintensity értéket elosztjuk 2.55-el, és integerré változtatjuk a típusát (typecast). A DisplayText metódus első paramétere ez a string lesz, a második a betűtípus, amelyet az erőforrásokból kell betölteni (Resources.FontResources.NinaB). Az ezt követő paraméterek a szöveg színe (fehér), és a képernyőre történő kiírás kezdő koordinátái (50,50). A setlightintensity() függvény beállítja az aktuális fény (led) intenzitást (lightintensity). A három színcsatornán azonos értéket kell beállítani. Ha mindegyik azonosan nulla, akkor a led nem ég, ha mindegyik azonosan 255, akkor a maximális erejű közel fehér fényt kapunk. Az additív színkeverés miatt, ha a színcsatornák értékei azonosak, akkor az azt jelenti, hogy a keletkező fény (megközelítőleg) fehér. A kapcsoló oly módon fog működni, hogyha először hozzáérünk, akkor a kikapcsolt fényforrás fényét folyamatosan növeli vagy a maximumig, vagy pedig amíg el nem engedjük. Ehhez definiálni kell egy irány típust (enum) és egy ilyen típusú változót. enum lightupdowndirection { up, down } lightupdowndirection lightdirection = lightupdowndirection.up; A lightupdowndirection típusnak két értéke van, az up és a down, amely a lámpa kapcsolás irányát mutatja. Kezdetben a lámpa ki van kapcsolva, így az irány up. A következő lépésben írjuk mega fényerő irányváltásért felelős programrészt. Ehhez szükség van további változókra: 137

148 byte previouslightintensity = 0; GT.Timertimer; int TimerResolution = 200; int timercount = 0; Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával Amennyiben a fényerőváltozásnál nem a szélsőértékekről (0, 255) történik az irányváltás, szükséges eltárolni a megelőző állapotot (previouslightintensity), illetve amíg a kapcsolót nyomva tartjuk, egy 200ms felbontású (TimerResolution) időzítő (GT.Timertimer) segítségével tudjuk a fényerőváltást lekezelni, a timercount változóba pedig a lenyomás idejét összegezzük. Kicsivel később visszatérünk rájuk. A ProgramStarted() függvényen belül, a Debug.Print("Program Started"); sor alá írjuk be a következőt: display.simplegraphics.autoredraw = true; led.turnoff(); display.wpfwindow.touchdown += new Microsoft.SPOT.Input.TouchEventHandler(WPFWindow_TouchDown); display.wpfwindow.touchup += new Microsoft.SPOT.Input.TouchEventHandler(WPFWindow_TouchUp); display.wpfwindow.invalidate(); timer = new GT.Timer(TimerResolution); timer.tick += new GT.Timer.TickEventHandler(timer_Tick); A display.simplegraphics.autoredraw() metódus a képernyő automatikus újrarajzolását engedélyezi. A led.turnoff() utasítással kikapcsoljuk induláskor a ledet, így létrehozzuk a kezdeti állapotot. Ezután a kapcsoló (érintő kijelző) kezelését kell megoldani. Ez rendelkezik egy TuchDown és TuchUp, azaz egy kijelző megnyomva és elengedve eseménnyel. Erre az eseményre való feliratkozást valósítja meg a fenti kódrészlet. Érdemes úgy csinálni, hogy beírjuk a += karakterekig, majd két darab tab gombot nyomunk. Így a környezet legenerálja a kód többi részét, valamint az eseményt kezelő függvényt (WPFWindow_TouchUp, WPFWindow_TouchDown). Az invalidate() metódus érvényteleníti a kijelző tartalmát, ami ezáltal egy újra renderelést valósít meg. A new GT.Timer(TimerResolution) utasítással példányosításra kerül az időzítő, amelynek 200ms időnként kiváltódik a timer.tick() eseménye. void WPFWindow_TouchDown(object sender, Microsoft.SPOT.Input.TouchEventArgs e) { timercount = 0; timer.start(); } A WPFWindow_TouchDown függvény (érintőképernyő lenyomás) nullázza a nyomás idejét összegző timercount változót, és elindítja a timer időzítőt. voidwpfwindow_touchup(object sender, Microsoft.SPOT.Input.TouchEventArgs e) { timer.stop(); if (lightdirection == lightupdowndirection.up) lightdirection = lightupdowndirection.down; else lightdirection = lightupdowndirection.up; previouslightintensity = lightintensity; } A WPFWindow_TouchUp függvény (érintőképernyő elengedés) megállítja az időzítőt, valamint invertálja a lámpa kapcsolás irányát, és frissíti az előző fényintenzitás értékét az aktuális fényintenzitással. void timer_tick(gt.timer timer) { 138

149 } Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával if (timer.isrunning) { int intensity; timercount += timer.interval.milliseconds; if (lightdirection == lightupdowndirection.up) intensity = (previouslightintensity + timercount / 10); else intensity = (previouslightintensity - timercount / 10); if (intensity>byte.maxvalue) { intensity = Byte.MaxValue; timer.stop(); } if (intensity<byte.minvalue) { intensity = Byte.MinValue; timer.stop(); } lightintensity = (byte)intensity; setlightntensity(); renderintensity(); } A timer_tick eseménykezelő függvény addig hívódik meg, ameddig nyomva tartjuk a kapcsolót (érintőképernyőt), és 200ms időközönként hívódik meg. Első feladat, hogy meg kell vizsgálni, valóban fut e még az időzítő (nyomva van-e a gomb ). A WPFWindow_TouchUp eseménykezelőben ugyan leállítjuk az időzítőt, de előfordulhat, hogy ezután még egyszer kiváltódik maga az Tick esemény. A timercount változóhoz hozzá kell adni az eltelt időt (timer.interval.milliseconds), majd ez alapján ki kell számítani a fényintenzitást (intensity) a kapcsolási iránynak megfelelően az előző intenzitást figyelembe véve. Ha a kiszámított intenzitás eléri, vagy meghaladja az egyik szélsőértéket, akkor határolni kell, illetve leállítani az időzítőt (mivel teljesen fel vagy le kapcsoltuk a lámpát). Ezek után a kiszámított intenzitást át kell adni a byte típusú lightintensity változónak, valamint utolsó lépésként frissíteni kell a fényforrás fényességét, és ki kell írni ugyanezt a kijelzőre a setlightntensity() és renderintensity() függvények segítségével. Az elkészült alkalmazásról néhány fénykép: 9.3. ábra - Teljesen kikapcsolt lámpa 139

150 Fényerő szabályozó lámpa érintő kapcsoló.netgadgeteer használatával 9.4. ábra - 7%-os kitöltésű lámpa 140

Nyolcbites számláló mintaprojekt

Nyolcbites számláló mintaprojekt Nyolcbites számláló mintaprojekt 1. Bevezető A leírás egy nyolcbites számláló elkészítésének és tesztelésének lépéseit ismerteti. A számláló értéke az órajel felfutó élének hatására növekszik. A törlőgombbal

Részletesebben

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) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.

Részletesebben

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István LOGIKAI TERVEZÉS PROGRAMOZHATÓ ÁRAMKÖRÖKKEL Előadó: Dr. Oniga István Programozható logikai áramkörök fejlesztőrendszerei Fejlesztő rendszerek Terv leírás: (Design Entry) Xilinx Foundation ISE Külső eszköz

Részletesebben

FPGA alapú áramkörök fejlesztése a Xilinx ISE Webpack használatával

FPGA alapú áramkörök fejlesztése a Xilinx ISE Webpack használatával FPGA alapú áramkörök fejlesztése a Xilinx ISE Webpack használatával Tartalom 1 Bevezetés... 2 2 A mérés során használt eszközök... 2 2.1 Spartan 3 FPGA család... 2 2.1.1 Kapcsolómátrix... 3 2.1.2 Órajel...

Részletesebben

ISE makró (saját alkatrész) készítése

ISE makró (saját alkatrész) készítése ISE makró (saját alkatrész) készítése 1. Makró (saját alkatrész) hozzáadása meglévő projekthez... 2 1.1. Kapcsolási rajz alapú makró készítése... 2 1.2. Kapcsolási rajz alapú saját makró javítása... 4

Részletesebben

Digitális technikai alapáramkörök labormérése

Digitális technikai alapáramkörök labormérése Digitális technikai alapáramkörök labormérése 1 Copyright-oldal Óbudai Egyetem - Neumann János informatikai Kar CONTENTS 1 Bevezetés 3 2 A mérés során használt eszközök 4 2.1 Spartan 3 FPGA család...........................

Részletesebben

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) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Kombinációs LABOR feladatok Laborfeladat: szavazatszámláló, az előadáson megoldott 3 bíró példája Szavazat példa specifikáció Tervezz

Részletesebben

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) 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ő

Részletesebben

Bev Be e v z e e z t e ő t az ISE re r nds nds e z r e használatához

Bev Be e v z e e z t e ő t az ISE re r nds nds e z r e használatához Bevezető az ISE rendszer használatához Fejlesztő rendszerek Terv leírás: (Design Entry) Xilinx Foundation ISE Külső eszköz Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Szintézis terv: (Design

Részletesebben

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) 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ő

Részletesebben

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

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István Laborgyakorlat 3 A modul ellenőrzése szimulációval Dr. Oniga István Szimuláció és verifikáció Szimulációs lehetőségek Start Ellenőrzés után Viselkedési Funkcionális Fordítás után Leképezés után Időzítési

Részletesebben

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

Részletesebben

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN Előadó: Dr. Oniga István Programozható logikai áramkörök fejlesztőrendszerei Fejlesztő rendszerek Terv leírás: (Design Entry) Xilinx Foundation ISE Külső eszköz Mentor

Részletesebben

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

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

Részletesebben

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

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 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 kapcsolója által definiált logikai szinteket fogadja, megfelelő

Részletesebben

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

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 3. Laboratóriumi gyakorlat A gyakorlat célja: Négy változós AND, OR, XOR és NOR függvények realizálása Szimulátor használata ciklussal

Részletesebben

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) 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ő

Részletesebben

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

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 2. Laboratóriumi gyakorlat gyakorlat célja: oolean algebra - sszociativitás tétel - Disztributivitás tétel - bszorpciós tétel - De

Részletesebben

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István Egytemi docens

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István Egytemi docens LOGIKAI TERVEZÉS PROGRAMOZHATÓ ÁRAMKÖRÖKKEL Előadó: Dr. Oniga István Egytemi docens A tárgy weboldala http://irh.inf.unideb.hu/user/onigai/ltpa/logikai_tervezes.htmltervezes.html Adminisztratív információk

Részletesebben

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 19. Verzió 1.2. http://logsys.mit.bme.hu

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 19. Verzió 1.2. http://logsys.mit.bme.hu LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 19. Verzió 1.2 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros

Részletesebben

PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK. Elıadó: Dr. Oniga István Egytemi docens

PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK. Elıadó: Dr. Oniga István Egytemi docens PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK Elıadó: Dr. Oniga István Egytemi docens A tárgy weboldala http://irh.inf.unideb.hu/user/onigai/ple/programozhato_logika.html Adminisztratív információk Tárgy: Oktató: Dr.

Részletesebben

Digitális technika Xilinx ISE GUI használata

Digitális technika Xilinx ISE GUI használata 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 Xilinx ISE GUI használata BME MIT Fehér Béla Raikovich

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3 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 3 Fehér Béla Raikovich Tamás,

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3 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 3 Fehér Béla Raikovich Tamás,

Részletesebben

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

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

Részletesebben

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.

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. 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 2017. június 16. Verzió 1.0 http://logsys.mit.bme.hu A dokumentum célja egy egyszerű alkalmazás

Részletesebben

Segédlet a Xilinx Spartan-3 FPGA méréshez

Segédlet a Xilinx Spartan-3 FPGA méréshez Segédlet a Xilinx Spartan-3 FPGA méréshez A Xilinx ISE WebPack 9.1 IDE (Integrated Development Envirement Integrált Fejlesztő Környezet) segítségével hozzunk létre egy egyszerű demo programot a gyakorlópanelen

Részletesebben

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

Előadó: Nagy István (A65) Programozható logikai áramkörök FPGA eszközök Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,

Részletesebben

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

Részletesebben

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar Szabó Tamás Dr. Lovassy Rita - Tompos Péter DIGITÁLIS TECHNIKA LABÓRATÓRIUMI ÚTMUTATÓ 3. kiadás Mikroelektronikai és Technológia Intézet Budapest, 2014-1

Részletesebben

2008. október 9. Verzió 1.0. http://logsys.hu

2008. október 9. Verzió 1.0. http://logsys.hu LOGSYS SPARTAN 3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2008. október 9. Verzió 1.0 http://logsys.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros FLASH memória...

Részletesebben

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva T Bird 2 AVR fejlesztőpanel Használati utasítás Gyártja: BioDigit Kft Forgalmazza: HEStore.hu webáruház BioDigit Kft, 2012 Minden jog fenntartva Főbb tulajdonságok ATMEL AVR Atmega128 típusú mikrovezérlő

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 1

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,

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 1

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,

Részletesebben

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István PROTOTÍPUSKÉSZÍTÉS VERILOG NYELVEN Előadó: Dr. Oniga István A tárgy weboldala http://irh.inf.unideb.hu/user/onigai/pvn/verilog.html Adminisztratív információk Tárgy: Oktató: tó Dr. Oniga István (oniga.istvan@inf.unideb.hu)

Részletesebben

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

Perifériák hozzáadása a rendszerhez Perifériák hozzáadása a rendszerhez Intellectual Property (IP) katalógus: Az elérhető IP modulok listája Bal oldalon az IP Catalog fül Ingyenes IP modulok Fizetős IP modulok: korlátozások Időkorlátosan

Részletesebben

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

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

Részletesebben

A LOGSYS rendszer ismertetése

A LOGSYS rendszer ismertetése 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 rendszer ismertetése Raikovich Tamás BME MIT atórium A LOGSYS

Részletesebben

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

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István Kombinációs áramkörök modelezése Laborgyakorlat Dr. Oniga István Funkcionális kombinációs egységek A következő funkcionális egységek logikai felépítésével, és működésével foglalkozunk: kódolók, dekódolók,

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 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 Fehér Béla Raikovich Tamás,

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 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 Fehér Béla Raikovich Tamás,

Részletesebben

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

Részletesebben

CGS Civil 3D Extensions 2012 telepítése

CGS Civil 3D Extensions 2012 telepítése CGS Civil 3D Extensions 2012 telepítése Indítsuk el a telepítést a setup_2012_hun_xx 1 bit_vyy 2.exe fájlra való kattintással. A megjelenő telepítő varázsló lapon olvassuk el az információkat, majd kattintsunk

Részletesebben

Programozási segédlet DS89C450 Fejlesztőpanelhez

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.

Részletesebben

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

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

Részletesebben

Digitális technika VIMIAA01 9. hét

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

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4 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 4 Fehér Béla Raikovich Tamás,

Részletesebben

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

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

Részletesebben

DIGITÁLIS TECHNIKA I

DIGITÁLIS TECHNIKA I DIGITÁLIS TECHNIKA I Dr. Kovács Balázs Dr. Lovassy Rita Dr. Pődör Bálint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet 11. ELŐADÁS 1 PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ A B C E 1 E 2 3/8 O 0 O 1

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Vivado fejlesztői környezet Fehér Béla Raikovich

Részletesebben

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008.

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008. A Xilinx FPGA-k A programozható logikákr król általában A Spartan-3 3 FPGA belső felépítése Az FPGA fejlesztés s menete BMF KVK MAI, Molnár Zsolt, 2008. A programozható logikák k I. Logikai eszközök: -

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5.5

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,

Részletesebben

Bevezető az ISE rendszer használatához

Bevezető az ISE rendszer használatához Bevezető az ISE rendszer használatához Fejlesztő rendszerek Terv leírás: (Design Entry) Xilinx Foundation ISE Külső eszköz Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Szintézis terv: (Design

Részletesebben

A ChipScope logikai analizátor

A ChipScope logikai analizátor A ChipScope egy, az FPGA tervbe integrálható logikai analizátor, amely az FPGA terv belső jeleinek vizsgálatára használható Előnye a normál logikai analizátorhoz képest Az igényeknek megfelelően konfigurálható

Részletesebben

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

Részletesebben

SQL Backup and FTP. A program telepítésének menete. A szoftvert a következő weboldalról ingyenesen tölthető le: https://sqlbackupandftp.

SQL Backup and FTP. A program telepítésének menete. A szoftvert a következő weboldalról ingyenesen tölthető le: https://sqlbackupandftp. SQL Backup and FTP A szoftvert a következő weboldalról ingyenesen tölthető le: https://sqlbackupandftp.com/ A program telepítésének menete A telepítő elindítása után megjelenő képernyő a Next > gomb megnyomásával

Részletesebben

Újrakonfigurálható eszközök

Újrakonfigurálható eszközök Újrakonfigurálható eszközök 1. CPLD komplex programozható logikai eszközök 1 Tartalom Újrakonffigurálható eszközök: PAL, PLA, CPLD, FPGA Az ALTERA MAXII EPM240 CPLD bemutatása A C-M240 fejlesztői kártya

Részletesebben

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

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

Részletesebben

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán A QGIS program GPS eszközök modulja segítségével kétirányú kommunikációt folytathatunk a navigációs GPS vevőnkkel.

Részletesebben

1 Laboratóriumi gyakorlat

1 Laboratóriumi gyakorlat 1 Laboratóriumi gyakorlat A gyakorlat célja: megismerkedni a félév során használandó fejlesztoeszközökkel megismerkedni a félév során használandó fejlesztoeszközökkel megszerezni a szükséges készségeket

Részletesebben

Aromo Szöveges értékelés normál tantárggyal

Aromo Szöveges értékelés normál tantárggyal Aromo Szöveges értékelés normál tantárggyal Aromo Iskolaadminisztrációs Szoftver Felhasználói kézikönyv -- Szöveges értékelés 1 Tartalomjegyzék Aromo Szöveges értékelés normál tantárggyal 1 Bevezetés 3

Részletesebben

E-Freight beállítási segédlet

E-Freight beállítási segédlet E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet

Részletesebben

ReszlAd fájl, kitöltési útmutató:

ReszlAd fájl, kitöltési útmutató: 1 ReszlAd fájl, kitöltési útmutató: A ReszlAd táblázat egy adott látogatás részletes adatait tartalmazza. A szaktanácsadó által hiánytalanul kitöltött, és elnevezett fájlt e-mail üzenetben kérjük elküldeni

Részletesebben

Kombinációs hálózatok és sorrendi hálózatok realizálása félvezető kapuáramkörökkel

Kombinációs hálózatok és sorrendi hálózatok realizálása félvezető kapuáramkörökkel Budapesti Műszaki és Gazdaságtudományi Egyetem Közlekedés- és Járműirányítási Tanszék Kombinációs hálózatok és sorrendi hálózatok realizálása félvezető kapuáramkörökkel Segédlet az Irányítástechnika I.

Részletesebben

Mobil Partner telepítési és használati útmutató

Mobil Partner telepítési és használati útmutató Mobil Partner telepítési és használati útmutató Tartalom Kezdeti lépések... 2 Telepítés... 2 A program indítása... 6 Mobile Partner funkciói... 7 Művelet menü... 7 Kapcsolat... 7 Statisztika... 8 SMS funkciók...

Részletesebben

A FileZilla program beállítása az első belépés alkalmával

A FileZilla program beállítása az első belépés alkalmával 6. A záróvizsga-jegyzőkönyv készítése A záróvizsga-jegyzőkönyveketa Karok többsége a jegyzőkönyvkészítésre Dr. Tánczos László által kifejlesztett Access alkalmazás használatával készíti el. A záróvizsga-jegyzőkönyv

Részletesebben

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

A gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók. Megoldás Digitális technika II. (vimia111) 1. gyakorlat: Digit alkatrészek tulajdonságai, funkcionális elemek (MSI) szerepe, multiplexer, demultiplexer/dekóder Elméleti anyag: Digitális alkatrészcsaládok

Részletesebben

Lapműveletek. Indítsuk el az Excel programot és töröljük ki a Munka1 nevű munkalapot!

Lapműveletek. Indítsuk el az Excel programot és töröljük ki a Munka1 nevű munkalapot! Bevezetés Ebben a fejezetben megismerkedünk az Excel munkalapjainak beszúrásával, törlésével, másolásával, valamint áthelyezésével, illetve csoportos kezelésével. Képesek leszünk különböző munkafüzetek

Részletesebben

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt segédlet A Szilipet programok az adatok tárolásához Firebird adatbázis szervert használnak. Hálózatos

Részletesebben

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség:

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség: KRYPTON sablon Részletes leírás a sablonhoz kapcsoló új beállításokról Diavetítés a kezdőlapon A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség: Képes diavetítés Termékes diavetítés

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4 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 4 Fehér Béla Raikovich Tamás,

Részletesebben

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika (VIMIAA01) Laboratórium 4 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 4 Fehér Béla Raikovich Tamás,

Részletesebben

FELHASZNÁLÓI ÚTMUTATÓ

FELHASZNÁLÓI ÚTMUTATÓ FELHASZNÁLÓI ÚTMUTATÓ VÉRADÁS IDŐPONT SZERKESZTŐ (verzió: 1.2) 2013. április 1. Tartalomjegyzék 1. Telepítés és indítás... 3 2. Frissítés... 3 3. Beállítás... 4 4. Felület... 4 5. Véradó helyszínek...

Részletesebben

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv Tartalomjegyzék 1. Symbian rendszer...2 1.1 Funkciók és követelmények...2 1.2 Telepítés és használat...2 2. Windows Mobile rendszer...6 2.1

Részletesebben

FPGA áramkörök alkalmazásainak vizsgálata

FPGA áramkörök alkalmazásainak vizsgálata FPGA áramkörök alkalmazásainak vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Raikovich Tamás, 2012. 1 Bevezetés A programozható logikai áramkörökön (FPGA) alapuló hardver gyorsítók

Részletesebben

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

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához Ellenőrizzük a projektből importált adatokat. Ha rendben vannak, akkor kattintsunk a Next gombra. Válasszuk a Create Design

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

ContractTray program Leírás

ContractTray program Leírás ContractTray program Leírás Budapest 2015 Bevezetés Egy-egy szerződéshez tartozó határidő elmulasztásának komoly gazdasági következménye lehet. Éppen ezért a Szerződés kezelő program főmenü ablakában a

Részletesebben

Oktatási Segédlet a Xilinx ISE 14.7 szoftver használatához

Oktatási Segédlet a Xilinx ISE 14.7 szoftver használatához Vásárhelyi József: Oktatási Segédlet a Xilinx ISE 14.7 szoftver használatához Alapok A ISE 14.7 a Xilinx cég FPGA integrált fejlesztői környezete, amely a támogatja az új típusú és régebbi FPGA fejlesztést

Részletesebben

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

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,

Részletesebben

Választó lekérdezés létrehozása

Választó lekérdezés létrehozása Választó lekérdezés létrehozása A választó lekérdezés egy vagy több rekordforrásból származó adatokat jelenít meg. A választó lekérdezések a táblák, illetve az adatbázis tartalmát nem változtatják meg,

Részletesebben

Aromo Szöveges értékelés kódolt tantárggyal

Aromo Szöveges értékelés kódolt tantárggyal Aromo Szöveges értékelés kódolt tantárggyal AROMO Iskolaadminisztrációs Szoftver - Felhasználói kézikönyv - Szöveges értékelés 1 Tartalomjegyzék Aromo Szöveges értékelés kódolt tantárggyal 1 Bevezetés

Részletesebben

Oktatás. WiFi hálózati kapcsolat beállítása Windows XP és Windows 7-es számítógépeken. SZTE Egyetemi Számítóközpont

Oktatás. WiFi hálózati kapcsolat beállítása Windows XP és Windows 7-es számítógépeken. SZTE Egyetemi Számítóközpont Oktatás WiFi hálózati kapcsolat beállítása Windows XP és Windows 7-es számítógépeken SZTE Egyetemi Számítóközpont WLAN kapcsolat beállítása 1 Tartalom Windows XP... 2 Tanúsítvány telepítése... 2 WPA2 védett

Részletesebben

Digitális aláírás általános telepítése és ellenőrzése

Digitális aláírás általános telepítése és ellenőrzése Digitális aláírás általános telepítése és ellenőrzése A digitális aláírásból (tanúsítványból) két fajta létezik! Egyik az úgynevezett hardveres tanúsítvány, amelynél az ügyfél rendelkezik fizikailag egy

Részletesebben

DebitTray program Leírás

DebitTray program Leírás DebitTray program Leírás Budapest 2015 Bevezetés Egy-egy kintlévőséghez tartozó határidő elmulasztásának komoly következménye lehet. Éppen ezért a Kintlévőség kezelő program főmenü ablakában a program

Részletesebben

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva T Bird 2 AVR fejlesztőpanel Használati utasítás Gyártja: BioDigit Kft Forgalmazza: HEStore.hu webáruház BioDigit Kft, 2012 Minden jog fenntartva Főbb tulajdonságok ATMEL AVR Atmega128 típusú mikrovezérlő

Részletesebben

DIGITÁLIS TECHNIKA 13. Dr. Oniga István

DIGITÁLIS TECHNIKA 13. Dr. Oniga István DIGITÁLIS TECHNIKA 13 Dr. Oniga István Xilinx FPGA-k Több család Spartan: hatékony, optimalizált struktúra Virtex: speciális funkciók, gyorsabb, komplexebb, gazdagabb g funkcionalitás Felépítés: CLB: logikai

Részletesebben

Digitális aláíró program telepítése az ERA rendszeren

Digitális aláíró program telepítése az ERA rendszeren Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,

Részletesebben

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 18. Verzió 1.0. http://logsys.mit.bme.hu

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 18. Verzió 1.0. http://logsys.mit.bme.hu LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 18. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros FLASH

Részletesebben

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Felhasználói Segédlet MICROSEC Kft. 1022 Budapest, Marczibányi tér 9. telefon: (1)438-6310 2002. május 4. Tartalom Jelentés készítése...3 Új

Részletesebben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program A GeoEasy telepítése GeoEasy V2.05 Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2008 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása

Részletesebben

Egészségterv és edzésprogram használati utasítás

Egészségterv és edzésprogram használati utasítás TELEPÍTÉS (1) Üdvözli a Bi-LINK. Az alkalmazás használatával követheti, megértheti és irányíthatja legfontosabb egészségügyi paramétereit. Az első lépés készüléke adatainak megtekintéséhez, hogy letölti,

Részletesebben

Vodafone Mobile Connect telepítése

Vodafone Mobile Connect telepítése Vodafone Mobile Connect telepítése Kérjük ne csatlakoztassa a Vodafone Mobile Connect eszközt a Mac számítógépéhez. Ha esetleg már csatlakoztatta az adatkártyát vagy a modemet a Mac számítógépéhez, akkor

Részletesebben

Elektronikus pályázati űrlap (eform) létrehozása - Útmutató

Elektronikus pályázati űrlap (eform) létrehozása - Útmutató Az elektronikus pályázati űrlap (eform) létrehozása Az Európa a polgárokért programban a projektjavaslatokat elektronikus pályázati űrlap (e-űrlap) használatával kell benyújtani. A papír alapon, postai

Részletesebben

Java telepítése és beállítása

Java telepítése és beállítása A pályázati anyagok leadás Mozilla Firefox böngészőn keresztül: Tartalom Java telepítése és beállítása... 1 USB kulcs eszközkezelő telepítése... 4 USB kulcs telepítése böngészőbe... 4 Kiadói tanúsítvány

Részletesebben

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek MSP430 programozás Energia környezetben Kitekintés, további lehetőségek 1 Még nem merítettünk ki minden lehetőséget Kapacitív érzékelés (nyomógombok vagy csúszka) Az Energia egyelőre nem támogatja, csak

Részletesebben

HVK Adminisztrátori használati útmutató

HVK Adminisztrátori használati útmutató HVK Adminisztrátori használati útmutató Tartalom felöltés, Hírek karbantartása A www.mvfportal.hu oldalon a bejelentkezést követően a rendszer a felhasználó jogosultsági besorolásának megfelelő nyitó oldalra

Részletesebben

Távolléti díj kezelése a Novitax programban

Távolléti díj kezelése a Novitax programban Mire jó a FirebirdSettings.exe Ezzel a programmal a Firebird adatbázis-kezelővel és az adatbázisokkal kapcsolatos beállításokat lehet elvégezni. Mit kell tenni a használata előtt A FirebirdSettings.exe

Részletesebben

ServiceTray program Leírás

ServiceTray program Leírás ServiceTray program Leírás Budapest 2015 Bevezetés szerviz munkalapok státuszai a Törölve és Lezárva státuszt leszámítva a munkalap különböző nyitott állapotát jelzik, melyek valamilyen tevékenységet jeleznek.

Részletesebben