FPGA: gjithçka për këto patate të skuqura dhe programimin e tyre

Çipi FPGA

L FPGA janë bërë gjithnjë e më të popullarizuara në kohët e fundit. Edhe për aplikime profesionale këto çipa përdoren shpesh, por edhe për DIYers dhe prodhuesit që duan të zbatojnë një qark diskret brenda një çipi me të gjitha avantazhet që nënkupton kjo. Nuk është e lirë ose e lehtë të gjesh një fabrikë për të dërguar skemat ose modelet e tua dhe të kesh prodhuar një çip të personalizuar.

Isshtë e vërtetë që disa fonderi lejojnë bëni meshë ose meshë me shumë projekte për të bërë patate të skuqura nga individë ose universitete për të provuar me ta. Këto lloj fabrikash, siç them, janë të vështira për tu gjetur, ato zakonisht ndodhen jashtë vendit dhe nuk janë të lira. Pas një kohe, mostrat e patate të skuqura tuaj dërgohen në adresën e rënë dakord, por ata nuk janë të ngarkuar me testimin e këtyre ose kontrollimin e funksionimit të tyre. E gjitha varet nga dizajni juaj ...

një zgjidhje alternative për atë është blerja e një FPGA dhe programoni gjithçka që ju nevojitet për të zbatuar brenda çipit ...

Çfarë është një FPGA?

Qelizat e programueshme

FPGA qëndron për Array Programmable Gate Array. Ato janë pajisje dixhitale ose patate të skuqura që janë të afta të konfigurohen për të lejuar që praktikisht të zbatohet çdo gjë. Kjo është, me fjalë të tjera, është një copë bosh ku mund të "shkruash". Kjo do të thotë që ju mund të implementoni një CPU, një memorje, një kontrollues, çdo logjikë, etj., Duke arritur një operacion shumë të shpejtë dhe me të gjitha avantazhet e integrimit në një çip dhe jo me elemente elektronikë.

Ross Freeman dhe Bernard Vonderschmitt, bashkëthemelues të Xilinx, ishin ata që shpikën FPGA në 1984. Ata e bënë atë si një evolucion për patate të skuqura CPLD të asaj kohe. Çipat e programueshëm CPLD kishin disa mangësi që zgjidhën modelet e reja të FPGA dhe që nga ajo kohë ato kanë evoluar deri më sot.

Tregu i FPGA është aq i frytshëm saqë kompanitë pëlqejnë Intel, Xilinx, Altera, Quick Logic, Lattice, etj., ata kanë investuar shumë për të zhvilluar FPGA më të mira dhe gjithashtu mjedise programimi të ngulitura ose IDE për ta. Kështu sigurimi i platformave shumë të mira për të lehtësuar detyrën e zhvilluesve ose prodhuesve.

Aktualisht këta prodhues jo vetëm që ofrojnë një çip të programueshëm, por gjithashtu përfshijnë elemente të shumtë ndihmës për të sjellë më shumë mundësi për zhvilluesit. Për shembull, ato përfshijnë qelizat e kujtesës flash, qelizat e kujtesës SDRAM, etj.

Për çfarë përdoren ato?

IDE për të programuar FPGA

Prandaj, një FPGA mund të jetë e ngjashme me një ASIC por ajo ne mund të zgjedhim çfarë do të jetë Për shembull, ne mund të krijojmë një kod për ta programuar atë dhe ta kthejmë atë në një CPU, një GPU, një shtesë, një kontrollues të kujtesës ose ndonjë qark tjetër logjik të zbatuar në një çip të vetëm.

Mundësitë janë goxha të pafundme. Në fakt, unë ju rekomandoj që të vizitoni faqen e internetit opencores.org, një faqe e dedikuar për të ofruar një mori projektesh hardware libre. Ju do të gjeni kode në VHDL, Verligo, etj., për RAM, CPU, GPU, kontrollues, ALU, FPU, dekodera, dhe një kohë e gjatë etj..

Si është programuar?

Programues për FPGA

Për të programuar një FPGA mund ta bëjmë atë nga sistemi ynë i preferuar operativ, të tilla si GNU / Linux, Windows dhe MacOS, megjithëse ka sigurisht më shumë mjedise zhvillimi për Windows. Në përgjithësi, të njëjtat kompani që bëjnë FPGA ofrojnë një IDE shumë e plotë për të punuar dhe ku mund të gjeni të gjitha mjetet që ju nevojiten në të njëjtën paketë softuerësh.

Ju gjithashtu do të duhet Çipi ose bordi FPGA dhe kabllo ose programues i nevojshëm me të cilën mund të lidhni FPGA me PC tuaj për të kaluar kodin e shkruar në FPGA dhe kështu është programuar. Kjo është diçka e ngjashme me atë që bëni me bordin Arduino, duke shkruar programin Arduino IDE në kujtesën e programueshme të mikrokontrolluesit.

Vetëm në rastin e FPGA ajo që kemi është një matricë ose një grup përbërësish elementarë siç janë qelizat e kujtesës, dhe portat, OSE, JO, Flip-flops, dhe të tjerët. elementet themelore ose blloqet e elektronikës dixhitale që mund të përdorim. Me programin e shkruar, ajo që ne do të bëjmë është të imponojmë mënyrën në të cilën këto blloqe thelbësore do të grupohen së bashku për të formuar qarkun e vogël që duam, siç është një ALU.

Kjo është, nëse programojmë një shtues në IDE-në tonë, blloqet e nevojshme për të zbatuar këtë mbledhës ata do të lidhin në mënyrën e duhur brenda FPGA në mënyrë që çipi të funksionojë si shtues. E thjeshtë apo jo? Në përgjithësi, disa metoda përdoren për këtë programim në një nivel fizik, siç janë kujtimet ose siguresat për të bërë një lidhje të përhershme në atë rast.

Shpejtësia me të cilën ata veprojnë do të varet nga frekuenca e orës tek të cilat punon FPGA. Për shembull, ato më themeloret zakonisht punojnë me 50 Mhz, të tjerët do ta bëjnë këtë në frekuenca shumë më të larta. Në rastin e 50 Mhz FPGA, kjo do të thotë se do të funksionojë me një shpejtësi prej 50.000.000 herë në sekondë. Nëse vazhdojmë me mbledhësin që kam dhënë si shembull, ju do të jeni në gjendje të bëni atë sasi shumash në një sekondë ...

Duke vazhduar me temën e ProgramimiSapo të dimë që ju mund të shkruani kodin siç do të bënim në Arduino IDE ose të zhvilloni ndonjë program tjetër, dhe duke parë se si bëhet në nivelin e harduerit, unë do të them se me të vërtetë nuk po programon si i tillë. Përkundrazi është një përshkrim i pajisjes. Në fakt, përdoren gjuhë të përshkrimit të pajisjeve të tilla si VHDL, Verilog, etj.

me ai program përshkruhet në një nivel logjik çfarë bën qarku i vogël që duam të implementojmë. Dhe pastaj shkon në FPGA. Megjithëse është e vërtetë që disa platforma lejojnë programimin në gjuhët e programimit siç është C të jetë në gjendje të implementojë një CPU në FPGA dhe më pas të gjenerojë programe për t’u ngarkuar në memorie dhe për t’u përpunuar nga procesori në fjalë.

Integrimi me Arduino

Arduino-FPGA

FPGA-të zakonisht përdoren veçmas, por është e vërtetë që ka shumë mjete dhe komplete në treg që do ta bëjnë jetën tuaj më të lehtë për tu integruar FPGA me platformën Arduino. Një shembull i një bordi për të sjellë FPGA në projektet tuaja me Arduino është MKR Vidor 4000, megjithëse ka edhe të tjerë.

MKR Viewer 4000 është një tabelë me tre patate të skuqura. Njëri prej tyre është një FPGA, konkretisht një Intel Cyclone 10. Ekzistojnë gjithashtu patate të skuqura të tjera për Bluetooth LE ose lidhje me konsum të ulët dhe gjithashtu pajtueshmëri WiFi. Një plotësues i mirë për të siguruar Arduino tuaj me funksionalitete të lidhjes dhe për të qenë në gjendje të zbatoni atë që ju nevojitet në FPGA.

Me të ju keni një pajisje të personalizueshme, konfiguruar nga vetja juaj për qëllimin që dëshironi. Kjo ofron mundësi të pafundme.


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.