UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA DIPARTIMENTO DI ELETTRONICA PROGETTO ed OTTIMIZZAZIONE di un FILTRO FIR mediante CASCATA di CELLE BIQUADRATICHE Relatore: Prof. Carla Vacchi Correlatore: Ing. Everest Zuffetti Elaborato di Laurea di: Tedeschi Marika FASI del LAVORO •Scelta della struttura digitale da implementare •Descrizione a livello di sistema in MATLABTM •Descrizione ed ottimizzazione dell’architettura hardware in VHDL •Sintesi dei sorgenti VHDL •Valutazione prestazioni ottenute FASI del LAVORO •Scelta della struttura digitale da implementare •Descrizione a livello di sistema in MATLABTM •Descrizione ed ottimizzazione dell’architettura hardware in VHDL •Sintesi dei sorgenti VHDL •Valutazione prestazioni ottenute SPECIFICHE del FILTRO •12 bit in ingresso espressi in C2 con SNRin= 59.8 dB •Ordine 11 •Risposta a fase lineare in banda passante FIR •Banda di transizione pari a Fs-Fp= 5.58 MHz |H(F)| 1+d1 d1 0.03 d2 0.06 1-d1 SNRout 66 dB d2 0 Fp Fs Fc/4 1.92 7.5 10 F (MHz) SCHEMA CONCETTUALE del FILTRO come BLOCCO UNICO 12 bit x(n) z-1 h(0) z-1 h(1) z-1 h(2) z-1 z-1 h(M-1) h(3) h(M) y(n ) M M k 0 k 0 y(n) h(k ) x(n k ) bk x(n k ) EFFETTI della QUANTIZZAZIONE zeri coef. inf. poli coef. inf. zeri coef. quant. poli coef. quant. assi 1 Parte immaginaria 0.5 si 24 0 M k 1 siM k M (s s ) i l 1 l i -0.5 -1 -1.5 -1 -0.5 0 Parte reale 0.5 1 1.5 l bk CELLA BIQUADRATICA xk-1(n) bk0 z-1 z-1 bk1 bk2 yk(n) Hk (z ) bk,0 bk,1 z 1 bk,2 z 2 CASCATA di CELLE BIQUADRATICHE x(n) H1(z) y1(n) H2(z) K K k 1 k 1 y2(n) y(n) HK(z) H ( z ) H k ( z ) (bk , 0 bk ,1 z bk , 2 z ) 1 2 FASI del LAVORO •Scelta della struttura digitale da implementare •Descrizione a livello di sistema in MATLABTM •Descrizione ed ottimizzazione dell’architettura hardware in VHDL •Sintesi dei sorgenti VHDL •Valutazione prestazioni ottenute ANALISI di SISTEMA • DETERMINAZIONE del set di coefficienti • QUANTIZZAZIONE dei coefficienti e analisi dei suoi effetti sulle prestazioni del filtro SET di COEFFICIENTI NORMALIZZATI b0 b1 b2 -0.4788 +1.0000 +0.0000 +1.0000 +0.5212 -0.4788 +0.5810 +1.0000 +0.5810 +1.0000 +0.9801 +1.0000 +1.0000 +0.0507 +1.0000 +1.0000 -0.6573 +1.0000 K H ( z ) (bk , 0 bk ,1 z 1 bk , 2 z 2 ) k 1 SET di COEFFICIENTI QUANTIZZATI -0.4788 +1.0000 +1.0000 +0.5212 +0.0000 -0.4788 5 bit 5 bit 4 bit -7 15 0 15 8 -7 4 7 4 1 1 1 +0.5810 +1.0000 +0.5810 +1.0000 +0.9801 +1.0000 +1.0000 +0.0507 +1.0000 2 bit 1 0 1 +1.0000 -0.6573 +1.0000 3 bit 3 -2 3 2 bit MODIFICA dell’ORDINE delle CELLE 12 bit 5 bit 15 bit 5 bit 20 bit 4 bit 24 bit 2 bit 25 bit 2 bit 26 bit 3 bit +3 +5 +4 +1 +1 +2 28 bit MODIFICA dell’ORDINE delle CELLE 12 bit 2 bit 14 bit 2 bit 15 bit 3 bit 17 bit 5 bit 20 bit 4 bit 24 bit 5 bit +2 +1 +2 +3 +4 +4 28 bit QUANTIZZAZIONE d’USCITA 12 bit 1|1|1 14 bit 1|0|1 15 3|-2|3 bit 17 20 -7|15|0 4|7|4 bit bit 24 28 15|8|-7 bit bit E’ possibile ridurre il numero di bit, mantenendo SNR 66 dB? •Divisione per una potenza di 2 •Arrotondamento •Saturazione ALGORITMO di ARROTONDAMENTO e SATURAZIONE Stringa di bit in uscita dal 5°stadio biquadratico: b[3]=1AND ((b[23]=0)OR(b[2:0]=0))? SI b[23 : 0] OUT:=b[23:4]+1 NO OUT:=b[23:4] NO b[23:4]< -(2^17)? NO OUT:=b[21:4] ESCI b[23:4]>(2^17-1)? SI SATURA positivo: OUT:=(2^17-1) SI SATURA negativo: OUT:= -(2^17) ESCI ESCI QUANTIZZAZIONE d’USCITA Esempio: 5° stadio biquadratico 18 bit 4 bit z -1 x4 22 bit z -1 4 bit x7 4 bit 22 bit x4 22 bit 23 bit 24 bit Q U A N T. 18 bit RISULTATI MatLab CELLA N.BIT IN BIQUAD. SNR IN N.BIT COEF. COEFFICIENTI N.BIT OUT SNROUT QUANTIZZATI 1 12 59.8 dB 2 [1 1 1] 14 64.36 dB 2 14 64.36 dB 2 [1 0 1] 14 66.05 dB 3 14 66.05 dB 3 [3 -2 3] 16 66.14 dB 4 16 66.14 dB 5 [ -7 15 0] 18 61.58 dB 5 18 61.58 dB 4 [4 7 4] 18 67.20 dB 6 18 67.20 dB 5 [ 15 8 -7] 17 66.22 dB FASI del LAVORO •Scelta della struttura digitale da implementare •Descrizione a livello di sistema in MATLABTM •Descrizione ed ottimizzazione dell’architettura hardware in VHDL •Sintesi dei sorgenti VHDL •Valutazione prestazioni ottenute DESCRIZIONE VHDL TESTBENCH Entity DATI IN INGRESSO DEFINIZIONE SEGNALI DI CONTROLLO FILTER MEMORIZZAZIONE SU FILE DEI DATI IN USCITA MatLab PIPELINING z -1 z -1 z -1 z -1 z -1 z -1 z -1 z -1 ff + Q 25 ns + Q + Q + Q Tck = Tff + Tcomb Sommatori e moltiplicatori complessi + area + potenza Pipelining: si inseriscono banchi di flip flop PIPELINING Dopo quali celle (biquadratica + quantizzatore) inserire un banco di flip flop? z - 1 z - 1 n-esima cella biquadratica + Q STRUTTURE DESCRITTE in 1°biq in in 2°biq 2°biq 1°biq 2°biq 1°biq in 1°biq 3°biq ff 2°biq ff 5°biq Filter_2ff ff 4°biq 3°biq ff 4°biq Filter 5°biq 4°biq 3°biqFilter_3ff ff 4°biq ff Filter_6ff 3°biq ff 6°biq 6°biq 6°biq 5°biq 5°biq ff 6°biq ff out out ff out ff ff out Filter z -1 z -1 z -1 z -1 z -1 z -1 z -1 z -1 ff + Q + Q + Q + Q In Tck attraversa 6 celle biquadratiche (non aggiunge latenza) Filter_2ff z -1 z -1 z -1 z -1 z -1 z -1 ff + Q + Q + Q In Tck attraversa 3 celle biquadratiche (latenza = + 1 colpo di clock) FASI del LAVORO •Scelta della struttura digitale da implementare •Descrizione a livello di sistema in MATLABTM •Descrizione ed ottimizzazione dell’architettura hardware in VHDL •Sintesi dei sorgenti VHDL •Valutazione prestazioni ottenute SINTESI CODICE VHDL SCHEMA SINTETIZZATORE RISPETTO DEI VINCOLI TEMPORALI CIRCUITALE RISULTATI della SINTESI INGRESSO : sequenza di campioni relativa ad un segnale casuale a piena dinamica, bianco in frequenza TECNOLOGIA : CMOS • Lunghezza minima di canale 0.13 μm • Tensione di alimentazione 1.2 V RISULTATI della SINTESI STRUTTURA sintetizzata Filter Filter_2ff Filter_3ff Filter_6ff Filter Filter_6ff P.O Requisiti di TIMING (40 MHz) (40 MHz) (40 MHz) (40 MHz) (40 MHz) OK OK OK OK OK AREA (μm2) Consumo POTENZA (μW) 51136 34448 32612 34319 9160 2838 1933 35186 620 567 P.O =Power Optimization Il convertitore A/D consuma una potenza di circa 6÷7 mW RISULTATI della SINTESI Confronto con un filtro analogo ma: • stadio unico • ripiegato STRUTTURA sintetizzata Filter_6ff Filter_6ff P.O UMTS1 UMTS1 P.O Requisiti di TIMING AREA (μm2) Consumo POTENZA (μW) (40 MHz) OK (40 MHz) OK (40 MHz) OK 34319 35186 17277 17616 620 567 312 (40 MHz) OK P.O =Power Optimization 285 Il convertitore A/D consuma una potenza di circa 6÷7 mW CONCLUSIONI •Nel presente lavoro di tesi è stato progettato un filtro FIR digitale come cascata di celle biquadratiche, primo stadio UMTS di un sistema di ricezione multistandard UMTS/WLAN •Il filtro è stato descritto tramite MatLab ed in VHDL e sintetizzato in varie strutture •L’inserimento di pipeline ha permesso di diminuire la dissipazione di potenza e di contenere l’occupazione di area •Il rispetto dei vincoli di timing nella sintesi consente di ottenere il layout del dispositivo mediante procedura automatizzata CONCLUSIONI Obiettivi raggiunti: •Acquisizione di conoscenze sui filtri digitali (in particolare sui filtri FIR e sulle possibili strutture realizzabili) •Acquisizione di familiarità con MatLab (almeno per quanto riguarda le funzioni di Filter Design) •Acquisizione di familiarità con il linguaggio di descrizione hardware VHDL •Primo approccio con sintetizzatori