FPGA: lahat tungkol sa mga chips na ito at sa kanilang pagprogram

FPGA chip

Los Ang mga FPGA ay naging mas at mas tanyag sa mga huling panahon. Kahit na para sa mga propesyonal na aplikasyon ang mga chips na ito ay madalas na ginagamit, ngunit din para sa mga DIYer at gumagawa na nais na magpatupad ng isang discrete circuit sa loob ng isang maliit na tilad na may lahat ng mga pakinabang na ipinahiwatig nito. Ito ay hindi mura o madaling makahanap ng isang pabrika upang maipadala ang iyong mga layout o pattern at magkaroon ng isang pasadyang chip na ginawa para sa iyo.

Totoo na pinapayagan ng ilang mga pandayan gumawa ng mga wafer o multiproject wafers upang gumawa ng mga chips mula sa mga indibidwal o unibersidad upang subukan ang mga ito. Ang mga uri ng pabrika na ito, tulad ng sinasabi ko, mahirap hanapin, karaniwang nasa ibang bansa at hindi sila mura. Makalipas ang ilang sandali, ang mga sample ng iyong chips ay ipinapadala sa napagkasunduang address, ngunit hindi sila ang namamahala sa pagsubok sa mga ito o pagsuri kung gumagana ang mga ito. Ang lahat ay nakasalalay sa iyong disenyo ...

isang alternatibong solusyon doon ay ang pagbili ng isang FPGA at programa kung ano ang kailangan mong ipatupad sa loob ng maliit na tilad ...

Ano ang FPGA?

Programmable cells

Ang FPGA ay nangangahulugang Field Programmable Gate Array. Ang mga ito ay mga digital na aparato o chips na may kakayahang mai-configure upang payagan ang halos anumang naipatupad. Iyon ay, sa madaling salita, ito ay isang blangko na chip kung saan maaari kang "sumulat." Nangangahulugan iyon na maaari kang magpatupad ng isang CPU, isang memorya, isang controller, anumang lohika, atbp., Pagkamit ng napakabilis na operasyon at sa lahat ng mga kalamangan na maisama ito sa isang maliit na tilad at hindi sa mga elektronikong elemento.

Si Ross Freeman at Bernard Vonderschmitt, mga co-founder ng Xilinx, ay ang nag-imbento ng FPGA noong 1984. Ginawa nila ito bilang isang ebolusyon sa mga chips ng CPLD noong panahong iyon. Ang mga programmable chip ng CPLD ay may ilang mga pagkukulang na nalutas ang mga bagong disenyo ng FPGA at mula noon ay umuusbong hanggang ngayon.

Ang pamilihan ng FPGA ay napakabunga na gusto ng mga kumpanya Intel, Xilinx, Altera, Quick Logic, Lattice, atbp., marami silang namuhunan upang makabuo ng mas mahusay na FPGAs at naka-embed din na mga kapaligiran sa programa o mga IDE para sa kanila. Sa gayon ay nagbibigay ng napakahusay na platform upang mapadali ang gawain ng mga developer o gumagawa.

Sa kasalukuyan ang mga tagagawa na ito ay hindi lamang nagbibigay ng isang nai-program na maliit na tilad, ngunit kasama rin maraming mga elemento ng pandiwang pantulong upang makapagdala ng maraming posibilidad sa mga developer. Halimbawa, nagsasama sila ng mga flash memory cell, SDRAM memory cells, at iba pa.

Para saan ang mga ito

IDE sa programa FPGA

Samakatuwid, ang isang FPGA ay maaaring maging katulad ng isang ASIC ngunit iyon maaari tayong pumili ano ang magiging Halimbawa, maaari kaming lumikha ng isang code upang mai-program ito at gawing isang CPU, isang GPU, isang adder, isang memory controller, o anumang iba pang lohika circuit na ipinatupad sa isang solong maliit na tilad.

Ang mga posibilidad ay medyo walang katapusan. Sa katunayan, inirerekumenda kong bisitahin mo ang website opencores.org, isang site na nakatuon sa pag-aalok ng maraming proyekto hardware libre. Makakakita ka ng mga code sa VHDL, Verligo, atbp., para sa RAM, CPU, GPU, Controller, ALUs, FPUs, decoder, at isang haba atbp..

Paano ito nai-program?

Programmer para sa FPGA

Upang mai-program ang isang FPGA magagawa natin ito mula sa aming paboritong operating system, tulad ng GNU / Linux, Windows at MacOS, bagaman tiyak na mas maraming mga kapaligiran sa pag-unlad para sa Windows. Pangkalahatan, ang parehong mga kumpanya na gumawa ng FPGA ay nag-aalok ng a Napaka kumpletong IDE upang gumana at kung saan mahahanap ang lahat ng mga tool na kailangan mo sa parehong software suite.

Kakailanganin mo rin ang FPGA chip o board at ang kinakailangang cable o programmer kung saan maaari mong ikonekta ang FPGA sa iyong PC upang maipasa ang nakasulat na code sa FPGA at sa gayon ito ay nai-program. Iyon ay isang bagay na katulad ng iyong ginagawa sa Arduino board, pagsulat ng programa ng Arduino IDE sa nai-program na memorya ng microcontroller.

Sa kaso lamang ng FPGA kung ano ang mayroon tayo ay isang matrix o hanay ng mga pangunahing sangkap tulad ng mga cell ng memorya, AT mga gate, O, HINDI, Flip-flop, at iba pa. pangunahing mga elemento o bloke ng digital electronics na magagamit natin. Sa nakasulat na programa kung ano ang gagawin natin ay magpataw ng paraan kung saan ang mga mahahalagang bloke na ito ay mai-grupo upang mabuo ang maliit na circuit na gusto namin, tulad ng isang ALU.

Iyon ay, kung nagpo-program kami ng isang adder sa aming IDE, ang kinakailangang mga bloke upang maipatupad ang adder na ito magli-link na sila sa tamang paraan sa loob ng FPGA upang ang chip ay gumagana bilang isang adder. Simple di ba? Sa pangkalahatan, maraming pamamaraan ang ginagamit para sa programang ito sa isang pisikal na antas, tulad ng mga alaala o piyus upang makagawa ng isang permanenteng link sa kasong iyon.

Ang bilis ng kanilang pagpapatakbo ay nakasalalay sa dalas ng orasan kung saan ang FPGA ay binili namin ng mga gawa. Halimbawa, ang pinaka-pangunahing mga karaniwang gumagana sa 50 Mhz, ang iba ay gagawin ito sa mas mataas na mga frequency. Sa kaso ng 50 Mhz FPGA, nangangahulugan ito na tatakbo ito sa rate na 50.000.000 beses bawat segundo. Kung magpapatuloy kami sa adder na ibinigay ko bilang isang halimbawa, magagawa mong gawin ang halagang iyon sa isang segundo ...

Pagpapatuloy sa tema ng Ang programingKapag alam namin na maaari kang magsulat ng code tulad ng gagawin namin sa Arduino IDE o upang bumuo ng anumang iba pang programa, at nakikita kung paano ito ginagawa sa antas ng hardware, sasabihin ko na talagang hindi ito gaganapin ang programa. Sa halip ito ay isang paglalarawan ng hardware. Sa katunayan, ginagamit ang mga wika ng paglalarawan ng hardware tulad ng VHDL, Verilog, atbp.

may ang program na iyon ay inilarawan sa isang lohikal na antas ano ang ginagawa ng maliit na circuit na nais nating ipatupad. At pagkatapos ay pupunta ito sa FPGA. Bagaman totoo na ang ilang mga platform ay pinapayagan ang pag-program sa mga wika ng pagprograma tulad ng C upang maipatupad ang isang CPU sa FPGA at pagkatapos ay makabuo ng mga programa upang mai-load sa memorya at maproseso ng nasabing processor.

Pagsasama sa Arduino

Arduino-FPGA

Ang mga FPGA ay karaniwang ginagamit nang magkahiwalay, ngunit totoo na maraming mga tool at kit sa merkado na gagawing mas madali ang iyong buhay upang maisama ang iyong FPGA kasama ang Arduino platform. Ang isang halimbawa ng isang lupon upang magdala ng mga FPGA sa iyong mga proyekto kasama ang Arduino ay ang MKR Vidor 4000, bagaman mayroong iba.

MKR Viewer 4000 ito ay isang board na may tatlong chips. Ang isa sa mga ito ay isang FPGA, partikular ang isang Intel Cyclone 10. Mayroon ding iba pang mga chips para sa Bluetooth LE o mababang pagkakakonekta sa kuryente at pati na rin ang pagiging tugma sa WiFi. Ang isang mahusay na pandagdag upang maibigay ang iyong Arduino na may mga pag-andar sa pagkakakonekta at upang maipatupad kung ano ang kailangan mo sa FPGA.

Gamit ito mayroon kang isang napapasadyang hardware, na-configure mo mismo para sa hangaring nais mo. Nag-aalok iyon ng walang katapusang mga posibilidad.


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.