FPGA: allt om dessa marker och deras programmering

FPGA-chip

mycket FPGA har blivit mer och mer populära i de sista tiderna. Även för professionella applikationer används dessa marker ofta, men också för DIY-tillverkare och tillverkare som vill implementera en diskret krets i ett chip med alla fördelar som detta innebär. Det är inte billigt eller lätt att hitta en fabrik för att skicka dina layouter eller mönster och få ett anpassat chip tillverkat åt dig.

Det är sant att vissa gjuterier tillåter det gör rån eller flerprojekt rån att göra marker från individer eller universitet för att testa med dem. Dessa typer av fabriker är, som jag säger, svåra att hitta, de är vanligtvis utomlands och de är inte billiga. Efter ett tag skickas prover av dina marker till den överenskomna adressen, men de ansvarar inte för att testa dessa eller kontrollera att de fungerar. Allt beror på din design ...

en alternativ lösning på det är att köpa en FPGA och programmera vad du behöver för att implementera inuti chipet ...

Vad är en FPGA?

Programmerbara celler

FPGA står för Field Programmable Gate Array. De är digitala enheter eller chips som kan konfigureras så att praktiskt taget allt kan implementeras. Det är med andra ord ett tomt chip där du kan "skriva". Det betyder att du kan implementera en CPU, ett minne, en styrenhet, vilken logik som helst osv., Uppnå en mycket snabb operation och med alla fördelar med att ha den integrerad i ett chip och inte med elektroniska element.

Ross Freeman och Bernard Vonderschmitt, grundare av Xilinx, var de som uppfann FPGA 1984. De gjorde det som en utveckling av CPLD-chips på den tiden. De CPLD-programmerbara chipsen hade några brister som löste de nya FPGA-designen och sedan dess har de utvecklats hittills.

FPGA-marknaden är så fruktbar att företag gillar Intel, Xilinx, Altera, Quick Logic, Gitter etc., de har investerat mycket för att utveckla bättre FPGA och även inbäddade programmeringsmiljöer eller IDE för dem. Således tillhandahåller mycket bra plattformar för att underlätta utvecklarnas eller tillverkarens uppgift.

För närvarande tillhandahåller dessa tillverkare inte bara ett programmerbart chip utan inkluderar även många hjälpelement för att ge fler möjligheter för utvecklare. Till exempel inkluderar de flashminnesceller, SDRAM-minnesceller och så vidare.

Vad används de för?

IDE för att programmera FPGA

Därför kan en FPGA likna en ASIC men det vi kan välja vad blir det. Till exempel kan vi skapa en kod för att programmera den och förvandla den till en CPU, en GPU, en adderare, en minnesstyrenhet eller någon annan logisk krets implementerad på ett enda chip.

Möjligheterna är ganska oändliga. Jag rekommenderar faktiskt att du besöker webbplatsen opencores.org, en webbplats dedikerad till att erbjuda en mängd projekt hardware libre. Du hittar koder i VHDL, Verligo, etc., för RAM, CPU, GPU, styrenheter, ALU: er, FPU: er, avkodare och en lång etc..

Hur programmeras det?

FPGA-programmerare

För att programmera en FPGA kan vi göra det från vårt favoritoperativsystem, som GNU / Linux, Windows och MacOS, även om det verkligen finns fler utvecklingsmiljöer för Windows. I allmänhet erbjuder samma företag som gör FPGA ett Mycket komplett IDE att arbeta med och var du hittar alla verktyg du behöver i samma programvarupaket.

Du kommer också att behöva FPGA-chip eller kort och nödvändig kabel eller programmerare med vilken du kan ansluta FPGA till din dator för att skicka den skrivna koden till FPGA och så är den programmerad. Det är något som liknar vad du gör med Arduino-kortet och skriver Arduino IDE-programmet i mikroprocessorns programmerbara minne.

Endast i fallet med FPGA har vi en matris eller matris av elementära komponenter som minneceller, OCH-grindar, ELLER, INTE, Flip-flops och andra. grundläggande element eller block av digital elektronik som vi kan använda. Med det skriftliga programmet är det vi ska göra att införa det sätt på vilket dessa väsentliga block ska grupperas för att bilda den lilla krets vi vill ha, till exempel en ALU.

Det vill säga om vi programmerar en adderare i vår IDE, de nödvändiga blocken för att implementera denna adderare de kommer att länka på rätt sätt inuti FPGA så att chipet fungerar som en adderare. Enkelt, eller hur? I allmänhet används flera metoder för denna programmering på en fysisk nivå, såsom minnen eller säkringar för att skapa en permanent länk i så fall.

Hur snabbt de körs beror på klockfrekvens till vilken FPGA vi har köpt fungerar. Till exempel fungerar de mest grundläggande vanligtvis vid 50 MHz, andra kommer att göra det vid mycket högre frekvenser. När det gäller 50 MHz FPGA betyder det att den kommer att arbeta med en hastighet på 50.000.000 XNUMX XNUMX gånger per sekund. Om vi ​​fortsätter med adderaren som jag har gett som ett exempel, kommer du att kunna göra det beloppet på en sekund ...

Fortsätter med temat ProgrammeringenNär vi väl vet att du kan skriva kod som vi skulle göra i Arduino IDE eller att utveckla något annat program, och se hur det görs på hårdvarunivå, kommer jag att säga att det verkligen inte programmeras som sådant. Snarare är det en hårdvarubeskrivning. Faktum är att hårdvarubeskrivningsspråk används som VHDL, Verilog, etc.

med det programmet beskrivs på en logisk nivå vad den lilla kretsen vi vill implementera gör. Och sedan går det till FPGA. Även om det är sant att vissa plattformar tillåter programmering på programmeringsspråk som C att kunna implementera en CPU i FPGA och sedan generera program för att ladda in i minnet och behandlas av nämnda processor.

Integration med Arduino

Arduino-FPGA

FPGA används vanligtvis separat, men det är sant att det finns många verktyg och kit på marknaden som gör ditt liv enklare att integrera din FPGA med Arduino-plattformen. Ett exempel på en styrelse för att ta med FPGA till dina projekt med Arduino är MKR Vidor 4000, även om det finns andra.

MKR Viewer 4000 det är en bräda med tre marker. En av dem är en FPGA, speciellt en Intel Cyclone 10. Det finns också andra chips för Bluetooth LE eller anslutning med låg förbrukning och även WiFi-kompatibilitet. Ett bra komplement för att ge din Arduino anslutningsfunktioner och för att kunna implementera det du behöver i FPGA.

Med detta har du en anpassningsbar hårdvara, konfigurerad av dig själv för det ändamål du vill ha. Det erbjuder oändliga möjligheter.


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.