
Tutto ciò che avreste sempre voluto sapere sul mondo dei Field Programmable Gate Array verrà svelato in questo articolo: come nasce questo fantastico dispositivo, quali sono i suoi antenati, la storia della sua evoluzione e, soprattutto, lo stato attuale della tecnologia. Vedrete cosa può nascondersi all’interno di un chip e quali innovazioni hanno portato i grandi vendor negli ultimi tempi: l’alta velocità di comunicazione, l’elevatissimo grado di integrazione, la possibilità di ridurre il numero di componenti su una scheda elettronica digitale. Nei prossimi articoli vedremo anche come fare per programmarli: il VHDL, il Verilog, i software messi a disposizione dai vendor. L’FPGA non avrà più segreti per noi!
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1757 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Complimenti. Un articolo molto interessante e dallo stile chiaro e leggibile. Mi auguro di vedere presto i prossimi con la programmazione.
Concordo con la precisazione che l’FPGA sia dedicato ad applicazioni professionali, e non hobbystiche, almeno dato il costo di una scheda di sviluppo. Ho dato anche un’occhiata anche ai link proposti e devo dire che l’attenzione, in generale, è rivolta alla tecnologia, cioè cosa sono e come si usano questi prodotti.
La tua precisazione, invece, mi stimola una riflessione: per quali tipi di applicazione si usano? Forse ci vorrebbe un articolo dedicato, ma potremmo comunque approfittare di questi commenti per discuterne.
Per quanto ne so l’FPGA è usato per ridurre i tempi (e i costi) di sviluppo di nuovi sistemi, ma è sconsigliato in applicazioni a larga scala dove il costo di produzione di un circuito integrato dedicato è molto minore. Il flusso di lavoro dovrebbe, quindi, combinare la progettazione su FPGA della logica per poi portare su silicio “solo” il circuito equivalente. Viceversa per applicazioni prototipali , produzioni su piccola scala, al limite custom, conviene sviluppare applicazioni su FPGA .
Articolo davvero appassionante!Aspetto con ansia i prossimi articoli!
Un’altra osservazione che mi viene in mente è relativa al concetto di tempo di elaborazione. Come giustamente fai notare, questo è legato ai tempi di transito dei segnali attraverso i circuiti digitali elementari di cui si compone la funzione realizzata.
Uno dei campi di applicazione di FPGA è proprio nell’elaborazione veloce di segnali: ad esempio io utilizzo un sistema di simulazione real time (di Opal-RT) basata su una FPGA della Xilinx. L’oggetto da analizzare contiene dei sottosistemi che risulterebbero complessi da simulare via software su un normale microprocessore che, con tempi di campionamento nell’ordine dei microsecondi, non riuscirebbe a garantire l’elaborazione real time.
La soluzione prevede di realizzare delle funzioni logiche in FPGA che, con i tempi di elaborazione dell’hardware (tempi di campionamento dell’ordine delle decine di nanosecondi) permettono di acquisire e processare i segnali di interesse fornendo i dati necessari alla CPU, garantendo l’esecuzione in real time.
Mi piacerebbe conoscere anche altre esperienze relative alle applicazioni di FPGA.
Se utile , potrei preparare un articolo sulle simulazioni real time.
Ti ringrazio per i complimenti innanzitutto.
In realtà ciò che dici riguardo ai costi, attualmente è vero solo in parte, ed era certamente “più vero” fino a poco tempo fa: i vendor di FPGA nel caso di produzioni su larga scala sono oramai disposti ad abbassare i prezzi in modo piuttosto “generoso”, tanto da far preferire in molte situazioni anche per applicazioni più popolari un prodotto ancora riprogrammabile e su cui sono stati già svolti tutti i test necessari, evitando di dover riprodurre un prodotto ASIC o Hardcopy su cui poi i margini di modifica in caso di problemi sono ridotti al minimo.
Le FPGA sono nate per le telecomunicazioni, ed ancor ora vengono molto usate in questi ambiti.
I campi dell’aerospazio, della difesa, automotive e ferroviario sono pieni di FPGA. Anche il Digital Processing è approdato nel mondo FPGA, per cui i sistemi radar ne fanno largo utilizzo.
Non credo di esagerare se dico che non ci sono limiti sui campi di utilizzo di un FPGA.
Considera che una Altera Cyclone IV attualmente si aggira, come costo sul singolo pezzo, sui 200-300 dollari, per cui nel caso in cui non si abbiano grandi pretese in termini di prestazioni e affidabilità (anche se ti assicuro che la Cyclone permette comunque di fare grandi cose) si potrebbe optare per questa soluzione altamente economica. Ovviamente valgono gli stessi discorsi se si parla degli altri vendor, quali Xilinx e Lattice ad esempio.
In un precedente lavoro che ho fatto, l’FPGA era su una scheda elettronica montata su un radar. Il radar aveva il compito di monitorare delle specifiche zone e verificare che oggetti di dimensioni specifiche non invadessero la zona da monitorare. Immagina ad esempio dei binari ed una galleria da cui possono cadere massi proprio sui binari.
L’FPGA aveva il compito di temporizzare i movimenti del radar, ricevere dati provenienti dal radar (attraverso degli AD Converter), elaborarli, inviarli se necessario a delle memorie di appoggio, oltre ad alcuni servizi accessori (Interfacce con PC per test, controllo delle alimentazioni, …). C’era anche un’interfaccia seriale per comunicare con un PC per ricevere le configurazioni e per inviare gli esiti delle elaborazioni.
In un altro lavoro invece l’FPGA aveva il compito di intercettare un flusso dati Ethernet per fare uno zero-padding sui pacchetti che avevano lunghezza minore di 64 byte.
Ma quindi sarà una serie?
In quante puntate?
Di cosa parlerete nello specifico?
Ci sarà il monotematico alla fine?
Devo dire che FPGA e un altro paio di argomenti latitavano su questo blog e sono molto felice che questi stiano diventando sempre più casi isolati 😀
Complimenti!
Posso fare solo un’osservazione? Più che altro una domanda: come mai questo corso non partecipa al contest? Avrebbe potuto fare tanti punti.
Non so, io penso che non avrei scelto la stessa cosa.
Sì, sarà una webnovela, stimata per ora in 10 puntate. Vi anticipo che il prossimo argomento tratterà i vendor di FPGA che vanno per la maggiore: Xilinx, Altera e Actel. Per gli altri articoli non vi anticipo nulla, anche per lasciare un minimo di suspense…
Sono un nuovo acquisto qui, non so ancora come funziona il tutto, diciamo che quando ho pubblicato questo articolo non sapevo neanche dell’esistenza di questo contest… Sto provvedendo ad iscrivermi, anche se mi sono ritrovato in classifica con 30 punti. Spero di essere competitivo 🙂
Grazie per l’apprezzamento, mi impegnerò per mantenere un livello apprezzabile per i prossimi articoli!
Ottimo!
Attendo i prossimi allora 🙂
Ottimo articolo introduttivo.
Sul fatto che le FPGA non sono adatte al mondo hobby non sono d’accordo. Tutti i vendor che hai citato, hanno dei software di sviluppo che permettono di fare sistemi completi anche se non si conosce un linguaggio descrittivo come verilog e vhdl. Per via grafica si possono comporre sistemi semplicemente includendo delle periferiche già pronte e collegandole sempre per via grafica (Vedi Qsys). Ci sono una moltitudine di periferiche, che vanno dalle semplici interfacce seriali, spi, 232 ecc, fino processori completi e personalizzabili (Vedi NiosII), passando anche per periferiche dedicate alla gestione di flussi multimediali (Vedi la Vip di altera). E’ chiaro che per sfruttare al meglio le potenzialità di questi dispositivi è necessario conoscere, ed avere esperienza, con i linguaggi di descrizione hardware. Tutto il gioco si conclude con la generazione del file di programmazione del dispositivo che indica come devono essere connesse le risorze interne al dispositivo per rispecchiare ciò che abbiamo scritto in verilog o in vhdl. Il costo di un kit di sviluppo non è così elevato visto ciò che ci viene fornito. Una Terasic DE0-nano costa 80 dollari e poco di più una DE0. Se poi cerchi su ebay trovi schede a costi anche inferiori (ovviamente provenienti dalla cina). Se paragoniamo questi costi con quello di un kit arduino, a mio parere non c’è confronto. Arduino e simili sono dei giocattoli (Non odiatemi 🙂 ). Se vogliamo farci da soli la nostra scheda i costi dei singoli dispositivi sono molto più bassi di quello che hai indicato. Una cyclone IV (FPGA Altera EP4CE15E22C8N ) la prendi da RS a meno di 30 euro. Considerando che RS, farnell, ecc, facendo magazzino, i loro prezzi sono anche 3 o 4 volte superiori a quello che realmente costano i dispositivi. Un mio vecchio progettino, realizzato ma mai pubblicato, includeva anche una actel A3P250 pagate 8Euro l’una. A mio parere direi che le FPGA sono più che adatte anche al moldo Hobby. Anzi forniscono un ben più ampio spettro di intervento dei suoi aspetti progettuali e realizzativi. In tutte le fasce di conoscenze che si possono trovare in questo ambiente. Non escludo che ci saranno a breve degli strumenti software che permetteranno di utilizza schede con FPGA con la semplicità con cui si utilizzano schede Arduino.
Saluti
Mino
A tutto quello che dici, ho già risposto con i successivi articoli.
Non volevo fare delle anticipazioni per tuoi prossimi articoli ma giustificare il fatto che non sono d’accordo con quanto scritto nell’articolo e nei commenti.
Saluti
Mino
Scusa, non mi sono spiegato bene, ho già detto tutto quello che dici nei successivi articoli che ho già scritto in quest’ultimo anno e mezzo dopo di questo e puoi leggerli. Mi trovo d’accordo con quello che dici, in parte, ma credo di aver chiarito tutto.