FPGA fejlesztés

[HUN] [ENG]
A következő lapokon saját FPGA fejlesztéseimet mutatom be. Már a legelején azért kezdem el fogalalkozni az FPGA áramkörökkel, hogy sajád digitális áramköreimnek a bonyolultságát egyszerűsítsem. Régi tervem volt, hogy gyermekkorom kedvenc nyolc bites számítógépét, a ZX Spectrumot újraépítem. Persze, mint később kideürlt, a Spectrum csak a kezdet volt, aztán jöttek a hasonló klasszikus magyar vonatkozású gépek, úgymint:

Primo HT1080Z Videoton TVC

A szükséges tudást évek alatt szedtem fel. Erre nem is akarok sok szót vesztegetni. Tehát csak röviden. Az FPGA áramkörök olyan magas integráltságú digitális áramkörök, ahol a belső kapcsolás nincs előre kialakítva, hanem induláskor kell a megfelelő konfigurációt betölteni. A konfiguráció határozza meg az épp működő belső kapcsolást. Az FPGA áramkörök különböző kapacitással és bonyolultsággal rendelkezhetnek (néhány ezer, vagy akár pár millió kaput is tartalmazhatnak). Végső soron bármit megoldhatunk ezekben az áramkörökben, feltéve, hogy megfelelő méretű (kapacitású) chippel dolgozunk.

A hagyományos digitális áramkörökön kívül az FPGA-k tartalmaznak speciális elemeket is, amelyeket a fejleszés során fel lehet használni, ezáltal "okosabb", vagy "gyorsabb" megoldásokat adhatunk, mintha csak a klasszikus digitális elemeket használnánk. Néhány példa ezek közül:

Az FPGA-ban elhelyezett áramkört többféle módon is megtervezhetjük. Akár kapcsolási rajzot is készíthetünk, de ahogy a kapcsolás egyre bonyolultabb lesz, ezt egy bizonyos idő után lehetetlen átlátni. Ezért fejlesztették ki a digitális áramkörök működését leíró nyelveket, a HDL nyelveket (Hardware Description Language). A tevezők ma két domináns nyelvet használnak: a Verilog-ot és a VHDL-t. Mindkettőnek vannak előnyei és hátrányai, de végső soron mindkettőnél a cél ugyanaz: az áramkör működésének struktúrált szöveges leírása. Kezdők számára talán a VHDL kicsit egyszerűbb, olvashatóbb. Én is inkább a VHDL-t használom, bár mostanában már a Verilog-hoz is hozzá szoktam nyúlni.

Az FPGA-ban történő tervezés során nem árt, ha ismerjük a hagyományos digitális áramökörket. Jó, ha tudjuk, hogy mi az a kapu és multiplexer, demultiplexer, flip-flop és társaik, ismerjük különbséget a szint- és az élvezérelt tárolók között, ha mond valamit az, hogy open collector vagy nagyimpedanciás kimenet. Nem állítom hogy ezen ismeretek nélkül lehetetlen megtanulni a HDL nyelveket, de talán nagyobb feladat "nulláról" indulni.

Ahogy az elmúlt években az FPGA-val hobbi szinten foglalkoztam, mellette megtanultam legalább egy áramkörtervező szoftver használatát is, így sikerült saját FPGA board-ot készítenem. Vannak kész fejlesztőeszközök persze, de a saját áramkör megtervezése mindenképpen jó tapasztalat volt. Jelenleg két áramkörre szoktam fejlesztésre használni: A saját áramkörön lévő FPGA egy kisebb modell, nem fér el minden benne, de a nyolc bites gépek többsége igen, a MiST pedig egy német fejlesztő által tervezett áramkör, ahol specifikusan a retro gépek újraimplementálása a cél. A MiST FPGA áramköre nagy, elegendő kapacitással rendelkezik egy Atari ST vagy egy Amiga megvalósításához is! E két "mikrocomputert" ismertetem röviden, illetve a fenti gépek implementációját a MiST board-on.

A Xilinx Spartan 6 fejlesztő board A MiST fejlesztő board A tényleges implementációk leírásai:

Linkek és referenciák:

[Home]

Kapcsolat: a

címre írhatsz, előbb-utóbb válaszolok.