FPGA: sve o ovim čipovima i njihovom programiranju

FPGA čip

u FPGA su postali sve popularniji u poslednja vremena. Čak se i za profesionalne primjene ovi čipovi često koriste, ali i za one koji rade samostalno i oni koji žele implementirati diskretni krug unutar čipa sa svim prednostima koje to podrazumijeva. Nije jeftino ni lako pronaći tvornicu koja će poslati vaše izglede ili uzorke i proizvesti prilagođeni čip za vas.

Tačno je da neke livnice to dozvoljavaju pravite oblatne ili višeprojektne napolitanke kako bi napravili čipove od pojedinaca ili univerziteta kako bi ih testirali. Ovakve tvornice je, kako kažem, teško pronaći, obično su u inozemstvu i nisu jeftine. Nakon nekog vremena uzorci vaših čipova šalju se na dogovorenu adresu, ali oni nisu zaduženi za njihovo testiranje ili provjeru da li rade. Sve ovisi o vašem dizajnu ...

Una alternativno rješenje za to je kupnja FPGA i programirajte sve što vam treba za implementaciju unutar čipa ...

Šta je FPGA?

Programabilne ćelije

FPGA je skraćenica od Field Programmable Gate Array. To su digitalni uređaji ili čipovi koji se mogu konfigurirati tako da omoguće praktično sve što se može implementirati. To jest, drugim riječima, to je prazan čip gdje možete "pisati". To znači da možete implementirati CPU, memoriju, kontroler, bilo koju logiku itd., Postižući vrlo brz rad i sa svim prednostima integracije u čip, a ne sa elektroničkim elementima.

Ross Freeman i Bernard Vonderschmitt, suosnivači Xilinxa, bili su ti koji su izumili FPGA 1984. To su učinili kao evoluciju do CPLD čipova tog vremena. Programirani čipovi CPLD imali su neke nedostatke koji su riješili novi FPGA dizajn i od tada se razvijaju do danas.

Tržište FPGA toliko je plodno da se kompanijama sviđa Intel, Xilinx, Altera, Quick Logic, rešetka itd., puno su uložili u razvoj boljih FPGA-a, kao i ugrađeno programsko okruženje ili IDE za njih. Stoga pruža vrlo dobre platforme za olakšavanje zadataka programerima ili proizvođačima.

Trenutno ovi proizvođači ne nude samo programabilni čip, već i uključuju brojni pomoćni elementi donijeti više mogućnosti programerima. Na primjer, uključuju ćelije fleš memorije, SDRAM memorijske ćelije itd.

Za šta se koriste?

IDE za programiranje FPGA

Prema tome, FPGA može biti sličan ASIC-u, ali to možemo birati šta će biti. Na primjer, mogli bismo stvoriti kod za njegovo programiranje i pretvoriti ga u CPU, GPU, sabirač, memorijski kontroler ili bilo koji drugi logički sklop implementiran na jednom čipu.

Mogućnosti su prilično beskrajne. U stvari, preporučujem vam da posjetite web stranicu opencores.org, stranica posvećena ponudi mnoštva projekata hardware libre. Naći ćete kodove u VHDL, Verligo, itd., za RAM, CPU, GPU, kontroleri, ALU-ovi, FPU-ovi, dekoderi, itd..

Kako je programiran?

Programer za FPGA

Da bismo programirali FPGA, to možemo učiniti iz svog omiljenog operativnog sistema, poput GNU / Linux, Windows i MacOS, iako zasigurno postoji više razvojnih okruženja za Windows. Generalno, iste kompanije koje proizvode FPGA nude a Vrlo kompletan IDE za rad i gdje pronaći sve alate koji su vam potrebni u istom programskom paketu.

Također će vam trebati FPGA čip ili ploča i potreban kabel ili programer pomoću koje možete povezati FPGA sa računarom kako biste napisani kod proslijedili na FPGA i tako je programiran. To je nešto slično onome što radite sa Arduino pločom, zapisujući Arduino IDE program u programabilnu memoriju mikrokontrolera.

Samo u slučaju FPGA imamo matricu ili niz elementarnih komponenti kao što su memorijske ćelije, I kapije, ILI, NE, japanke i druge. osnovni elementi ili blokovi digitalne elektronike koje možemo koristiti. S pisanim programom ono što ćemo učiniti je nametnuti način na koji će se ovi bitni blokovi grupirati u jedan mali krug koji želimo, kao što je ALU.

Odnosno, ako programiramo sabirač u našem IDE-u, neophodni blokovi za implementaciju ovog sabirača oni će se povezati na ispravan način unutar FPGA tako da čip radi kao zbrajač. Jednostavno zar ne? Općenito se nekoliko metoda koristi za ovo programiranje na fizičkom nivou, poput memorija ili osigurača kako bi se u tom slučaju stvorila trajna veza.

Brzina kojom rade ovisit će o tome takt frekvencija za koju smo kupili FPGA. Na primjer, najosnovniji obično rade na 50 MHz, drugi će to raditi na mnogo višim frekvencijama. U slučaju FPGA od 50 MHz, to znači da će raditi brzinom od 50.000.000 XNUMX XNUMX puta u sekundi. Ako nastavimo s sabirateljem koji sam naveo kao primjer, moći ćete izvršiti tu svotu u jednoj sekundi ...

Nastavljajući sa temom ProgramiranjeJednom kada saznamo da možete pisati kod kao što bismo to radili u Arduino IDE-u ili razviti bilo koji drugi program, i vidjevši kako se to radi na hardverskom nivou, reći ću da to zaista nije programiranje kao takvo. To je hardverski opis. U stvari, koriste se jezici za opis hardvera kao što su VHDL, Verilog itd.

con taj je program opisan na logičnom nivou što čini mali sklop koji želimo implementirati. A onda ide na FPGA. Iako je istina da neke platforme omogućavaju programiranje na programskim jezicima kao što je C, da mogu implementirati CPU u FPGA, a zatim generirati programe za učitavanje u memoriju i obradu od strane navedenog procesora.

Integracija s Arduinom

Arduino-FPGA

FPGA se obično koriste odvojeno, ali istina je da na tržištu postoji mnogo alata i kompleta koji će vam olakšati život u integraciji vaših FPGA sa Arduino platformom. Primjer ploče za uključivanje FPGA-a u vaše projekte s Arduinom je MKR Vidor 4000, iako postoje i drugi.

MKR Viewer 4000 to je ploča sa tri žetona. Jedan od njih je FPGA, konkretno Intel Cyclone 10. Postoje i drugi čipovi za Bluetooth LE ili povezivanje male snage, a takođe i WiFi kompatibilnost. Dobar dodatak za pružanje Arduinu funkcionalnosti povezivanja i omogućavanje implementacije onoga što vam treba u FPGA.

Uz to imate prilagodljivi hardver, konfigurirali sami za svrhu koju želite. To nudi beskrajne mogućnosti.


Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.