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

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

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?

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

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

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

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

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

Mikrorendszerek tervezése

Mikrorendszerek tervezése

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

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

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

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

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

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

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.

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

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

Digitális technika VIMIAA01 9. hét

Nyolcbites számláló mintaprojekt

A ChipScope logikai analizátor

6.2. TMS320C64x és TMS320C67xx DSP használata

TI TMDSEVM6472 rövid bemutatása

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

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

Rendszerarchitektúrák labor Xilinx EDK

BME-MIT. Linux board bringup

Microblaze Micro Controller

Digitális technika Xilinx ISE GUI használata

III.5 KILOPROCESSZOROSRENDSZE REK LOGISZTIKAI ALKALMAZÁSA (SZOLGAYPÉTER)

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

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

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

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

Mobil Informatikai Rendszerek

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

C2000 Manager 1.02 Verzió Használati Utasítás

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

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

Programozási technológia

Szoftvertelepítési útmutató NPD HU

Labor 2 Mikrovezérlők

Digitális elektronika gyakorlat

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

Samsung Universal Print Driver Felhasználói útmutató

BME-MIT. Linux board bringup

ARM Cortex magú mikrovezérlők. mbed

A Picoblaze Core implementálása FPGA-ba

Hálózati betekint ő program telepítése mobil telefonra. Symbian. alarm shop. Windows mobile Android IPhone Blackberry

Témakörök. Beágyazott rendszerek MicroBlaze processzor EDK alapok Gyári és saját IP-k hozzáadása Szoftverfejlesztés HW és SW együttes fejlesztése

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

Silabs STK3700, Simplicity Studio laborgyakorlat

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

Felhasználói Útmutató. Center V2

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

Mikrorendszerek tervezése

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

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

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Raikovich Tamás BME MIT

Magyar változat. A termék bemutatása. A hardver telepítése. PU013 Sweex 1 portos párhuzamos és 2 portos soros PCI kártya

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

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

Digitális technika (VIMIAA02) Laboratórium 1

Újrakonfigurálható eszközök

Dr. Schuster György október 30.

Digitális technika (VIMIAA02) Laboratórium 1

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

Attribútumok, constraint-ek

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

Hardver és szoftver követelmények

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

WebEC kliens számítógép telepítése és szükséges feltételek beállítása, az alábbi ellenőrző lista alapján történik.

Digitális rendszerek. Digitális logika szintje

A MicroBlaze processzor

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

Bluetooth Software frissítés leírása Windows 7 rendszerhez IVE-W530BT

RIEL Elektronikai Kft v1.0

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

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

Programozási segédlet DS89C450 Fejlesztőpanelhez

Elemi alkalmazások fejlesztése I.

MPLAB ICD használata

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

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Ó

Swing GUI készítése NetBeans IDE segítségével

Az Euro2A PLU letöltő-feltöltő program telepítése és használata Windows 9x/NT/2000/XP/Vista/Windows7/Windows8 (32/64bit) V január 7.

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Tanúsítvány feltöltése Micardo kártyára

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

Mikrorendszerek tervezése

Á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. május 10.

FPGA-alapúbeágyazott rendszerektervezése Dr. Kincses Zoltán, Dr. VörösháziZsolt 6. Saját periféria hozzáadása 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 videoaudio, Nexys VGA vezérlő) 3

Xilinx EDK használata SAJÁT IP PERIFÉRIA HOZZÁADÁSA A BEÁGYAZOTT RENDSZERHEZ 4

Feladat Lépések: 1.)Sajátperifériakészítése HDL modul tervezése(vhdl v. Verilog forrásból) 2.) Saját periféria hozzáadása a beágyazott rendszerhezxilinxedk-ban 3.) Lábkiosztás (Pin-out) hozzárendelések megadása(.ucfconstraints) 4.)Bitstreamgenerálásaésletöltése 5.)SWtesztalkalmazáselkészítése Hardver/Szoftver teszt verifikáció 5

ZyBo Xilinx EDK használata BEÁGYAZOTT RENDSZER ÖSSZEÁLLÍTÁSA 6

A feladat megoldásának lépései Az előző (5.) ismeretkör elsajátítása során létrehozott projekt archiválása, és megnyitása: LAB02_C LAB03 (megnyitás) Saját Periféria generálása IP template segítségével a Xilinx EDK-ban, Saját IP Periféria létrehozása: A.)led_ip:LED B.) seg7_ip: 7-segmenses kijelző Elkészült IP periféria hozzáadása és összekapcsolása a beágyazott rendszerrel. 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 Timer M_AXI_G P0 AXI4- Lite AXI Interconnect Block AXI4- Lite AXI4- Lite LED_IP GPIO LED Push-Buttons A PS AXI4- Lite GPIO DIP Switches 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:sajátLEDvezérlőIP 8

Korábbi projekt archiválása és megnyitása Hozzunk létre egy új mappát, legyen a neve \LAB03 Másoljuk át az előző ismeretkör (5) elsajátításakor létrehozott projektet (célszerűen a \LAB02_Cmappa 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>/lab03/system.xmp Open FONTOS : Töröljük ki a korábbi LEDs_4Bits nevű Xilinx GPIO perifériát a LAB03-as rendszer tervből! 9

A.) LED IP Perifériatemplate generálása I. Az XPS/EDK-banindítsuk el: Hardware Create, or Import Peripherial Next 1 EDK-hozszükséges busz interfészek és könyvtár struktúra is fog generálódni. 2 Next >> 10

Periféria template generálása II/a. * IP neve: csak kisbetűs legyen! 1 2 3 Next >> AXI interfész Little-Endian, azaz hagyományos formátumot definiál! 11

Periféria template generálása III. S/W regiszterek: Next >> Next >> 12

Periféria template generálása IV. 13

Periféria template generálása V. 1 2 3 14

IP periféria generált komponensei -HDL source - <proj_dir>/lab03/pcores/led_ip_v1_00_a/hdl top entity : vhdl/led_ip.vhd user logic : vhdl/user_logic.vhd -XPS interface - <proj_dir>/lab03 /pcores/led_ip_v1_00_a/data mpd: led_ip_v2_1_0.mpd pao: led_ip_v2_1_0.pao -Miscfile - <proj_dir>/lab03 /pcores/led_ip_v1_00_a/devl help : README.txt /Bfmsim: Bus Functional Simulation források /projnav: ISE projekt a HDL források megírásához -Driver source - <proj_dir>/lab03 /drivers/led_ip_v1_00_a/src makefile : Makefile header : led_ip.h source : led_ip.c selftest: led_ip_selftest.c - Driver interface - <proj_dir>/lab03 /drivers/led_ip_v1_00_a/data mdd: led_ip_v2_1_0.mdd tcl: led_ip_v2_1_0.tcl FW források led_ip_v1_00_a SW források, driverek 15

Periféria template generálása VI. 2 1 \projnav \BFMsim 16

Periféria hozzáadása I. Adjuk hozzá a LED_IP perifériát a USER IP katalógusból a rendszerünkhöz: 1 Nyissuk meg a led_ip_v2_1_0.mpd fájlt a <projectdir>/led_03/pcores/led_ip_v1_00_a/datamappábból, VAGY már a hozzáadott LED_IP-n jobb gomb, majd a legördülő listából View MPD MPD= MicroprocessorPeripheralDesciptor(egy IP periféria portjainak, busz interfészeinek és paramétereinek alapbeállításait tartalmazza) Adjuk hozzá a fájlhoz az alábbi sort, majd Save -el mentsük is el: 2 3 17

Periféria létrehozása II. -HDL Nyissuk meg a user_logic.vhdfájlt (felhasználói rész) a <projectdir>/lab03/pcores/led_ip_v1_00_a/hdl/vhdl mappában, vagy már hozzáadott LED_IP-n jobb gomb és a legördülő listából Browse HDL sources Adjuk hozzá a file-hoz az alábbi sorokat: 1 2 3 18

VHDL kódrészlet: LED_PROC process() --USER logic implementation added here -- azaz a user_logic.vhd-ben itt kell a saját forráskódot megírni ~151. sorától kezdve LED_PROC : process (Bus2IP_Clk) is begin if Bus2IP_Clk'event and Bus2IP_Clk = '1' then if Bus2IP_Resetn = '0' then led_i <= (others => '0'); else if Bus2IP_WrCE(0) = '1' then led_i <= Bus2IP_Data(3 downto 0); --little endian end if; end if; end if; end process LED_PROC; LED <= led_i; 19

Periféria létrehozása III. -HDL Majd nyissuk meg a led_ip.vhd fájlt a <projectdir>/lab03/pcores/led_ip_v1_00_a/hdl/vhdl mappából, vagy már hozzáadott LED_IP-n jobb gomb és a legördülő listából Browse HDL sources Adjuk hozzá a fájlhoz az alábbi sorokat: PORT-okhoz(felhasználói rész): 1 PORT MAPhez (felhasználói rész): 2 20

Alternatív megoldás (ISE): HDL (.vhd) forráskódok szerkesztésére, és szintaxisának ellenőrzésére javasolt használni a Xilinx ISE fejlesztő környezetet (korai hiba elemzés): Nyissuk meg a XilinxISE project filet <projectdir>/lab03/pcores/led_ip_v1_00_a/devl/projnav /led_ip.xise ISE-ben: szerkesszük, és ellenőrizzük a forrás fájlokat! 21

Módosítások frissítése FONTOS! Végül a saját IP periféria minden módosításának érvényre jutásához, frissíteni kell az IP katalógust: VHDL források (led_ip.vhd, user_logic.vhd)..mpd,.pao, stb. Katalógus frissítése: Project RescanUser Repositories 22

Periféria hozzáadása és összekapcsolása a rendszerrel I. Hozzáadott saját LED_IP periféria buszrendszerhez kapcsolása Bus Interfész nézet S_AXI = axi4lite kiválasztás/ellenőrzése 1 2 23

Periféria hozzáadása és összekapcsolása a rendszerrel II. System Assembly View Ports nézet A LED port-ot alakítsuk külső porttá(make External) 1 2 3 24

Periféria hozzáadása és összekapcsolása a rendszerrel III. System Assembly View Addresses nézet ellenőrizzük a Base/High Address értékeket Unmapped memória címtartomány beállítása Kezdőcíme legyen:= 0x4126_0000 Címtartomány mérete legyen: 64K 1 2 25

GPIO jelek FPGA lábakhoz rendelése II. Módosítani kell az.ucf file-t (\data\system.ucf alapértelmezett) 1 LED lábak: LVCMOS33 2 26

LED IP clock PL I/O órajelek Zynq-> ClockGenerator(Wizard) FCLK_CLK0:= 125 MHz 2 1 3 27

DRC ellenőrzés futtatása Project menü Design Rule Check Módosított, vagy nem BSB-bőlgenerált beágyazott rendszer esetén érdemes DRC (Design Rule Checking) 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, FCLK_x stb.) Ezután indítható el a Netlista, ill. Bitstream generálás. 28

Xilinx SDK használata SAJÁT IP PERIFÉRIA SZOFTVER ALKALMAZÁS 29

SDK szoftver projekt System.xml 30

SDK szoftver projekt létrehozása I./a File New Application Project (sw alk. neve legyen led_ip_test_app) 31

SDK -BSP létrehozása I./b 32

SDK szoftver projekt létrehozása I./c SDK: Válasszuk ki a system.mss fület Vizsgáljuk meg az Overview, ill. Source nézeteket! 33

C forráskód létrehozása File New C SourceFile (neve legyen lab4_led_ip.c) 34

SDK szoftver projekt létrehozása II. Vizsgáljuk meg a GPIO-hozrendelt különböző.c forrás, és.h headerfile-okat File link az oldal tetején,vagy <Driver>\Xilinx\14.X\ISE_DS\EDK\sw\XilinxProcessorIP Lib\drivers\gpio_v3_01_a Vizsgáljuk meg a xgpio.h header file-t(\src\)! A GIPO-ról való olvasáshoz az alábbi lépéseket kell elvégezni GPIO inicializálása XGpio_Initialize(XGpio *InstancePtr, u16 DeviceId) Adatátviteli irány beállítása XGpio_SetDataDirection(XGpio *InstancePtr, unsigned Channel, u32 DirectionMask) Adat olvasása XGpio_DiscreteRead(XGpio *InstancePtr, unsigned channel) 35

SDK szoftver projekt létrehozása III. Project Explorer Dupla kavntás a lab4_led_ip.c-re Megjelenik az Outlinefül Dupla kavntás az xparameters.h-ra(bsp fordítása során generálódik!) #define XPAR_DIP_DEVICE_ID 0 sorban található #define azonosítja a dip nevű GPIO perifériát Ez a #definehasználható pl. az Xgpio_Initialize() függvény hívásakor. 36

SDK szoftver projekt létrehozása IV. A készítendő C programnak: 1.) Be kell olvasni a dip kapcsolók aktuális állását (végtelen ciklusban) 2.) Megjeleníteni ezt a LED-eken a korábban létrehozott led_ip segítségével (lásd \LAB03) 37

SDK szoftver projekt (led_ip.h) 38

SDK szoftver projekt létrehozása V. Xilinx Tools Repositories New 3 2 1 4 39

SDK szoftver projekt létrehozása VI. Project Explorer Jobb kavntás a led_ip_test_app_bsp Board Support Package Settings 1 2 3 40

SDK szoftver projekt létrehozása VII. BSP fordítása során még az alábbi hibaüzenetet kaphatjuk: File Open File <projektdir>/lab4/drivers/led_ip_v1_00_a/src/led_ip_selftest.c Open Egyrészt adjuk hozzá az alábbi kódrészletet, amely meghatározza a felhasználó által az led_ip 1.00 IP-ben elérhető regiszterek számát Megj: Emlékezzünk vissza, hogy korábban 1 Slave regisztert állítottunk be az EDK-ban a saját IP periféria létrehozásakor Másrészt töröljük ki az alábbi define-t (xio.h), majd mentsük el! 41

SDK szoftver projekt létrehozása VIII. File Open File <projektdir>/lab4/drivers/led_ip_v1_00_a/ src/led_ip_selftest.c Open Adjuk hozzá az alábbi kódrészletet, amely meghatározza a felhasználó által az led_ip1.00 IP-ben elérhető regiszterek számát Megj: Emlékezzünk vissza, hogy korábban 1 Slave regisztert állítottunk be az EDK-ban a saját IP periféria létrehozásakor Mentsük el, és zárjuk is be a fájlt (CTRL+S). 42