Di recente ho partecipato a una conferenza online su FPGA con il keynote "Se il tuo prossimo processore sarà un FPGA".
Fondamentalmente, l'FPGA ha senso in qualsiasi applicazione che richieda flussi di lavoro altamente parallelizzabili, un esempio utilizzato è stato l'analisi delle immagini Full HD per trovare i pedoni, ad esempio.
La cosa che devi ricordare è che devi inizializzare il tuo FPGA ogni volta che si accende, penso che Xilinx dell'FPGA (che ha un core ARM su chip) sia una buona opzione, ma probabilmente costoso. Anche esaminare quelli Actel con il flash on-chip può essere utile.
Per quanto riguarda le prestazioni, la società BDTI ha fatto un benchmark in calcoli altamente paralleli in cui ha visto circa 40 volte il guadagno delle prestazioni passare a un FPGA. La cosa interessante è che hanno confrontato i chip con costi simili (23 $ contro 28 $ credo).
Ecco i link che potrebbero interessarti:
Guida tascabile alla selezione del processore
Archivi di conferenze FPGA (registrazione gratuita, ma disponibile solo per circa 6 mesi dopo questa risposta)
Non è possibile confrontare realmente le prestazioni dei sistemi basati su FPGA basati su statistiche MIPS o Mhz. Il modo in cui un FPGA viene utilizzato per elaborare determinate attività è semplicemente troppo diverso da un microcontrollore. La progettazione del firmware per un FPGA è qualcosa che devi fare usando VHDL per esempio, che è simile a Assembly. Un livello di trasferimento del registro (RTL) di astrazione. Alcuni ambienti vengono prodotti per fornire maggiore astrazione, ma questi sono ancora spesso specifici del fornitore. Wikipedia ha una buona panoramica delle lingue disponibili per programmare il codice FPGA:
Wikipedia: Programmazione FPGA
Wikipedia: progettazione di circuiti digitali
Se hai soldi da bruciare, ad esempio puoi utilizzare i sistemi LabView per creare sistemi di misurazione in tempo reale basati su FPGA. Questi dispositivi necessari per questo sono in un prezzo completamente diverso (1500 $ e oltre), ma aprono il design FPGA a un pubblico molto più ampio con la programmazione grafica.
Sempre più fornitori stanno fornendo schede che combinano microcontrollori come un chip ARM con un FPGA per fornire specifiche funzionalità aggiuntive e potenza di elaborazione parallela. Un esempio di tali prodotti è disponibile qui: EmbeddedARM: serie FPGA