FPGA: alt om disse chips og deres programmering

FPGA-chip

masse FPGA'er er blevet mere og mere populære i de sidste tider. Selv til professionelle applikationer bruges disse chips ofte, men også til gør-det-selv og producenter, der ønsker at implementere et diskret kredsløb inde i en chip med alle de fordele, dette indebærer. Det er ikke billigt eller let at finde en fabrik til at sende dine layouts eller mønstre og få produceret en brugerdefineret chip til dig.

Det er rigtigt, at nogle støberier tillader det lav vafler eller flerprojekt vafler at lave chips fra enkeltpersoner eller universiteter for at teste med dem. Disse typer fabrikker er, som jeg siger, svære at finde, de er normalt i udlandet og de er ikke billige. Efter et stykke tid sendes prøver af dine chips til den aftalte adresse, men de har ikke ansvaret for at teste disse eller kontrollere, at de fungerer. Det hele afhænger af dit design ...

en alternativ løsning på det er at købe en FPGA og programmer alt hvad du har brug for at implementere inde i chippen ...

Hvad er en FPGA?

Programmerbare celler

FPGA står for Field Programmable Gate Array. De er digitale enheder eller chips, der er i stand til at blive konfigureret til at give praktisk talt alt, hvad der skal implementeres. Det er med andre ord en tom chip, hvor du kan "skrive". Det betyder, at du kan implementere en CPU, en hukommelse, en controller, enhver logik osv., Opnå en meget hurtig operation og med alle fordelene ved at have den integreret i en chip og ikke med elektroniske elementer.

Ross Freeman og Bernard Vonderschmitt, medstiftere af Xilinx, var dem, der opfandt FPGA i 1984. De gjorde det som en udvikling til dengang CPLD-chips. De CPLD-programmerbare chips havde nogle mangler, der løste de nye FPGA-design, og siden da har de udviklet sig til dato.

FPGA-markedet er så frugtbart, at virksomheder kan lide Intel, Xilinx, Altera, Quick Logic, Gitter osv., de har investeret meget i at udvikle bedre FPGA'er og også indlejrede programmeringsmiljøer eller IDE'er til dem. Således giver meget gode platforme til at lette opgaven for udviklere eller producenter.

I øjeblikket leverer disse producenter ikke kun en programmerbar chip, men inkluderer også adskillige hjælpeelementer at bringe flere muligheder for udviklere. For eksempel inkluderer de flash-hukommelsesceller, SDRAM-hukommelsesceller osv.

Hvad bruges de til?

IDE for at programmere FPGA

Derfor kan en FPGA ligne en ASIC, men det vi kan vælge hvad bliver der. For eksempel kunne vi oprette en kode for at programmere den og omdanne den til en CPU, en GPU, en adderer, en hukommelsescontroller eller ethvert andet logisk kredsløb implementeret på en enkelt chip.

Mulighederne er ret uendelige. Faktisk anbefaler jeg, at du besøger webstedet opencores.org, et websted dedikeret til at tilbyde et væld af projekter hardware libre. Du finder koder i VHDL, Verligo osv., til RAM, CPU, GPU, controllere, ALU'er, FPU'er, dekodere og en lang osv..

Hvordan programmeres det?

Programmer til FPGA

For at programmere en FPGA kan vi gøre det fra vores foretrukne operativsystem, såsom GNU / Linux, Windows og MacOS, selvom der bestemt er flere udviklingsmiljøer til Windows. Generelt tilbyder de samme virksomheder, der fremstiller FPGA en Meget komplet IDE at arbejde med og hvor du finder alle de værktøjer, du har brug for i den samme softwarepakke.

Du skal også bruge FPGA-chip eller -kort og det nødvendige kabel eller programmør som du kan forbinde FPGA til din pc for at videregive den skrevne kode til FPGA, og så den er programmeret. Det er noget, der ligner det, du gør med Arduino-kortet, og skriver Arduino IDE-programmet i mikrocontrollerens programmerbare hukommelse.

Kun i tilfælde af FPGA har vi en matrix eller matrix af elementære komponenter såsom hukommelsesceller, OG porte, ELLER, IKKE, Flip-flops og andre. grundlæggende elementer eller blokke af digital elektronik som vi kan bruge. Med det skrevne program skal vi pålægge den måde, hvorpå disse væsentlige blokke skal grupperes for at danne det lille kredsløb, vi ønsker, såsom en ALU.

Det vil sige, hvis vi programmerer en adder i vores IDE, de nødvendige blokke til at implementere denne adder de vil linke den rigtige vej inde i FPGA, så chippen fungerer som en adder. Simpel, ikke? Generelt anvendes flere metoder til denne programmering på et fysisk niveau, såsom minder eller sikringer for at skabe et permanent link i så fald.

Den hastighed, hvormed de kører, afhænger af urfrekvens som den FPGA, vi har købt, fungerer. For eksempel arbejder de mest basale normalt ved 50 MHz, andre vil gøre det ved meget højere frekvenser. I tilfælde af FPGA ved 50 MHz betyder det, at den fungerer med en hastighed på 50.000.000 gange i sekundet. Hvis vi fortsætter med den adder, som jeg har givet som et eksempel, kan du gøre det beløb på summen på et sekund ...

Fortsætter med temaet ProgrammeringenNår vi først ved, at du kan skrive kode, som vi ville gøre i Arduino IDE eller udvikle et andet program, og se hvordan det gøres på hardwareniveau, vil jeg sige, at det virkelig ikke programmerer som sådan. Det er snarere en hardware beskrivelse. Faktisk bruges hardwarebeskrivelsessprog som VHDL, Verilog osv.

med dette program er beskrevet på et logisk niveau hvad det lille kredsløb, vi vil implementere, gør. Og så går det til FPGA. Selvom det er rigtigt, at nogle platforme tillader programmering på programmeringssprog såsom C for at være i stand til at implementere en CPU i FPGA og derefter generere programmer, der indlæses i hukommelsen og behandles af processoren.

Integration med Arduino

Arduino-FPGA

FPGA'er bruges normalt separat, men det er rigtigt, at der er mange værktøjer og sæt på markedet, der gør dit liv lettere at integrere din FPGA med Arduino-platformen. Et eksempel på et bræt til at bringe FPGA'er til dine projekter med Arduino er MKR Vidor 4000, selvom der er andre.

MKR Viewer 4000 det er et bræt med tre chips. En af dem er en FPGA, specifikt en Intel Cyclone 10. Der er også andre chips til Bluetooth LE eller lav strømforbindelse og også WiFi-kompatibilitet. Et godt supplement til at give din Arduino forbindelsesfunktioner og være i stand til at implementere det, du har brug for i FPGA.

Med dette har du en tilpasselig hardware, konfigureret af dig selv til det formål, du ønsker. Det giver uendelige muligheder.


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.