FPGA: sve o tim čipovima i njihovom programiranju

FPGA čip

The FPGA su postali sve popularniji u posljednja 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.

Istina je da neke ljevaonice dopuštaju napraviti oblatne ili višeprojektne napolitanke za izradu čipova od pojedinaca ili sveučilišta za testiranje s njima. Ovakve je tvornice, kao što 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-e i programirajte sve što vam treba za implementaciju unutar čipa ...

Što je FPGA?

Programabilne stanice

FPGA je kratica od Field Programmable Gate Array. To su digitalni uređaji ili čipovi koji se mogu konfigurirati tako da omogućuju praktično bilo što. 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 integriranja u čip, a ne s 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 CPLD čipova tog vremena. Programirani čipovi CPLD imali su neke nedostatke koji su riješili novi FPGA dizajn i od tada su se razvijali do danas.

Tržište FPGA toliko je plodno da se tvrtkama sviđa Intel, Xilinx, Altera, Quick Logic, Lattice itd., puno su uložili u razvoj boljih FPGA-a, a također i ugrađena programska okruženja ili IDE-ove za njih. Tako pruža vrlo dobre platforme za olakšavanje zadataka programerima ili proizvođačima.

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

Za što se koriste?

IDE za programiranje FPGA

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

Mogućnosti su prilično beskrajne. Zapravo vam preporučujem da posjetite web mjesto 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

Za programiranje FPGA-e to možemo učiniti iz svog omiljenog operativnog sustava, poput GNU / Linux, Windows i MacOS, iako zasigurno postoji više razvojnih okruženja za Windows. Općenito, iste tvrtke koje proizvode FPGA nude a Vrlo cjelovit 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 potrebni kabel ili programer pomoću koje možete spojiti FPGA s računalom kako biste napisani kôd proslijedili na FPGA i tako je programiran. To je nešto slično onome što radite s Arduino pločom, zapisujući Arduino IDE program u programabilnu memoriju mikrokontrolera.

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

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

O kojoj će brzini djelovanja ovisiti frekvencija takta 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 zbrajalicom koju sam naveo kao primjer, moći ćete izvršiti tu svotu u jednoj sekundi ...

Nastavljajući s 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 kad vidim kako se to radi na hardverskoj razini, reći ću da to zaista nije programiranje kao takvo. To je hardverski opis. Zapravo se koriste jezici za opis hardvera kao što su VHDL, Verilog itd.

s taj je program opisan na logičnoj razini što čini mali sklop koji želimo implementirati. A onda ide na FPGA. Iako je istina da neke platforme dopuštaju 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 s 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 s tri žetona. Jedan od njih je FPGA, točnije Intel Cyclone 10. Postoje i drugi čipovi za Bluetooth LE ili povezivanje male snage, a također i WiFi kompatibilnost. Dobar dodatak za pružanje vašeg Arduina funkcionalnosti povezivanja i za mogućnost implementacije onoga što vam treba u FPGA.

Uz ovo imate prilagodljivi hardver, koju ste sami konfigurirali u željenu svrhu. To nudi beskrajne mogućnosti.


Budite prvi koji će komentirati

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.