FPGA vs CPU

Ciao a tutti. Mi stavo interessando di CPLD e FPGA, giusto per farmi un po' di cultura e vedere che cosa posso fare con questi componenti. E per l'appunto mi stavo chiedendo quali vantaggi/svantaggi offre un FPGA rispetto ad una CPU o ad un microcontroller e viceversa. In un caso il componente esegue i suoi compiti "interpretando" delle istruzioni sowtware, nell'altro caso "cablo" un circuito che esegue le operazioni richieste. Scusate se non vedo più in la del mio naso ma non riesco proprio a capire cosa mi farebbe propendere a scegliere una FPGA piuttosto di un uC !

Reply to
ColOfAbRiX
Loading thread data ...

Scusate, mi sono accorto di una grossa imprecisione. Ovviamente un PC non potrebbe esistere se fatto su FPGA..... La mia domanda era rivolta pensando ai circuiti che mi faccio in casa. Per fare un esempio concreto: se dovessi fare un voltmetro digitale mi servirebbe un adc, un display e... cosa ci metto ? Un microcontroller o un CPLD (forse una FPGA è un po' troppo) ? Che vantaggi ho con l'uno e con l'altro ?

Reply to
ColOfAbRiX

ColOfAbRiX ha scritto:

fare

Secondo me stai sbagliando l'approccio.

*Prima* ti devi studiare gli fpga ed i microcontrollori, *poi* la domanda trovera' risposta spontanea.

Altrimenti qualcuno deve scrivere un po' di pagine per darti la pappa pronta :))

--
================================================================
Alberto Rubinelli - A2 SISTEMI news.aioe.org ThunderBird 2.0.0.4
Via Costantino Perazzi 22 - 28100 NOVARA - ITALY
Tel 0321 640149   Fax 0321 391769   BBS 0321 392320
Mail: alberto@oldcomputers.de
skype: albertorubinelli  ICQ : 49872318
Visita il mio museo di computers: http://www.oldcomputers.it
================================================================
Reply to
Alberto Rubinelli

Alberto Rubinelli ha scritto:

fare

Fatto !! (non da me ma da farelettronica, l'anno scorso mi pare, vedi se trovi)

mandi

Reply to
-internet +cabernet berto

Sulu! Fuoco coi phaser su ColOfAbRiX che ha violato la prima direttiva in data stellare ven 22 feb 2008 01.00.00a dicendo:

Le applicazioni in cui puoi permetterti una scelta del genere sono IMHO pochissime: FPGA e uC non sono "due componenti diversi per fare le stesse cose".

Inoltre a voler estremizzare, una FPGA può fare tutto quello che fa un uC semplicemente implementando il micro in questione al suo interno. Il contrario non è fattibile se non con uno spreco di risorse immane.

Reply to
Luca

I uC li conosco, li ho studiati e li uso da tempo. FPGA e CPLD invece ho cominciato da poco ad affrontarli e ho cercato parecchie informazioni e ora mi sto studiando qualcosa della Xilinx e ho gia visto alcuni libri interessanti.

*Credo* di aver capito perfettamente cosa fa un FPGA ma la domanda rimane e mi sono detto di chiedere a qualcuno per evitare di studiarmi una cosa che non so se mi tornerà mai utile.

Non sono abituato ad avere la pappa pronta ;) vanno benissimo anche dei link o titoli di libri

Reply to
ColOfAbRiX

Sisi! Conosco gli FCCM. Forse il mio errore è il considerare gli FPGA in un ambito di applicazioni ristretto ?

Mi sto progettando un generatore di funzioni digitale per il mio laboratorio casalingo, e pensavo di implementare l'unità di controllo tramite un uC. Fino qui tutto a posto. Poi mi sono ricordato dell'esistenza di FPGA, CPL e compagnia, ma non ne sapevo abbastanza per poter dire se mi sarebbero serviti o no. Così ho cominciato a studiarli e da quello che ho capito mi risulta che posso fare questa unità centrale per il gdf anche con una FPGA. E ora che faccio? Cosa scelgo? uC o FPGA? La mia indole mi impone gli FPGA perchè sono una cosa nuova e interessante, ma non è detto che sia la soluzione migliore.

Reply to
ColOfAbRiX

Se credi che prima o poi ti capiterà di gestire elaborazioni complesse su dati che viaggano a velocità enormi (>100MHz) e magari su più flussi, gestire protocolli veloci e intricati o fare un FFT in qualche us, allora ti potrebbe servire una FPGA. In caso contrario ti bastano microcontrollori e microprocessori. Gli FPGA sono componenti piuttosto "estremi", non è che li si usi per fare quello che fai con un PIC...

A.D.

Reply to
A.D.

Sulu! Fuoco coi phaser su ColOfAbRiX che ha violato la prima direttiva in data stellare ven 22 feb 2008 01.00.00a dicendo:

Mah diciamo che non sono proprio componenti che trovi nelle patatine, ma comunque hanno il loro perchè :-)

Guarda, con buona approssimazione puoi usare la seguente regola: se puoi scegliere se usare un micro o una FPGA, è perchè non ti serve una FPGA ;-)

Riguardo al fatto che è una cosa nuova e interessante, beh... la curiosità è sempre una motivazione è validissima, io sto zitto che è meglio :D (questo è il mio primo hello world con una FPGA:

formatting link
man.org/led1.wmv dopo due giorni che ci cazzeggiavo :-) )

Reply to
Luca

Un bel giorno ColOfAbRiX digitò:

La regola a spanne è che se un UC/MC/DSP è fatto apposta per fare una determinata cosa, è meglio usare quello. La prima fase di selezione è sempre quella di vedere se c'è un UC/MC/DSP che ha tutte le features che servono per la tua applicazione; se non c'è, allora sì che bisogna operare la scelta fra una FPGA oppure un processore "subottimo" accompagnato con qualcos'altro.

Questo "rasoio" è tanto più valido quanto più cresce il numero di pezzi che devi fare (e quindi quanto più i costi di sviluppo diventano irrilevanti rispetto a quelli di produzione), ma è piuttosto accurato anche per singoli pezzi.

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

Grazie! Ora ho una buona indicazione!

Molto carino! A questo punto devo chiederti che componente hai usato. Penso che il mio hello world sarà per l'appunto il gdf. E a quel paese il uC :D O forse no.... mmm.... vedremo il tempo che ho a disposizione

Reply to
ColOfAbRiX

Si, erano anche queste le informazioni che cercavo. Ora ho chiarito alcuni aspetti. Almeno potrò scegliere con più attenzione. Grazie!

Reply to
ColOfAbRiX

Questa è veramente la regola aurea! La stavo per scrivere anche io... :-)

Carino. Visualizza anche bitmap, o solo motivi pre-codificati?

A.D.

Reply to
A.D.

E' una Altera CycloneII (EP2C5) ... per la precisione, una mini board con questo componente, che si chiama Pluto3

formatting link
board_plutos.html)

Tutto il gestore del display in multiplex, il pwm, il frame buffer, la UART e le frattaglie varie stanno tutte sulla FPGA, occupando il 14% circa di risorse. I soli componenti esterni sono i transistor di righe e colonne...

Reply to
Luca

Visualizzo uno stream di dati passati tramite seriale. Ho scritto infatti un piccolo driverino per windows che "pubblica" sul display il rettangolino di schermo sotto al cursore... =E8 molto simpatico :-)

Comunque l'oggetto era nato per essere memory mapped, quindi viene visto dall'esterno esattamente come una ram, con bus indirizzi, dati, write enable e clock. La UART l'ho aggiunta in seguito... costa poco aggiungere componenti quando lo puoi fare semplicemente aggiungendo righe VHDL :-))))

Reply to
Luca

Mi stai mettendo curiosità. Come si fa mappare in memoria il dispositivo ? Ho qualche idea ma non mi convince

Reply to
ColOfAbRiX

Sulu! Fuoco coi phaser su ColOfAbRiX che ha violato la prima direttiva in data stellare dom 24 feb 2008 05:57:27p dicendo:

E come vuoi mapparlo? Come tutti i dispositivi memory mapped :-))

Devi decodificare il bus indirizzi in modo da generare un segnale di enable quanto l'indirizzo sul bus è nel range che ti interessa. I segnali degli indirizzi a partire da A0 in su li colleghi ai rispettivi Ax sul dispositivo. L'Enable del dispositivo è quello generato dal decoder descritto qua sopra, write, read, e bus dati li colleghi dritti.

Questo nel caso il dispositivo non richieda wait states, altrimenti le cose si complicano. Ma con una FPGA che abbia un minimo di risorse, puo inserire nel dispositivo un bell'IP core PCI, e fine dei problemi ;-)

Reply to
Luca

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.