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

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

Mikrorendszerek tervezése

Mikrorendszerek tervezése

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?

Silabs STK3700, Simplicity Studio laborgyakorlat

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

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

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

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

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

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

TI TMDSEVM6472 rövid bemutatása

A LOGSYS rendszer ismertetése

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

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

A ChipScope logikai analizátor

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

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

6.2. TMS320C64x és TMS320C67xx DSP használata

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.

Digitális technika (VIMIAA02) Laboratórium 1

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

Digitális technika (VIMIAA02) Laboratórium 1

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

Nyolcbites számláló mintaprojekt

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

Beágyazott rendszerek fejlesztése laboratórium DSP fejlesztési technológiák

SIOUX-RELÉ. Sioux relé modul telepítési leírás Szerkesztés MACIE0191

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

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

2008. október 9. Verzió

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

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

Yottacontrol I/O modulok beállítási segédlet

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

Programozási segédlet DS89C450 Fejlesztőpanelhez

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

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

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Easton420. Automata Telefon hangrögzítő. V 6.0 Telepítése Windows XP rendszerre

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

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

Mikrorendszerek tervezése

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

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

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

Digitális technika VIMIAA01 9. hét

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

KINCO PLC és HMI, frekvenciaváltó árlista

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

AVR-Stamp1.0F_USB Leírás, használati útmutató. Rev.B

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

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

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

KINCO árlista. Viszonteladói árlista. K2 PLC család K5 PLC család MT,GL univerzális kijelzők CV frekvenciaváltók PS tápegységek

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

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

Satel ETHM-1. Ethernet modul.

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

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

Thermo1 Graph. Felhasználói segédlet

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

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

evosoft Hungary Kft.

Autóipari beágyazott rendszerek CAN hardver

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

ems2.cp04d [18010] Keriterv Mérnök Kft Programozható Automatikai állomás 14 multifunkcionális bemenet, 6 relé kimenet, 4 analóg kimenet DIGICONTROL

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

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

Microblaze Micro Controller

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

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Mobil Informatikai Rendszerek

3. Gyors útmutató 4. Garanciakártya

(1) 10/100/1000Base-T auto-sensing Ethernet port (2) 1000Base-X SFP port (3) Konzol port (4) Port LED-ek (5) Power LED (Power)

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

U42S Felhasználási példák Gitárjáték rögzítése

Elemi alkalmazások fejlesztése I.

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

Mikrorendszerek tervezése

A megfelelőségi nyilatkozat letölthető a honlapról

Labor 2 Mikrovezérlők

Digitális technika (VIMIAA02) Laboratórium 5.5

Általános soros sín (USB) Felhasználói útmutató Rendszerigény Nyomtatója beépített USB portja az alábbi minimális rendszerkonfiguráció mellett használ

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

KINCO PLC és HMI, frekvenciaváltó árlista

Digitális technika Xilinx ISE GUI használata

Netis vezeték nélküli, N típusú USB adapter

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

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

Digitális fényképezőgép Szoftver útmutató

Készítette: Oláh István mestertanár

Rendszerkezelési útmutató

A fő menüpontok között a bal vagy jobb nyíllal mozoghatunk, Enter leütésére pedig megjelenik az adott menühöz tartozó tartalom.

Á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: 2017. április 6.

FPGA-alapúbeágyazott rendszerektervezése Dr. Kincses Zoltán, Dr. VörösháziZsolt 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 tesztelése (ZYBO video-audio, Nexys VGA vezérlő) 3

ZyBo 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 ZyBo kártyán 6

A. NYOMÓGOMBOK, DIP KAPCSOLÓK BEÁGYAZOTT RENDSZER ÉS SZOFTVER ALKALMAZÁS ÖSSZEÁLLÍTÁSA 7

A bővítendő tesztrendszer Memory DDR3 Memory Controller M_AXI_G P1 AXI4 AXI Interconnect Block AXI4 AXI-BRAM Controller BRAM PL RS232 I2C0 UART I2C ARM Cortex-A9 AXI4- Lite I2C PMOD_TMP2 C PS Timer M_AXI_G P0 AXI4- Lite AXI Interconnect Block AXI4- Lite AXI4- Lite AXI4- Lite LED_IP GPIO GPIO LED Push-Buttons DIP Switches B A PS oldal: ARM hard-processzor mag belső OnChip-RAM vezérlő RS232 soros interfész külső DDR3 memória vezérlő I2C vezérlő PL oldal: A: GPIO PBSs: Push Button(nyomógomb kezelő) DIPs: Switches(kapcsoló kezelő) B: GPIO LEDs: LED kijelző C: I2C vezérlős hőmérsékletmérő modul (PMOD_TMP2) ARMPS/vagyPLoldalraistehető 8

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 9

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 AXI_GPIO perifériát a System Assembly View segítségével 2 2x 3 1x DIP 1x PB 1 10

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

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

GPIO perifériák hozzáadása és összekötése az alaprendszerhez V. Ezek után egy-egy IP modulhoz (pl. AXI_GPIO) az XPS-ben a következőket kell még beállítani (AXI interfész esetén, manuális / automatikus is lehet): a.) a busz kapcsolatot az IP modul és buszrendszer (AXI) 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 PortsViewnézetben), d.) Végül a külső portok fizikai FPGA lábakhoz rendelését (.UCF szerkesztése). 13

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

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 15

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 ZyBo kártyán található (dip) kapcsolókhoz és(pb) nyomógombokhoz: 1.) A GPIO példányok adat port-jait a külső fizikai FPGA lábakra(pin) is kell kötni, 2.) Az <system>.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 2 1 16

GPIO perifériák hozzáadása és összekötése az alaprendszerhez V/ d. - CLK portok hozzárendelése 17

MHS file: port-ok vizsgálata 18

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

DRC ellenőrzés futtatása, bitstream generálás Project menü Design RuleCheck Módosított, vagy nem BSB-bőlgenerá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. 20

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

A módosított MHS file áttekintése 1.) Kérdés(portok) Külső PL oldali portok száma? Külső PL oldali portok száma(amelyek kimenetek)? Külső PL oldali portok száma(amelyek bemenetek)? Külső PL oldali portok száma(melyek kétirányúak)? Milyen a tárolási formátuma ezeknek a több-bites külső portoknak (endianitás)? 2.) Kérdés(buszok, belső jelek) Mely IP periféria példányok processing_system7_0_fclk_clk0 nevű órajelhez? kapcsolódnak a Mekkora ez az órajel? Mely IP periféria példányok kapcsolódnak az axi4lite_0 nevű AXI Lite busz interfészhez? 3.) Kérdés(címek) Vázolja fel a rendszer teljes memória térképét a példánynevek megadásával! 22

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

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 processing_system7_0_fclk_clk0 órajel kapcsolódik a axi4lite_0 processing_system7 LEDs_4Bits dip pb processing_system7_0_fclk_clk0 órajel 100 MHz Mely IP periféria példányok kapcsolódnak az axi4lite_0 nevű AXI buszrendszerhez processing_system7 LEDs_4Bits dip pb 24

A módosított MHS file áttekintése 3.) Kérdés - Megoldás (System Assembly View Addresses) 0x0000_0000 0x1fff_ffff DDR_RAM 512M Alacsony címtartomány 0x2000_0000 0x411f_ffff Nem használt PL oldali perifériák 0x4120_0000-0x4120_FFFF 0x4122_0000-0x4122_FFFF 0x4124_0000-0x4124_FFFF dip LEDs_4Bits pb 0x4125_0000 0xE010_0000 PS-7 (UART, USB, GPIO, ENET, SDIO) 0xE010_0FFF-0xFFFF_FFFF Nem használt vagy fenntartott Magas címtartomány 25

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

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 27

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 28

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

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

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 31

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

Tesztalkalmazás (TestApp) készítése VII. Fordító beállítása Jobb kattintás a TestApp-ra C/C++ Build Settings 2 1 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. 33

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

Beágyazott rendszer és szoftver teszt-verifikációja I. A JTAG-USB programozó (USB-soros) kábel csatlakoztatása a számítógéphez és a kártyához, Debugkonfiguráció: a Consol-raaz USB soros port beállítása (COMx), majd Csatlakozás Digilent ZyBo kártya bekapcsolása, FPGA tartalom letöltése Xilinx Tools Program FPGA (.bit fájl kiválasztása) 1 2 35

Beágyazott rendszer és szoftver teszt-verifikációja I. 1 3 2 36

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

Összefoglalás Az előző (4.) ismeretkörben létrehozott ARM-AXI 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 ZyBo kártyán lévő DIP kapcsolók és PUSH 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). 38

B. LED vezérlő BEÁGYAZOTT RENDSZER ÉS SZOFTVER ALKALMAZÁS ÖSSZEÁLLÍTÁSA 39

B.) A bővítendő tesztrendszer Memory DDR3 Memory Controller M_AXI_G P1 AXI4 AXI Interconnect Block AXI4 AXI-BRAM Controller BRAM PL RS232 I2C0 UART I2C ARM Cortex-A9 AXI4- Lite I2C PMOD_TMP2 C PS Timer M_AXI_G P0 AXI4- Lite AXI Interconnect Block AXI4- Lite AXI4- Lite AXI4- Lite LED_IP GPIO GPIO LED Push-Buttons DIP Switches B A PS oldal: ARM hard-processzor mag belső OnChip-RAM vezérlő RS232 soros interfész külső DDR3 memória vezérlő I2C vezérlő PL oldal: A: GPIO PBSs: Push Button(nyomógomb kezelő) DIPs: Switches(kapcsoló kezelő) B: GPIO LEDs: LED kijelző v4 C: I2C vezérlős hőmérsékletmérő modul (PMOD_TMP2) v5 ARMPS/vagyPLoldalraistehető 40

Slide 40 v4 v5 LAB02_B voroshazi, 29/03/2017 LAB02C voroshazi, 29/03/2017

Példa 1: LED vezérlő Lépések: A LAB02 ismeretkör elsajátítása során létrehozott projekt archiválása, átmásolása (LAB02_B néven), majd a 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 (4-bites, mivel 4 LED), IP példány neve legyen LEDs_4Bits. Output 4 bit. Base Addr: 0x4122_0000 (méret: 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 ZyBo kártyára. 41

Példa 2.) LED-esszá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 4- bites számláló értékének növelésével egymás után villantsa fel. Segítség: BER_lab2b_led8bit_count.zip Használja a beépített pl. u8 adattípust Mivel sys_clk = 100 MHz, késleltesse a LED-ek fel- /le-villanását (pl. for() ciklussal), úgy hogy a felvillanások ideje érzékelhető legyen. Xparameters.hfilebóla makrók használata, fordítási hiba esetén (pl. redefine) LED_DELAY, GPIO_BITWIDTH beállítása! 42

Példa 3.) LED-es fényfüzér Módosítsa az előző Példa 2.) szereplő Periféria Teszt SWalkalmazását úgy, hogy a LED-ek értékét mindig egy pozícióval shiftelibalra (növekvő bináris súlyú számláló) BER_lab2b_led8bit_shift.zip 43

Példa 4.) LED-es fényfüzér KnightRider Módosítsa az előző Példa 3.) szereplő Periféria Teszt SWalkalmazását úgy, hogy a LED-ek értékét mindig egy pozícióval shift-elibalra, majd amikor eléri a végértéket visszafelé, jobbra shift-eli(növekvő, illetve csökkenő bináris súlyú számláló BER_lab2b_led8bit_knightrider.zip 44

C. PMOD_TMP hőmérséklet mérő (I2C vezérlő) BEÁGYAZOTT RENDSZER ÉS SZOFTVER ALKALMAZÁS ÖSSZEÁLLÍTÁSA 45

C. A bővítendő tesztrendszer Memory DDR3 Memory Controller M_AXI_G P1 AXI4 AXI Interconnect Block AXI4 AXI-BRAM Controller BRAM PL RS232 I2C0 UART I2C ARM Cortex-A9 AXI4- Lite I2C PMOD_TMP2 C PS Timer M_AXI_G P0 AXI4- Lite AXI Interconnect Block AXI4- Lite AXI4- Lite AXI4- Lite LED_IP GPIO GPIO LED Push-Buttons DIP Switches B A PS oldal: ARM hard-processzor mag belső OnChip-RAM vezérlő RS232 soros interfész külső DDR3 memória vezérlő I2C vezérlő PL oldal: A: GPIO PBSs: Push Button(nyomógomb kezelő) DIPs: Switches(kapcsoló kezelő) B: GPIO LEDs: LED kijelző C: I2C vezérlős hőmérsékletmérő modul (PMOD_TMP2) ARMPS/vagyPLoldalraistehető 46

Irodalmi háttér DigilentPMOD 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áziZsolt: 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 47

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

DigilentPMOD_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.3Vvagy 5V interfész támogatás, Kalibrálást nem igényel! 49

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 AXI_IIC Interfacenevű 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 (= InterIC kommunikáció) 2 3 1 50

Philips I 2 C szabványról (1982) Forrás: https://en.wikipedia.org/wiki/i%c2%b2c 1.Data Transfer is initiated with a START bit (S) signaledby SDA being pulled low while SCL stays high. 2.SDA sets the 1st data bit level while keeping SCL low (during bluebar time). 3.The data is sampled (received) when SCL rises (green) for the first bit (B1). 4.This process repeats, SDA transitioning untilscl is lowagain, and the data being read while SCL is high (B2, Bn). 5.A STOP bit (P) is signaledwhen SDA is pulled Master write(0) to or read(1) from the Slave high while SCL is high. 51

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

I 2 C vezérlő hozzáadása és összekötése az alaprendszerhez III. Ezek után egy-egy IP modulhoz (pl. AXI_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 (AXI) 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 PortsView), d.) Végül a külső portok fizikai FPGA lábakhoz rendelését (.UCF szerkesztése) 53

I 2 C vezérlő hozzáadása és összekötése az alaprendszerhez IV. / a. AXI Liteinterfész összekapcsolása az I2C IP modulokkal. S_AXI = AXI Slave-oldali eszköz. 54

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 55

I 2 C vezérlő összekötése az alaprendszerhez IV./ c. - Külső portok hozzárendelése A axi_iic_0 példányt hozzá kell kapcsolni az ZyBo kártyán található JE 3/JE 4 PMOD kivezetésekhez 1.)AI 2 CpéldánySDA/SCLjeleita külsőfizikaipllábra(pin)-rakellkapcsolni 2.)Az.UCFfájl-banmegkelladniazadottPLoldalipinazonosítóját Ezt a feladatot a következőképpen oldhatjuk meg System Assembly View-> Port fül megnyitása Órajele: FCLK_CLK0 Portjai: axi_iic_0 (IO_IF) iic_0 megnyitása(sda, Scl portok bekötései) Alapbeállítás 56

ZyBoPMOD konnektorok SDA https://www.xilinx.com/support/documentation/university/xup%20boards/xupzybo/documentation/zybo_rm_b_v6.pdf SCL 57

I 2 CösszekötetéskülsőporthozrendeléseII. Módosítani kell az.ucf file-t (\data\system.ucf alapértelmezett) 1 2 ZYBO_RM_B_V6.pdf 58

DRC ellenőrzés futtatása, bitstream generálás Project menü Design RuleCheck Módosított, vagy nem BSB-bőlgenerá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. 59

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

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_c/sdk/sdk_export majd kattintsunk az OK-ra 4.) Az SDK-ban: File New Board Support Package kattintsunk a Finish-re 61

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. kernel(esetleg 3rd Party OS) Rendelkezésre álló könyvtári függvények (lib) kiválasztása 62

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

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

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

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/component/docman/doc_download/1444-berpmodtmp2driverfiles Linker script generálása (.ld): OnChip RAM 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 AnalogDevicestá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 66

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

Tesztalkalmazás (TestApp) készítése VI. Lehetséges fordítási hibák: Átdefineolni(ADT7420.h fileban): XPAR_AXI_IIC_1_BASEADDR #define I2C_BASEADDR XPAR_AXI_IIC_0_BASEADDR Lásd korábban: bsp/include/ xparameters.h 67

Teszt verifikáció I. DigilentPMOD_TMP2 hőmérséklet mérő kártya DigilentZyBokártyához csatlakoztatása, Standard JE 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) A JTAG-USB programozó/táp (USB-soros port) csatlakoztatása a kártyához és a számítógéphez, Digilent ZyBo kártya bekapcsolása, Debugkonfiguráció: A Consol-raaz USB soros port beállítása (COMx), majd Csatlakozás Xilinx Tools Program FPGA.bit fájl kiválasztása, FPGA programozása, Debug konfiguráció: környezet beállítása és indítása. 68

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()); 69

Teszt verifikáció III. Kártya helyes csatlakoztatása PMOD JE-re. http://www.analog.com/media/en/technical-documentation/data-sheets/adt7420.pdf SDA SCL 70