WebElektronika

Projektkészítés a XILINX ISE fejlesztőrendszerének segítségével

person access_time 2014.11.28.
A beágyazott rendszerek világában az FPGA-k szerepe ma már megkérdőjelezhetetlen. Nem ritkák ma már a 8-10 milliós logikai kapukkal rendelkező eszközök, ezért gondoltunk arra, hogy bemutatjuk a tervezés és az implementálás menetét egy egyszerű sorrendi áramkörön.


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.

 

projekt
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).

 

projekt
2. ábra   Projekt készítése
 

 

Ha ezzel is végeztünk, akkor a projektünkről kapunk egy összefoglalót (3. ábra).

 

projekt
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.

 

navigator
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).

 

navigator
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).

 

modul1
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).

 

modul
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).

 

kod
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ó.

 

kod
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).

 

fpgaditor

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).

 

letoltesut
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.