Los FPGA vis labiau populiarėja paskutiniais laikais. Šie lustai dažnai naudojami net profesionaliam naudojimui, bet taip pat ir savadarbiams bei gamintojams, norintiems lustoje įdiegti atskirą grandinę su visais privalumais, kuriuos tai reiškia. Nebrangu ar lengva rasti gamyklą, kad galėtumėte siųsti savo maketus ar modelius ir turėti jums pagamintą pasirinktinį lustą.
Tiesa, kai kurios liejyklos leidžia gaminti plokšteles arba daugiaprojektes plokšteles gaminti žetonus iš asmenų ar universitetų, kad galėtumėte su jais išbandyti. Tokio tipo gamyklas, kaip sakau, sunku rasti, jos dažniausiai būna užsienyje ir nėra pigios. Po kurio laiko jūsų žetonų pavyzdžiai siunčiami sutartu adresu, tačiau jie nėra atsakingi už šių testavimą ar patikrinimą, ar jie veikia. Viskas priklauso nuo jūsų dizaino ...
A alternatyvus sprendimas yra įsigyti FPGA ir užprogramuokite viską, ko jums reikia norint įgyvendinti lustą ...
Kas yra FPGA?
FPGA reiškia lauko programuojamų vartų masyvą. Tai yra skaitmeniniai įrenginiai ar lustai, kuriuos galima sukonfigūruoti taip, kad būtų galima praktiškai bet ką įgyvendinti. Tai yra, kitaip tariant, tai yra tuščias lustas, kuriame galite „rašyti“. Tai reiškia, kad galite įdiegti procesorių, atmintį, valdiklį, bet kokią logiką ir pan., Kad pasiektumėte labai greitą veikimą ir turėtumėte visus privalumus, kad jis būtų integruotas į lustą, o ne su elektroniniais elementais.
Rossas Freemanas ir Bernardas Vonderschmittas, „Xilinx“ įkūrėjai, buvo tie, kurie 1984 m. Išrado FPGA. Jie tai padarė kaip to meto CPLD lustų evoliucija. CPLD programuojami lustai turėjo keletą trūkumų, kurie išsprendė naujus FPGA dizainus, ir nuo to laiko jie buvo tobulinami iki šiol.
FPGA rinka yra tokia vaisinga, kad patinka įmonėms „Intel“, „Xilinx“, „Altera“, „Quick Logic“, „Lattice“ ir kt., jie daug investavo, kad sukurtų geresnes FPGA ir jiems įterptas programavimo aplinkas arba IDE. Taip užtikrindami labai geras platformas, palengvinančias kūrėjų ar kūrėjų užduotis.
Šiuo metu šie gamintojai ne tik teikia programuojamą lustą, bet ir įtraukia daugybė pagalbinių elementų suteikti daugiau galimybių kūrėjams. Pavyzdžiui, jie apima „flash“ atminties ląsteles, SDRAM atminties ląsteles ir pan.
Kam jie naudojami?
Todėl FPGA gali būti panašus į ASIC, tačiau tas mes galime pasirinkti kas bus. Pavyzdžiui, mes galėtume sukurti kodą, kad jį užprogramuotume ir paverstume procesoriumi, GPU, papildikliu, atminties valdikliu ar bet kokia kita logine grandine, įdiegta vienoje mikroschemoje.
Galimybės yra gana begalinės. Tiesą sakant, aš rekomenduoju jums apsilankyti svetainėje opencores.org, svetainė, skirta pasiūlyti daugybę projektų hardware libre. Kodus rasite VHDL, Verligo ir kt RAM, CPU, GPU, valdikliai, ALU, FPU, dekoderiai ir ilgas ir tt.
Kaip tai užprogramuota?
Norėdami užprogramuoti FPGA, galime tai padaryti naudodami mėgstamą operacinę sistemą, pvz., GNU / Linux, Windows ir MacOS, nors yra tikrai daugiau „Windows“ kūrimo aplinkų. Paprastai tos pačios bendrovės, kurios gamina FPGA, siūlo a Labai išsami IDE dirbti ir kur rasti visus reikalingus įrankius tame pačiame programinės įrangos pakete.
Jums taip pat reikės FPGA lustas arba plokštė ir būtinas laidas arba programuotojas su kuria galite prijungti FPGA prie savo kompiuterio, kad perduotumėte parašytą kodą FPGA ir taip jis būtų užprogramuotas. Tai kažkas panašaus į tai, ką darote su „Arduino“ plokšte, įrašydami „Arduino IDE“ programą į mikrovaldiklio programuojamą atmintį.
Tik tuo atveju, kai turime FPGA, yra elementarių komponentų, tokių kaip atminties ląstelės, IR vartai, ARBA, NE, šlepetės ir kt., Matrica arba masyvas. pagrindiniai skaitmeninės elektronikos elementai ar blokai kad mes galime naudoti. Naudodamiesi parašyta programa, mes ketiname nustatyti būdą, kaip šie pagrindiniai blokai turi būti sugrupuoti, kad susidarytų norima maža grandinė, pvz., ALU.
Tai yra, jei programuojame papildymą savo IDE, būtinus blokus šiam papildikliui įgyvendinti jie ketina susieti teisingai FPGA viduje, kad mikroschema veiktų kaip priedas. Paprasta, tiesa? Apskritai šiam programavimui fiziniame lygmenyje naudojami keli metodai, pavyzdžiui, atmintinės ar saugikliai, kad tokiu atveju būtų sukurta nuolatinė nuoroda.
Nuo jų greičio priklausys laikrodžio dažnis kurį įsigijome FPGA. Pavyzdžiui, paprasčiausi paprastai dirba 50 Mhz dažniu, kiti tai darys daug didesniais dažniais. 50 Mhz FPGA atveju tai reiškia, kad jis veiks 50.000.000 XNUMX XNUMX kartų per sekundę. Jei tęsime su mano pridėtu pavyzdžiu, tą sumą galėsite padaryti per vieną sekundę ...
Tęsiant temą ProgramavimasKai žinosime, kad galite rašyti kodą, kaip tai darytume „Arduino IDE“, ar kurti bet kurią kitą programą, ir pamatęs, kaip tai daroma aparatinės įrangos lygiu, pasakysiu, kad tai tikrai nėra programavimas. Tai veikiau aparatūros aprašymas. Tiesą sakant, naudojamos aparatūros aprašymo kalbos, tokios kaip VHDL, „Verilog“ ir kt.
su ta programa aprašoma loginiu lygmeniu ką daro mažoji grandinė, kurią norime įgyvendinti. Ir tada jis eina į FPGA. Nors tiesa, kad kai kurios platformos leidžia programuoti tokiomis programavimo kalbomis kaip C, kad būtų galima įdiegti procesorių FPGA ir tada generuoti programas, kurias būtų galima įkelti į atmintį ir kurias apdorotų minėtas procesorius.
Integracija su „Arduino“
FPGA paprastai naudojami atskirai, tačiau tiesa, kad rinkoje yra daugybė įrankių ir rinkinių, kurie palengvins jūsų gyvenimą FPGA su „Arduino“ platforma. Lentos, skirtos FPGA pritraukti į jūsų projektus su „Arduino“, pavyzdys yra „MKR Vidor 4000“, nors yra ir kitų.
MKR Viewer 4000 tai lenta su trimis lustais. Vienas iš jų yra FPGA, konkrečiai - „Intel Cyclone 10.“. Taip pat yra ir kitų „Bluetooth LE“ arba mažo suvartojimo ir „WiFi“ suderinamumo lustų. Geras priedas, suteikiantis „Arduino“ ryšio funkcionalumą ir galintį įgyvendinti tai, ko jums reikia FPGA.
Su tuo jūs turite pritaikoma aparatūra, pats sukonfigūruotas norimam tikslui. Tai suteikia begales galimybių.