FPGA: alt om disse sjetongene og deres programmering

FPGA-brikke

den FPGA-er har blitt mer og mer populære i de siste gangene. Selv for profesjonelle applikasjoner brukes disse sjetongene ofte, men også for DIYere og produsenter som ønsker å implementere en diskret krets inne i en chip med alle fordelene dette innebærer. Det er ikke billig eller enkelt å finne en fabrikk for å sende oppsett eller mønstre og få produsert en spesialtilpasset chip.

Det er sant at noen støperier tillater det lage vafler eller flerprosjektvafler å lage sjetonger fra enkeltpersoner eller universiteter for å teste med dem. Disse typer fabrikker er, som jeg sier, vanskelige å finne, de er vanligvis i utlandet og de er ikke billige. Etter en stund sendes prøver av sjetongene dine til avtalt adresse, men de har ikke ansvaret for å teste disse eller kontrollere at de fungerer. Alt avhenger av designet ditt ...

en alternativ løsning på det er å kjøpe en FPGA og programmer alt du trenger å implementere inne i brikken ...

Hva er en FPGA?

Programmerbare celler

FPGA står for Field Programmable Gate Array. De er digitale enheter eller brikker som kan konfigureres slik at praktisk talt alt kan implementeres. Det vil si med andre ord at det er en tom chip der du kan "skrive". Det betyr at du kan implementere en CPU, et minne, en kontroller, hvilken som helst logikk, etc., oppnå en veldig rask operasjon og med alle fordelene ved å ha den integrert i en chip og ikke med elektroniske elementer.

Ross Freeman og Bernard Vonderschmitt, medstiftere av Xilinx, var de som oppfant FPGA i 1984. De gjorde det som en evolusjon til CPLD-sjetongene på den tiden. De CPLD-programmerbare sjetongene hadde noen mangler som løste de nye FPGA-designene, og siden den gang har de utviklet seg til dags dato.

FPGA-markedet er så fruktbart at selskaper liker Intel, Xilinx, Altera, Quick Logic, Gitter, etc., de har investert mye for å utvikle bedre FPGAer og også innebygde programmeringsmiljøer eller IDEer for dem. Dermed gir veldig gode plattformer for å lette oppgaven til utviklere eller produsenter.

For tiden tilbyr ikke disse produsentene en programmerbar brikke, men inkluderer også mange hjelpeelementer for å gi flere muligheter for utviklere. For eksempel inkluderer de flashminneceller, SDRAM-minneceller og så videre.

Hva brukes de til?

IDE for å programmere FPGA

Derfor kan en FPGA være lik en ASIC, men det vi kan velge hva vil bli. For eksempel kan vi lage en kode for å programmere den og gjøre den om til en CPU, en GPU, en adder, en minnekontroller eller en hvilken som helst annen logisk krets implementert på en enkelt brikke.

Mulighetene er ganske uendelige. Jeg anbefaler faktisk at du besøker nettstedet opencores.org, et nettsted dedikert til å tilby en rekke prosjekter hardware libre. Du finner koder i VHDL, Verligo, etc., for RAM, CPU, GPU, kontrollere, ALUer, FPUer, dekodere, og en lang etc..

Hvordan er det programmert?

Programmerer for FPGA

For å programmere en FPGA kan vi gjøre det fra vårt favorittoperativsystem, som GNU / Linux, Windows og MacOS, selv om det absolutt er flere utviklingsmiljøer for Windows. Vanligvis tilbyr de samme selskapene som lager FPGA en Veldig komplett IDE å jobbe med og hvor du finner alle verktøyene du trenger i samme programvarepakke.

Du trenger også FPGA-brikke eller kort og nødvendig kabel eller programmerer som du kan koble FPGA til PCen din for å sende den skrevne koden til FPGA, og slik at den er programmert. Det er noe som ligner på det du gjør med Arduino-kortet, og skriver Arduino IDE-programmet i mikrokontrollerens programmerbare minne.

Bare når det gjelder FPGA, har vi en matrise eller en rekke elementære komponenter som minneceller, OG-porter, ELLER, IKKE, Flip-flops og andre. grunnleggende elementer eller blokker av digital elektronikk som vi kan bruke. Med det skriftlige programmet er det vi skal gjøre å pålegge måten disse essensielle blokkene skal grupperes sammen for å danne den lille kretsen vi ønsker, for eksempel en ALU.

Det vil si at hvis vi programmerer en adder i IDE, de nødvendige blokkene for å implementere denne adderen de kommer til å koble til på riktig måte inne i FPGA slik at brikken fungerer som en adder. Enkelt ikke sant? Generelt brukes flere metoder for denne programmeringen på et fysisk nivå, for eksempel minner eller sikringer for å lage en permanent kobling i så fall.

Hastigheten de opererer med vil avhenge av klokkefrekvens som FPGA vi har kjøpt fungerer til. For eksempel fungerer de mest grunnleggende vanligvis på 50 MHz, andre vil gjøre det på mye høyere frekvenser. Når det gjelder 50 MHz FPGA, betyr det at den vil operere med en hastighet på 50.000.000 XNUMX XNUMX ganger per sekund. Hvis vi fortsetter med huggeren som jeg har gitt som et eksempel, vil du kunne gjøre det beløpet på ett sekund ...

Fortsetter med temaet ProgrammeringenNår vi vet at du kan skrive kode som vi ville gjort i Arduino IDE eller å utvikle noe annet program, og se hvordan det gjøres på maskinvarenivå, vil jeg si at det egentlig ikke programmeres som sådan. Snarere er det en maskinvarebeskrivelse. Faktisk brukes maskinvarebeskrivelsesspråk som VHDL, Verilog, etc.

med programmet er beskrevet på et logisk nivå hva den lille kretsen vi ønsker å implementere gjør. Og så går det til FPGA. Selv om det er sant at noen plattformer tillater programmering i programmeringsspråk som C for å kunne implementere en CPU i FPGA og deretter generere programmer som skal lastes inn i minnet og behandles av nevnte prosessor.

Integrasjon med Arduino

Arduino-FPGA

FPGA-er brukes vanligvis separat, men det er sant at det er mange verktøy og sett på markedet som vil gjøre livet ditt enklere å integrere FPGA med Arduino-plattformen. Et eksempel på et styre for å bringe FPGAer til prosjektene dine med Arduino er MKR Vidor 4000, selv om det er andre.

MKR Viewer 4000 det er et brett med tre sjetonger. En av dem er en FPGA, spesielt en Intel Cyclone 10. Det er også andre brikker for Bluetooth LE eller lavforbrukstilkobling og også WiFi-kompatibilitet. Et godt supplement for å gi Arduino tilkoblingsfunksjoner og være i stand til å implementere det du trenger i FPGA.

Med den har du en tilpassbar maskinvare, konfigurert av deg selv for det formålet du ønsker. Det gir uendelige muligheter.


Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.