UNIVERSITÀ DEGLI STUDI DI PAVIA

Slides:



Advertisements
Presentazioni simili
Misure riflettometriche nel dominio della frequenza (OFDR)
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta di un corpo circolare sommerso in un serbatoio 50 cm 28 cm Blocco circolare.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
SISTEMA DI ACQUISIZIONE E DISTRIBUZIONE DATI
Processi Aleatori : Introduzione – Parte II
UNIVERSITÀ DEGLI STUDI DI PARMA
Elaborazione numerica del suono
Carlo Di Federico - Matricola n Roberto Gonella - Matricola n
Relatore: Prof. Fabrizio Ferrandi
Tesi di Laurea in Elettronica per le Telecomunicazioni
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA.
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Laureando: Emanuele Viviani
Università degli Studi di Trieste
Università degli Studi di Trieste
Università degli Studi di Trieste
UNIVERSITA’ DEGLI STUDI DI TRIESTE FACOLTA’ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA A.A / 2005 Tesi di Laurea Triennale SVILUPPO.
Luca Pizzamiglio Dipartimento di Elettronica ed Informazione Corso di Laurea in Ingegneria Informatica 17 Giugno 2003 Stimatori d'area per descrizioni.
Erbium Doped Fiber Amplifier EDFA
Esercitazioni su circuiti combinatori
PROGETTO DI FILTRI IIR DA FILTRI ANALOGICI
Introduzione ai circuiti sequenziali
Reti Logiche A Lezione n.1.4 Introduzione alle porte logiche
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
Laboratorio del 29/09/05 Processi AR
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Criticità sui dati Consideriamo una sequenza di 5 istruzioni
Criticità sui dati (1° esempio)
DATA PROCESSING UNIVERSITÀ DEGLI STUDI DI ROMA “LA SAPIENZA”
Criticità sui dati (esempio da fare on line)
Criticità sul controllo
Come aumentare le linee di I/O?
Convertitore A/D e circuito S/H
Laboratorio di El&Tel Elaborazione numerica dei segnali: analisi delle caratteristiche dei segnali ed operazioni su di essi Mauro Biagi.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Simulazione di un esperimento di laboratorio: Caduta di un corpo quadrato in.
Schema a blocchi di un convertitore A/D a sovracampionamento
Contatore: esempio di circuito sequenziale
Il rumore termico, definizione
FACOLTA’ DI INGEGNERIA
Microfono digitale in banda audio per telefonia cellulare
Relatore: Prof. Carla VACCHI Correlatore: Ing. Daniele SCARPA
PROGETTO DI UN FILTRO POLIFASE FIR DECIMATORE PER IMPIEGO IN UN SISTEMA MULTISTANDARD UMTS-WLAN RELATORE: Prof. Carla Vacchi CORRELATORE: Ing. Everest.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
UNIVERSITÀ DEGLI STUDI DI PAVIA
COMPENSAZIONE ADATTATIVA DELLE VIBRAZIONI NEGLI HARD DISK
CARRY LOOKAHEAD ADDER:
L’amplificatore operazionale (AO)
Amplificatore di media potenza per la banda dei 23 cm
DISPOSITIVI DI AMPLIFICAZIONE
PROGETTO DI UN CIRCUITO PER L'ALIMENTAZIONE E LA PROTEZIONE
Elaborato di Laurea di Alessandro LAZZARINI BARNABEI
UNIVERSITA' DEGLI STUDI DI PAVIA
Bando Pittori e Scultori in Piemonte alla metà del ‘700
Tesi di laurea triennale
Teoria dei sistemi Autore: LUCA ORRU'.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano introduzione alle architetture superscalari Come.
Laurea Ing EO/IN/BIO;TLC D.U. Ing EO 4
GENERAZIONE DI FORME D’ONDA TRAMITE CONVERSIONE DI FREQUENZA
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Laurea Ing. EO/IN/BIO;TLC D.U. Ing EO 3
D.I.Me.Ca. – D.I.Me.Ca. – Università degli Studi di Cagliari Facoltà di Ingegneria Dipartimento di Ingegneria.
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTA’ DI INGEGNERIA ELETTRONICA
Data Acquisition System I° Modulo(DAS) Corso di Elettronica1.
Prof. Bruno Riccò D.E.I.S. Università di Bologna 1 Sistemi elettronici: una panoramica.
ELETTRONICA DIGITALE – circuiti sequenziali
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
RUMORE DI QUANTIZZAZIONE. Concetti principali L’analisi dei sistemi di controllo digitale presuppone il fatto che il dispositivo utilizzato abbia uno.
Transcript della presentazione:

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

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.

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.

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.

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…..)

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

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.

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.

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.

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.

SET di COEFFICIENTI NORMALIZZATI b0 -0.4788 +1.0000 +0.5810 +1.0000 +1.0000 +1.0000 b1 +1.0000 +0.5212 +1.0000 +0.9801 +0.0507 -0.6573 b2 +0.0000 -0.4788 +0.5810 +1.0000 +1.0000 +1.0000 Questi sono i coefficienti dei singoli stadi biquadratici normalizzati al massimo per ogni stadio.

SET di COEFFICIENTI QUANTIZZATI 5 bit 4 bit 2 bit 3 bit -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 -7 15 0 15 8 -7 4 7 4 1 1 1 1 0 1 3 -2 3 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

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

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

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.

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 01000 = +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!

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 = 01000 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.

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.

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 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

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

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

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

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)

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.

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

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.

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

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

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