Bevezetés az újra konfigurálható eszközök programozásába Bevezetés a Quartus II V13 fejlesztő rendszerbe Végh János Debreceni Egyetem Informatikai Kar Utoljára szerkesztve: 2014. augusztus 9. Végh János Bevezetés az újra konfigurálható eszközök programozásába 1/52
Fejezet tartalomjegyzék 1 Végh János Bevezetés az újra konfigurálható eszközök programozásába 2/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 3/52
Bevezetés Ez a fejezet bevezető a Quartus R II CAD rendszer használatához. Először általában áttekintjük, hogyn működik egy tipikus CAD áramkör tervezési folyam FPGA eszközök használata esetén, majd azt vizsgáljuk meg, hogyan valósul az meg a Quartus R II rendszerben. A tervezés utolsó lépéseként a kívánt áramkört egy tényleges FPGA eszközt használva konfiguráljuk. Végh János Bevezetés az újra konfigurálható eszközök programozásába 4/52
Tipikus CAD folyam Egy tipikus CAD folyam az alábbi lépésekből áll: Előkészületek Új projekt indítása Verilog kód írása A terv lefordítása Tüskék hozzárendelése A tervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A tervezett áramkör tesztelése Végh János Bevezetés az újra konfigurálható eszközök programozásába 5/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 6/52
Tipikus CAD folyam c 2013, [?] Tipikus CAD folyam Egy tipikus CAD folyam a következő lépésekből áll Terv készítése Szintézis Funkcionális szimuláció Illesztés Időzítés vizsgálat Időzített szimuláció Programozás és konfigurálás Végh János Bevezetés az újra konfigurálható eszközök programozásába 7/52
Háttér ismeretek Ebben a fejezetben a Quartus R II szoftver alap tulajdonságait ismerjük meg. A fejezet befejezése után az olvasó képes lesz Új projekt létrehozására Tervet készíteni Verilog nyelven A Verilog nyelven leírt tervet áramkörré szintetizálni A szintetizált áramkört egy Altera FPGA-ra illeszteni Az áramkör be- és kimeneteit az FPGA tüskéihez rendelni A megtervezett áramkört szimulálni Az Altera DE-sorozatú kártyáin levő FPGA lapkát programozni és konfigurálni Végh János Bevezetés az újra konfigurálható eszközök programozásába 8/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 9/52
Előkészületek Az egyes logikai áramköröket, vagy azok részeit, amiket a Quartus R II szoftverrel tervezünk, projektnek nevezzük. A szoftver egyidejűleg egyetlen projekten dolgozik és az arra projektre vonatkozó valamennyi információt a a fájl rendszer egyetlen könyvtárában tartja. Egy új áramkör tervezésekor az első lépés egy új könyvtár létrehozása a terv fájljai számára. Ebben a fejezetben az introtutorial nevű alkönyvtárban tároljuk a tervhez tartozó fájlokat. A tervezési mintafeladat egy kétutas fény vezérlő áramkör lesz. Végh János Bevezetés az újra konfigurálható eszközök programozásába 10/52
A kezdő képernyő c 2013, [?] A kezdő képernyő Végh János Bevezetés az újra konfigurálható eszközök programozásába 11/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 12/52
Új projekt indítása c 2013, [?] Új projekthez nevek megadása Legyen a munka könyvtárunk a introtutorial. Legyen a projekt és a legfelsőbb szintű entitás neve lights. A második lépésben már készen levő fájlokat adhatunk a projekthez; most csak haladunk tovább, fájl hozzáadás nélkül. Végh János Bevezetés az újra konfigurálható eszközök programozásába 13/52
Új projekt indítása c 2013, [?] Új projekthez nevek megadása Legyen a munka könyvtárunk a introtutorial. Legyen a projekt és a legfelsőbb szintű entitás neve lights. A második lépésben már készen levő fájlokat adhatunk a projekthez; most csak haladunk tovább, fájl hozzáadás nélkül. Végh János Bevezetés az újra konfigurálható eszközök programozásába 13/52
Az FPGA eszköz paraméterezése A DE2 kártya számára válasszuk ki a Cyclone II családot, az eszköz nevét (EP2C35F672C6 a DE2 esetén). c 2013, [?] Az FPGA eszköz paraméterezése Végh János Bevezetés az újra konfigurálható eszközök programozásába 14/52
A projekt összefoglaló képernyője Ezzel megérkeztünk az összefoglaló képernyőhöz. Érdemes megnézni, hogy minden megfelelően van-e beállítva. (sok időt takaríthatunk meg!) c 2013, [?] A projekt összefoglaló képernyője Végh János Bevezetés az újra konfigurálható eszközök programozásába 15/52
A képernyő a projekt kezdetén Ha minden rendben, mehetünk tovább, a tündér befejezte a munkáját, rajtunk a sor: a projekt be van állítva, kezdhetjük a munkát. c 2013, [?] A képernyő a projekt kezdetén Végh János Bevezetés az újra konfigurálható eszközök programozásába 16/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven A Quartus II szövegszerkesztő használata Forrásfájl hozzáadás a projekthez Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 17/52
A lights projekt Az egyetlen fényforrást két kapcsolóról (x1 és x2) vezérelhetjük; a zárt kapcsoló felel meg a logikai 1-nek. c 2013, [?] The light controller circuit A lights projekt terve Verilog nyelven module l i g h t s ( x1, x2, f ) ; input x1, x2 ; output f ; assign f = ( x1 & ~x2 ) (~x1 & x2 ) ; endmodule A Verilog module neve megegyezik a projekt nevével. Ezt a kódot írja be egy ASCII fájlba. A fájl kötelező kiterjesztése a.v, mivel ez Verilog forrás kód fájl. Végh János Bevezetés az újra konfigurálható eszközök programozásába 18/52
Tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven A Quartus II szövegszerkesztő használata Forrásfájl hozzáadás a projekthez Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 19/52
A Quartus II szövegszerkesztő használata c 2013, [?] A forráskód típusának kiválasztása A File > New után válasszuk a Verilog HDL File menüpontot, és a szokásos módon mentsük el a fájlt. Elmentéskor maradjunk ennél a típusnál és jelöljük meg az Add file to current project dobozt. Azért is érdemesebb a fejlesztőkörnyezetben írni a kódot, mert használhatjuk a Verilog template gyűjteményét, lásd a Edit > Insert Template > Verilog HDL menü pontot. Végh János Bevezetés az újra konfigurálható eszközök programozásába 20/52
Tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven A Quartus II szövegszerkesztő használata Forrásfájl hozzáadás a projekthez Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 21/52
Forrásfájl hozzáadás a projekthez c 2013, [?] A forrás fájl lista megtekintése Természetesen meg kell mondanunk a Quartus szoftvernek, hogy milyen fájlokat tekintsen a projekt részének. Az Assignments > Settings menüpontban a Files bejegyzés választásával (vagy a Project > Add/Remove Files in Project menüpont használatával) nézhetjük meg, melyik fájlok vannak már a projektben. Ha eddig pontosan dolgoztunk, akkor a lights.v fájl már szerepel a listában. Végh János Bevezetés az újra konfigurálható eszközök programozásába 22/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 23/52
Az elkészített áramköri terv lefordítása A fordítóprogramot a Processing > Start Compilation választásával ( vagy a segédeszköz sáv lilás háromszög nyomógombjával ) indíthatjuk el. Indítás előtt a projektet el kell menteni. c 2013, [?] A képernyő a sikeres fordítás után A fordítás eredményét a program egy összefoglaló jelentésben közli, amelyet később is megtekinthetünk a Processing > Compilation Report utasítás (vagy a nyomógomb) használatával. Végh János Bevezetés az újra konfigurálható eszközök programozásába 24/52
Hibakezelés Ha a fordító hibajelzést ad, legalább egy hiba van a Verilog kódban. Ilyen esetben az üzenet ablakban az egyes hibákra vonatkozó üzenetek jelennek meg. Egy ilyen hibaüzenetre kettőset kattintva, a szövegszerkesztő ablakban kiemelve jelenik meg a hivatkozott Verilog forráskód sor. Érdemes hozzáedződni a hibákhoz, és azonnal gyakorolni egy szándékosan előidézett hiba kijavításának módját. Például, a szerkesztőprogrammal töröljük le az assign-t tartalmazó sor végéről a ; karaktert. Fordítsuk újra ( ), nézzük meg, hogyan veszi észre azt a fordító, aztán "javítsuk ki". Végh János Bevezetés az újra konfigurálható eszközök programozásába 25/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 26/52
Tüske hozzárendelés Az SW0 és SW1 tolókapcsolókat akarjuk használni az x1 és x2 bemenetként kis példa áramkörünkben, az f kimenetet pedig a LEDG0 zöld színű LED-re akarjuk kivezetni. Ehhez gyártói információt kell használnunk, lásd táblázat: Eszköz-FPGA láb összerendelések a DE2 kártyán Komponens SW 0 SW 1 LEDG 0 Tüske PIN_N25 PIN_N26 PIN_AE22 Végh János Bevezetés az újra konfigurálható eszközök programozásába 27/52
Tüske hozzárendelés A tüske hozzárendeléseket az Assignment Editor használatával tehetjük meg. Válasszuk a Assignments > Assignment Editor menüpontot. c 2013, [?] A tüske hozzárendelés képernyője A Category legördülő menüben válasszuk az All menüpontot, majd ugyanebben a sorban bal oldalt kattintsunk a «new» dobozra. Az így létrehozott új bejegyzés sora To oszlopában kettős kattintással hívjuk elő a Node Finder ablakot (a dobozra és nem a legördülő menü ikonjára kattintva). Végh János Bevezetés az újra konfigurálható eszközök programozásába 28/52
Tüske hozzárendelés Kattintson a ikonra, majd a Filter sorban válassza a Pins: all bejegyzést, és a List használatával listáztassa ki a használt be- és kimeneteket. A Nodes Found: ablakban megjelennek a hozzá rendelhető f, x1 és x2 összekötési pontok. Kattintással válassza ki az x1-et, és kattintson a > gombra; így a x1 átkerül a Selected Nodes dobozba. Hagyja jóvá a ctextok gombbal. c 2013, [?] A kimeneti és bemeneti jelek megjelenítése a Node Finder ablakban Végh János Bevezetés az újra konfigurálható eszközök programozásába 29/52
Tüske hozzárendelés Kövesse ugyanezt az eljárást az új x1 bejegyzés jobb oldali szomszédjával, az Assignment Name oszlopban. Görgesse lefelé és válassza a Location (Accepts wildcards/groups) bejegyzést. Végül hasonló módon kattintson a Value oszlopban levő dobozra és írja be az SW0 eszközhöz rendelt tüske nevét. c 2013, [?] A kimeneti és bemeneti jelek megjelenítése a Node Finder ablakban Kövesse ugyanezt az eljárást az x2 és f jelekre. Végh János Bevezetés az újra konfigurálható eszközök programozásába 30/52
Tüske hozzárendelés Az elkészített hozzárendeléseket a File > Save utasítással véglegesítheti. Ha ezután újra fordítja a tervet, az már a helyes összerendelésekkel fog lefordulni. c 2013, [?] A tüske hozzárendelések végeredménye a DE2 kártya esetén A DE2-sorozatú kártyán a hozzárendelések állandók. A beállításokat ezért exportálni és importálni is lehet, Quartus II Settings File (QSF) formátumban. A fenti egyszerű terv összerendeléseinek fájl formátuma set_location_assignment PIN_N25 -to x1 set_location_assignment PIN_N26 -to x2 set_location_assignment PIN_AE22 -to f Végh János Bevezetés az újra konfigurálható eszközök programozásába 31/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Funkcionális szimuláció Időhelyes szimuláció Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 32/52
A megtervezett áramkör szimulálása A fő Quartus R II ablakban válassza a File > New > Verification/Debugging Files > University Program VWF menüpontot a Simulation Waveform Editor Állítsa be a szimulációs folyamat kívánt hosszát, a Edit > Set End Time menüpontban, majd a View >Fit in Window menüponttal állítsa be az ablakot a kívánt időtartam lefedésére. c 2013, [?] A Waveform Editor ablak, konfigurálva Végh János Bevezetés az újra konfigurálható eszközök programozásába 33/52
A szimulálandó jelek kiválasztása Ezután, válassza ki a szimulálandó áramkör bemeneteit és kimeneteit. Kattintson az Edit > Insert > Insert Node or Bus menüre, majd az ennek hatására felugró ablakban a Node Finder gombra. A Filter: mezőben válassza a Pins: all lehetőséget, majd a List gombbal soroltassa fel a lehetséges ki- és bemenő jeleket. A kilistázott elemek közül kattintson az x1re, majd azt vigye át a >re kattintva a Selected Nodes dobozba. Hajtsa végre ugyanezt az x2 és f jelekkel. Egy OK nyomásával zárja be a Node Finder ablakot, egy újabb OK nyomásával kapja meg az ábrán látható képet. Végh János Bevezetés az újra konfigurálható eszközök programozásába 34/52
A szimulálandó teszt vektor elkészítése Most adja meg azokat a logikai értékeket, amelyeket az x1 és x2 fog használni a szimuláció során. Kattintson az x1 hullámformára. Az egyes értékeket az Edit > Value utasítással, vagy a Waveform Editor eszköztár sorából állíthatja be. Állítsa az x1et 0 értékre a 0 és 100 ns közötti idő intervallumban. Ezután állítsa az x1et 1 értékre a 100 és 200 ns közötti intervallumban. Ehhez nyomja le az egér gombot az intervallum kezdetén, és vonszolja az egeret az intervallum végéhez. ezután választhatja az 1 értéket az eszköztár használatával. Hasonló módon, állítsa be az x2 = 1 értéket az 50 és 100, valamint a 150 és 200 ns közötti intervallumban. Mentse el a fájlt. Végh János Bevezetés az újra konfigurálható eszközök programozásába 35/52
A megtervezett áramkör szimulálása c 2013, [?] A bemenő jelek értékeinek beállítása teszteléshez feltételezzük, hogy az FPGA logikai elemei és az összekötések tökéletesek, azaz nem okoznak terjedési késleltetést az áramkör jeleinek továbbítása során. Ezt hívják funkcionális szimulációnak. ha minden terjedési késleltetést számításba veszünk, ami már az időzített szimulációhoz vezet. Végh János Bevezetés az újra konfigurálható eszközök programozásába 36/52
Tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Funkcionális szimuláció Időhelyes szimuláció Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 37/52
Funkcionális szimuláció A funkcionális szimuláció előtt le kell futtani az Analysis and Synthesis fordítási fázist is, a fő ablak ikonjának választásával. A funkcionális szimuláció elvégzéséhez válassza a Simulation > Run Functional Simulation menüpontot vagy a ikont. A szimuláció végén egy második Waveform Editor ablak nyílik meg, amelyik a szimuláció eredményét mutatja. Figyelje meg és értelmezze az f kimenet értékét. c 2013, [?] A funkcionális tesztelés végereménye Végh János Bevezetés az újra konfigurálható eszközök programozásába 38/52
Tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Funkcionális szimuláció Időhelyes szimuláció Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 39/52
Időhelyes szimuláció A funkcionális szimulációtól eltérően, az időhelyes szimuláció a terv teljes lefodítását igényli, nem elegendő csupán az Analysis and Synthesis fázis elvégzése. Az időhelyes szimuláció elvégzéséhez válassza a Simulation >Run Timing Simulation menüpontot vagy a ikont. A szimuláció eredménye látható az ábrán. c 2013, [?] Az időhelyes tesztelés végereménye Végh János Bevezetés az újra konfigurálható eszközök programozásába 40/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása JTAG programozás Aktív soros módú programozás A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 41/52
Az FPGA eszköz programozása és konfigurálása A konfigurációs adatokat a kártyára a (Quartus-II szoftvert futtató) gazda számítógépről olyan kábellel viheti át, amelyik a számítógép USB portját a kártya balról az első USB csatlakozójához kapcsolja. Ennek a kapcsolatnak a használatához előzetesen installálni kell az USB-Blaster meghajtót. A JTAG módban a konfigurációs adat közvetlenül az FPGA eszközbe töltődik. Ha az FPGA-t ilyen módon konfigurálja, az mindaddig megtartja a konfigurációját, amíg a tápfeszültség be van kapcsolva. A konfiguráló információ viszont elvész, ha a tápfeszültség kikapcsolódik. A másik lehetőség az Active Serial (AS) mód használata. Ebben az esetben a konfigurációs adat tárolására egy flash memóriát tartalmazó konfigurációs eszközt használunk. A két mód között a DE-sorozatú kártyán levő RUN/PROG kapcsolóval válaszhatunk. A RUN helyzetben a JTAG, a PROG helyzetben az AS módot használja a kártya. Végh János Bevezetés az újra konfigurálható eszközök programozásába 42/52
Tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása JTAG programozás Aktív soros módú programozás A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 43/52
JTAG programozás c 2013, [?] A Programmer ablak Kapcsolja a RUN/PROG kapcsolót RUN helyzetbe. Válassza a Tools > Programmer menüpontot a programozó ablak ablak előhívására. Ha alapértelmezettként nem az szerepel, akkor válassza a JTAG módot a Mode dobozban. Hasonlóképpen, ha az USB-Blaster nem alapértelmezett, válassza a Hardware Setup... nyomógombot és válassza ki az USB-Blastert. Jelölje meg a Program/Configure dobozt! Végh János Bevezetés az újra konfigurálható eszközök programozásába 44/52
Tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása JTAG programozás Aktív soros módú programozás A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 45/52
Aktív soros módú programozás Ebben az esetben a konfigurációs adatokat a DE-sorozatú kártyákon levő konfigurációs eszközbe töltjük, a bekapcsoláskor ebből töltődik át az FPGA-ba. A gyártó ebbe az eszközbe egy olyan, az eszköz működőképességét bizonyító konfigurációt töltött, amelyet a gyakorlatvezető az eszköz működőképességének ellenőrzésére használ. Félreértések elkerülése végett, ne használja! Azaz, a RUN/PROG kapcsolót tartsa RUN helyzetben. Az érdeklődők a Quartus_II_Introduction.pdf dokumentumban megtalálják az ilyen módú programozás részleteit. Végh János Bevezetés az újra konfigurálható eszközök programozásába 46/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 47/52
A megtervezett áramkör tesztelése Miután letöltötte a konfigurációs adatokat az FPGA eszközre, tesztelheti a megvalósított áramkör működését. Kapcsolja a RUN/PROG kapcsolót RUN helyzetbe. Próbálja ki az áramkört a x1 és x2 bemenő változók mind a négy értékénél, a megfelelő állapotokat az SW0 és SW1 kapcsolók megfelelő állásaival előállítva. Győződjön meg róla, hogy a megvalósított áramkör az igazságtáblázatnak megfelelően működik. Ha valami változtatást akar végezni a tervezett áramkörön, először csukja be a Programmer ablakot. Ezután végezze el a kívánt változtaásokat a Verilog forrás kódon, fordítsa le, és programozza fel a kártyát a megismert módon. Végh János Bevezetés az újra konfigurálható eszközök programozásába 48/52
Szakasz tartalomjegyzék 1 Bevezetés Háttér ismeretek Előkészületek Új projekt indítása A terv elkészítése Verilog nyelven Az elkészített áramköri terv lefordítása Tüske hozzárendelés A megtervezett áramkör szimulálása Az FPGA eszköz programozása és konfigurálása A megtervezett áramkör tesztelése Gyakorlatok Végh János Bevezetés az újra konfigurálható eszközök programozásába 49/52
Belső jel tesztelése Győzze meg a gyakorlatvezetőt, hogy a két invertált jel tényleg a bemenő jellel ellentétes fázisban változik. Készítse el a terv olyan módosítását, amelyikben szerepel a két invertált jel, mondjuk x1i és x2i néven Készítse el a szimuláció módosított változatát, amely a fenti két jel állapotát is mutatja Vezesse ki egy-egy tüskére a két jelet, és készítsen egy letölthető programot, amelyik két LED felhasználásával mutatja az illető jelet a DE2 kártyán Útmutatás Használjon a logikai kifejezésben közbülső változót és nézze meg a Verilog nyelvben, hogyan veheti rá a szimulátort, hogy a szintézer ne tüntesse el az optimalizálás során a (valóban szükségtelen) közbülső értékeket Definiáljon újabb kimenő paramétereket A használt tüskét listáját bővítse ki a... értékekkel Végh János Bevezetés az újra konfigurálható eszközök programozásába 50/52
Belső jel tesztelése Győzze meg a gyakorlatvezetőt, hogy a két invertált jel tényleg a bemenő jellel ellentétes fázisban változik. Készítse el a terv olyan módosítását, amelyikben szerepel a két invertált jel, mondjuk x1i és x2i néven Készítse el a szimuláció módosított változatát, amely a fenti két jel állapotát is mutatja Vezesse ki egy-egy tüskére a két jelet, és készítsen egy letölthető programot, amelyik két LED felhasználásával mutatja az illető jelet a DE2 kártyán Útmutatás Használjon a logikai kifejezésben közbülső változót és nézze meg a Verilog nyelvben, hogyan veheti rá a szimulátort, hogy a szintézer ne tüntesse el az optimalizálás során a (valóban szükségtelen) közbülső értékeket Definiáljon újabb kimenő paramétereket A használt tüskét listáját bővítse ki a... értékekkel Végh János Bevezetés az újra konfigurálható eszközök programozásába 50/52
Egyszerű PIN-kód ellenőrző készítése Készítsen egy egyszerű PIN-kód ellenőrző áramkört, amelyik piros LED-et kapcsol be, ha a PIN kód helytelen és zöldet, ha helyes. Legyen a PIN kód egy 4-bites érték, amelyet a Verilog kódban konstansként megad Definiáljon négy tolókapcsolót, amelyekkel megadhatja a próba PIN kódot Definiáljon két LED-et, amelyik a helyes és a helytelen PIN kód esetén bekapcsol Bizonyítsa az áramkör működőképességét szimulátorral is Útmutatás Érdemes az egyes összehasonlításokra a kizáró VAGY vizsgálatot használni Mind a négy bitnek meg kell egyezni Végh János Bevezetés az újra konfigurálható eszközök programozásába 51/52
Egyszerű PIN-kód ellenőrző készítése Készítsen egy egyszerű PIN-kód ellenőrző áramkört, amelyik piros LED-et kapcsol be, ha a PIN kód helytelen és zöldet, ha helyes. Legyen a PIN kód egy 4-bites érték, amelyet a Verilog kódban konstansként megad Definiáljon négy tolókapcsolót, amelyekkel megadhatja a próba PIN kódot Definiáljon két LED-et, amelyik a helyes és a helytelen PIN kód esetén bekapcsol Bizonyítsa az áramkör működőképességét szimulátorral is Útmutatás Érdemes az egyes összehasonlításokra a kizáró VAGY vizsgálatot használni Mind a négy bitnek meg kell egyezni Végh János Bevezetés az újra konfigurálható eszközök programozásába 51/52
Módosított PIN-kód ellenőrző készítése A PIN-kód túl könnyen megfejthető, a kapcsolók tologatásával. Módosítsa a tervet lépésenként, az alábbiak szerint Módosítsa úgy a tervet, hogy az összehasonlítás csak egy nyomógomb megnyomásakor történjen meg. Módosítsa úgy a tervet, hogy legfeljebb háromszor lehessen próbálkozni, ezután riasszon a rendszer (egy LED-del) Egy másik nyomógombbal ilyen esetben lehessen a rendszert egy adminisztrátornak alapállapotba visszaállítani Útmutatás Ismételje át az always használatát Végh János Bevezetés az újra konfigurálható eszközök programozásába 52/52
Módosított PIN-kód ellenőrző készítése A PIN-kód túl könnyen megfejthető, a kapcsolók tologatásával. Módosítsa a tervet lépésenként, az alábbiak szerint Módosítsa úgy a tervet, hogy az összehasonlítás csak egy nyomógomb megnyomásakor történjen meg. Módosítsa úgy a tervet, hogy legfeljebb háromszor lehessen próbálkozni, ezután riasszon a rendszer (egy LED-del) Egy másik nyomógombbal ilyen esetben lehessen a rendszert egy adminisztrátornak alapállapotba visszaállítani Útmutatás Ismételje át az always használatát Végh János Bevezetés az újra konfigurálható eszközök programozásába 52/52
Hivatkozások és hasznos címek I Bevezetés az újra konfigurálható eszközök programozásába Végh János Bevezetés az újra konfigurálható eszközök programozásába 53/52