FPGA: ezekről a chipekről és azok programozásáról

FPGA chip

sok Az FPGA-k egyre népszerűbbek az utolsó időkben. Még a professzionális alkalmazásokhoz is gyakran használják ezeket a chipeket, de azoknak a barkácsolóknak és gyártóknak is, akik diszkrét áramkört kívánnak megvalósítani egy chip belsejében, minden előnyével együtt. Nem olcsó vagy nem könnyű megtalálni a gyárat, hogy elküldje elrendezéseit vagy mintáit, és egyedi chipet állítson elő Önnek.

Igaz, hogy egyes öntödék megengedik készítsen ostyát vagy többprojektes ostyát hogy chipeket készítsen magánszemélyektől vagy egyetemektől, hogy velük tesztelhessen. Az ilyen típusú gyárakat, mint mondom, nehéz megtalálni, általában külföldön vannak, és nem olcsók. Egy idő után a chipjeid mintáit elküldik a megbeszélt címre, de nem ők felelősek ezek teszteléséért vagy működésének ellenőrzéséért. Minden a tervétől függ ...

egy ennek alternatív megoldása az FPGA megvásárlása és programozhat bármit, amire szüksége van a chip belsejében ...

Mi az FPGA?

Programozható cellák

Az FPGA a Field Programmable Gate Array rövidítést jelenti. Olyan digitális eszközökről vagy chipekről van szó, amelyek konfigurálhatók úgy, hogy gyakorlatilag bármit megvalósítsanak. Vagyis más szóval, ez egy üres chip, ahová "írhat". Ez azt jelenti, hogy megvalósíthat CPU-t, memóriát, vezérlőt, bármilyen logikát, stb., Nagyon gyors működés elérése mellett, annak minden előnyével, hogy integrálva van egy chipbe, és nem elektronikus elemekkel.

Ross Freeman és Bernard Vonderschmitt, a Xilinx társalapítói voltak azok, akik 1984-ben feltalálták az FPGA-t. Ezt az akkori CPLD chipek evolúciójaként tették meg. A CPLD programozható chipeknek voltak olyan hiányosságai, amelyek megoldották az új FPGA terveket, és azóta a mai napig fejlődtek.

Az FPGA piaca olyan gyümölcsöző, hogy a vállalatok kedvelik Intel, Xilinx, Altera, Quick Logic, Lattice stb., sokat fektettek jobb FPGA-k fejlesztésébe, valamint beágyazott programozási környezeteket vagy IDE-ket is számukra. Így nagyon jó platformokat biztosítva a fejlesztők vagy a gyártók feladatainak megkönnyítésére.

Jelenleg ezek a gyártók nemcsak programozható chipet biztosítanak, hanem tartalmaznak is számos segédelem hogy több lehetőséget nyújtson a fejlesztőknek. Például tartalmaznak flash memória cellákat, SDRAM memória cellákat és így tovább.

Mire használják őket?

IDE az FPGA programozásához

Ezért egy FPGA hasonló lehet egy ASIC-hez, de az választhatunk mi lesz. Például létrehozhatunk egy kódot a programozásához, és CPU-kká, GPU-kká, összeadókká, memóriavezérlőkké vagy bármely más, egyetlen chipen megvalósított logikai áramkörré alakíthatjuk.

A lehetőségek elég végtelenek. Valójában azt javaslom, hogy látogassa meg a weboldalt opencores.org, egy webhely, amely számos projektet kínál hardware libre. Kódokat talál a VHDL-ben, Verligo-ban stb RAM, CPU, GPU, vezérlők, ALU-k, FPU-k, dekóderek és hosszú stb..

Hogyan programozzák?

Programozó az FPGA-hoz

Az FPGA programozásához kedvenc operációs rendszerünkről megtehetjük, például GNU / Linux, Windows és MacOS, bár a Windows számára minden bizonnyal több fejlesztői környezet van. Általában ugyanazok a vállalatok kínálják a FPGA-t, amelyek a Nagyon teljes IDE dolgozni és hol találhatja meg az összes szükséges eszközt ugyanabban a szoftvercsomagban.

Szüksége lesz a FPGA chip vagy kártya és a szükséges kábel vagy programozó amellyel csatlakoztathatja az FPGA-t a számítógépéhez, hogy az írott kódot átadja az FPGA-nak, és így be van programozva. Ez valami hasonló ahhoz, mint amit az Arduino táblával tesz, amikor az Arduino IDE programot beírja a mikrovezérlő programozható memóriájába.

Csak az FPGA esetében van mátrixunk vagy tömb elemi komponensek, például memória cellák, ÉS kapuk, VAGY, NEM, papucsok és mások. a digitális elektronika alapvető elemei vagy blokkjai hogy használhatjuk. Az írott programmal azt fogjuk megtenni, hogy miként fogják ezeket az alapvető blokkokat csoportosítani, hogy kialakuljon a kívánt kis áramkör, például egy ALU.

Vagyis ha összeadunk egy összeadót az IDE-nkben, akkor ennek a kiegészítésnek a végrehajtásához szükséges blokkok linkelni fognak a megfelelő módon az FPGA-n belül, hogy a chip összeadóként működjön. Egyszerű, igaz? Általában többféle módszert is alkalmaznak ehhez a programozáshoz fizikai szinten, például memóriákat vagy biztosítékokat, amelyek abban az esetben állandó kapcsolatot hoznak létre.

Attól függ, hogy milyen sebességgel működnek óra frekvencia amelyre az FPGA vásárolt. Például a legalapvetőbbek általában 50 Mhz-en dolgoznak, mások sokkal magasabb frekvencián fogják ezt megtenni. Az 50 MHz-es FPGA esetében ez azt jelenti, hogy másodpercenként 50.000.000 XNUMX XNUMX alkalommal fog működni. Ha folytatjuk az összeadót, amelyet példaként adtam, akkor egy másodperc alatt képes lesz megtenni ezt az összeget ...

A témával folytatva A programozásHa már tudjuk, hogy írhatunk kódot úgy, ahogyan azt az Arduino IDE-ben tennénk, vagy bármilyen más programot fejlesztenénk, és látva, hogy ez hogyan történik hardver szinten, azt mondom, hogy ez valóban nem programozás mint olyan. Inkább hardverleírás. Valójában hardverleíró nyelveket használnak, például VHDL, Verilog stb.

a azt a programot logikai szinten írják le mit csinál az a kis kör, amelyet meg akarunk valósítani. És akkor az FPGA-hoz kerül. Bár igaz, hogy egyes platformok lehetővé teszik a programozási nyelvek programozását, mint például a C, hogy képesek legyenek CPU-t megvalósítani az FPGA-ban, majd programokat állítsanak elő a memóriába töltendő és az említett processzor által feldolgozandó programok számára.

Integráció az Arduinóval

Arduino-FPGA

Az FPGA-kat általában külön használják, de igaz, hogy sok olyan eszköz és készlet van a piacon, amelyek megkönnyítik az életedet a FPGA az Arduino platformmal. Az FPGA-k bevonására az Arduino-val való projektekbe az MKR Vidor 4000 példa, bár vannak olyanok is.

MKR Viewer 4000 ez egy tábla három zsetonnal. Az egyik egy FPGA, pontosabban az Intel Cyclone 10. Vannak más chipek is a Bluetooth LE vagy az alacsony fogyasztású kapcsolatok, valamint a WiFi kompatibilitás érdekében. Jó kiegészítő ahhoz, hogy Arduino-jának kapcsolódási funkciókat biztosítson, és hogy az FPGA-ban megvalósíthassa azt, amire szüksége van.

Vele van egy testreszabható hardver, saját maga konfigurálta a kívánt célra. Ez végtelen lehetőségeket kínál.


Legyen Ön az első hozzászóló

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.