Home
Accesso / Registrazione
 di 

FPGA..VHDL...e tool di sviluppo.. vi piacerebbe parlarne?

18 risposte [Ultimo post]
ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206

Ciao ragazzi,

Come spesso accade discutendo su alcune questioni nascono nuovi topic...questa volta addirittura ci è venuto in mente di chiedere un parere generale per quanto riguarda l'apertura di una nuova sezione del forum che riguardasse più da vicino i Field Programmable Gate Array..o FPGA, nonchè i linguaggi e i tool di sviluppo ad essi annessi...vi dice niente la nuova Xilinx Virtex 7 con processo tech a 22 nm?? :)

Vi piacerebbe discutere anche di progetti da voi sviluppati o da sviluppar con tali dispositivi..che spesso e volentier vengono adottati come "supporto" di elaborazione a processori e micrco C. tanto amati ?

Grazie..rispondete numerosi!

Ciao

Marco

ritratto di vijay deep bhatt
Offline
Titolo: User+
Utente+
Ultima visita:
2 anni 27 settimane fa
Utente dal: 14/09/2011
Messaggi: 16
FPGA sono sempre più potenti

FPGA sono sempre più potenti e con quella di più dalla portata dei hobbist. il costo è alto e molti chip necessari per farli funzionare. : (
Micros ancora continuerà ad essere l'amore.
FPGA sono utili solo in applicazioni industriali (mi sento).
Ho fatto projcts piace fare nuove core IP per la compressione delle immagini, ma sono cose professionali e hanno bisogno di tempo e denaro. non per imparare!
Io preferisco micro su FPGA. sono facili ed economici per la costruzione del progetto.
Ma se qualcuno ha bisogno di aiuto nel fare progetti si può imparare di più insieme:)

ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206
Certo... so che è un ambito

Certo... so che è un ambito molto più professionale e meno "amatoriale" questo si..però diventa così se ti metti nell'ottica di dover realizzare progetti grossi e pesanti..
Ma perchè? In realtà possiamo anche utilizzarle per fare dei progetti più semplici, ovviamente senza comprare per forza FPGA che costano un occhio della testa!

Ad esempio si possono procurare FPGA vecchie della Xilinx o altre marche per poter realizzare piccoli controlli elementari ad esempio su ADC o DAC.. e quindi volendo si può imparare anche quest'altra "strategia"...!

Mi sa che vi devo invogliare un pò :)... Però,a parte gli scherzi..in questo topic vorrei soltanto che si esprimesse la volontà di poter avere una sezione su FPGA oppure no tutto qui..senza che ci facciamo grosse considerazioni al contorno... sarebbe davvero lungo il discorso da fare... basta seguire avere in mente un pò di differenze tra l'utilizzare FPGA o micro..

Per le FPGA:
1) Logica riprogrammabile con semplici passi
2) Possibilità di programmarle attraverso tool di sviluppo sia grafici che su codici (VHDL o schema a blocchi)
3)Le FPGA sono più per "critical application " ossia quelle applicazioni in cui si vuole che il dispositivo abbia le prestazioni top per una determinata funzione..
4)possibilità di sfruttare un numero elevato di pin I/O
e tante altre..

Per quanto riguarda i micro controllori..siete sicuramente più bravi di me in parecchi..
ma giusto per precisare la differenza forse più evidente, si può dire che il micro controllore è più orientato a realizzare funzioni generiche e quindi, ad esempio possiamo utilizzarlo per realizzare ANCHE la stessa funzione che vogliamo realizzare con l'FPGA, ma sicuramente le prestazioni specifiche per tale app. possono risultare molto inferiori..

Per sottolineare ancora di più questo aspetto, vi faccio un esempio che mi riguarda da vicino: pensate nell'azienda in cui lavoro, nonostante si utilizzino processori ad elevate capacità di calcolo (powerPc), vengono comunque utilizzate le fpga di ultima generazione in quanto soltanto con esse si riescono ad ottenere altissime prestazioni, ad esempio in termini di banda dati, se non eccezionali... quindi essenzialmente il sistema utilizza le FPGA per fare "i conti" e trasmettere i dati, mentre il processore "resta a guardare" e controlla l'operato delle board dati..

Siamo ovviamente in ambito industriale...ma tornando al riferimento di prima...l'adc sarebbe la nostra board dati...mentre l'fpga funge da controllore.
So che ambedue le operazioni possono essere realizzate talvolta dall'utilizzo di uno dei più moderni micro controllori, ma comunque un buon trade-off prezzo/prestazioni lo si potrebbe realizzare anche con l'architettura suddetta...

Magari un giorno riusciro a fare una prova di elaborazione e comparazione tra i due sistemi suddetti..provando effettivamente quali possono essere i trade off da raggiungere nei due casi... evidenziando quali sono gl'aspetti critici che si possono massimizzare con una delle due soluzioni, rispetto a quelli che invece si possono ottenere con l'altra...

Magari sarebbe carino un progetto del genere..non credete? e magari svilupparlo anche in parallelo... Kinetis vs Xilinx + ADC e sensore !!
Scusate mi son fatto prendere la mano.. però credo che ne valeva la pena fare un pò di chiarezza sull'intento del post..!

Ciao

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
6 settimane 6 giorni fa
Utente dal: 21/03/2011
Messaggi: 191
Ciao a tutti, si, secondo me

Ciao a tutti,

si, secondo me hai fatto bene ad aprire questo nuovo post nel forum, un po' perchè non ce ne sono di post che parlano di FPGA e un po' perchè anche io ho avuto modo di usare le FPGA e sono veramente interessanti.

Credo che la differenza tra microcontrollore/microporcessore e FPGA è un po' la stessa che possiamo avere tra microcontrollore/microprocessore e DSP: entrambi sono dispositivi di calcolo, programmabili e a stato solido ma i primi sono "ad uso generico" (anche se forse questa affermazione è più giusta per i microprocessori che per i microcontrollori) mentre i secondi sono stati progettati apposta per eseguire determinate operazioni; è ovvio che i microprocessori o i micorcontrollori riescono, se opportunamente programmati, ad eseguire i calcoli eseguiti dai DSP ma sicuramente questi ultimi, essendo stati progettati appositamente, li eseguono con tempi minori e con minor programmazione (per esempio i DSP hanno istruzioni dedicate per i calcoli matriciali). Analogo discorso vale per le FPGA, infatti queste hanno una struttura ancora più rigida dei DSP ma sono progettate appositamente per implementare filtri, convertitori AD, FIFO o altro (insomma schemi funzionali prestabiliti e conosciuti) con poche righe di codice o addirittura con la programmazione visuale (quest'ultima cosa poi dipende dall'IDE di sviluppo più che dalla FPGA).

C'è da dire che, nonostante queste differenze, il mondo dei dispositivi a stato solido sta collimando, infatti si vedono sempre più processori con all'interno dei DSP dedicati ai calcoli o FPGA con all'interno dei veri e propri microprocessori. In un futuro si troveranno sicuramente dispositivi in cui all'interno ci saranno microprocessori, DSP e FPGA e saranno gestiti in modo che ognuno esegue la sua funzione specifica.

ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206
In futuro?? nella mia azienda

In futuro?? nella mia azienda si utilizzando FPGA..microprocessor e microcontrollori (come scrivi tu) e poi se proprio servono anche DSP..(ma secondo me sono inutili viste le fpga e micro coinvolte)..e credo le usi già da almeno 5 -6 anni..c è da dire si che è una grossa multinazionale ma comunque è un passo che è stato già fatto da tempo..
Ovviamente non vi dico la complessità quanto sia elevata.. vi dico solo che mi pare l'ultima board dati abbia all'incirca 14 layer o 16 nn ricordo bene..quindi ..fatevi 2 conti e immaginate quandi dispositivi ci siano sopra..tra cui quelli citati..!

Ad ogni modo il prossimo passo sarà quello di proporre un topic in cui si parli di un vero e proprio progetto su fpga.. così almeno terminiamo le tante approvazioni che abbiamo fatto in tutte le salse ;)..il messaggio è arrivato anche a Emanuele che con un messaggio mi ha dato l'OK per lanciare queste discussioni..!

Ciao

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
6 settimane 6 giorni fa
Utente dal: 21/03/2011
Messaggi: 191
Io intendevo un unico chip in

Io intendevo un unico chip in cui all'interno sono presenti microprocessore, FPGA, DSP e altre periferiche utili ad un progetto embedded. Poi internamente in automatico alcune operazioni verranno gestite da un componente piuttosto che da un altro.

Dire che i DSP siano quasi inutili quando si ha l'FPGA non sono proprio d'accordo: è vero che le operazioni sono simili ma non uguali: abbiamo l'FPGA che ha una struttura più rigida rispetto al DSP. Se si ha l'esigenza di implementare per esempio un algoritmo che decodifichi un nuovo tipo di codifica audio, con l'FPGA non so se sei in grado di farlo, con i DSP sicuramente si.

ritratto di Mino_73
Offline
Titolo: User++
Utente++
Ultima visita:
7 settimane 4 giorni fa
Utente dal: 27/06/2008
Messaggi: 66
Damanda!! Non capisco in base

Damanda!!

Non capisco in base a cosa affermi che le FPGA sono dei dispositivi con una struttura Rgida. Considera che in uno di questi dispositivi sono presenti:

Registri
LUT
memoria - Che puoi configurare come FIFO, RAM a più porte e con clok diversi
MAC - Moduli DSP composti ma moltiplicatore e sommatore
PLL
Tranceiver
I pin possono essere configurati come LVTTL CMOS LVDS ecc ecc

Inoltre in molti dispositivi sono presenti moduli hardware che implementano interfacce standard come il PCIe ad esempio.
Tutte queste risorse sono a tua disposizione per essere utilizzate.
Tramite vhdl verilg o schema decidi come interconnettere tutte queste risorse.
Cosa vuoi di più versatile?
Questi dispositivi non sono pregettati per implementare nulla in particolare tanto meno delle semplici FIFO o solo dei filtri, non di certo degli AD al più l'interfaccia per AD, e ancora non solo schemi funzionali prestabiliti e conosciuti. Il loro obiettivo è essere il più versatili possibile.
Forse questa idea nasce da ciò che ti hanno fatto vedere all'università ma c'è molto, molto di più.
Anche il fatto di utilizzare i tool grafici a schemi limita molto l'idea delle potenzialità di questi dispositivi. Purtroppo ci sono molte idee diffuse su questi dispositivi che sono errate. Di recente mi è capitato di parlare con dei dirigenti che volevano affidare lo sviluppo di progetti basati su FPGA a dei softweristi perchè c'è l'idea, sbagliata, che il loro funzionamento sia basato su del software. Per implementare un progetto su FPGA serve una figura esperta di Hardware e architetture. Anche il modo di pensare quando si descrive un sistema non è sequenziale come quello dei microprocessori ma è parallela. I vari pezzi di codice bisogna pensarli come delle unità a se che viaggiano da soli cooperando con il resto del sistema per ottenere la funzione che vuoi.
Purtroppo non bastano due righe di codice per implementare un sistema di media complessità ne servono molte ma molte di più. I tool di sviluppo semplificano molto la cosa ma questi tool sono in realtà dei generatori di codice sorgente. Le prestazioni delle FPGA non possono essere direttamente paragonate con quelle di DSP o microprocessori. Se prendi un'architettura ARM ad esempio e la implementi su una FPGA otterrai delle prestazioni inferiori rispetto ad una soluzione asic. Così come le frequenze di lavoro non sono paragonabili a quelle delle attuali CPU. Lo scotto da pagare per questa versatilità è proprio questo. Tutte le risorse che hai a disposizione all'interno di una FPGA possono essere connesse tramite una rete di interconnessioni che sono definite dal tool di sviluppo in base al codice sorgente verilog vhdl ecc. Questo contribuisce a limitare le prestazioni in termini di frequenza massima. Se però prendi una specifica applicazione facilmente riesci ad ottenere prestazioni più elevate rispetto a sistemi asic in quanto l'architettura hw la decidi tu secondo le tue esigenze. Le prestazioni le ottieni grazie all'ottimizzazione che puoi fare, che può essere ad esempio l'incremento del parallelismo dell'architettura. Infine, e non ultimo, questa veratilità ti permette di mettere dentro lo stesso dispositivo una o più CPU, periferiche di ogni tipo e solo quelle che ti servono. questo comprende seriali controller di memoria, controller video ecc...
Ci sono ovviamente delle applicazioni che non possono essere realizzare in FPGA ma non per problemi di architettura ma per problemi di dimensioni e velocità. Specialmente in ambito video per quanto riguarda codifica e decodifica si possono avere questi problemi.
Ancora convinto che le FPGA sono dei dispositivi rigidi?

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
6 settimane 6 giorni fa
Utente dal: 21/03/2011
Messaggi: 191
Ok ragazzi, ho appreso da

Ok ragazzi, ho appreso da questa sezione che di FPGA ne so ben poco :) e quel poco che so è solo frutto di esperienze didattiche che altro. Cercherò di riaprirmi al mondo delle FPGA (mondo che tra l'altro mi aveva affascinato molto all'epoca) e documentarmi maggiormente ma soprattutto...di seguirvi in questo post: vedo che siete parecchio dentro il mondo di questi dispositivi!

ritratto di Mino_73
Offline
Titolo: User++
Utente++
Ultima visita:
7 settimane 4 giorni fa
Utente dal: 27/06/2008
Messaggi: 66
Le FPGA si stanno diffondendo

Le FPGA si stanno diffondendo moltissimo anche in ambienti non professionali
e non industriali, non è più vero che i costi sono così elevati, dispositivi
di fascia bassa hanno costi relativamente bassi si parla di una ventina di euro.
Il problema sono i distributori che hanno un ricarico enorme facendo costare una FPGA
anche 10 volte il costo reale. Provate a dare un'occhiata ai vari distributori on-line.
Personalmente ho acquistato 10 pezzi di una Actel proasic3 direttamente dal distributore e li ho pagati 7 euro al pezzo, direi che per avere accesso a questa tecnologia 7 euro si possono anche spendere. Non è necessario andare a scovare vecchie fpga nel cassetto del laboratorio. C'è da dire che ci sono molti kit di sviluppo a prezzi molto bassi considerate le prestazioni e le risorse che mettono a disposizione tali schede. Non per fare pubblicità ma le schede fornite dalla Terasic tipo La DE0 nano e La DE1, che possiedo, hanno costi limitati e c'è montato di tutto su queste schede. Ricordo di aver visto anche una bella schedina di espansione per la scheda FoxBoard che monta una FPGA dell'Actel e due banchi di memoria ram.
In un altro post accennavo al fatto che questi dispositivi hanno il grande vantaggio di essere molto versatili è come avere una scatola vuota che possiamo riempire con ciò che vogliamo. meglio di così!!
La semplicità nella loro configurazione deriva dal fatto che oggi i tools di sviluppo sono veramente evoluti e si riesce a mettere in piedi sistemi anche molto complessi con poco tempo. Vedi ad esempio il Qsys di altera con un po di click metti in piedi sistemi completi, anche Actel e credo anche Xilinx ormai hanno sistemi simili. Fino a qui la cosa è abbastanza semplice. La cosa si complica, e anche di molto, non appena hai bisogno di periferiche che non trovi già pronte nel tool di sviluppo. La descrizione a schema elettrico diventa presto lenta e pesante all'aumentare delle dimensioni del sistema. Prova ad immaginare di definire una interfaccia pci tramite schema elettrico, oppure prova a disegnare a schema anche un semplice Pic. Quindi se volete proporre un progetto anche ambizioso perchè no, proviamo!!

ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206
Concordo pienamente Mino.. il

Concordo pienamente Mino.. il mio accenno a schede "vecchiotte" era semplicemente per dire che anche tempo fa si riusciva a fare qualche bel progettino con FPGA non molto avanzate..
Comunque ho dato un'occhiata alle schede che ci hai suggerito..non sono niente male..poi a 7€ ..tanto di cappello..bravo!
Ho visto che hanno buone frequenze di lavoro( se usi bus PCI) quella che ho visto io aveva 350MHz di clock con bus PCI a 66 MHz..niente male..
ma tu hai preso quelle che includono anche il cortex M1 (tipo la M1A3P250 ?) a quel prezzo li? Perchè sarebbe veramente un'affare...
Per chi non lo sapesse è possibile avere un "soft" processor sulle FPGA..ossia sfruttare parte delle celle logiche per implementare un vero e proprio processore..(tipico esercizio che si fa ai corsi di VHDL o verilog universitari !)..ovviamente questo a discapito del totale di celle che poi potete usare per far altro..!

Sono curioso di sapere come è fatto il tool di queste schede...viene fornite con la scheda stesso o devi comprarlo a parte? Tu che metodo usi pre lo sviluppo del binario finale..mi spiego..parti dallo schema a blocchi per poi andare avanti..o parti da codice VHDL..?penso più la prima...
Ad esempio ricordo bene che il tool della Xilinx metteva a disposizione nella catena di sviluppo del codice, un "Core Generator" il quale ti permette essenzialmente di generare automaticamente un blocco che realizza una particolare funzione..pensate io usai l' ISE 2.1 ..vedete ora un pò a che versione sono arrivati..
http://www.xilinx.com/ipcenter/coregen/updates.htm

Comunque secondo me un progettino interessante..ma forse un pò troppo matematico (ditemi voi) sarebbe quello di realizzare tramite FPGA un FFT con discreta precisione...non dico di realizzare poi un analizzatore di spettro con alto dinamic range..ma potremmo divertirci un pò :) che ne pensi..?

Ciao

ritratto di Mino_73
Offline
Titolo: User++
Utente++
Ultima visita:
7 settimane 4 giorni fa
Utente dal: 27/06/2008
Messaggi: 66
Quelle che ho preso io sono

Quelle che ho preso io sono senza core M1 e comunque questo core è di tipo soft core non è hardware all'interno del dispositivo. io ho le A3P125. il prezzo di 7 euro è il loro sono i distributori che hanno ricarichi molto alti.
La frequenza di 350 MHz è la massima permessa all'interno del dispositivo ed è relativa a due registri in cascata. in pratica in una applicazione reale non ci arrivi. Il tool per lo sviluppo è Quartus II di Altera e lo puoi scaricare nella versione gratuita dal sito altera. Questa versione ha diverse cosine in meno rispetto a quella a pagamento ma la limitazione è riferita alla dimensione dell'FPGA che puoi compilare e ad alcuni tool avanzati che non ti fanno usare. Ma anche con queste limitazioni risulta veramente potente. Io nei miei progetti non uso lo schematico ma codifico tutto in verilog. Il VHDL l'ho abbandonato qualche mese fa!! Per utilizzare le risorse interne del dispositivo istanzio a livello di codice le singole periferiche secondo le mie esigenze. Spesso utilizzo il core generator per farmi dare il file verilog pronto per utilizzare le periferiche interne. prova a dare un'occhiata al sito "opencore" rimarrai stupito dal materiale che c'è in circolazione. Per il progetto può essere un'idea ma perchè lasciarlo fine a se stesso realizziamo qualcosa di funzionante no?

ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206
certo.. ma ne parliamo in

certo.. ma ne parliamo in questi giorni.. apprezzo molto i commenti che hai fatto sopratutto riguardo la versatilità degli fpga..sono d'accordo a pieno e sei stato molto piu preciso di me in alcuni aspetti che a dir il vero davo per scontato, ma hai fatto bene a rimarcare(come quello della velocità max delle fpga vs quella dei micro!!)

Adesso avrei un pò di sonno :)

ciao!

ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206
ciao mino... ho creato una

ciao mino... ho creato una nuova discussione in cui tutti possono postare qualche idea per progetti su FPGA..proseguiamo li la nostra discussione cosi approfondiamo senza andare off topic..ciao!

veronica (non verificato)
ritratto di veronica
fpga...

Salve...
...io da poco tempo ho iniziato ad interessarmi alle schede fpga, per via dell'argomento della mia tesi.
Uso il vhdl come linguaggio.
Non so se posso chiedere in questo forum...
Ho fatto un circuito che ordina dei dati, ho fatto una fifo per l'immissione dei dati, ma ora non riesco a capire come faccio a dire al circuito di prendere i dati caricati sulla fifo...devo mettere come componente della fifo il mio ordinatore? E poi vorrei salvare i dati ordinati sulla fifo stessa...mi potete consigliare dove posso studiare questo argomento? Non la fifo, ma come usarla all'interno di un progetto.
Grazie, e scusatemi se, invece, non posso far domande qui.

ritratto di divivoma
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
1 giorno 12 ore fa
Utente dal: 02/03/2011
Messaggi: 206
ciao tranquilla se sei nuova

ciao tranquilla se sei nuova hai bisogno soltanto di vedere un pò come sono disposte le sezioni del forum ..per la tua domanda potresti ad esempio creare un nuovo post nella sezione "nuove idee " oppure nella sezione altro in modo tale da attirare l'attenzione per il topic specifico che proponi ;) ..

prova a creare un nuovo post e magari ne parliamo meglio lì

ciao

ritratto di Veronica Vore
Offline
Titolo: User
Utente
Ultima visita:
2 anni 20 settimane fa
Utente dal: 20/04/2011
Messaggi: 3
grazie

Grazie, ora ho provato a fare una fifo per i dati in uscita e uno in entrata, appena avrò le idee più chiare metterò una nuova discussione!
Grazie mille!

ritratto di orsettolavatore
Offline
Titolo: User
Utente
Ultima visita:
2 anni 20 settimane fa
Utente dal: 21/11/2011
Messaggi: 3
rx segnali infrarossi su Altera DE2

Buonasera,
sono nuova.

Approfitto del vostro post per far presente un progettino che dovrei svolgere per un mio esame universitario. Realizzare un rx di segnale infrarossi e decodifica del segnale, ad es di un telecomando su una scheda DE2 di Altera, Quartus II, in verilog.

Ho creato un mio post su programmazione:
http://it.emcelettronica.com/forum/rx-infrarossi-su-altera-de2

Non ho mai programmato in verilog, sono alla mia prima esperienza, pertanto non sono per nulla ferrata, se vogliamo essere gentili!
Pertanto, se qualcuno volesse darmi una mano a capire come muoversi nel modo della programma fpga, in verilog, ve ne sarei veramente grata!

Grazie di nuovo,ciaoo!

ritratto di Andres Reyes
Offline
Titolo: User
Utente
Ultima visita:
8 ore 2 min fa
Utente dal: 09/11/2010
Messaggi: 3
Sarebbe molto interessante

Sarebbe molto interessante Divivoaroma una sezione del Forum dedicata agli FPGA,
ai tool di sviluppo e all'utilizzo di Matlab Sysgen.
Volevo chiederti un consiglio: secondo te quale applicazione si potrebbe realizzare usando le ANN (reti neurali) che non sia un pattern recognition (che ho già realizzato su uno Spartan3)?
Ora sto usando il virtex, lo sto studiando nei dettagli.
Per quanto riguarda Fourier sarebbe molto interessante anche un progetto si con FFT..
Grazie Marco!

flz47655 (non verificato)
ritratto di veronica
Volevo segnalare il forum

Volevo segnalare il forum http://www.delucagiovanni.com/public/phpbb3/index.php dove si parla in particolare di FPGA, VHDL

Ciao

 

 

Visita il sito EOS-Book con centinaia di progetti ed articoli!

Visita il nuovo sito di EOS-Book
Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 48 visitatori collegati.

Ultimi Commenti