Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése



Hasonló dokumentumok
Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Mikrorendszerek tervezése

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

2004 Xilinx, Inc. All Rights Reserved. EDK Overview Xilinx, Inc. All Rights Reserved

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Témakiírások 2014/15. őszi félévben

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

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

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

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

TI TMDSEVM6472 rövid bemutatása

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

The modular mitmót system. A DPY-LED perifériakártya

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

Bemutatás. Elrendezés. Leírás. Műszaki adatok. Funkciók

Tervezési módszerek programozható logikai eszközökkel

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Ó

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

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

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

TC3XY Gyorskezdés Segéd Útmutató es verzió

libgdx alapok, első alkalmazás

USBTiny-MKII programozó

Tervezési módszerek programozható logikai eszközökkel

A ChipScope logikai analizátor

A Picoblaze Core implementálása FPGA-ba

hp pro webkamera felhasználói útmutató

Digitális bemenetek: 2 darab 0-5V jelszintű digitális bemenet Pl. nyitásérzékelők, risztóközpontok, mozgásérzékelők, átjelzők, stb.

ARM mikrovezérlők programozása

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

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

K_EITS8, Multichannel Impedance Meter K_EITS8, nyolc csatornás elektromos impedancia mérő berendezés

Silabs STK3700, Simplicity Studio laborgyakorlat

Dr. Vörösházi Zsolt: Beágyazott rendszerek fejlesztése (FPGA) A felsőfokú informatikai oktatás minőségének fejlesztése, modernizációja

Raikovich Tamás BME MIT

A JAVA FUTTATÁSAKOR ELŐFORDULÓ HIBA-

Message Broadcasting. Rendszerkörnyezet. A Message Broadcasting telepítése. Üzenetek létrehozása

Rendszerarchitektúrák labor Xilinx EDK

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

A megfelelő IP védelem biztosításával, alkalmasak a kültéri alkalmazások kialakítására.

HOLDPEAK 856A SZÉLSEBESSÉG MÉRŐ

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

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

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

L7000 típusú Ujjlenyomatos ajtózár. Használati útmutató

Dr. Pétery Kristóf: CorelDRAW 9 testre szabás

TMS370 EEPROM PROGRAMOZÓ Felhasználói kézikönyv

(BMEVIMIM322) Az NI 9263 DA és NI 9239 AD kártyákra alapuló mérések NI crio-9074 platformon. (BME-MIT-Beágyazott Rendszerek Csoport)

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

IDAXA-PiroSTOP JFE RS485 intelligens repeater 2004/0177/0113 Terméklap

GQ-3x és GQ-4x USB univerzális programozó Kézikönyv

BME-MIT. Linux board bringup

A TANTÁRGY ADATLAPJA

Microblaze Micro Controller

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

2008. október 9. Verzió

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

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.

TANÚSÍTVÁNY. tanúsítja, hogy a Polysys Kft. által kifejlesztett és forgalmazott

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

TC3XY NT/MT Beléptető rendszer 1.0 verzió Telepítési Útmutató

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

Wi-Drive Használati útmutató

BioEntry TM Telepítési Útmutató

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

Mikrorendszerek tervezése

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

melléklet. Fogyasztásmérők, összegzők

komplex megoldás a beléptetés minden területén: Beléptető, munkaidő nyilvántartó, parkoló és jegyértékesítő-beléptető rendszerek

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

DUALCOM SIA IP TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. V és újabb modulverziókhoz. Dokumentum verzió:

GT64 GSM/GPRS modem. Alkalmazási útmutató

Leuze lumiflex. Moduláris biztonsági interfész MSI-mi/R MSI-mi/T típusok. Csatlakozási és használati utasítás. Leuze lumiflex MSI-mi 1

A SZOFTVER TELEPÍTÉSE ELŐTT TELEPÍTÉS WINDOWS KÖRNYEZETBEN TELEPÍTÉS MACINTOSH KÖRNYEZETBEN HIBAKERESÉS

OKI B430 telepítési útmutató

Kezelési utasítás Single "SBC" vezérlés

AHT-0405KA 4 csatornás AHT-0810KA 8 csatornás AHT-1620KA 16 csatornás

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

6.2. TMS320C64x és TMS320C67xx DSP használata

Procontrol. Kezelői és telepítői kézikönyv. Internetről kapcsolható dugaljzat _R9C revízió

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

Használati útmutató MFC-9140CDN MFC-9330CDW MFC-9340CDW. Nem minden modell kapható az összes országban. 0 verzió HUN

Érzékelők és beavatkozók I.

GSM Gate Control Pro 20 GSM Gate Control Pro 1000

Gyártmányismertető M304 szivattyúvédő modulhoz.

Multimédia Felhasználói útmutató

2 - ELEKTROMOS BEKÖTÉSEK

Használati útmutató. Automatikus TrueRMS multiméter USB interfésszel AX-176

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt

Meghajtók Felhasználói útmutató

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

Átírás:

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése A felsőfokú informatikai oktatás minőségének fejlesztése, modernizációja TÁMOP-4.1.2.A/1-11/1-2011-0104 Főkedvezményezett: Pannon Egyetem 8200 Veszprém Egyetem u. 10. Kedvezményezett: Szegedi Tudományegyetem 6720 Szeged Dugonics tér 13. 2014 Frissítve: 2016. március 30.

FPGA-alapú beágyazott rendszerek tervezése Dr. Kincses Zoltán, Dr. Vörösházi Zsolt 5. Perifériák hozzáadása (IP adatbázisból) az összeállított beágyazott alaprendszerhez

Tárgyalt ismeretkörök 1. Bevezetés Beágyazott rendszerek 2. FPGA-k, Digilent Nexys-2 és ZYBO fejlesztő kártyák és eszközök 3. Beágyazott Rendszer fejlesztő szoftverkörnyezet (Xilinx EDK Embedded Development Kit/XPS Xilinx Platform Studio) áttekintése 4. Beágyazott alap tesztrendszer (BSB - Base System Builder and Board Bring-Up) összeállítása XPS-ben 5. Perifériák hozzáadása (IP adatbázisból) az összeállított beágyazott alaprendszerhez 6. Saját periféria hozzáadása az összeállított beágyazott alaprendszerhez 7. Szoftver alkalmazások fejlesztése, tesztelése, hibakeresése (debug) Xilinx SDK használatával (Software Development Kit) 8. HW-SW rendszerek együttes tesztelése(xilinx ChipScope) 9. Beágyazott Linux operációs rendszer I.: a MicroBlaze szoft-processzoron Linux rendszer beállítása és indítása 10. Beágyazott Linux operációs rendszer II.: Alkalmazás fejlesztés, tesztelés, meghajtó-programok, és boot-olás 11. Egyedi hardver szellemi termékek fejlesztése és tesztelése (ZYBO AC97, Nexys VGA vezérlő) 3

Nexys-2 Xilinx EDK használata IP HOZZÁADÁSA A BEÁGYAZOTT RENDSZERHEZ 4

Feladat XPS/EDK: Katalógusban lévő IP-k (Intellectual Property) hozzáadása az elkészült hardver rendszerhez, Az.UCF fájl módosítása a hozzáadott IP maghoz, valamint külső port-okhoz tartozó beállításokkal, A módosított.mhs fájl vizsgálata. SDK fordító beállításainak testre szabása Teszt-alkalmazás generálása, készítése a beépített SW template (sablon) alapján 5

A feladat megoldásának lépései Az előző (04. fólia) ismeretkör elsajátítása során létrehozott projekt archiválása (LAB01 LAB02 néven), majd pedig a \LAB02 megnyitása EDK-ban Az IP katalógusból kiválasztott GPIO perifériák integrálása és összekötése az alaprendszerrel, Külső GPIO portok létrehozása (.UCF,.MHS), Az.MHS file tartalmának áttekintése, Egy Periféria teszt-alkalmazás (TestApp) készítése az SDK-környezetben, A FW+SW tervek teszt verifikálása a Digilent Atlys / Nexys-2 kártyán 6

Beágyazott rendszer kibővítése BRAM Utasítás ILMB BRAM vezérlő MicroBlaze DLMB BRAM vezérlő Adat B A LEDs PSBs DIPs MDM GPIO GPIO GPIO UART I2C EMC vezérlő PMOD_TMP2 C PSDRAM Flash PLB Busz Beépítendő GPIO (General Purpose I/O) modulok: A: GPIO PBSs: Push Button(nyomógomb kezelő) DIPs: Switches(kapcsoló kezelő) B: GPIO LEDs: LED kijelzők (! 06. előadás fóliában, de saját IP periféria vez.modullal kerül beépítésre ) C: I2C vezérlős hőmérsékletmérő modul (PMOD_TMP2) 7

Korábbi projekt archiválása és megnyitása Hozzunk létre egy új mappát, legyen a neve \LAB02 Másoljuk át az előző ismeretkör elsajátításakor létrehozott projektet (azaz a \LAB01 mappa tartalmát) Indítsuk el az XPS\EDK szoftvert: Start Programok XilinxDesign Tools ISE Design Suite14.7 EDK Xilinx Platform Studio File Open Project <projectdir>/lab02/system.xmp Open 8

GPIO perifériák hozzáadása és összekötése az alaprendszerhez II. Új IP mag hozzáadására két lehetőség kínálkozik az XPS/EDK-ban: a.) System Assembly View használatával b.) Az.MHS fájl kézi szerkesztésével Adjunk a processzor rendszerhez két XPS_GPIO perifériát a System Assembly View segítségével 2 2x 3 1x DIP 1x PB 1 9

GPIO perifériák hozzáadása és összekötése az alaprendszerhez III. DIP kapcsoló sor 1 2 3 10

GPIO perifériák hozzáadása és összekötése az alaprendszerhez IV. PB nyomógomb sor 1 2 3 11

GPIO perifériák hozzáadása és összekötése az alaprendszerhez V. Ezek után egy-egy IP modulhoz (pl. XPS_GPIO) az XPS-ben a következőket kell még beállítani (kivétel AXI interfész esetén, ahol ez automatikus): a.) a busz kapcsolatot az IP modul és buszrendszer (PLB) között b.) az IP modul címtartományhoz rendelését (Base-High Addresses) c.) az IP modulok I/O portjainak külső (external) portokhoz rendelése (.MHS vagy Ports View nézetben), d.) Végül a külső portok fizikai FPGA lábakhoz rendelését (.UCF szerkesztése). 12

GPIO perifériák hozzáadása és összekötése az alaprendszerhez V / a. PLB busz összekapcsolása az új GPIO IP modulokkal (dip, pb). SPLB = Slave-oldali PLB eszköz. 1 2 3 13

GPIO perifériák hozzáadása és összekötése az alaprendszerhez V / b. Memória címtartományok beállítása Addresses nézet kiválasztása Map -eletlen IP perifériák memória-címtartományhoz rendelése: a.) automatikusan - címgenerálással vs. b.) manuálisan 1 *Címeknek 2^n méretűnek kell lennie és nem lapolódhatnak át! 2 14

GPIO perifériák hozzáadása és összekötése az alaprendszerhez V / c. - Külső portok hozzárendelése A dip és pb nevű GPIO példányokat hozzá kell kapcsolni a Nexys-2 kártyán található DIP kapcsolókhoz és nyomógombokhoz: 1.) A GPIO példányok adat port-jait a külső fizikai FPGA lábakra (pin) kell kötni, 2.) Az.UCF fájl-ban meg kell adni az adott FPGA pin azonosítóját. Ezt a feladatot a következőképpen oldhatjuk meg: System Assembly View -> Port fül megnyitása dip (IO_IF) gpio_0, valamint pb (IO_IF) gpio_0 megnyitása Alapbeállítás 1 2 15

GPIO összeköttetés külső porthoz rendelése II. Módosítani kell az.ucf file-t (\data\system.ucf alapértelmezett) 1 2 3 16

DRC ellenőrzés futtatása, bitstream generálás Project menü Design Rule Check Módosított, vagy nem BSB-ből generált beágyazott rendszer esetén érdemes DRC (Design RuleChecking) ellenőrzést is futtatni. Kiszűri az esetleges elkötéseket, hibákat, Figyelmeztető (warning) jellegű üzenetek megengedettek (szintetizálható a terv), Legtöbb lebegő (floating) vezetékkel sem kell foglalkozni (pl. Peripheral Reset, FSL_x, stb). Ezután indítható el a Netlista, ill. Bitstream generálás. 17

Xilinx EDK használata MHS LEÍRÓ VIZSGÁLATA 18

A módosított MHS file áttekintése 1.) Kérdés Külső portok száma? Külső portok száma (amelyek kimenetek)? Külső portok száma (amelyek bemenetek)? Külső portok száma (melyek kétirányúak)? Milyen a tárolási formátuma a több-bites külső portoknak (endianitás)? 2.) Kérdés Mely IP periféria példányok kapcsolódnak a clk_50_0000mhz nevű órajelhez? Mely IP periféria példányok kapcsolódnak az mb_plb nevű PLB buszrendszerhez? 3.) Kérdés Vázolja fel a rendszer teljes memória térképét a példánynevek megadásával! 19

A módosított MHS file áttekintése 1.) Kérdés Megoldás (.MHS fájl alapján) 1 20

A módosított MHS file áttekintése 2.) Kérdés Megoldás (.MHS file alapján) Mely IP periféria példányokhoz kapcsolódik a clk_50_0000mhz órajel mb_plb ilmb dlmb Micron_RAM clock_generator_0 proc_sys_reset_0 Mely IP periféria példányok kapcsolódnak az mb_plb nevű PLB buszrendszerhez microblaze_0 (2x): dplb, iplb RS232_PORT Micron_RAM mdm_0 dip pb 21

A módosított MHS file áttekintése 3.) Kérdés - Megoldás (System Assembly View Addresses) 0x00000000 0x00003fff dlmb,ilmb Alacsony címtartomány 0x00004000 0x82ffffff Nem használt 0x83000000 0x8300ffff 0x83010000 0x8301ffff 0x84000000 0x8400ffff 0x84400000 0x8440ffff 0x85000000 0x85ffffff dip pb RS232_PORT Mdm_0 Micron_RAM 0x86000000-0xffffffff Nem használt Magas címtartomány 22

Xilinx SDK SZOFTVER TESZT ALKALMAZÁS ÖSSZEÁLLÍTÁSA 23

Tesztalkalmazás (TestApp) készítése I. 1.) SDK elindítása (EDK-ból): Project Export Hardware Design to SDK 2.) Kattintsunk az Export& Launch SDK gombra Ha még nincs elkészítve az új rendszerhez tartozó netlista és bitstream, akkor ez automatikusan legenerálódik mielőtt az SDK elindulna 3.) A Select a workspace ablakban válasszuk ki a <project_dir>/lab02/sdk/sdk_export majd kattintsunk az OK-ra 4.) Az SDK-ban: File New Xilinx Board Support Package kattintsunk a Finish-re. Új BSP neve standalone_bsp_0 lehet 24

Tesztalkalmazás (TestApp) készítése II. Software Platform Settings (korábbi rendszerekben még az EDK része volt!) Operációs rendszer kiválasztása: standalone vs. xilkernel (esetleg 3rd Party OS) Rendelkezésre álló könyvtári függvények (lib) kiválasztása 25

Tesztalkalmazás (TestApp) készítése III. 1 Új projekt alkalmazás létrehozása (Xilinx Application Project) 2 3 4 26

Tesztalkalmazás (TestApp) készítése IV. 1 3 2 27

Tesztalkalmazás (TestApp) készítése V. Új C forrás fájl létrehozása/hozzáadása (lab2.c): 1 2 3 28

Tesztalkalmazás (TestApp) készítése VI. Forrás kód megírása (vagy hozzáadása): 29

Tesztalkalmazás (TestApp) készítése VII. Fordító beállítása Jobb kattintás a TestApp-ra C/C++ Build Settings 1 2 4 3 Mivel a programunkban van egy for() ciklus is, mely a késleltetésért felel, és nem szeretnénk, hogy a fordító kioptimalizálja, ezért kapcsoljuk ki az optimalizálást( O0) = None szintűre. 30

Tesztalkalmazás (TestApp) készítése VIII. Linker Script létrehozása Jobb kattintás a TestApp-ra Generate Linker Script 1 2 31

Beágyazott rendszer és szoftver teszt-verifikációja I. Digilent Nexys-2 kártya bekapcsolása, Az USB-soros port, és a JTAG-USB programozó csatlakoztatása a számítógéphez, A Terminal ablakban az USB soros port beállítása (COMx), majd Csatlakozás Xilinx Tools Program FPGA.bit,.bmm, valamint.elf fájlok kiválasztása (debug-hoz nem kell elf!) 32

Beágyazott rendszer és szoftver teszt-verifikációja II. Kapcsolók (dip), és nyomógombok (pb) működésének verifikációja (Peripheral_test template alapján) Tapasztalat: BIG ENDIAN! * A példában while(1) ciklus van használva a folyamatos lekérdezéshez! 33

Összefoglalás Az előző (4.) ismeretkörben létrehozott MicroBlaze alap-rendszerhez hozzáadtunk két új GPIO perifériát az IP katalógusból. A perifériákat a megfelelő módon konfiguráltuk, és hozzákapcsoltuk az FPGA külső lábaihoz (pin). Ezután analizáltuk a módosított.mhs fájlt. Az.UCF fájlt kiegészítettük a Nexys-2 kártyán lévő DIP kapcsolók és nyomógombok bekötésének megfelelően. Végül verifikáltuk az elkészült rendszert és a SW alkalmazás működését (Periféria Teszt). 34

B.) Beágyazott rendszer kibővítése BRAM Utasítás ILMB BRAM vezérlő MicroBlaze DLMB BRAM vezérlő Adat B A LEDs PSBs DIPs MDM GPIO GPIO GPIO UART I2C EMC vezérlő PMOD_TMP2 C PSDRAM Flash PLB Busz Beépítendő GPIO (General Purpose I/O) modulok: A: GPIO PBSs: Push Button (nyomógomb kezelő) DIPs: Switches (kapcsoló kezelő) B: LEDs: GPIO LED vezérlő(8-bites legyen, csak kimeneti irányú) C: I2C vezérlős hőmérséklet szenzor modulv3 v2 35

Slide 35 v2 v3 LAB2_B voroshazi, 11/03/2015 LAB2_C voroshazi, 11/03/2015

Példa 1: LED vezérlő Lépések: Az ismeretkör elsajátítása során létrehozott projekt archiválása (LAB02), illetve Xilinx EDK-ban megnyitása LED vezérlő: az IP katalógusból kiválasztott GPIO periféria integrálása és összekötése az alaprendszerrel (8-bites, mivel 8 LED), IP példány neve legyen leds. Input 8 bit. Base Addr: 0x83020000 (64 K) Külső GPIO LED portok létrehozása (.UCF,.MHS), Az.MHS file tartalmának áttekintése, Egy Periféria teszt-alkalmazás (TestApp) készítése a Xilinx SDK-környezetben (template-ből generálható), A FW-SW tervek teszt verifikálása a Nexys-2 kártyákon 36

Lehetséges.UCF hiba FPGA lábaknál Phase 2.7 Design Feasibility Check ERROR:Place:864 - Incompatible IOB's are locked to the same bank 1 Conflicting IO Standards are: IO Standard 1: Name = LVCMOS25, VREF = NR, VCCO = 2.50, Xilinx PlanAhead: Memória IOSTANDARD-jével (LVCMOS 3.3V) ütközik a definiálatlan LED_GPIO IOSTRANDARD-jével (hibásan 2.5V default érték)! Megoldás: LED IOSTANDARD = LVCMOS33 legyen. ütközések 37

.UCF hiba javítása Módosítani kell az.ucf file-t (\data\system.ucf alapértelmezett) LED lábak: LVCMOS33! Megj: XBD fájl is definiálja az I/O láb szabványát: Digilent_Nexys2-1200/500_v2_2_0.xbd 38

Példa 2.) LED-es számláló Módosítsa az előző Példa 1.) szereplő Periféria Teszt SW alkalmazását úgy, hogy a LED-eket egy 8-bites számláló értékének növelésével egymás után villantsa fel. Segítség: használja a beépített u8 adattípust Mivel sys_clk = 50 MHz, késleltesse a LED-ek fel-/le-villanását (pl. for() ciklussal) 39

C.) Beágyazott rendszer kibővítése BRAM Utasítás ILMB BRAM vezérlő MicroBlaze DLMB BRAM vezérlő Adat B A LEDs PSBs DIPs MDM GPIO GPIO GPIO UART I2C EMC vezérlő PMOD_TMP2 C PSDRAM Flash PLB Busz Beépítendő GPIO (General Purpose I/O) modulok: A: GPIO PBSs: Push Button(nyomógomb kezelő) DIPs: Switches(kapcsoló kezelő) B: LEDs: LED-ek (06. előadás fóliában, saját periféria modulként beépítve ) C: I2C vezérlős hőmérséklet szenzor modul 40

Irodalmi háttér Digilent PMOD TMP2 hőmérséklet szenzor modul (I2C): http://digilentinc.com/products/detail.cfm?navpath=2,401,961&prod=pmod-tmp2 http://digilentinc.com/data/products/pmod-tmp2/pmodtmp2_rm.pdf Analog Devices ADT7420 hőmérséklet érzékelő IC: http://www.analog.com/media/en/technical-documentation/data-sheets/adt7420.pdf Analog Devices Digilent közös Wiki oldala: http://wiki.analog.com/resources/alliances/digilent Referencia terv FPGA-ra(SW driver-ekkel)! http://wiki.analog.com/resources/fpga/xilinx/pmod/adt7420 I 2 C szabványról általánosan: Fodor Attila, Dr. Vörösházi Zsolt: Beágyazott rendszerek, TÁMOP 4.1.2 (PE MIK, Villamosmérnöki és Információs Rendszerek Tanszék) 2011. http://tananyagfejlesztes.mik.uni-pannon.hu/ I2C Wikipedia: https://en.wikipedia.org/wiki/i%c2%b2c 41

ADT 7420 Az IC blokkszintű kapcsolási rajza: PMOD_TMP2 jelei / választható I 2 C címek: 42

Digilent PMOD_TMP2 I 2 C alapú hőmérséklet érzékelő és hőfokszabályzó periféria modul T A = 40 C +150 C, max. 16-bit felbontásig skálázható, Átlagos pontossága jobb, mint 0.25 C, 13 = 9+4 bites módban: 1/2 4 = 0.0625 C, 16 = 9+7 bites módban: 1/2 7 = 0.0078 C, I 2 C interfész, 4 választható (jumper) I 2 C címmel (A 1 -A 0 ), Folyamatos konverzió 240ms-ként, Programozható küszöbértékek (max/min - CT), külső lábak, mint threshold (INT), 3.3 V vagy 5V interfész támogatás, Kalibrálást nem igényel! 43

I 2 C vezérlő hozzáadása és összekötése az alaprendszerrel I. Új IP mag hozzáadására két lehetőség kínálkozik az XPS/EDK-ban: a.) System Assembly View használatával b.) Az.MHS fájl kézi szerkesztésével Adjunk a processzor rendszerhez két XPS_IIC Interface nevű IP perifériát a System Assembly View segítségével (IP katalógusból) Megjegyzés: IIC sok helyen I 2 C vezérlőként szerepel (= Inter IC kommunikáció) 2 3 1 44

I 2 C vezérlő hozzáadása és összekötése az alaprendszerhez II. 1 2 45

I 2 C vezérlő hozzáadása és összekötése az alaprendszerhez III. Ezek után egy-egy IP modulhoz (pl. XPS_IIC) az XPS-ben a következőket kell még beállítani (kivétel AXI interfész esetén, ahol ez automatikus): a.) A busz kapcsolatot az IP modul és buszrendszer (PLB) között b.) Az IP modul címtartományhoz rendelését (Base-High Addresses) c.) Az IP modulok I/O portjainak külső (external) portokhoz rendelése (.MHS vagy Ports View), d.) Végül a külső portok fizikai FPGA lábakhoz rendelését (.UCF szerkesztése) 46

I 2 C vezérlő hozzáadása és összekötése az alaprendszerhez IV. / a. PLB busz összekapcsolása az I2C IP modulokkal. SPLB = Slave-oldali PLB eszköz. 47

I 2 C vezérlő hozzáadása és összekötése az alaprendszerhez IV. / b. Memória címtartományok beállítása Addresses nézet kiválasztása Map -eletlen IP perifériák memória-címtartományhoz rendelése: a.) automatikusan - címgenerálással - DE előtte lock! (címek, amiket rögzíteni akarunk) b.) manuálisan. 1 *Címeknek 2^n méretűnek kell lennie és nem lapolódhatnak át! 2 48

I 2 C vezérlő összekötése az alaprendszerhez IV. / c. - Külső portok hozzárendelése A xps_iic_0 példányt hozzá kell kapcsolni az Nexys-2 kártyán található JA3/JA4 PMOD kivezetésekhez 1.) A I 2 C példány SDA/SCL jeleit a külső fizikai FPGA lábra (pin)-ra kell kapcsolni 2.) Az.UCF fájl-ban meg kell adni az adott FPGA pin azonosítóját Ezt a feladatot a következőképpen oldhatjuk meg System Assembly View -> Port fül megnyitása Xps_iic_0 (IO_IF) iic_0 megnyitása (Sda, Scl portok bekötései) Alapbeállítás 49

I 2 C összekötetés külső porthoz rendelése II. Módosítani kell az.ucf file-t (\data\system.ucf alapértelmezett) 1 2 Nexys_2_rm.pdf 50

DRC ellenőrzés futtatása, bitstream generálás Project menü Design Rule Check Módosított, vagy nem BSB-ből generált beágyazott rendszer esetén érdemes DRC (Design RuleChecking) ellenőrzést is futtatni. Kiszűri az esetleges elkötéseket, hibákat Figyelmeztető (warning) jellegű üzenetek megengedettek (szintetizálható a terv) Legtöbb lebegő (floating) vezetékkel sem kell foglalkozni (pl. Peripheral Reset, FSL_x stb.) Ezután indítható el a Netlista, ill. Bitstream generálás. 51

Xilinx SDK SZOFTVER TESZT ALKALMAZÁS ÖSSZEÁLLÍTÁSA (PMOD_TMP2) 52

Tesztalkalmazás (TestApp) készítése I. 1.) SDK elindítása (EDK-ból): Project Export Hardware Design to SDK 2.) Kattintsunk az Export& Launch SDK gombra Ha még nincs elkészítve az új rendszerhez tartozó netlista és bitstream, akkor ez automatikusan legenerálódik mielőtt az SDK elindulna 3.) A Select a workspace ablakban válaszuk ki a <projectdir>/lab02/sdk/sdk_export majd kattintsunk az OK-ra 4.) Az SDK-ban: File New Xilinx Board Support Package kattintsunk a Finish-re 53

Tesztalkalmazás (TestApp) készítése II./a Software Platform Settings (korábbi rendszerekben még az EDK része volt!) Operációs rendszer kiválasztása: standalone vs. xilkernel (esetleg 3rd Party OS) Rendelkezésre álló könyvtári függvények (lib) kiválasztása 54

Tesztalkalmazás (TestApp) készítése II./b 55

Tesztalkalmazás (TestApp) készítése III. 1 Új projekt alkalmazás létrehozása (Xilinx Application Project) 2 3 4 56

Tesztalkalmazás (TestApp) készítése IV. 1 3 2 57

Tesztalkalmazás (TestApp) készítése V. Új forrás fájl létrehozása/hozzáadása: 1 2 Analog Devices BER_PmodTMP2_DriverFiles.zip * -ből hozzáadni: - ADT7420.c /.h - I2c.c /.h - Main.c * http://virt.uni-pannon.hu/index.php/honlapkezeles/dokumentumok/doc_download/1444-berpmodtmp2driverfiles Linker script generálása (.ld): BRAM vs. külső MEM. SW alkalmazás fordítása (.elf) Tesztverifikáció: bitfile generálás + tesztelés FPGA-n. *Megjegyzés: az i2c.c és i2.h fájlok az Analog Devices támogató csomagjából lettek felhasználva. Alternatív megoldásként a Xilinx iic.c és iic.h fájlokat is használhatjuk: Lásd: <Xilinx install_dir>/ise_ds/edk/sw/xilinxprocessoriplib/drivers/iic_vx_yz_a/doc/html/api/index.html v1 58

Slide 58 v1 http://wiki.analog.com/_media/resources/fpga/xilinx/pmod/adt7420_nexys3.zip voroshazi, 11/03/2015

Teszt verifikáció I. Digilent PMOD_TMP2 hőmérséklet mérő kártya Digilent Nexys-2 kártyához csatlakoztatása, JA1 PMOD foglalat felső sorának 3-4-es lábaira (SCL SDA) PMOD_TMP2-es kártyán a JP1/JP2 jumperek nincsenek rövidre zárva (A0/A1 címek) Digilent Nexys-2 kártya bekapcsolása, Az USB-soros port, és a JTAG-USB programozó csatlakoztatása a számítógéphez, A Terminal ablakban az USB soros port beállítása (COMx), majd Csatlakozás Xilinx Tools Program FPGA.bit,.bmm valamint.elf fájlok kiválasztása, FPGA programozása, Debug környezet beállítása és indítása. 59

Teszt verifikáció II. A forráskódból a következő rész felel az aktuális hőmérséklet kiíratásáért: Display_Temp(ADT7420_ReadTemp()); 60

Teszt verifikáció III. Kártya helyes csatlakoztatása PMOD JA-ra. 61