Page 1 of 1

Barrel Shifter ad alte prestazioni

PostPosted: 19 Jan 2016, 17:51
by Leonardo
Ciao a tutti,

Conoscete qualche tecnica per implementare in modo efficiente ed efficace dei barrel shifter di elevate dimensioni (es. 1024 bit) ? L'implementazione base (shift_left / shift_right in VHDL) da diversi test che ho condotto impiega elevate risorse e funziona a frequenze abbastanza ridotte. Causa inoltre problemi di congestione durante il routing :D

Ciao

Re: Barrel Shifter ad alte prestazioni

PostPosted: 27 Jan 2016, 17:27
by Leonardo
L'utilizzo delle funzioni VHDL shift_left e shift_right purtroppo per grandi dimensioni (circa > 512) generano tempi di compilazione elevati e prestazioni degradate.

Per porre rimedio un link interessante che ho trovato: http://www.ece.ualberta.ca/~elliott/ee552/studentAppNotes/2003_w/components/barrel_shifter

Nel libro "RTL Hardware Design Using VHDL Coding for Efficiency, Portability, and Scalability" pag. 194 è inoltre spiegato abbastanza bene come implementare un barrel shifter a più livelli.

Aggiungo che inserendo dei registri tra i diversi livelli si può implementare una pipeline per fMax maggiori.

Re: Barrel Shifter ad alte prestazioni

PostPosted: 31 Jan 2016, 09:56
by deluca
Yes, un testo molto convincente è proprio quello di Pong Chu, un mare di esempi e di spunti per sviluppare oggetti molto interessanti e performanti....

Re: Barrel Shifter ad alte prestazioni

PostPosted: 31 Jan 2016, 14:45
by legacy
a cosa serve nello specifico il Barrel Shifter ad alte prestazioni ?

Re: Barrel Shifter ad alte prestazioni

PostPosted: 01 Feb 2016, 11:36
by Leonardo
E' un sotto-problema che è venuto fuori nel contesto di un progetto più ampio che come al solito.. non posso ancora raccontarvelo

Re: Barrel Shifter ad alte prestazioni

PostPosted: 01 Feb 2016, 12:39
by legacy
Leonardo wrote:non posso ancora raccontarvelo


due possibili spiegazioni:
  • o e' roba segreta segretissima di lavoro, praticamente le scienze scenziate
  • oppure ci sei inciampato solo per curiosità, non te ne fai assolutamente nulla, e non trovi altra pezza giustificativa :lol:


scherzi a parte, la sola volta che ne ho dovuta implementare una
e' stato per un math engine simile a quanto implementato nei dsPIC
roba che fai quella sola volta in tesi, se fai tesi in computer science
e poi non ri-vedi + nella vita (del resto con Infineon ho tutto gia' fatto) :lol: