Home Forum NUOVE IDEE O PROGETTI DA SVILUPPARE Alla ricerca di un nuovo progetto per FPGA

Questo argomento contiene 13 risposte, ha 4 partecipanti, ed è stato aggiornato da  Anonimo 2 anni, 9 mesi fa.

Stai vedendo 14 articoli - dal 1 a 14 (di 14 totali)
  • Autore
    Articoli
  • #58262

    divivoma
    Membro

    Ciao ragazzi…se qualcuno ha seguito la mia precedente discussione in questa sezione, ha potuto notare infine abbiamo deciso di cominciare a buttare giù qualche idea su un possibile progetto da realizzare con FPGA..quindi creo quest’altro topic in cui vorrei focalizzarmi sulla ricerca di un progetto da realizzare proprio con questi dispositivi…
    Direi di tracciare prima di fissarci un obiettivo..(ad esempio si parlava di realizzare una fft..)..poi di sccegliere i dispositivi..poi le metodologie di sviluppo e ovviamente le specifiche…
    magari riusciamo a comparare i risultati ottenuti anche realizzando in parallelo lo stesso progetto ma realizzato con microcontrollori !

    Forza con le idee..!

    Marco

    #69835
    Luca Giuliodori
    Luca Giuliodori
    Partecipante

    Ciao divivoma,

    di idee ce ne sono tante e l’idea di creare tanti piccoli obiettivi (siccome parli di FFT l’idea è quella di iniziare a creare tanti piccoli progettini che poi possono essere usati insieme per realizzare un progetto più grande) è veramente interessante perchè si possono creare una sorta di insieme di librerie che saranno sempre aggiornate e dalle quali si può attingere per altri progetti.

    Ahimè io non sono molto bravo nella programmazione delle FPGA però posso darvi sostegno per promuovere nuove idee e per la programmazione dei microcontrollori (alla fine del post dici di comparare le prestazioni delle FPGA con i microcontrollori realizzando lo stesso progetto sia per l’uno sia per l’altro).

    Le prime idee che mi vengono in mente, oltre la FFT (molto interessante tra l’altro) sono:
    – filtri FIR
    – filtri IIR
    – filtri adattativi
    – interpolatori
    – gestione protocolli (I2C, RS232, …)
    – amplificatori in classe D (o modulazione sigma delta)
    – algoritmo di codifica e decodifica MP3
    – algoritmo di codifica e decodifica MPEG

    per il momento mi fermo qua, ma sicuramente me ne verranno in mente altri.

    Ciao!

    #69883

    divivoma
    Membro

    Ciao luca,
    Si l’idea è proprio questa..partire da piccoli pezzi per poi realizzare qualcosa di “finito” nel senso che possiamo usarlo in maniera utilie…quindi vanno bene tutte le idee che hai detto..
    Volendoci ad esempio concentrare su un'”analizzatore di spettro” a frequenza limitata..ovviamente..non possiamo permetterci dei filtri SAW (ceramici) perchè costano troppo..quindi sicuramente avremo un problema sul front end..però..prima di andare avanti vorrei chiedervi di pensare ad un’eventuale SCHEMA A BLOCCHI da poter implementare poi piano piano…che ne pensate?
    Ciò ovviamente può coinvolgere più cose tra quelle che hai indicato tu luca, ad esempio sicuramente possiamo implementare qualche protocollo per la seriale e un filtro che sicuramente ci vuole sia in ingresso che in uscita dall’eventuale fft da realizzare, ovviamente bisogna combinare un pò di circuiteria fatta ad hoc e riuscirla ad accostare all’FPGA..sarebbe bello riuscirci :)

    La vedete troppo complicata? Avete qualche scheda e il kit di sviluppo per le mani?
    Mino tu ci sei ??

    #69885

    Fabrizio87
    Membro

    Per il vostro progetto vi consiglio di utilizzare la Development “Digilent Atlys Spartan-6 FPGA Development Kit”,

    http://www.mirifica.it/store/schede-fpga/178-digilent-atlys-spartan-6-fpga-development-kit-academic.html

    Il suo primo vantaggio e il suo prezzo che non è eccessivo e non supera 200€ e penso che sia un ottimo rapporto qualità prezzo.

    Secondo me il primo modulo da sviluppare e quella relativo alla gestione dell’output video,
    questa scheda possiede un’uscita HDMI che che la rende facilmente collegabile a qualsiasi monitor LCD e anche in modalità alta definizione che per visualizzare un segnali mi sembra un’ottima cosa, ancora non ho visto un oscilloscopio chi usava un monitor ad alta definizione.

    Il secondo modulo da sviluppare sarebbe il convertitore analogico digitale e sarebbe utile aggiungere anche la possibilità contraria da digitale ad analogico per essere anche un generatore di segnali così d’avere uno strumento molto più versatile ad esempio potere visualizzare le curve di risposta di un filtro.
    Questo è facile visto che i moduli sono già previsti nella scheda.
    E hanno una banda passante di 100 MHz che non è male.

    Inoltre una libreria che sarebbe molto utile da sviluppare e quella relativa alla gestione della scheda rete e delle porte USB così da poter caricare Print Scrn, Così da avere a disposizione per lavorarli in un secondo momento.

    a questo punto avendo a disposizione il modulo d’ingresso dove vengono generato le sequenze di segnare PCM e è un altro modulo che permette di visualizzare una matrice X Y, sì a questo punto si potrebbe incominciare a sviluppare qualsiasi tipo di modulo ad esempio FFT così da farne un analizzatore di spettri,
    o semplicemente un oscilloscopio,

    Una cosa carina sarebbe di creare quegli oscilloscopio digitali che servano a monitorare i protocolli come I2C, RS 232, USB e tutti altri disponibili, e per di più fare il log di questi dati sulla memoria di massa tipo USB o mandarli su un Server di rete.

    #69886

    divivoma
    Membro

    Fantastico fabry..!
    A quanto pare hai proprio le idee ben chiare cavolo :) !!
    La scheda hai ragione non costa tanto…e quindi si potrebbe fare…!
    anche ‘idea dell’alta definizione è una bella innovazione..!
    Saresti disposto a partecipare anche tu allo sviluppo del progetto? Magari vedo un pò come fare per procurarmi la scheda e iniziarci a lavorare su..!
    Quando parli di librerie..in che linguaggio le scriveresti? VHDL immagino no?
    Comunque oltre alla mera e propria analisi digitale fatta su fpga, come front end per l’acquisizione del segnale non credi che ci voglia qualche filtro per limitare la banda del segnale di ingresso..In realtà lo schema sarebbe questo:

    1)un primo blocco di condizionamento del segnale in modo da sfruttare a pieno la dinamica dell’ad ..(AGC ..amplificatore a guadagno variabile se nn ricordo male..)
    2)Filtro antialiasing …e qui la teoria la sappiamo tutti :)
    3)Convertitore ADC ..almeno a 12 bit se non 16 per avere una buona quantità di campioni al secondo…poi vediamo le specifiche ..sparate pure :)
    4)Blocco di elaborazione digitale..fft!
    5)quello che c ‘è dopo in parte l ‘hai già detto..credo ci debba essere prima un filtro IF e poi salvare in memoria tutto..ma è da vedere

    quindi:

    Input_Segnale—>Blocco_di_cond. —>FILTRO_ANTI_ALIAS—>S/H+ADC—->FFT—>bla bla–>LCD_HD—>Spettro

    Che ne pensate raga?

    #69894

    divivoma
    Membro

    In realtà..guardandomi intorno qui..mi ero dimenticato che al mio fianco c e una virtex 6 con tanto di kit di valutazione…

    http://www.xilinx.com/products/boards-and-kits/EK-V6-ML605-G.htm

    Che ne pensi si può lavorare lo stesso con questa ?? :) domanda stupida :)
    devo vedere un pò se riesco a mettere in piedi l’ISE..questione di licenze..
    ciao

    #69926

    Fabrizio87
    Membro

    Prima di tutto per calcolare la frequenza massima di campionamento del convertitore è necessario tener conto di alcuni aspetti,
    i dati che vengono misurati dal convertitore ADC devono essere immagazzinati all’interno della RAM e nel nostro caso è DDR2 ma esiste un ulteriore vincolo quella della frequenza massima di lavoro della FPGA,

    una volta che è determinato quanti campioni è possibile immagazzinare all’interno RAM e trattarle in seguito,
    puoi calcolare il filtro analogico d’ingresso.
    così da evitare i problemi di alias sia software quanto viene elaborato il segnale a livello digitale o quello software quando viene convertito.
    per cosa riguarda il numero di bit necessari alla conversione ADC di solito nei oscilloscopio non supera 8 bit,
    semplicemente perché si predilige la dinamicità del segnale più che la sua ampiezza, in vista di fare FFT.

    Personalmente ho scritto in diversi linguaggi ma quelli che vanno alla maggiore per l’Europa è VHDL e di solito dai nostri amici transatlantico Verilog, Ma allora attuale con il compilatore xilinx possono essere tranquillamente mescolati.

    Ho dato un’occhiata alla scheda che agli messo di sotto.
    La trovo interessante per una serie di motivi.

    prima di tutto si può creare un oscilloscopio di tipo ibrido,
    di solito usiamo oscilloscopio puro o all’opposto al computer dove sia una scheda di acquisizione.

    questo potrebbe essere un oscilloscopio tra i due,
    ancora non ho mai visto una cosa simile sul mercato ma potrebbe essere molto interessante da sviluppare.

    Questo oscilloscopio sarebbe montato in un computer completamente convenzionale e collegato tramite PCI Express così da poter interagire con i computer,

    A scheda viene collegato un monitor supplementare tramite DVI questo serve esclusivamente ad visualizzare i segnali e alcune misure come il tempo le ampiezze e tutto le cose similari,
    questa parte funzionerebbe in real-time così da visualizzare anche segnali ad alta frequenza o lo spettro,
    in questo caso FFT e tutte le conversioni viene realizzato dalla FPGA così da potere ottenere migliori risultati è con una scheda di acquisizione dati si è limitato dal USB, e così potendo fare anche un oscilloscopio che va 100 MHz che sarebbe impossibile con una scheda di acquisizione.

    il computer servirebbe solo a fare il lavoro di manutenzione e di gestione del oscilloscopio,
    ad esempio potrebbe caricare delle librerie o dei moduli direttamente su FPGA così da fare prove particolare come provare dei filtri IIR, FIR o delle codifica e decodifica MPEG una cosa che un computer anche con i milanesi CUP Non può fare in real time.

    sicuramente per un dispositivo così ci sarebbe un mercato piuttosto ampio,
    Visto che loro attuale tutti vogliono fare delle prove dei diversi algoritmi video o del trattamento del segnale senza dover costruirsi delle schede e vogliono usare la comunità dei computer.

    Mi piacerebbe molto partecipare a questo progetto ma non ho il tempo a dedicare a ora di programmazione, mi dispiace proprio nel mezzo del proprio piaciuto

    #69929

    divivoma
    Membro

    ci sentiamo dopo la partita del napoli che leggo meglio ;)

    #69930

    Fabrizio87
    Membro

    Mi sembra sentire la fidanzata mia,
    “facciamo le coccole dopo la partita della Juve”,
    Pensiero mio: speriamo che la Juve vince, sennò mi sa che sarà incazzata per tre giorni.

    #69932

    Mino_73
    Partecipante

    Bella scheda quella proposta da Fabrizio87.
    Il progetto proposto è molto interessante anche perchè è un’idea che mi gira per la testa da molto tempo. Il fatto che ho comprato una scheda DE1 della terasic lo dimostra :) Credo tuttavia sia il caso di volare un pò più in basso e iniziare con qualcosa di più semplice. Una interfaccia HDMI ad alta risoluzione non è cosa semplice da implementare anche avendo una scheda come questa. A meno di non avere una qualche progetto da cui partire che ha già la periferica istanziata e configurata.
    Così come la gestione di un PCIe, richiede esperienza e tanta pazienza per sviluppare i driver sotto win. Fidatevi ci sono già passato ed è stato un bel delirio.
    Anche la parte di ingresso e uscita degli ADC e DAC non mi sembra sia facile da implementare in quanto è necessario sviluppare anche la scheda con ADC e DAC da connettere poi alla scheda, quindi sviluppo degli schemi e del PCB.
    La scheda proposta da divivoma è forse un pò troppo professionale visto il prezzo. Entrambe vanno bene per sviluppare e provare il codice però. Ma il progetto finale forse è da pensare per essere accessibile a tutti, hobbysti compresi. All’epoca acquistai la DE1 proprio perchè è una scheda semplice e completa di tutto ci si può connettere anche una scheda aggiuntiva con già i convertitori montati, con 100MHz di frequenza di campionamento. Consideriamo anche il fatto che forse la spesa non vale l’impresa, se si pensa ad un oscilloscopio fatto in casa visto che con 100MHz possiamo vedere segnali al max di 10MHz. Almeno se vogliamo vedere quancosa di significativo. Se vogliamo rimanere nell’ambito degli strumenti di misura si può pensare ad un analizzatore a stati per esempio. interfacciato con USB oppure se non vogliamo un PC di mezzo per la visualizzazione si può utilizzare una CPU da mettere nell’FPGA ed utilizzare una semplice uscita VGA, magari fatta con una rete resistiva ed una risoluzione da 640*480.
    Sia Altera che Xilinx prevedono la possibilità di istanziare una CPU nelle loro FPGA. Altera per il momento non prevede una versione Free del NIOSII ma per fare delle prove questo non è un problema in quanto lasciando il programmatore connesso all’FPGA si può sperimantare a volontà. La xilinx, se non ricordo male prevede una versione Free de una CPU non ho altri dettagli però.
    Il progetto possiamo svilupparlo in VHDL o VERILOG per me è indifferente, ma la cosa importante è che il codice sia portabile, visto che probabilmente avremo a disposizione FPGA differenti.
    C’è un esempio di analizzatore a stati qui :http://it.emcelettronica.com/analizzatore-di-stati-logici-open-source questo progetto lo avevo già visto molto tempo fà, diciamo cha a mio avviso si può migliorare molto in termini di prestazioni e funzionalità. Rimane un bel punto di partenza, inoltre utilizzando una delle tante schedine di sviluppo per FPGA chiunque se lo può costruide, (se il codice e stato scritto in modo portabile).
    Non voglio spegnere troppo il vostro entusiasmo ma forse la realizzazione dei progetti che avete proposto richiedono molto molto lavoro se volete svilupparvi tutto da voi.
    Inoltre tutto ciò che riguarda il trattamento dei segnali si possono sviluppare con facilità tramite i vari tool di sviluppo, License permettendo ovviamente, quindi ameno di non voler fare un difficile esercizio di sviluppo non vedo un grosso valore aggiunto. Per curiosità potete anche dare un’occhiata al sito opencore che spesso è un buon punto di partenza per iniziare lo sviluppo di un nuovo progetto.
    Chiudo dicendo che ho in mente un progettino anche in ambito musicale ma questo richiede anche lo sviluppo di shemi e pcb quindi forse per ora non è il caso.

    #69934

    divivoma
    Membro

    eccoti mino ! bentornato ;)!
    Cmq quando parlavo della virtex 6 scherzavo ovviamente…so ke non è da hobbisti..ma per ora mi “devo accontentare” di poter utilizzare questa..però penso che forse passerò alla spartan 6 ammesso mi diano il permesso di giocarci un pò su…
    Per quanto riguarda i driver PCIe, ci sonto passato anch’io..e di mezzo c era anche uno switch abbastanza complesso che bisognava settare per far parlare il power PC con l’fpga…però io ho scritto sl i device driver nel kernel..nn oso immaginare poi cosa si debba fare nell’FPGA con i bar e il config. header da rispettare…maròòòòòò :)

    Ho visto la scheda del progetto che hai proposto, costa sui 75$ quindi sui 65€..si può fare…e inoltre rientra anche nelle idee proposte da Fabrizio87 quindi penso possa essere interessato anche lui..(e forse si potrebbe usare anche per craccare qualcosa che utilizza i bus I2c e SPI o no Fabry?? :) )..
    Quindi per me va bene…abbiamo anche una community che può supportarci e noi contribuire con loro quindi…essenzialmente possiamo partire da cominciare a sviluppare qualcosina su questa scheda qui…o hai fatto già qualcosa tu Mino con questa scheda?
    Ad ogni modo è un progetto già avviato quindi bisogna mettersi al passo..e io dovrei rispolverare un pò di VHDL che non faccio da un bel pò..però dai si può fare un minimo…
    che ne pensate..?Possiamo provare ad esempio ad utilizzare qualche bit stream e iniziare a misurare qualche segnale SPI o altro..?potrebbe essere molto istruitivo..!

    sparate pure altre idee!

    #69966

    Mino_73
    Partecipante

    In questi giorni la mia presenza sarà un pò altalenante!! impegni di lavoro e non solo!!
    comunque arrivando alla scheda l’ho utilizzata spesso quando tenevo i corsi di fpga e vhdl nell’azienda dove lavoravo prima. E’ molto semplice, confrontata con altri prodotti, ma permette di fare molti esperimenti con discreta facilità. l’ho utilizzata anche per esplorare un pò c’ho che riguarda la gestioni di flussi video, permette di avere al massimo un 640×480 ma per imparare i rudimenti è stata molto utile.
    Per quanto riguarda il progetto credo che provero ad implementare l’analizzatore a stati di cui ti ho parlato, Il mio problema è mettere le mani nel software per la visualizzazione ancora non ho molta esperienza in questo. Credo che per la prima versione visualizzarò i dati su PC. Il software originale, se non ricordo male, è scritto in java e forse riesco a metterci le mani. Ma nella versione definitiva mi piacerebbe avere un programma dedicato al progetto senza riciclare quello di partenza.
    Per il VHDL chiedi pure conosco molto bene le tecniche di codifica per scrivere un codice sintetizzabile. Sono meno ferrato per quanto riguarda la modellazione ma questo non è un problema per un Hardwerista. Una delle parti che volevo aggiungere è appunto l’acquisizione di dati seriali. Nel progetto di partenza vengono acquisiti comunque tutti i canali è poi il software sul pc che estrae solo i bit dei canali interessati ed esegue un’analisi dei dati ricevuti. questo spreca molte delle limitate risorse di memoria che ha la scheda. la mia idea è poter avere un hw dedicato all’acquisizione di stream seriali per poi parallelizzarli e metterli in ram.
    Avevo buttato giù già qualche idea ma devo ritrovare i miei appunti. Il punto di partenza per il progetto sarà comunque prendere il datasheet di qualche strumento commerciale e vedere quali e quante funzioni possono essere replicate con la scheda che abbiamo a disposizione.
    Tieni presente che questo sistema è anche facile da testare in quanto si può usare la stessa FPGA per generare dei pattern di test e verificare se l’acquisizione fatta è corretta.

    #69979

    divivoma
    Membro

    Ciao Mino,
    Scusa ma a quele scheda ti riferisci alla fine ne sono state citate più di una nei vari post..quella basata su fpga spartan 6 ?
    Per me l’analizzatore di stati va benissimo..partiamo un pò piu bassi rispetto all’idea del analizzat. di spettro…ma sicuramente è molto meglio così :)
    Fammi sapere come procedi quando troverai i tuoi appunti..così magari provo a realizzare in parallelo qualcosa anch’io, ovviamente quando hai tempo!

    ciao

    #71233

    Anonimo

    Sono capitato per caso in questa discussione.
    La cosa mi sembra interessante e se si parte mi interesserebbe partecipare.
    L’unico dubbio che ho è riguardo l’HW. L’idea di usare una scheda più low cost?
    Ho visto la scheda Versa di Lattice:

    http://www.latticesemi.com/products/developmenthardware/developmentkits/ecp3versadevelopmentkit/index.cfm

    costa 99$…
    ciao

Stai vedendo 14 articoli - dal 1 a 14 (di 14 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.