Page 1 of 1

Moltiplicatori in VHDL ?

PostPosted: 23 Jan 2013, 22:10
by m.brox
Hi,

dovrei moltiplicare 2 valori a 16 bit con segno tra di loro, l'uscita è su 32 bit.

quale è il sistema più veloce che consente tale moltiplicazione? ovviamente in VHDL (algoritmo, parallelo, mac)

potreste darmi un indizio?

vi ringrazio

Re: Moltiplicatori in VHDL ?

PostPosted: 23 Jan 2013, 22:36
by flz47655
Ciao Brox,
Penso che sia più performante utilizzare gli eventuali moltiplicatori hw a bordo della FPGA se ne è provvista tramite i blocchi Altera istanziabili che scrivere un algoritmo in proprio.
Aspetta però conferma da chi più esperto di me

Ciao

Re: Moltiplicatori in VHDL ?

PostPosted: 24 Jan 2013, 19:21
by flz47655
Nelle FPGA Cyclone ci sono delle risorse hw dette "Embedded Multiplier" o dei DSP block che permettono di eseguire moltiplicazioni molto rapidamente.
Per utilizzarle bisogna istanziare principalmente le megafunzioni lpm_mult, altmult_add, o altmult_accum, in alcuni casi vengono istanziate automaticamente (dedotte dal codice VHDL)

Ti lascio come lettura:
http://www.altera.com/literature/an/an306.pdf
http://www.altera.com/support/examples/ ... plier.html

Nulla toglie che se hai necessità particolari puoi scrivere del codice VHDL che utilizzerà solamente LEs (e blocchi di memoria probabilmente). Per farti un esempio se devi moltiplicare numeri particolarmente grandi (es. 2-300 cifre) puoi velocizzare tramite la trasformata di fourier l'operazione.
In letteratura potrai trovare i diversi algoritmi con i vari tradeoff

Ciao

Re: Moltiplicatori in VHDL ?

PostPosted: 24 Jan 2013, 22:29
by m.brox
flz gentilissimo,
cercherò di capirci qualosa,il fatto è che la moltiplicazione la devo realizzare con un algoritmo, tipo "booth".

Re: Moltiplicatori in VHDL ?

PostPosted: 24 Jan 2013, 22:50
by flz47655
Nel libro "VHDL. Progetto di sistemi digitali" al paragrafo 6.7 trovi spiegato per filo e per segno l'algoritmo con la sua implementazione in VHDL
http://books.google.it/books?id=jWp3dXR ... th&f=false

Ciao

Re: Moltiplicatori in VHDL ?

PostPosted: 25 Jan 2013, 20:55
by legacy
flz47655 wrote:se devi moltiplicare numeri particolarmente grandi (es. 2-300 cifre) puoi velocizzare tramite la trasformata di fourier l'operazione.



UAT ??? the Schönhage–Strassen algorithm ???
eh, neg/acyclic convolution, stica farla su fpga -> serve DFT ed inversa

Re: Moltiplicatori in VHDL ?

PostPosted: 25 Jan 2013, 21:39
by flz47655
Fortuna che deve implementare Booth :)