11.06.2013 Views

Implementazione di filtri FIR su FPGA - DEI

Implementazione di filtri FIR su FPGA - DEI

Implementazione di filtri FIR su FPGA - DEI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Università <strong>di</strong> Padova - <strong>DEI</strong><br />

Laboratorio <strong>di</strong> elettronica <strong>di</strong>gitale<br />

Lezione 17<br />

<strong>Implementazione</strong> <strong>di</strong> <strong>filtri</strong> <strong>FIR</strong> <strong>su</strong> <strong>FPGA</strong><br />

Andrea Neviani – Laboratorio <strong>di</strong> elettronica <strong>di</strong>gitale 1


Filtri in un tipico ricevitore RF<br />

Andrea Neviani - L.E.D. 2


egistri a<br />

n bit<br />

<strong>FIR</strong>: forma <strong>di</strong>retta con sommatore ad albero<br />

sommatore ad albero<br />

con pipeline<br />

• forma <strong>di</strong>retta: prima c'è la linea <strong>di</strong> ritardo, poi le moltiplicazioni,<br />

infine le somme<br />

• per un filtro a N coefficienti, il sommatore ad albero ha L=log 2(N)<br />

livelli, quin<strong>di</strong> aggiunge una latenza <strong>di</strong> L cicli <strong>di</strong> clock<br />

• il periodo <strong>di</strong> clock però si riduce (rispetto a una cascata seriale <strong>di</strong><br />

sommatori) a: TCKmin = t pREG + t pADD + t SETUP<br />

Andrea Neviani - L.E.D. 3


<strong>FIR</strong>: forma trasposta<br />

si può mettere anche un solo registro, se il numero <strong>di</strong><br />

moltiplicatori non è troppo elevato<br />

• forma trasposta: prima il dato <strong>di</strong> ingresso x(k) viene moltiplicato per tutti i<br />

coefficienti del filtro; le somme sono incorporate nella linea <strong>di</strong> ritardo<br />

• rispetto alla forma <strong>di</strong>retta, ha una latenza inferiore (N cicli, contro N+L), è<br />

facilmente espan<strong>di</strong>bile (basta connettere in cascata più moduli), e può portare<br />

ad una implementazione più efficiente dei moltiplicatori<br />

• per <strong>filtri</strong> <strong>di</strong> <strong>di</strong>mensioni ridotte, le due forme danno ri<strong>su</strong>ltati equivalenti<br />

Andrea Neviani - L.E.D. 4


Moltiplicazioni KCM in <strong>FPGA</strong><br />

• nelle moltiplicazioni richieste da un filtro <strong>FIR</strong> uno dei due fattori è<br />

costante ⇒ si possono effettuare in modo efficiente con un<br />

Constant Coefficient Multiplier (KCM)<br />

in questa forma, funziona solo per numeri<br />

senza segno<br />

Andrea Neviani - L.E.D. 5


Moltiplicazioni KCM per numeri con segno<br />

• per non raddoppiare la quantità <strong>di</strong> memoria ROM riciesta, le KCM<br />

<strong>di</strong> numeri con segno possono essere gestite cambiando il segno<br />

del dato <strong>di</strong> ingresso, se questo è negativo, quin<strong>di</strong> andando a<br />

sottrarre, anziché sommare, il ri<strong>su</strong>ltato alla somma parziale<br />

precedente<br />

Andrea Neviani - L.E.D. 6


KCM: implementazione multiciclo<br />

• usa un clock interno Clkx4 più veloce del clock dei dati Clk<br />

Andrea Neviani - L.E.D. 7


<strong>FIR</strong> trasposto: implementazione<br />

• realizzato con moltiplicatori KCM e sommatori con registro <strong>di</strong><br />

uscita (convenienti nelle <strong>FPGA</strong>: nelle Spartan3, ogni slice può<br />

realizzare due bit <strong>di</strong> somma con due FF <strong>di</strong> uscita)<br />

Andrea Neviani - L.E.D. 8


<strong>FIR</strong> trasposto: vista dettagliata<br />

Andrea Neviani - L.E.D. 9


<strong>FIR</strong> trasposto: versione ottimizzata<br />

• i MUX 4-1 in ingresso ad ogni KCM sono stati estratti e con<strong>di</strong>visi<br />

(così ne serve uno solo)<br />

• i sommatori dei KCM vengono eliminati: al loro posto si usano i<br />

sommatori della linea <strong>di</strong> ritardo, aggiungendo altri tre registri in<br />

cascata (così in tutto <strong>di</strong>ventano 4), che servono per fare sì che<br />

vengano sommati termini con lo stesso peso<br />

Andrea Neviani - L.E.D. 10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!