FPGA più economici? [chiuso]


44

Quanto costano gli FPGA? So che sono più costosi dei microprocessori con capacità comparabili, ma mi chiedo se esistano FPGA che potrebbero contenere un soft core Microblaze con Linux, lasciando le porte disponibili per l'implementazione della funzionalità DSP (codec multimediali, ad esempio) a un costo competitivo con , diciamo, un Cortex A8 ($ 20-30 in qtà. ~ 100).

(Mi scuso se la mia terminologia non è idiomatica, cioè è sbagliata. Si prega di commentare con correzioni o modificare direttamente.)


(spina spudorata) la radio GNU (USRP2) usa un AEMB in bundle con un gruppo di blocchi DSP. Fa davvero bene la radio definita dal software - aeste.my/node/29
sybreon

@sybreon Stranamente sto usando USRP2 per il mio progetto Senior Design - Nice
onaclov2000,


Risposte:


23

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


23

Quanto costano gli FPGA? Secondo Newark, i FPGA più economici sono circa $ 10 (il ciclone Altera di fascia più bassa e Xilinx Spartan di fascia più bassa). Potrebbero avere una capacità sufficiente per eseguire una semplice CPU a 8 bit.

Come ci si potrebbe aspettare, anche le CPU semplici (cioè senza MMU) a 32 bit richiedono circa 4 volte le risorse FPGA di una CPU a 8 bit. Gli FPGA con risorse a malapena sufficienti per eseguire una CPU a 32 bit così semplice costano circa $ 14. La mia comprensione è che uCLinux è stato portato su alcune di queste CPU soft FPGA (come NIOS II / e) - potresti trovare uClinux adeguato ai tuoi scopi.

Linux a tutti gli effetti richiede una CPU con una MMU (come NIOS II / f). Una CPU a 32 bit con una MMU richiede circa 4 volte le risorse FPGA di una CPU a 32 bit senza una MMU - le ragioni di ciò non sono così evidenti.

Per quanto ne so dalla pagina Xilinx Microblaze , la CPU soft Microblaze funziona solo con FPGA Xilinx.

Linux è già stato portato su diverse altre soft CPU. Se si desidera eseguire Linux su FPGA di altre società, è possibile esaminare le porte Linux elencate in "Core CPU per FPGA" .

Molte di queste CPU morbide - inclusa una MMU - si adatteranno su un Xilinx Spartan XC3S400A ($ 17 da Avnet).

Ho sentito che alcune CPU soft a 32 bit - inclusa una MMU - sono piuttosto facili da configurare come "dual core" su un chip FPGA da $ 20. Quelli che seguono "Jan's Razor" potrebbero invece tentare di spremere in una dozzina di CPU a 8 bit sullo stesso chip.


1
Esistono implementazioni Open Source di Microblaze (come aeMB - opencores.org/project,aemb ) che dovrebbero essere portate su altri FPGA (non Xilinx).
Mrkj,

(spina spudorata) AEMB è noto per eseguire uC / OS-II anche in FPGA Altera - aeste.my/node/7
sybreon

11

Generalmente FPGA costerà molto di più rispetto allo stesso dispositivo implementato in silicio, perché c'è molto overhead a causa della riconfigurabilità. Quindi no, non troverai un FPGA per $ 20-30 che ha la stessa potenza di una CPU ARM che costa $ 20-30. Ora, potresti trovare un FPGA per $ 20-30 che può eseguire attività specifiche molto più velocemente di quel ARM $ 20-30, ma non sarà in grado di batterlo in attività di elaborazione generali.

Questo è il motivo per cui è comune vedere persone attaccare un microcontrollore e un FPGA sulla stessa scheda. ARM e PPC sono i due più comunemente combinati con un FPGA.


4
Capisco che non troverò un FPGA che batte un micro su costo e prestazioni, ma sembra che potrebbe esistere un FPGA che batte il costo di micro + FPGA, fornendo allo stesso tempo prestazioni simili, tutto in un chip. Ha senso?
spazzato

10

Quando si acquista un FPGA, non dimenticare di tenere conto del costo della memoria Flash che contiene il programma FPGA. È facile da dimenticare.

Come progettista di PCB, gli FPGA sono un milione di volte più facili da disporre, poiché è possibile riorganizzare la piedinatura come desiderato anche dopo aver realizzato la scheda. Vi sono potenziali risparmi sui costi associati al minor numero di layer necessari per instradare un FPGA.

Per gli altri che fanno la cacca FPGA contro le prestazioni della CPU, sono d'accordo in una certa misura. Un vero processore sarà più veloce nel fare cose reali rispetto a un FPGA programmato per agire come un processore.

Questo non è proprio giusto per un FPGA, però. Le CPU sono "limitate nel tempo"; se vuoi fare più lavoro, hai bisogno di più tempo o di un processore più veloce. Gli FPGA sono generalmente "limitati all'area"; se vuoi fare più lavoro, hai bisogno di un FPGA più grande.

Ad esempio, supponiamo di creare un analizzatore spettrale che gestisca un segnale audio mono. Diciamo che impiega il 70% del tempo della CPU e sei già più veloce della CPU. Non è possibile aggiungere il supporto stereo, poiché la CPU non è abbastanza veloce per eseguire il secondo canale prima di dover gestire nuovamente il primo canale. Ma se stai utilizzando il 70% dell'FPGA, puoi semplicemente acquistare un FPGA più grande e inserire il secondo canale. Non è necessario andare più veloce.

Ora, se portassi il problema nel dominio del Digital Design, usando macchine a stati finiti e Datapaths invece di una CPU, scommetterei dollari in pesos che l'FPGA distruggerà la CPU, a scapito della crescente complessità nella progettazione.


1
Esistono anche FPGA basati su flash (ACTEL) e alcuni basati su SRAM con flash incorporato (Xilinx Spartan3AN, LatticeXP).
sybreon,

Puoi anche acquistare una CPU più veloce e inserire il secondo canale. Non è un buon confronto.
user253751

@immibis Quello che stai dicendo è in realtà lo stesso del punto di ajs410: un FPGA non deve essere più veloce , deve essere più grande . Se vuoi andare con le CPU, quello che puoi fare è portare una seconda CPU, purché la natura dell'elaborazione sia parallelizzabile.
Johan Boulé,

7

Xilinx ha recentemente concluso un accordo con ARM, che consentirà loro di inserire core ARM su FPGA. Sfortunatamente, saranno disponibili solo per i dispositivi Virtex di fascia alta.


3
Molto interessante
spazzato via

2
Penso che ti sbagli sui core ARM che appaiono solo nei dispositivi Virtex. Il comunicato stampa non dice molto, e non credo che si possa dedurre dal fatto che i core PPC appaiono solo nelle parti V2P, V4FX e V5FXT. Il sito Web di Xilinx menziona i dispositivi ottimizzati per "prestazioni, costi e potenza" (vedere xilinx.com/technology/roadmap/processing-platform.htm ); noterai che il costo non è mai un vettore di ottimizzazione per la serie Virtex.
Mrkj,

1
Inoltre, ARM non è mai menzionato nell'annuncio FPGA della serie 7 ( xilinx.com/technology/roadmap/7-series-fpgas.htm ) e non c'è parte V6 o V7 con un PPC. La mia opinione su tutto ciò è che si stanno allontanando dai processori integrati nelle parti ad alte prestazioni.
Mrkj,

3
Immagino che il risultato di questo affare sia lo Zynq ?
Janus Troelsen,

4

I prezzi FPGA sono strani: una volta che parli con un distributore in franchising, scopri che i prezzi quotati su Digikey, Mouser ecc. Possono essere parecchie volte più alti di quello che possono essere ottenuti. Il più economico di cui sono a conoscenza è Lattice EC1 in QFP100 per un po 'meno di GBP3 in quantità di vassoi. Aggiungi circa 0,40 GBP per una memoria flash SPI.

Mettere le CPU nel tessuto FPGA non è generalmente un buon valore in termini di costo del silicio, ma altri fattori come l'accoppiamento stretto tra CPU e FPGA e un numero ridotto di pacchetti può alterare il compromesso ottimale rispetto all'utilizzo di una CPU separata.


2
Punto estremamente positivo. Vedi anche questo post [ element14.com/community/thread/2434] di un dipendente Farnell che suggerisce che i chip Altera Cyclone IV sono disponibili per un minimo di $ 3, mentre il prezzo quotato più economico di Farnell sulla loro pagina web per loro è più vicino a $ 20. Ora, chiaramente la maggior parte delle persone non acquisterà in quantità di 250.000, ma presumibilmente quei distributori lo sono, e potrebbero essere disposti a scambiare per un po 'meno di un markup del 566% ...
Jules,

3

La mia ipotesi migliore finora è qualcosa come una Xilinx XC3S400A, che costa circa $ 16, ma non sono sicuro che possa gestire un MicroBlaze.


3
Da una rapida occhiata online, un nucleo microblaze userebbe circa la metà delle celle logiche in un XC3S400A. Inoltre, Cortex A8 funzionerebbe a 600 MHz - 800 MHz, mentre la micro-fiammata sull'FPGA funzionerebbe a 200 MHz - 300 MHz.
davr

Quindi sarebbe ~ 3 volte più lento (supponendo che il sistema sia associato al processore), ma costi comparabili, lasciando in eccesso le porte per qualcos'altro.
spazzato via

1
Questo è solo il confronto della frequenza, il modo più semplice per confrontare la velocità di elaborazione effettiva. Non ne ho abbastanza conoscenza, ma ad esempio è possibile che alla stessa velocità di clock, un ARM sia due volte più veloce di un Microblaze
davr

1
Sì, abbastanza giusto. Una prima approssimazione, immagino.
spazzato

3

Dipende molto dalla tua applicazione. L'applicazione ideale qui consisterebbe in una minuscola parte di controllo (che si adatta a un microblaze / NIOS) ma una parte computazionale che può beneficiare dell'enorme parallelismo dell'hardware personalizzato. In questi casi, anche un FPGA di dimensioni modeste (spartano o equivalente) può facilmente superare qualsiasi CPU di uso generale. Ma questo è il caso migliore (anche se molto realizzabile in molte app del mondo reale), se la tua app ha una parte di controllo significativa o non è facilmente mappabile sull'hardware, spendere i tuoi soldi su hardware fisso (cioè un ARM) è probabilmente meglio.



0

Poiché molti CPLD attuali di Altera sono FPGA con memoria di configurazione integrata, è possibile ottenerli per http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp


0

prima di tutto vuoi eseguire linux su un core. Che ne dici di eseguirlo su un ARM come alcuni altri suggerimenti in questo thread. Gli MCU sono bravi a far funzionare il sistema operativo, ma si spreca una sorta di risorsa FPGA nella creazione di un MCU. Gli MCU possono adattarsi a un'area di silicio molto più piccola quando sono progettati su misura per questo e possono quindi essere prodotti in modo più economico. Poi ci sono altre spiegazioni sul fatto che gli FPGA sono davvero bravi nell'elaborazione parallela, tipo vero, anche se le operazioni logiche non sembrano esattamente l'elaborazione. Come hai sottolineato, i potenti FPGA diventano costosi e anzi assetati di energia. Quindi una piattaforma a basso costo in grado di eseguire Linux e DSP che necessitano dei vantaggi del parallelismo per un IO veloce ecc. Dai un'occhiata al processore parallelo XMOS

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.