S rastućom popularnošću mikrokontrolera inženjeri koriste mikrokontrolere više od FPGA-a. U Mikrokontroleri su postali dominantna nad FPGA zbog jeftine cijene, dobra podrška, laka dostupnost, velika zajednica, svestranosti, programiranje i sl ali osim toga mikroprocesora imaju neka ograničenja, kao što su skupa instrukcija, sekvencijalno izvršavanje programa (sekvencijalni obrada), nedostatak fleksibilnosti i ponovne upotrebe itd. Međutim, FPGA može prevladati ta ograničenja jer FPGA imaju paralelno izvršavanje programa, a fleksibilan je i za višekratnu upotrebu, što znači da se može iznova i iznova programirati za različite zadatke.
Što je FPGA i po čemu se razlikuje od mikrokontrolera
Polje-Programmable Gate Array je integrirani krug silikonski čip koji ima niz logičkih vrata i to polje može se programirati u polju, odnosno korisnik može prebrisati postojeće konfiguracije sa svojim novim definiranim konfiguracije i može stvoriti svoj vlastiti digitalni sklop na terenu. FPGA se mogu smatrati praznim listom. FPGA ne rade ništa sami, dok je na dizajnerima da kreiraju konfiguracijsku datoteku koja se često naziva bit datoteka za FPGA. FPGA će se ponašati poput digitalnog sklopa kad se učita s bitnom datotekom.

Dok kod mikrokontrolera to nije slučaj jer se mikrokontroleri ne mogu programirati ili restrukturirati na terenu. Korisnik ne smije prebrisati postojeće konfiguracije niti može stvoriti bilo koji digitalni sklop na terenu. Mikrokontrolere je jednostavno programirati, a zajednica je također široka. Mikrokontroleri su izrađena po mjeri mini računala koja dolaze u IC obliku, dok FPGA sadrže samo logičke blokove koji se opet mogu električki premotati. Također u pogledu mikrokontrolera, troši manje energije od FPGA-a. Poznato je da su FPGA skupi i zahtijevaju više troškova od mikrokontrolera kada je u pitanju izrada bilo kojeg uređaja. FPGA-ima treba znatno više vremena za postavljanje, dok su mikrokontroleri dostupni za specifične primjene.
FPGA arhitektura
FPGA ima redovitu strukturu logičkih ćelija ili modula i međusobnih poveznica koja je pod potpunom kontrolom programera i dizajnera. FPGA je izgrađen s uglavnom tri glavna bloka kao što su konfigurabilni logički blok (CLB), I / O blokovi ili jastučići i matrice prekidača / žice za međusobno povezivanje. U nastavku će se ukratko raspravljati o svakom bloku.
- CLB (konfigurabilni logički blok): Ovo su osnovne stanice FPGA-e. Sastoji se od jednog 8-bitnog generatora funkcija, dva 16-bitna generatora funkcija, dva registra (flip-flops ili zasuni) i programabilnih kontrola usmjeravanja (multiplekseri). CLB-ovi se primjenjuju za provedbu drugih dizajniranih funkcija i makronaredbi. Svaki CLB ima ulaze sa svake strane što ih čini fleksibilnima za mapiranje i particioniranje logike.
- Ulazno-izlazni jastučići ili blokovi: Ulazno-izlazni jastučići koriste se za vanjske periferne uređaje za pristup funkcijama FPGA-e, a pomoću I / O podloga mogu komunicirati i s FPGA-om za različite aplikacije koristeći različite periferne uređaje.
- Matrica prekidača / žice za međusobno povezivanje: Matrica prekidača koristi se u FPGA-u za povezivanje dugih i kratkih žica za međusobno povezivanje u fleksibilnoj kombinaciji. Sadrži i tranzistore za uključivanje / isključivanje veza između različitih vodova.

Kada su potrebni FPGA
Kao što je gore spomenuto, mikrokontroleri imaju određena ograničenja i ne mogu se koristiti za paralelno izvršavanje zadataka jer mikrokontroler i mikroprocesori rade na sekvencijalnom izvršavanju programa što u nekim aplikacijama čini malo sporim, u ovom scenariju FPGA imaju prednost i mogu se učinkovito koristiti. Također mikrokontroler može izvoditi ograničene zadatke jer dolazi s uputama i njihovim sklopovima. Programer se mora pridržavati ograničenja tijekom razvijanja koda. Dakle, i u ovom scenariju FPGA imaju prednost.
Međutim, u slučaju mikrokontrolera, procesor se prebacuje s jednog koda na drugi da bi postigao određenu razinu paralelizma. Lakše ćete pisati kodove na mikrokontrolere nego FPGA-e. Sposobnost paralelne obrade FPGA-a omogućuje vam učinkovitu kontrolu prekida korištenjem strojeva s konačnim stanjima (FSM).

U slučaju mikrokontrolera, morate uzeti u obzir vrijeme koje je ISR trebalo da riješi prekid. FPGA možete jednostavno ponovno povezati samo reprogramiranjem. Konfiguracija u FPGA učitava se na prilagodljive logičke ćelije kada se uključi napajanje.
Da biste reprogramirali FPGA, ne morate mijenjati hardver. FPGA su prikladni za brzu obradu paralelnih podataka i isporučuju se s visokim stupnjem prilagodljivosti. Međutim, oni također imaju nedostatke rada prototipa i složenosti konfiguracije. Dakle, FPGA se mogu odabrati s tim prednostima u odnosu na mikrokontrolere. Krenimo s programiranjem FPGA i naglasimo
