Progettazione di un convertitore analogico digitale in architettura multistadio
1. Progettazione di un convertitore analogico digitale a
8 bit in architettura multistadio
Ing. Nelson Firmani
Dipartimento di Ingegneria Elettrica
Università di L’Aquila, AQ 67040, Italy
1
2. INDICE
PREMESSA .................................................................................................................................... 3
1 INTRODUZIONE ................................................................................................................. 4
1.1 STRUTTURE DI CONVERTITORI A/D ............................................................................................... 5
1.1.1 CONVERTITORE A/D A RAMPA LINEARE....................................................................................... 5
1.1.2 CONVERTITORE A/D A DOPPIA RAMPA ......................................................................................... 6
1.1.3 CONVERTITORE A/D AD APPROSSIMAZIONE SUCCESSIVA...................................................... 6
1.1.4 CONVERTITORE A/D TIPO FLASH .................................................................................................... 7
1.1.5 CONVERTITORE A/D TIPO HALF -FLASH ....................................................................................... 7
1.2 PRESTAZIONI E SPECIFICHE DEI CONVERTITORI A/D e D/A ................................................. 8
1.3 ERRORE DI QUANTIZZAZIONE .............................................................................................. 10
2 PROGETTO DI UN ADC 8 BITS A 4 STADI ............................................................... 12
2.1 PRINCIPIO DI FUNZIONAMENTO DI UN ADC MULTISTADIO ............................................... 12
2.2 PROGETTO DELL’ADC 8 BITS A 4 STADI...................................................................................... 14
2.2.1 Sub-ADC ................................................................................................................................................ 14
2.2.2 Sub-DAC ................................................................................................................................................ 15
2.2.3 Blocco tensioni di riferimento ................................................................................................................ 16
2.2.4 Blocco residuo-amplificazione ............................................................................................................... 17
2.3 SIMULAZIONI ..................................................................................................................................... 18
3 PARAMETRI STATICI DI UN ADC............................................................................ 21
3.1 CASSIFICAZIONE DEGLI ERRORI STATICI DI UN ADC .......................................................... 21
3.2 METODI PER VALUTARE GLI ERRORI STATICI DI UN ADC................................................. 23
3.2.1 PRIMO METODO: Misura dei punti di transizione e simulazione ..................................................... 23
3.2.2 SECONDO METODO : Code density test (histogram) e simulazione ................................................. 28
3.3 FUNZIONE DI TRASFERIMENTO DELL’ADC PROGETTATO ................................................ 34
CONCLUSIONI..................................................................................................................................... 36
APPENDICE ........................................................................................................................................... 38
BIBLIOGRAFIA ................................................................................................................................... 40
2
3. Simboli e abbreviazioni
ABBREVIAZIONE DESCRIZIONE
A/D Analog to Digital
ADC Analog to Digital Converter
AMPS Advanced Mobile Phone System
[b0…b7] Bit d’uscita dell’ADC
CODE Codice in uscita dell’ADC
D-AMPS Digital AMPS
DC Direct Current
DNL Differential Non-Linearity
GSM Global System for Mobile Comunication
INL Integral Non-Linearity
LSB Least Significant Bit
MSB Most Significant Bit
SA Successive Approximation
SNR Signal to Noise Ratio
V[j] Tensioni nei punti di transizione di codice
Vdac Tensione all’uscita del DAC
Vin Tensione all’ingresso dell’ADC
VFS Tensione di fondo scala
Vrif Tensione di riferimento
3
4. PREMESSA
Oggetto del seguente lavoro è la progettazione di un convertitore analogico digitale a 8 bit
utilizzando l’architettura multistadio.
Il pregio di questa architettura rispetto ad una architettura tipo FLASH con gli stessi bit di
risoluzione è la bassa complessità circuitale
che rende adatto questo tipo di convertitore A/D in tutte quelle
applicazioni dove è necessario alta integrabilità e basso consumo di potenza.
Tutto questo a spesa di una riduzione nella velocità di conversione.
4
5. 1 INTRODUZIONE
La tendenza dei moderni sistemi di comunicazione è di rendere qualsiasi cosa digitale. Solo 15 anni
fa la tecnologia radiomobile era dominata dai sistemi analogici TACS, NMT, AMPS. Questi sistemi
sono ora completamente sostituiti dai sistemi digitali GSM e D-AMPS.
Le ragioni di questo cambiamento sono:
• La rapida evoluzione tecnologica dei settori dell'elaborazione digitale dei segnali e
l'integrazione dei componenti elettronici per effetto della disponibilità dei circuiti integrati
VLSI.
• L’informazione può essere compressa inoltre si può utilizzare una frequenza per servire piú
utenti, tramite l'utilizzo di tecniche TDM (Time Division Multiplexing)
• I sistemi digitali sono meno sensibili a rumore ed interferenze.
• Maggiore sicurezza nella trasmissione dati e maggiore riservatezza dei dati è consentito
grazie agli algoritmi di cifratura
• L’informazione non solo può essere compressa o criptata ma può essere facilmente elaborata
da software.
Quindi per tutte queste ragioni oggi l’informazione analogica, come suoni e immagini, viene
convertita in segnale digitale mediante circuiti detti convertitori analogici-digitali (ADC), quindi
elaborata e riconvertita mediante convertitori digitali-analogici (DAC).
E più la comunicazione è digitale più cresce la domanda di ADC e DAC dalle caratteristiche
performanti: alta velocità di conversione, alta risoluzione, basso costo di produzione, basso
consumo di potenza.
In questa tesina dopo una prima parte introduttiva dove vengono descritte le principali tecniche di
conversione A/D nonchè i parametri che descrivono le prestazioni di un ADC, si procede alla
realizzazione di un ADC a 8 bits quindi alla verifica del funzionamento mediante simulazione.
E’ da tenere presente che non spendiamo particolare risorse nella progettazione dell’ADC a 8 bits,
in quanto non abbiamo specifiche restrittive in termini di velocità, precisione o consumo di potenza
da rispettare. Anche perché scopo di questa tesina non è tanto nella realizzazione di un ADC dalle
caratteristiche peculiari, bensì è quello di mettere in evidenza i metodi che si impiegano per
misurare (testare) le prestazioni dei convertitori A/D.
5
6. 1.1 STRUTTURE DI CONVERTITORI A/D
In questa sezione descriviamo brevemente alcune strutture di convertitori A/D, informazioni più
dettagliate possono essere trovate in [2], [3], [16].
Esistono diversi tipi di ADC, ma il principio di funzionamento può essere schematizzato come in
figura 1.1. L’elemento fondamentale è il comparatore, che confronta il segnale in ingresso con un
segnale generato localmente e rivela quale dei due è più grande fino a che quest’ultimo non diventa
uguale al segnale in ingresso. Il generatore locale del segnale di confronto può essere realizzato con
una rete a pesiera o con un circuito a rampa lineare, mentre i circuiti sequenziali di controllo sono
un insieme di circuiti logici che, a seconda del segno della tensione in uscita al comparatore, danno
i comandi al registro di conteggio.
Figura 1.1 Principio di funzionamento di un ADC
1.1.1 CONVERTITORE A/D A RAMPA LINEARE
In questo caso il generatore del segnale di confronto è
un generatore di rampa lineare. In uscita al comparatore
si ottiene un impulso rettangolare che inizia
contemporaneamente alla rampa e termina quando
questa eguaglia il segnale d’ingresso. La durata di questa
impulso è perciò proporzionale al valore della tensione
di ingresso. Un registro di bistabili conta i periodi di un
oscillatore compresi entro la durata dell’impulso,
durante il quale la porta lineare è aperta. Tale numero
costituisce l’uscita del ADC ed è proporzionale al valore
della tensione d’ingresso. La precisione e la risoluzione
del ADC dipendono fondamentalmente dall’oscillatore e
dal generatore di rampa.
6
7. 1.1.2 CONVERTITORE A/D A DOPPIA RAMPA
Questo tipo di convertitore viene spesso impiegato in
voltmetri digitali. Vediamone il funzionamento:
All’inizio del processo (t=0) S1 è collegato alla tensione
Va da convertire e l’integratore genera una rampa
decrescente (Vo=-(t/t)Va). Il contatore viene
incrementato dagli impulsi Ck fino a quando il FFn è
portato con uscita Q=1 e tutti i bistabili del contatore
sono nuovamente azzerati. In questo istante (t=T1) S1 si
collega a -Vr e l’integratore genera una seconda rampa,
questa volta crescente (Vo=-(t/t)Vr). Nuovamente il
contatore è incrementato dagli impulsi Ck fino a quando
Vo=0 ed il comparatore inibisce la porta G1. Si può
dimostrare che il numero registrato nel contatore è
proporzionale alla tensione Va ed indipendente dalla
costante di tempo t .
1.1.3 CONVERTITORE A/D AD APPROSSIMAZIONE SUCCESSIVA
Principio di funzionamento:
Nel ADC per successive approssimazioni i circuiti
sequenziali di controllo sono più complicati e
permettono la generazione di un segnale che si confronta
con l’ingresso a partire dal MSB (bit più significativo)
fino al LSB (bit meno significativo) secondo la sequenza
riportata in figura.
In questo modo si raggiungono velocità di conversione
più elevate ed indipendenti dal valore del segnale
d’ingresso (infatti ogni conversione necessita di n
periodi d’orologio, se n è il numero di bit di
conversione).
7
8. 1.1.4 CONVERTITORE A/D TIPO FLASH
Questo tipo di ADC garantisce la massima velocità di
conversione a discapito della complessità circuitale e
quindi del costo. Infatti occorrono ben 2^n-l
comparatori per convertire un segnale analogico in un
numero di n bit.
In figura è rappresentato un ADC FLASH a 3 bit. Il
campo di variazione dell’ingresso viene suddiviso in 8
fasce (2^n con n=3) ed i comparatori determinano il
numero di soglie che vengono superate dal segnale da
convertire. Un codificatore di priorità genera il numero
binario di uscita secondo la tabella di verità mostrata
in figura.
1.1.5 CONVERTITORE A/D TIPO HALF -FLASH
I convertitori flash sono ottimi per il funzionamento ad
alta velocità, ma la quantità di comparatori limita la
risoluzione.
I convertitori di tipo half flash utilizzano invece un
processo a due stadi per raggiungere risoluzioni
maggiori di quelle dei convertitori flash, oppure per
raggiungere la stessa risoluzione con minori
dimensioni del die. In altre parole l’ADC HALF
FLASH sacrifica la velocità di conversione (dimezza
circa rispetto al FLASH) ma diminuisce notevolmente
la complessità circuitale. Infatti volendo realizzare un
ADC 8bit FLASH sono necessari 2^8-1=255
comparatori mentre utilizzando un’architettura HALF
FLASH occorrono 2*(2^4-1)=30 comparatori.
8
9. 1.2 PRESTAZIONI E SPECIFICHE DEI CONVERTITORI A/D e D/A
Per valutare le qualità di un convertitore A/D o D/A si deve possedere una piena conoscenza dei
seguenti parametri:
• Risoluzione (resolution)
Per gli ADC è definita come la più piccola variazione di ingresso che fa commutare l’uscita
ad un codice immediatamente successivo.
Per i DAC è definita come la variazione di tensione che si ha in uscita quando il codice
d’ingresso passa ad un codice immediatamente successivo.
La risoluzione può essere espressa in bit o in % del fondo scala. Un convertitore ad N bit è
in grado di convertire una informazione in 2^N combinazioni, così la risoluzione sarà ½^N.
Es: N=10 ½^10=0.000977 => 0.0977%
• Precisione (accurancy)
Negli ADC definisce la differenza tra l’effettivo segnale d’ingresso e il fondo scala
equivalente del codice binario di uscita. Se un ADC a 12 bit ha una precisione stabilita di
±1LSB la sua precisione sarà pari a ±0.0245% cioè 2 volte il minimo errore possibile di
quantizzazione.
La precisione serve per avere un’idea di quanto il risultato è attendibile. Essa è la somma di
tutti i possibili errori. Un DAC a 12 bit non potrebbe avere una precisione superiore ad
±1/2LSB cioè ±0.0122% del fondo scala. Da notare che ±0.0122% rappresenta la deviazione
dal valore vero, cioè la precisione è pari a 99.9878%.
• Errore di quantizzazione (quantizing Error)
E’ la massima deviazione da una funzione di trasferimeto a linea retta di un ADC perfetto.
L’errore può essere ridotto a zero solo se (teoricamente) si porta ad infinito il numero di bit.
(vedi paragrafo 1.3)
• Velocità di conversione (conversion rate)
E’ la rapidità con la quale un ADC o un DAC può fare conversioni.
Essa può essere espressa come numero di conversioni/sec oppure il tempo necessario per
eseguire una conversione.
Spesso è riferita ad una risoluzione inferiore a quella totale in modo da risultare falsamente
elevata.
• Tempo di assestamento (settling time)
Tale parametro riguarda i convertitori DAC, specifica il tempo intercorso tra una transizione
di codice e l’istante in cui l’uscita è sufficientemente prossima al suo valore finale.
• Velocità di risposta (slew rate)
La velocità di risposta riguarda soprattutto l’amplificatore d’uscita di un DAC. Esso non
può fornire in uscita il valore di tensione corretto all’istante.
• Glitches
Se la commutazione di un bit ha velocità diversa da quella degli altri, si ha il passaggio per
stati digitali non voluti che sull’uscita analogica si presentano come brevi impulsi o “glitch”
9
10. • Errore di fuori zero (offset error)
Negli ADC è la tensione richiesta in ingresso per fissare in uscita il codice zero.
Nei DAC è la tensione di uscita con codice zero in ingresso.
• Errore di guadagno (gain error)
Negli ADC è lo scostamento dal valore teorico del segnale d’ingresso per un codice di
uscita di fondo scala.
Nei DAC è la deviazione dal valore teorico del segnale d’uscita per un dato codice di
ingresso, di solito di fondo scala
• Errore di non linearità
Sono quelli che portano ad un deviazione da una curva di trasferimento lineare, riguarda sia
gli ADC che i DAC.
Gli errori di non linearità insieme agli errori di offset e di guadagno costituiscono i parametri statici
di un ADC. Un analisi dettagliata di questi parametri e i metodi di valutazione verrà fatta nel
capitolo 3.
10
11. 1.3 ERRORE DI QUANTIZZAZIONE
Il segnale di ingresso di un ADC è un segnale continuo con un infinito numero di possibili stati,
mentre l’uscita digitale è una funzione discreta con un numero di stati differenti determinato dalla
risoluzione dell’ADC.
Ne segue che nella conversione A/D parte del segnale analogico d’ingresso viene rappresentato
dallo stesso codice digitale in uscita. In altre parole parte dell’informazione all’ingresso dell’ADC
va persa nella conversione.
Quindi nel processo di quantizzazione (rappresentazione o meglio approssimazione del segnale
analogico d’ingresso mediante un segnale costituito da ampiezze discrete) si introduce un errore
(errore di quantizzazione).
Figura 1.1 Errore di quantizzazione
Consideriamo la funzione di trasferimento ideale di un ADC (figura 1.1a).
Possiamo definire l’errore di quantizzazione al j-esimo passo la grandezza:
Ej=Vin-Vj
I valori assunti dalla variabile Ej saranno compresi nell’intervallo ± ½ LSB o ± ½ q dove q è
l’ampiezza di un passo (figura 1.1b).
Se q è sufficientemente piccolo, è ragionevole ritenere Ej una variabile aleatoria uniformemente
distribuita su q con una funzione di densità di probabilità data da:
11
12. 1 q q
p(ε) = − ≤ε ≤
q 2 2
p(ε) = 0 altrove
Pertanto possiamo determinare il valore quadratico medio dell’errore di quantizzazione:
q/2
1 q2
σ = ∫ ε 2 dε =
2
q −q / 2 12
Questo risultato ci permette di valutare il rapporto segnale rumore (SNR) di un ADC ideale. Se
consideriamo un segnale di ingresso sinusoidale:
Vin(t ) = A ∗ sin(ωt )
la cui potenza è:
2π
1 A2
P( s) = ∫ A sin (ϖt )dt =
2 2
2π 0
2
si ha:
P( s) A2 / 2 2A A
SNR (dB ) = 10 log = 10 log 2 ma q = 1LSB = = n −1
P (ε ) q / 12 2 n
2
sostituendo:
3 ⋅ 2 2n
SNR (dB ) = 10 log( ) = 6.02n + 1.76dB
2
Questo è il valore ideale per un ADC a n bit.
Il risultato mette in evidenza che ogni bit di risoluzione in più fornisce un miglioramento nel SNR
di circa 6dB.
OSSERVAZIONI:
Gli errori di non linearità provocano una riduzione nel SNR, infatti supponiamo una forte non
linearità differenziale che provoca un missing code. Questo è equivalente a una riduzione di 1bit di
risoluzione e cioè ad una riduzione di 6dB nel rapporto segnale rumore (SNR).
12
13. 2 PROGETTO DI UN ADC 8 BITS A 4 STADI
Questo capitolo inizia con una trattazione teorica del principio di funzionamento di un ADC
multistadio. Dopo aver analizzato le caratteristiche i vantaggi e gli svantaggi di questa struttura si
passa al progetto di un ADC 8 bits a 4 stadi e quindi alla trattazione delle singole parti – sub ADC –
sub DAC e blocco amplificatore-residuo. Infine si procede alla verifica del funzionamento
mediante simulazione.
2.1 PRINCIPIO DI FUNZIONAMENTO DI UN ADC MULTISTADIO
Come nell’ADC HALF FLASH la conversione avviene in 2 passi, nell’ADC multistadio la
conversione avviene in più passi. In altre parole possiamo vedere ogni stadio come un ADC a bassa
risoluzione, quindi collegando più stadi possiamo ottenere una risoluzione più fine.
Figura 2.1 Flowchart di come lavora un ADC MULTISTADIO
In figura 2.1 è mostrato in un flowchart come lavora un ADC MULTISTADIO (in questo caso per
semplicità supponiamo 1 bit per stadio).
Nel primo passo (i=0) otteniamo il bit più significativo b0 (MSB). Se l’ingresso è maggiore del
livello di riferimento allora b0=1 inoltre si calcola il residuo sottraendo l’ingresso dal livello di
riferimento. Il residuo è moltiplicato per 2^B (in questo caso un bit per stage => B=1) e riportato
all’ingresso per il secondo passo. Sempre in figura 2.1 si può vedere come l’uscita digitale si forma
durante i vari passi ovvero nei diversi stadi.
In figura 2.2 è mostrato la struttura di un ADC MULTISTADIO il principio di funzionamento è il
seguente:
In primo luogo viene eseguita una quantizzazione approssimativa dell’ingresso (normalmente con
un convertitore flash a B bits ‘sub-ADC’). L’uscita digitale del sub-ADC è applicata ad un
13
14. convertitore D/A (sub-DAC) che genera un’uscita analogica Vdac, quindi si determina il residuo
sottraendo dal segnale d’ingresso il segnale all’uscita del sub-DAC (RESIDUO=Vin-Vdac).
Il residuo è quindi amplificato e applicato allo stadio successivo. Le tre fasi precedenti sono
ripetute ciclicamente fino all’ultimo stadio che fornisce i bits meno significativi del codice digitale
formatosi nei vari stadi (codice digitale che rappresenta il segnale analogico dell’ingresso).
Figura 2.2 Struttura di un ADC MULTISTADIO
I vantaggi di questa struttura rispetto ad una struttura tipo FLASH con gli stessi bit di risoluzione
sono:
• Bassa complessità hardware (ad esempio per un ADC ad N bit a M stadi sono necessari
( )
M ∗ 2 N / M − 1 comparatori invece di 2 N − 1 necessari per un ADC flash ad N bits)
• Basso consumo di potenza
• Alta integrabilità.
Gli svantaggi sono:
• La velocità di conversione diminuisce con l’aumentare degli stadi
• La velocità di conversione è limitata dall’amplificatore.
• Le cause di errore non risiedono soltanto nei comparatori (errore di offset) ma anche nel
convertitore D/A, nel dispositivo impiegato per calcolare il residuo e nell’amplificatore
14
15. 2.2 PROGETTO DELL’ADC 8 BITS A 4 STADI
In figura 2.3 è presente lo schema elettrico dell’ADC 8 bit a 4 stadi. Possiamo suddividere l’analisi
dello schema in 4 punti:
• Blocco sub-ADC
• Blocco sub-DAC
• Blocco residuo-amplificazione
2.2.1 Sub-ADC
Il blocco sub-ADC è costituito da un ADC di tipo flash (figura 2.4). Tutti i comparatori hanno un
ingresso in comune (Vin), mentre l’altro ingresso è collegato ad una tensione di riferimento (v1,v2,
v3). Se l’ingresso analogico è superiore al riferimento di un comparatore, la sua uscita è alta; in
caso contrario, l’uscita è bassa. Infine un circuito di codifica (U1) esamina le transizioni fra le uscite
alte e basse dei comparatori, codificandole in modo da ottenere un’uscita digitale (bit1,bit0). Il
numero dei comparatori dipende dalla risoluzione (B bits) del sub-ADC:
Numero comparatori = numeri livelli di rif. – 1 = 2 B − 1
Per minimizzare il ritardo di ogni stadio e il consumo di potenza dell’ADC la risoluzione di ogni
stadio dovrebbe essere mantenuta piccola (minore di 4bit ,con 4bit sono richiesti 15 comparatori per
stadio). Questo perché il numero di comparatori nel sub-ADC cresce esponezialmente con il
numero di bit di risoluzione. Un grande numero di comparatori determina un maggior consumo di
potenza, più spazio nel chip, rallenta il circuito e produce un carico maggiore all’uscita dello stadio
precedente.
Nel nostro progetto usiamo una risoluzione per stadio pari a 2 bits (B=2) quindi abbiamo 3 livelli di
riferimento e sono necessari 3 comparatori.
La scelta (progetto) del comparatore va fatto tenendo conto di alcune specifiche:
• Il tempo di comparazione deve essere molto piccolo.
• La tensione di OFFSET del comparatore deve essere la più piccola possibile (in genere si
richiede che sia <1/2LSB dell’ADC, quindi per un ADC a 8 bits con un fondo scala di 5V
(VFS=5V) si ha che OFFSET<1/2*(5/2^8)=9.8mV)
• Il consumo di potenza deve essere il più piccolo possibile
• Infine bisogna tener conto del carico d’ingresso del sub-DAC che il comparatore va a
pilotare.
La scelta del comparatore è caduta sul noto LM311.
LM 311 non è un comparatore molto veloce (il tempo di risposta è di 200ns contro i 40ns del
LM106 o del LM710) ma in compenso è più stabile, non vengono innescate oscillazioni spurie
15
16. inoltre LM311 presenta una tensione di offset massima di 7.5mV quindi inferiore a 1/2LSB
(9.8mV) dell’ADC 8bit.
Infine l’uscita del LM311 è compatibile con i segnali delle porte logiche TTL quindi non presenta
problemi nell’interfacciamento con l’encoder 74F148.
2.2.2 Sub-DAC
Il sub-DAC (figura 2.5) riceve all’ingresso il codice digitale del sub-ADC, e il corrispondente
valore analogico d’uscita (Vdac) viene sottratto dal segnale d’ingresso dello stadio considerato per
formare il segnale (residuo) inviato all’ingresso dello stadio successivo.
Poiché usiamo 2 bit per stadio è necessario avere un DAC a 2 bit in ogni stadio. Quindi abbiamo
2^2-1=3 livelli di tensione di riferimento (v1, v2, v3) che creano l’uscita del sub_DAC (Vout)
secondo la parola binaria di lunghezza 2 bits posta all’ingresso (bit0, bit1) del decoder 74F139.
Un problema da tener conto nella progettazione del sub_DAC è la formazione dei cosidetti
“glitches” impulsi spuri determinati dalla differenza nei tempi di propagazione dei segnali nel
circuito. Consideriamo ad esempio la transizione dell’ingresso digitale del DAC da codice b1b0=10
a b1b0=01, bene se la commutazione di b0 avviene un’istante prima di b1 in quell’istante si crea un
ingresso digitale ‘11’ non voluto “glitches”.
Questi glitches oltre ad aumentare il consumo di potenza del convertitore causa un aumento del
tempo di assestamento (settling time) e quindi una riduzione della velocità di conversione.
16
17. 2.2.3 Blocco tensioni di riferimento
Sia nel Sub-ADC che nel Sub-DAC abbiamo bisogno di tensioni di riferimento. Queste tensioni
possono essere generate ai capi di 2^N resistori (nel nostro caso N=2 quindi 4 resistori) connessi
come in figura.
k
∑ Ri
Vrk = i =1
2N
Vrif
∑ Ri
i =1
La non idealità delle tensioni di riferimento influenza la distribuzione delle occorrenze dei codici di
uscita dell’ADC in altre parole accentua gli errori di non linearità dell’ADC.
Le cause della non idealità delle tensioni di riferimento sono: resistori non ideali, dipendenza dalla
temperatura e variazioni della tensione di alimentazione.
2.2.4 Blocco residuo-amplificazione
L’operazione che deve compiere questo blocco è sottrarre dal segnale d’ingresso V(+) il segnale
proveniente dal Sub-DAC V(-) quindi amplificare il tutto per 2^2=4
Residuo = V(+) – V(-)
Vd = [V (+ ) − V (−)] ∗ 2 2
Si utilizza due amplificatori operazionali in cascata.
Il primo in configurazione invertente cambia di segno al segnale d’ingresso V(+) portandolo a
V0 = -V(+).
Il secondo effettua la somma tra V0 = - V(+) e V(-) e amplifica di 2^2, inoltre essendo in
configurazione invertente cambia di segno al segnale di uscita Vd:
Vd = −[−V (+ ) + V (−)] ∗ 2 2 = [V (+ ) − V (−)] ∗ 2 2
che è quanto si voleva.
17
18. 1) stadio amplificatore op. in configurazione invertente con A=-1
R2
V0 = − ∗ V (+)
R1
R 2 = R1 ⇒ V 0 = −V (+ )
2) stadio sommatore segnali
IR3 + IR5 = IR 4
V (−) − VN V 0 − VN VN − Vd
+ =
R3 R5 R4
Aideale → ∞ ⇒ massavirtuale ⇒ VN = 0 ⇒
V ( −) V 0 Vd
+ =−
R3 R5 R4
se R3=R5=R si ha :
∗ [V (−) + V 0] [V (+) − V (−)]
R4 R4
Vd = − ma V0=-V(+) quindi : Vd =
R R
con R4=4R si ha : Vd = 4 ∗ [V (+ ) − V (−)]
Considerazioni:
Il blocco residuo-amplificazione rappresenta una reale limitazione alla velocità di conversione
dell’ADC.
Inoltre le non idealità dell’amplificatore operazionale (si pensi alla tensione di offset) determinano
errori nel calcolo del residuo che si propagano nei vari stadi, questo determina un aumento della
non linearità differenziale del convertitore A/D.
Come ampl. operazionale si è scelto LF411 grazie soprattutto all’alta velocità (slew rate: 15V/us) e
alla bassa tensione di offset (0.8 mV) nonché per l’alta impedenza di ingresso e l’ampia larghezza
di banda.
18
19. 2.3 SIMULAZIONI
Riassumiamo brevemente le caratteristiche di progetto dell’ADC di figura 2.3 :
• Uscita digitale a 8bits (risoluzione N=8bits)
• Formato unipolare delle tensioni di riferimento.
• Campo di variabilità dell’ingresso analogico da 0V a 5V (VFS=5V è la tensione di fondo
scala)
VFS 5V
• Ampiezza massima dell’errore di quantizzazione è 1LSB = N = 8 = 19.53mV
2 2
Da quest’ultimo dato ci aspettiamo la commutazione dell’uscita digitale ad un codice
immediatamente successivo quando la tensione dell’ingresso analogico subisce una variazione di
1LSB=19.53mV.
Verifichiamo il funzionamento dell’ADC progettato mediante simulazione.
Una prima simulazione consiste nella misura approssimativa del tempo di conversione.
Figura 2.9 Tempo di conversione dell’ADC
19
20. Dal tracciato della simulazione (figura 2.9) si nota che l’uscita digitale si stabilizza dopo 1.7 us.
Nelle simulazioni successive verifichiamo la corretta conversione analogica digitale (figura 2.10 e
figura 2.11) applicando all’ingresso dell’ADC diversi livelli di tensione di durata di 2us e leggendo
il corrispondente codice digitale di uscita:
In figura 2.10 si può ad esempio osservare che quando il livello di tensione d’ingresso passa da 0 a
20 mV (≅1LSB) l’uscita digitale dal codice 00000000 passa al codice 00000001.
Figura 2.10 Conversione A/D con livelli di tensione di ingresso cha vanno da 0 a 1V
20
21. Figura 2.11 Conversione A/D con livelli di tensione di ingresso cha vanno da 0 a 5V
Dai tracciati di figura 2.10 e 2.11 risulta una corretta conversione A/D per tutti i livelli del segnale
di ingresso che abbiamo scelto.
21
22. 3 PARAMETRI STATICI DI UN ADC
In questo capitolo dopo una trattazione teorica degli errori statici di un ADC verranno presentati
due metodi per la loro valutazione. Quindi si procede alla simulazione dell’ADC 8bits a 4 stadi
da noi progettato. Dai dati della simulazione e con l’ausilio del software matematico matlab
valutiamo i parametri statici dell’ADC mediante un algoritmo che esegue i metodi descritti.
Infine si procede ad una analisi dei risultati ottenuti.
3.1 CASSIFICAZIONE DEGLI ERRORI STATICI DI UN ADC
• GAIN ERROR (Errore di guadagno)
• OFFSET ERROR (Errore di offset)
• DNL (Errore di non linearità differenziale)
• INL (Errore di non linearità integrale)
Offset error:
E’ il valor medio di tensione richiesto
in ingresso per fissare in uscita il
codice zero.
E’ causato dall’amplificatore o
dall’ingresso di tensione e di corrente
offset del comparatore. L’errore di
offset è molto importante nei sistemi
DC (es. voltmetro digitale). Esso può
essere espresso in % del fondo scala
(%FSR) o in frazione di LSB.
Gain error:
E’ la massima deviazione della curva
caratteristica dell’ADC dalla curva
ideale per un codice di uscita di fondo
scala. Esso può essere causato da vari
fattori :
errori nelle tensioni di riferimento, dal
passo standard delle resistenze di
riferimento, dal guadagno
dell’amplificatore ecc.
Può essere minimizzato regolando il
guadagno dell’amplificatore o la
tensione di riferimento.
22
23. Errore di non linearità differenziale:
I gradini della caratteristica di
conversione dovrebbero avere
larghezza pari a s1=1LSB, ma nella
caratteristica reale i gradini hanno
larghezza s2, diversa da s1. La
differenza s1-s2 è l’errore di non
linearità differenziale.
In presenza di forte non linearità
differenziale, un gradino può essere
totalmente assorbito da quelli adiacenti
e il codice corrispondente al gradino
eliminato viene perso “missing code
(codice mancante)”
Errore di non linearità integrale:
E’ una misura di come la funzione di
trasferimento dell’ADC
complessivamente devia da una
funzione di trasferimento
perfettamente lineare.
La INL può essere determinata anche
mediante l’integrazione degli errori
DNL.
Considerazioni:
L’importanza della INL o DNL
dipende dall’applicazione dell’ADC.
Se la precisione è fondamentale
(esempio nella misura di tensione o
corrente in un processo industriale)
allora la INL è più importante. Ma in
un’applicazione audio la INL
rappresenta un errore complessivo di
amplificazione che è poco rilevante
mentre la DNL da una migliore idea
delle distorsioni udibili prodotte
dall’ADC
23
24. 3.2 METODI PER VALUTARE GLI ERRORI STATICI DI UN ADC
Il primo metodo consiste nell’aumentare il segnale di ingresso analogico dell’ADC lentamente,
quindi memorizzare il valore dell’ingresso analogico quando l’uscita digitale cambia (punto di
transizione). Dai punti di transizione si può calcolare l’errore di offset, l’errore di guadagno e
l’errore di non linearità differenziale e integrale.
Il secondo metodo (metodo statistico) consiste nell’applicare un segnale noto (es. onda triangolare,
onda sinusoidale) all’ingresso analogico del convertitore e misurare il numero delle occorrenze di
ogni codice. Dall’istogramma ottenuto possiamo determinare la non linearità differenziale e la non
linearità integrale dell’ADC. Per avere un risultato affidabile è necessario un numero
sufficientemente grande di occorrenze quindi la frequenza del segnale d’ingresso non è del tutto
arbitraria. In genere si utilizza come segnale d’ingresso un onda sinusoidale in quanto si può
rilevarne l’esatta ampiezza di banda.
3.2.1 PRIMO METODO: Misura dei punti di transizione e simulazione
• Applicare un segnale lentamente variabile all’ingresso analogico dell’ADC (Figura 3.1)
• Quindi memorizzare i valori dell’ingresso analogico Vin quando l’uscita digitale cambia di
1LSB (es. da 0010 a 0011)
• I valori memorizzati costituiscono i punti di transizione dell’uscita digitale:
Figura 3.18 Caratteristica di un ADC con un range d’ingresso unipolare. In evidenza i punti di
transizione della Vin (V[j]) tra il codice j-1 e il codice j
24
25. Calcolo dei parametri statici dai punti di transizione
Consideriamo un ADC con un range d’ingresso unipolare (Vin va da 0V a VREF) e con N bits di
risoluzione.
Siano V[j] j = 1…2^N-1 i punti di transizione ovvero le tensioni misurate all’ingresso dell’ADC
quando si verifica la transizione tra il codice j-1 e il codice j.
Definiamo inoltre:
VZS = V[1] è la tensione Vin nella transizione tra il codice zero e il codice successivo (fig. 3.18)
VFS_1=V[2^N-2] è la tensione Vin nella transizione tra il codice di FS meno 1 e il codice FS
LSB (in volt) = VREF/2^N è l’ampiezza teorica della tensione di 1 LSB
ALSB (in volt) = (VFS_1-VZS)/(2^N-2) è l’attuale ampiezza della tensione di ogni LSB.
VZS − 0.5 ∗ LSB
• Offset Error (in LSB) =
LSB
• Gain Error (in LSB) =
[VREF − 2 ∗ LSB − (VFS _ 1 − VZS )]
LSB
V [ j + 1] − V [ j ]
• DNL[j] (in LSB) = −1
ALSB
• INL[j] (in LSB) =
[V [ j ] − ( ALSB ∗ ( j − 1) + VZS )]
ALSB
E’ da osservare che nel calcolo di offset error e di gain error compare LSB mentre nel calcolo di
DNL e INL compare ALSB.
Questo perché nelle specifiche di molti ADC si assume che offset e gain error siano riferiti a un
ideale LSB mentre INL e DNL siano riferiti a un reale LSB. Comunque la differenza tra ALSB e
LSB è tipicamente molto piccola.
SIMULAZIONE
Di seguito vengono riportate le opzioni da abilitare nello SPICE per la simulazione e la
registrazione in un file ascii (out.vec) dei dati necessari per il calcolo dei punti di transizione e
quindi dei parametri DNL e INL secondo il metodo appena descritto.
In figura 3.1 è presente il tracciato della simulazione mentre in figura 3.2 si può osservare il grafico
della DNL e INL.
25
26. SIMULAZIONE SPICE
File out.vec
* Created by PSpice
Abilitando l’opzione capture test HEX( b7 b6 b5 b4 ) HEX( b3 b2 b1 b0 )
vector (vedi figura 3.3) e
utilizzando il dispositivo vector 0s 00
(vedi figura 3.4) viene generato il 1.989us 01
file out.vec contenente gli istanti 9.989us 02
di transizione dei codici 15.525us 03
19.903us 04
25.989us 05
32.989us 06
File out.dat
Con un editor ascii adattiamo il
file out.vec in modo tale da essere
caricato dal software matematico 0 00
matlab e quindi mediante il 1.989*e-6 01
programma di figura 3.5 si calcola 9.989*e-6 02
DNL e INL 15.525*e-6 03
19.903*e-6 04
25.989*e-6 05
32.989*e-6 06
Figura 3.3 Opzioni da abilitare per catturare in un file ascii gli istanti di transizione
(da 0s fino a 16.7ms)
26
27. Figura 3.4 Il dispositivo vector da collegare all’uscita del’ADC. Questo dispositivo, durante la
simulazione, registra in un file ascii gli istanti di transizione di codice
% Programma per calcolare e graficare DNL e INL
clear;
% Il segnale di ingresso è una rampa lineare: v0(t0=0)=0V;
v1(t1=0.0167s)=5V
v1=5; t1=0.0167;
lsb=5/(2^8);
%Carica il file out.dat , matlab vede la variabile out come un array
rettangolare
load out.dat
%Calcolo dei punti di transizione V[i]
for i=1:255, v([i])=out([i,1])*v1/t1 ;end
%Calcolo della dnl e inl
for i=1:255
dnl([i])=(v([i+1])-v([i]))/lsb-1;
inl([i])=((v([i])-lsb*(i-1))+v([1]))/lsb;
end
xlabel(‘Codice’);
ylabel(‘INL & DNL’);
plot((1:255),dnl,’b’,(1:255),inl,’r’);
Figura 3.5 Programma per calcolare e graficare DNL e INL dell’ADC.
27
28. Figura 3.1 Simulazione dell’ADC con un segnale d’ingresso a rampa lineare
0 .2 5
0 .2
0 .1 5
0 .1
0 .0 5
DNL
0
- 0 .0 5
-0 .1
- 0 .1 5
-0 .2
- 0 .2 5
0 5 0 1 0 0 1 5 0 2 0 0 2 5 0
C o d ic e
0 .5
0 .4 5
0 .4
0 .3 5
0 .3
INL
0 .2 5
0 .2
0 .1 5
0 .1
0 .0 5
0
0 5 0 1 0 0 1 5 0 2 0 0 2 5 0
C o d ic e
Figura 3.2 Grafico della DNL (in LSB) e INL (in LSB) ottenuti mediante il programma di figura 3.5
28
29. 3.2.2 SECONDO METODO : Code density test (histogram) e simulazione
Nel code density test, la conoscenza della distribuzione delle ampiezze del segnale di ingresso (Vin)
permette di stimare il numero di occorrenze ideali dei codici digitali.
Una qualsiasi deviazione delle occorrenze misurate dalle occorrenze ideali denota un errore di non
linearità differenziale. I passi dacompiere nel code density test sono:
• Applicare un segnale noto all’ingresso analogico dell’ADC quindi memorizzare i codici
all’uscita digitale.
• Misurare il numero delle occorrenze di ogni codice
• Comparando le occorrenze osservate (observed[i]) di ogni codice, dalle occorrenze ideali
(ideal[i]) si può calcolare l’errore di non linearità differenziale (DNL[i]) e l’errore di non
linearità integrale(INL[i]) mediante le formule:
observed [i ] − ideal[i ]
• DNL[i] =
ideal[i ]
i
• INL[i] = ∑ DNL[ j ]
J =1
(INL= ∫ DNL )
SIMULAZIONE
Applichiamo all’ingresso dell’ADC un segnale sinusoidale di f = 60Hz.
Dopo aver settato le opzioni nello spice secondo come mostrato in appendice A avviamo la
simulazione.
Dal tracciato della simulazione si può contare il numero delle occorrenze di ogni codice quindi
creando un file out.dat contenente le occorrenze di ogni codice grazie al programmino di seguito
riportato (figura 3.19) si può caricare il file out.dat quindi graficare l’istogramma delle occorrenze
(figura 3.7) e calcolare la DNL (figura 3.9) e INL (figura 3.10) secondo il metodo sopra descritto.
Per verificare l’equivalenza tra il metodo dei punti di transizione e il metodo code density test
possiamo effettuare una nuova simulazione con un segnale d’ingresso pari alla rampa lineare di
figura 3.1 che abbiamo usato per testare l’ADC mediante il metodo 1. Quindi dai risultati della
simulazione e utilizzando il programmino di figura 3.19 possiamo graficare l’istogramma delle
occorrenze (figura 3.12) e calcolare la DNL (figura 3.14) e INL (figura 3.15) nel caso di segnale di
ingresso a rampa lineare.
Dalle figure 3.2 e 3.14 risulta evidente che i grafici DNL e INL dei rispettivi metodi coincidono.
29
30. % Programma per calcolare e graficare DNL e INL mediante il metodo2
clear;
%Carica il file out.dat , matlab vede la variabile out come un array
%rettangolare contenente le occorrenze di ogni codice e il codice
load out.dat
for i=1:255, observed([i])=out([i,1]) ;end
%Calcolo della dnl e inl
inl([1])=0;
for i=1:255
dnl([i])=(observed([i])-ideal([i]))/ideal([i]);
for j=1:i
inl([i])=inl([i])+dnl([j]);
end
end
% istogramma delle occorrenze
bar((1:255),observed)
% grafico DNL e INL
plot((1:255),dnl,’b’,(1:255),inl,’r’);
Figura 3.19 : Script matlab per graficare l’istogramma delle occorrenze e l’errore DNL e INL
30
31. Figura 3.6 : Simulazione dell’ADC con un segnale d’ingresso sinusoidale
320
310
300
290
280
270
260
250
240
230
220
210
200
N. di occorrenze
190
180
170
160
150
140
130
120
110
100
90
80
70
60
50
40
30
20
10
0
1 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 253
Codice
Figura 3.7 :Istogramma delle occorrenze di ogni codice quando il segnale d’ingresso è una sinusoide
31
32. 300
250
N. di occorrenze
200
150
100
50
0
0 50 100 150 200 250
C o d ice
Figura 3.8 Misura delle occorrenze di ogni codice comparate con le occorrenze ideali
Curva blu occorrenze ideale, curva rossa occorrenze misurate (simulate)
0 .1
0 .0 5
0
DNL
- 0 .0 5
- 0 .1
0 5 0 1 0 0 1 5 0 2 0 0 2 5 0
C o d ic e
Fig 3.9 NON LINEARITA DIFFERENZIALE calcolata dalle occorrenze mostrate in figura 3.8 (MAX DNL=0.124LSB)
0 .2
0 .1
0
- 0 .1
INL
- 0 .2
- 0 .3
- 0 .4
- 0 .5
0 5 0 1 0 0 1 5 0 2 0 0 2 5 0
C o d ic e
Fig 3.10 NON LINEARITA INTEGRALE calcolata dalle occorrenze mostrate in figura 3.8 (MAX INL=0.548LSB)
32
33. Figura 3.11 Simulazione dell’ADC con un segnale d’ingresso a rampa lineare
40
63
38
127
36 191
34
N. di occorrenze
32
30
28
26
24
22
1 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 253
Codice
Figura 3.12: Istogramma delle occorrenze di ogni codice quando il segnale d’ingresso è una rampa
33
34. 42
40
38
36
N. di occorrenze
34
32
30
28
26
24
22
0 50 100 150 200 250
C o d ic e
Figura 3.13 Misura delle occorrenze di ogni codice comparate con le occorrenze ideali (Vin rampa lineare di figura 3.11) Curva
blu occorrenze ideali, curva rossa occorrenze misurate (simulate)
0 .2 5
0 .2
0 .1 5
0 .1
0 .0 5
DNL
0
- 0 .0 5
-0 .1
- 0 .1 5
-0 .2
- 0 .2 5
0 5 0 1 0 0 1 5 0 2 0 0 2 5 0
C o d ic e
Figura 3.14 NON LINEARITA DIFFERENZIALE calcolata dalle occorrenze mostrate in figura 3.13 (MAX DNL=0.295LSB)
0 .5
0 .4 5
0 .4
0 .3 5
0 .3
INL
0 .2 5
0 .2
0 .1 5
0 .1
0 .0 5
0
0 5 0 1 0 0 1 5 0 2 0 0 2 5 0
C o d ic e
Figura 3.15 NON LINEARITA INTEGRALE calcolata dalle occorrenze mostrate in figura 3.11 (MAX INL=0.46LSB)
34
35. 3.3 FUNZIONE DI TRASFERIMENTO DELL’ADC PROGETTATO
Dai punti di transizione possiamo ricavare la funzione di trasferimento dell’ADC (figura 3.20)
250
200
150
Codice
100
50
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Vin
Figura 3.20 Confronto tra la caratteristica ideale e la caratteristica reale (in rosso la caratteristica ideale in
blu la caratteristica simulata)
Nel grafico di figura 3.20 non sono visibili gli effetti degli errori di non linearità in quanto è stato
rappresentato tutta la scala dei valori del segnale d’ingresso.
Se apriamo delle finestre ingrandite (figura 3.21) si può notare lo scostamento della caratteristica
reale (in blu) dalla caratteristica ideale (in rosso).
In particolare si può notare che in corrispondenza dei codici 64, 128, 192 lo scostamento è più
evidente.
Questo è in accordo con l’istogramma delle occorrenze di figura 3.12 dove nei codici 64, 128, 192
presenta un marcato buco, ed è in accordo col grafico della DNL di figura 3.14 dove negli stessi
codici l’ampiezza dell’errore di non linearità differenziale è maggiore.
35
36. 134
70
132
68
130
66
128
Codice
Codice
64
126
62
124
60
122
58
120
56
1.15 1.2 1.25 1.3 1.35 1.4 2.35 2.4 2.45 2.5 2.55 2.6 2.65
Vin Vin
198
196
194
192
Codice
190
188
186
184
3.6 3.65 3.7 3.75 3.8 3.85 3.9
Vin
Figura 3.21 Dettagli della funzione di trasferimento dell’ADC
Quindi l’ADC esaminato presenta una grande non linearità quando il bit più significativo cambia
stato (esempio andando da 00111111 a 01000000). Questo è determinato dal fatto che il livello di
decisione di 00111111 è effettivamente un po’ più alto di 01000000 quindi in presenza di un
segnale d’ingresso lentamente variabile (rampa lineare) l’ADC può a volte saltare direttamente da
00111111 a 01000001, e il codice 01000000 è perso (MISSING CODE).
36
37. CONCLUSIONI
Dalle simulazioni risulta:
• L’ADC progettato presenta una velocità di conversione bassa (1.7us contro i 100-150ns di
un half flash). Questo è dovuto alla bassa velocità del sub-ADC dove si è utilizzato come
comparatore LM311 che presenta un tempo di risposta di 200ns contro i 40ns di comparatori
più veloci (come LM106), naturalmente l’utilizzo di comparatori ad alta velocità comporta
accorgimenti per evitare oscillazioni spurie (instabilità).
Un’altra causa della limitata velocità è da ricercarsi nel blocco residuo-amplificazione.
• Con un segnale d’ingresso sinusoidale lentamente variabile (f<60Hz) (figura 3.6)
l’istogramma delle occorrenze di ogni codice di uscita si avvicina al caso ideale, infatti
l’errore di non linearità differenziale massimo misurato col metodo statistico è di 0.124LSB
mentre la INL massima è di 0.548LSB
• Con un segnale d’ingresso a rampa lineare (Figura 3.11) l’istogramma delle occorrenza di
ogni codice di uscita si discosta in diversi punti dal caso ideale in particolare nei codici
64,128,192 l’istogramma presenta un marcato buco che fa aumentare l’ampiezza dell’errore
di non linearità differenziale (in questo caso DNL max = 0.295LSB) come è evidente dal
grafico di figura 3.14.
In altre parole si verifica un errore più grande del solito quando il bit più significativo
cambia stato (esempio andando da 01111111=>127 a 10000000=>128).
Questo è determinato dal fatto che il livello di decisione di 01111111 è effettivamente un
po’ più alto di 10000000 come si può osservare dalla tensione d’ingresso dell’ultimo stadio
(residuo_stadio4) mostrato in figura
Quindi in presenza di un segnale d’ingresso lentamente variabile (rampa lineare) l’ADC può
a volte saltare direttamente da 01111111 a 10000001, e il codice 10000000 è perso
(MISSING CODE).
Dalle tensioni residue di ogni stadio di figura 3.22 si può osservare come l’errore appena
visto, dovuto principalmente all’offset del comparatore e alle non idealità delle tensioni di
riferimento, si propaga nei vari stadi.
37
39. APPENDICE A
• Software utilizzato per la simulazione:
Microsim Design 8.0
http://www.orcad.com
• Software utilizzato per l’analisi dei dati:
Matlab versione 4.2c.1
http://www.mathworks.com
• Opzioni da abilitare per la simulazione:
setup base
opzioni da abilitare per ottenere il file contenente gli istanti di transizione
39
40. BIBLIOGRAFIA
[1] B. Razavi, Principles of Data Conversion System Design, The IEEE Press, New York
1995.
[2] I convertitori A/D e D/A, Valerio Alessandroni, Elettronica Oggi N. 272 - 15 Aprile 1999
[3] A.M.J. Daanen, Classification of DA and AD Conversion Techniques, Report of the
Graduation Work, Technical University, Eindhoven, Dec. 1986.
[4] J.ÊDoernberg, H.-S.ÊLee, and D.ÊA.ÊHodges, “Full-speed testing of A/D converters,”
IEEE J. Solid-State Circ., vol. SC-19, pp. 820-827, Dec. 1984.
[5] Texas Instruments Application Report,” Understanding Data Converters”, SLAA013,
July 1995.
[6] Adc characterisation using the code density test method with deterministic sampling,
Valentino Liberali, Franco Maloberti, and Massimo Stramesi, Department of Electronics,
University of Pavia Via Ferrata 1, 27100 Pavia, Italy
[7] J. E. Franca and Y. Tsividis, Editors, Design of Analog-Digital VLSI Circuits for
Telecommunications and Signal Processing”, Chapters 9 and 10,Prentice Hall, Englewood
Cliffs,1994
[8] S. Franco, “Design with Operational Amplifiers and Analog Integrated Circuits”,
McGraw-Hill, Boston, 1998.
[9] Integrated Analog-to-Digital and Digital-to-Analog Converters, R. van de Plasche,
Kluwer Academic Publishers, 1994
[10] M. F. WAGDY “Diagnosing ADC Nonlinearity at the Bit Level” IEEE iransactions on
instrumentation and Measurements, December 1989, pp. 1139-1141.
[11] J. BLAIR “Histogram Measurement of ADC Nonlinearities using Sine Waves” IEEE
Transactions on Instrumentation and Measurements, June 1994, pp.373-383.
[12] M. F. WAGDY AND S. S. AWAD “Determining ADC Effective Number of Bits Via
Histogram Testing” IEEE Transactions on Instrumentation and Measurements, August 1991,
pp. 770-772.
[13] DC Specifications of ADCs and DACs
http://www.hit.bme.hu/people/papay/edu/ABCsoup.ht
[14] INL/DNL Measurements for High-Speed ADCs
http://www.maxim-ic.com/StartPage.htm
40
41. [15] Defining and Testing Dynamic Parameters in High-Speed ADCs, Part 1
http://dbserv.maxim-ic.com/tarticle/view_article.cfm?article_id=112
[16] descrizione tipi di convertitori
http://users.unimi.it/metis/METIS-3MKB/courseware/convertitori/Adc/indicein.htm
[17] Correzione delle non linearita’ nei convertitori A-D ad alta velocita
http://www.teoresi.it/meet_2000/conf/atti/cover.htm
[18] Design Of A High-Performance Analog-To-Digital Converter
http://www.csdmag.com/main/9810/9810feat2.htm
[19] Evaluating Data Acquisition Specifications by Jonathan L. Tucker, Keithley Instruments
http://www.evaluationengineering.com/index.html
[20] HABIST (Histogram-based Analog Built-In Self-Test)
http://www.fluence.com/bistmaxx/habist_tk1.html
Author: Ing. Nelson Firmani (nfirmani@gmail.com)
41