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 12 [cos(ωA t + θ − ωB t) + cos (ωA t + θ + ωB t)] (1.32) uA (t) uB (t) = V~A V~B 12 [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 ∙ 12 ∙ 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^KK~ 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 RA 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 - RQ ∙ 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 -