FPGA: alles over deze chips en hun programmering

FPGA-chip

De FPGA's worden steeds populairder in de laatste keren. Zelfs voor professionele toepassingen worden deze chips veel gebruikt, maar ook voor doe-het-zelvers en makers die een discrete schakeling in een chip willen implementeren met alle voordelen van dien. Het is niet goedkoop of gemakkelijk om een ​​fabriek te vinden om uw lay-outs of patronen te verzenden en een op maat gemaakte chip voor u te laten vervaardigen.

Het is waar dat sommige gieterijen het toelaten maak wafels of multiproject-wafers om chips te maken van individuen of universiteiten om met hen te testen. Dit soort fabrieken zijn, zoals ik al zei, moeilijk te vinden, ze bevinden zich meestal in het buitenland en zijn niet goedkoop. Na verloop van tijd worden er monsters van je chips naar het afgesproken adres gestuurd, maar ze zijn niet verantwoordelijk voor het testen of controleren of ze werken. Het hangt allemaal af van uw ontwerp ...

een een alternatieve oplossing hiervoor is om een ​​FPGA aan te schaffen en programmeer wat je nodig hebt om in de chip te implementeren ...

Wat is een FPGA?

Programmeerbare cellen

FPGA staat voor Field Programmable Gate Array. Het zijn digitale apparaten of chips die kunnen worden geconfigureerd om praktisch alles te implementeren. Dat wil zeggen, het is met andere woorden een blanco chip waarop u kunt "schrijven". Dat betekent dat u een CPU, een geheugen, een controller, elke logica, enz. Kunt implementeren, met een zeer snelle werking en met alle voordelen van integratie in een chip en niet met elektronische elementen.

Ross Freeman en Bernard Vonderschmitt, medeoprichters van Xilinx, waren degenen die de FPGA in 1984 hebben uitgevonden. Ze deden het als een evolutie naar de CPLD-chips van die tijd. Programmeerbare CPLD-chips hadden tekortkomingen die nieuwe FPGA-ontwerpen hebben opgelost en zijn sindsdien tot op heden geëvolueerd.

De FPGA-markt is zo vruchtbaar dat bedrijven dat leuk vinden Intel, Xilinx, Altera, Quick Logic, Lattice, enz.hebben ze veel geïnvesteerd om betere FPGA's te ontwikkelen en ook embedded programmeeromgevingen of IDE's voor hen. Het biedt dus zeer goede platforms om de taak van ontwikkelaars of makers te vergemakkelijken.

Momenteel leveren deze fabrikanten niet alleen een programmeerbare chip, maar ook talrijke hulpelementen om ontwikkelaars meer mogelijkheden te bieden. Ze omvatten bijvoorbeeld flash-geheugencellen, SDRAM-geheugencellen, enz.

Waar worden ze voor gebruikt?

IDE om FPGA te programmeren

Daarom kan een FPGA vergelijkbaar zijn met een ASIC, maar dat we kunnen kiezen wat zal zijn. We kunnen bijvoorbeeld een code maken om deze te programmeren en deze om te zetten in een CPU, een GPU, een opteller, een geheugencontroller of een ander logisch circuit dat op een enkele chip is geïmplementeerd.

De mogelijkheden zijn behoorlijk eindeloos. Ik raad je zelfs aan om de website te bezoeken opencores.org, een site gewijd aan het aanbieden van een veelheid aan projecten hardware libre. U vindt codes in VHDL, Verligo, etc. voor RAM, CPU, GPU, stuurprogramma's, ALU's, FPU's, decoders en een lange etc..

Hoe is het geprogrammeerd?

Programmeur voor FPGA

Om een ​​FPGA te programmeren, kunnen we het doen vanuit ons favoriete besturingssysteem, zoals GNU / Linux, Windows en MacOS, hoewel er zeker meer ontwikkelomgevingen voor Windows zijn. Over het algemeen bieden dezelfde bedrijven die de FPGA maken een Zeer complete IDE om mee te werken en waar u alle tools kunt vinden die u nodig heeft in dezelfde softwaresuite.

Je hebt ook de FPGA chip of board en de benodigde kabel of programmeur waarmee je de FPGA op je pc kunt aansluiten om de geschreven code door te geven aan de FPGA en zo wordt deze geprogrammeerd. Dat is vergelijkbaar met wat je doet met het Arduino-bord, het Arduino IDE-programma in het programmeerbare geheugen van de microcontroller schrijven.

Alleen in het geval van de FPGA hebben we een matrix of een reeks elementaire componenten zoals geheugencellen, EN-poorten, OF, NIET, Flip-flops en andere. basiselementen of blokken digitale elektronica die we kunnen gebruiken. Wat we met het geschreven programma gaan doen, is de manier opleggen waarop deze essentiële blokken moeten worden gegroepeerd om het kleine circuit te vormen dat we willen, zoals een ALU.

Dat wil zeggen, als we een adder in onze IDE programmeren, de benodigde blokken om deze adder te implementeren ze gaan linken op de juiste manier in de FPGA zodat de chip als een opteller werkt. Simpel toch? Over het algemeen worden voor deze programmering op fysiek niveau verschillende methoden gebruikt, zoals geheugens of zekeringen om in dat geval een permanente koppeling te maken.

De snelheid waarmee ze werken, is afhankelijk van klok frequentie waarop de FPGA die we hebben aangeschaft werkt. De meest basale werken bijvoorbeeld meestal op 50 Mhz, anderen doen dit op veel hogere frequenties. In het geval van de 50 Mhz FPGA betekent dit dat deze 50.000.000 keer per seconde zal werken. Als we doorgaan met de opteller die ik als voorbeeld heb gegeven, kun je dat aantal sommen in één seconde doen ...

Verder met het thema van De programmering, als we eenmaal weten dat je code kunt schrijven zoals we zouden doen in de Arduino IDE of om een ​​ander programma te ontwikkelen, en als we zien hoe het op hardwareniveau wordt gedaan, zal ik zeggen dat het echt niet programmeren als zodanig is. Het is eerder een hardwarebeschrijving. In feite worden hardwarebeschrijvingstalen zoals VHDL, Verilog, enz. Gebruikt.

met dat programma wordt op een logisch niveau beschreven wat het kleine circuit dat we willen implementeren doet. En dan gaat het naar de FPGA. Hoewel het waar is dat sommige platforms programmeren in programmeertalen zoals C toestaan ​​om een ​​CPU in de FPGA te implementeren en vervolgens programma's te genereren die in het geheugen worden geladen en door de processor worden verwerkt.

Integratie met Arduino

Arduino-FPGA

FPGA's worden meestal afzonderlijk gebruikt, maar het is waar dat er veel tools en kits op de markt zijn die uw leven gemakkelijker zullen maken om uw FPGA met het Arduino-platform. Een voorbeeld van een bord om FPGA's naar uw projecten met Arduino te brengen, is MKR Vidor 4000, hoewel er andere zijn.

MKR Viewer 4000 het is een bord met drie fiches. Een daarvan is een FPGA, met name een Intel Cyclone 10. Er zijn ook andere chips voor Bluetooth LE of connectiviteit met laag verbruik en ook WiFi-compatibiliteit. Een goede aanvulling om je Arduino te voorzien van connectiviteitsfunctionaliteiten en om te kunnen implementeren wat je nodig hebt in de FPGA.

Hiermee heb je een aanpasbare hardware, door uzelf geconfigureerd voor het doel dat u wilt. Dat biedt oneindig veel mogelijkheden.


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.