FPGA: tutto su questi chip e sulla loro programmazione

chip fpga

I Gli FPGA sono diventati sempre più popolari negli ultimi tempi. Anche per applicazioni professionali questi chip vengono spesso utilizzati, ma anche per hobbisti e maker che vogliono implementare un circuito discreto all'interno di un chip con tutti i vantaggi che questo implica. Non è economico o facile trovare una fabbrica per inviare i tuoi layout o modelli e far produrre un chip personalizzato per te.

È vero che alcune fonderie lo consentono fare wafer o wafer multiprogetto per fare chip da individui o università per testare con loro. Questi tipi di fabbriche sono, come ho detto, difficili da trovare, di solito sono all'estero e non sono economici. Dopo un po ', i campioni dei tuoi chip vengono inviati all'indirizzo concordato, ma non sono incaricati di testarli o di controllarne il funzionamento. Tutto dipende dal tuo design ...

Un una soluzione alternativa è acquistare un FPGA e programma tutto ciò di cui hai bisogno per implementare all'interno del chip ...

Cos'è un FPGA?

Celle programmabili

FPGA è l'acronimo di Field Programmable Gate Array. Sono dispositivi o chip digitali che possono essere configurati per consentire praticamente qualsiasi cosa da implementare. Cioè, in altre parole, è un chip vuoto dove puoi "scrivere". Ciò significa che puoi implementare una CPU, una memoria, un controller, una qualsiasi logica, ecc., Ottenendo un funzionamento molto veloce e con tutti i vantaggi di averlo integrato in un chip e non con elementi elettronici.

Ross Freeman e Bernard Vonderschmitt, co-fondatori di Xilinx, furono quelli che inventarono l'FPGA nel 1984. Lo fecero come evoluzione dei chip CPLD di quel tempo. I chip programmabili CPLD presentavano dei difetti che i nuovi progetti FPGA hanno risolto e da allora si sono evoluti fino ad oggi.

Il mercato FPGA è così fruttuoso che piace alle aziende Intel, Xilinx, Altera, Quick Logic, Lattice, ecc., hanno investito molto per sviluppare FPGA migliori e anche ambienti di programmazione integrati o IDE per loro. Fornendo così ottime piattaforme per facilitare il compito di sviluppatori o produttori.

Attualmente questi produttori non solo forniscono un chip programmabile, ma includono anche numerosi elementi ausiliari per offrire più possibilità agli sviluppatori. Ad esempio, includono celle di memoria flash, celle di memoria SDRAM e così via.

A cosa servono?

IDE per programmare FPGA

Pertanto, un FPGA può essere simile a un ASIC ma questo possiamo scegliere Cosa sarà. Ad esempio, potremmo creare un codice per programmarlo e trasformarlo in una CPU, una GPU, un sommatore, un controller di memoria o qualsiasi altro circuito logico implementato su un singolo chip.

Le possibilità sono piuttosto infinite. In effetti, ti consiglio di visitare il sito web opencores.org, un sito dedicato ad offrire una moltitudine di progetti hardware libre. Troverai codici in VHDL, Verligo, ecc., per RAM, CPU, GPU, controller, ALU, FPU, decoder e un lungo ecc..

Come si programma?

Programmatore per FPGA

Per programmare un FPGA possiamo farlo dal nostro sistema operativo preferito, come GNU / Linux, Windows e MacOS, anche se ci sono sicuramente più ambienti di sviluppo per Windows. In generale, le stesse aziende che fanno l'FPGA offrono a IDE molto completo con cui lavorare e dove trovare tutti gli strumenti necessari nella stessa suite software.

Avrai anche bisogno del file Chip o scheda FPGA e cavo o programmatore necessari con il quale puoi collegare l'FPGA al tuo PC per passare il codice scritto all'FPGA e così viene programmato. È qualcosa di simile a quello che fai con la scheda Arduino, scrivendo il programma IDE Arduino nella memoria programmabile del microcontrollore.

Solo nel caso dell'FPGA ciò che abbiamo è una matrice o un array di componenti elementari come celle di memoria, porte AND, OR, NOT, Flip-flop e altri. elementi di base o blocchi di elettronica digitale che possiamo usare. Con il programma scritto, quello che faremo è imporre il modo in cui questi blocchi essenziali devono essere raggruppati per formare il piccolo circuito che vogliamo, come un ALU.

Cioè, se programmiamo un sommatore nel nostro IDE, i blocchi necessari per implementare questo sommatore stanno per collegarsi nel modo corretto all'interno dell'FPGA in modo che il chip funzioni come un sommatore. Semplice vero? In generale, diversi metodi vengono utilizzati per questa programmazione a livello fisico, come memorie o fusibili per creare un collegamento permanente in quel caso.

La velocità con cui operano dipenderà da frequenza di clock a cui funziona l'FPGA che abbiamo acquistato. Ad esempio, quelli più elementari di solito funzionano a 50 Mhz, altri lo faranno a frequenze molto più alte. Nel caso dell'FPGA a 50 Mhz, ciò significa che funzionerà a una velocità di 50.000.000 di volte al secondo. Se continuiamo con il sommatore che ho dato come esempio, sarai in grado di fare quella somma in un secondo ...

Continuando con il tema di La programmazione, una volta che sappiamo che puoi scrivere codice come faremmo nell'IDE di Arduino o per sviluppare qualsiasi altro programma, e vedendo come è fatto a livello hardware, dirò che in realtà non si tratta di programmazione in quanto tale. Piuttosto è una descrizione dell'hardware. Infatti, vengono utilizzati linguaggi di descrizione hardware come VHDL, Verilog, ecc.

Con quel programma è descritto a livello logico cosa fa il piccolo circuito che vogliamo implementare. E poi passa all'FPGA. Sebbene sia vero che alcune piattaforme consentono la programmazione in linguaggi di programmazione come C per poter implementare una CPU nell'FPGA e quindi generare programmi da caricare in memoria ed essere elaborati da detto processore.

Integrazione con Arduino

Arduino FPGA

Gli FPGA vengono solitamente utilizzati separatamente, ma è vero che sul mercato ci sono molti strumenti e kit che ti semplificheranno la vita per integrare il tuo FPGA con la piattaforma Arduino. Un esempio di scheda per portare FPGA ai tuoi progetti con Arduino è MKR Vidor 4000, anche se ce ne sono altri.

Visualizzatore MKR 4000 è una tavola con tre gettoni. Uno di questi è un FPGA, in particolare un Intel Cyclone 10. Ci sono anche altri chip per Bluetooth LE o connettività a basso consumo e anche compatibilità WiFi. Un buon complemento per fornire al tuo Arduino funzionalità di connettività e per poter implementare ciò di cui hai bisogno nell'FPGA.

Con esso hai un file hardware personalizzabile, configurato da te per lo scopo che desideri. Ciò offre infinite possibilità.


Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.