FPGA-kat (Field-Programmable Gate Array, Programozható Logikai Mező) több gyártó készít és forgalmaz. Ilyen az Altera, a Xilinx, a Lattice, stb.
Mi most a XILINX által gyártott Spartan 6-os FPGA-t tartalmazó Nexys 3-as panelt fogjuk felhasználni, amelyet a Digilent gyárt.
A XILINX oldaláról letölthetjük az ingyenes fejlesztőeszközüket, az ISE Design Suite-ot (a cikk írásakor a 14.7-es a legfrissebb). Ha szeretnénk a leendő alkalmazásunkat a Nexys 3-as panelon futtatni, akkor nincs szükségünk JTAG letöltőre, mert a tesztpanelunkon található integrált programozó a JTAG mellett. Ehhez viszont szükségünk van egy letöltő programra, amely szintén megtalálható a Digilent oldalán.
A telepítés és a license file megadása után (Windows 8 operációs rendszert használók problémába ütköznek, annak a megoldására máskor térünk ki) indítsuk el a Project Navigátort.
A File/New Project kiválasztása után elindul a projekt varázsló (1. ábra). Adjuk meg itt a projektünk nevét és az elérési útvonalát.
1. ábra Projekt készítése
A projektünk legfelső hiearchikus szintjét megadhatjuk schematikusan vagy akár hardverleíró nyelvvel. Válasszuk az utóbbit, bár ennek nagy jelentősége nincs, és a későbbiekben bármikor módosítható.
Ezután továbblépve, a következő felület (2. ábra) fogad minket. Itt tudjuk megadni a használni kívánt eszközünk típusát (CPLD? FPGA?), annak családját, a kiválaszott családnak egy tagját, illetve a tokozást is. Az esetleges szimulációs környezetet is itt tudjuk megadni (ISim, Modelsim).
2. ábra Projekt készítése
Ha ezzel is végeztünk, akkor a projektünkről kapunk egy összefoglalót (3. ábra).
3. ábra A projektünk összesítése
Az összefoglalás után az elkészült (üres) projektünket mutatja a "Design" ablak, a 4. ábrán.
4. ábra "Design ablak"
Valsósítsunk meg egy paraméterezhető, alapesetben egy 8 bites számlálót! Adjunk a projektünkhöz egy új "forrást" (5. ábra), egy VHDL kódot (6. ábra).
5. ábra File hozzáadása a projekthez
Egy új "forrás" hozzáadása során ki kell választanunk, hogy mit szeretnénk a projektünkhöz hozzáadni. Több lehetőségünk is van, mi válasszuk a "VHDL Module"-t, mert a megvalósítandó számlálót VHDL nyelven szeretnénk megadni (6. ábra).
6. ábra Új file hozzáadása a projekthez
Ezután a varázsló segítségével a VHDL file-unkhoz az entitásunkat tudjuk megadni, kiegészíteni. (Tekintettel arra, hogy ezt "kézzel" is meg tudjuk adni, ezért erről kép nem készült.)
Miután az új file-unk leírását, összefoglalóját is megkaptuk (7. ábra), elkészült a VHDL file-unk váza (8- ábra).
7. ábra Összefoglalás
Egésítsük ki a kapott VHDL vázat a következőképpen (8. ábra). Tekintettel arra, hogy a számlálót viselkedési leírással adjuk majd meg, kell ehhez egy aritmetikai operátor, amely az "ieee.std_logic_unsigned.all" csomagban van. Ezt nem tartalmazza a kapott váz, ezt írjuk be mi (3. sor a 8. ábrán).
8. ábra Az aszinkron törlésű, paraméteres számláló VHDL kódja
Tekintettel arra, hogy nekünk adott bemeneteket, kimeneteket kell felhasználnunk, ezért a projektükbe fel kell vennünk még egy file, az "ucf" file-t, amelyben a lábkiosztást tudjuk megadni. Ezt megtehetjük grafikusan is, de akár mi is beírhatjuk kézzel a szöveges file-ba. Ez utóbbi mellett döntöttünk, a "szamlalo.ucf" file tartalma a 9. ábrán látható.
9. ábra A "szamlalo.ucf" file tartalma
Nekünk most készíteni kell egy *.bit kiterjesztésű file-t, mert ezt fogjuk majd letölteni az FPGA-nkba. Jelöljük ki az egérrel a "szamlalo.vhd" file-t a "Design" ablakban, majd kattintsunk a "Generate Programming File" sorra (Design ablak alsó részén található).
Ha minden rendben van, akkor elkészül a "szamol.bit" file, amely letölthető az FPGA-ba. Mielőtt letöltenénk ezt, "nézzünk bele" az FPGA-nk belsejébe. Ehhez indítsuk el az FPGA Editort. Láthatjuk szinte tranzisztorszinten a megvalósított számlálónkat (10. ábra).
10. ábra FPGA Editor használata
Indítsuk most el a már telepített (ez független a Xilinx fejlesztőrendszertől!) Digilent Adept letöltőprogramot. Válasszuk ki a "szamol.bit" file-t, majd töltsük le az FPGA-nkra (11. ábra).
ut
11. ábra A "szamol.bit" file letöltése
Ha ezzel elkészültünk, akkor a Nexys panelon lévő BTNR nyomógombot nyomjuk meg többször. Tapasztalni fogjuk a LED-eken, hogy a számlálónk binárisan számol, a kimenet értéke eggyel növekszik. Ha a BTND nyomógombot nyomjuk meg, akkor az órajel állapotától függetlenül töröljük a kimenetet.
Október közepén elindítjuk az Atmel 8 bites mikrovezérlőkről szóló sorozatunkat. Ehhez használnunk kell természetesen egy fejlesztőkörnyezetet is. Több ilyen is létezik, például a WinAVR, vagy az Atmel Studio. Mi az Atmel Studio-t fogjuk használni, e. . . .
A PIC18F mikrovezérlők ma is népszerű a fejlesztők körében. Noha 8 bites architektúráról beszélünk, számos érdekes és hasznos alkalmazás megvalósítható vele. Elég csak az USB-re, vagy akár az Ethernetre gondolnunk. Ezért a Szerkesztőség egy sorozat k. . . .
Megnézzük most néhány példa segítségével a Watchog Timer (WDT) használatát. Írni fogunk közvetlenül regisztert, de használni fogunk makrókat is.. . . .