La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

UNIVERSITÀ DEGLI STUDI DI PAVIA

Presentazioni simili


Presentazione sul tema: "UNIVERSITÀ DEGLI STUDI DI PAVIA"— Transcript della presentazione:

1 UNIVERSITÀ DEGLI STUDI DI PAVIA
 FACOLTÀ DI INGEGNERIA DIPARTIMENTO DI ELETTRONICA PROGETTO ed OTTIMIZZAZIONE di un FILTRO FIR mediante CASCATA di CELLE BIQUADRATICHE Oggetto della mia tesi è il progetto di un filtro FIR digitale realizzato come cascata di celle biquadratiche. Relatore: Prof. Carla Vacchi Correlatore: Ing. Everest Zuffetti Elaborato di Laurea di: Tedeschi Marika

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 Il lavoro richiede innanzi tutto di definire le specifiche che il filtro digitale deve soddisfare, per poi realizzare una descrizione a livello di sistema con MatLab, seguita da una descrizione hardware in VHDL. La sintesi dei sorgenti VHDL permette di valutare le prestazioni del filtro progettato.

3 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 La prima fase riguarda le scelta della struttura digitale da implementare, cioè la definizione delle specifiche.

4 SPECIFICHE del FILTRO Banda di transizione pari a Fs-Fp= 5.58 MHz
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 F (MHz) | H(F) c /4 1+ d 1 - p s 2 10 1.92 7.5 d1  0.03 d2  0.06 SNRout  66 dB Specifiche stabilite in un elaborato di tesi precedente che prevedeva la realizzazione di un sistema di ricezione multistandard UMTS-WLAN. Il filtro progettato in questa sede è il primo stadio della catena di ricezione UMTS. Si usa un FIR perché è un filtro che ha fase lineare in banda passante, usando un IIR, la struttura sarebbe meno complessa (nel senso che sarebbe sufficiente un ordine inferiore), ma la risposta sarebbe solo approssimabile con una lineare, non sarebbe esattamente lineare. NB: i FIR hanno fase lineare in banda passante se i coefficienti sono simmetrici o antisimmetrici. NB: SNR in ingresso; se ogni bit porta un aumeto di SNR di 6 dB, perché ho 12 bit in ingresso e ho SNR di ingresso pari a 59.8dB? Non bastavano 10 bit? No, a causa delle elaborazioni del segnale. Infatti i 12 bit sono in realtà 10+2 decimali, che non danno apporto all’aumento del rapporto segnale rumore e sono dovuti all’applicazione di algoritmi di elaborazione digitali. Lo stesso vale in uscita; ho 17 bit con SNR pari a 66 circa perché i 17 bit sono il risultato di elaborazioni successive e sono necessari per coprire l’intera dinamica del segnale.

5 SCHEMA CONCETTUALE del FILTRO come BLOCCO UNICO
12 bit h ( M ) x n z - 1 (0) (1) (2) (3) y Z-1 è un banco di flip flop, in quanto in ingresso si hanno 12 bit, non 1. MODO CORRETTO DI RACCONTARLO: - i coefficienti dovrebbero avere risoluzione infinita (o comunque quella della macchina) - l’implementazione hardware di coefficienti con molti bit non è conveniente (potenza, area…) - allora si quantizzano i coefficienti - quantizzare un coefficiente vuol dire spostare tutte le singolarità (zeri)… (continua nella slide successiva…..)

6 EFFETTI della QUANTIZZAZIONE
-1.5 -1 -0.5 0.5 1 1.5 24 Parte reale Parte immaginaria zeri coef. inf. poli coef. inf. zeri coef. quant. poli coef. quant. assi Quantizzando su 6 bit i coefficienti del filtro realizzato come blocco unico, si provoca uno spostamento degli zeri del filtro; se uso celle biquadratiche la quantizzazione dei coefficienti di una cella ha effetti solo sullo spostamento degli zeri della cella stessa. … (continua dalla slide precedente) - spostare gli zeri vuol dire modificare la funzione di trasferimento, che potrebbe non rispettare più le specifiche - per continuare a rispettare le specifiche in questo caso servono 6 bit - con le biquadratiche si dovrebbe risparmiare sul numero di bit che servono per rappresentare i coefficienti, perché la quantizzazione di un singolo coefficiente modifica la posizione di una sola coppia di zeri e non di tutti gli altri

7 CELLA BIQUADRATICA xk-1(n) z-1 z-1 bk0 bk1 bk2 yk(n)
Allora uso celle biquadratiche, cioè celle con funzione di trasferimento del secondo ordine nella variabile Z-1.

8 CASCATA di CELLE BIQUADRATICHE
x(n) y1(n) y2(n) y(n) H1(z) H2(z) HK(z) Cascata: la funzione di trasferimento complessiva è data dal prodotto delle funzioni di trasferimento dei singoli blocchi. Ecco perché poi dopo aver quantizzato i coefficienti posso spostare le celle come voglio, perché tanto il prodotto è commutativo e quindi avrò risultati parziali all’interno della catena che sono differenti, ma alla fine ho eseguito le stesse elaborazioni sui dati in ingresso anche se seguendo un ordine diverso.

9 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 A questo punto, dopo aver definito la struttura da progettare, ho realizzato la descrizione a livello di sistema in MatLab.

10 ANALISI di SISTEMA coefficienti
DETERMINAZIONE del set di coefficienti QUANTIZZAZIONE dei coefficienti e analisi dei suoi effetti sulle prestazioni del filtro Per determinare i set di coefficienti esistono funzioni in Matlab; per quantizzarli ho fatto io il programmino che fa i cicli.

11 SET di COEFFICIENTI NORMALIZZATI
b0 b1 b2 Questi sono i coefficienti dei singoli stadi biquadratici normalizzati al massimo per ogni stadio.

12 SET di COEFFICIENTI QUANTIZZATI
5 bit 4 bit 2 bit 3 bit Questi coefficienti possono essere quantizzati, nel rispetto delle specifiche, su un numero di bit che varia stadio per stadio ed è compreso tra 2 e 5. Questo perché ho fatto un programma con cicli for per valutare quali fossero i set di coefficienti che rispettavano ancora le specifiche dopo la quantizzazione. Massimo quantizzo su 5 bit perché con lo stadio unico quantizzavo su 6. Minimo quantizzo su 2 bit, infatti se avessi un solo bit non potrei rappresentare 1 in complemento a 2; (se gli dico 0 capisce 0, se gli dico 1 capisce -1); per rappresentare + 1 in complemento a 2 devo avere 2 bit = 01

13 MODIFICA dell’ORDINE delle CELLE
12 bit 15 bit 20 bit 24 bit 25 bit 26 bit 28 bit 5 bit 5 bit 4 bit 2 bit 2 bit 3 bit +3 +5 +4 Le celle che realizzano le elaborazioni più complicate sono all’inizio e causano un aumento del numero di bit consistente già dai primi stadi. +1 +1 +2

14 MODIFICA dell’ORDINE delle CELLE
12 bit 14 bit 15 bit 17 bit 20 bit 24 bit 28 bit 2 bit 2 bit 3 bit 5 bit 4 bit 5 bit +2 +1 +2 Cambio l’ordine. Ora la cella con i coefficienti quantizzati su 2 bit è causa di un aumento del numero di bit pari a 2, mentre prima era pari a 1; questo perché in questa cascata si trova all’inizio e non c’è niente prima che filtra; nella slide precedente invece era più avanti nella cascata e gli stadi che la precedevano avevano già filtrato il segnale. +3 +4 +4

15 QUANTIZZAZIONE d’USCITA
1|0|1 3|-2|3 -7|15|0 1|1|1 4|7|4 15|8|-7 12 bit 24 20 17 15 14 28 E’ possibile ridurre il numero di bit, mantenendo SNR  66 dB? Divisione per una potenza di 2 Arrotondamento Saturazione Esco con 28 bit… sono tanti… ne elimino dai meno significativi (divisione per una potenza di due); ma non tutti i campioni saranno esattamente divisibili per una potenza di 2, allora arrotondo, perché se mi limito a troncare in complemento a 2 ho una polarizzazione del segnale (introduzione di una continua). Saturazione per evitare overload rispetto alla dinamica accettabile.

16 ALGORITMO di ARROTONDAMENTO e SATURAZIONE
b[3]=1AND ((b[23]=0)OR(b[2:0]=0))? OUT:=b[23:4]+1 OUT:=b[23:4] SI SATURA positivo: OUT:=(2^17-1) ESCI NO OUT:=b[21:4] Stringa di bit in uscita dal 5°stadio biquadratico: b[23 : 0] SATURA negativo: OUT:= -(2^17) b[23:4]>(2^17-1)? b[23:4]< -(2^17)? Arrotondamento complesso perché in complemento a 2 c’è polarizzazione del segnale e la si vuole evitare. Già l’arrotondamento è sufficientemente per passare da 24 a 18 bit. Ma per essere sicuri di non commettere errori consistenti, anche nel caso di ingressi particolarmente sfortunati, inserisco la saturazione, che fissa un valore massimo ed un valore minimo in uscita dal quantizzatore. ESEMPIO DI POLARIZZAZIONE: 01111 = +15 se tronco l’ultimo bit ottengo: 0111 = 7 10001 = -15 se tronco l’ultimo bit ottengo: 1000 = -8 ESEMPIO DI SATURAZIONE: 4BIT Dalla cella biquadratica esce = +8; ma è su 5 bit; se non saturo, mi tronca via brutalmente il bit che non ci sta e legge 1000 = -8; se saturo gli dico che ho al massimo 4 bit e quindi posso rappresentare come valore massimo 7 che corrisponde a 0111… e l’errore è molto meno grave!

17 QUANTIZZAZIONE d’USCITA
Esempio: 5° stadio biquadratico 18 bit z - 1 z - 1 x 4 x 7 x 4 4 bit 4 bit 4 bit Il segnale in uscita non occupa tutta la dinamica permessa dai 23 bit; con MatLab si vede che ne bastano 18 mantenendo SNR adeguato. Se però entra qualche segnale non previsto (ad esempio con una componente di rumore molto elevata), può essere che 18 bit non bastino  saturazione. Infatti è meglio saturare che inserire un campione di valore errato nella cella successiva. ESEMPIO: 4 bit in C. a2 max= 7 = 0111 Se mi arriva 8 = e non saturo, lo legge come 1000 = - 8… ma allora commetto un errore meno grave se saturo e faccio diventare + 8  -7. Q 22 bit 22 bit 22 bit U 23 bit 24 bit 18 bit A N T.

18 RISULTATI MatLab NB: a questo punto non ha più senso parlare di ripple perché la quantizzazione d’uscita rende il sistema non lineare non ha più senso parlare di funzione di trasferimento. Per lo stesso motivo non ha senso chiedersi se la risposta in fase è lineare, in quanto la fase viene rappresentata con i diagrammi di Bode e per disegnarli serve la funzione di trasferimento.

19 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

20 DESCRIZIONE VHDL FILTER DATI IN INGRESSO MatLab
TESTBENCH Entity MEMORIZZAZIONE SU FILE DEI DATI IN USCITA DATI IN INGRESSO FILTER MatLab Strutture descritte: Filter, che è il filtro vero e proprio Testbench, che è un file che contiene gli stimoli di ingresso DEFINIZIONE SEGNALI DI CONTROLLO

21 PIPELINING Tck = Tff + Tcomb
z - 1 + Q ff Tck = Tff + Tcomb 25 ns  Sommatori e moltiplicatori complessi  + area  + potenza Tck è fissato; quindi per fare tante operazioni e starci in Tck è facile che il sintetizzatore introduca sommatori e moltiplicatori complessi, che occupano tanta area e dissipano tanta potenza. Allora inserisco banchi di flip flop.  Pipelining: si inseriscono banchi di flip flop

22 n-esima cella biquadratica
PIPELINING Dopo quali celle (biquadratica + quantizzatore) inserire un banco di flip flop? z - 1 + Q n-esima cella biquadratica

23 STRUTTURE DESCRITTE Filter Filter_2ff Filter_3ff Filter_6ff 1°biq
in out Filter Filter_2ff out 1°biq 2°biq 3°biq ff 4°biq 5°biq 6°biq in Filter_3ff out 1°biq 2°biq ff 3°biq 4°biq 5°biq 6°biq in Filter: struttura priva di pipelining Filter_2ff: con uno stadio di pipelining Filter_3ff: con due stadi di pipelining Filter_6ff: con cinque stadi di pipelining grado di pipelining più spinto. Filter_6ff in 1°biq out ff 2°biq 3°biq 4°biq 5°biq 6°biq

24 Filter z - 1 + Q ff In Tck attraversa 6 celle biquadratiche (non aggiunge latenza) Filter_2ff Per capire meglio cosa comporta l’inserimento di una pipeline, si può confrontare la struttura priva di piplining e quella con uno stadio di pipelinig. 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)

25 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 A questo punto si sintetizzano tutte le strutture descritte in VHDL.

26 SINTESI CODICE VHDL SCHEMA CIRCUITALE SINTETIZZATORE RISPETTO DEI
Il sintetizzatore restituisce, a partire dal codice VHDL, uno schema circuitale, cercando di rispettare i vincoli temporali. Più questi sono stringenti, più complessi sono gli elementi circuitali che introduce nello schema. RISPETTO DEI VINCOLI TEMPORALI

27 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 Come ingresso per la sintesi si è scelto un segnale casuale a piena dinamica bianco in frequenza; la tecnologia di sintesi è una H9: 0,13 micron di lunghezza di canale, 1,2 V di alimentazione e 6 strati di metal.

28 RISULTATI della SINTESI
Consumo POTENZA (μW) AREA (μm2) Requisiti di TIMING STRUTTURA sintetizzata (40 MHz) OK Filter Filter_2ff Filter_3ff Filter_6ff Filter_6ff P.O 51136 34448 32612 34319 35186 9160 2838 1933 620 567 Tutte le strutture rispettano i vincoli di timing. La preferibile è quella con il grado più spinto di pipelining, per il ridotto consumo di potenza (soprattutto se confrontato con quello del convertitore A/D che sta a monte del filtro). P.O =Power Optimization Il convertitore A/D consuma una potenza di circa 6÷7 mW

29 RISULTATI della SINTESI
Confronto con un filtro analogo ma: stadio unico ripiegato Consumo POTENZA (μW) AREA (μm2) Requisiti di TIMING STRUTTURA sintetizzata (40 MHz) OK Filter_6ff Filter_6ff P.O UMTS1 UMTS1 P.O 34319 35186 17277 17616 620 567 312 285 Struttura ripiegata metà moltiplicatori, quindi è ragionevole che area e potenza siano la metà. P.O =Power Optimization Il convertitore A/D consuma una potenza di circa 6÷7 mW

30 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

31 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


Scaricare ppt "UNIVERSITÀ DEGLI STUDI DI PAVIA"

Presentazioni simili


Annunci Google