PLL digitali in strumentazioni di ricerca: analisi e verifica

Transcript

PLL digitali in strumentazioni di ricerca: analisi e verifica
Università degli Studi di Napoli “Federico II”
Scuola Politecnica e delle Scienze di Base
Area Didattica di Scienze Matematiche Fisiche e
Naturali
Dipartimento di Fisica
Laurea Magistrale in Fisica
PLL digitali in strumentazioni di
ricerca: analisi e verifica
All Digital PLL for research instrumentation:
analysis and test
Relatori:
Candidato:
Prof. Alberto Aloisio
Paride Bifulco
Dott. Vincenzo Izzo
Matricola N94 / 094
A.A. 2012/2013
-1-
-2-
-3-
L’obiettivo di questo lavoro di tesi è stata la progettazione e la realizzazione di circuiti di
test per l’analisi dei blocchi costitutivi di un phase-locked loop (PLL) interamente
digitale.
Un PLL è un dispositivo elettronico che riceve in ingresso un segnale di riferimento
periodico, generalmente un’onda quadra, e genera in uscita un segnale periodico di
frequenza uguale e una differenza di fase costante con il segnale di riferimento. Il PLL è,
inoltre, un classico esempio di applicazione all'elettronica del controllo in retroazione.
Al giorno d’oggi l’elettronica per le telecomunicazioni è disseminata di PLL. Basti
pensare che molte delle tecnologie all'avanguardia degli ultimi anni, tra le quali la
telefonia cellulare, le comunicazioni wireless, il GPS e la televisione satellitare e digitale
terrestre non sarebbero possibili senza l'utilizzo intensivo dei PLL.
Allo stesso modo, e per le stesse ragioni, i dispositivi PLL sono utilizzati in maniera
intensiva nei sistemi di acquisizione dati sugli esperimenti di fisica, che siano
esperimenti su acceleratori o anche esperimenti nello spazio. In queste specifiche
applicazioni, come verrà mostrato, un PLL interamente digitale si rivela un buon
compromesso tra affidabilità e prestazioni, grazie alla facile integrabilità, relativa
tolleranza a radiazioni ionizzanti ed esportabilità.
Nel primo capitolo il lettore verrà introdotto all’architettura dei PLL. In particolare sono
riportate alcune tecniche di analisi dei segnali per studiare questi dispositivi.
Per comprendere meglio la natura di questi dispositivi è poi, a titolo di esempio,
analizzata in dettaglio la struttura di un Linear Phase Locked Loop (LPLL), che, oltre ad
essere stata una delle prime architetture utilizzate, ha una struttura molto semplice e
schematizzabile. In particolare si suddividerà il PLL nei suoi tre moduli costituenti: un
comparatore di fase per analizzare la differenza tra il segnale di riferimento e il segnale
prodotto, un filtro per eliminare la componente ad alta frequenza del segnale generato
dal comparatore di fase, ed un oscillatore programmabile per generare il segnale di
uscita. In alcuni casi può essere inoltre presente un divisore in frequenza nell’anello.
-4-
In seguito, alla fine del primo capitolo, è riportato un resoconto storico sull’evoluzione
di questi dispositivi, oltre alla categorizzazione con cui si possono suddividere i PLL.
Nel secondo capitolo sono esposte le motivazioni e le caratteristiche di un approccio
interamente digitale per un PLL, nonché i vantaggi e gli svantaggi che questa
metodologia comporta.
A questo proposito è stata molto importante, per la realizzazione di questa tesi, la
collaborazione con il progetto ALLDIGITALL del gruppo V dell’I.N.F.N. (Istituto
Nazionale di Fisica Nucleare) che ha come obiettivi lo studio, l’analisi di fattibilità e
l’implementazione di un PLL interamente digitale.
Si passa, quindi, ad esporre i vantaggi e gli svantaggi che risiedono nell’utilizzare, nella
progettazione di un PLL, diverse architetture per un comparatore di fase digitale. Sono
inoltre descritte due delle architetture proposte dall’esperimento ALLDIGITALL per
realizzare un oscillatore interamente digitale (o DCO, Digitally Controlled Oscillator).
Quest’ultimo, in particolare, risulta essere il componente di maggiore interesse in
quanto costituisce una parte preponderante per il funzionamento di un PLL
interamente digitale.
Nel terzo capitolo è, invece, analizzato e commentato il lavoro che più mi ha interessato
direttamente, ovvero l’analisi dei circuiti da me progettati per il test dei componenti
critici di un PLL interamente digitale.
L’obiettivo raggiunto è stato la realizzazione di circuiti che automatizzano l’acquisizione
dati e la loro analisi ed elaborazione, interferendo il meno possibile con i dispositivi da
esaminare.
Lo sviluppo di questo lavoro ha implicato l’uso di diversi linguaggi di programmazione. I
progetti sono scritti quasi interamente in VHDL, un linguaggio di programmazione
hardware usato per la progettazione di sistemi elettronici digitali. All’interno dei circuiti
è poi istanziato un processore il cui set di istruzioni è scritto in codice Assembly, mentre
per l’elaborazione e lo studio dei dati sono stati utilizzati script in ambiente MATLAB.
I progetti sono stati implementati su un FPGA (Field Programmable Gate Array) della
serie 7 della Xilinx, installata su una scheda di valutazione KC705, realizzata dal
-5-
produttore di FPGA allo scopo di consentire agli utenti una rapida prototipizzazione e
collaudo dei circuiti ideati. I segnali posti in uscita sono stati analizzati con un
oscilloscopio di ultima generazione prodotto dalla Tektronix, mentre la trasmissione
dati ed il controllo del sistema sotto test è stata effettuata collegando il tutto ad un
terminale remoto.
I risultati ottenuti sono esposti nel quarto capitolo. In particolare sono mostrati ed
analizzati il comportamento e le peculiarità delle varie architetture e la loro dipendenza
dai parametri fisici di interesse come, ad esempio, temperatura e tensione di
alimentazione.
-6-
Il PLL, o Phase-Locked Loop, è un classico esempio di applicazione all'elettronica del
controllo in retroazione, di cui è mostrato uno schema a blocchi in fig. 1.1. Un sistema in
retroazione è costituito da due sottosistemi, YA e YB , connessi in retroazione. Due sistemi
si dicono connessi in retroazione quando l’uscita del primo è l’ingresso del secondo,
mentre l’uscita del secondo si somma o si sottrae ad un ingresso esterno per
determinare l’ingresso del primo sistema.
Figura 1.1
1.1
Schema a blocchi di un sistema costituito da due sottosistemi connessi in retroazione positiva.
Le funzioni GA (s) e GB (s) sono le due funzioni di trasferimento della linea di andata e
della linea di retroazione. La teoria sulle funzioni di trasferimento sarà introdotta nel
paragrafo 1.2.2.
A causa dell'uso comune dell'acronimo, in letteratura non esiste un’unica traduzione
italiana del termine Phase Locked Loop: è difatti possibile trovare le forme "anello ad
aggancio di fase", "circuito ad aggancio di fase" oppure "maglia ad aggancio di fase". In
questo lavoro di tesi si utilizzerà comunemente il nome inglese del dispositivo.
Dal punto di vista comportamentale, un Phase-Locked Loop è un circuito che ha in
ingresso un segnale periodico di frequenza fissata, detto segnale di riferimento, e genera
in uscita un segnale periodico avente la medesima frequenza del segnale in ingresso e la
cui fase ha una relazione fissa con il segnale di riferimento.
-7-
Il PLL è, quindi, un dispositivo che analizza le informazioni di frequenza e fase
contenute nel segnale in ingresso e le utilizza per generare un segnale con
caratteristiche fisiche note.
Al giorno d’oggi i PLL sono utilizzati come:
•
•
•
•
•
moltiplicatori di frequenza, per ottenere un segnale la cui frequenza è un
multiplo intero della frequenza dell’oscillatore di riferimento;
modulatori, per aggiungere una differenza di fase al segnale da modulare;
demodulatori, per seguire i cambiamenti del segnale in ingresso;
ricevitori coerenti, per filtrare una particolare banda del segnale trasmesso;
sincronizzatori di dati, per estrarre il clock da un segnale aperiodico;
Negli esperimenti di fisica l’uso dei PLL è molto vasto, soprattutto in tutte le situazioni
in cui è necessario rigenerare un segnale affetto da rumore o modificare la fase di un
segnale periodico. I PLL sono usati, ad esempio, come moltiplicatori o divisori di clock
nei sistemi che prevedono un ADC (Analog to Digital Converter) o per filtrare il segnale
di clock di un TDC (Time to Digital Converter).
Un altro impiego molto diffuso dei PLL è nei sistemi di acquisizione dati in cui è
tipicamente necessario distribuire uno o più segnali a diverse centinaia di destinazioni.
Poiché non è sempre possibile bilanciare la rete di distribuzione di tali segnali, è spesso
necessario utilizzare dispositivi PLL per regolare le fasi reciproche, oltre che
provvedere a rigenerare il segnale e ridurre il rumore introdotto dall’elettronica di
trasmissione.
Un esempio di questo caso è il sistema TTC (Timing, Trigger and Control) [1] utilizzato
dai vari esperimenti dell’LHC (Large Hadron Collider), acceleratore in fase di
operazione presso il CERN [2] di Ginevra. Il TTC serve ad inviare le informazioni sugli
eventi previsti nell’LHC a tutti gli esperimenti che lavorano sull’acceleratore. In
dettaglio, il TTC è un sistema di distribuzione di più segnali a diverse migliaia di
destinazioni su una rete di fibre ottiche di lunghezza variabile. I segnali relativi alle
collisioni nell’acceleratore arrivano alle destinazioni con una frequenza di 40.08 MHz e
una indeterminazione temporale (generalmente indicata come jitter o phase noise) di
alcune centinaia di ps. Per rigenerare i segnali, tutte le stazioni che ricevono il segnale
-8-
sono dotate di un PLL analogico basato su VCXO (Voltage Controlled Crystal Oscillator)
che rigenera il segnale, ne filtra il rumore, ottenendo un jitter di 10 ps RMS, e consente
uno sfasamento del segnale in passi di circa 100 ps. Un PLL è, quindi, indispensabile per
la sincronizzazione degli esperimenti con le informazioni provenienti dalla macchina
acceleratrice, essendo l’unico modo per farlo.
Lo stadio ricevitore del TTC è stato realizzato alla fine degli anni ’90 in tecnologica
immune alle radiazioni (RadHard) DHILL 0.8 µm, che non è più supportata dalle attuali
fonderie di produzione, rendendo di fatto il componente obsoleto. Questo motiva ancora
di più lo studio di architetture di PLL interamente digitali, che, se implementate nei
dispositivi di nuova generazione, consentono di raggiungere prestazioni paragonabili,
avendo però il vantaggio della portabilità del progetto.
-9-
Lo studio della risposta di un PLL parte dallo studio della risposta di un sistema
dinamico lineare [3], mostrato in fig. 1.2. Un sistema dinamico è un sistema che si
interfaccia con il “resto del mondo” per mezzo di una serie di variabili, u, che definiremo
di ingresso, ed altre, y, che definiremo di uscita.
Figura 1.2
1.2
Schema a blocchi di un sistema dinamico lineare.
Per descrivere l’evoluzione dinamica di un sistema dinamico è sufficiente assegnare,
istante per istante, n valori che definiscono lo stato del sistema. Indicheremo con il
vettore (xA , xB , . . . , xR ) queste variabili e le definiremo variabili di stato.
Note le variabili di stato ad un dato istante e l’andamento degli ingressi da quell’istante
in poi, sarà quindi possibile determinare l’andamento di tutte le uscite dall’istante
considerato. La formalizzazione matematica del sistema dinamico passa, allora, per la
scrittura delle equazioni differenziali di cui le variabili di stato sono le soluzioni, noti gli
ingressi esterni, e del legame tra le variabili di uscita e quelle di stato e di ingresso.
Un sistema dinamico lineare può, quindi, essere descritto, utilizzando una forma
compatta vettoriale:
S
xT (t) = A x(t) + B u(t)W
yT (t) = C x(t) + D u(t)
(1.1)
in cui x(t) rappresenta lo stato del sistema, u(t) è il vettore che indica gli ingressi e y(t)
è il vettore che contiene le uscite.
- 10 -
La soluzione di questo sistema di equazioni differenziali può essere molto complicata.
Esistono, tuttavia, due strade per il calcolo della risposta (uscita) di un sistema
dinamico lineare soggetto ad ingressi assegnati:
Calcolo nel “dominio del tempo”, in cui con i metodi dell’analisi matematica, si integra il
sistema di equazioni differenziali (equazioni di stato) forzato dalle funzioni del tempo
assegnate (gli ingressi). Dalla trasformazione di uscita si ricava quindi l’espressione
dell’uscita.
Calcolo nel “dominio delle trasformate”, in cui alla funzione del tempo u(t) si associa,
con i metodi matematici che vedremo, una funzione U, che prende il nome di
trasformata del segnale di ingresso. Dalle equazioni del sistema dinamico è, poi,
possibile ricavare facilmente il legame tra la trasformata U e la trasformata Y del
segnale di uscita. Ricavata quindi la trasformata Y, le si associa la funzione del tempo
y(t), che ne costituisce l’antitrasformata, e che rappresenta la risposta del sistema
cercata.
Il vantaggio del metodo di calcolo nel dominio delle trasformate è che il legame tra la
trasformata dell’ingresso e la trasformata dell’uscita è di natura algebrica e non
differenziale, come accade, invece, tra le rispettive funzioni del tempo.
In questo paragrafo è definita la trasformata di Laplace e sono analizzate alcune delle
sue proprietà fondamentali.
Data una funzione reale f(t) della variabile reale t, definita per t ≥0.
La funzione della variabile complessa s:
]
F(s) = Y f(t)eZ[ \ dt
^
si dice trasformata di Laplace di f(t) e si indica con _[f(t)] [4].
(1.2)
La funzione F(s) è razionale, se è esprimibile come rapporto di due polinomi di s,
- 11 -
F (s) =
N(s)
D (s)
(1.3)
Si possono, a questo punto, definire poli di una trasformata F(s), i valori di s per cui
|F(s)| = ∞. Si definiscono, invece, zeri di una trasformata F(s), i valori di s per cui
F(s) = 0.
Se F(s) è razionale, i poli di F(s) sono le radici del denominatore D(s), mentre gli zeri le
radici del numeratore N(s).
Se la funzione ha solo poli reali semplici, il denominatore è fattorizzabile come:
D(s) = (s + pA )(s + pB ) ⋯ (s + pR ),
Ne consegue:
F (s) =
pc ∈ ℜ,
pc ≠ pg
αA
αB
αR
+
+ ⋯+
s + pA s + pB
s + pR
(1.4)
(1.5)
in cui i coefficienti αA , … , αR possono essere ricavati confrontando la (1.5) con
l’espressione originaria di F(s).
Analizziamo, a questo punto, la trasformata di Laplace di una funzione semplice. Si
consideri, a titolo di esempio, la funzione impulso:
f(t) = imp(t) = 0,
]
Y f(t)dt = 1
Z]
∀t ≠ 0
(1.6)
Tale funzione può essere vista come il limite, per ϵ → 0, della seguente funzione:
fn (t) = o
Si ha, quindi:
1/ϵ
0
]
0 ≤ t ≤ ϵW
t>s
]
_[imp(t)] = Y imp(t) eZ[\ dt = lim Y fn (t)eZ[\ dt = lim Y
^
1 eZ[\
s eZ[n
= lim t
=1
v = lim
n→^ ϵ −s
n→^
s
^
n
n→^ ^
n
n→^ ^
1 Z[\
e dt =
ϵ
(1.7)
(1.8)
- 12 -
Similmente possono essere ricavate le trasformate notevoli, di alcune funzioni di uso
comune, espresse in tabella 1.1:
w (x),
x≥y
imp(t)
sca(t)
ram(t) = o
t
0
B
par(t) = S t /2
0
e~\
sin(ωt)
Tabella 1.1
1.1
z({)
t ≥ 0W
t<0
t ≥ 0W
t<0
cos(ωt)
Tabella di trasformate di Laplace notevoli.
1
1/s
1/s B
1/s }
1/(s − a)
ω/(s B + ωB )
s/(s B + ωB )
A seguire sono elencate le proprietà notevoli della trasformata di Laplace che saranno
utilizzate in questa tesi:
Linearità:
_[ αA fA (t) + αB fB (t)] = αA _[fA (t)] + αB _[fB (t)]
Derivazione nel dominio nel tempo:
se _[f(t)] = F(s)
⇒ _t
df(t)
v = s F(s) − f(0 )
dt
(1.9)
(1.10)
Derivazione nel dominio della variabile complessa:
se _[f(t)] = F(s)
⇒ _[t f(t)] = −
dF(s)
ds
(1.11)
- 13 -
Dato un sistema dinamico lineare, descritto dalla (1.1), analizziamo come è possibile
risolvere questo sistema senza dover risolvere esplicitamente le equazioni differenziali.
In primo luogo, introduciamo i vettori X(s), U(s), Y(s) che contengono, rispettivamente,
le trasformate di Laplace delle componenti dei vettori x(t), u(t), y(t).
Utilizzando la proprietà notevoli della trasformata (1.9 − 1.11), si ha:
sXA (s) − xA (0)
_[xT A (t)]
sX (s) − xB (0)
_[xT (t)]
_[xT (t)] = ‚ B
„=‚ B
„ = s X(s) − x(0)
⋮
⋮
_[xT R (t)]
sX R (s) − xR (0)
e, similmente:
_[A x(t)] = ⋯ = A X(s)
_[B u(t)] = ⋯ = B U(s)
_[C x(t)] = ⋯ = C X(s)
_[D u(t)] = ⋯ = D U(s)
si può quindi riscrivere la (1.1) come:
S
s X(s) − x(0) = A X(s) + B U(s)W
Y(s) = C X(s) + D U(s)
(1.12)
(1.13)
(1.14)
Si ricava, a questo punto, un sistema algebrico (e non più un sistema di equazioni
differenziali) nelle trasformate delle variabili e il sistema è, quindi, più semplice da
risolvere.
In dettaglio, si ha che, per tutti i valori di s diversi dagli autovalori della matrice A:
e, quindi:
X(s) = (s IR − A)ZA B U(s) + (s IR − A)ZA x(0)
(1.15)
Y(s) = [C(s IR − A)ZA B + D]U(s) + C(s IR − A)ZA x(0)
(1.16)
- 14 -
che, nel caso particolare in cui lo stato iniziale è nullo (x(0) = 0), risulta:
Y(s) = G(s)U(s)
(1.17)
G(s) = [C(s IR − A)ZA B + D]
(1.18)
in cui la matrice G(s) è data da:
La funzione G(s) prende il nome di funzione di trasferimento del sistema.
Se la funzione di trasferimento è una funzione razionale, conoscendo i poli e gli zeri
della funzione di trasferimento, si può scrivere:
G (s) = ρ
∏ c (s + zc )
∏c(s + pc )
(1.19)
dove le produttorie sono fatte su tutti gli zeri (zc ) e su tutti i poli (pc ), rispettivamente,
mentre ρ è definita costante di trasferimento.
Come sarà affrontato nel prossimo paragrafo (1.2.3), la funzione di trasferimento è
molto importante per studiare la stabilità di un sistema lineare.
Sia dato un sistema lineare, all’equilibrio all’istante t = 0.
Figura 1.3
1.3
Differenti comportamenti della risposta di un sistema sottoposto ad un impulso.
- 15 -
Si applichi, quindi, all’istante t = 0¸ un impulso all’ingresso del sistema (ossia una
perturbazione di ampiezza molto elevata e di durata brevissima). Si possono presentare
tre tipologie di comportamenti per l’andamento temporale dell’uscita y, riportate in fig.
1.3:
(a) l’uscita converge al valore iniziale (supposto nullo);
(b) l’uscita non converge al valore iniziale, ma non diverge;
(c) l’uscita diverge.
Questi comportamenti corrispondono, rispettivamente, a un sistema:
(a) asintoticamente stabile;
(b) semplicemente stabile (o stabile, ma non asintoticamente);
(c) instabile.
Per un sistema lineare la proprietà di stabilità deve essere deducibile dall’espressione
matematica del sistema dinamico, ed in particolare dalla sua funzione di trasferimento.
Limitiamoci, per brevità, al caso di sistemi con poli semplici (ossia radici non multiple
del denominatore).
Ricordando che la trasformata dell’impulso vale 1, si ottiene:
Y(s) = G(s)U(s) = G(s) = ρ
∏ c (s + zc )
αc
=ˆ
∏c(s + pc )
s + pc
c
Antitrasformando, si ricava l’espressione analitica della risposta all’impulso:
y(t) = ˆ αc ec
c
Z‰Š \
(1.20)
(1.21)
Ora, se tutti i poli sono reali negativi (pc > 0) o complessi a parte reale negativa (αc >
0), tutti gli esponenziali convergono a zero e, in base alla definizione, il sistema è
asintoticamente stabile; se tutti i poli sono negativi, a meno di uno che è nullo (pc = 0) o
di una coppia che è immaginaria (αc = 0), l’esponenziale con esponente nullo dà luogo
ad un termine costante mentre quelli con esponente immaginario danno luogo a termini
sinusoidali, e quindi la risposta non converge a zero, ma non diverge: il sistema è
pertanto semplicemente stabile; se, infine, almeno un polo è reale positivo (pc < 0) o
- 16 -
complesso con parte reale positiva (αc > 0), l’esponenziale relativo a tale polo diverge,
facendo divergere la risposta all’impulso: il sistema è quindi instabile.
Estendendo, con ragionamenti analoghi, le conclusioni al caso di poli multipli, si può
formulare il seguente teorema:
Un sistema è:
asintoticamente stabile:
semplicemente stabile:
instabile:
Tabella 1.2
1.2
se e solo se tutti i poli della sua funzione di trasferimento
hanno parte reale negativa;
se e solo se tutti i poli della sua funzione di trasferimento
hanno parte reale negativa o nulla, almeno uno ha parte
reale nulla, e tutti i poli a parte reale nulla sono semplici;
se e solo se almeno un polo della sua funzione di
trasferimento ha parte reale positiva oppure ha parte reale
nulla ed è multiplo.
Teorema sulla stabilità di un sistema dinamico lineare.
- 17 -
Per comprendere, a questo punto, il principio di funzionamento dei PLL, passiamo ad
analizzare una delle prime architetture utilizzate, che è anche una delle architetture più
semplici da studiare, ovvero il PLL lineare (LPLL, linear phase-locked loop) [5].
Figura 1.4
1.4
Schema a blocchi di un PLL Lineare (LPLL). Il segnale di riferimento u1 e il segnale di
uscita u2 attraversano il comparatore di fase. L'informazione ricavata (ud), dopo essere
stata processata da un filtro, diviene la tensione di controllo del VCO (uf).
Uno schema a blocchi del LPLL è mostrato in fig. 1.4. Come si può notare, questo PLL è
composto da tre moduli di base:
•
•
•
un comparatore di fase;
un filtro (passa-basso);
un oscillatore controllato in tensione (VCO) o sintetizzatore di segnale;
Le grandezze di interesse per descrivere il funzionamento di questo dispositivo sono:
•
•
•
•
•
•
•
uA (t), il segnale di riferimento (o di ingresso)
ωA , la frequenza del segnale di riferimento
uB (t), l’uscita del sintetizzatore di segnale (VCO)
ωB (t), la frequenza del segnale di uscita
u‹ (t), il segnale di uscita del comparatore di fase
uΠ(t), il segnale di uscita del filtro
θŽ , la differenza di fase tra il segnale di riferimento e il segnale di uscita del
sintetizzatore di segnale
- 18 -
Il primo componente che il segnale in ingresso incontra è il comparatore di fase o
Phase-Detector (PD). Il PD è un dispositivo che analizza la fase del segnale in uscita con
la fase del segnale di riferimento e genera un segnale di uscita u‹ (t) che è proporzionale
alla differenza di fase θŽ . Poiché i due ingressi del PD sono periodici, anche l’uscita sarà
un segnale periodico. Tuttavia, la dipendenza del valor medio di u‹ (t) con θŽ è lineare:
u‹ (t) = K ‹ θŽ
in cui si definisce K ‹ il guadagno del PD espresso in V/rad.
(1.22)
A titolo di esempio, in fig. 1.5, sono mostrate due uscite di un PD realizzato con una
porta logica XOR nei due casi θŽ = 0 e θŽ > 0. Un’analisi dettagliata dei vari PD è fatta
nel paragrafo 2.4.
Figura 1.5
1.5
Esempio di uscita di un comparatore di fase realizzato con una porta logica XOR nei due
casi ‘ = y ‘ ‘ > 0. Come si può osservare ’“ è un segnale periodico e il suo valor
medio è proporzionale alla differenza di fase.
A causa della natura del PD, il segnale u‹ (t) in uscita del comparatore di fase è composto
da una componente a bassa frequenza sovrapposta ad una componente ad alta
frequenza. Quest’ultima non è voluta, quindi si elimina aggiungendo un filtro passa-
basso. Nella maggior parte dei casi, per un PLL lineare, è sufficiente utilizzare un filtro
del primo ordine (generalmente un circuito RC).
L’ultimo componente che costituisce il PLL lineare, ovvero l'oscillatore controllato in
tensione, è anche il componente di maggiore interesse. Tale modulo è noto anche con
l'acronimo VCO, dall'inglese Voltage Controlled Oscillator. Il VCO è un dispositivo
elettronico che produce un'oscillazione periodica, il cui periodo, e, di conseguenza, la
frequenza, sono determinati dal valore assoluto di una tensione applicata ad un ingresso
di controllo.
- 19 -
Nel PLL lineare il VCO ha una risposta lineare attorno ad una frequenza caratteristica
del dispositivo ed oscilla ad una frequenza ωB (t) che è determinata dal segnale di uscita
del filtro uΠ(t).
In formule, la frequenza ωB è data da:
ωB (t) = ω^ + K ^ uŒ (t)
(1.23)
in cui ω^ è la frequenza caratteristica di funzionamento del VCO e K ^ è il guadagno
espresso in rad ∙ s ZA ∙ V ZA .
Nella fig. 1.6 sono mostrati i grafici degli andamenti ideali di ωB e u‹ .
Figura 1.6
1.6 Andamenti ideali della frequenza del segnale in uscita (ω2) del VCO in funzione della tensione di controllo
uf e della tensione media in uscita del comparatore ud in funzione della differenza di fase tra il segnale in
ingresso e il segnale in uscita (θe).
Osserviamo, a questo punto, il funzionamento del dispositivo quando i tre moduli sono
posti insieme.
Facciamo l’esempio, come prima ipotesi, che la frequenza ωA del segnale di riferimento
uA (t) sia proprio uguale ad ω^ . Il VCO all’accensione inizialmente funzionerà proprio
alla sua frequenza caratteristica ω^ . La differenza di fase tra i due segnali sarà, quindi,
θŽ = 0 e, di conseguenza, il segnale di uscita del PD sarà costantemente u‹ (t) = 0. Come
risultato, anche l’uscita del filtro sarà uŒ (t) = 0 e ciò continuerà a far funzionare il VCO
alla stessa frequenza.
In generale si può riassumere che se il PLL lineare è in una condizione di aggancio, resta
nella sua condizione di aggancio.
- 20 -
Supponiamo ora che la frequenza ωA del segnale di riferimento sia diversa dalla
frequenza caratteristica del VCO (Δω = ωA − ω^ ≠ 0). Come diretta conseguenza si avrà
una differenza di fase θŽ diversa da zero. Ciò comporta, osservando il grafico, un’uscita
del PD, u‹ (t), crescente (decrescente) nel tempo.
Dopo un ritardo dovuto alla natura del filtro, anche l’uscita uŒ (t) sarà positiva
(negativa), il che porta il VCO a lavorare ad una frequenza maggiore (minore).
In questo modo, la differenza di fase si riduce fino a che, dopo alcuni cicli, il VCO si
stabilizzerà in modo da avere la stessa frequenza del segnale in ingresso. A seconda del
tipo di filtro utilizzato la differenza di fase sarà ridotta a zero o ad un valore finito noto
che è caratteristico del filtro.
Avendo compreso la modalità di funzionamento dei PLL si può subito capire una delle
funzionalità più rilevanti di questi dispositivi, che è la capacità di abbattere il rumore
che aggredisce un segnale.
Supponiamo, infatti, di avere un segnale in ingresso aggredito da rumore e il PLL ha già
agganciato tale segnale generando un uscita di frequenza e fase uguale al segnale in
ingresso. Il comparatore di fase misura la differenza tra il segnale di ingresso e l’uscita,
che è proprio il rumore. Essendo il rumore stocastico, l’uscita u‹ oscillerà attorno ad un
valor medio (ovvero avrà un jitter in frequenza). Tuttavia, questo jitter non si
ripresenterà a valle del filtro, che ha proprio il ruolo di eliminare le componenti ad alta
frequenza. Il segnale in uscita –— (˜) sarà, quindi, un segnale costante e, di conseguenza,
il VCO continuerà a lavorare alla stessa frequenza iniziale. In altre parole la fase del
segnale uB (t) in uscita del VCO sarà uguale al valor medio della fase del segnale in
ingresso.
Si può, quindi, riassumere che i PLL sono dispositivi capaci di ricavare le informazioni
sulla frequenza e fase di un segnale in ingresso, anche se affetto da rumore, e riprodurre
in uscita un segnale con le stesse caratteristiche.
- 21 -
Analizziamo ora le relazioni matematiche dei componenti del PLL [6]. In particolare in
questo paragrafo saranno descritti i comportamenti del VCO e del comparatore di fase
[7].
È analizzato, in primo luogo, il comportamento del VCO. In ingresso al VCO si ha il
segnale uΠ(t), proveniente dal filtro, che ne governa il funzionamento. Per questa analisi,
utilizzando l’espressione matematica del segnale data da Manassewitsch [8] adattata
alla notazione per il VCO utilizzata in questa tesi, si ottiene:
uB (t) = V~ cosšθ(t)› = V~ cos œω^ t + K ^ Y uŒ (t) dt
(1.24)
in cui uB (t) è l'uscita del VCO, V~ è l’ampiezza del segnale e può essere ignorata ai fini
dell’analisi per il funzionamento del PLL, ω^ è la frequenza centrale o caratteristica del
VCO, K ^ è il guadagno e uŒ (t) è la tensione in ingresso. È utile concentrare l’attenzione su
θ(t), l’argomento del coseno, che rappresenta l’evoluzione temporale della fase del
segnale generato dal VCO.
Per ottenere la frequenza istantanea del segnale in uscita del VCO si effettua la
differenziazione della fase ottenendo:
ωB (t) =
d
d
šθ(t)› = œω^ t + K ^ Y uŒ (t) dt = ω^ + K ^ uŒ (t)
dt
dt
che è l’espressione (1.23) vista in precedenza per il LPLL.
(1.25)
Si vuole, a questo punto, analizzare la risposta del VCO spostandosi di poco da una
condizione iniziale di aggancio. In questo caso la frequenza caratteristica del VCO (ω^ ) è
uguale alla frequenza del segnale di riferimento (ωA ).
- 22 -
È interessante, quindi, analizzare come cambia la frequenza del segnale generato dal
VCO in funzione della frequenza caratteristica del dispositivo, ovvero come il VCO
modula il segnale.
La deviazione della frequenza istantanea dalla frequenza di aggancio si ottiene
sottraendo la frequenza caratteristica del VCO:
f^c =
ωB − ω^ K ^ uŒ (t)
=
2π
2π
(1.26)
Mentre la deviazione della fase istantanea dalla condizione di aggancio è, analogamente:
θ^c = θ(t) − ω^ t = K ^ Y uŒ (t) dt
(1.27)
1
θ^c = K ^ uŒ (s)
s
(1.28)
che, espresso in trasformata di Laplace, risulta:
Questa espressione sarà utilizzata successivamente come modello per il
funzionamento del VCO.
Per descrivere il comportamento del comparatore di fase si considera l'architettura più
semplice che si utilizza per questo scopo, ovvero un moltiplicatore o mixer. L'analisi del
comparatore di fase si riduce quindi a considerare i due segnali in ingresso e
moltiplicarli tra loro.
Le espressioni che descrivono i due segnali in ingresso del moltiplicatore sono,
utilizzando una notazione conforme al resto della tesi:
uA (t) = V~A cos(ωA t + θŽ )
uB (t) = V~B cos (ωB t)
(1.29)
(1.30)
- 23 -
in cui V~A e V~B sono le ampiezze dei due segnali, ωA è la frequenza del segnale di
riferimento in ingresso al PLL, ωB è la frequenza angolare del segnale 2 all’ingresso del
moltiplicatore e θŽ è la differenza di fase.
Il prodotto sarà quindi:
uA (t) uB (t) = V~A V~B cos(ωA t + θŽ ) cos (ωB t)
(1.31)
uA (t) uB (t) = V~A V~B 1Ÿ2 [cos(ωA t + θŽ − ωB t) + cos (ωA t + θŽ + ωB t)]
(1.32)
uA (t) uB (t) = V~A V~B 1Ÿ2 [cos(ωA t − ωB t + θŽ )] = V~ cos(ω t + θŽ )
(1.33)
Utilizzando l’identità trigonometrica per il prodotto dei coseni si ottiene:
Eliminando la componente ad alta frequenza con il filtro si ha:
in cui:
ω = ωA − ωB
per ωA > ωB
V~ = V~A V~B ∙ 1Ÿ2 ∙ perdite dovute al moltiplicatore = ampiezza del segnale in uscita
Siccome è nell’interesse di questo paragrafo analizzare il guadagno del comparatore di
fase si deriva la (1.33) per ottenere la pendenza. Per semplicità poniamo ω = 0 (è una
ipotesi molto credibile considerando che generalmente ωA ≈ ωB e la loro differenza può
essere incorporata in θŽ ). Si ha:
V‰‹[ =
d
V cos(θŽ ) = V~ sin (θŽ )
dθŽ ~ (1.34)
in cui V‰‹[ (ϕ) è la pendenza della dipendenza in fase del comparatore (phase detector
phase slope).
Tale funzione, quando la differenza di fase è θŽ = , raggiunge la sua tensione di picco
£
B
pari a V~ e il valore del guadagno del comparatore di fase è K ‹ = V~ (V/rad).
In fig. 1.7 è mostrato il grafico di questo andamento.
- 24 -
Figura 1.7
1.7 Risposta del comparatore di fase in funzione della differenza di fase tra i due segnali in
ingresso. Il guadagno del comparatore è dato dalla tensione di picco Vab
- 25 -
Consideriamo adesso un sistema costituito da due sottosistemi in retroazione, come può
essere un PLL. A tal proposito si guardi la fig. 1.1.
Siano:
GA (s) =
NA (s)
DA (s)
NB (s)
GB (s) =
D B (s)
(1.35)
le funzioni di trasferimento dei due sottosistemi in retroazione. La funzione di
trasferimento del sistema complessivo sarà, quindi:
NA (s)DB (s)
DA (s)DB (s) − NA (s)NB (s)
(1.36)
χ(s) = DA (s)DB (s) − NA (s)NB (s)
(1.37)
G(s) =
Pertanto i poli del sistema in anello chiuso sono le radici del polinomio caratteristico:
e non si ha nessuna relazione precisa con le radici dei polinomi DA e DB , ossia con i poli
dei due sottosistemi interconnessi. Di conseguenza, per un sistema costituito dalla
retroazione di due sottosistemi non si può affermare nulla sulla asintotica stabilità del
sistema in anello chiuso a partire dalla asintotica stabilità o meno dei due sottosistemi
interconnessi.
Tuttavia, valgono le stesse regole di un sistema dinamico lineare per stabilire la stabilità
di un sistema ad anello chiuso (si veda la tabella 1.2), ovvero, anche un sistema ad
anello chiuso è asintoticamente stabile se e solo se tutte le radici del polinomio
caratteristico hanno parte reale negativa.
Ricaviamo, a questo punto, la funzione di trasferimento di un PLL Lineare.
- 26 -
Per ottenere la funzione di trasferimento di un PLL Lineare, riconsideriamo lo schema a
blocchi, riproposto in fig. 1.8. Possiamo aggiungere, a questo schema, le informazioni
ottenute nei precedenti paragrafi.
Figura 1.8
1.8 Schema a blocchi di un PLL lineare
Sostituendo i moduli del PLL Lineare con le loro funzioni caratteristiche si ricava:
Figura 1.9
1.9 Schema a blocchi di un PLL lineare sostituendo i moduli
con le funzioni caratteristiche corrispondenti
in cui il filtro passa basso è stato segnato come una generica funzione F(s). La funzione
di trasferimento, per questo sistema ad anello chiuso, è data da:
T(s) ≡
θ ^ (s)
K ‹ F(s) K ^ ⁄s
K ‹ K ^ F(s)
=
=
θc (s) 1 + K ‹ F(s) K ^ ⁄s s + K ‹ K ^ F(s)
(1.38)
In generale, quindi, la stabilità di un LPLL dipende, principalmente, dalla natura del
filtro.
- 27 -
In fig. 1.10 sono mostrate le tre tipologie di filtro più utilizzate per i PLL lineari. Queste
tre architetture sono comunemente denominate come filtro di primo, secondo e terzo
tipo. A seguire sono esposte le funzioni di trasferimento di questi tre esempi.
Figura 1.10
1.10
Schematici delle architetture di filtri utilizzate nei PLL lineari. (a) filtro di primo tipo, (b)
filtro di secondo tipo, (c) filtro di terzo tipo.
Filtro di primo tipo:
il filtro di primo tipo è l’architettura di filtro più semplice, costituita solo da due
resistenze e un condensatore. La funzione di trasferimento associata ha un solo polo e
un solo zero ed è data da:
in cui τA = RA C e τB = R B C.
F (s) =
1 + sτB
1 + s(τA + τB )
(1.39)
Filtro di secondo tipo:
La fig. 1.10.b mostra l’architettura del filtro di secondo tipo. La funzione di
trasferimento di questo filtro è molto simile alla funzione di trasferimento di primo tipo,
ma contiene un ulteriore termine di guadagno K ~ . La funzione di trasferimento è data
da:
F (s) = K ~
con τA = RA CA , τB = R B CB e K ~ = CA /CB .
1 + sτB
1 + sτA
(1.40)
- 28 -
Filtro di terzo tipo:
Infine, l’ultima architettura presentata è mostrata in fig. 1.10.c. La funzione di
trasferimento di questo filtro è:
F (s) =
1 + sτB
sτA
(1.41)
dove, ancora, τA = RA C e τB = R B C. Questo filtro è di particolare interesse poiché
presenta un polo per s = 0.
Sostituendo le (1.39 − 1.41) nell’espressione della funzione di trasferimento del PLL
(1.38) si ottengono:
per il filtro di primo tipo:
1 + sτB
τA + τB
T(s) =
1
+
K
K
K K
^ ‹ τB
sB + s
+ ^ ‹
τA + τB
τA + τB
(1.42)
1 + sτB
τA
T(s) =
1 + K ^ K ‹ K ~ τB
K K
sB + s
+ ^ ‹
τA
τA + τB
(1.43)
1 + sτB
τA
T(s) =
1
+
K
K
K K
^ ‹ τB
sB + s
+ ^ ‹
τA
τA
(1.44)
per il filtro di secondo tipo:
e per il filtro di terzo tipo:
K^K‹
K^K‹K~
K^K‹
- 29 -
I primi phase-locked loops (PLLs) furono implementati agli inizi del 1932 da Henri de
Bellescize, un ingegnere francese considerato l’inventore della ‘comunicazione
coerente’.
In quegli anni, la selezione della frequenza per la ricezione delle onde radio avveniva
utilizzando la tecnica di conversione supereterodina. Il circuito fu inventato nel 1917 da
Lucien Levy [9], ma fu brevettato l’anno successivo da Edwin Howard Armstrong. La
tecnica di conversione supereterodina sfruttava un particolare circuito, detto mixer, che
riceveva in ingresso due segnali: quello proveniente dall’antenna, processato da un
filtro a banda larga centrato su una frequenza f[ , e un segnale generato da un oscillatore
locale ad una frequenza f© . Il mixer, agendo su f[ e f© e analizzando la differenza delle
due, permetteva di ottenere l’informazione contenuta nel segnale alla frequenza
richiesta [10].
Tuttavia, anche la tecnica supereterodina continuava ad utilizzare molti circuiti di
sintonia (per agire su f[ ). Nacque così il ricevitore omodina o a conversione diretta,
molto più semplice del supereterodina, in quanto composto solo da un oscillatore, un
miscelatore o mixer e un amplificatore. Il segnale dell'oscillatore locale veniva
sintonizzato
direttamente
con
la
frequenza
che
si
desiderava
ricevere
e,
successivamente, moltiplicato con il segnale d'ingresso tramite il mixer. In questa
maniera il segnale risultante includeva direttamente l'informazione modulata originale.
Utilizzando questa tecnica, però, è necessario un controllo della frequenza
dell’oscillatore locale maggiore rispetto a quello necessario per il metodo
supereterodina. Per ovviare a questo problema, de Bellescize, nel giornare L’Onde
Électrique, in un articolo del 1932, descrisse la tecnica che è alla base dei PLL. Tale
metodo consiste nell’applicare all'oscillatore un segnale automatico di correzione, in
maniera da mantenerlo alla fase e frequenza desiderata [11].
Inizialmente, il sistema omodina non ebbe comunque molta fortuna, poiché il costo
necessario per la creazione di un PLL non giustificava i vantaggi che questa tecnica
portava. Per il buon funzionamento del ricevitore erano necessarie caratteristiche
- 30 -
tecniche, come la linearità dell’oscillatore in funzione della tensione di controllo e
l’insensibilità agli offset di corrente continua, che in quel periodo non erano ancora
ottenibili.
La grande popolarità di questo circuito, però, nacque con lo sviluppo delle tecnologie
integrate, che permettevano di realizzare a bassi costi su un unico circuito integrato un
intero PLL. Il primo PLL come circuito integrato (IC PLL) comparve nella metà del 1965
ed era un circuito puramente analogico. Un moltiplicatore analogico a quattro quadranti
costituiva il comparatore di fase, il filtro passa-basso era fatto da un circuito RC e un
oscillatore controllato in tensione generava il segnale di uscita. Questo schema di PLL è
quello che ad oggi è conosciuto come Linear Phase-Locked Loop (LPLL).
Nel 1969, la Signetics introdusse una linea di circuiti integrati monolitici che
contenevano un PLL completo sul chip, e gli impieghi applicativi si moltiplicarono
ulteriormente. Pochi anni più tardi la RCA introdusse il CD4046 CMOS Micropower
Phase-Locked Loop, che divenne un popolarissimo circuito integrato [12].
Inizialmente i PLL venivano utilizzati per la ricezione dei segnali per la televisione e
circuiti molto simili al LPLL sono stati utilizzati per decenni. Un'ulteriore importante
applicazione dei PLL si sviluppò con l'introduzione della televisione a colori negli Stati
Uniti, tra la fine degli anni quaranta e l'inizio degli anni cinquanta. La Federal
Communications Commission decretò, infatti, che il nuovo segnale televisivo dovesse
mantenere la compatibilità con i vecchi sistemi in bianco e nero, non allocando quindi
una nuova banda per permettere la trasmissione dell'informazione cromatica a parte.
Fu perciò necessario trasmettere tale informazione all'interno della banda del segnale
già esistente. Ciò rese necessaria la presenza di un circuito che consentisse una perfetta
sincronizzazione con la fase di un segnale di riferimento, applicazione tipica per un PLL.
Successivamente i PLL si sono spostati lentamente, ma inesorabilmente verso il mondo
del digitale. Il primissimo PLL digitale (DPLL) era nei fatti ancora un circuito ibrido: solo
il comparatore di fase era realmente digitale (costituito da uno XOR o un flip-flop JK),
ma gli altri moduli erano ancora componenti analogici [13].
- 31 -
Nacque infine l’idea degli ‘all-digital’ PLL (ADPLL), ovvero PLL realizzati interamente da
blocchi funzionali digitali e che, quindi, non contenessero nessun componente passivo
come resistenze e capacità.
Le caratteristiche, i vantaggi e le funzionalità di un approccio digitale e interamente
digitale saranno analizzate nel dettaglio nel secondo capitolo.
- 32 -
Questo lavoro di tesi ha compreso l’analisi e lo studio di diverse architetture digitali per
i componenti propri di un PLL interamente digitale (All-Digital PLL, ADPLL) e la
prototipizzazione su FPGA (Field Programmable Gate Array) di circuiti di test per questi
blocchi circuitali.
In elettronica digitale, un Field Programmable Gate Array, solitamente abbreviato con
FPGA, è un circuito integrato digitale la cui funzionalità è programmabile via software.
Un FPGA può essere visto come una matrice di componenti logici (porte logiche e FlipFlop, buffer, …) collegabili tra loro. Nel caso di tecnologia SRAM, questi circuiti sono
riprogrammabili all’infinito, per questo motivo, sono, ad oggi, utilizzati come strumenti
per la verifica delle caratteristiche dei dispositivi puramente hardware.
La progettazione su FPGA è stata fatta utilizzando il linguaggio di programmazione
VHDL, acronimo di VHSIC (Very High Speed Integrated Circuit) Hardware Description
Language.
Il VHDL è, insieme al Verilog, il linguaggio più usato per la progettazione di sistemi
elettronici digitali. Il VHDL fu inventato nel 1987 per essere utilizzato come standard
per la documentazione di sistemi digitali complessi. Il linguaggio, all'inizio, aveva solo lo
scopo di fornire una descrizione non ambigua di un sistema digitale, che potesse essere
interpretata univocamente dai vari progettisti impegnati nello sviluppo del sistema
stesso.
Successivamente, oltre che per la documentazione, il VHDL ha assunto un ruolo sempre
più importante anche nella fase di sintesi dei sistemi digitali, in particolare nel 1993 ne
uscì una versione aggiornata.
La programmazione in VHDL passa per più livelli di progettazione. La prima descrizione
del circuito è detta comportamentale (o Behavioural) ed è una descrizione ad alto
livello. In questa fase è descritto, appunto, il comportamento che deve avere il circuito
- 33 -
tramite la dichiarazione di statement e processi che vanno a comporre il funzionamento
generale del circuito. La differenza fondamentale tra il VHDL, e in generale di qualsiasi
linguaggio di programmazione hardware, rispetto a un linguaggio di programmazione
software, come può essere il C o il PASCAL, è che gli statement non sono eseguiti l’uno
dopo l’altro in una sequenza determinata dall’ordine con il quale questi si susseguono
nel file sorgente. Gli statement, in un linguaggio di programmazione hardware, sono
concorrenti e vengono, di conseguenza, eseguiti parallelamente nel codice.
Dopo la descrizione comportamentale si passa al secondo livello di progettazione, detto
sintesi o traduzione (translate). A questo livello il sistema viene descritto come
interconnessione di porte logiche elementari appartenenti ad un’opportuna libreria.
Questa serie di interconnessioni è comunemente chiamata netlist. Ad oggi, tramite
programmi di sintesi, a partire da una descrizione comportamentale di un sistema, si
può ottenere automaticamente la descrizione del circuito a basso livello. In questo
passaggio può essere utile, e a volte necessaria, la dichiarazione di vincoli (constraint)
di diverso tipo (strutturali, di area, temporali, …).
A partire dalla netlist, e utilizzando opportuni programmi di piazzamento e
collegamento delle celle (place & route), è possibile completare in maniera quasi del
tutto automatica il progetto di un sistema integrato.
Il risultato finale è la generazione di un file di configurazione (o bitstream) con cui è
possibile programmare l’FPGA.
Il VHDL è, infine, molto utile anche per la progettazione di file di simulazione del codice
descritto. È possibile, infatti, simulare diversi stimoli al circuito in esame e analizzarne
le risposte. La simulazione può essere effettuata a qualsiasi livello di descrizione del
circuito. Le librerie contengono, infatti, anche delle stime dei tempi di propagazione dei
componenti elementari utilizzati.
- 34 -
Storicamente, molteplici architetture di PLL sono state proposte in letteratura, quasi
tutte basate su almeno un dispositivo puramente analogico o sulla possibilità di agire su
un parametro analogico di un dispositivo digitale (ad esempio agendo sulla tensione di
alimentazione).
Successivamente, nuove architetture all-digital, ossia interamente digitali, hanno fatto il
loro ingresso nel ventaglio di soluzioni disponibili per la progettazione di PLL. Tali
architetture non hanno dipendenza da alcun elemento analogico o da componenti
passivi quali resistori e condensatori che, nel caso di interazione con radiazioni
ionizzanti, possono essere facilmente soggetti a fallimento, ed, in generale, sono esposti
ad altre problematiche conseguenti la presenza di elementi parassiti.
I motivi di tale migrazione verso il digitale sono essenzialmente legati alla evoluzione
tecnologica della produzione di circuiti integrati. Infatti, inizialmente, i dispositivi PLL
basati su elementi analogici erano preferiti per applicazioni ad alta frequenza ed elevate
prestazioni. Tuttavia, l'introduzione delle nuove tecnologie e i continui progressi
compiuti nel campo della produzione di circuiti integrati (diminuzione dei costi,
aumento delle frequenze di funzionamento, maggiori funzionalità a parità di area di
silicio) hanno consentito e favorito la realizzazione di PLL completamente digitali e
completamente integrabili.
Oltre ai costi ridotti e alla minor area utilizzata, in genere il flusso di progettazione
digitale è di gran lunga più semplice del corrispettivo analogico.
Inoltre, un PLL che sia interamente digitale possiede una minore sensibilità alle fonti di
disturbo, quali le variazioni della tensione di alimentazione e le variazioni parametriche
dei componenti con temperatura e invecchiamento (i cosiddetti parametri PVT: Process,
Voltage e Temperature). I circuiti analogici sono, difatti, più sensibili ad elementi
parassiti rispetto ai circuiti digitali, che, utilizzando segnali discriminati in ampiezza,
offrono anche una maggiore immunità al rumore.
In definitiva, l'approccio all-digital non può far altro che migliorare le caratteristiche
spettrali dei segnali ricostruiti e l'affidabilità del circuito.
- 35 -
Nell’analizzare gli ADPLL è utile soffermare l’attenzione sul significato che si intende
con il termine ‘all-digital’.
Il concetto di 'all-digital' non vuole significare soltanto che tutti i dispositivi del sistema
sono esclusivamente digitali, ma anche che, come diretta conseguenza, tutti i segnali
interni al sistema sono digitali. Quindi un segnale interno ad un ADPLL sarà sempre un
segnale binario (o di tipo ‘bit’) o una combinazione di segnali binari provenienti, ad
esempio, da un registro (un segnale del genere è tipicamente chiamato ‘parola’ o
‘word’). Per questo motivo, alcune delle analisi effettuate per i PLL analogici sono da
reinterpretare in un ambito all-digital.
Come già annunciato nell’introduzione, in questo lavoro di tesi è stata molto utile la
collaborazione con il progetto ALLDIGITALL del gruppo V della sezione INFN di Napoli.
ALLDIGITALL ha, infatti, tra gli obiettivi, lo studio, l'analisi di fattibilità e
l'implementazione di un dispositivo PLL interamente digitale.
Un ulteriore intento del progetto è, inoltre, di aggiungere al PLL il concetto di
‘portabilità’. Ovvero di utilizzare, per tutti i componenti propri del PLL, unicamente
componenti elementari (porte logiche, Flip-Flop, …) e non strutture più complesse che
possono trovarsi solo in alcuni dispositivi. In questo modo il progetto può essere
sintetizzato e implementato su una qualsiasi architettura.
L’obiettivo è, quindi, quello di creare un progetto ‘plug and play’, termine mutuato
dall'inglese che tradotto letteralmente significa ‘collega e usa’. Per tale motivo si sono
utilizzate, appunto, per il progetto, soltanto componenti elementari e si è tentato di
imporre il minor numero possibile di vincoli (constraint) necessari per il
funzionamento del progetto.
Considerando anche questo punto, i vantaggi rispetto a un PLL analogico aumentano. In
caso di cambio di tecnologia, infatti, un dispositivo analogico prevede una sostanziale
modifica del circuito per adeguarsi alle nuove caratteristiche di quel componente. Al
contrario, il PLL che si vuole progettare, può essere implementato volta per volta in
architetture più complesse (o più semplici).
- 36 -
Esistono, tuttavia, anche dei contro ad un approccio all-digital che vanno tenuti in
considerazione. In primo luogo il jitter, ovvero l’indeterminazione sulla fase, di un
oscillatore controllato in tensione è minore rispetto a quello di un oscillatore digitale.
Similmente, anche il jitter derivante dall'equivalente del filtro è maggiore, oltre a
dissipare sicuramente più potenza rispetto ai componenti passivi analogici del filtro di
un LPLL (Linear PLL). Ci sono infine problemi anche sul comparatore di fase dovuti alla
difficoltà ad implementare alcuni tipi di architetture se si vuole mantenere un approccio
interamente digitale.
- 37 -
Il passaggio agli ADPLL (All-Digital PLL) è un procedimento graduale di modifica dei
componenti propri del LPLL (Linear PLL) da analogici a digitali. Gli approcci ibridi
intermedi tra i due sono definiti come i Classical Digital PLL (DPLL) [14].
Il primo modulo che storicamente è stato sostituito nei DPLL è il comparatore di fase,
ottenendo il sistema mostrato in fig. 2.1.
Figura 2.1
2.1
Diagramma a blocchi di un Classical Digital PLL.
Come si vedrà nel paragrafo 2.4, il passaggio da analogico a digitale per i comparatori di
fase è l'evoluzione più semplice da apportare. Molte architetture già esistenti per i LPLL
possono infatti essere utilizzate con poche accortezze anche per circuiti DPLL.
Il secondo componente che si incontra nel PLL è il filtro, tuttavia, data la complessità
dell’intero sistema, si preferisce intervenire prima sull’elemento che più di tutti
caratterizza l’uscita dell’ADPLL, ovvero l’oscillatore. La differenza fondamentale tra un
Classic Digital PLL e un All-Digital PLL sta, infatti, proprio nell’oscillatore o generatore
di segnale (ovvero nel passaggio da un VCO a un DCO).
Mentre i LPLL e i DPLL hanno alla base un VCO (Voltage Controlled Oscillator), un
ADPLL, per poter essere completamente digitale, deve utilizzare un componente che,
oltre a generare un segnale digitale, ha in ingresso un segnale digitale. Tale componente
è il DCO (Digitally Controlled Oscillator), che è appunto un oscillatore capace di
generare un segnale di frequenza variabile, ma controllato da una parola di controllo
digitale.
- 38 -
In letteratura, molte architetture che si professano 'All-Digital' utilizzano ancora un
approccio ibrido in cui il DCO è in realtà composto da un VCO (ovvero un componente
analogico) unito ad un DAC (Digital to Analog Converter). In questo lavoro di tesi tali
architetture sono considerate ancora ibride / analogiche e quindi scartate per un
approccio interamente digitale.
Una volta compresa la natura dei DCO, approfondita nel paragrafo 2.5, si può passare ad
analizzare la naturale evoluzione del filtro. Il filtro, infatti, viene ad essere logica di
controllo o di traduzione delle informazioni. Il lavoro che deve fare il filtro in una
architettura All-Digital, infatti, è quello di acquisire le informazioni dal comparatore di
fase digitale e tradurle in istruzioni per il DCO.
A titolo di esempio, in fig. 2.2, è mostrata una architettura interamente digitale molto
semplice. Il comparatore di fase restituisce l’informazione relativa ai segnali in ingresso
su due bit, il VCO è stato sostituito con un DCO e come filtro si utilizza un contatore.
Figura 2.2
2.2
Diagramma a blocchi di un esempio di architettura di All Digital PLL.
- 39 -
In questo paragrafo vengono analizzate le architetture che sono state studiate per i
comparatori di fase (o PD, Phase Detector). Per i PD esiste una gamma praticamente
illimitata di soluzioni digitali. Proporremo in questa analisi tre architetture differenti di
PD, ciascuna basata su uno specifico elemento costitutivo.
Il primo comparatore di fase esposto è costituito da una porta logica XOR a due ingressi
e costituisce l’architettura più semplice per un comparatore di fase, ma comporta, di
conseguenza, delle funzionalità molto limitate. Il secondo comparatore è un Flip-Flop JK edge-triggered, che ha prestazioni migliori della porta XOR, ma continua ad essere
insufficiente per architetture interamente digitali. Infine è mostrato il Phase and
Frequency Detector (PFD), costituito da due Flip-Flop set-reset con reset asincrono e
una porta logica AND e risulta essere l’architettura di maggiore interesse.
Sono poi proposte due migliorie al PFD classico, per eliminare un difetto insito di questo
comparatore, che è il problema della generazione di un glitch. Tali architetture sono
l’Enhanced PFD e l’ECL (Emitter Coupled Logic) PFD.
Sono state, infine, analizzate anche altre architetture, tipiche di applicazioni simili ai
PLL, ovvero i CDR (Clock and Data Recovery). Come esempio in questa tesi sono
introdotte le architetture base di tipo Alexander e Hogge.
Lo XOR (eXclusive OR) è una porta logica che riceve in ingresso 'n' bit e restituisce '1' in
uscita se e solo se, il numero di ingressi che presentano il valore logico '1' è dispari. Nel
caso in cui gli ingressi siano solo due (n=2) si ha la tabella di verità 2.1.
Figura 2.3
2.3
Comparatore di fase ottenuto utilizzando una porta logica XOR. Il comportamento di
questo componente digitale è equivalente a quello di un mixer analogico.
- 40 -
A
0
INPUT
0
1
Tabella 2.1
2.1
1
Tabella di verità della porta logica XOR.
B
0
1
0
1
OUTPUT
A xor B
0
1
1
0
Se si collegano i due segnali (il segnale di riferimento e l'uscita del DCO) agli ingressi
della porta XOR si ottiene il più semplice dei rilevatori di fase.
Il valor medio del segnale in uscita contiene l'informazione sulla differenza di fase. In
fig. 2.4 sono mostrate due simulazioni di due segnali di frequenza uguale e differenze di
fase diverse.
Nel primo grafico (2.4.a), i due segnali in ingresso hanno una differenza di fase di π/2 e
generano un segnale in uscita con duty cycle (definito come il rapporto tra la durata del
segnale al livello logico ‘1’ e il periodo totale del segnale) esattamente del 50%, quindi
di valor medio nullo. Nel secondo grafico (2.4.b) la differenza di fase è π/4 e l’uscita ha
un duty cycle maggiore del 50%, quindi ha un valor medio maggiore di zero che indica
che i due segnali non sono allineati secondo la fase caratteristica di questo comparatore.
Figura 2.4
2.4
Analisi dei segnali di un comparatore di fase realizzato con una porta logica XOR.
- 41 -
Di conseguenza, utilizzando un circuito capace di misurare il duty cycle del segnale di
uscita, si ricava l'informazione richiesta sulla differenza di fase.
Vanno, tuttavia, sottolineati alcuni difetti della porta XOR utilizzata come comparatore
di fase. In primo luogo, una sua prima limitazione risiede nel fatto che opera
correttamente solo quando i segnali di comparazione sono simmetrici (ovvero i due
segnali in ingresso hanno un duty cycle originale del 50%). Inoltre, questo PD non
fornisce alcuna informazione sulla differenza in frequenza tra i due segnali.
Per mostrare questa limitazione, si considerino, ad esempio, due segnali tali che la
frequenza del primo è un multiplo intero della frequenza del secondo. La porta XOR
utilizzata come rivelatore di fase restituisce ancora un segnale con un duty cycle del
50% e valor medio nullo che non evidenzia differenze nei due segnali. Un’analisi di due
segnali aventi l’uno una frequenza doppia dell’altro è mostrato in fig. 2.5.
Figura 2.5
2.5
Analisi dei segnali di un comparatore di fase realizzato con una porta logica XOR nel
caso in cui i due ingressi abbiano la stessa fase, ma frequenze l’una esattamente il
doppio dell’altra.
Per questi motivi, quindi, lo XOR come rivelatore di fase non è generalmente utilizzato
neanche nelle architetture Classic Digital.
Il Flip-Flop J-K utilizzato come comparatore di fase nasce dalla necessità di analizzare la
differenza di fase anche quando il duty cycle dei segnali in ingresso non è sempre del
50%. Il Flip-Flop J-K utilizzato come rivelatore di fase, mostrato in fig. 2.6, è sensibile
solo ai fronti di salita (edge-triggered) e, per questo motivo, non sono rilevanti i duty
cycle dei segnali in ingresso.
- 42 -
Figura 2.6
2.6
Schematico e simbolo circuitale di un Flip-Flop J-K.
A seguire è mostrata la tabella di transizione (2.2) del Flip-Flop.
J
0
0
1
1
INPUT
K
0
1
0
1
OUTPUT

Qn+1
Q RA

QR
QR
0
1

QR
1
0
QR
(idle)
(reset)
(set)
(toggle)
Tabella 2.2
2.2 Tabella di transizione di un Flip-Flop JK.
Analogamente al caso precedente sono mostrate due simulazioni: nel primo caso i due
segnali in ingresso sono allineati alla fase caratteristica (2.8.a), che in questo caso è ¯,
generando un’uscita a valor medio nullo e duty cycle del 50%. Nel secondo caso, invece,
i due segnali non sono allineati (2.8.b) e il segnale in uscita ha un duty cycle diverso dal
50%.
Si osservi che, dall’analisi dell’uscita di questo comparatore, si possono ricavare
informazioni anche sulla eventuale differenza di frequenza tra i due segnali in ingresso.
Infatti, se, ad esempio, la frequenza del segnale di riferimento è superiore a quella
generata localmente, il Flip-Flop sarà portato in condizioni di set per un numero di volte
maggiore rispetto a quelle di reset. Questo implica che l'uscita è al valore alto per più
tempo di quanto accade al valor basso e, di conseguenza, si ha un del valor medio della
tensione d'uscita maggiore di zero.
- 43 -
Figura 2.7
2.7
Analisi dei segnali di un comparatore di fase realizzato con un Flip-Flop J-K.
Tuttavia, a causa della natura statistica del fenomeno, per poter individuare una
differenza di frequenza piccola tra i due segnali in ingresso, bisogna effettuare una
misura del valor medio della tensione di uscita su un numero considerevole di periodi.
In ogni caso il Flip-Flop J-K costituisce un buon rivelatore di fase. In fig. 2.8 è mostrato
l’andamento del valor medio della tensione in uscita (u
‹ ) in funzione della differenza di
fase (θŽ ). Per differenze di fase comprese tra −π < θŽ < ° si ha l’andamento lineare
previsto:
Figura 2.8
2.8
u‹ = K ‹ θŽ

(2.1)
Dipendenza lineare del valor medio del segnale di uscita in funzione della differenza di
fase θŽ .
- 44 -
Tuttavia, poiché altri PD, che saranno esposti di seguito, hanno caratteristiche che li
rendono più adatti ad applicazioni digitali, neanche questo PD, costituito dal Flip-Flop JK, è comunemente utilizzato per architetture digital o all-digital.
Il terzo comparatore di fase esposto è il Phase and Frequency Detector (generalmente
abbreviato con PFD) ed è largamente diffuso, anche nelle tecnologie moderne, tra le
architetture di PLL digitali. Uno schematico del circuito è mostrato in fig. 2.9.
Come suggerisce anche il nome, il PFD differisce dai due comparatori di fase finora
analizzati poiché il segnale in uscita dipende non solo dalla differenza di fase dei due
segnali in ingresso, ma restituisce una informazione legata anche alla loro differenza di
frequenza.
Figura 2.9
2.9
Schematico di un comparatore di fase e frequenza (PFD, Phase and frequency Detector).
L’uscita è data dai due bit Vu (UP) e Vd (DN). Il reset dei due Flip-Flop è asincrono.
Il PFD è costituito da due Flip-Flop di tipo D il cui reset asincrono è gestito dall'AND
delle due uscite Q1 e Q2. Le due uscite sono generalmente indicate con UP e DN
rispettivamente.
Essendo costituito da due Flip-Flop, il PFD può trovarsi nei quattro stati possibili:
•
•
•
•
UP = 0, DN = 0
UP = 0, DN = 1
UP = 1, DN = 0
UP = 1, DN = 1
Il quarto stato è, però, inibito dalla presenza dell'AND che gestisce i reset dei Flip-Flop.
- 45 -
È convenzione rinominare i tre stati possibili:
•
•
•
UP = 1, DN = 0 stato = +1
UP = 0, DN = 0 stato = 0
DN = 1, UP = 0 stato = −1
Se i Flip-Flop sono attivi sui fronti di salita possiamo sintetizzare il funzionamento del
PFD con il diagramma a blocchi mostrato in fig. 2.10.
Inizialmente il PFD si trova nello stato ‘0’. Se il fronte del segnale V1 arriva prima del
fronte del segnale V2, allora il PFD passa allo stato ‘+1’. Quando, successivamente, arriva
il fronte del segnale V2, si ritorna allo stato iniziale '0'. Se, viceversa, è il segnale V2 ad
essere più veloce del segnale VA , il PFD alterna tra lo stato ‘−1’ e lo stato ‘0’.
Figura 2.10
2.10
Diagramma a blocchi di un PFD. La figura mostra gli eventi che modificano lo stato del
PFD.
In un componente reale, tuttavia, il tempo di propagazione del segnale dall'uscita dei
Flip-Flop alla porta logica AND e, successivamente, al reset, è un tempo non nullo.
Quindi, nel passaggio dallo stato ‘+1’ (UP=1, DN=0) a ‘0’ (UP=0, DN=0), o, similmente,
da ‘−1’ (UP=0, DN=1) a ‘0’ (UP=0, DN=0), ci sarà sempre un tempo, comunque piccolo,
in cui il PFD transita nello stato proibito, in cui entrambe le uscite sono alte (UP=1,
DN=1), prima di poter asserire il reset. Questo impulso è generalmente indicato con il
termine glitch.
La presenza dell’impulso di glitch in questo PFD, è, per costruzione, ineliminabile e può
comportare difetti nell’interpretazione della risposta di questo comparatore. I
comparatori di fase che saranno esposti nei prossimi paragrafi affronteranno proprio
questo problema.
- 46 -
In fig. 2.11 è mostrata una simulazione del funzionamento del PFD. In questo esempio il
segnale VA ha una frequenza maggiore del segnale VB , in questo modo è possibile
tracciare la risposta del PFD per diverse differenze di fase. Si osserva, in particolare,
come i due segnali in uscita V± e V‹ commutano sulle transizioni dei segnali in ingresso
e, particolarmente evidente, è anche la presenza dei glitch, che, come già detto, sono
ineliminabili in questa architettura.
Figura 2.11
2.11
Analisi dei segnali di un comparatore di fase e frequenza (PFD).

Se si traccia il segnale in uscita mediato (
u‹ = V
± − V‹ ) in funzione della differenza di
fase tra i due segnali in ingresso (θŽ ) si ottiene l’andamento mostrato in fig. 2.12:
Figura 2.12
2.12
“ in funzione della
Dipendenza lineare del valor medio della tensione in uscita ’
differenza di fase ‘ in un PFD.
Si osserva, in questo modo, una dipendenza lineare nell'intervallo −2π < θŽ < 2°. Il
‹ può essere quindi ancora una volta espresso come:
segnale u
- 47 -
u‹ = K ‹ θŽ

(2.2)
Se la differenza di fase è maggiore di 2π (o minore di −2π), il PFD ha l’andamento
periodico mostrato in fig. 2.12.
Come anticipato, il PFD deve il suo nome al fatto che può essere utilizzato anche come
rivelatore di frequenza. Il motivo è semplice: se il segnale VA ha una frequenza
ωA maggiore della frequenza ωB del segnale VB , il segnale VA genererà più fronti di salita
del segnale VB nell'unità di tempo. Osservando quindi il diagramma a blocchi in fig. 2.10
si vede come il PFD alternerà sempre tra gli stati ‘0’ e ‘+1’. Viceversa, nelle condizioni
opposte, il PFD si troverà negli stati ‘0’ e ‘−1’.
In definitiva, questa architettura risulta essere di grande interesse per la progettazione
di PLL interamente digitali, difatti è ancora oggi utilizzata, in alcune sue varianti, nei
dispositivi DPLL e ADPLL. La motivazione principale è che il PFD contiene
l’informazione sulla differenza di fase su più bit ed è quindi interpretabile meglio dagli
altri componenti digitali presenti nel PLL.
Come abbiamo visto il PFD (Phase and Frequency Detector) risponde molto bene alle
esigenze di un ADPLL. L’informazione proveniente dal PFD è infatti un’informazione
digitale costituita dai due bit di ‘up’ e ‘down’ che, secondo lo schema che ricordiamo,
evidenziano i tre possibili stati dei due segnali:
•
•
•
UP = 1, DN = 0 stato = +1
UP = 0, DN = 0 stato = 0
DN = 1, UP = 0 stato = −1
Lo stato ‘+1’ indica che il primo segnale precede il secondo, viceversa lo stato ‘−1’,
mentre lo stato ‘0’ indica che i due segnali sono allineati.
Tuttavia, a causa dei ritardi dovuti alla porta NAND e al reset asincrono del Flip-Flop,
oltre che al ritardo di propagazione lungo la linea, esistono dei glitch ineliminabili sui
segnali di UP e DN quando i Flip-Flop si trovano nella condizione di doversi resettare.
- 48 -
Questo fa passare il sistema, seppur per un breve periodo, nello stato in cui UP=1 e
DN=1, che è uno stato proibito.
Una delle possibili soluzioni è quella di utilizzare un circuito come quello esposto in fig.
2.13 [15].
Figura 2.13
2.13
Schematico dell’enhanced PFD. Il blocco indicato con ‘Digital Pulse Amp’ è una
circuiteria che incrementa la durata dei due segnali OUTU e OUTD per poter essere
meglio rilevati dal reset dei Flip-Flop.
Il circuito è formato da un PFD classico, che si trova sulla sinistra in fig. 2.13, collegato
poi ad una architettura che ne elabora le informazioni. Questo PFD risponde nello stesso
modo del PFD classico, ovvero, quando il segnale proveniente dall’oscillatore ‘FB_CLK’
precede il segnale di riferimento ‘IN_CLK’, l’uscita ‘flagD’ genera un segnale basso,
mentre ‘flagU’ va alto. Viceversa nel caso inverso.
In particolare due AND e due NOT eseguono una discriminazione delle combinazioni
possibili delle uscite del PFD classico, generando i due segnali OUTU e OUTD. La durata
degli impulsi di OUTU e OUTD è, poi, incrementata dai blocchi denominati in fig. 2.13
con ‘Digital Pulse Amp’. La durata di questi impulsi può essere, infatti, in alcuni casi,
molto piccola, al punto di rischiare di non essere rilevata dal reset asincrono dei Flip-
Flop in uscita. Un esempio molto semplice di come ottenere questo risultato, utilizzando
logica negata, è mostrato in fig. 2.14. La catena di AND consente, infatti, di incrementare
la durata del segnale in ingresso. Altri due Flip-Flop completano la struttura di questo
PFD.
- 49 -
Figura 2.14
2.14
Schematico di un esempio di ‘Digital Pulse Amp’.
Per come è costituito questo comparatore di fase, si ottengono le stesse proprietà del
PFD classico, ma le due uscite ‘flagU’ e ‘flagD’ avranno entrambe un valore logico ‘1’
soltanto quando la differenza di fase tra i due segnali in ingresso è minore di una soglia.
In quel caso, infatti, i due segnali sono da considerarsi allineati. Il valore di questa soglia
è dovuto all’ottimizzazione del circuito e viene definita come ‘finestra di buio’. Al di
sotto di questo valore, infatti, il comparatore di fase non è capace di apprezzare
differenze tra i segnali.
Come si è visto nell’ultimo paragrafo, per poter assicurare una corretta lettura e
elaborazione dell’informazione, gli impulsi in uscita del PFD devono prima passare per
una architettura che ne incrementi la durata. Il PFD, in ogni caso, è ad oggi una struttura
ancora utilizzata in molte tecnologie. Come esempio è qui presentata una architettura
proposta da MAXIM (MAX9383) [16] che ha lo stesso comportamento logico di un PFD,
ma assicura una durata minima degli impulsi in uscita (450 ps a 25°C e una frequenza di
funzionamento di 100 MHz). L’architettura è mostrata in fig. 2.15.
Il circuito comprende cinque porte logiche NAND di cui una a quattro ingressi e due
Latch SR. Questa maggiore complessità del circuito comporta tempi di propagazione e in
generale ritardi maggiori. La prima diretta conseguenza è che la finestra di buio, come si
vedrà dai dati nel quarto capitolo, è maggiore rispetto alle altre architetture.
- 50 -
Figura 2.15
2.15
Schematico del PD MAX9382.
Oltre che nei PLL, esistono architetture di comparatori di fase digitali anche per
applicazioni di tipo CDR (Clock and Data Recovery) [17]. In questo tipo di applicazioni il
comparatore riceve in ingresso due segnali, il primo è il segnale periodico generato
dall’oscillatore, chiamato ‘clock ricostruito’, mentre il secondo è un segnale esterno
chiamato ‘data’. In fig. 2.16 è mostrato uno schematico di esempio di CDR.
A differenza di un segnale di clock, il segnale di data non commuta ad ogni periodo. Per
questo motivo le architetture dei comparatori di fase per i CDR sono lievemente
differenti rispetto a quelle per i PLL.
Figura 2.16
2.16
Schematico di architettura di CDR. Il comparatore di fase riceve in ingresso, oltre al
clock generato dall’oscillatore, un segnale di ‘data’ che non commuta ad ogni periodo.
- 51 -
Un comparatore di fase per un CDR deve essere capace di effettuare simultaneamente
due operazioni: la prima è di poter rilevare tutte le transizioni del segnale di ‘data’,
dopodiché, su queste transizioni, valutare la differenza di fase. A tal proposito, le
architetture di CDR tendono ad allineare i due segnali non con una differenza di fase
nulla, ma sfasando il clock ricostruito di π/2 rispetto al segnale di data.
Si comprende l’utilità di questa scelta osservando la fig. 2.17. Allineandosi al segnale di
data con uno sfasamento di π/2 si legge l’informazione del segnale di data al ‘centro-bit’,
in cui il segnale si è già assestato al valore logico appropriato, e non sulla transizione,
riducendo in tal modo la possibilità di leggere un dato sbagliato dovuto a tempi di
salita/discesa del segnale.
Figura 2.1
2.17
Differenza tra bordo del bit e centro bit.
Le due architetture di maggior successo per queste applicazioni sono il comparatore di
fase Hogge [18] e il comparatore di fase Alexander [19]. Il principio su cui si basano
queste architetture è di comparare i due segnali per valutare la differenza di fase solo
quando vi è una transizione del segnale casuale di data. Per fare ciò, entrambe le
architetture inviano il segnale di data ad una pipe-line di due Flip-Flop di tipo D.
In questo modo, si ottengono due repliche del segnale originario, di cui una è ritardata
rispetto all'altra di un periodo di clock. A questo punto, inviando il segnale originale e la
replica ritardata ad una porta logica XOR, si ottiene un impulso per ogni transizione del
segnale di data. Quando viene rilevato questo impulso, si passa alla lettura della
differenza di fase.
Nelle fig. 2.18 – 2.19 sono mostrati gli schematici delle due architetture e un esempio
delle risposte.
- 52 -
Figura 2.18
2.18
Comparatore di fase Hogge (’85).
Figura 2.19
2.19
Comparatore di fase Alexander (’75).
Entrambi queste architetture sono caratterizzate da due uscite (X e Y). L’uscita Y rileva
se c'è stata una transizione del segnale di data in ingresso, mentre l'uscita X contiene
l'informazione sulla differenza di fase.
Poiché per questo lavoro di tesi l’interesse è di studiare architetture per PLL, e non per i
CDR, i comparatori di fase Hogge e Alexander non sono approfonditi ulteriormente.
Sono state effettuate, in ogni caso, misure anche per queste architetture, ma i risultati
dimostrano che i Bang Bang sono ovviamente poco efficaci per gli scopi di un PLL.
Inoltre, si osservi che l'uscita che contiene l'informazione sulla differenza di fase è da un
bit (è contenuta solo nell’uscita X), quindi è soggetta agli stessi problemi dei
comparatori XOR e J-K. Difatti con un solo bit non si coprono tutte le tre possibilità in
cui possono trovarsi i due segnali comparati: il primo in anticipo, il secondo in anticipo e
entrambi allineati.
- 53 -
Il componente più complesso da progettare per una architettura interamente digitale è,
sicuramente, l’equivalente del VCO, ovvero il Digitally Controlled Oscillator. La
caratteristica richiesta per il DCO che si vuole progettare è di ottenere un dispositivo in
grado di generare un segnale digitale periodico la cui frequenza è governabile da una
parola di controllo in ingresso (Control Word).
Figura 2.20
2.20
Blocco costitutivo di un DCO.
In letteratura è molto difficile trovare un DCO che sia conforme agli obiettivi del
progetto, ovvero di essere interamente digitale.
Molto spesso, infatti, un DCO viene realizzato unendo un comune VCO (analogico) a un
DAC (Digital to Analog Converter o Convertitore Digitale-Analogico) o utilizzando una
resistenza variabile gestita dalla parola di controllo. In entrambi i casi, quindi, sono
introdotti componenti analogici. In fig. 2.21 sono mostrati questi due esempi.
Figura 2.21
2.21
Schema a blocchi di due DCO ibridi. Il primo utilizza un convertitore digitale analogico
per trasferire l’informazione ad un VCO, il secondo utilizza una resistenza variabile per
calibrare la tensione in ingresso al VCO.
Nel corso del lavoro di tesi sono state analizzate, anche grazie alla collaborazione con il
gruppo di ricerca ALLDIGITALL, molte architetture per DCO interamente digitali, ma
- 54 -
molte di queste architetture non sono risultate soddisfacenti. Si è giunti, infine, alla
conclusione che il modello base da cui partire per costituire un DCO interamente
digitale è il Ring Oscillator (oscillatore ad anello) di cui è mostrato lo schematico più
semplice in fig 2.22.
Figura 2.
2.22
22
Esempio di ring oscillator. Il segnale attraversa un numero dispari di invertitori e oscilla
tra lo stato di ‘zero’ e ‘uno’ logico con un semiperiodo uguale al tempo di propagazione
del segnale nell’anello.
Un Ring Oscillator è un anello chiuso costituito da un numero dispari di invertitori. Si
può intuire che l’output di questo dispositivo è un’onda quadra il cui semiperiodo è dato
dal tempo di propagazione del segnale nell’anello (dato dal ritardo della commutazione
delle porte unito al ritardo di propagazione del segnale).
Va sottolineato, sin da subito, che il periodo di un Ring Oscillator dipende dalla
temperatura del dispositivo. Nel
Nel caso di tecnologia CMOS, ad esempio, la temperatura
del dispositivo inficia il ritardo di propagazione
propagazione.. Una bassa temperatura implica un
ritardo di propagazione minore, che comporta un periodo minore e, quindi, una
frequenza di oscillazione maggiore. Una frequenza maggiore, però, comporta il
riscaldamento del dispositivo, che, facendo il ragionamento opposto, farà oscillare il
Ring Oscillator ad una frequenza minore. Per questo motivo, il periodo di un Ring
Oscillator non sarà mai costante, ma sempre affetto
affetto almeno da un errore (jitter) di
natura termica.
La prima architettura interamente digitale che viene esposta nasce dall'idea del
‘dithering’, una forma di rumore nota nell'elaborazione numerica dei segnali. Il
‘dithering’ è un rumore volontariamente aggiunto a un campione con una opportuna
distribuzione nota.
Per comprendere meglio cosa si intende, in fig. 2.23 è mostrato uno schematico
semplificato del DCO progettato.
- 55 -
Figura 2.23
2.23
Schematico raffigurativo del DCO interamente digitale che sfrutta la tecnica del
dithering.
Il modello del ring oscillator è dato dall'invertitore in alto. Il segnale può seguire i due
percorsi 1 e 2 che sono in ingresso al multiplexer. Questi due percorsi hanno dei tempi
di propagazione diversi, in particolare il secondo percorso ha un tempo di propagazione
maggiore, mostrato nello schematico avendo aggiunto esplicitamente il ritardo (tpd). Il
circuito logico PDM (Pulse Density Modulation), comandato dalla parola di controllo a n
bit (nel nostro caso n = 8), gestisce il selettore del multiplexer e, pertanto, il percorso
da far effettuare al segnale.
In pratica questo DCO ha soli due periodi possibili dati dai due percorsi 1 e 2 che
chiameremo rispettivamente il percorso naturale (caratterizzato da un tempo di
propagazione t R ) e il percorso perturbato (caratterizzato da un tempo di propagazione
t ‰ = t R + t ‰‹ ).
Definiamo macroperiodo l'intervallo di tempo che dura T = 2R (nel nostro caso 256)
periodi del ring oscillator, ovvero 2 ∙ T (nel nostro caso 512) commutazioni del segnale
in uscita (ad ogni periodo sono, infatti, associate le due commutazioni del livello logico
alto-basso e basso-alto del segnale).
A questo punto è possibile ottenere il periodo medio del segnale in uscita del ring
oscillator, come il macroperiodo diviso il numero totale di periodi T considerati.
Ipotizzando che, entro T periodi, il segnale attraversi M percorsi perturbati e T − M
percorsi naturali, il periodo medio del segnale in uscita è dato da:
- 56 -
T¶ =
M ∙ t ‰ + (T − M) ∙ t R M ∙ št R + t ‰‹ › + (T − M) ∙ t R
M
=
= t R − t ‰‹
T
T
T
(2.3)
ovvero una funzione lineare in M. Se per stabilire M si utilizza proprio la parola di
controllo CW, si ha una funzione lineare in CW.
Il controllo di M è effettuato attraverso il circuito logico PDM. Il suo compito è infatti di
introdurre M percorsi perturbati su T = 2R percorsi totali.
La modalità con cui il PDM introduce M percorsi perturbati in un macroperiodo può
variare. In particolare il circuito progettato e analizzato utilizza tre modalità:
Il circuito fa attraversare al segnale, nei primi M periodi, il percorso perturbato mentre,
nei restanti T − M periodi, il percorso naturale. Tutta la perturbazione è accumulata
all’inizio del macroperiodo.
Il circuito introduce gli M percorsi perturbati in modo che siano equispaziati tra loro
all’interno del macroperiodo. In particolare si effettua la divisione 2R /M che restituisce
un quoziente Q e un resto R. I primi R percorsi perturbati vengono inseriti ogni Q
periodi naturali, mentre i restanti M − R percorsi perturbati sono inseriti ogni Q − 1
percorsi naturali.
Ad esempio se si hanno T=16 percorsi totali, di cui M=3 perturbati, si ottiene Q=5 e
R=1. La sequenza sarà di 5 (Q=5) percorsi naturali più un percorso perturbato per il
primo (R=1) ciclo e di 4 (Q − 1 = 4) percorsi naturali e un percorso perturbato nel
resto del macroperiodo. Ovvero, indicando con N i percorsi naturali e con P i percorsi
perturbati
la
sequenza
NA NB N} N· N¸ ¹º NA NB N} N· ¹» NA NB N} N· ¹¼
del
macroperiodo
sarà:
Nel caso generale si ottiene un macroperiodo di:
- 57 -
RšQ ∙ t R + t ‰ › + (M − R) ½(Q − 1) ∙ t R + t ‰ ¾ = š(MQ + R) − M› ∙ t R + M ∙ t ‰
= T ∙ tR + M ∙ t‰
(2.4)
ricordando che T = MQ + R.
Nella modalità LFSR del PDM un generatore pseudo-casuale di numeri genera, ad ogni
periodo, un valore K che viene confrontato con M. Se K < ¿ viene forzato un percorso
perturbato, altrimenti, il segnale si propaga nel percorso naturale. In questo modo la
distribuzione dei percorsi perturbati nel macroperiodo è, appunto, pseudo-random.
In fig. 2.24 sono mostrate le tre simulazioni di queste modalità.
Figura 2.24
2.24
Simulazione delle tre modalità in cui può funzionare il PDM. Il macroperiodo è di T=18
periodi, di cui M=3 periodi perturbati. Nella modalità PWM (a) i periodi perturbati sono
tutti all’inizio del macroperiodo. Nella modalità ES (b) i periodi perturbati sono
equispaziati. Nella modalità LFSR (c) i periodi perturbati sono disposti in maniera
casuale nel macroperiodo.
In definitiva questo DCO raggiunge lo scopo di generare, con una parola di controllo a n
bit, 2R periodi medi di oscillazione del segnale in uscita. L’implementazione di questo
dispositivo è, inoltre, molto semplice, poiché i percorsi che può effettuare il segnale
sono solo due (il percorso naturale e il percorso perturbato). Il circuito logico PDM è
costituito unicamente da logica combinatoria e non sono necessari vincoli per il corretto
funzionamento dello stesso.
Va sottolineato, però, che questo DCO genera un segnale avente il corretto periodo
medio di oscillazione soltanto in tempi che sono multipli interi dei macroperiodi.
- 58 -
Tuttavia, in qualsiasi modo si progetti un DCO, questo potrà sempre generare soltanto
un numero discreto di periodi per il segnale in uscita. Se il periodo che si vuole ottenere
è intermedio tra due valori possibili t1 e t2, bisogna, in qualche modo, alternare fra
questi due periodi. La tecnica migliore per generare questo periodo intermedio è
proprio il dithering. Per questo motivo risulta di grande interesse analizzare i risultati
che porta una architettura di DCO che sfrutti la tecnica del dithering.
La seconda architettura interamente digitale presentata è costituita da un Ring
Oscillator unito ad una linea di ritardo programmabile.
La struttura del Ring Oscillator è visibile in fig. 2.25 nella parte sinistra dello schematico
ed è costituita da un unico invertitore. Una struttura a quattro rami, governati ognuno
da un multiplexer a quattro ingressi, regola il tempo di ritardo dell’oscillatore ad anello
e quindi il semiperiodo dell’uscita.
Nell’esempio mostrato, la parola di controllo è a 8 bit. I primi due bit della parola di
controllo (CW[0: 1]) governano il primo multiplexer, i secondi due bit (CW[2: 3])
governano il secondo multiplexer e così via.
Per ottenere il tempo di propagazione del segnale nell’anello, ovvero il semiperiodo del
Ring Oscillator, vanno sommati i ritardi di tutti i componenti attraversati, ovvero il
ritardo dei quattro multiplexer š4 t ‰¶±À ›, il ritardo dovuto all’invertitore št ‰cRÁ › e il
ritardo dei buffer attraversati šX t ‰‹ ›, con il ritardo dovuto ai collegamenti (t Âñ\Ž ).
I buffer utilizzati nel circuito sono scelti in modo da poter comprendere tutto l’intervallo
di periodo tra 0 t ‰‹ e 255 t ‰‹ e, in particolare, sono disposti in modo che il valore del
ritardo attraversato, una volta scelto il percorso, rispecchi il valore della parola di
controllo utilizzata. Il periodo di questo DCO risulta, quindi, essere:
T = t ‰cRÁ + t Âñ\Ž + 4 t ‰¶±À + (CW − 1) t ‰‹ = t ∗‰ + CW t ‰‹
avendo posto
(2.5)
- 59 -
t ∗‰ = t ‰cRÁ + t Âñ\Ž + 4t ‰¶±À − t ‰‹ 2.6
Ovvero,ancoraunavolta,unafunzionelinearedellaparoladicontrollo.
Il−1nellaformula2.5èdovutoalfattocheilritardooscillatra0e255t ‰‹ ,mentrela
paroladicontrollooscillatra1e256.
Figura2.25
Figura2.25
25
Schematico raffigurativo del DCO interamente digitale realizzato aggiungendo, al ring
oscillator,unalineadiritardoprogrammabile.
Glielementiutilizzatiinquestaarchitetturasonotutticomponentielementariinverter,
multiplexereritardi,diconseguenzaquestoDCOèinteramentedigitaleedèconforme
all’obiettivodicreareuncircuitoportabilesudiversearchitetture.
Per garantire la linearità del periodo del segnale in uscita dal dispositivo in funzione
della parola di controllo, tuttavia, è necessario avere un buon controllo sui ritardi dei
- 60 -
diversi percorsi possibili. Questo comporta l’aggiunta di vincoli al circuito, almeno per il
posizionamento delle celle, che influiscono sui ritardi dei percorsi possibili.
Tuttavia, anticipando ciò che verrà mostrato nel quarto capitolo, anche se il dispositivo
non è piazzato nella maniera ottimale, si può modificare l’ordine delle parole di
controllo in modo da ottenere una funzione in uscita monotona e approssimabile ad una
funzione lineare.
- 61 -
In questo capitolo sono esaminati in dettaglio i due circuiti di test utilizzati per
analizzare le caratteristiche tecniche dei comparatori di fase (PD) e degli oscillatori
controllati digitalmente (DCO).
Entrambi questi circuiti sono stati progettati in modo da poter simulare tutte le
combinazioni di interesse dei segnali in ingresso dei dispositivi sotto esame. In tal modo
si possono studiare le risposte a diversi tipi di stimoli.
Per la realizzazione dei progetti è stata utilizzata la scheda di valutazione KC705 [20]
della Xilinx, di cui è mostrata una foto in fig. 3.1. All’interno della scheda è presente una
FPGA della serie Kintex®-7 su cui sono stati implementati i circuiti.
Figura 3.1
3.1
Foto della scheda di valutazione KC705.
Sia per il DCO, sia per il PD, è molto importante studiare, come prima caratteristica, la
dipendenza delle risposte dei dispositivi in funzione dei segnali in ingresso. I circuiti di
test progettati devono, quindi, essere in grado di avere il comando di tutti i segnali che
governano i dispositivi in esame.
- 62 -
La gestione di questi segnali, oltre che di tutti i segnali di controllo e di dati degli altri
componenti presenti nel progetto, non è banale. Per dirigere queste operazioni, quindi,
in entrambi i circuiti di test progettati, è stato istanziato un microprocessore a 8 bit
affiancato ad una macchina a stati. Entrambi questi blocchi sono implementati
nell'FPGA in VHDL e il dettaglio del funzionamento nei due circuiti è descritto nei
paragrafi 3.2.2, 3.2.3 e 3.3.2.
Il primo componente analizzato è il DCO, ovvero l'oscillatore controllato digitalmente,
che genera il segnale periodico in uscita del PLL. Tale segnale in uscita è un'onda
quadra, di conseguenza, per essere ben definito, è sufficiente determinarne solo il
periodo o la frequenza. Per questo motivo, nel circuito di test del DCO, è presente un
frequenzimetro, ovvero uno strumento per la misura della frequenza, per studiare le
dipendenze del segnale in uscita.
Dei DCO si vuole analizzare, in primo luogo, l'effettiva linearità della frequenza del
segnale in uscita in funzione della parola di controllo che governa il dispositivo. Per
questo motivo, il circuito di test ha il controllo diretto della parola di controllo che
governa il DCO e può effettuare un’analisi (scan) della frequenza di funzionamento su
tutta la sequenza di parole di controllo possibili. Inoltre, per analizzare anche la
dipendenza dagli altri segnali in ingresso dei DCO, come, ad esempio, il segnale di
‘enable’ che abilita l’oscillatore o il segnale di ‘mode’ che modifica la modalità di
funzionamento del DCO con dithering, anche questi segnali sono governati dal circuito
di test.
Un’ulteriore caratteristica molto importante che si vuole testare nei DCO è la loro
effettiva stabilità del tempo. Si vuole cioè controllare se la frequenza del segnale in
uscita varia nel tempo mantenendo fissati i segnali di controllo in ingresso. Per studiare
questa eventuale dipendenza, il circuito di test del DCO controlla due grandezze
specifiche, che sono il tempo di misura del frequenzimetro, o ‘time base’, e il tempo di
attesa tra una misura e la successiva, denominato ‘hold off’. Agendo sul tempo di misura,
si controlla la distribuzione della risposta nel breve periodo e si può agire sul controllo
dell’errore sulla misura, mentre, agendo sull’hold off, si studia la dipendenza della
risposta del circuito in funzione del tempo nel lungo periodo.
- 63 -
Infine, il circuito di test progettato consente di analizzare anche la dipendenza dei
dispositivi in esame dai parametri circuitali PVT (Process–Voltage–Temperature) [21].
Nei dispositivi integrati, infatti, questi parametri possono inficiare di molto il
funzionamento dei circuiti interni. È stato quindi utilizzato, per il circuito di test, un
dispositivo on-chip presente sulla scheda KC705 che trasduce le informazioni sulla
temperatura e sulla tensione di alimentazione del dispositivo in un segnale analogico di
tensione. Tale segnale è, poi, convertito in digitale da un ADC [22] (Analog to Digital
Converter) istanziato nel progetto.
Figura 3.2
3.2
Schema a blocchi del circuito di test del DCO. Il dispositivo sotto esame (DCO), indicato
con un asterisco, non interagisce con l’esterno.
Un primo schema a blocchi del sistema per il test del DCO è mostrato in fig. 3.2. Come si
può notare, il circuito è progettato in modo che il dispositivo in esame (il DCO) non
interagisce in maniera diretta con l’esterno. È stata fatta questa scelta per evitare
eventuali distorsioni dei segnali che si vogliono analizzare dovute alle porte di
ingresso/uscita (I/O) dell’FPGA.
Il circuito di test comunica con l’esterno attraverso una porta seriale. In particolare sono
trasmesse le misure di frequenza, temperatura e tensione di alimentazione, unite ai
valori di caratterizzazione del DCO, come ad esempio la parola di controllo, modalità di
funzionamento, etc.
Nella pratica l'utilizzatore del circuito interagisce con il circuito attraverso un terminale
e la comunicazione avviene con un'interfaccia a riga di comando e un sistema di menu.
- 64 -
Figura 3.3
3.3
Schema a blocchi di base del circuito di test del PD. L’uscita del comparatore è analizzata
con un oscilloscopio.
Il secondo circuito realizzato è il sistema per il test dei comparatori di fase, mostrato in
fig. 3.3. In questo caso l’analisi dell’uscita del dispositivo in esame (il PD) non è
automatizzata da un tool (come prima con il frequenzimetro), ma viene eseguita
osservando direttamente il segnale prodotto dal comparatore di fase con un
oscilloscopio. Le informazioni che si vogliono ricavare da questo segnale possono,
infatti, essere contenute in impulsi dalla durata molto piccola (centinaia di ps) che non
sono analizzabili da porte logiche.
L’obiettivo primario di questo circuito di test è di ricavare la larghezza della finestra di
buio dei comparatori di fase in esame, ovvero, ricordiamo, la differenza di fase minima
entro cui i comparatori distinguono quale dei segnali in ingresso precede l’altro.
Il circuito progettato consente di generare due segnali periodici, di uguale frequenza, da
inviare ai due ingressi del comparatore di fase. La differenza di fase tra questi due
segnali è programmabile utilizzando dei comandi esterni con una risoluzione di 17 ps.
Tale informazione sulla differenza di fase è, inoltre, messa in output su uno schermo
LCD.
Ricapitolando, è possibile inviare, al PD in esame, due segnali con una differenza di fase
nota e poterne studiare la risposta. Da queste informazioni, come si vedrà nel paragrafo
4.3, si può analizzare la finestra di buio tipica per quella architettura.
- 65 -
Lo schema a blocchi semplificato che descrive il circuito per il test del DCO è mostrato in
fig. 3.4.
A questo livello di dettaglio si può osservare come la comunicazione con l’esterno, sia
per la ricezione sia per la trasmissione dei dati, è regolata da un componente fisico
presente sull’FPGA, l’ UART (Universal Asynchronous Receiver - Transmitter o
ricevitore - trasmettitore asincrono universale). I due UART sono indicati con un doppio
asterisco nello schematico in fig. 3.4.
I due blocchi cui compete la misura delle specifiche del dispositivo sono, invece, indicati
con un triplo asterisco. Il frequenzimetro riceve in ingresso l’uscita del DCO ed, essendo
costituito da logica registrata, ha bisogno anche di un clock di riferimento, indicato in
figura.
Figura 3.4
3.4
Schematico del circuito di test del DCO. Il dispositivo sotto esame è indicato con un
asterisco singolo(*). I due collegamenti con l’esterno sono gestiti da due UART, indicati
con un doppio asterisco(**), mentre i blocchi relativi alla presa dei dati, il
frequenzimetro e l’XADC, sono evidenziati da un triplo asterisco(***).
Una macchina a stati finiti (FSM, Finite State Machine) e un processore della serie
PicoBlaze si occupano rispettivamente della gestione del corretto funzionamento dei
blocchi satelliti (gestione degli ‘enable’, configurazione delle impostazioni del DCO,
coordinazione temporale tra i blocchi) e della comunicazione con il terminale esterno
- 66 -
(conversione di caratteri ASCII, temporizzazione delle trasmissioni dati, salvataggio e
controllo delle istruzioni inviate). Nei paragrafi a seguire sono analizzati nel dettaglio
tutti questi componenti.
La misura di maggior rilevanza del circuito è la misura della frequenza del segnale
generato dal DCO. È materia di interesse, quindi, comprendere quale tipo di
frequenzimetro utilizzare per questa acquisizione.
Negli anni si sono affermate diverse architetture di dispositivi per la misura di
frequenza. In questa tesi sono esaminati i frequenzimetri basati su contatori, spesso
nominati frequenzimetri a contatori, che possono essere suddivisi in due categorie [23]:
-
-
Frequenzimetro convenzionale
Frequenzimetro reciproco
Il frequenzimetro convenzionale utilizza il principio più intuitivo per la misura di una
frequenza, ovvero contare il numero di cicli effettuati dal segnale che si vuole analizzare
in un certo tempo noto di misura (time base). Utilizzando questo metodo, è evidente che
la frequenza misurata è data da:
frequenza misurata (Hz) =
numero di cicli completi
tempo di misura
(3.3)
Se, ad esempio, il segnale completa 10 periodi in un tempo di misura di 1s, allora la
frequenza del segnale è di 10 Hz.
Per misurare sia i cicli completati dal segnale in esame, sia il tempo di misura, si
utilizzano due contatori, da qui il nome ‘frequenzimetro a contatori’.
Il contatore che controlla il tempo di misura è gestito da un oscillatore di riferimento,
che in genere è scelto opportunamente accurato, in modo da poter considerare
trascurabile l’errore sulla time base. L’incertezza sulla misura è, di conseguenza, solo nel
conteggio dei periodi del segnale da misurare. L’errore di questo frequenzimetro,
- 67 -
quindi, dipende dal valore del tempo di misura. Se si ha, ad esempio, una time base di 1 s
e un errore di ±1 sul conteggio dei periodi effettuati dal segnale in esame, si ottiene un
errore sulla frequenza misurata di ±1 Hz; se si utilizza una time base di 0.1 s, invece, si
ha un errore di ±10 Hz.
Questo errore è indipendente dal valore della frequenza da misurare e, di conseguenza,
l’errore relativo diminuisce all’aumentare della frequenza da misurare.
Anche il frequenzimetro reciproco utilizza una struttura basata sui contatori per la
misura della frequenza, ma utilizza un principio diverso. L’idea di base è di misurare
quanto tempo impiega, il segnale di cui si vuole misurare la frequenza, a compiere un
numero noto di cicli.
Nella pratica un contatore conta un numero N di cicli del segnale in ingresso e un altro
contatore, governato dall’oscillatore di riferimento, conta il tempo trascorso
(measurement time, MT).
Il periodo medio del segnale da misurare risulta, quindi, essere T = MT/N. Il suo valore
reciproco è la misura della frequenza media. In formule:
frequenza media (Hz) =
numero di cicli del segnale in esame
N
=
(cicli dellÈ oscillatore di riferimento contati) ∙ t É MT
(3.4)
in cui t É è il periodo dell’oscillatore di riferimento.
A differenza dei frequenzimetri convenzionali, in questo caso, il tempo di misura non è
costante, ma dipende dal periodo del segnale da misurare. Tuttavia, se si ha una stima
della frequenza che si vuole misurare, si può calcolare un’approssimazione di tale
tempo. Ad esempio, se il segnale incognito ha una frequenza tra i 160 MHz e i 200 MHz,
ovvero un periodo tra i 6.25 ns e 5.00 ns, e si utilizza N=100 cicli, il tempo impiegato dal
frequenzimetro sarà compreso tra 0.5 μs e 0.63 μs.
- 68 -
Essendo N determinato, non può essere affetto da errore. L’errore che si commette in
questo tipo di frequenzimetro, dunque, è sul conteggio dei periodi dell’oscillatore che
determinano il tempo di misura (ovvero su MT).
Esiste, inoltre, un’altra categoria di frequenzimetri, detti frequenzimetri reciproci a
interpolazione, che aggiunge una parte analogica al circuito e permette di stimare anche
le frazioni di ciclo, per ottenere una misura più fine. Per le applicazioni di interesse per
questa tesi, non è necessario ottenere una risoluzione così spinta per il frequenzimetro
ed inoltre l’obiettivo di questo progetto è di non utilizzare parti di circuito analogiche.
Per questi motivi non sono qui esposte le soluzioni di frequenzimetri reciproci a
interpolazione, che tuttavia consentono risoluzioni circa 20 volte migliori.
Il frequenzimetro che si è deciso di utilizzare è un frequenzimetro convenzionale. Tale
scelta è stata fatta perché le frequenze da misurare sono relativamente alte, quindi
l’errore relativo che si commette è molto basso.
Nella realtà, non esistono segnali di frequenza costante stabili. I segnali sono, infatti,
affetti da rumori e interferenze, che ne possono variare il periodo di oscillazione. Nella
pratica, anche gli oscillatori ‘ideali’ dei clock possono generare segnali modulati e quindi
affetti da rumore.
Ipotizziamo, per adesso, che il segnale di cui andiamo ad analizzare la frequenza sia un
segnale ideale, ovvero di periodo costante.
Nel caso più generale, l’oscillatore che determina il tempo di acquisizione non è
sincrono con il segnale in ingresso. Ciò implica che né l’inizio, né la fine dell’intervallo di
misura sono correlati con il periodo del segnale da misurare.
Indichiamo con T il valore esatto di periodi del segnale in esame contenuti nel tempo di
misura. Indichiamo, invece, con R il risultato ottenuto dal contatore in una singola
acquisizione. In pratica, se, ad esempio, sono contenuti T=4,5 periodi del segnale in
esame all’interno della time base, il contatore avrà come risultato R in alcuni casi 4 e in
altri 5, a seconda di come è allineato il segnale in esame rispetto agli estremi
dell’intervallo di misura.
- 69 -
Figura 3.5
3.5
Simulazione dei conteggi effettuati dal frequenzimetro.
In fig. 3.5 è mostrata una simulazione di questo esempio ipotizzando che il contatore sia
sensibile ai fronti di salita del segnale. Nel primo caso si ottiene un conteggio di 5,
mentre nel secondo caso il contatore rileva solo 4 fronti.
Figura 3.6
3.6
Esempio di suddivisione del tempo di misura T in Q (parte intera) + F (parte
frazionaria).
Analizziamo, adesso, come si distribuisce la risposta R se si effettuano più misure.
La quantità T, da misurare, può sempre essere suddivisa in una parte intera Q ed una
frazionaria F, come mostrato in fig. 3.6.
T=Q+F
Q = 0, 1, 2, …
0<Ë<1
(3.5)
La singola misura con un contatore convenzionale otterrà, quindi, come risultato, uno
tra i due valori possibili R = Q oppure R = Q+1.
Ipotizzando che la posizione dell’intervallo di misura rispetto al segnale in esame sia
indipendente, e che possa, perciò, trovarsi con la stessa probabilità a tutte le possibili
differenze di fase, si può stimare la probabilità di ottenere le due possibili letture del
contatore. In particolare questa probabilità è legata ad F:
Prob(R = Q) = 1 − F
Prob(R = Q + 1) = F
(3.6)
- 70 -
Effettuando un numero N di misure, ogni i-esimo risultato può essere indicato come:
Rc = Q + kc
k c = 0, 1
i = 1, 2, … , N
La media su N misure indipendenti è data da:
Í
che, definendo:
risulta:
Í
1
1
Ì = ˆ Rc = Q + ˆ kc
R
N
N
cÎA
cÎA
Í
K = ˆ kc
Ì =Q+
R
cÎA
K
= RÏ + RÐ
N
Ì e R Ð indica la parte frazionaria.
in cui R Ï è la parte intera di R
Utilizzando la (3.6) si osserva che la distribuzione di K è una binomiale. Si ha:
N
Prob(K|F) = ½ ¾ F Ñ (1 − F)ÍZÑ
K
Il valor medio e la deviazione standard risultano, quindi, essere:
Ì =NF
K
e, di conseguenza:
σÑ = ÓN F(1 − F)
Ì =Q+
R
NF
=Q+F=T
N
ÓF(1 − F)
1
σÔ = ÓN F (1 − F) =
N
√N
(3.7)
(3.8)
(3.9)
(3.10)
(3.11)
(3.12)
(3.13)
Ovvero il valor medio di R è proprio il valore atteso T. A questo punto andiamo ad
analizzare l’andamento dell’errore σÔ [24][25].
- 71 -
Figura 3.7
3.7
Grafico di Ö× in funzione di F.
Se si disegna un grafico di σÔ in funzione di F si ottiene la fig. 3.7. Risulta evidente che
l’errore ha un massimo quando F = 1 − F = 0.5 pari a:
1
1
σ¶~À
= σÔ œF =  =
Ô
2
2 √N
(3.14)
π
(3.15)
Se si integra questo grafico si ottiene il valor medio della deviazione standard della
misura R, che è data da:
σ~Á =
8 √N
≃
0.39
√N
Questo è l’errore medio che si commette sulla misura dei cicli completati dal segnale in
esame (il numeratore della (3.3)) in un intervallo temporale dato dalla time base.
L’errore sulla frequenza è quindi questo valore diviso per il tempo di misura.
Il risultato ottenuto deriva dal calcolo della distribuzione di probabilità di ottenere il
risultato R, dato un tempo da misurare T. In pratica, in realtà, il problema è esattamente
il contrario, ovvero di stimare quanto vale il tempo T, dato il risultato R [26].
Utilizzando il teorema di Bayes per valutare la probabilità condizionata di ottenere F
rispetto a K, si ottiene una distribuzione, data dalla (3.16), conosciuta come
distribuzione beta.
N
Prob (F|K) = (N + 1) ½ ¾ F Ñ (1 − F)ÍZÑ
K
(3.16)
- 72 -
Figura 3.8
3.8
Distribuzioni beta per diversi valori del parametro × z .
In fig. 3.8 sono mostrate le diverse distribuzioni per differenti valori di R Ð (la parte
Ì).
frazionaria della misura R
La deviazione standard associata alla distribuzione beta è data da:
σÙ = Ú
(K + 1)(N − K + 1)
1
ÓR Ð (1 − R Ð )
≅
B
(N + 2) (N + 3)
√N
in cui, ancora una volta, si nota la dipendenza da 1/√N e, per R Ð = 1/2 si ha:
σÙ (R Ð = 1/2) =
1
2√N
che è identico al valore calcolato nella (3.14) di σÔ con F = 1/2.
(3.17)
(3.18)
Anche tenendo conto del fatto che T non è un valore costante, quindi, l’errore sulla
misura è una funzione inversamente proporzionale alla radice di N.
In definitiva, l’errore sulle misura di frequenza ottenute con un convenzionale può
essere approssimato da:
σ≅
con t ¶ il tempo di misura utilizzato.
0.39 1
⋅
√N t ¶
(3.19)
- 73 -
Nella realizzazione di questo circuito è risultato molto utile istanziare nel progetto un
processore ‘embedded’. Il processore utilizzato è un microcontrollore a 8
8-bit
bit della serie
PicoBlaze [27]
[27] ottimizzato per la serie 7 delle FPGA della Xilinx. Questo processore
occupa una regione molto piccola di FPGA (circa il 2% delle risorse disponibili), e
consente di realizzare programmi aventi fino ad un massimo di 4K istruzioni da 18 bit
da programmare in codice Assembly. Per la progr
programmazione
ammazione e la simulazione di
PicoBlaze è stato utilizzato il software open source openPICIDE.
Figura 3.
3.9
9
Diagramma di flusso del processore istanziato nel progetto del circuito per il test del
DCO.
- 74 -
Il ruolo principale del processore PicoBlaze presente nel progetto è la gestione della
comunicazione con l’esterno attraverso l’UART e il controllo del valore di alcuni registri
interni. Tali registri verranno poi utilizzati dalla macchina a stati per configurare i cicli
di acquisizione dati o ad impostare il DCO. L’esecuzione di questi compiti è suddivisa in
diverse subroutine, esposte nel diagramma di flusso semplificato mostrato in fig. 3.9.
La routine di funzionamento del processore a regime è una routine di attesa di
interrupt. Il processore è stato programmato in modo da utilizzare un interrupt
vettorizzato, ovvero la routine di interrupt reindirizza a tre diverse subroutine,
denominate ‘UART_RX’, ‘UART_TX’ e ‘END_MESSAGE’. Quando queste subroutine sono
completate, ovvero si raggiunge la parte inferiore del diagramma di flusso in fig. 3.9, il
processore riabilita la ricezione di interrupt e ritorna nella routine principale di attesa.
Le tre subroutine, associate alle diverse richieste possibili, sono esposte nei paragrafi a
seguire.
Si passa alla subroutine ‘UART_RX’ quando vi è una richiesta di input dall’utilizzatore
del circuito (ricezione di una istruzione). In questa subroutine il processore comunica
con la FSM dell’avvenuta ricezione dell’istruzione e passa ad elaborarla.
Il meccanismo di elaborazione è un processo ad albero composto dai sottomenu esposti
in precedenza. Si hanno, dal menu iniziale, le quattro possibilità:
-
gestire le impostazioni del DCO
-
inviare un comando di reset di tutto il circuito
-
gestire le impostazioni dell’acquisizione
avviare una routine di acquisizione
A parte casi specifici, tutte queste subroutine sono composte da due fasi: la prima fase
riguarda la stampa di caratteri sullo schermo (per comunicare all’utente quale tipo di
istruzione è stata richiesta) e la seconda è la fase di attesa della successiva istruzione da
parte dell’utente.
- 75 -
Quando un set di istruzioni è completato, il processore invia al circuito i comandi
necessari per impostare le caratteristiche richieste dall’utente, dopodiché ritorna
inattivo fino ad una nuova richiesta di interrupt. I comandi che possono essere eseguiti
sono riassunti a seguire:
Nome set
istruzioni
INCREMENT
CONTROL WORD
DECREMENT
CONTROL WORD
SET CONTROL
WORD
SET MODE
SET TIMER
SET REPEAT
SET FREERUN
SET HOLDOFF
START
ACQUISIZIONE
RESET DISPOSITIVO
Stampa a schermo
dco>
increment
word
New CW: 01
dco>
decrement
word
New CW: 00
control
dco>
set
word> aa
New CW: AA
control
control
Descrizione
L’indice della parola di controllo è
incrementato di una unità.
L’indice della parola di controllo è
decrementato di una unità.
L’indice della parola di controllo è
impostato al valore della parola di
controllo richiesta.
Si
modifica
la
modalità
di
funzionamento del DCO. Le modalità
dco> Mode: PWM
sono
disposte
ciclicamente
nell’ordine (ES, PWM, LFSR).
Il
tempo
di
misura
del
frequenzimetro è impostato al valore
acq> set time base> aa
Time Base: AA
richiesto (in periodi di colpi di
clock).
acq> set misure repeat> Il numero di volte che si vuole
aa
ripetere ogni misura è impostato al
N: AA
valore richiesto.
Se la modalità è attiva, ogni ciclo di
acquisizione è eseguito per tutti i
acq> Free run ON
possibili valori della parola di
controllo, dalla CW attuale a CW-1.
Il tempo di attesa tra due cicli di
acq> set hold off> aa
acquisizione è impostato al valore
hold off: AA
richiesto.
Il processore istruisce la FSM di
iniziare una routine di acquisizione.
Dopo la sequenza di stati esaminati
Si veda la fig. 3.13
nel precedente paragrafo la FSM
invierà al processore un interrupt
per la trasmissione di dati all’UART.
Reset di tutto il dispositivo che re*** Reset ***
inizializza tutto l’apparato.
new
- 76 -
Come già detto, dopo aver eseguito i comandi, il processore ritorna inattivo in attesa di
un nuovo interrupt.
Si passa alla subroutine ‘UART_TX’ quando vi è, da parte della macchina a stati, una
richiesta di elaborare una acquisizione (trasmissione dei dati misurati al terminale).
Ad ogni ciclo di acquisizione, quando tutte le informazioni sono pronte per essere
trasmesse, la FSM invia un interrupt al processore e passa allo stato ‘UART_TX’.
Nella routine di ‘UART_TX’ del processore sono letti, dai relativi registri, i dati sulla
parola di controllo attuale e sull’indice dell’acquisizione, oltre ai valori delle misure
effettuate (frequenza, temperatura e tensione di alimentazione). Queste informazioni
sono, poi, tradotte in un formato opportuno per essere trasmesso all’UART.
La traduzione delle informazioni avviene in un massimo di nove istruzioni per il
processore e converte tutti i dati in codice ASCII (American Standard Code for
Information Interchange) per la trasmissione ad un terminale. I dati numerici sono
trasmessi in base esadecimale.
L’ultima routine possibile del processore è la routine ‘END MESSAGE’. Dopo aver
effettuato tutte le acquisizioni richieste, la FSM invia come ultimo interrupt una
richiesta di ‘END_MESSAGE’.
Quando il processore riceve questo comando esegue la routine omonima in cui si invia
uno specifico messaggio al terminale.
La trasmissione di questo messaggio non è necessaria per il funzionamento del circuito,
ma consente all’utente di controllare rapidamente se l’acquisizione è terminata. Inoltre,
l’acquisizione automatizzata dei dati con gli script in MATLAB è facilitata dalla presenza
di un messaggio di fine.
- 77 -
Una macchina a stati si occupa della gestione dei blocchi che costituiscono il circuito
durante l'acquisizione dati e di inviare,
inviare, rispettando le specifiche temporali, i comandi
necessari al processore per le comunicazioni con l’UART. Per la gestione della
comunicazione con il processore, la FSM invia un segnale di interruzione (o ‘interrupt’)
per richiedere la trasmissione dei dati o comandi. Quand
Quando
o il processore è pronto,
restituisce un segnale di controllo (‘iack’, ‘interrupt acknowledge’) e la comunicazione
viene eseguita.
Figura 3.
3.10
10
Diagramma a blocchi della macchina a stati che controlla il circuito di test del DCO.
- 78 -
In fig. 3.10 è mostrato un diagramma a blocchi della FSM. All'accensione, la FSM inizia
nello stato 'IDLE' (lo stato evidenziato in grassetto) e resta in attesa di interazioni
dall’esterno.
Se c’è una richiesta di comunicazione da parte del terminale / utente, e, di conseguenza,
c'è un dato presente nell'UART in trasmissione, il segnale di controllo 'uart_dp' (uart
data present) va alto. La FSM passa quindi nello stato 'UART Rx' e invia un interrupt al
processore. Il processore legge l'istruzione proveniente dalla porta seriale e la elabora.
L’istruzione proveniente dalla porta seriale può essere di vario tipo, in particolare
distinguiamo il caso in cui le informazioni per esaurire l’istruzione sono già contenute
nella comunicazione, e il caso di istruzioni che, per essere completate, hanno bisogno di
ulteriori trasmissioni (ad esempio, per impostare il valore di un registro, bisogna
inviare, nelle trasmissioni successive, il valore che si vuole caricare).
Nel caso più semplice di singola istruzione il processore, dopo aver eseguito e
processato i comandi relativi a quella istruzione, restituisce un segnale di controllo
‘p_ack’ (processor acknowledge) in modo da far tornare la FSM nello stato di attesa
‘IDLE’.
Se l'istruzione per essere completa ha bisogno di altri dati dall'UART, ad esempio se si
entra in un sottomenu ed è necessario inviare altri comandi o l'istruzione richiede di
inserire un valore di più byte, il processore restituisce il segnale 'subm' e la FSM passa
allo stato 'submenu'.
In questo stato si attende un ulteriore dato dall'UART. Quando questo dato è presente, il
processore lo legge e lo elabora e restituisce il segnale di controllo 'p_ack' per tornare
allo stato precedente ('UART Rx'). Questo ciclo 'UART Rx' - 'submenu' può ovviamente
ripetersi più volte, se l'istruzione richiede più input dall'UART.
Quando tutta l'istruzione è stata completata il processore restituisce un ultimo 'p_ack' e
si ritorna allo stato di 'IDLE'.
Un caso particolare è quello in cui l'istruzione proveniente dall'UART è una istruzione di
start acquisizione. In questo caso, il processore comunica, in successione, un segnale di
- 79 -
'p_ack', con l’unico scopo di far tornare la FSM nello stato di 'IDLE', e poi un comando di
'START'.
La macchina a stati, come conseguenza, comincia un ciclo di acquisizione in cui gestisce
le periferiche di misura dei dati (frequenzimetro, xadc e contatori) e salva in registri
appositi queste acquisizioni. Questo ciclo è rappresentato dagli stati disposti a cerchio
nella fig. 3.10 che vanno da ‘Start DCO’ a ‘Acquire Supply Voltage’. Per non appesantire
inutilmente il diagramma a blocchi, non sono specificati tutti i segnali di comando e
controllo dei blocchi di misura.
Quando tutte le risultati misure sono pronte, la FSM è nello stato 'Request Processor
Interrupt' in cui comunica al processore di promuovere le misure in uscita sulla porta
seriale.
Tale
trasmissione
Communication'.
di
informazioni
avviene
nello
stato
'Processor
Terminato un ciclo di acquisizione, il processore restituisce 'p_ack' e la macchina a stati
si posiziona nello stato ‘N check / freerunning’. Nel caso in cui siano richiesti altri cicli di
acquisizione si ritorna allo stato 'deadtime' e si ricomincia un ciclo di acquisizione.
Quando, infine, tutte le acquisizioni richieste sono terminate, si passa allo stato 'END
message'. Il processore fornisce in uscita sulla porta seriale alcuni caratteri di fine
acquisizione e si passa, infine, allo stato di 'Run' che è uno stato analogo ad 'IDLE'. La
differenza tra ‘Run’ e ‘IDLE’ consiste nel valore che assumono alcuni registri di
configurazione che, nel caso si voglia effettuare una seconda acquisizione con gli stessi
valori, non è necessario azzerare e reimpostare.
Tutte le volte che il processore si trova a dover trasmettere dati al terminale, si corre il
rischio di inviare troppi dati all’UART, che può trasmettere caratteri ad un baud rate
(tasso di simbolo) di 115'600 bps (bit per second). La frequenza di funzionamento
interna del circuito è, invece, di 200 MHz, ciò significa che il circuito può generare molti
byte di dati in poco tempo. Inoltre, la trasmissione di ogni byte impiega nove cicli di
trasmissione (gli 8 bit della parola da comunicare più un bit di stop), incrementando
ulteriormente la differenza tra le velocità di funzionamento. Per questo motivo, sia in
ricezione sia in trasmissione, è stata affiancata, all’UART, una memoria FIFO [28] (First
In, First Out) utilizzata come buffer. La presenza del buffer FIFO consente di ricordare
- 80 -
gli ultimi 16 byte ricevuti (o trasmessi) e evita problemi di eccedenza (overflow) di
caratteri.
Nei tre stati della FSM in cui può avvenire la comunicazione del processore con il
terminale, quindi, è presente uno stato di attesa nominato ‘FIFO idle’. Quando la
memoria FIFO eccede gli 8 byte registrati, restituisce un segnale di controllo ‘bhf’
(buffer half full). Quando ‘bhf’ è alto, la macchina a stati si sposta nello stato ‘FIFO idle’
ed interrompe la generazione di caratteri del processore, per consentire al terminale di
leggere tutte le informazioni che si stanno inviando. Quando la memoria FIFO è di nuovo
pronta ad accettare dati, restituisce il segnale ‘bdp’ (buffer data present, il segnale è
negato ad indicare che non ci sono più dati), la FSM torna allo stato precedente e il
processore riprende il ciclo che stava effettuando.
L’interazione tra l’utente e il circuito avviene, come già detto, con un’interfaccia a riga di
comando o command-line interface (CLI). L’interazione con l’elaboratore è, quindi, di
tipo testuale: l’utente impartisce comandi alfanumerici mediante tastiera e riceve
risposte testuali sul monitor o display.
A seguire è presentata una panoramica dell'interfaccia a riga di comando del circuito e
delle opzioni che si possono impostare.
All’accensione, il menu iniziale si presenta sul monitor come in fig. 3.11.
Da questo menu si può accedere ai due sottomenu, per la caratterizzazione del DCO (1)
e per la gestione del tipo di acquisizione che si vuole effettuare (2), si può avviare una
acquisizione (3) o dare un comando di 'reset' che re-inizializza tutto il dispositivo (4).
Menu
1: open DCO menu
2: open acq menu
3: start acq
4: reset all
Figura 3.11
3.11
Interfaccia a riga di comando all’accensione e al reset.
- 81 -
I due sottomenu per il DCO e per l'acquisizione sono mostrati in fig. 3.12.
DCO menu
1: inc CW
2: dec CW
3: set CW
4: set mode
5: go back
Figura 3.12
3.12
acq menu
1: set time base
2: set averaging
3: set scan
4: set hold off
5: go back
Interfaccia a riga di comando nei due sottomenu relativi al controllo del DCO (a sinistra)
e alla configurazione del tipo di acquisizione da effettuare (a destra).
Dal primo sottomenu si può impostare la parola di controllo (Control Word, CW)
incrementandola (1) o diminuendola (2) di un'unità, impostarla direttamente al valore
desiderato (3) o gestire la modalità di funzionamento del DCO (4) (EvenlySpaced, PWM,
LFSR). L’ultimo comando (5) serve a ritornare al menu iniziale.
Dal secondo sottomenu si possono, invece, gestire le caratteristiche del frequenzimetro
(time base (1) e hold off (4)), impostare il numero di volte che si vuole ripetere ogni
misura (averaging) (2) e impostare se si vuole attivare la funzione di ‘scan’ (o ‘Free
Running’) (3). Se l’opzione di ‘scan’ è attiva, ogni ciclo di acquisizione verrà
automaticamente ripetuto per ognuno dei 256 valori possibili della parola di controllo.
Come prima, l’ultimo comando (5) serve a tornare al menu iniziale.
Ogni acquisizione restituisce sullo schermo un riepilogo delle specifiche impostate e,
successivamente, passa alla pubblicazione dei dati misurati. In fig 3.13 è mostrato un
esempio.
Ad ogni riga equivale un ciclo di acquisizione dati e tutti i valori sono codificati in
esadecimale. Ognuno dei valori contenuti in una riga determina una specifica
informazione, in particolare, il primo valore di ciascuna riga indica la ControlWord, il
secondo valore indica l'indice del ciclo, il terzo valore è l'output del frequenzimetro,
mentre il quarto e il quinto valore indicano la temperatura e la tensione di
alimentazione.
- 82 -
***** Recap *****
time base: 1 ms
hold off: 5 ms
Num: 05
Free Run: OFF
*****************
mode: PWM
ControlWord: 77
*****************
77 05 032D09 A15 54B
77 04 032D17 A16 54A
77 03 032D02 A18 54C
77 02 032D14 A14 54A
77 01 032DF9 A17 54B
-**
Figura 3.13
3.13
Esempio di output di un’acquisizione. All’inizio viene mostrata una ricapitolazione delle
configurazioni impostate (time base, hold off, numero di ripetizioni, scansione di tutte le
parole di controllo, modalità di funzionamento del DCO e parola di controllo iniziale).
Ad esempio la riga “77 05 032D09 A15 54B” in fig. 3.13 indica che si sta analizzando la
parola di controllo “77”, che mancano ancora “05” acquisizioni da effettuare e che i
valori di frequenza, temperatura e tensione sono, per questa acquisizione, “032D09”,
“A15”, e “54B”. Questi ultimi tre valori devono essere, nella fase di elaborazione dei dati,
convertiti.
Per la frequenza, il valore ottenuto va convertito in base decimale e diviso per la time
base. Nel caso esposto il valore di frequenza è “032D09”, che corrisponde a un valore in
decimale di 208’137; tale valore, diviso per la time base (in questo esempio 1 ms),
corrisponde ad una frequenza di 208,137 MHz (per l'analisi degli errori si veda il
paragrafo 3.2.5).
I valori di temperatura e tensione di alimentazione vanno, invece, tarati secondo un
procedimento di conversione fornito dal manuale dell’XADC presente sulla scheda. In
particolare, indicando con e t Þßà e VÞßà i valori restituiti dal circuito e con t á e Vá le due
grandezze di temperatura e tensione in gradi centigradi e volt, si ha:
t á = (t Þßà )A^ ∙
VÉ =
503.975
− 273.15 (°C)
4096
3 ∙ (VÞßà )A^
(V)
4096
(3.1)
(3.2)
- 83 -
avendo utilizzato il pedice ‘10’ per indicare la conversione in base decimale.
Riassumendo: ogni riga equivale ad un ciclo di acquisizione dati e contiene cinque valori
che indicano rispettivamente:
-
-
-
-
Il valore della parola di controllo in esadecimale (nell’esempio ‘77’ = 119)
Un indice che segnala la ripetizione di quella misura (nell’esempio da 05 a 01)
Il valore in esadecimale dell’uscita del frequenzimetro che va convertito a
seconda della time base utilizzata (ad esempio il valore ‘032DF9’ corrisponde a
208,377 MHz)
I valori di temperatura e tensione di alimentazione del dispositivo che vanno
calcolati dalle formule esposte in precedenza (ad ‘A17’ corrisponde una
temperatura di 44,7 °C e a ‘54B’ corrisponde una tensione di alimentazione di
0,99 V)
Quando si sviluppano progetti di elettronica basati sull'utilizzo di processori può essere
molto utile, o addirittura necessario, realizzare un'interfaccia di comunicazione con un
calcolatore per scambiare ed elaborare stringhe testuali, numeri e altri tipi di
informazioni. Per far questo, in genere, si ricorre all'utilizzo di un dispositivo hardware
denominato UART [29] (Universal Asynchronous Receiver Transmitter), che permette
di convertire flussi di bit di dati da un formato parallelo a un formato seriale asincrono e
viceversa.
Nella pratica, l’UART si interpone tra il processore e il bus di I/O, accettando byte (8 bit)
di dati in un intervallo di tempo e trasmettendoli, successivamente, un bit alla volta, in
modalità seriale. Quando viene fatto funzionare in ricezione, esso riceve, su un canale a
parte, un certo numero di bit per poi assemblarli in byte da inviare al processore.
Figura 3.14
3.14
Schema a blocchi della posizione dei due UART di trasmissione (Tx) e ricezione (Rx)
rispetto al dispositivo.
- 84 -
Per comprendere meglio questo componente basta osservare la fig. 3.14. Dal punto di
vista comportamentale, l’UART può essere visto come due registri a scorrimento: in
ingresso Rx è uno shift register da 8 bit, che riceve dati seriali e che li trasferisce in un
pacchetto di informazioni per via parallela, mentre allo shift register Tx arrivano dei
dati in parallelo, che poi sono ritrasmessi, un bit alla volta, verso il terminale.
L’acquisizione dei dati è un procedimento interno al circuito e, come si è visto, è
personalizzabile a piacimento ed automatizzata. L’analisi e l’elaborazione dati è invece
un procedimento effettuato dal terminale esterno.
Per automatizzare anche questo processo e velocizzare il processo di analisi dei DCO è
stato utilizzato il software di elaborazione numerica MATLAB.
Sfruttando le caratteristiche di MATLAB, l’utente può gestire le informazioni inviate e
trasmesse dalla porta seriale associata all’UART; in questo modo si consente al
programma, indirettamente, di gestire anche il dispositivo presente nell’FPGA. Quindi,
utilizzando solo MATLAB, si può eseguire una qualsivoglia analisi di caratterizzazione
dei DCO in esame.
Sono state programmate, in definitiva, tre tipologie di script: script per la
configurazione del circuito interno presente nell’FPGA, script per la traduzione e
l’acquisizione dei dati dall’FPGA al terminale e script per l’elaborazione numerica dei
dati. In questo modo, facendo eseguire gli script in ordine, è possibile ottenere le
specifiche di interesse del DCO in esame, mediate su una grande quantità di dati,
automatizzando tutto il procedimento.
Ciò è risultato molto utile sia nelle acquisizioni ripetute molte volte, poiché, utilizzando
sempre lo stesso codice, si è sicuri di ottenere le risposte sempre alla stessa sequenza di
stimoli, sia nelle acquisizioni molto lunghe, essendo il lavoro interamente gestito dal
terminale.
- 85 -
Il secondo circuito di test progettato è stato il circuito mostrato in fig. 3.15.
Il circuito analizza la risposta di un comparatore di fase, indicato da un singolo asterisco
nello schematico, ponendola direttamente in uscita dell’FPGA. Il segnale prodotto dal PD
(o segnali, se il comparatore ha un’uscita composta da più bit) è analizzato direttamente
con un oscilloscopio esterno. In questo modo, è possibile analizzare tutti i dettagli di
questo segnale, compresa l’eventuale presenza di impulsi molto brevi (glitch) che
tendono ad essere mascherati se si processa il segnale.
I due ingressi del comparatore sono rinominati ‘reference_clock’ e ‘delayed_clock’ e
sono controllati da un dispositivo MMCM (Mixed-Mode Clock Manager), una IP
(Intellectual Property), appositamente disegnata dalla Xilinx, istanziata nell’FPGA [30].
Nel progetto in esame, il dispositivo MMCM è utilizzato per generare due segnali di
uguale frequenza, ma aventi tra loro una differenza di fase nota.
Figura 3.15
3.15
Schematico del circuito di test del comparatore di fase. Il dispositivo sotto esame è
indicato da un asterisco, la gestione del circuito è comandata da pulsanti esterni e il
segnale prodotto dal PD è messo in uscita per poter essere osservato con un
oscilloscopio.
- 86 -
La gestione del dispositivo MMCM avviene con una macchina a stati (FSM) comandata
da pulsanti esterni all’FPGA presenti sulla scheda KC705. In particolare, è possibile
incrementare o decrementare il ritardo del secondo segnale prodotto dal dispositivo
MMCM. In base a come è stato configurato, il ritardo ha un passo minimo di circa 17 ps.
Le istruzioni inviate al dispositivo MMCM sono trasmesse, simultaneamente, anche ad
un processore PicoBlaze. Questo processore elabora le istruzioni ricevute e comunica i
comandi, tradotti, ad un monitor LCD esterno. L’utilizzo del processore è utile per la
gestione temporale della trasmissione delle informazioni, difatti il circuito sull’FPGA
lavora ad una frequenza di 200 MHz, mentre il monitor LCD funziona ad una frequenza
di soli 270 kHz e richiede, inoltre, un complesso protocollo di trasferimento.
Riassumendo, tramite i pulsanti presenti sulla KC705 è possibile gestire la differenza di
fase tra i due segnali in ingresso del comparatore di fase in esame. Tale differenza di
fase è mostrata a schermo sul monitor LCD. L’uscita o le uscite del comparatore sono
quindi collegate ed analizzate con un oscilloscopio esterno.
Per poter generare i due segnali in ingresso al comparatore di fase da analizzare è stato
utilizzato un dispositivo MMCM, ovvero Mixed-Mode Clock Manager.
Figura 3.16
3.16
Schematico dell’MMCM utilizzato nel progetto.
- 87 -
L’MMCM è un dispositivo analogico, presente sulla scheda di valutazione KC705
utilizzata, che consente di riconfigurare le caratteristiche di fino a due segnali periodici
di clock in ingresso. È possibile generare fino a sei gruppi di uscite possibili, e, per ogni
gruppo, è possibile effettuare un certo numero di operazioni. Le operazioni sono gestite
attraverso opportuni ingressi di configurazione e quelle di più comune utilizzo sono la
divisione e moltiplicazione in frequenza.
In fig. 3.16 è mostrato uno schematico semplificato dell’MMCM. Si può notare come il
nucleo di questo dispositivo sia costituito da un PLL analogico.
L’operazione di maggiore interesse per il circuito di test, effettuabile dall’MMCM, è
l’opzione di modificare la fase del segnale in ingresso.
Senza entrare troppo nel dettaglio, in fig. 3.17 è mostrato il blocco circuitale dell’MMCM
per come è stato istanziato nel circuito di test.
Il dispositivo è stato utilizzato in modo da ricevere in ingresso un clock (clk_in1) e
alcuni segnali di configurazione e generare in uscita due riproduzioni del clock, di cui
una sfasata di un valore noto rispetto all’altra.
Figura 3.17
3.17
Blocco circuitale del dispositivo MMCM istanziato nel progetto.
I segnali di configurazione dello slittamento di fase sono i tre segnali in fig. 3.17 aventi il
prefisso ‘ps’ (che sta per phase shift). Il primo, ‘psclk’, è un segnale di clock per il blocco
circuitale interno cui compete lo slittamento di fase. La frequenza di questo segnale è
uno dei parametri che determina il passo minimo dello slittamento di fase.
- 88 -
Nel circuito progettato si è utilizzato un ‘psclk’ ad una frequenza di 200 MHz e si ottiene
un passo minimo di circa 17 ps.
Gli altri due segnali, ‘psen’ e ‘psincdec’, sono, invece, i due comandi per eseguire la
modifica del valore della differenza di fase. Il segnale ‘psen’ è un segnale di abilitazione,
mentre ‘psincdec’ determina la direzione. Infatti, quando il segnale ‘psen’ è alto, se
‘psincdec’ è alto, la fase è incrementata, se viceversa ‘psincdec’ è basso, la fase è
decrementata.
In fig. 3.18 è mostrata una simulazione del funzionamento del dispositivo MMCM. Il
valore indicato come ‘phase shift’ va moltiplicato per il passo per ottenere la differenza
di fase (quindi un ‘phase shift’ di ‘+1’ corrisponde ad una differenza di fase di 17 ps).
Se l’operazione di slittamento è stata eseguita con successo, il segnale di controllo in
uscita ‘psdone’ va alto per un periodo di clock (del clock ‘psclk’).
Le due uscite ‘clk_out1’ e ‘clk_out2’ sono le due riproduzioni del segnale in ingresso di
clock ‘clk_in1’.
Il segnale ‘locked’ è un segnale di verifica che conferma che il PLL interno all’MMCM sia
agganciato.
Figura 3.18
3.18
Simulazione del comportamento dell’MMCM.
- 89 -
La logica di gestione di questo circuito è più semplice rispetto a quella utilizzata per il
circuito di test del DCO, poiché ci sono meno dispositivi da gestire. In fig. 3.19 è
mostrato lo schema a blocchi della macchina a stati.
In questo circuito la FSM riceve le istruzioni richieste dall’utente, tramite i pulsanti
presenti sulla scheda KC705, e le invia, simultaneamente, all’MMCM e al processore.
Figura 3.
3.19
19
Diagramma a blocchi della macchina a stati utilizzata nel progetto.
L’automa
’automa è inizializzato nello stato di IDLE, in cui si attende che il PLL interno all’MMCM
sia agganciato. Quando ciò avviene, il segnale di ‘locked’ va alto e la FSM passa allo stato
‘Ready’. In questo stato è possibile ricevere due differenti richieste, ovvero di
incrementare o di decrementare la differenza di fase. Se l’utente decide, ad esempio, di
incrementare lo sfasamento, l’automa passa nello stato di ‘more’, attende che l’MMCM
completi l’operazione, ovvero che il segnale ‘psdone’ vada alto, dopodic
dopodiché
hé termina il
ciclo con lo stato ‘end_m’ e ritorna in ‘IDLE’. Nel caso in cui si richieda di decrementare
lo sfasamento, il comportamento dell’automa è analogo, ma passando per gli stati ‘less’ e
‘end_l’.
I due stati di ‘end’ servono ad assicurare il tempo minimo sufficiente al processore
PicoBlaze ad acquisire sempre correttamente l’interrupt richiesto. La FSM, in questo
stato, attende infatti il segnale di controllo ‘iack’ (interrupt acknowledge) che conferma
la corretta ricezione dell’interrupt da parte del processore.
- 90 -
Il processore, quindi, riceve tutte le istruzioni inviate nel tempo da parte dell’utente e,
memorizzando l’informazione in uno dei suoi registri interni, tiene il conto dello
sfasamento totale tra i due segnali in ingresso del PD.
Per poter comunicare il valore dello sfasamento all’utente esterno si utilizza un monitor
LCD disponibile sulla scheda. Il protocollo di funzionamento del monitor LCD è non
banale e richiede, inoltre, una precisa temporizzazione nella trasmissione dei comandi.
La traduzione delle informazioni ricevute dalla macchina a stati in comandi per il
monitor LCD e la gestione dei tempi di questa comunicazione costituisce una parte
cospicua del codice con cui è programmato il PicoBlaze istanziato.
Il monitor previsto sulla scheda di valutazione KC705 è il Displaytech S162D [31], uno
schermo LCD (liquid crystal display) di 2 linee da 16 caratteri in matrice di punti 5x8. La
gestione della stampa a schermo dei caratteri è governata da un microcontrollore che si
interpone tra l’FPGA e il monitor. Il microcontrollore presente sulla scheda KC705 è
l’ST7066U della Sitronix [32].
Figura 3.20
3.20
Foto dello schermo LCD presente sulla scheda KC705. A sinistra un esempio del
carattere ‘G’ in matrice di punti 5x8.
In fig. 3.20 è mostrata una foto del monitor e un esempio di stampa di un carattere in
matrice di punti 5x8.
Il microcontrollore è provvisto di una memoria da 256 byte ed ha una frequenza di
funzionamento di 270 kHz. Il protocollo di funzionamento per la comunicazione con lo
schermo LCD è codificato a 10 bit, di cui 8 bit destinati ai dati.
- 91 -
L’FPGA è, tuttavia, collegata al microcontrollore con 7 pin, di cui 3 di controllo (enable,
register select e read/write) e solo 4 destinati ai dati.
La diretta conseguenza è che, per poter trasmettere un comando al monitor LCD (da 1
byte = 8 bit), l’FPGA deve effettuare due comunicazioni. Nella prima si trasmettono i 4
bit più significativi, mentre nella seconda i 4 bit meno significativi.
Inoltre, il microcontrollore gestisce l’esecuzione di differenti comandi in diversa
maniera. Per questo motivo, ogni comando è caratterizzato da un diverso tempo di
esecuzione che può variare anche di molto. Ad esempio, il protocollo di inizializzazione
del display impiega circa 40 ms, un comando di clear del display impiega 1.52 ms,
mentre un comando di stampa di un carattere impiega 37 μs.
Risulta, a questo punto, chiaro il motivo per cui è stato istanziato un processore
PicoBlaze nell’FPGA. La traduzione delle istruzioni da un protocollo ad un altro,
l’adattamento ad una diversa frequenza di funzionamento e la gestione temporale delle
attese di completamento dell’esecuzione dei comandi sono, infatti, tutte funzioni
complesse per cui vale la pena introdurre un processore nel progetto.
- 92 -
In questo capitolo sono esposti i risultati che si possono ottenere utilizzando i circuiti di
test descritti nel capitolo 3.
L’obiettivo di questo capitolo è di esporre il ventaglio di possibili utilizzi dei circuiti di
test progettati e non, piuttosto, di entrare esclusivamente nel merito dei valori ottenuti
delle specifiche dei componenti analizzati.
Gli studi possibili delle caratteristiche dei DCO e dei comparatori di fase possono essere,
infatti, di vario genere. In particolare, saranno analizzate:
-
le risposte dei DCO modificandone gli ingressi, ovvero uno studio della effettiva
-
l'affidabilità della risposta del frequenzimetro nell'acquisire misure, ovvero lo
-
-
linearità del periodo in funzione della parola di controllo (CW) e le differenze di
funzionamento del DCO con dithering nelle diverse modalità;
studio in funzione dell'hold off e del tempo di misura;
la dipendenza in funzione dei parametri esterni, ovvero come cambia la risposta
dei DCO in funzione di temperatura e tensione di alimentazione;
la larghezza della finestra di buio nei PD, analizzando la procedura che porta al
risultato richiesto.
Ognuna delle analisi esposte deve essere opportunamente configurata. Nella pratica,
script compilati in MATLAB gestiscono l'impostazione dei parametri per generare i
risultati proposti. L'uso di script non è necessario per il funzionamento dei circuiti di
test, ma velocizza la manipolazione dei dati, che possono essere, in alcune tipologie di
acquisizioni, in numero molto elevato.
In questa tesi gli script non sono presentati e descritti, ma sono, invece, spiegate le
metodologie e le tecniche con cui questi algoritmi generano i grafici o i valori di analisi
esposti.
- 93 -
Per il corretto funzionamento dei circuiti di test progettati è stato necessario collegare
la scheda di acquisizione KC705 con altri dispositivi. Come già sottolineato, il modello
del dispositivo FPGA su cui sono implementati i progetti fa parte della famiglia Kintex 7,
evidenziata in fig. 4.1, in cui è riportato il setup sperimentale utilizzato per le misure ed
i test effettuati
Figura 4.1
4.1
Schema dei collegamenti utilizzati per il verificare il funzionamento circuiti progettati.
In particolare, per utilizzare il circuito di test per il DCO, è stato necessario collegare la
scheda ad un terminale. Il collegamento è effettuato attraverso un cavo miniUSB–USB
che sfrutta lo standard seriale RS232. Per il controllo della tensione di alimentazione e
della temperatura è stato utilizzato un generatore di tensione esterno multi canale
N6705A della Agilent Tecnologies [33], che ha un’accuratezza dello 0.016% sul
controllo della tensione erogata.
Per analizzare i comparatori di fase è necessario collegare la scheda KC705 ad un
oscilloscopio. L’oscilloscopio utilizzato è il modello MDO4104-6 [34] prodotto dalla
Tektronix, che ha una frequenza di campionamento massima di 5 GSPS (Giga Sample
Per Second). È stata utilizzata tale strumentazione di ultima generazione, in quanto
necessaria per poter misurare piccole variazioni nella durata dei segnali sotto esame e
apprezzare anche piccole deviazioni dei circuiti dal loro comportamento ideale.
- 94 -
Il primo test che può essere effettuato, utilizzando il circuito di test del DCO, è lo studio
della linearità del periodo del segnale generato dall’oscillatore in funzione della parola
di controllo che lo governa.
In prima istanza è stato utilizzato questo circuito di test per studiare le caratteristiche
del DCO con dithering, esposto nel paragrafo 2.5.1. Il DCO è governato da una parola di
controllo ad 8 bit, che può assumere i valori da 0 a 255.
Ricordiamo, dalla (2.3), che il segnale generato ha un periodo medio di oscillazione pari
a:
T¶ = t R −
CW
t
256 ‰‹
(4.1)
in cui CW è la parola di controllo utilizzata, t R è il periodo naturale del DCO e t ‰‹ è la
differenza tra il periodo perturbato e il periodo naturale. T¶ è il periodo medio del
segnale in uscita al DCO. Va ricordato che, per questa tipologia di DCO, il periodo medio
corrisponde al valore della (4.1) solo in tempi che sono multipli interi del
macroperiodo, ovvero multipli di 2â = 256 periodi.
Per questa misura, la frequenza è misurata con un frequenzimetro convenzionale, di cui
il clock di riferimento ha una frequenza di 200 MHz.
Il tempo di misura utilizzato è lo stesso per ogni frequenza analizzata ed è un valore
relativamente alto, pari a 20 ms (pari a 4'000'000 di periodi del clock di riferimento,
avendo un periodo di 5 ns).
Si utilizza un tempo di misura lungo per valutare il periodo medio di oscillazione del
segnale in uscita del DCO su un gran numero di macroperiodi. In questo modo, l’errore
che si commette nell’analizzare un numero non intero di macroperiodi, si abbatte.
Infatti, se consideriamo i due casi estremi delle misure effettuate (periodo minimo =
- 95 -
4.647 ns e periodo massimo = 4.937 ns), il rapporto tra la parte frazionaria e il totale
dei macroperiodi considerati è, rispettivamente, dello 0.005% e 0.003%.
La prima analisi effettuata con questo circuito è il controllo della linearità.
Per studiare la linearità del periodo di oscillazione del segnale generato dal DCO in
funzione della parola di controllo è sufficiente impostare il circuito di test nella modalità
‘Freerun’ attiva. In questo modo il circuito analizza i valori di frequenza del segnale in
uscita per tutta la sequenza delle parole di controllo possibili. Data una acquisizione di
questo tipo, è sufficiente realizzare un grafico dei dati di frequenza e parola di controllo
restituiti dal circuito ed analizzarne l’andamento.
In fig. 4.2 è mostrato il risultato ottenuto.
216
214
Frequency (MHz)
212
210
208
206
204
202
0
Figura 4.2
4.2
50
100
150
Control Word
200
250
300
Dipendenza della frequenza del segnale generato dal DCO con dithering in funzione della
parola di controllo.
Effettuando il reciproco della frequenza si ottiene il grafico del periodo in funzione della
parola di controllo, mostrato in fig. 4.3.
Se si effettua un fit lineare, si ottengono i valori:
Periodo (ns) = 4.647 ns (±0.6 ps) + CW ∙ 1.1 (±0.04) ps
(4.2)
- 96 -
e un chi quadro ridotto pari a 1.0000.
A questo livello di definizione, si può, quindi, dire che, misurando la frequenza con un
tempo di misura relativamente grande, il periodo del segnale in uscita del DCO con
dithering analizzato ha un andamento lineare in funzione della parola di controllo.
4.95
4.9
Period (ns)
4.85
4.8
4.75
4.7
4.65
4.6
Figura 4.3
4.3
0
50
100
150
Control Word
200
250
300
Dipendenza del periodo del segnale generato dal DCO con dithering in funzione della
parola di controllo.
Definita la dipendenza lineare del dispositivo in funzione della parola di controllo, può
essere utile testare la stabilità nel tempo di questo DCO, ovvero se la frequenza di
oscillazione del segnale generato varia nel tempo mantenendo il dispositivo acceso.
Per effettuare questo test, è sufficiente impostare il dispositivo in modo da effettuare
misure ripetute di frequenza, mantenendo fissata la parola di controllo e impostando
diversi valori di hold off. L’hold off, si ricorda, è un tempo di attesa tra una misura di
frequenza e la successiva.
- 97 -
Nel caso in esame, ogni misura è stata ripetuta 100 volte e il tempo di misura utilizzato
del frequenzimetro è di 5 ms. Utilizzando la (3.19) per il calcolo dell’errore, si ottiene un
errore di circa 8 kHz su ogni singola misura di frequenza.
Gli hold off utilizzati nella misura esposta vanno da un minimo di 50 ns a un massimo di
80 ms. È stata poi effettuata un’ulteriore misura, 5 ore dopo la prima acquisizione, senza
mai spegnere il dispositivo, per vedere se esiste una variazione della risposta del
dispositivo dopo un lungo periodo.
La misura è stata effettuata analizzando la risposta del DCO su tutte le parole di
controllo. In fig. 4.4 sono mostrati i dati ottenuti in un particolare intervallo di parole di
controllo. In questo grafico gli errori non sono riportati poiché coprirebbero quasi
interamente la figura. Si può notare come i valori ottenuti, ai differenti hold off, siano
praticamente coincidenti. L’acquisizione effettuata dopo 5 ore è indicata con una linea
tratteggiata e anche questa ha un andamento praticamente identico alle altre curve a
parte un leggero slittamento di tutte le frequenze verso il basso, comunque all’interno
dell’errore di misura, che può essere attribuito alla diversa temperatura dell’ambiente
all’ora dell’acquisizione.
ho = 80 ms
ho = 40 ms
ho = 10 ms
ho = 5 ms
ho = 1 ms
ho = 100 ns
ho = 50 ns
wait = 5 hr
Mean Fequency (MHz)
206,5
206,3
206,1
205,9
170
Figura
Figura 4.4
4.4
171
172
173
174
175
Control Word
176
177
178
Caratteristica frequenza-parola di controllo, utilizzando differenti valori di hold off per
ogni misura ripetuta di frequenza.
- 98 -
Per comprendere meglio la dipendenza dall’hold off si consideri la fig 4.5. In questo
grafico è mostrata la frequenza misurata di una sola parola di controllo (in particolare è
mostrata una parola di controllo intermedia tra il valore massimo e minimo possibile,
CW = 125), avendo impostato i diversi hold off. In questo grafico è ancora più evidente
come i dati siano compatibili entro gli errori.
Frequency (MHz)
208.72
208.69
208.66
208.63
Figura 4.5
4.5
50 ns
100 ns
1 ms
5 ms
hold off
10 ms
40 ms
80 ms
Frequenza media di oscillazione del segnale generato dal DCO con dithering, utilizzando
la parola di controllo CW = 125, eseguendo misure ripetute di frequenza intervallate da
differenti valori di hold off. La linea tratteggiata indica il fit lineare effettuato.
Si conclude, con questa misura, che il DCO analizzato non presenta variazioni di
funzionamento nel tempo, ma è, al contrario, stabile anche nel lungo periodo.
Una relazione molto utile da studiare riguarda la dipendenza della risposta del
frequenzimetro in funzione del tempo di misura.
In generale, ricordiamo dalla (3.19), l’errore sulla misura della frequenza è
inversamente proporzionale al tempo di misura, se si utilizza un frequenzimetro
convenzionale. Nel caso di DCO con dithering, tuttavia, bisogna anche tener conto che il
periodo medio del segnale di oscillazione corrisponde al periodo richiesto solo in tempi
che sono multipli interi del macroperiodo.
Considerare frazioni di macroperiodo in più corrisponde, di conseguenza, ad aggiungere
un errore alla misura. Tuttavia, incrementando il tempo di misura, il rapporto tra la
- 99 -
parte frazionaria di macroperiodo in più che si considera con il numero totale di
macroperiodi in esame, diminuisce. L’errore che si commette nel considerare frazioni di
macroperiodo in più, di conseguenza, si riduce.
Il modo in cui tale errore inficia la misura, però, dipende anche dalla modalità di
funzionamento di questo DCO. È stato quindi utile studiare la dipendenza dal tempo di
misura nelle tre modalità caratteristiche del DCO.
Per analizzare queste differenze analizziamo un caso in esempio. Fissata una parola di
controllo (la CW utilizzata in esempio è ‘77’, pari a 119 in decimale), sono state
effettuate misure ripetute 100 volte della frequenza, utilizzando diversi tempi di misura.
In particolare sono riportati tempi di misura molto piccoli (time base di 50ns e 100ns) e
tempi di misura molto grandi (time base di 5ms e 20 ms).
Si osservino sin da subito, nelle fig. 4.7 – 4.9, i grafici ottenuti per le tre differenti
modalità. Ogni grafico contiene l’istogramma delle frequenze misurate.
In tutti e tre le modalità di funzionamento del DCO, la distribuzione si picca, come è
atteso, all’aumentare della time base. Tuttavia, il modo con cui il valor medio delle
misure, indicato da una linea continua, si avvicina al valore reale della frequenza da
misurare, indicato da una linea tratteggiata, varia a seconda della modalità utilizzata.
Figura 4.6
4.6
Simulazione del funzionamento del dithering DCO nelle tre modalità: PWM (a), Evenly
Spaced (b) e LFSR (c).
Per comprendere questi comportamenti, è utile tener conto di come sono distribuiti i
periodi perturbati nel macroperiodo. A tal proposito è qui riproposto, in fig. 4.6, il
grafico di funzionamento del dithering DCO sotto esame, già esposto nel paragrafo
(2.5.1). Considerare una parte frazionaria in più di macroperiodo nella misura
comporta, infatti, un errore che pesa in maniera differente nelle tre modalità.
- 100 -
time base = 5 ms
50
40
40
Occurrency
Occurrency
time base = 20 ms
50
30
20
10
209
Frequency (MHz)
time base = 100 ns
0
208.5
209.5
50
50
40
40
30
20
10
0
208.5
Figura 4.7
4.7
20
10
Occurrency
Occurrency
0
208.5
30
209
Frequency (MHz)
time base = 50 ns
209.5
209
Frequency (MHz)
209.5
30
20
10
209
Frequency (MHz)
0
208.5
209.5
Istogramma di misure ripetute di frequenza del segnale generato dal DCO con dithering,
utilizzando diversi tempi di misura (da 20 ms a 50 ns), avendo impostato la modalità
PWM.
Nella modalità PWM, in particolare, si osserva come la media delle misure effettuate è
sempre maggiore del valore reale. Questo perché tutta la serie di periodi perturbati è
introdotta all’inizio del macroperiodo. Per questo motivo, considerare una parte
frazionaria di macroperiodo in più, corrisponde sempre a sovrastimare il valore reale.
time base = 5 ms
50
40
40
Occurrency
Occurrency
time base = 20 ms
50
30
20
10
209
Frequency (MHz)
time base = 100 ns
0
208.5
209.5
50
50
40
40
30
20
10
0
208.5
Figura 4.8
4.8
20
10
Occurrency
Occurrency
0
208.5
30
209
Frequency (MHz)
time base = 50 ns
209.5
209
Frequency (MHz)
209.5
30
20
10
209
Frequency (MHz)
209.5
0
208.5
Istogramma di misure ripetute di frequenza del segnale generato dal DCO con dithering,
utilizzando diversi tempi di misura (da 20 ms a 50 ns), avendo impostato la modalità ES.
- 101 -
Nella modalità Evenly Spaced, invece, disponendo in maniera equispaziata i periodi
perturbati nel macroperiodo, si commette un errore che è in media più piccolo rispetto
agli altri due casi, anche con tempi di misura piccoli. Ciò è dovuto al fatto che, anche in
una frazione di macroperiodo, la percentuale di periodi perturbati è circa la stessa di
quella di un macroperiodo intero.
Nella modalità LFSR, infine, dove i periodi perturbati sono disposti secondo un
algoritmo pseudocasuale, il valor medio dei valori misurati oscilla rispetto alla
frequenza reale anch’esso con un andamento casuale.
time base = 5 ms
50
40
40
Occurrency
Occurrency
time base = 20 ms
50
30
20
10
209
Frequency (MHz)
time base = 100 ns
0
208.5
209.5
50
50
40
40
30
20
10
0
208.5
Figura 4.9
4.9
20
10
Occurrency
Occurrency
0
208.5
30
209
Frequency (MHz)
time base = 50 ns
209.5
209
Frequency (MHz)
209.5
30
20
10
209
Frequency (MHz)
209.5
0
208.5
Istogramma di misure ripetute di frequenza del segnale generato dal DCO con dithering,
utilizzando diversi tempi di misura (da 20 ms a 50 ns), avendo impostato la modalità
LFSR.
Lo stesso circuito di test è stato utilizzato anche per caratterizzare il mux DCO,
presentato nel paragrafo 2.5.2.
In questo caso, si ricorda, il periodo del segnale in uscita è dato dalla (2.5) ed è:
T = t ∗‰ + CW ⋅ t ‰‹
ovvero, anche questa volta, una funzione lineare della parola di controllo CW.
(4.3)
- 102 -
Va ricordato, per comprendere meglio le analisi esaminate per questo oscillatore, che il
progetto di questo specifico DCO basato su mux è caratterizzato da molteplici percorsi
differenti e, quindi, da un numero cospicuo di vincoli (constraint) per ottimizzarne la
funzionalità. Tutti i differenti ritardi indicati nella fig. 2.25 devono, infatti, essere
regolati e adattati alla struttura fisica del dispositivo reale su cui si va a implementare il
progetto. La precisione con cui si riescono a definire i ritardi e i multipli interi dei ritardi
dello schematico in fig. 2.25 determina, infatti, la linearità della risposta del DCO in
funzione della parola di controllo.
Tuttavia, è possibile aggirare questo problema utilizzando uno stratagemma.
Imponendo dei vincoli non troppo stringenti al progetto, infatti, si è ottenuto
l’andamento mostrato in fig. 4.10, in cui è mostrato anche il fit lineare.
170
160
Frequency (MHz)
150
140
130
120
110
100
Figura 4.10
4.10
0
50
100
150
Control Word
200
250
300
Dipendenza dalla frequenza del segnale generato dal mux DCO in funzione della parola
di controllo.
Questo andamento è, evidentemente, non lineare (con un chi quadro pari a 0.72).
Se, però, si riordina la successione delle parole di controllo in ingresso del DCO, in modo
che la funzione di risposta sia monotona, si può ottenere un andamento come in fig.
4.11, in cui è ancora mostrato anche il fit lineare effettuato.
- 103 -
Il chi quadro passa da 0.72 a 0.97 e si può, quindi, concludere che l’andamento della
frequenza del segnale in uscita di questo DCO può essere considerato lineare, così come
previsto dalla (2.5).
170
160
Frequency (MHz)
150
140
130
120
110
100
Figura 4.11
4.11
0
50
100
150
200
New Control Word
250
300
Dipendenza dalla frequenza del segnale generato dal mux DCO in funzione della parola
di controllo, avendo riordinato la sequenza delle parole di controllo.
Anche per questo secondo DCO, sono stati effettuati i test di stabilità nel tempo e
dipendenza dal tempo di misura. I risultati ottenuti da questi test non hanno riportato
sostanziali differenze di comportamento rispetto al DCO con dithering; per questo
motivo, le dipendenze da questi parametri del mux DCO non sono riportate in questa
tesi.
Sono ora presentati, invece, gli studi delle dipendenze della risposta del mux DCO in
funzione dei parametri esterni, in particolare temperatura e tensione di alimentazione
del dispositivo.
Configurando opportunamente l'FPGA su cui è implementato il progetto, e collegando
adeguatamente un generatore esterno, è possibile avere il controllo della tensione di
funzionamento del dispositivo. Per poter controllare la temperatura, invece, è stato
- 104 -
utilizzato un dissipatore posto sopra l’FPGA governato da un secondo generatore.
Aumentando la tensione in ingresso del dissipatore, aumenta la velocità della ventola e,
di conseguenza, diminuisce la temperatura.
Il circuito di test è, quindi, stato configurato in modo da eseguire un’acquisizione su
tutta la sequenza delle parole di controllo possibili (modalità ‘FreeRun’ attiva) ripetuta
100 volte. Ad ogni ciclo di misura sono stati memorizzati i valori di frequenza, parola di
controllo, temperatura e tensione di alimentazione. Il tempo di misura usato è di 5 ms e
si ha, quindi, un errore, su ogni singola misura di frequenza, di circa 8 kHz.
Per questo tipo di studio non interessa la dipendenza dalla parola di controllo, ma solo
la dipendenza dai due parametri esterni. Per ogni ciclo di acquisizioni di 25'600 misure
(100 misure per ognuna delle 256 parole di controllo) è stata effettuata una media delle
frequenze misurate, mantenendo costanti i valori dei due parametri esterni.
Sono stati, poi, effettuati diversi cicli di acquisizione, variando i due parametri esterni.
La temperatura è stata analizzata in un intervallo da 31°C a 49°C, mentre la tensione di
alimentazione passa da 0.88 V a 1.1V.
Il grafico ottenuto è mostrato in fig. 4.12 e ogni punto rappresenta la media delle 25'600
terne di valori di temperatura, tensione di alimentazione e frequenza di ogni
acquisizione.
Mean Frequency (MHz)
140
130
120
110
100
90
1.1
50
1.05
45
1
40
0.95
0.9
Figura 4.12
4.12
Supply Voltage (V)
35
0.85
Temperature (°C)
Dipendenza della frequenza media di funzionamento del mux DCO in funzione dei
parametri esterni di Temperatura (°C) e tensione di alimentazione (V).
- 105 -
Questo grafico è approssimabile ad un piano e si possono effettuare fit lineari lungo le
due direzioni per determinare la dipendenza dai due parametri.
A titolo di esempio, è mostrato in fig. 4.13 un fit lungo la temperatura e in fig. 4.14 lo
stesso grafico, ruotato e mostrando solo i punti utilizzati per il fit.
Mean Frequency (MHz)
140
130
120
110
100
90
1.1
50
1.05
45
1
40
0.95
0.9
Supply Voltage (V)
Figura 4.13
4.13
35
0.85
Temperature (°C)
Esempio di fit lineare effettuato lungo la temperatura e mantenendo invariato il valore
della tensione di alimentazione.
114
113.5
Mean Frequency (MHz)
113
112.5
112
111.5
111
110.5
110
34
Figura 4.14
4.14
36
38
40
42
44
Temperature (°C)
46
48
50
Fit lineare della frequenza in funzione della temperatura, mantenendo costante il valore
di tensione di alimentazione, effettuato nella fig. 4.13 e ruotato nel piano x-z e
mostrando solo i punti utilizzati per il fit.
- 106 -
La stesso procedimento è stato effettuato anche per studiare la dipendenza dalle
tensioni. Anche in questo caso, sono mostrati a titolo di esempio due grafici dei fit.
Mean Frequency (MHz)
140
130
120
110
100
90
1.1
50
1.05
45
1
40
0.95
0.9
Supply Voltage (V)
Figura 4.15
4.15
35
0.85
Temperature (°C)
Esempio di fit lineare effettuato lungo la tensione di alimentazione e mantenendo
invariato il valore della temperatura.
140
135
Mean Frequency (MHz)
130
125
120
115
110
105
100
95
90
0.85
Figura 4.16
4.16
0.9
0.95
1
Supply Voltage (V)
1.05
1.1
Fit lineare della frequenza in funzione della tensione di alimentazione, mantenendo
costante il valore di temperatura, effettuato nella fig. 4.15 e ruotato nel piano x-z e
mostrando solo i punti utilizzati per il fit.
- 107 -
Le tabelle 4.1 e 4.2 riassumono tutti i fit effettuati e i valori ottenuti. Nella prima colonna
è mostrato il valore del parametro tenuto costante.
Tensione di alimentazione
(V)
(MHz / °C)
0.93
-0.193
0.88
0.91
0.95
0.97
0.98
1.01
1.03
1.05
Tabella 4.1
4.1
1.07
err
-0.135
0.006
-0.218
0.006
-0.176
-0.236
-0.255
-0.281
-0.306
-0.322
-0.344
0.006
0.007
0.006
0.006
0.005
0.005
0.005
0.004
Intercetta
(MHz)
100.2
111.0
116.0
121.2
125.6
130.1
136.4
142.3
146.0
151.0
err
Temperatura
Pendenza
(°C)
(MHz / mV)
36.9
0.214
34.1
40.0
43.0
45.9
49.0
err
0.218
0.005
0.214
0.005
0.215
0.213
0.211
0.212
0.005
Intercetta
(MHz)
0.005
0.005
0.005
0.005
-95
0.993
0.2
0.997
0.3
0.3
0.2
0.3
0.2
0.2
0.2
0.2
err
-92
-91
-91
-90
-88
-89
χB
0.2
Valori ottenuti per i fit effettuati mantenendo costante il valore della tensione di
alimentazione.
31.4
Tabella 4.2
4.2
Pendenza
Valori ottenuti per i fit effettuati mantenendo costante il valore della temperatura.
0.994
0.995
0.998
0.998
0.999
0.999
0.999
0.999
χB
4
0.996
5
0.996
5
5
5
5
5
0.996
0.996
0.996
0.996
0.996
Effettuando il reciproco delle frequenze si ottengono i dati sui periodi e, anche su questi,
si possono valutare i fit lungo i due parametri.
Mediando, infine, su tutti i fit effettuati si può determinare il periodo medio di
funzionamento del dispositivo. Per il DCO in esame si è ottenuto:
- 108 -
Periodomediodifunzionamentodeldispositivo:
4.4
8.49ns + 17ps/°C ⋅ T − 16ps/mV ⋅ Vcc
incuiTrappresentalatemperaturaeVcclatensionedialimentazionedeldispositivo.Il
valorecentrale8.49nsèmisuratoadunatensionedi1.000Vedunatemperaturadi
36.0°C.
A questo punto, si può effettuare un’analisi simile per studiare la dipendenza dai
parametri esterni non del periodo medio di funzionamento del dispositivo, ma
dell’incremento medio di periodo al variare della parola di controllo del DCO. Per
effettuare questo studio, basta inserire, nel grafico di tensione e temperatura 4.10,
sull’assez,ilvaloredell’incrementomediodiperiododelsegnaledelDCOsesivariadi
unaunitàilvaloredellaparoladicontrollo.
12
Mean Period Step (ps)
11
10
9
8
0.85
50
0.9
45
0.95
1
40
1.05
Supply Voltage (V)
Figura4.17
Figura4.17
17
1.1
35
Temperature (°C)
Dipendenza dell’incremento medio di periodo al variare della parola di controllo del
mux DCO in funzione dei parametri esterni di Temperatura °C e tensione di
alimentazioneV.
In questo modo, rieffettuando i fit lungo i due parametri, si ottiene la dipendenza dai
dueparametriesterni.
PerilDCOinesamesièottenuto:
Incrementomediodelperiodoalvariaredellaparoladicontrollo:
9.12ps + 0.018ps/°C ⋅ T − 0.014ps/mV ⋅ Vcc
4.5
- 109 -
anche in questo caso il valore centrale è misurato ad una tensione di 1.000 V ed una
temperatura di 36.0 °C.
Dai risultati della (4.4) e (4.5) si determina il funzionamento del DCO includendo la
dipendenza dai parametri esterni T e Vcc.
Un’importante variabile, che può inficiare le specifiche del DCO, è la posizione fisica del
dispositivo nell’FPGA e, in generale, il piazzamento dei componenti che costituiscono
questo dispositivo (mux, Flip-Flop, etc).
Nel paragrafo 4.2.2 è già è stato mostrato che, operando sull’ordine delle parole di
controllo in ingresso al DCO, si può forzare un andamento monotono della frequenza in
uscita. Si è giunti alla conclusione che non sono necessari dei vincoli troppo stringenti
per ottenere un andamento approssimabile ad un andamento lineare della frequenza
del segnale in uscita in funzione della parola di controllo.
Vogliamo ora analizzare se, implementando il DCO in posizioni diverse dell’FPGA, si
ottengano variazioni nel funzionamento di questo oscillatore. In particolare sono stati
effettuati cinque diversi piazzamenti del DCO in diverse zone dell’FPGA che sono
indicate come CenterWest (CW), NorthEast (NE), NorthWest (NW), SouthEast (SE) e
SouthWest (SW). Nella posizione CenterEast (CE) è, invece, implementato il circuito di
test.
Figura 4.18
4.18
Schematizzazione delle diverse zone in cui è stata idealmente suddivisa l’FPGA.
- 110 -
La posizione reciproca dei componenti che costituiscono il DCO (Flip-Flop, Mux, etc) è
invariata nei diversi piazzamenti, tuttavia, i collegamenti interni sono lievemente
differenti. Questo è dovuto principalmente al fatto che l’FPGA non è esattamente
simmetrica e i collegamenti con il circuito di test provengono geometricamente da
posizioni diverse.
Dopo aver implementato i DCO nelle diverse zone, sono state effettuate alcune analisi
per studiarne le eventuali differenze. La prima analisi effettuata è stato uno studio della
linearità in funzione della parola di controllo. Impostando il circuito di test in ‘FreeRun’
si ottengono i dati mostrati nel grafico in fig. 4.19 (anche in questo caso la sequenza
delle parole di controllo è stata riordinata). I grafici sono ottenuti ad una tensione di
alimentazione di 0.997 V e una temperatura di 34.0 °C.
128
160
cw
ne
nw
se
sw
150
140
126
124
Frequency (MHz)
122
130
120
60
70
80
90
120
110
100
90
0
Figura 4.19
4.19
50
100
150
Control Word
200
250
300
Dipendenza dalla frequenza del segnale generato dal mux DCO in funzione della parola
di controllo, avendo riordinato la sequenza delle parole di controllo, per i differenti
piazzamenti utilizzati nelle diverse regioni dell’FPGA.
I dati sono riassunti, ulteriormente, nelle tabelle 4.3 – 4.4:
- 111 -
ERR = ± 0.03 MHz
Frequenza minima (MHz)
Frequenza media (MHz)
Frequenza massima (MHz)
Tabella 4.3
4.3
CW
NE
95.75
95.51
145.70
149.76
CW
NE
117.70
122.6
NW
98.87
119.14
148.92
SE
95.78
97.69
149.50
150.34
SE
SW
117.54
Valori di frequenza minima, media e massima delle misure effettuate per i mux DCO
piazzati nelle diverse regioni dell’FPGA.
ERR = ± 0.03 ns
NW
SW
122.4
Periodo massimo (ns)
10.44
10.47
10.11
10.44
10.24
Periodo minimo (ns)
6.86
6.68
6.71
6.69
6.65
Periodo medio (ns)
Tabella 4.4
4.4
8.50
8.16
8.39
8.51
Valori di periodo massimo, medio e minimo delle misure effettuate per i mux DCO
piazzati nelle diverse regioni dell’FPGA.
8.17
Si osserva, quindi, una piccola differenza, circa del 5%, tra i differenti piazzamenti
considerati, che è, tuttavia, difficile da apprezzare solo con questo studio.
Per comprendere meglio quanto il piazzamento possa inficiare in questa tipologia di
DCO, è stata, quindi, effettuata una analisi dettagliata, in funzione di temperatura e
tensione di alimentazione, come quella spiegata nel paragrafo 4.2.5, per un secondo
piazzamento.
In particolare, i risultati presentati nelle (4.6) e (4.7), esposte a seguire, contengono i
risultati relativi al piazzamento SW.
Periodo medio di funzionamento del dispositivo (SW):
8.16 (ns) + 16 (ps/°C) ⋅ T − 16 (ps/mV) ⋅ Vcc
Incremento medio del periodo al variare della parola di controllo (SW):
9.11 (ps) + 0.016 (ps/°C) ⋅ T − 0.012 (ps/mV) ⋅ Vcc
(4.6)
(4.7)
- 112 -
Il valor medio è sempre valutato ad una tensione di alimentazione di 1.000 V e una
temperatura di 36.0 °C.
I dati ottenuti in precedenza, esposti nelle (4.4) e (4.5), sono, invece, relativi al
piazzamento CW.
Si può osservare che i dati sul periodo medio di funzionamento dei due DCO, piazzati in
regioni differenti dell’FPGA, sono compatibili entro gli errori. Il periodo medio di
funzionamento del dispositivo è, invece, lievemente differente.
- 113 -
Per testare le caratteristiche dei comparatori di fase è stato utilizzato il circuito
descritto nel paragrafo 3.3.
La caratteristica di maggiore interesse da misurare di un comparatore di fase è,
sicuramente, la misura della finestra di buio. Un PD ideale, infatti, deve poter
determinare sempre quale dei suoi due segnali in ingresso precede l'altro. A causa dei
tempi di propagazione dei segnali nel circuito, però, un PD reale non riesce a
determinare segnali che hanno una differenza di fase minore di un certo intervallo
temporale, questo intervallo temporale, ricordiamo, definisce la finestra di buio.
Utilizzando il circuito di test, è possibile inviare, ai due ingressi del comparatore di fase
in esame, due segnali di differenza di fase nota. L’uscita del comparatore è, poi,
osservata direttamente con un oscilloscopio per determinarne rapidamente le
caratteristiche. Ovviamente nei casi in cui l’architettura del comparatore preveda più
uscite, queste sono tutte analizzate all’oscilloscopio.
Si consideri, come esempio, il PFD descritto nel paragrafo 2.4.3. Il comportamento di
questo comparatore è riproposto nella 4.19.
Figura 4.20
4.20
Analisi dei segnali di un comparatore di fase e frequenza (PFD).
Ricordiamo che, questo PFD, presenta, per costruzione, il problema del glitch
ineliminabile. Per questo motivo, anche nel caso di differenza di fase molto grande tra i
- 114 -
due segnali in ingresso, ci sarà sempre un impulso su entrambi i segnali in uscita, UP e
DN.
Nel caso in cui il primo segnale preceda il secondo segnale, allora l’impulso sul segnale
di UP avrà una durata temporale maggiore della durata del glitch. Nel caso in cui sia il
secondo segnale a precedere il primo, allora sarà il segnale di DN ad avere una durata
temporale maggiore del glitch.
Esaminiamo in dettaglio come si effettua un’analisi per ricavare la finestra di buio di
questo comparatore.
In primo luogo si effettuano diverse misure, per diverse differenze di fase, della durata
dei due impulsi sul segnale di UP e DN. Si ottiene un grafico come quello mostrato in fig.
4.21.
1.5
Pulse Width (ns)
DN
UP
1
0.5
0
-1
Figura 4.21
4.21
-0.8
-0.6
-0.4
-0.2
0
differenza di fase (ns)
0.2
0.4
0.6
0.8
Grafico delle misure della durata dei due impulsi di UP e DN di un PFD classico in
funzione della differenza di fase.
Da questo grafico si osserva che esiste una soglia minima degli impulsi dei segnali di UP
e DN. Questa soglia corrisponde proprio alla durata dell'impulso di glitch. Se si effettua,
a questo punto, una media tra le prime acquisizioni del segnale di UP e le ultime
acquisizioni del segnale di DN, si può ricavare una stima della durata del glitch.
Si ottiene, nel caso considerato, una durata del glitch, per questo PD, di 0.54 ns.
Se, a questo punto, si effettuano dei fit lineari sugli ultimi punti di UP e i primi di DN, si
ottiene il grafico in fig. 4.22.
- 115 -
1.4
Pulse Width (ns)
1.2
1
0.8
0.6
0.4
0.2
0
-1
Figura 4.22
4.22
-0.8
-0.6
-0.4
-0.2
0
differenza di fase (ns)
0.2
0.4
0.6
0.8
Grafico delle misure della durata dei due impulsi di UP e DN, cui sono stati aggiunti il
livello di soglia della durata del glitch, indicato con una linea tratteggiata, e i fit sui punti
terminali dei segnali di UP e DN, indicati con una linea puntata. L’intersezione di queste
curve definisce gli estremi della finestra di buio.
Dall’analisi di questo grafico, ricavando le ascisse in cui si intersecano i fit effettuati, si
ottengono gli estremi della finestra di buio.
In particolare, in questo caso analizzato, la finestra di buio va da –0.32 ns a –0.14 ns,
ottenendo una finestra di buio di ~180 ps.
Queste due informazioni, sulla dimensione del glitch e gli estremi della finestra di buio,
sono le due informazioni di maggiore interesse per poter cominciare lo studio
dell’architettura della logica che deve agire da filtro per il PLL.
Questa tipologia di analisi è stata effettuata per differenti architetture per poterne
comprendere meglio i vantaggi e gli svantaggi.
Nella tabella 4.5 sono mostrati, in particolare, i risultati per le tre tipologie di PFD
esposte nel paragrafo 2.4, essendo il PFD l’architettura di maggiore interesse per i PLL
interamente digitali. Il primo, il Classic PFD, è il dispositivo appena analizzato.
PFD utilizzato
Classic PFD
Enhanced PFD
Tabella 4.5
4.5
ECL PFD
Durata glitch (ns)
Finestra di buio (ps)
1.04
100
± 0.03 ns
0.55
1.41
± 10 ps
180
150
Risultati dell’analisi sulla larghezza della finestra di buio di diverse architetture di PFD.
- 116 -
Si possono trarre diverse informazioni da questa semplice analisi: in primo luogo, si può
osserva
osservare
re come come il PFD classico, essendo caratterizzato dall’architettura più
semplice, ha una durata del glitch più piccola rispetto a quella caratteristica degli altri
due comparatori. Questo vantaggio è associato, tuttavia, ad una finestra di buio
maggiore, ovvero è maggiore l’intervallo entro cui il comparatore è cieco
cieco, relativamente
relativamente
alla differenza di fase tra i due segnali in ingresso.
L’ECL PFD presenta, invece, una finestra di buio minore, ma ottiene questo risultato
introducendo una durata del glitch maggiore (forzata dalla particolare natura
dell’architettura).
La scelta migliore
migliore per la realizzazione di un progetto di PLL interamente digitale risulta
quindi essere, sicuramente, l’architettura di Enhanced PFD. Questo comparatore, infatti,
comporta una durata del glitch intermedia tra le altre due architetture, ma possiede una
finestra di buio che è la minima tra le tre analizzate.
Dai risultati ottenuti nel precedente paragrafo si conclude che la migliore architettura
per un comparatore di fase, da utilizzare per una architettura di PLL interamente
digitale, è l’Enhanced PFD.
PFD
A tal proposito è riportato nuovamente lo schematico dell'Enhanced PFD in fig. 4.23
4.23.
Figura 4.
4.23
23
Schematico riproposto dell’enhanced PFD.
- 117 -
I test successivi, per la ricerca della migliore architettura di PD per un PLL interamente
digitale, sono stati rivolti a questo schematico.
Inizialmente, sono state apportate piccole modifiche strutturali al disegno originale,
senza, tuttavia, modificare il funzionamento comportamentale dell'intero progetto. Ad
esempio, sono state utilizzate differenti architetture per il blocco ‘Digital Pulse Amp’
oppure sono stati aggiunti Flip-Flop in cascata alle uscite (introducendo, quindi, una
pipe line), ed altri ritocchi simili.
Per ognuna delle variazioni introdotte sono stati effettuati i test sulla durata del glitch e
della finestra di buio come presentati nello scorso paragrafo.
Tuttavia, qualsiasi modifica ha, in realtà, solo peggiorato o lasciato inalterate le
caratteristiche dell'Enhanced PFD. L’unico lavoro che ha riscosso un risultato positivo,
in termini di larghezza della finestra di buio, è stato il lavoro di ottimizzazione del
piazzamento del circuito.
Ricordiamo che la finestra di buio dipende dalla durata del glitch, che dipende, a sua
volta, dal tempo di propagazione del segnale dall’uscita dell’AND al reset asincrono dei
Flip-Flop.
Se si ottimizza il circuito per velocizzare questo particolare percorso, piazzando i
componenti da cui parte a cui arriva il segnale in posizioni il più possibile vicine tra loro,
si ottiene un tempo di propagazione, di questo specifico segnale, minore.
Il percorso, ottimizzato nell’FPGA, è evidenziato in bianco in fig. 4.24.
Figura 4.24
4.24
Il percorso del segnale di reset asincrono dei Flip-Flop evidenziato nell’FPGA.
- 118 -
A questo punto, è stato impostato questo percorso come vincolo ed è stato piazzato, solo
successivamente, il resto del circuito. In fig. 4.25 è mostrato uno dei piazzamenti
effettuati in cui, nell’angolo in basso a sinistra, è riportato il percorso fissato.
Figura 4.25
4.25
Esempio di piazzamento del circuito dopo aver fissato il percorso del reset. In basso a
sinistra un ingrandimento della sezione rilevante.
Le prestazioni ottenute, avendo fissato questo vincolo, sono lievemente migliori rispetto
ai risultati presentati nella tabella 4.5.
In particolare, si ottiene una durata del glitch di 0.98 ns ± 0.03 ns e una larghezza della
finestra di buio di 80 ps ± 10 ps.
Si conclude, in definitiva, che l’architettura più efficace per la realizzazione di un PLL
interamente digitale è l’Enhanced PFD, esposto nel paragrafo 2.4.4, e che è sufficiente
ottimizzare solo il percorso relativo al reset asincrono dei Flip-Flop per ottenere le
prestazioni migliori di questo componente.
- 119 -
In questa attività di tesi sono state affrontate le diverse problematiche che incorrono nel
lavoro di progettazione di un PLL interamente digitale, studiando le principali
architetture presentate in letteratura e realizzando opportuni sistemi di test per la
misura di specifiche e prestazioni.
Il Phase-Locked Loop è, al giorno d’oggi, un dispositivo molto diffuso nel mondo
dell’elettronica moderna. Infatti, il largo impiego nell’ambito della comunicazione
remota e locale, la presenza di questo dispositivo nelle televisioni satellitari e digitali, e,
in generale, l’utilizzo come modulatore e demodulatore di frequenza, rendono il PLL un
componente elettronico basilare in quasi tutte le tecnologie all’avanguardia.
I dispositivi PLL sono largamente utilizzati anche nei sistemi di acquisizione dati e di
controllo in esperimenti di fisica in tutte le applicazioni nelle quali è necessario fare
affidamento su un segnale di riferimento con basso rumore. L’analisi e lo studio di
questi dispositivi è, quindi, materia di notevole interesse per la comunità internazionale
impiegata nel campo dell’elettronica e delle comunicazioni, oltre che nel campo dei
sistemi di acquisizione dati in fisica.
La progettazione di questi dispositivi si sta spostando, negli anni, sempre di più verso
un approccio interamente digitale. L’utilizzo di tecnologie interamente digitali consente,
difatti, di ottenere una maggiore insensibilità a fonti di disturbo come temperatura e
tensione di alimentazione, aggirare i problemi dovuti a radiazione ionizzante, facilitare
l’implementazione su diverse tipologie di dispositivi e, in definitiva, di non dipendere da
elementi circuitali parassiti come condensatori e resistenze. Ad oggi, tuttavia, non è
stato ancora ultimato un progetto di PLL interamente digitale che abbia delle specifiche
tecniche soddisfacenti.
L’approccio interamente digitale comporta, infatti, un lavoro molto impegnativo nella
fase di progettazione, che comprende, oltre allo studio delle architetture già esistenti,
anche l’elaborazione di nuove strutture di base da ideare.
- 120 -
In particolare, nei PLL interamente digitali, i due blocchi più delicati in fase di
progettazione sono il comparatore di fase e l’oscillatore controllato digitalmente (DCO)
che sono i due blocchi collegati con l’esterno nei PLL.
La prima fase di questa attività di tesi è stata totalmente rivolta allo studio delle
caratteristiche delle principali architetture di comparatori di fase e di DCO e della loro
implementazione in dispositivi programmabili FPGA. Questa fase è stata realizzata
utilizzando il linguaggio di descrizione hardware VHDL, che consente anche la
simulazione dei circuiti realizzati, allo scopo di evidenziare eventuali criticità.
Successivamente, sono stati progettati e utilizzati due differenti circuiti di test per la
caratterizzazione dei due blocchi critici dei PLL interamente digitali e per la misura in
laboratorio delle loro principali caratteristiche.
L’utilizzo di questi circuiti di test automatizza lo studio delle specifiche dei componenti
in esame, in modo da ottenere, rapidamente, delle risposte sui vantaggi e gli svantaggi
relativi alla particolare architettura analizzata.
Dall’utilizzo dei diversi script di test realizzati in linguaggio MATLAB, è possibile
ottenere, con l’errore richiesto, le misure delle specifiche di interesse. Passando dallo
studio della dipendenza dai parametri interni e esterni del segnale in uscita dei DCO
all’analisi della finestra di buio dei comparatori di fase.
Tutte queste informazioni sono state utilizzate per ottenere indicazioni sulle possibili
modifiche costruttive da adottare per generare dei componenti più performanti. In più,
conoscendo nel dettaglio la risposta dei blocchi in esame, è possibile, anche, migliorare
l’architettura da utilizzare per il terzo blocco costitutivo dei PLL, ovvero il filtro.
Negli ultimi capitoli di questa tesi sono, infine, esposti alcuni dei risultati di maggiore
interesse degli studi effettuati su diverse architetture di comparatori di fase e oscillatori
controllati in tensione.
Dalle analisi effettuate sulle architetture studiate di comparatori di fase, si può stabilire
che la migliore proposta per un comparatore di fase per una architetture di PLL
interamente digitale è l’Enhanced PFD, ovvero un comparatore di fase e frequenza
(PFD) classico a cui è aggiunta una adeguata circuiteria che ne migliora le prestazioni,
modificando la durata di alcuni segnali critici.
- 121 -
Inoltre, da un’analisi approfondita dell’Enhanced PFD, si è mostrato come, ottimizzando
uno specifico percorso del circuito, avvicinando opportunamente alcuni elementi
costituitivi del comparatore, si ottengono le prestazioni migliori.
Dal punto di vista del DCO, invece, sono state studiate le dipendenze dai parametri che
inficiano maggiormente la frequenza del segnale generato. In dettaglio sono state
sottolineate l’effettiva dipendenza lineare della frequenza in funzione della parola di
controllo che governa il dispositivo e la stabilità nel tempo della risposta del dispositivo.
Inoltre, sono state esaminate le relazioni con i parametri circuitali PVT (Process–
Voltage–Temperature) dimostrando una dipendenza lineare della risposta dei DCO in
funzione della temperatura e della tensione di alimentazione, mentre è sicuramente
meno rilevante la posizione del dispositivo all’interno del circuito.
In definitiva, i PLL interamente digitali, ad oggi, rappresentano un argomento molto
importante nel campo dell’elettronica e dell’acquisizione e trasmissione di dati. In
questo lavoro di tesi sono stati progettati i circuiti di test per i due componenti più
complessi da progettare di un PLL interamente digitale. Questi circuiti consentono la
rapida caratterizzazione delle specifiche di interesse dei dispositivi in esame.
I circuiti sono stati, poi, utilizzati per studiare le caratteristiche di alcune specifiche
architetture di comparatori di fase e DCO e si sono ricavate importanti informazioni
sulle risposte di questi blocchi in funzione dei parametri di interesse.
- 122 -
[1]
Taylor B. C., TTC Distribution for LHC Detectors, Geneva, Switzerland, Novembre
[3]
Rocco P., Stabilità dei Sistemi di Controllo. Tratto da dispense di automatica:
[2]
[4]
[5]
[6]
[7]
[8]
[9]
1997;
CERN: http://home.web.cern.ch/;
http://home.deib.polimi.it/rocco/leonardo/dispensa.pdf;
Kölbig K. S., Laplace transform Academic Training Lectures CERN, Geneva,
Switzerland, 1 Sep 1968 - 30 Jun 1969;
Roland E. Best, Phase-locked loops: design, simulation, and applications, New
York, McGraw-Hill, 2007;
Dan H. Wolaver, Phase-Locked Loop Circuit Design, Englewood Cliffs, Prentice
Hall, 1991;
Stanley Goldman, Phase-Locked Loop Engineering Handbook for Integrated
Circuits, Norwood, Artech House, 2007;
Manassewitsch, V., Frequency Synthesizers: Theory and Design, Third Edition,
New York, N.Y., John Wiley and Sons, 1987;
Thomas H. Lee, Design of CMOS Radio-Frequency Integrated Circuits, Cambridge,
Cambridge University Press, 2004;
[10] Lyapin, A., part three: analog signal processing Tratto da Cavity BPM Tutorial:
http://www.hep.ucl.ac.uk/~liapine/;
[11] De Bellescize H., La réception synchrone Tratto da L'onde électrique, vol.11,
Maggio 1932;
[12] datasheet del dispositivo CD4046:
http://www.datasheetcatalog.com/datasheets_pdf/C/D/4/0/CD4046.shtml;
[13] Grebene, Alan B.; Camenzind Hans R., Phase Locking As A New Approach For
Tuned Integrated Circuits Tratto da ISSCC Digest of Technical Papers: 100-101,
Febbraio 1969;
[14] Abramovitch D., Phase-Locked Loops: A Control Centric Tutorial, Commun. & Opt.
Res. Lab., Agilent Labs., Palo Alto, 2003;
[15] Chung C.C., Lee C.Y., An all-digital phase-locked loop for high-speed clock
generation, IEEE Journal of Solid-State Circuits, 2003;
- 123 -
[16] MAX9382, MAX9383, ECL/PECL Phase-Frequency Detectors, 19-2234, Rev 1,
11/02;
[17] J. D. H. Alexander, Clock Recovery from Random Binary Data, Elect. Lett., vol. 11,
Ottobre 1975;
[18] C. R. Hogge, A Self-Correcting Clock Recovery Circuit, IEEE J. Lightwave Tech., vol.
3, Dicembre 1985;
[19] B. Razavi, Challenges in the Design of High-Speed Clock and Data Recovery
Circuits, IEEE Communications Magazine, 2002;
[20] KC705 Evaluation Board for the Kintex-7 FPGA, Xilinx User Guide 810:
http://www.xilinx.com/support/documentation/boards_and_kits/kc705/ug810_
KC705_Eval_Bd.pdf, 10 Dicembre 2012;
[21] Johansson A., Investigation of typical 0.13 µm CMOS technology timing effects in a
complex digital system on-chip, 28 Ottobre 2003;
[22] 7 Series FPGAs and Zynq-7000 All Programmable SoC XADC Dual 12-Bit 1 MSPS
Analog-to-Digital Converter, Xilinx User Guide 480:
http://www.xilinx.com/support/documentation/user_guides/ug480_7Series_XA
DC.pdf, 25 Ottobre 2012;
[23] Johansson, Staffan ,New frequency counting principle improves resolution,
Spectracom, 24 Luglio 2013;
[24] Hewlett-Packard, Application Note 200-4, Understanding Frequency Counter
Specifications;
[25] Kalisz J., Review of methods for time interval measurements with picosecond
resolution, Metrologia, no. 41, 2004, pp. 17-32;
[26] Hewlett-Packard, Application Note 162-1, Time Interval Averaging;
[27] Ken Chapman, PicoBlaze for Spartan-6, Virtex-6 and 7-Series (KCPSM6):
http://www.xilinx.com/products/intellectual-property/picoblaze.htm, 30
Settembre 2012;
[28] Kruse R. L., Data structures and program design, Englewood Cliffs, Prentice-Hall,
1987;
[29] Ultra-Compact UART Macros for Spartan-6, Virtex-6 and 7-Series, UART6 User
Guide, 30 Settembre 2012;
- 124 -
[30] 7 Series FPGAs Clocking Resources, Xilinx User Guide 472:
http://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clo
cking.pdf, 2 Ottobre 2012;
[31] LCD Module Product Specification, Displaytech Ltd. 162D:
https://www.displaytech-us.com/16x2-character-lcd-displays-d;
[32] Sitronix ST7066U Dot Matrix LCD Controller/Driver:
http://www.crystalfontz.com/controllers/ST7066U.pdf;
[33] Agilent N6705A DC Power Analyzer:
http://www.alliedelec.com/images/products/mkt/pb/agilent/quickfactsheets/a
nalyzers/N6705A%205989-8615ENDI_Allied.pdf;
[34] MDO4000 Series Datasheet:
http://www.tek.com/sites/tek.com/files/media/media/resources/MDO4000Mixed-Domain-Oscilloscope-Datasheet_48W-26875-4_0.pdf.
- 125 -