Xilinx ChipScope ismertető

Hasonló dokumentumok
A ChipScope logikai analizátor

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

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

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

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

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

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 7. Előadó: Dr. Oniga István

Mikrorendszerek tervezése

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

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

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

A Picoblaze Core implementálása FPGA-ba

Nyolcbites számláló mintaprojekt

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

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

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

Digitális technika (VIMIAA02) Laboratórium 4

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

Dr. Oniga István DIGITÁLIS TECHNIKA 8

A LOGSYS rendszer ismertetése

Hardver leíró nyelvek (HDL)

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

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

Mikrorendszerek tervezése

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

Bevezetés a mikrovezérlők programozásába: Az Arduino, mint logikai analizátor

Digitális technika (VIMIAA02) Laboratórium 4

Attribútumok, constraint-ek

APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Laborsegédlet 3. Labor

Újrakonfigurálható eszközök

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Kiegészítő segédlet szinkron sorrendi hálózatok tervezéséhez

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

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

Dinnyeválogató v2.0. Típus: Dinnyeválogató v2.0 Program: Dinnye2 Gyártási év: 2011 Sorozatszám:

Invitel levelezés címek esetén

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

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Ó

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

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

Digitális technika (VIMIAA02) Laboratórium 3

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

Szekvenciális hálózatok és automaták

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Digitális technika (VIMIAA02) Laboratórium 3

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

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

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

Digitális elektronika gyakorlat

Felhasználói Útmutató. Center V2

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

Moduláris USB billentyűzet emulátor

Vodafone-os beállítások Android operációs rendszer esetében

FPGA & Verilog ismertetı. BME Méréstechnika és Információs Rendszerek Tanszék

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

Digitális technika (VIMIAA01) Laboratórium 4

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

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

Tisztelt Telepítő! A központ és az alkalmazás összehangolását a következőképpen hajthatja végre:

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Elektronikus dobókocka tervezési példa

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

Constraint-ek. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

Thermo1 Graph. Felhasználói segédlet

Digitális elektronika gyakorlat. A VHDL leírástípusok

PC kártya és a szoftver telepítése, indítása után ( ID, jelszó : admin, admin)

Digitális technika Laboratórium 6.

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 1. rész

Digitális rendszerek tervezése FPGA áramkörökkel Szimuláció és verifikáció

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

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

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

RIEL Elektronikai Kft v1.0

ROUTER beállítás otthon

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

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ november 8. Verzió

LUTRON GRAFIK 6000 fényszabályzó rendszer

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

FASTNET FTR 250 PVR. Kiegészítés a PVR (felvétel - lejátszás) funkció használatához.

Egyszerű RISC CPU tervezése

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

Digitális technika (VIMIAA02) Laboratórium 5.5

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

Szimuláció és verifikáció. Digitális rendszerek tervezése FPGA áramkörökkel Szimuláció és verifikáció. Kétfajta szimulációs módszer

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

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

Verilog HDL ismertető 2. hét : 1. hét dia

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

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

Újrakonfigurálható eszközök

EB134 Komplex digitális áramkörök vizsgálata

Átírás:

Xilinx ChipScope ismertető Szántó Péter BME Méréstechnika és Információs Rendszerek Tanszék 2011-09-01 Tartalom 1. ChipScope Core Insterter... 2 1.1. ChipScope ICON... 4 1.2. ChipScope ILA... 5 2. ChipScope analizátor... 11 2.1. Trigger Setup Match... 13 2.2. Trigger Setup - Trigger Condition Equation... 13 2.3. Trigger Setup Capture... 14 3. Trigger feltételek példák... 15 A Xilinx ChipScope egy olyan szoftver komponens, amely az FPGA erőforrásainak felhasználásával egy logikai analizátort implementál, mellyel lehetőségünk van az FPGA belső jeleinek vizsgálatára, a nélkül, hogy a mért jeleket ki kellene vezetni az FPGA 1-1 lábára, hogy egy külső analizátorral vizsgáljuk őket. Természetesen a ChipScope nincs ingyen mivel a logikai analizátor funkciókat az általános FPGA erőforrások valósítják meg, így a vizsgálandó terv mellett az analizátornak is bele kell férnie az FPGA-ba. Ebből a szempontból általában az FPGA belső memóriája (BRAM) a kritikus a ChipScope ezt felhasználva hozza létre a mintatárat; azaz ide menti el a vizsgált jelek hullámformáit. A ChipScope használata két lépésből áll: A ChipScope Core Inserter segítségével a terv implementációja során meg kell adni az implementálni kívánt logikai nalizátor paramétereit. Ezek közül a leglényegesebbek: mi legyen a mintavételező órajel; milyen jelek használatával szeretnénk trigger feltételt megfogalmazni; milyen jelek hullámformáit szeretnénk vizsgálni. A ChipScope Analyzer a logikai analizátor funkciókat megvalósító GUI. 1

1. ChipScope Core Insterter A már ismert új forrás file hozzáadása menüben az eddig megszokott Verilog Module helyett válasszuk a ChipScope Definition and Connection File-t. Ennek hatására egy ChipScope ikonnal ellátott almodul kerül a terv hierarchiába, mint a legfelső szintű modulunk egy almodulja. Duplán kattintva a ChipScope almodulra elindul a Core Insterter (amely egyébként futása alatt egy CPU magot 100%-ban leterhel). Az leső ablakon nincs módosítani való, nyomjunk Next gombot. 2

3 BME MIT, FPGA Labor, 2011

1.1. ChipScope ICON A következő ablak az ICON (Intergrated Controller) paramétereket állíthatjuk. Ez a modul kommunikál a PC-vel a JTAG kábelen kersztül, s ez vezérli a tényleges analizátor funkciókat megvalósíto ILA (Integrated Logic Analyzer) modulokat. Spartan-3 FPGA esetén semmiféle konfigurációs lehetőség nincs. ICON modulból egy terv csak egyet tartalmazhat. 4

1.2. ChipScope ILA Az ILA konfigurációjánál (amelyből akár 16 is csatalkozhat egy ICON-hoz) már sokkal beállítani valónk van. Az ablak bal felső sarkában azt látjuk, hogy éppen melyik ILA modul paramétereit állítjuk, ez alatt pedig a ChipScope erőforrás igényét követhetjük nyomon. Ez utóbbi természetesen annál magasabb, minél több/bonyolultabb funkciót használunk. 1.1.1. Trigger paraméterek A ChipScope képes minden egyes trigger portjára kötött jel felhasználásával több feltételt is vizsgálni. A trigger port a rá kötött jeleket határozza meg, míg az ún. MatchUnit-ok ezen jelek felhasználásával egy-egy feltételt értékelnek ki. Egy ILA-nak legfeljebb 16 trigger portja lehet, melyekhez 16 Match Unit kapcsolódhat. Az ezekhez kapcsolósó Trigger Parameters fülön az alábbi beállításokat végezhetjük el. Numer of Input Trigger Ports: a trigger portok száma. A különböző trigger portokra más-más jeleket köthetünk. Trigger port paraméterek: o Trigger Width: A port szélessége (bitben). o # Match Unit: Trigger komparátorok száma. Az adott trigger port esetén annyi különböző trigger feltételt adhatunk meg, ahány Match Unit van. Az egyik Match Unit pl. triggerelhet egy jel felfutó élére, míg a másik a lefutó élre. o Counter Width: Az egyes Match Unit-okhoz kapcsolódó számláló bit-szélességének beállítása, mellyel az adott Match Unit-ban teljesült trigger események számolhatók. Akkor történik a tényleges triggerelés, amikor a számláló egy adott értéket elér. Ezzel 5

tehát egyzerűen megoldható például, hogy egy adott jelen a 42. felfutó él legyen a trigger esemény. Enable Trigger Sequencer: Időben egymást követő trigger esemény sorozatok engedélyezése. Lehetőség van pl. M0 M1 M0 szekvencia beállítására, minek hatására a tényleges triggerelés akkor történik, amikor a Match Unit 0 után a Match Unit 1, majd ismét a Match Unit 0 beállított feltétele teljesül. Enable Storage qualification: Alapesetben a ChipScope minden egyes órajelre mintát vesz az adatvonalakból. Ezen opció lehetővé teszi, hogy csak akkor történjen mintavétel, ha egy Match Unit-ban beállított feltétel teljesül. A Match Type legördülő menüben az adott Match Unit által biztosított feltétel-típusok állíthatók be. Ezek a következők: Basic: 0, 1, X (don t care) bit értékek Basic w/edges: 0, 1, X bit értékek, R (rising edge felfutó él), F (falling edge lefutó él), B (both edges bármelyik él), N (no transition nincs él) Extended: a bit értékek mellett lehetőség van a teljes trigger port értékére komparálni (egyenlő, kisebb, nagyobb, stb) Extended W/edges: Extended + élváltások Range: Extended plusz adott tartámányra történő komparálás Range W/edges: Range + éldetektálás 6

1.1.2. Mintavétel paraméterei A Capture Parameters fülön a mintatár (a hullámformákat tároló memória) paramétereit állíthatjuk be. Ezek: Data Depth: A mintatár mélysége (a szó-szélesség mindig annyi, ahány jelet vizsgálunk). Sample On Rising/Falling Clock Edge: a mintavételező órajel mely élére történjen a mintavételezés. Data Same As Trigger: A lusta ember kedvenc opciója. Amennyiben be van kapcsolva, akkor az adatbemenetre ugyanazon jelek kerülnek, mint amit a trigger portok esetén beállítunk. Ha ez az opció ki van kapcsolva, akkor a trigger portokra és az adatvonalakra szabadon köthetünk tetszőleges (egymástól különböző) jeleket. Az adat port teljes szélessége, valamint a mintatár mélysége szabja meg, hogy hány darab Block RAM memória (BRAM) szükséges az implementációhoz. Értelemszerűen maximum annyi használható a ChipScope által, amennyi az adott terv és FPGA esetén rendelkezésre áll. Amennyiben van elegendő FPGA erőforrás (tehát vagy kevés jelet vizsgálunk, vagy nagy kapacítású és ebből kifolyólag nagyon drága FPGA-t használunk), akkor célszerű ugyanazon jeleket kötni a trigger és adatbemenetre. Ha viszont bármi miatt szűkösek az erőforrásaink, akkor előbb célszerű átgondolni, hogy mit szeretnénk vizsgálni, s ennek megfelelően kialakítani a trigger és adat bemeneteket. 7

1.1.3. Bemeneti jelek konfigurálása A Modify Connections gombra klikkelve állíthatjuk be, hogy az egyes ChipScope portokra mely jeleket szeretnénk kötni. FONTOS: a következő ablakban szintézis utáni jelneveket találunk. Ökölszabályként az mondható el, hogy a regiszterek mindig megtalálhatók (vagy a Verilog kódban szereplő nevükön, estleg ha kimenetet hajtanak meg, akkor a kimeneti port nevével) a szintézis utáni listában (ha nem, akkor kiegyszerűsítette a szintézer, ami nem bíztató). Kombinációs logikák ezzel ellentétben nem mindig fedezhetők fel, ez ellen a KEEP attribútummal lehet védekezni. Tehát például a reg q; always @ (posedge clk) q <= a & b; kód szintézise után a q változó megtalálható a huzalozási listában. Ezzel ellentétben a wire u,v; assign u = a & b; assign v = u & c; kód implementációja után u garantáltan nem jelenik meg, hiszen egy három bemenetű logikai függvényt egyetlen 4 bemenetű LUT felhasználásával meg lehet valósítani (a helyzeten természetesen mit sem változtat, hogy a kombinációs logika assign értékadással vagy always blokkal van leírva). 8

A bal oldali listában a szintetizált terv jeleit látjuk. Net Name: A jel neve. Source Instance: A jelet meghajtó áramköri elem neve. Source Component: A jelet meghajtó modul neve (itt előfordulhat pl. egy almosul példány neve). Base Type: a jelet meghajtó elem típusa. Néhány példa: o BUFGP: órajel meghajtó buffer. A ChipScope órajel bemenetére MINDIG BUFG kimenetet kell kötni. o IBUF: bemeneti buffer, ami egy bemenetként használt FPGA lábhoz csatlakozik. o OBUF: kimeneti buffer, ami egy kimenetként használt FPGA lábhoz csatlakozik. o IOBUF: kétirányú buffer, nem használható a ChipScope-ban. o GND: fix logikai 0 (föld). o VCC: fix logikai 1 (táp). o FDx: D flip-flop különböző verziói. Az FDRSE például egy olyan D FF, aminek használjuk a Reset, Set és Enable bemeneteit is. o LUTx: különböző konfigurációjú LUT-ok. A LUT4 pl. egy olyan LUT, aminek mind a négy bemenete használt. A Pattern szövegmezőt használva lehetőség van a jelnévre történő szűrésre, a * karakter a tetszőleges hosszúságú nem definiált szövegrészt jelenti (wildcard). 9

Miután az összes porthoz rendeltünk megfelelő jelet (nincs piros szöveg a képernyőn), a Return to Project Navigator opcióval elmenthetjük a ChipScope project-t és visszatérhetünk az ISE GUI-ba. 10

2. ChipScope analizátor A ChipScope-t tartalmazó tervet a szokásos módon kell lefordítani, s konfigurációs file-t készíteni. Megjegyzendő, hogy a Core Inserter paraméterek megváltoztatása a ChipScope almodulok újragenerálását vonja maga után, ami viszonylag hosszú időt vesz igénybe (géptől függően akár 5-10 perc is lehet). Az FPGA felkonfigurálása után indítható a ChipScope Analyzer GUI. A felső menüben válasszuk a JTAG Chain/Xilinx Platform USB Cable opciót. Ezután a ChipScope detektálja a JTAG kábelt, s az arra kötött eszközöket, illetve az eszközben található ChipScope modult (a felugró ablakokon nyomjunk OK-t). 11

A nem túl beszédes DataPort* + elnevezéseket akár kézzel is átírhatjuk, de lehetőség van a Core Inserter project file importálására is a File/Import opcióval. A jelnevek importálása mellett a vektor jelek buszba foglalását is automatikusan elvégzi a ChipScope amennyiben az Auto-create buses opció be van kapcsolva. Mivel példánkban a két trigger port egy 12 bites (órajel osztó) és egy 4 bites vektort tartalmaz (anód shift regiszter), így az eredmény mindössze két jel. A Trigger Setup ablakban a két trigger port összesen 4 Match Unit-ját látjuk, a trigger feltételünk jelenleg minden bitre don t care, azaz feltétel nélkül triggerel az analizátor. Nézzük végig az egyes beállítási lehetőségeket. 12

2.1. Trigger Setup Match A Match Unit-ok komparálási feltételeit állíthatjuk be. A don t care érték használata megengedett amennyiben a Match Unit komparálás feltétele egyenlő (==) vagy nem-egyenlő (<>), a többi esetben azonban a trigger port teljes bitkészletére lehet feltételt megfogalmazni. Ezért szükséges az, hogy azokat a buszokat, amelyekre kisebb/nagyobb vagy tartomány feltételt szeretnénk beállítani külön trigger portra kerüljenek. 2.2. Trigger Setup - Trigger Condition Equation A bekarikázott részre klikkelve a trigger feltételt állíthatjuk össze. Egyrészt lehetőség van a Match Unit-ok kombinálására, az alább látható beállításban például akkor triggerel az analizátor, ha az M0 és az M1 Match Unit-ban beállított feltétel egyidejűleg teljesül. A Sequencer fülre klikkelve a TriggerSequencer beállításába jutunk. Itt egy maximum 16 hosszú listát állíthatunk össze a Match Unit-ok felhasználásával (a lista tényleges maximális hossza a megfelelő Core Inserter beállítástól függ). Az alábbi ábra esetén akkor történik triggerelés, ha sorrendben teljesül az M0, M1 majd M2 Match Unit-ban beállított feltétel. 13

Alapesetben a beállított szekvencia lépései között bármilyen esemény történhet, tehát a fenti példa az M0 M1 M1 M2 esemény-sorozatra is triggerelni fog. A Use Contiguous Match Events opció bekapcsolásával csak akkor történik trigger, ha pontosan a beállított szekvencia játszódik le. 2.3. Trigger Setup Capture A mintavételezésnek két üzemmódja van (Type): a Window, illetve az N Samples. Előbbi esetén megadhatjuk, hogy a teljes mintatárban hány darab trigger feltételt szeretnénk látni, utóbbi esetben pedig azt, hogy egy trigger hatására hány mintát tároljon az analizátor (értelemszerűen mindkét beállítással elérhető ugyanaz). Window üzemmód esetén a Position a mintavételi ablakon belüli trigger poziciót jelöli, tehát ha például 512 mintát veszünk egy trigger hatására, s a pozíciót 100-ra állítjuk, akkor lehetőségünk van a trigger előtti 100 érték vizsgálatára is. A Storage Qualification opcióval (alapértelmezett beállítás: All Data minden órajelben eltárolja a mintákat) lehetőségünk van a mintavételhez egy engedélyező jelet megfogalmazni. Az alábbi ábrán például csak akkor fog mintát venni a ChipScope, ha az M3 Match Unit-ban beállított feltétel teljesül. 14

3. Trigger feltételek példák Az első példában a 12 bites számláló legfelső bitjének felfutó élére triggerelünk. Az M0 Match Unit komparálási funkciója egyenlőség, míg a komparálási értékben a legfelső bit értéke R (rising edge felfutó él), a további bitek értéke don t care. Az analizátor indítása a bekarikázott lejátszás gombbal történik. Az ezt követő két gombbal lehetőség van a triggerre várakozást leállítani, illetve azonnali (feltétel nélküli) mintavételezést indítani. A következő ikon-csoporttal az X és O kurzorok pozíciójára, illetve trigger pozícióra lehet ugrani, valamint csökkenthetjük illetve növelhetjük a hullámforma ablakban megjelenített minták számát. A Trigger Run Mode menüpont alatt választhatunk egyszeri triggerelést (Single), vagy többszöri triggerelést (Repetitive). Utóbbi esetben a mintavételezés utánaz analizátor automatikusan újra triggerre várakozás állapotba kerül (a Startup móddal most nem foglalkozunk). 15