Page 1 of 1

FPU - Float Point Unit

PostPosted: 18 Jun 2012, 22:05
by collega_lnf
Carissimo, come vedi dopo un pò mi sono fatto vivo sul forum,
sono il collega del LNF che ti aveva accennato qualcosa a proposito della FPU da realizzare in VHDL per fpga altera.
Sai già a cosa dovrebbe servire, ma come ben sai questo non è un problema.

Vorrei sapere se sei interessato a collaborare per la realizzazione della FPU a singola precisione 32bit, per interderci.

Chiaramente l'invito è aperto a tutti gli interessati del forum.
Come mi avevi suggerito ho esposto il topic in pubblico.

Un saluto a tutti.

Re: FPU - Float Point Unit

PostPosted: 19 Jun 2012, 08:00
by deluca
ciao collega, tutto ok?
lieto di averti tra gli iscritti, anzi ne sono lusingato.
certo che so di cosa stiamo parlando, ne abbiamo parlato proprio ieri in riunione, e proprio per questo motivo non posso tirarmi indietro.

So di certo che non è un lavoro banale realizzare quella FPU ma puoi contare sul mio aiuto.
La IEEE754 non è una passeggiatina, ma è ancor peggio realizzare somme, sottrazioni, moltiplicazioni e divisioni in virgola mobile in vhdl specie se a doppia precisione. (ma tu parli di singola, giusto?).

Cmq, spero di trovare il tempo per darti una mano ;)

Per varie ed eventuali o qui oin prv.
Appena puoi mandami le caratteristiche che deve avere il modulo, etc etc.

PS. Hai ricevuto il mail riguardo il superAVRcore - Atmel AVR compatibile?

Ciao

Re: FPU - Float Point Unit

PostPosted: 19 Jun 2012, 18:16
by collega_lnf
1) Intanto ti dico subito che abbiamo pronta una applicazione giusta giusta per testare il core SAVR che ci hai descritto,
quindi di sicuro ti chiederemo di fare un salto qui da noi per la presentazione ufficiale del core.

2)Per quanto riguarda le caratteristiche del core FPU gradiremmo che tu ci esponessi una tua possibile configurazione dell'entity
Top-level così da poter valutare l'implementabilità nel nostro sistema di acquisizione a 32 bit.

In attesa di riscontri, saluto te e il tuo staff.

Re: FPU - Float Point Unit

PostPosted: 20 Jun 2012, 03:12
by legacy
Ciao

oltre ai complimenti per una impresa simile, questa cosa non puo' che farmi immediatamente pensare a tutti i problemi che ha intrinsecamente il floating point (comprese le continue rinormalizzazioni, e i problemi intrinseci che ha questa rappresentazione), e quindi domandarmi : ma perche' non fixed point magari esagerato come nel mio caso (128bit) ?

Esamplificando una cosa alla dsp-engine di Microchip montata sui dsPIC3*F per il fractional (Q1,N-1), enfatizzando su N come nel mio caso =P

Re: FPU - Float Point Unit

PostPosted: 20 Jun 2012, 08:57
by deluca
Noi non conosciamo il tuo caso, grazie cmq per l'interesse,
ma nel nostro caso non intendiamo assolutamente usare dsPic, come avrai ben capito, il tutto si realizza via hardware
e con fpga radiation hardened.
Per i nostri requisiti, il sistema che stiamo sviluppando, dovrà essere implementato su fpga Acronix o Actel e forse non su prodotti Altera,
e quindi molto lontano dai classici micro PIC o dspic.

Re: FPU - Float Point Unit

PostPosted: 20 Jun 2012, 10:51
by legacy
Non ho scritto di attaccare un dsPIC alla fpga, e nemmeno di replicare tutto il core dsPIC in fpga, io mi sono chiesto perche' non replicare su fpga una soluzione simile a quella usata da Microchip per la sola parte del loro dsp engine, e cioe' al posto di implementare floating point implementare il fixedpoint chiaramente poi nelle vostre soluzioni "radiation hardened".

Fondamentalmente il dspengine ha "quasi" la stessa complessita' di una "banale" ALU con qualche aggiunta in piu' come i barrel shifter, quindi molto piu' semplice e di conseguenza meno soggetta a bachi di implementazione e realizzabile in tempi piu' rapidi impiegando meno risorse umane.

Da me queste ultimi due valori sono fondamentali, siamo in pochi e con tempi di consegna strettissimi, ma a parte questi dati di pianificazione, trovo che anche al tecnico Microchip abbiato trovato una intelligente idea nel fractional, una sottoclasse del fixepoint di tipo Q1,N-1, costa relativamente poco in hw e dal mio punto di vista ha sempre permesso di ottenere ottimi risultati specialmente se si puo' enfatizzare su N (cioe' usando chesso' 128bit come nel mio caso).

L'ho usata in automotive, implementata su Fpga altera e messa su centraline auto formula 1 assieme a core e500 per sostituire la precedente soluzione tutte software softfloat in modo da lasciare scarichi i core mentre la fpga macina i dati della parte di telemetry e strategy dove fondamentalmente si fa stra abbodante uso di matematica trigonometrica.

Ho scritto per sapere se c'e' una motivazione sul perche' no-fixedpoint: cioe' perche' avete pianificato proprio floating point che e' molto piu' complessa da realizzare, richiede tempi di testing piu' lunghe, molte piu' risorse uomo, impegna molte piu' risorse sulla fpga, e comunque si porta dietro diversi problemi tecnici legati al formato numerico, per esempio problemi di assorbimento, etc ?

Re: FPU - Float Point Unit

PostPosted: 20 Jun 2012, 11:35
by collega_lnf
deluca, non mi aspettavo interesse da parte di estranei (per così dire, a questo topic),
vedere iscritti al forum che forniscono altre possibili soluzioni può essere interessante.

purtroppo i nostri apparati sono sostanzialmente appartenenti al quel tipo di elaborazione
di cui ti parlavo e il bus come ben sai è già stato definito,
quindi l'unica soluzione è la FPU da implementare insieme a tutto il resto.

Comunque è sempre bene prendere in considerazione idee innovative o interessanti che possono provenire da parti esterne.
leg, hai un link da postare relativo al dsp-engine per valutare quanto da te detto?

posso dire una cosa? l'idea di comunicare con il forum mi piace :)
ciao

Re: FPU - Float Point Unit

PostPosted: 20 Jun 2012, 12:28
by legacy
Mah, io ci lavorai la prima volta in tesi dove mi e' toccato il dsPIC per cui direi che posso affermare in prima persona che la doc uficiale di Microchip racconta bene come e' fatto il dsp-engine, va pero' cercato fra i prodotti dsPIC30F o dsPIC33F, io cercavo proprio fra le AN e sui datasheet e altro materiale loro di documentazione compresi i pochi sorgenti messi a disposizione in MPLAB, utili per es per il fractiona-to-float e float-to-fractional, mentre per la parte matematica bisogna rifarsi al fractional una sottoclasse del fixedpoint dove si usa un solo bit per la parte intera e N-1 bit per la parte a frazione, appunto e' un Q1,N-1, questa l'ho vista ai corsi di calcolo numerico nella mia uni.

Re: FPU - Float Point Unit

PostPosted: 20 Jun 2012, 13:44
by cyclone
l'argomento è molto interessante.
ma con DSP builder Altera è possibile instanziare una FPU ?

Forse la risposta la so di già. Dovrebbe essere si, ma poi saremmo legati ai prodotti Altera e a quanto sembra non sono Radiation H.
Forse meglio realizzare il core in vhdl nativo così da essere potenzialmente trasportabile ovunque, giusto?

Re: FPU - Float Point Unit

PostPosted: 21 Jun 2012, 14:13
by deluca
Yes,
hai centrato il problema,
con DSP builder è possibile lavorare con arith fixed e floating point
ma sfruttando le risorse hardware della fpga (att. non sarebbe un male, anzi !!)

Purtroppo noi dobbiamo necessariamente svincolarci e realizzare il tutto in vhdl nativo per non avere problemi di compatibilità con altre famiglie di fpga.