Federico Ciuchi - Istituto Nazionale di Fisica Nucleare

Università degli Studi di Perugia
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Elettronica
Tesi di Laurea
Progetto di una scheda PCB per la caratterizzazione
di sensori di radiazione basato su FPGA
Candidato
Federico Ciuchi
Relatore
Correlatore
Ing. Daniele Passeri
Ing. Daniele Biagetti
Anno Accademico 2006-2007
Ai miei genitori ed a mio fratello
Ringraziamenti
Un ringraziamento particolare va a Daniele Biagetti, che con la sua disponibilità e
competenza mi ha aiutato ad affrontare questo lavoro di tesi, ed al Prof. Daniele
Passeri, che mi ha seguito durante tutto il percorso.
Un ringraziamento appassionato va ad Agnese che, giorno dopo giorno, mi ha
aiutato a rendere più lievi gli ostacoli che mi separavano da questo importante
obiettivo. Desidero inoltre ringraziare tutti coloro che, con il loro affetto e la loro
amicizia, hanno reso possibile il raggiungimento di questo prezioso traguardo.
Introduzione
Il progetto SHARPS-RAPS (Self-resetting High-gain Active Radiation Pixel Sensor; Radiation
Active Pixel Sensor) nasce dalla collaborazione tra la sezione di Perugia dell’Istituto Nazionale di
Fisica Nucleare (INFN), il Dipartimento di Ingegneria Elettronica e dell’Informazione
dell’Università di Perugia e il dipartimento di Ingegneria dell’Informazione dell’Università di
Parma. Obiettivo primario del progetto è lo sviluppo e la caratterizzazione di sistemi di rivelazione
di radiazione a pixel attivi APS (Active
Pixel
Sensor)
integrati in tecnologia CMOS
(Complementary Metal Oxide Semiconductor) standard su singolo chip. Sebbene già largamente
diffusi nel campo della rivelazione di radiazioni visibili, l'elevata risoluzione spaziale raggiunta
grazie alle innovazioni microelettroniche, rende questi sensori adatti ad applicazioni nel campo
della fisica delle alte energie. Il vantaggio maggiore offerto dai sensori CMOS è quello di poter
realizzare un sistema di rivelazione che integra sullo stesso substrato e addirittura all’interno di un
singolo pixel della matrice, sia l’elemento fotosensibile, sia la logica locale di elaborazione dei dati.
Il lavoro svolto fino ad oggi nell’ambito del progetto RAPS ha visto la progettazione e la
caratterizzazione sia elettrica che funzionale di un primo prototipo di sensore (RAPS01) e la
realizzazione di una seconda versione (RAPS02) che è ancora in fase di caratterizzazione presso i
laboratori INFN. Nel corso di questo anno è stata realizzata la terza versione del chip la cui
caratterizzazione non è stata ancora avviata.
Oggetto di questo lavoro di tesi è la realizzazione di una struttura di test per il chip RAPS03 basata
su logiche programmabili FPGA (Field Programmable Gate Array). L'obiettivo è la progettazione
di un primo prototipo di scheda PCB che consenta d'iniziare la fase di caratterizzazione del chip. La
scheda PCB fungerà inoltre da banco di prova per testare le diverse soluzioni circuitali
implementate, in particolare le scelte riguardanti il blocco di conversione analogico digitale e la
generazione dei segnali di clock. Lo scopo è quello di accumulare esperienza per compiere scelte
definitive sulle soluzioni da adottare nella versione definitiva della board che alloggerà il chip
RAPS03.
Il dispositivo FPGA si inserisce in questo contesto in quanto si vuole realizzare un set-up innovativo
nell'ambito del progetto RAPS, che consenta di interfacciare direttamente il chip ad un calcolatore.
L'FPGA, opportunamente programmata, consente infatti la gestione e l'elaborazione dei segnali
iv
provenienti dal blocco di conversione analogico digitale e la comunicazione con il calcolatore,
sostituendo di fatto l'utilizzo di schede di acquisizione esterne utilizzate per i prototipi RAPS
precedenti. L'uso di logiche programmabili rappresenta un miglioramento significativo in termini di
semplicità e flessibilità del set-up di test, oltre a costituire una struttura dalle dimensioni
complessivamente contenute adatte alla fase di caratterizzazione all'interno del banco ottico.
Il lavoro è così organizzato:

Nel primo capitolo viene fornita una breve introduzione ai sensori di radiazione con
particolare riferimento alle strutture che compongono il chip RAPS03.

Nel secondo capitolo vengono illustrate tutte le fasi di progetto necessarie alla produzione di
un circuito stampato.

Nel terzo capitolo viene presentato lo strumento software utilizzato per la progettazione
degli schemi circuitali e la succesiva fase di layout.

Nel quarto capitolo viene descritto il progetto, lo sviluppo e l'ottimizzazione dell'area di
alimentazione della scheda PCB che alloggerà il chip RAPS03.

Nel quinto capitolo viene trattata la progettazione fisica della scheda: la scelta dei
componenti, il layout dell'area di alimentazione e l'integrazione con le altre aree della board.
Viene inoltre descritto il processo di generazione del gerber file necessario alla stampa fisica
della scheda PCB.

Nel sesto capitolo viene descritta la programmazione del dispositivo FPGA ed i risultati
ottenuti nello sviluppo del set-up di test per il chip RAPS03.
v
Indice
Introduzione..........................................................................................................................................4
1. Sensori di radiazione........................................................................................................................7
1.1. I sensori di radiazione in tecnologia CMOS............................................................................8
1.2. Il sensore di radiazione RAPS03...........................................................................................11
2. La Printed Circuit Board................................................................................................................17
2.1. Tipologie di schede PCB........................................................................................................17
2.2. Processo di fabbricazione di un PCB.....................................................................................19
2.3. Montaggio superficiale dei componenti................................................................................21
2.4. Progettazione del PCB...........................................................................................................22
3. Scelta del Software.........................................................................................................................26
3.1. Il Software OrCAD 10.5........................................................................................................26
3.2. OrCAD Capture CIS..............................................................................................................28
3.3. OrCAD Layout......................................................................................................................32
4. Progetto della Power Area della scheda PCB di test per il chip RAPS03......................................34
4.1. La Power Area.......................................................................................................................34
4.2. Catalogazione dei dispositivi e dei segnali ...........................................................................35
4.3. Calcolo delle potenze e scelta dei regolatori di tensione.......................................................36
4.4. Progettazione e simulazione della Power Area......................................................................40
5. Postprocessing e preparazione del layout.......................................................................................51
5.1. Calcoli termici e scelta dei packages.....................................................................................51
5.2. Layout della Power Area e della scheda PCB........................................................................54
6. Struttura di test basata su FPGA.....................................................................................................61
6.1. Introduzione agli FPGA ........................................................................................................62
6.2. Opal Kelly XEM3010 ...........................................................................................................66
6.3. FPGA Xilinx Spartan-3..........................................................................................................69
6.4. Flusso di progetto e ambiente di sviluppo.............................................................................73
6.5. Progettazione del Clock Manager..........................................................................................78
6.6. Virtual Instrument e test del Clock Manager.........................................................................86
Conclusioni e sviluppi futuri..............................................................................................................91
APPENDICE......................................................................................................................................93
Power Area.....................................................................................................................................93
ADC, connessioni con il chip e con la struttura di test .................................................................97
Chip RAPS03 ..............................................................................................................................103
VHDL..........................................................................................................................................104
Bibliografia.......................................................................................................................................111
1 Sensori di radiazione
Capitolo 1
1. Sensori di radiazione
Il principio che sta alla base del funzionamento di ogni sensore di radiazione visibile è l’effetto
fotoelettrico, già noto sin dalla fine del 1800 grazie agli esperimenti di numerosi scienziati. La
spiegazione di questo fenomeno si deve soprattutto all’allora ventiseienne Albert Einstein che nel
1905 introdusse l’innovativo e rivoluzionario concetto dei “fotoni” come scrive egli stesso nel
famoso libro “Teoria dei quanti di luce”: «Secondo l’ipotesi che voglio qui proporre, quando un
raggio di luce si espande partendo da un punto, l’energia non si distribuisce su volumi sempre più
grandi, bensì rimane costituita da un numero finito di quanti di energia localizzati nello spazio e che
si muovono senza suddividersi, e che non possono essere assorbiti od emessi parzialmente.» [1]. I
quanti di energia o fotoni che compongono la radiazione attraversando un materiale possono, con
una certa probabilità, interagire con gli atomi che lo compongono trasferendovi energia; questa si
manifesta sotto forma di quantità di moto trasferita all’atomo stesso o, se l’energia è sufficiente, gli
elettroni più esterni possono assorbirne una quantità che gli permette di “staccarsi” dall’atomo ed
acquistare la restante sotto forma di energia cinetica. L’atomo diventa così uno ione (da qui il nome
di radiazioni ionizzanti) e l’elettrone, o meglio il foto-elettrone, come viene talvolta chiamato onde
indicarne l’origine, può viaggiare nel materiale sino alla ricombinazione o addirittura sfuggire da
esso. Altri tipi di radiazione ionizzante sono le particelle α e β emesse da isotopi radioattivi; gli
effetti che esse producono al passaggio attraverso un sensore di silicio non sono molto dissimili da
quanto descritto per i fotoni, con generazione di cariche a seguito della ionizzazione degli atomi.
Da questo comunque nasce l’idea di utilizzare sensori a stato solido per la rilevazione del passaggio
di particelle ionizzanti, ad esempio in esperimenti di ricostruzione della traiettoria delle particelle
emesse da collisioni prodotte su fascio accelerato [2].
7
1 Sensori di radiazione
1.1. I sensori di radiazione in tecnologia CMOS
Lo sviluppo di sensori di radiazione a stato solido in silicio ha seguito l'evoluzione e i progressi
della tecnologia di fabbricazione dei circuiti microelettronici integrati. Il vantaggio di questi
dispositivi è duplice: da un lato si ha la possibilità di integrare su uno stesso substrato l’elemento
sensibile vero e proprio (fotodiodo) e l’elettronica di pretrattamento, lettura ed elaborazione;
dall’altro si godono i vantaggi di usare una tecnologia CMOS standard. Anche se l'elevato
drogaggio del substrato di silicio su cui vengono realizzati i fotodiodi non permette un'efficace
“conversione” e raccolta della carica fotogenerata, per cui il segnale generato risulta piuttosto
modesto, la possibilità d'integrare nell'area di un pixel anche l'elettronica di amplificazione permette
compensare tale inconveniente recuperando un buon rapporto segnale-rumore.
La tecnologia CMOS standard prevede l’utilizzo di substrati di tipo P++ fortemente drogati per
evitare fenomeni di latch-up, su cui può venir accresciuto o meno, in maniera epitassiale, un sottile
strato di cristallo meno drogato sempre di tipo P; su questo strato dello spessore di pochi micron (da
2 a 20 μm) viene realizzata tutta la parte di circuiteria attiva. L’elemento sensibile caratteristico di
questa tecnologia è come detto un fotodiodo, che viene realizzato impiantando nello strato P una
tasca di tipo N+ che costituisce il catodo del diodo. L’area sensibile, nel caso di strato epitassiale,
diventa in pratica quella in prossimità del catodo, spessa quanto lo strato accresciuto; si ha, di
conseguenza, una raccolta di carica abbastanza ridotta. Altresì costruire il fotodiodo con una
tecnologia standard senza strato epitassiale comporta, a causa dell’elevato drogaggio del substrato,
un degrado delle prestazioni dal punto di vista della raccolta di carica generata dalla radiazione. Le
figure 1 e 2 mostrano le due tipologie di fotodiodo.
Figura 2: Fotodiodo in tecnologia CMOS senza strato
epitassiale
Figura 1: Fotodiodo in tecnologia CMOS con strato
epitassiale
8
1 Sensori di radiazione
Grazie all'evoluzione della tecnologia di fabbricazione ed alla conseguente contrazione delle
geometrie dei dispositivi microelettronici (scaling) si è riuscito in breve tempo a ridurre le
dimensioni dei MOS, permettendo la realizzazione di sensori “attivi” (Active Pixel Sensors o APS),
sfruttando cioè la possibilità di portare in prossimità dell’elemento sensibile una parte
dell’elettronica di amplificazione, a tutto vantaggio del rapporto segnale/rumore. Oggi la
tecnologia commerciale permette di costruire circuiti integrati con lunghezza di gate inferiore ai
65 nm. Questo tipo di tecnologia prevede quindi la possibilità di realizzare sensori di tipo
Sistem-On-Chip, permettendo l’integrazione contemporanea della parte sensibile e della parte
preposta per l’elaborazione dei dati sullo stesso substrato. Il sensore predisposto presenta
così una limitata superficie occupata e una ridotta quantità di potenza dissipata e risulta
ideale per la progettazione di un rilevatore di radiazione ionizzante ad alte prestazioni. E’ possibile
ad esempio realizzare sensori d’immagine che presentino in uscita l’immagine acquisita già
digitalizzata o addirittura compressa. Inoltre i sensori APS, possiedono altri vantaggi: velocità
di lettura elevata ed ottima tolleranza alla radiazione e presentano la possibilità di effettuare
insieme il triggering (rilevamento del passaggio di una particella) ed il positioning (determinazione
del punto d’impatto della particella).
Nei prossimi anni si prevede forte sviluppo della ricerca in questo campo, soprattutto grazie agli
ottimi risultati che la tecnologia CMOS ha finora raggiunto.
Le figure 3 e 4 riportano rispettivamente il circuito ed il layout di un pixel APS [3].
Figura 4: Active Pixel Sensor (APS) Layout
Figura 3: Active Pixel Sensor (APS)
9
1 Sensori di radiazione
Entrando più in dettaglio nel funzionamento del pixel, facendo riferimento alla figura 3, si nota che
il catodo del fotodiodo è connesso al source di un NMOS (Mrst) il quale, in corrispondenza di un
segnale di RESET alto, polarizza inversamente il diodo alla tensione di VRST (che è una tensione
positiva rispetto alla massa). Quando il segnale di RESET ridiscende a 0V la carica accumulata ai
capi del diodo si mantiene invariata (a meno di una frazione che si distribuisce ai capi della capacità
parassita di gate-source di Mrst) e a questo punto il passaggio di una particella ionizzante o
l’incidere di una radiazione al fotodiodo fa sì che le cariche generate nella zona svuotata migrino,
gli elettroni verso il catodo e le lacune verso massa. Si viene così a creare un impulso di corrente
che scarica di una certa quantità, che dipende dalla carica generata dall’evento, la capacità parassita
al nodo del fotodiodo, abbassando la tensione ai suoi capi. La presenza di correnti parassite fa sì in
effetti che, anche in condizioni di buio, la capacità al nodo del fotodiodo si scarichi con andamento
esponenziale, per cui, prima che questo avvenga, occorre ricaricare il nodo con un altro impulso di
reset. Prima del nuovo reset avviene di norma la lettura: portando alto il segnale di selezione della
riga si impone il passaggio di una corrente costante nel transistor MSF, che lavora come sourcefollover, riportando la tensione del fotodiodo sulla linea di colonna a meno della caduta che si ha tra
gate e source di MSF e ai capi del transistor Msel. La corrente sul source del transistor Msel viene
imposta da un generatore di corrente, la cui corrente drenata, è proporzionale alla tensione di
polarizzazione
V pol .
In figura 5 si vede l’andamento della tensione misurata su un pixel APS in corrispondenza del
passaggio di una particella in un intervallo che comprende due impulsi di reset.
Figura 5: Uscita di un pixel APS interessato dal passaggio di una
particella β
10
1 Sensori di radiazione
1.2. Il sensore di radiazione RAPS03
Nel corso dell'anno corrente è stato completato il progetto del nuovo sensore di radiazione del
progetto RAPS, in tecnologia CMOS UMC a 0.18µm. Il RAPS03 implementa numerose strutture di
test volte ad indagare il comportamento di diverse tipologie di pixel che si differenziano per forma
(layout) e meccanismi di lettura. Alcune versioni di pixel sono singolarmente accessibili tramite pin
dedicati del chip, altre organizzate in matrici la cui scansione è regolata dalla logica direttamente
implementata nel chip.
Figura 6: RAPS03
All’interno del chip RAPS03 sono previste strutture comparabili a quelle presenti nel precedente
prototipo di sensore sviluppato nell'ambito del progetto RAPS [4], ma di dimensioni maggiori. La
figura 7 mostra il core del RAPS03 in cui vengono evidenziate tutte le strutture di test presenti.
11
1 Sensori di radiazione
Figura 7: Strutture RAPS03
In particolare si vuole prestare attenzione alle quattro strutture matriciali presenti nel RAPS03 la cui
scansione è automatizzata:
●
La matrice principale (ESA_COM_MATRIX) è composta da 4 matrici da 128 x 128 pixel,
ognuna con la propria logica di controllo ed elettronica di lettura, accorpate in modo da
formare una matrice di 256 x 256 pixel. Le 2 matrici 128 x 128 pixel poste nella parte
superiore della matrice 256 x 256 adottano un pixel denominato ESA S (figura 8) mentre
nella parte inferiore vengono adottati i pixel ESA L (figura 9) di cui vengono proposti i
layout. Le due tipologie si differenziano per le dimensioni dell'area sensibile (fotodiodo) del
pixel, che nel primo caso (ESA S) è dimensionato al minimo permesso dalla tecnologia,
mentre nel secondo caso (ESA L) occupa tutta la regione del pixel (escluse le regioni
12
1 Sensori di radiazione
destinate ai transistori). Queste caratteristiche hanno un impatto significativo in termini di
sensibilità/efficienza: all'aumentare dell'area sensibile del pixel, aumenta la sua capacità di
raccolta e quindi la potenza del segnale generato, ma allo stesso tempo aumenta anche la sua
capacità intrinseca, con ripercussioni in termini di aumento del rumore. In sostanza, il
miglior compromesso in termini di guadagno di conversione carica/tensione dovrà essere
valutato sperimentalmente. Si è quindi scelto di differenziare le due sottomatrici della
struttura più grande 256 x 256 pixel.
Figura 8: Pixel ESA L
Figura 9: Pixel ESA S
La soluzione circuitale adottata nei pixel di questa matrice è quella standard a 3 transistor illustrata
in precedenza in figura 3.
Per quanto riguarda le 3 matrici da 32 x 32 pixel abbiamo:
●
2 strutture, la G1P0 (figure 10 ed 11) e la G1P0L (figure 12 e 13)ricalcano le omonime
matrici del precedente prototipo
RAPS02 che hanno mostrato le migliori prestazioni. La
matrice 32x32 G1P0 [4], implementa un pixel di dimensioni leggermente maggiori (4.68μm
in luogo di 4.4μm) di quello presente nel RAPS02, mentre la G1P0L presenta i medesimi
pixel della G1P0 ma spaziati di 15μm l'uno dall'altro. La differenza sostanziale rispetto alla
loro precedente versione consiste nella semplificazione della catena di amplificazione
costituita ora dal solo buffer ed elimina gli amplificatori presenti alla fine di ogni colonna
responsabili della componente più importante del Fixed Pattern Noise (FPN) ossia la
disuniformità di risposta che si osserva tra i vari pixel anche in condizioni di illuminazione
uniforme [3].
13
1 Sensori di radiazione
Figura 11: Pixel G1P0
Figura 10: Matrice G1P0
Figura 12: Matrice 32 x 32 G1P0L
●
Figura 13: Pixel G1P0L
La matrice ESA_S 3T 32 x 32 pixel contiene invece lo stesso tipo di pixel della matrice
128 x 128 ESA S.
Ogni matrice presenta un'uscita di tipo analogico: le matrici vengono scansionate dalla logica di
controllo e sulle corrispondenti uscite viene riportato, per ogni ciclo di clock, il valore di tensione
presente nell'istante di lettura di ciascun pixel. Per il funzionamento delle matrici sono state
realizzate le relative logiche di controllo, in grado di gestire il ciclo di funzionamento del pixel e il
multiplexing dei dati in uscita dalla matrice verso l’elettronica di lettura. In particolare, il
funzionamento delle matrici di pixel prevede, sia una modalità a scansione continua, per cui la
matrice viene continuamente resettata e scansionata, sia una modalità a scansione singola, in cui si
effettua una singola acquisizione dell’immagine in seguito ad un trigger esterno, permettendo una
lettura event-driven. Più precisamente:
14
1 Sensori di radiazione
●
La matrice 256 x 256 presenta un buffer tra l'uscita della struttura matriciale e il pad di
uscita. Complessivamente tale matrice presenta 4 uscite analogiche, una per ogni
sottomatrice: 2 uscite relative alle sottomatrici 128 x 128 ESA S poste sulla parte superiore
della matrice complessiva e 2 uscite relative alle sottomatrici 128 x 128 ESA L poste sulla
parte inferiore (figura 7).
Ogni sottomatrice viene scansionata dalla logica di controllo, con riferimento ad un piano
cartesiano, partendo dall'origine degli assi (0:0) ed da un istante in cui viene generato il
segnale di controllo sync, fino al termine della prima riga. Al termine della scansione della
riga viene generato un segnale di controllo denominato endrow, la scansione continua per le
righe successive fino al completamento di tutta la matrice. Al termine della scansione di
ogni colonna viene generato il segnale endcol, fino alla scansione del pixel (128:128), in
coordinate cartesiane, istante in cui verrà generato oltre al segnale endrow anche il segnale
endcol. I segnali citati verranno utilizzati in fase di acquisizione dati per identificare il pixel
scansionato in un determinato istante temporale.
●
Le 3 matrici 32 x 32 G1P0, G1P0L ed ESA S 3T presentano ciascuna un'uscita analogica
indipendente mentre condividono i segnali di sincronismo endrow,
endcol e sync. Il
meccanismo di scansione è analogo a quanto illustrato per le sottomatrici 128 x 128.
All'interno del chip RAPS03 sono presenti ulteriori strutture, singolarmente accessibili dai pin del
chip (segnali analogici), che presentano diverse tipologie di pixel le quali si differenziano per layout
e per i meccanismi di lettura. Sono stati implementati inoltre singoli dispositivi, come porte logiche
o semplici transistor, con layout specificatamente studiati per essere resistenti alla radiazione di cui
interessa indagare il comportamento. In figura 7 è possibile visualizzare il posizionamento delle
singole strutture di test che vengono qui soltanto citate:

Una matrice 2x11 di pixel (ESA S) coperti con metallizzazioni forate in punti opportuni;

Strutture di test: diodo, singolo pixel a 4 transistor, singolo pixel enclosed-gate (con e senza
buffer di uscita), 2 matrici 3x3 con tipologia di pixel ESA S di cui una a 4 transistor e mentre
l'altra a 3 transistor, buffer, singoli transistor tradizionali ed enclosed-gate.
15
1 Sensori di radiazione
Figura 14: Circuito ESA_S 4T
Il circuito a 4 transistor è stato pensato per effettuare il Correlate Double Sampling (CDS) [5]; la
tecnica CDS viene utilizza per eliminare quello che è il maggior contributo di rumore del pixel il
cosìdetto KTC noise [5].
In alternativa è possibile connettere il gate del transistor di PASS a
configurazione tradizionale del pixel APS a 3 transistor.
16
V dd realizzando così una
2 La Printed Circuit Board
Capitolo 2
2. La Printed Circuit Board
La Printed Circuit Board (PCB) o Circuito Stampato, è un sistema di realizzazione di assemblaggi
elettronici, basato sul principio del collegamento di componenti tramite delle piste conduttive,
incollate su di una basetta isolante. Un'opportuna foratura della basetta consente di inserire i reofori
dei componenti, fissandoli tramite saldatura alle piste ed assicurando cosi un buon aggancio
meccanico. I componenti fondamentali di un circuito stampato sono quindi:
●
La base, una lastra isolante opportunamente forata.
●
Un sistema di lamine sottili di conduttore, nella maggior parte dei casi il rame, incollate alla
base.
Il circuito stampato in sostanza deve fornire un collegamento tra i vari elementi elettronici e fornire
un supporto meccanico per i componenti e gli eventuali accessori (dissipatori, connettori, ecc.). I
componenti devono poi essere fissati con saldature in modo da garantirne la stabilità meccanica.
2.1. Tipologie di schede PCB
Le tipologie dei circuiti stampati sono diverse e cambiano in base alle caratteristiche costruttive. A
seconda del tipo di substrato e di processo produttivo, il circuito stampato può essere definito
meccanicamente “rigido” o “flessibile”. In base agli strati conduttivi presenti si può parlare di PCB
a singola faccia, a doppia faccia o multistrato.
Figura 15: PCB a singola faccia
17
2 La Printed Circuit Board
Il montaggio rappresentato è detto "a singola faccia" o "single layer": il rame viene posto solo su
un lato del circuito (lato saldature o bottom) mentre i componenti sono collocati sulla faccia
superiore (il lato componenti o top). Le connessioni sono realizzate attraversano fori passanti THT
(Through Hole Technology).
Figura 16: PCB a doppia faccia
Quando un circuito stampato ospita numerosi componenti può essere complesso realizzare tutte le
connessioni necessarie disegnando le piste da un solo lato della basetta.
La soluzione è l'utilizzo di basette le cui piste sono realizzate su entrambe le facce (dual layer)
come in figura 16 o su più strati (multilayer) come in figura 17.
Figura 17: PCB Multilayer
Un circuito stampato rigido a doppia faccia si compone di un substrato isolante solido, piano e di
spessore costante (normalmente da 0,4 a 3,0 mm) anche se gli spessori possono variare da 0,1mm a
5,0 mm. I materiali di base si distinguono essenzialmente per la diversa rigidità dielettrica, capacità
di resistere alle elevate temperature e/o agli stress termici.
Su entrambe le facce esterne del substrato viene applicato, con un forte collante termoadesivo
composto da tessuto di vetro impregnato di resina, uno strato di rame laminato avente spessore
costante e predeterminato (normalmente 18, 35 o 70 µm). La piastra così ottenuta viene forata per
consentire il futuro passaggio dei terminali passanti dei componenti elettronici, e soprattutto per
realizzare il collegamento elettrico tra i piani superiore ed inferiore. Per ricavare dal piano di rame
l'insieme dei soli collegamenti, si esegue asportazione chimica selettiva del rame in eccesso. Si
18
2 La Printed Circuit Board
procede poi alla metallizzazione sia dei fori realizzati per inserire i componenti, sia degli appositi
fori detti vias che realizzano il collegamento elettrico tra lo strato di rame superiore e quello
inferiore ; questo è reso possibile tramite un delicato processo di deposizione galvanica del rame.
Per realizzare circuiti con più di due strati, si replica quanto suddetto per ciascun elemento da due
strati ma senza la foratura e il processo galvanico; successivamente i vari elementi doppia faccia
vengono separati da fogli isolanti di pre-preg (tessuto di vetro misto a resina) e pressati
termicamente (con tempi e temperature predeterminate) fino a sciogliere le resine interne e
costituire un unico circuito, da destinare quindi alla foratura e successivamente alla metallizzazione
dei fori mediante deposito di rame chimico dentro i fori, fotostampa dei lati esterni e ramatura
galvanica finale. Uno dei processi più diffusi prevede la successiva deposizione di un metallo
(normalmente stagno o lega di stagno-piombo); questo ulteriore strato di metallo funziona da "metal
resist", cioè protegge il rame depositato dall'asportazione successiva (incisione o "etching") che
determina il tracciato finale.
Nei circuiti multistrato si è diffusa una tecnologia che prevede la foratura non più di fori passanti
(through holes), cioè sull'intero spessore del circuito stampato, bensì di fori cosiddetti ciechi (blind
via holes), i quali connettono una delle facce esterne a uno degli strati interni, attraverso fori a
profondità controllata. Questa tecnica permette di ottenere una più alta densità di connessioni per
unità di superficie.
2.2. Processo di fabbricazione di un PCB
La fabbricazione di un circuito stampato ha origine dai laminati, materiali costituiti da un materiale
base isolante su cui aderiscono dei fogli di rame elettrolitico puro su una faccia o su entrambe. Il
materiale base è composto generalmente da resine sintetiche ottenute per polimerizzazione: se una
resina non possiede da sola tutte le proprietà elettriche, meccaniche e fisiche richieste, spesso viene
addizionata con sostanze opportune, dette cariche, in maniera tale da conferirle le proprietà
desiderate. Il rame viene prodotto, generalmente, per via elettrolitica: un grosso tamburo ruotante
polarizzato negativamente pesca in una soluzione elettrolitica; i fogli di rame così ottenuti
presentano la faccia troppo liscia per aderire al laminato base. Si procede allora ad ossidarlo, oppure
a rivestirlo con ottone: entrambi i fenomeni determinano una formazione non uniforme sui cristalli
di rame, con un conseguente aumento della rugosità dei fogli. L'adesione del rame al materiale base
si ottiene per azione di una pressa di laminazione, tra le 10 e le 20 atmosfere, e riscaldamento, tra i
19
2 La Printed Circuit Board
120 e i 170 °C, di un pacchetto di tali fogli, disposti opportunamente. Il processo di fabbricazione
prende il nome di Print and Etch (stampa e incisione): è un processo sottrattivo, in quanto si
procede per incisione del rame del laminato base, lasciandolo inalterato nelle zone in cui è
necessario per i collegamenti elettrici. Una delle fasi più importanti dopo il taglio del laminato in
quadri e la tranciatura dei fori di riferimento per gli attrezzi, è la stampa dell'etching resist, una
protezione dall'attacco chimico del rame. Il telaio serigrafico è una maglia fitta di tela di acciaio,
nylon o seta, che lascia penetrare la vernice, pressata sul lato superiore, in quello inferiore in cui è
posto il quadro; la maglia è riempita di gelatina sulle zone che non devono ricevere vernice.
L'etching resist depositato indurisce per evaporazione di solvente o per polimerizzazione in aria
libera, in forno oppure a raggi ultravioletti. Una variante interessante della stampa serigrafica, molto
comune nella costruzione di circuiti stampati professionali, è l'utilizzo di foto-polimeri come
etching resist (Dry film). Tali sostanze depositate sul quadro di rame, dopo un'esposizione
opportuna alla luce e sviluppo con soluzioni a base di carbonato di sodio (Soda Solvay), restano a
ricoprire solo i conduttori in rame che dovranno rimanere; (tale parte è denominata anche Pattern).
L'incisione avviene per mezzo di un liquido corrosivo, per il rame, che attacca chimicamente solo le
zone non ricoperte da etching resist. Le zone metalliche alle quali può aderire la lega di saldatura
sono limitate da una vernice permanente, solder resist, che viene applicata con metodo serigrafico e
indurita a caldo o a raggi ultravioletti. L'ultima fase di rilievo costituisce la deposizione di un sottile
strato di vernice protettiva con lo scopo di mantenere inalterate le caratteristiche di saldabilità del
rame evitando la formazione di uno strato di passivazione all'interfaccia rame-aria. Sovente si
esegue la foratura su macchine a controllo numerico: è molto utilizzato nei casi in cui le piastre
hanno una dimensione tale per cui sarebbe onerosa la costruzioni di stampi di tranciatura, per
piccole serie e per piastre a base di vetro che provocherebbero l'usura dei punzoni dello stampo.
La metallizzazione dei fori è una fase peculiare del processo di fabbricazione di un circuito
stampato, per questo necessita di alcune fasi preliminari: si procede ad una sensibilizzazione del
quadro, dopo la foratura, per immersione in una soluzione di ioni stagno, che si depositano
ovunque, ma soprattutto sulle pareti dei fori. La fase successiva, di catalisi, consiste nell'immergere
il quadro in una soluzione di cloruro di palladio, che reagendo con gli ioni stannosi, precipita sotto
forma di un film metallico sottile. E' in presenza di questo catalizzatore che si innesca la successiva
reazione di riduzione dello ione rame in soluzione in rame metallico Cu (ramatura chimica). Tale
strato metallico è quello che permette la ramatura galvanica definitiva. I quadri sono collegati
elettricamente al polo positivo e immersi in una soluzione di ioni di rame che a contatto con il rame
20
2 La Printed Circuit Board
chimico depositato cedono due elettroni diventando atomi di rame, cioè rame metallico. Dopo una
ramatura galvanica completa dei fori e di tutta la superficie del rame, il processo più semplice, detto
tenting, prevede lo stampo in positivo, lo sviluppo e l'incisione ottenendo cosi circuiti stampati
bifaccia, a fori metallizzati con finitura in solo rame. Un processo più complesso, il panel plating,
effettua invece un rivestimento con lega Sn-Pb e successiva incisione delle zone non necessarie: una
sua importante variante, detta patter plating, prevede la stampa fotografica del rame che non deve
restare sullo stampato, in una fase intermedia della metallizzazione dei fori, e precisamente dopo la
ramatura chimica. Segue la ramatura galvanica, il rivestimento Sn-Pb e l'incisione. Siccome
quest'ultimo processo effettua le metallizzazioni solo sul pattern, lo spessore del rame da incidere è
minore, con conseguente aumento della velocità e della qualità dell'incisione, nonché un minore
esaurimento del liquido d'incisione.
Per quanto riguarda il processo di fabbricazione specifico per le schede multistrato, il primo passo
consiste nel realizzare i pattern degli strati più interni mediante stampo e incisione. I diversi strati,
compresi i due più esterni, sono sovrapposti in maniera tale da formare un unico laminato per
azione di una pressa di laminazione. Si procede infine alla foratura, alla metallizzazione dei fori e
alla incisione delle due facce esterne. La metallizzazione dei fori esegue dunque i collegamenti
voluti tra i diversi strati, con l'evidente aumento della densità dei componenti. Si vanno diffondendo
altre tecniche di fabbricazione dei circuiti stampati che si basano sui processi additivi: a partire da
un laminato base completamente privo di rame si ottiene una deposizione chimica di questo metallo
solo nelle zone in cui è richiesto. Ciò si ottiene o con stampa fotografica o con presenza selettiva del
catalizzatore che innescherà il processo di ramatura.
2.3. Montaggio superficiale dei componenti
La tecnica di montaggio superficiale (SMT: Surface Mount Technology o SMD: Surface Mount
Device) dei componenti permette la saldatura senza realizzare un foro nella basetta, in quanto, le
piste ed i componenti da saldare sono sullo stesso lato, come si nota in figura 18.
Figura 18: PCB SMD (Surface Mount Device)
21
2 La Printed Circuit Board
La tecnologia SMT permette di collocare, tramite processo serigrafico una quantità molto precisa di
pasta saldante sulle piazzole di rame (pads) che in seguito alloggeranno terminali di componenti. I
componenti (SMD, Surface Mounting device) sono progettati per avere il minimo ingombro e peso
possibile, ed i contatti sono costituiti da corte linguette sporgenti ai lati dell'oggetto. Un componente
SMD può avere un ingombro pari ad un decimo di un componente tradizionale e costare, compreso
il montaggio, fino ad un quarto. Il principale vantaggio di questa tecnica, oltre alla
miniaturizzazione risiede nella semplificazione e velocizzazione del montaggio automatico dei
componenti e quindi anche una maggiore economia. Una macchina preleva i componenti dai nastri
continui e li depone con precisione nella loro collocazione sul circuito stampato, trattenuti da una
colla. Il circuito completo viene preriscaldato e collocato in un forno, dove il calore provoca la
fusione della pasta per saldare, costituita da una miscela di polvere di lega, flussante ed altri
additivi, precedentemente disposta sulla superficie del circuito stampato. In questo modo, è
possibile realizzare la giunzione fra circuito stampato e componenti elettronici a montaggio
superficiale. Un ulteriore vantaggio di questa tecnologia è rappresentato dalla riduzione del numero
di fori da praticare sul circuito stampato in quanto non sono più necessari i fori per alloggiare le
terminazioni dei componenti (restano invece necessari i "fori di vias").
L'attuale produzione industriale è indirizzata quasi esclusivamente su questa tecnologia soprattutto
per le dimensioni, il costo ed il miglior funzionamento ad alta velocità. In genere i circuiti i circuiti
SMD sono almeno dual layer, con componenti saldati su uno o su entrambi i layer e con fori
metallizzati che hanno lo scopo di creare un collegamento elettrico tra di essi. A volte sullo stesso
circuito stampato convivono componenti THT e SMT.
2.4. Progettazione del PCB
La progettazione di un scheda PCB si articola sostanzialmente in quattro fasi:
1. Progettazione del circuito;
2. Postprocessing;
3. Piazzamento dei componenti e sbroglio dei fili (placement and routing);
4. Generazione del gerber file.
22
2 La Printed Circuit Board
La prima fase prevede il disegno degli schematici: o manualmente con successiva prototipazione su
di un breadboard, o più comunemente, il disegno viene effettuato attraverso un CAD elettronico
con possibilità di successiva simulazione del circuito. In questa fase vanno apportati tutte le
modifiche circuitali e vanno effettuati tutti gli studi sulle possibili ottimizzazioni del circuito e sulla
scelta dei componenti. In figura 19 si riporta, a titolo di esempio, lo schematico di un voltage
reference progettato con il software OrCAD Capture 10.5.
Figura 19: Esempio di schematico: Voltage reference
La simulazione che segue in figura 20 mostra come sia possibile prevedere e valutare l'efficacia
della soluzione circuitale adottata dando la possibilità al progettista di scegliere tra diverse
configurazioni.
Figura 20: Simulazione del voltage reference di figura 19
23
2 La Printed Circuit Board
L'esempio considerato mostra infatti una soluzione intermedia studiata durante la fase di sviluppo
della Power Area (che verrà illustrata nel capitolo 4) che poi sarà sostituita da una circuito più
semplice ma ugualmente efficace. Una volta terminato il processo di revisione degli schematici si
può passare alla fase successiva.
Nella seconda fase di postprocessing
si passa invece alla realizzazione fisica del circuito
selezionando i footprints dei componenti nelle apposite librerie predefinite (quando disponibili) o
disegnando manualmente dimensioni fisiche, numero dei pin e tipo di package del componente.
Una volta inserite tutte le informazioni di tipo fisico del componente si passa alla generazione della
netlist: un file di testo che contiene la descrizione completa dello schematico comprensiva delle
nets, dei componenti e dei relativi footprints.
Passando poi su uno strumento software dedicato si passa alla fase di piazzamento dei componenti
importando la netlist generata e procedendo al posizionamento, solitamente manuale dei dispositivi.
In questa fase vanno rispettate tutte le esigenze specifiche riguardanti la destinazione d'uso della
scheda. Il posizionamento dei connettori d'uscita riveste particolare importanza in quanto, come nel
caso considerato di un sensore di radiazione, il chip deve risultare sgombro da qualsiasi ostacolo
come sostegni meccanici o cavi. In figura 21 viene mostrata l'importazione della netlist e la
disposizione iniziale dei componenti prima del placement.
Figura 21: Importazione del file .MNL della Power Area in Orcad Layout
24
2 La Printed Circuit Board
Successivamente si deve procedere allo sbroglio dei fili (fase di routing). Solitamente lo sbroglio
viene eseguito manualmente anche se ogni CAD prevede, come per il piazzamento, la possibilità di
realizzare un routing automatico. Questa fase dello sviluppo risulta molto impegnativa e prevede la
sostituzione delle linee virtuali di connessione tra pin, tracciate automaticamente dal CAD, con le
piste stampate. Vanno impostate le larghezze di ogni pista, le connessioni ai pin e quando non è
possibile attraversare altre piste si ricorre alle vias, per passare da un layer di routing ad uno
inferiore o superiore, aggirando così gli ostacoli fisici e la possibilità di cortocircuiti. I fori di vias
sono definiti dai padstack così come i footprint; sono dei file che contengono informazione su come
un pin si connette fisicamente al PCB in particolare sono informazioni relative alle dimensioni del
rame intorno al pin e alle dimensioni del foro da fare sulla scheda. Il risultato deve essere quello di
avere per ogni connessione di ogni componente un proprio percorso conduttivo come in figura 22,
dove viene mostrata il Placement e Routing della Power Area in uno stadio intermedio dello
sviluppo, in cui si notano anche la definizione dei piani di massa e dei piani di alimentazione :
Figura 22: Placement and Routing della Power Area
Terminata con successo la fase di placement and routing la progettazione del layout della scheda è
completa ed è possibile generare il file gerber, il quale racchiude tutte le informazioni che sono
necessarie per la realizzazione fisica del PCB, in particolare come dovrà essere tagliata, laminata e
forata la scheda. Il software realizza un file gerber per ogni layer del PCB. Una volta definiti tutti i
files gerber, questi dovranno essere passati a chi si occuperà della realizzazione fisica e da questo
punto in poi non sarà più possibile fare delle modifiche alla scheda.
25
3 Il Software OrCAD
Capitolo 3
3. Scelta del Software
Per la progettazione della scheda PCB di test per il chip RAPS03 si è scelto il pacchetto software
Cadence OrCAD 10.5, uno degli strumenti di progettazione più diffuso e usato nell’ambito della
realizzazione dei PCB, adatto allo sviluppo della nostra scheda. L'obiettivo da raggiungere infatti è
la realizzazione di un PCB a 4 strati in tecnologia mista THT e SMD, che alloggi oltre il chip tutta
l'elettronica necessaria alla conversione analogico-digitale on-board, oltre a provvedere a tutte le
connessioni esterne in particolare con l' FPGA Opal Kelly Spartan 3 e con l'evaluation board del
convertitore AD9238 della Analog Devices.
3.1. Il Software OrCAD 10.5
OrCAD 10.5 è un pacchetto software complesso e completo che permette di seguire tutto il flusso di
progetto a partire dagli schematici e le simulazioni, fino a giungere alla fase di layout e generazione
del gerber file. All'interno del pacchetto software si trovano numerosi tools altamente integrati tra
loro che permettono lo sviluppo delle varie fasi del progetto. Tra i vari strumenti presenti si fornisce
una breve introduzione dei soli tools utilizzati effettivamente durante lo sviluppo della board.
Figura 23: Flusso di lavoro dallo schematico fino al gerber file
26
3 Il Software OrCAD
I moduli OrCAD utilizzati sono:
•
CAPTURE CIS: è il programma per il disegno degli schemi circuitali ed è in grado di
scambiare dati con gli altri programmi di OrCAD ai fini della progettazione, disegno,
documentazione e simulazione. Consente di lavorare parallelamente su diversi progetti o su
diverse finestre sia di schematici che di librerie. Può essere usato congiuntamente a Layout e
Pspice. La sigla CIS sta per Component Information System, è un sistema di gestione dei
componenti, da utilizzare opzionalmente insieme a Capture: la sua funzione è quella di aiutare
l'utente a gestire le proprietà dei componenti all'interno del disegno di uno schematico. Il CIS
da accesso a un database di componenti, sia locale che remoto, che contiene tutte le
informazioni rilevanti riguardo ciascun componente, come ad esempio la sua descrizione, il
suo PCB footprint, parametri tecnici ed altre ancora.
•
OrCAD PSpice: è un simulatore circuitale composto tra l'altro da PSpice A/D, simulatore
analogico e digitale che consente analisi anche di tipo parametrico.
•
OrCAD Layout: è un programma di disegno che permette la progettazione di schede
elettroniche sino a 3500 x 3500 mm e sino a 30 strati. Grazie a questo programma è possibile il
piazzamento dei componenti manuale o su matrice e lo sbroglio automatico su griglia da
monofaccia sino a 16 strati o sbroglio manuale.
•
OrCAD Layout Plus: è un programma come Layout con in più piazzamento automatico e
sbroglio automatico gridless shape-based sino a 30 strati.
27
3 Il Software OrCAD
3.2. OrCAD Capture CIS
OrCAD Capture permette di rappresentare lo schema elettrico del circuito del punto di vista
funzionale, è il punto di partenza di un qualsiasi progetto. Deve includere tutto quello che va sul
circuito stampato. Una volta lanciato il software viene richiesto di scegliere tra le varie tipologie di
progetto disponibili: si seleziona Schematic se si vuole procedere ad un semplice disegno di
schematici, o più comunemente, la modalità Analog or Mixed A/D che permette la creazione di
progetti più elaborati integrabili con altri programmi del pacchetto di OrCAD. Il piano di lavoro,
cioè la schermata principale di OrCAD, è divisa in tre aree principali: un’area di lavoro dove viene
disegnato lo schematico, l’area Session Log dove sono visualizzate le notifiche del software o i
messaggi di errore e l’area del project manager che rappresenta il centro di tutto il lavoro;
quest’ultimo permette due possibilità di visualizzazione: File e Hierarchy. Nella prima sono
rappresentati gli schematici, sottoforma di cartelle, che compongono il progetto senza gerarchie.
Nell’altra viene invece messa in evidenza la struttura gerarchica dello schematico; non sono
visualizzati file di input/output, come in File, ma sempre un diagramma ad albero nel quale sono
presenti a partire dallo schematico principale tutti i sottoschematici che lo compongono, fino ad
arrivare ai singoli elementi.
Figura 24: Capture CIS
28
3 Il Software OrCAD
La caratteristica principale del software è la possibilità di eseguire il disegno in maniera gerarchica;
cioè una volta che il circuito base viene disegnato lo si può racchiudere in un oggetto superiore,
detto blocco gerarchico, che consente di riusare tale sottocircuito come fosse un componente, senza
doverlo ridisegnare ogni volta. Così facendo eventuali revisioni di una parte del progetto possono
essere fatte una sola volta agendo sul blocco gerarchico originale, così che la modifica si propaga a
tutti i blocchi che contengono quella parte. Inoltre la creazione di porte gerarchiche elimina
potenziali errori di connessione dato che il blocco gerarchico è visibile solo attraverso queste.
Sempre nell’editing dello schematico si può richiamare direttamente dai sottomoduli software
complementari a Capture come il Part e il Property Editor: il primo che permette di definire nuovi
componenti, o di modificarne di già esistenti (ma non a livello circuitale), e il secondo con il quale è
possibile distinguere le proprietà in un sottocircuito da quelle degli usi referenziati nel disegno,
permettendo di vederle ed editarle tutte da una sola locazione. Questo strumento permette la
visualizzazione di tutte le proprietà riassunte in una tabella.
Figura 25: Property Editor
Grazie a questo strumento è possibile variare il valore di un elemento, inserire il relativo footprint,
verificare i collegamenti di tutti i pin e inserire altri parametri. Un ruolo fondamentale svolgono le
librerie di OrCAD, che sono formate da file in cui sono raggruppati dei componenti simili tra loro o
per funzionalità o per tecnologia. OrCAD permette lo sviluppo di diversi tipi di progetti per cui
sono previste due tipi di librerie diversificate: i file .olb contengono informazioni sulla natura fisica
dei componenti (numero pin, la tipologia, la forma, ecc.) mentre i file .lib contengono informazioni
sul comportamento circuitale dei ogni componente sottoforma di descrizioni sottocircuitali e/o di
modelli spice.
29
3 Il Software OrCAD
Figura 26: Ricerca ed inserimento di componenti
contenuti nelle librerie predefinite
Apprezzabile risulta il tool presente nella versione CIS (Component Information System) di
Capture: prevede la possibilità d'importazione automatica dei componenti e delle relative librerie
(quando disponibili) contenuti nel database on-line di Orcad. Attraverso la selezione dal menù
Place di database part si accede al database locale o remoto (ICA: Internet Component Assistant);
attraverso il database remoto è possibile accedere alle librerie on-line in cui si possono trovare
numerosi componenti completi di modelli PSpice.
Figura 28: Selezione Database locale o remoto
Figura 27: Ricerca on-line del componente
La ricerca di tutti i moduli circuitali, modelli spice, footprints, dichiarazione dei pin e più in
generale l'inserimento di tutte le proprietà per ogni singolo componente è senza dubbio il passaggio
più complesso della progettazione dello schematico. Infatti le librerie predefinite e il database online risultano spesso insufficienti al completamento di tutte le proprietà richieste da Capture per
30
3 Il Software OrCAD
eseguire le simulazioni e l'esportazione verso Orcad Layout degli schematici. Per ovviare a tali
problemi si ricorre spesso al download delle librerie dai siti dei produttori importandole se possibile
in OrCAD, altrimenti si provvede alla scelta di componenti disponibili nelle librerie simili per
caratteristiche a quelli prescelti al fine di portare a termine le simulazioni necessarie. Una volta
verificato il buon funzionamento del circuito si provvede a creare manualmente il proprio modulo
privo soltanto della libreria Pspice.
Pspice è il tool integrato in OrCAD che consente la simulazione dei circuiti analogici o digitali
progettati in Capture. E' presente inoltre Pspice model editor che consente di importare e
modificare le librerie .lib in cui sono raccolte tutte le caratteristiche relative al comportamento
elettrico del dispositivo. Verranno mostrati nel capitolo successivo degli esempi d'importazione e
modifica delle librerie e successiva simulazione circuitale.
Terminata la fase di creazione dello schematico, Capture mette a disposizione del progettista alcuni
tools per controllare la correttezza del progetto, tra cui il DRC (Design Rules Check) che verifica la
conformità dello schema ai criteri di progetto configurati e segnala le violazioni delle regole
elettriche, configurabili dall’utente nella ERC Matrix; questo è uno strumento utile per accorgersi di
errori come ad esempio contese di un bus o pin non connessi.
Figura 29: ERC Matrix
Figura 30: DRC
Conclusa la fase di correzione degli errori e controllo degli avvertimenti generati dal DRC è
possibile generare la netlist tramite l’opzione Create Netlist dal menù Tools. L'esportazione degli
schematici può avvenire in diversi formati tra i quali l'estensione *.MNL destinato ad OrCAD
Layout.
31
3 Il Software OrCAD
Figura 31: Generazione della netlist
3.3. OrCAD Layout
OrCAD Layout è il software per il disegno di schede elettroniche integrato nel pacchetto OrCAD e
consente di svolgere tutte le fasi di progettazione di un circuito stampato: dall’importazione della
netlist (generata ad esempio da Capture) alla creazione del file gerber, cioè il prodotto finale di tutto
il lavoro che viene usato da coloro che si occuperanno della realizzazione fisica.
OrCAD Layout fa riferimento ad altre librerie, diverse da quelle per Capture, come ad esempio le
librerie tecnologiche e quelle di footprints: queste sono le più importanti per la progettazione del
PCB dato che uno schematico creato con Capture è pronto per passare alla fase successiva di
lavorazione solo se ad ogni componente sia associato il relativo footprint. Il footprint è una
collezione di informazioni con le quali si definiscono le caratteristiche fisiche e di connessione di
ogni componente presente sul PCB; come suggerisce il nome stesso è l’impronta che il componente
lascia sulla scheda, indicando l’area occupata, la geometria dei pin ed altre informazioni.
Nel corso di questo lavoro di tesi, per la progettazione della PCB si è riuscito a utilizzare tutti gli
strumenti essenziali per la progettazione di un circuito stampato: dalla stesura degli schematici, alla
ricerca da catalogo dei componenti, all'importazione dei componenti stessi sullo schematico
completi di tutte le librerie, fino alla definizione dei footprints. Una volta passati su OrCAD Layout
32
3 Il Software OrCAD
si è proceduto al piazzamento dei componenti, sbroglio dei fili e definizione dei 4 layers. Terminato
il lavoro di layout è stata contattata la ditta PCBExpress [9], sono state fatte le ultime revisioni al
file di layout per adeguare il progetto alle specifiche tecnologiche imposte per la stampa fisica della
scheda quali distanze minime, larghezza delle piste, larghezza dei fori ecc.
Infine si è potuto procedere alla generazione del file gerber. Figura 32 ripercorre tutte le fasi della
progettazione e lo sviluppo di un PCB.
Figura 32: Schema riassuntivo del flusso di progetto di una scheda PCB con CAD elettronico
33
4 Progetto della Power Area della scheda PCB
Capitolo 4
4. Progetto della Power Area della scheda PCB
di test per il chip RAPS03
In questo capitolo verrà descritto il processo di progettazione della scheda PCB di test per il chip
RAPS03. In particolare verrà presentato lo sviluppo della sezione di alimentazione con particolare
riferimento alle alimentazioni del chip e a quelle dei convertitori analogico digitali. Verranno quindi
catalogati i segnali del chip, i dispositivi costituenti la scheda PCB, per poi procedere alla
descrizione delle fasi di progetto della sezione di alimentazione e alla simulazione dei circuiti citati.
4.1. La Power Area
La Power Area è l'area della scheda PCB dove si è pensato di concentrare tutta la circuiteria e i
dispositivi necessari all'alimentazione del chip e dell'elettronica on-board.
Le apparecchiature elettriche per funzionare correttamente richiedono una tensione di alimentazione
prossima al valore nominale per cui sono state progettate. Una tensione non costante nel tempo,
soggetta a continue variazioni può causare mal funzionamenti del circuito come ad esempio
surriscaldamenti, guasti, fino ad un irreparabile danneggiamento dei componenti stessi. L'energia
erogata da un generatore, infatti, è soggetta a deterioramento lungo le linee di distribuzione, essendo
queste a loro volta, soggette a variazioni di carico e disturbi di vario genere. A seconda delle
specifiche di progetto, complessità circuitale e costo è possibile individuare dispositivi con diversi
livelli di efficacia in base al livello di protezione che si vuole garantire al proprio circuito. I
dispositivi che forniscono alla loro uscita una o più tensioni, costanti e indipendenti da eventuali
variazioni della tensione al loro ingresso, vengono chiamati regolatori di tensione; questi possono
essere di vario tipo: a commutazione capacitiva, detti anche switching regulators, oppure lineari.
Visto che i primi, realizzati in tecnologia CMOS, trovano il loro miglior impiego in circuiti che
commutano, si è optato per l'impiego di regolatori lineari, più adatti ad una situazione in cui le
grandezze in gioco sono per la maggior parte continue. Grazie all'esperienza maturata nello
sviluppo della versione della scheda PCB precedente per il chip RAPS01 [6] e RAPS02 [7], si è
34
4 Progetto della Power Area della scheda PCB
proceduto nell'analisi degli schematici e dei dispositivi utilizzati in precedenza. Trattandosi di una
board di test transitoria, il cui scopo principale è valutare la funzionalità del chip e dell'intero
apparato di test, era fondamentale poter fruire di una scheda PCB di test in tempi rapidi e a basso
costo. Si è cercato quindi di recuperare quanto possibile dalla power area studiata per la scheda di
test del chip RAPS01 e di ridurre al minimo la complessità delle soluzioni circuitali.
4.2. Catalogazione dei dispositivi e dei segnali
Il primo obiettivo del progetto della scheda PCB è quello di catalogare i segnali del chip in
categorie omologhe e di realizzare uno schema a blocchi dell'intera scheda in cui siano rappresentati
tutti i dispositivi e le relative linee di alimentazione.
Possiamo classificare i 109 segnali del chip RAPS03 come segue:
●
6 terminali di alimentazione 1.8 V analogici
●
4 terminali di alimentazione 1.8 V digitali
●
4 terminali di alimentazione 3.3 V digitali
●
2 terminali di alimentazione 1.8 V analogici tra cui la tensione di polarizzazione del chip
denominata nello schematico VPOL
●
6 terminali di massa analogica
●
4 terminali di massa digitale
●
4 terminali di massa relativi all'alimentazione 3.3 V digitale
●
6 segnali sincronismo
●
39 uscite analogiche
●
18 segnali di controllo, reset e test
●
17 segnali digitali di cui 4 di reset e 2 segnali di clock
Al fine di determinare tutte le linee di alimentazione presenti sulla scheda vengono analizzate le
alimentazioni dei due convertitori analogico digitali AD7274 e AD9238, dell' ADC driver AD8138
e dell'amplificatore operazionale OP275 tutti prodotti dalla Analog Devices, oltre al buffer HA5033
prodotto dalla Intersil.
35
4 Progetto della Power Area della scheda PCB
Nello specifico:
●
AD9238 necessita di due alimentazioni: una 3.3 V analogica e una 3.3 V digitale
●
AD8138 necessita di due alimentazioni +5 V e -5 V e di una tensione di modo comune
denominata nello schematico VCM1
●
AD7274 richiede un'alimentazione 3.3 V analogica e una tensione di riferimento denominata
nello schematico VCM2.
●
HA5033 necessita di due alimentazioni ±5 V
●
OP275 necessita di due alimentazioni ±5 V
Riassumendo quindi i dispositivi costituenti la scheda di test per il chip RAPS03 richiedono
complessivamente 6 tensioni di alimentazione differenti:
➢
1.8 V analogica
➢
1.8 V digitale
➢
3.3 V analogica
➢
3.3 V digitale
➢
±5 V
4.3. Calcolo delle potenze e scelta dei regolatori di tensione
La prima fase di progetto della power area si è concentrata sulla stima dei consumi del chip
RAPS03 e nell'analisi dei datasheet dei dispositivi presenti on board, stimando i consumi di potenza
di ciascun dispositivo. Per quanto riguarda il chip RAPS03 le stime riguardo ai consumi di potenza
sono stime approssimate, basate fondamentalmente sull'esperienza ottenuta con i chip precedenti
RAPS01 e RAPS02, in quanto al momento della progettazione della scheda PCB, il chip non era
ancora disponibile. Analizzando le strutture presenti nel chip si è stimato un consumo massimo di
potenza di 2.5 W riferito alla tensione 1.8 V analogica pari ad una corrente erogata di 1.4 A. Per le
altre alimentazioni 1.8 V digitale e 3.3 V digitale si sono stimati consumi contenuti, dell'ordine di
pochi mW, che non richiedono particolari prestazioni, in termini di corrente massima erogabile, ai
regolatori di tensione.
Per quanto riguarda i convertitori analogico digitali ed il relativo ADC driver o buffer possiamo
36
4 Progetto della Power Area della scheda PCB
riassumere i consumi nella tabella seguente, dove si riportano i dati estrapolati dai datasheet della
Analog Devices e della Intersil, a cui si aggiunge il consumo complessivo dei tre amplificatori
operazionali OP275 sempre della Analog Devices, tutti in condizioni di worst case :
Dispositivo
Alimentazione
Potenza richiesta
Corrente richiesta
AD9238
3.3 V
700 mW
212 mA
AD8138
±5V
100 mW
10 mA
AD7274
3.3 V
20 mW
6 mA
HA5033
±5V
210 mW
21 mA
OP275
±5V
150 mW
15 mA
Sin dal primo momento la scelta dei regolatori di tensione si è orientata verso i prodotti Linear
Tecnology, sia per l'esperienza maturata nel corso della progettazione della precedente versione
della board di test per il chip RAPS01 [6], sia per la disponibilità del software LTspice/Switcher
CAD III reperibile sul sito del produttore. Tale software ha permesso di studiare i prodotti Linear
Tecnology proponendo configurazioni standard dei regolatori di tensione e permettendo un rapido
accesso alle simulazione dei modelli spice degli stessi.
Dovendo progettare una scheda transitoria si è preferito convergere verso soluzioni circuitali
semplici e a basso costo,
di cui comunque si vuole valutare in fase di test, l'efficacia e
l'applicabilità, in previsione di una versione definitiva della scheda. Tale approccio ha portato alla
scelta di regolatori di tensione fissi senza avere quindi la possibilità di intervenire manualmente sul
valore della tensione di uscita, evitando l'eventuale presenza di rumore a valle del circuito di
polarizzazione e semplificando il circuito stesso. Nel caso dei regolatori variabili infatti bisognava
includere al circuito di polarizzazione un partitore di tensione basato sul rapporto di partizione tra
una resistenza fissa e una resistenza variabile attraverso un trimmer. L'utilizzo di regolatori fissi è
giustificato anche dalle esperienze di test condotte con la board per il chip RAPS01 in cui la
presenza dei regolatori variabili non è mai stata sfruttata ed in particolare non è stato mai richiesta
una variazione della tensione di alimentazione del chip né una sovralimentazione dello stesso per
ottimizzarne le prestazioni. Si è ritenuto altresì opportuno rinunciare alla generazione delle tensioni
±5 V on board in quanto tali alimentazioni sono destinate all'ADC driver AD8138 e al buffer
HA5033 mentre, la tensione + 5 V, dovrà alimentare i regolatori a valle da 1.8 V e 3.3 V . Tali
dispositivi non necessitano di tensioni con particolare stabilità, potendo operare in ampio intervallo
37
4 Progetto della Power Area della scheda PCB
di valori, quindi tali tensioni di ±5 V possono essere facilmente generate attraverso un generatore
esterno. In un primo momento, al contrario, si era pensato all'utilizzo di adeguati regolatori di
tensione, come ad esempio LT1086 della Linear Tecnology, per le uscite ±5 V. Tale approccio
avrebbe consentito di stabilizzare con la massima efficacia anche le tensioni di ingresso di tutti i
regolatori di tensione al costo di un notevole aumento della complessità dell'intera Power Area sia
in termini circuitali che di occupazione d'area.
La scelta dei regolatori di tensione si è orientata subito verso regolatori a bassa tensione di dropout. La tensione di drop-out
 V d è la differenza tra la tensione presente in ingresso
V i n ad
uno stadio regolatore e la sua uscita V out . Se tale differenza scende al di sotto di  V d il
regolatore perde le sue capacità stabilizzatrici. Tale famiglia di integrati è destinata solitamente
all'elettronica di consumo per l'alimentazione di dispositivi portatili o ad applicazioni generiche di
stabilizzazione delle tensioni.
In definitiva si è scelto di alimentare la scheda PCB con sole due alimentazioni esterne di ±5 V,
opportunamente filtrate, di cui la +5 V sarà destinata all'alimentazione dei 4 regolatori fissi di
tensione scelti, di cui si riassumono le principali specifiche tratte dai datasheet della Linear
Tecnology [8]:
➢
 V d = 300 mV , Noise = 20  V RMS
= 3.3V , I max
LT1763 V digitale
out = 500 mA ,
out
➢
= 1.8V , I max
LT1763 V digitale
out = 500 mA ,  V d = 300 mV , Noise = 20 V RMS
out
➢
Noise = 40 V RMS
= 3.3V , I max
LT1764 V analogica
out = 3 A ,  V d = 340 mV ,
out
➢
 V d = 340 mV , Noise = 40 V RMS
= 1.8V , I max
LT1764 V analogica
out = 3 A ,
out
Pertanto le tensioni digitali saranno erogate attraverso i regolatori LT1763 mentre per le tensioni
analogiche, che necessitano di più corrente, si è scelto LT1764 capace di erogare una corrente
massima di uscita di 3 A. Da notare che i dispositivi scelti, sono ampiamente al di sopra dei requisiti
di corrente massima richiesta per ciascuna tensione.
Di seguito si riportano i circuiti di polarizzazione suggeriti dai rispettivi datasheet e che saranno poi
adottati negli schematici della Power Area:
38
4 Progetto della Power Area della scheda PCB
Figura 33: Polarizzazione LT1763
Figura 34: Polarizzazione LT1764
Si nota dagli schematici nelle figure 33 e 34 l'ampio intervallo delle tensioni di ingresso applicabili
al regolatore di tensione e la semplicità del circuito di polarizzazione, in cui sono presenti soltanto
capacità parallele ed il cui scopo è garantire maggiore stabilità al dispositivo assorbendo eventuali
variazioni delle tensioni in gioco. Da notare che gli schematici si riferiscono a regolatori fissi di
tensione rispettivamente a 3.3 V per LT1763 e 2.5 V per LT1764; la rete di polarizzazione rimane
invariata nel nostro caso dove si scelgono regolatori a 3.3 V e 1.8 V sia per LT1763 che per LT1764.
Le tensioni di polarizzazione, destinate ai convertitori analogico digitali e al chip,
vengono
generate dagli amplificatori operazionali OP275 della Analog Devices, alimentati da una tensione di
±5 V.
39
4 Progetto della Power Area della scheda PCB
4.4. Progettazione e simulazione della Power Area
Una volta definiti i componenti della Power Area si è provveduto al disegno degli schematici. In un
primo momento è risultato molto utile il software LTspice/Switcher CAD III della Linear nel
progettare le polarizzazioni dei regolatori e nel visualizzare una prima simulazione Pspice. Infatti
una volta selezionato il componente, ad esempio LT1763-3.3, nella libreria predefinita del software
è possibile ottenere immediatamente lo schematico del dispositivo con la relativa rete di
polarizzazione, completa dei modelli spice.
Figura 35: Circuito di polarizzazione (LTspice/Switcher CAD III)
Una volta importati tutti i componenti e i relativi circuiti si è proceduto a disegnare un primo
schematico della Power Area dove vengono inseriti anche dei LED di monitor che oltre a
testimoniare lo stato ON dei dispositivi serviranno anche a drenare una corrente minima per
mantenere accesi i regolatori stessi.
40
4 Progetto della Power Area della scheda PCB
Figura 36: Schematico per la simulazione Power Area (LTspice/Switcher CAD III)
Le simulazioni che seguono, nelle figure 37 e 38, testimoniano il funzionamento dei regolatori di
tensione anche in condizioni di minimo drenaggio di corrente come nel caso in cui il carico sia
costituito dal solo LED e la relativa resistenza serie. In pochi millisecondi sia le uscite degli LT1763
che degli LT1764 risultano stabili. Infatti in fase di test le strutture interne al chip possono non
risultare tutte attive contemporaneamente e ci si potrebbe trovare in condizioni tali che il chip dreni
correnti molto piccole dell'ordine di pochi mA. Per questo motivo si è prestata attenzione al fatto
che i regolatori funzionassero correttamente anche al minimo della corrente richiesta.
Per il dimensionamento delle resistenze serie dei LED si è proceduto innanzitutto alla scelta di LED
di dimensioni e luminosità contenute, in quanto il chip è molto sensibile alla radiazione visibile.
Inoltre si è cercato nei cataloghi un LED che avesse V F (forward voltage) inferiore a 1.8 V e che
fosse attivo in presenza di poche mA. La scelta è ricaduta sui LED Hewlett-Packard HLPM-155
aventi V
F
= 1.6 V e l'accensione del LED in presenza di una corrente minima di 1 mA.
41
4 Progetto della Power Area della scheda PCB
Dalla formula:
RS =
si
ottengono
i
RS = 20  per
valori
V S −V F 
IF
nominali
considerata una
delle
resistenze
I F = 10 mA
serie RS = 170  per V S = 3.3 V e
V S = 1.8 V . In figura vengono mostrate le simulazioni ottenute con il
software LTspice/Switcher CAD III:
Figura 37: Simulazione tensioni analogiche 1.8 V e 3.3 V
Figura 38: Simulazione tensioni digitali 1.8 V e 3.3 V
42
4 Progetto della Power Area della scheda PCB
A questo punto dello sviluppo della Power Area sono stati ridisegnati gli schematici su Cadence
OrCAD Capture 10.5 :
Figura 39: Schematico Orcad Capture LT1763-3.3
Figura 40: Schematico Orcad Capture LT1764-3.3
43
4 Progetto della Power Area della scheda PCB
Figura 41: Schematico Orcad Capture LT1763-1.8
Figura 42: Schematico Orcad Capture LT1764-1.8
La difficoltà principale del passaggio dal software della Linear ad OrCAD Capture 10.5 ha
riguardato le librerie. Nelle librerie predefinite di OrCAD Capture non erano presenti i dispositivi
scelti e pertanto non era possibile né importare lo schematico del modulo né averne il modello
Pspice. Dopo aver effettuato il download delle librerie disponibili in rete sul sito della Linear [8],
sono stati studiati con attenzione i modelli spice attraverso il tool OrCAD Pspice model editor,
provvedendo poi a disegnare i 4 nuovi componenti associando il relativo modello spice, prestando
particolare attenzione alla corrispondenza tra il nome associato nello schematico al singolo pin e la
numerazione del pin stesso nel modello spice.
44
4 Progetto della Power Area della scheda PCB
Figura 43: PSpice model editor, modello spice LT1763-1.8
Si nota negli schematici riportati nelle figure 39, 40, 41, 42 l'adozione di un diodo di protezione,
anche se non strettamente necessario secondo i datasheet, per i regolatori di tensione. Se si dovesse
verificare la presenza di un eccessiva differenza di tensione tra V i n e V out il diodo, entrando in
conduzione, consente di proteggere l'integrato da possibili danneggiamenti.
Gli schematici OrCAD Capture in questa fase dello sviluppo avevano già assunto un aspetto semidefinitivo e necessitavano di essere testati tramite simulazione Pspice per valutare l'efficacia e la
precisione di tale soluzione circuitale. E' stata riproposta la stessa simulazione dei regolatori di
tensione per verificare il funzionamento dei modelli spice di cui viene mostrata a scopo illustrativo
soltanto la tensione 1.8 V digitale all'uscita del regolatore LT1763-18:
Figura 44: Tensione 1.8 V digitale e relativa corrente
45
4 Progetto della Power Area della scheda PCB
Nella figura 44 si vede come la presenza del diodo LED (rappresentato negli schematici da un diodo
generico a cui sono stati applicati i parametri spice del LED scelto) e della resistenza serie
garantiscono un drenaggio minimo di corrente sufficiente all'accensione del regolatore e del LED
stesso.
Per completare il progetto della Power Area si è dovuto studiare una soluzione circuitale per
generare le tensioni di modo comune destinate ad essere le tensioni di riferimento dell'ADC driver
AD8138 e del convertitore analogico digitale AD7274. La tensione da generare è di 0.9 V ed è
importante che tale tensione sia precisa e stabile in termini di rumore, in quanto deve alimentare il
processo di conversione dei segnali analogici provenienti dal chip. Proprio per questo motivo è stata
condotta un'attenta analisi sulle variazioni di tale tensione di riferimento progettando un modello
simulabile in cui, rispetto alla versione definitiva, è stato sostituito il trimmer con un più semplice
partitore di tensione, di cui si riporta lo schematico:
Figura 45: Tensione di modo comune, OP275
46
4 Progetto della Power Area della scheda PCB
Di seguito viene riportata la tensione di uscita:
Figura 46: Tensione di uscita OP275
Dopo essersi assicurati della corretta generazione del valore di riferimento vengono riportati gli
schematici definitivi in figura 47 per i tre valori di riferimento necessari per l' AD8138, l' AD7274 e
per la polarizzazione del chip, in cui sono stati introdotti i trimmer in sostituzione del partitore per
riservarsi la possibilità di un'eventuale regolazione dei valori di riferimento:
Figura 47: Tensioni di riferimento
47
4 Progetto della Power Area della scheda PCB
Per quanto riguarda l'alimentazione, come premesso, si è pensato di alimentare la scheda attraverso
un generatore esterno con le tensioni di +5 V e -5 V. Prendendo spunto dallo studio condotto per la
scheda precedente [6], si è ritenuto opportuno riproporre lo stesso schema di filtraggio delle tensioni
d'ingresso come mostrato in figura 48:
Figura 48: Alimentazione, filtri tensioni d'ingresso e chiusura delle masse analogica e digitale
Il filtro utilizzato per le tensioni di ingresso è costituito da condensatori al tantalio insieme ad un
induttanza , tali da creare un efficiente filtro passa-basso con cella a pigreco. Il filtraggio, infatti,
riveste un ruolo chiave in tutti i circuiti disegnati per essere poi impiegati sul PCB, ed in special
modo per quelli dell'alimentazione: si è deciso di utilizzare delle capacità di disaccoppiamento in
ogni punto critico dello schematico. Sono stati impiegate a tale scopo i condensatori elettrolitici, che
utilizzano del tantalio solido come dielettrico, o ceramici. Per il filtraggio a bassa frequenza, viene
solitamente utilizzato il ceramico, mentre ad alta frequenza in generale viene impiegato
l'elettrolitico. L'impedenza di un condensatore è, infatti, inversamente proporzionale alla sua
capacità e alla frequenza operativa, quindi più alto sarà il valore capacitivo, più basso sarà il taglio
in frequenza, quindi il tantalio porterà in generale a massa le frequenze più alte, mentre il ceramico
allo stesso modo per le frequenze basse, visto che la reattanza diminuisce con la frequenza. La
validità di questa soluzione non è apprezzabile dalle simulazioni effettuate con PSpice, poiché non è
possibile, con esso, simulare glitch o spike di corrente, ma è stata adottata ugualmente per garantirsi
la massima efficienza del PCB che si sta progettando.
48
4 Progetto della Power Area della scheda PCB
L'aspetto del rumore delle masse digitale ed analogica è stato analizzato in maniera particolare,
visto che potrebbe essere una della maggiori sorgenti di rumore e disturbi se non trattato in maniera
appropriata. La problematica del rumore proveniente dai piani di massa ha portato ad effettuare una
scelta particolare anche per quanto riguarda la chiusura delle masse: in un PCB il piano di massa
analogica dovrebbe essere fisicamente separato da quello di massa digitale, sebbene sia necessario
collegarli in maniera tale che le due tipologie di segnale facciano riferimento al medesimo
potenziale. Questa connessione, effettuata generalmente in un solo punto dello schematico, prende
il nome di Star Ground Conguration. Dal momento che i segnali digitali, viste le loro rapide
transizioni da uno stato logico all'altro contengono numerose componenti in frequenza, la
connessione tra i due piani di massa viene effettuata per mezzo di una ferrite, tale accorgimento
permette infatti di minimizzare il rumore che dalla massa digitale si propagherebbe sul piano di
massa analogica. Nella figura precedente si nota proprio questa soluzione circuitale in cui i due
piani di massa sono chiusi attraverso una ferrite.
A seguire si riportano gli schematici definitivi dei regolatori di tensione della Power Area:
Figura 49: Regolatori di tensione analogici
49
4 Progetto della Power Area della scheda PCB
Figura 50: Regolatori di tensione digitali
50
5 Postprocessing e preparazione del layout
Capitolo 5
5. Postprocessing e preparazione del layout
In questo capitolo verrà descritto il processo di preparazione degli schematici per il passaggio al
layout. Inoltre verrà affrontata la fase di piazzamento dei componenti, lo sbroglio dei fili e tutte le
fasi di progetto che porteranno alla generazione del file gerber, per giungere infine alla
realizzazione fisica della scheda PCB ed all'assemblaggio dei componenti.
5.1. Calcoli termici e scelta dei packages
Dagli schematici definitivi dei regolatori di tensione mostrati in Fig. 49 e 50 si nota la variazione
effettuata in termini di scelta del package dei dispositivi. Tale scelta è giustificata dai calcoli termici
effettuati elaborando i dati forniti dai datasheets della Linear Tecnology. In particolare considerato
che la quasi totalità della corrente erogata viene fornita dal regolatore LT1764 con tensione d'uscita
1.8 V analogica le preoccupazioni maggiori riguardo ad un possibile surriscaldamento e
danneggiamento del dispositivo si sono concentrate su tale regolatore. La selezione di uno dei tre
packages messi a disposizione dalla Linear Tecnology è stata condotta scegliendo un package che
avesse i requisiti richiesti in termini di dissipazione del calore oltre a fornire un possibile
alloggiamento per un dissipatore supplementare. Infatti sin dal primo momento, ci si è riservati la
possibilità di aggiungere un dissipatore supplementare qualora si verificassero surriscaldamenti
imprevisti in fase di test. Cosicché si è pensato di lasciare sulla PCB un opportuno spazio libero in
previsione di un possibile dissipatore.
Per il regolatore LT1764 come suggerito dal datasheet la
T J  max  (temperatura di giunzione) non
può superare i 150°C al fine di garantire il corretto funzionamento del dispositivo.
T J  max  viene
determinata dalla differenza tra le tensioni di ingresso e uscita del regolatore, dalla corrente erogata,
dalla corrente presente sul pin di ground, dalla presenza di altri dispositivi contigui e dall'ambiente
di lavoro del dispositivo. La formula seguente esprime il calcolo termico:
51
5 Postprocessing e preparazione del layout
P = I out  max∗V i n max−V out   I GND∗V i n max
T J = P∗ JA e T J  max = T J T amb
Dove:
P è la potenza dissipata dal dispositivo
T J è la temperatura di giunzione
 JA è la resistenza termica
T J  max  è la massima temperatura di giunzione
I out max  è la massima corrente erogata
I GND corrente sul pin di ground
Avendo selezionato il T-package TO-220 per riservarsi come detto la possibilità di applicare un
dissipatore supplementare, elaborando i dati otteniamo i seguenti valori:
P = 4.68 W
avendo sostituito i valori :
 JA = 50 ° C / W , V i n max  = 5 V , V out = 1.8 V , I GND = 0.04 A ,
I out max  = 1.4 A
Il valore I GND è stato ricavato per approssimazione dalla seguente grafico presente nel datasheet:
Figura 51: Corrente sul pin di ground LT1764
Pertanto
T J = 4.68 W ∗50 ° C /W = 234 ° C a cui va aggiunta la temperatura operativa del
dispositivo come illustrato in precedenza. La temperatura di giunzione ottenuta in condizioni di
worst case risulta ben al di sopra della massima temperatura operativa di 150 °C. Ciò nonostante si
è deciso di non ricorrere ad un dissipatore esterno ma di utilizzare come superficie dissipativa il
piano di massa analogico, provvedendo ad avvitare il tab direttamente sul piano di massa. Essendo
52
5 Postprocessing e preparazione del layout
tale piano piuttosto esteso si pensa, in via sperimentale, possa essere sufficiente a provvedere allo
smaltimento del calore abbassando così il valore della resistenza termica globale. Inoltre il
parametro
I out max  che ha la maggiore influenza sul calcolo termico è un valore stimato
fortemente per eccesso. Essendo, come premesso, la scheda PCB transitoria e sperimentale si è
preferito non ricorrere subito al dissipatore esterno anche se teoricamente necessario.
I calcoli nel caso del regolatore LT1764 con tensione d'uscita 3.3 V analogica è del tutto simile e
porta ad una temperatura di giunzione di:
T J = 1.35 W ∗50 ° C /W = 67.5 ° C
avendo sostituito i valori :
P = 1.35 W ,  JA = 50 ° C / W , V i n max  = 5 V , V out = 3.3 V , I GND = 0.01 A ,
I out max  = 0.5 A
A
T J come noto va sommata la temperatura dell'ambiente.
Anche in questo caso, pur rientrando il dispositivo al di sotto del limite di 150 °C, è stato adottato lo
stesso accorgimento di dissipazione sul piano di massa.
Per i regolatori LT1763 con package S8 i calcoli termici si eseguono allo stesso modo e si riportano
i valori della temperatura di giunzione e resistenza termica.
LT1763 con tensione d'uscita a 1.8 V digitale
T J = 13.44 ° C
P = 192 mW ,  JA = 70 ° C /W , V i n max  = 5 V , V out = 1.8 V ,
I out max  = 0.06 A
LT1763 con tensione d'uscita a 3.3 V digitale
T J = 26.78 ° C
P = 383 mW ,  JA = 70 ° C /W , V i n max  = 5 V , V out = 3.3 V ,
I out max  = 0.225 A
I GND risultano in entrambe i casi trascurabili come illustrato nelle figure52 e 53.
53
5 Postprocessing e preparazione del layout
Figura 52: Corrente sul pin di ground
LT1763-1.8
Figura 53: Corrente sul pin di ground
LT1763-3.3
Tali temperature di giunzione risultano piuttosto basse anche in presenza di approssimazioni per
eccesso dei singoli parametri, pertanto i regolatori LT1763
erogando correnti modeste, non
richiedono dissipatori. Pertanto si è proceduto ad installare i dispositivi senza particolari
precauzioni.
5.2. Layout della Power Area e della scheda PCB
Figura 54: Modello 3D dei layers della scheda PCB: 1° layer routing (top) e
piazzamento, 2° layer piani di alimentazione , 3° layer piani di massa analogica e
digitale, 4° layer routing (bottom)
54
5 Postprocessing e preparazione del layout
La generazione del layout della Power Area rappresenta la parte più complessa del lavoro svolto.
Non essendo mai stata affrontata la fase di layout e di sbroglio in precedenza (in particolare nella
board per il chip RAPS01 è stata affidata a una ditta esterna [6]) questa fase di sviluppo è risultata
particolarmente delicata ed impegnativa. Inoltre la Power Area si inserisce, come già illustrato, nel
progetto più complesso dell'intera scheda PCB. Il lavoro è stato condotto sinergicamente, grazie alla
collaborazione con l'Università di Parma, ed è stato possibile suddividere il progetto in tre
macroblocchi: l'Ing. Paolo Delfanti si occupato dell'alloggiamento e lo sbroglio dei fili del chip
RAPS03, l'Ing. Daniele Biagetti della sezione riguardante gli ADC e di tutti i segnali di ingresso e
uscita necessari alle fasi di test, ed in questo contesto, si inserisce questo lavoro di tesi riguardante
lo studio delle alimentazioni dei dispositivi presenti on-board. L'integrazione finale delle singole
porzioni del progetto è stata indubbiamente la parte più complessa del lavoro. I singoli progetti
infatti devono corrispondere e integrarsi perfettamente sia a livello elettrico sia a livello di
dimensioni fisiche. Per quanto riguarda la corrispondenza elettrica ci si è limitati in un primo
momento a definire i quattro layers e a dare nomi omologhi alle nets comuni negli schematici; i
piani di massa e la revisione finale dello sbroglio dei segnali hanno rappresentato il raffinamento
finale dei singoli lavori.
Figura 55: Macroblocchi della scheda PCB, viene evidenziata la collocazione ed il layout della Power Area
55
5 Postprocessing e preparazione del layout
In un primo momento lo studio si è concentrato sul software Orcad Layout incluso nel pacchetto
Cadence Orcad 10.5. Questo strumento permette di esportare gli schematici elaborati con Capture e
di passare alla progettazione fisica della board. Prima di procedere all'esportazione degli schematici
un ulteriore studio è stato condotto nel catalogare i footprints di tutti i componenti presenti nella
Power Area e nel ricercarli all'interno delle librerie predefinite di Orcad. Per la maggior parte dei
componenti quali resistenze, condensatori e diodi non si è avuta particolare difficoltà nel trovare il
footprint corrispondente ai componenti selezionati nei cataloghi dei fornitori, mentre per quanto
riguarda i regolatori di tensione LT1763 e LT1764 si è proceduto a ridisegnare manualmente il
footprint con il tool library manager di Orcad Layout.
Figura 56: Footprint LT1764
Figura 57: Footprint LT1763
Per quanto riguarda invece il connettore delle alimentazioni esterne e la ferrite per la chiusura delle
masse analogica e digitale, si è pensato di riproporre le scelte fatte sulla scheda precedente [6] e di
riutilizzare i footprint disegnati in precedenza su cui montare lo stesso tipo di componenti.
Figura 59: Footprint ferrite
Figura 58: Footprint connettore di alimentazione
Una volta determinati tutti i footprint è stata eseguita l'importazione degli schematici e si è
proceduto al piazzamento dei componenti e allo sbroglio manuale dei fili, cercando di minimizzare
la complessità dei percorsi elettrici delle nets e cercando di ridurre l'occupazione d'area rientrando
56
5 Postprocessing e preparazione del layout
nei parametri stabiliti di 14.5 cm x 3.5 cm destinati alla Power Area. L'occupazione d'area, così
come il numero di layer, influisce sul costo della scheda PCB e si è cercato di rispettare le
specifiche di progetto di quattro strati e una dimensione globale della scheda di 25 cm x 11 cm per
ottenere una board di test a costi relativamente ridotti.
In figura 60 viene mostrata l'impilaggio 3D realizzato con Art-lantis dei quattro layers della board
PCB:

il primo e il quarto layer (top e bottom) sono dedicati al routing

il secondo layer ai piani di alimentazione suddivisi opportunamente per ridurre la
complessità dello sbroglio dei fili

il terzo layer contiene i piani di massa analogica e digitale divisi in modo tale da
sezionare la scheda in due parti in cui risiedono tutti i dispositivi, le alimentazioni e le
masse nella prima analogica e nella seconda digitale. Particolare attenzione è stata
prestata alla divisione delle masse nella zona sottostante il chip per minimizzare problemi
connessi al rumore.
Figura 60: Modello 3D dei layers della scheda PCB: 1° layer routing (top) e piazzamento, 2° layer piani di
alimentazione , 3° layer piani di massa analogica e digitale, 4° layer routing (bottom)
57
5 Postprocessing e preparazione del layout
La suddivisione dei piani di massa e dei piani di alimentazione è stata possibile soltanto nella fase
successiva all'unione delle zone tre zone di progetto. Una volta stabilito il piazzamento definitivo
dei singoli componenti si sono potuti suddividere i piani di alimentazione in sei zone: 1.8 V 3.3 V
analogiche e 1.8 V 3.3 V digitali, oltre ai +5 V e -5 V. Facendo partire i piani di alimentazione dalle
zone sottostanti i rispettivi regolatori di tensione si è cercato di raggiungere tutte le zone interessate
da quella determinata alimentazione. Questo approccio ha permesso di ridurre il numero delle nets
raggruppando i dispositivi interessati alla stessa alimentazione. Le figure visualizzano i singoli
layer realizzati con OrCAD layout.
Figura 61: Top layer: piazzamento e routing
Figura 62: Layer alimentazioni
58
5 Postprocessing e preparazione del layout
Figura 63: Layer masse analogica e digitale
Figura 64: Bottom layer: routing
La fase finale del lavoro di layout, condotto in collaborazione con Daniele Biagetti e Paolo Delfanti,
è consistita in numerose revisioni e raffinamenti del progetto, nel rispetto delle specifiche tecniche
richieste da PCBExpress [9], azienda scelta per la stampa fisica della board. Le revisioni hanno
riguardato in particolare le dimensioni delle piste e dei fori, il rispetto delle distanze minime tra
piste adiacenti, problematico nel caso degli ADC. Una volta risolti tutti i dubbi e gli errori sia di
natura elettrica che fisica della scheda si è proceduto alla generazione del gerber file, che
rappresenta
il
risultato,
non
più
modificabile,
di
tutto
il
lavoro
di
progettazione.
Contemporaneamente è stata stilata la lista di tutti i componenti della scheda e si è provveduto a
rendere disponibili l'elenco di tutti i dispositivi necessari per il montaggio finale della board.
59
5 Postprocessing e preparazione del layout
L'immagine di figura 65 mostra il risultato finale del lavoro svolto, la stampa fisica della scheda e il
successivo assemblaggio realizzato dalla Aitec electronics.
Figura 65: Scheda PCB di test per il chip RAPS03 (Power Area in evidenza)
In figura 66 si riporta lo schema a blocchi complessivo della scheda al fine di individuare la
collocazione dei singoli dispositivi e dei connettori che sono stati progressivamente citati.
Figura 66: Blocchi costituenti la scheda PCB
60
6 Struttura di test basata su FPGA
Capitolo 6
6. Struttura di test basata su FPGA
La realizzazione della scheda PCB illustrata nei capitoli 4 e 5 s'inserisce nella più complessa
struttura pensata per condurre la fase iniziale di test del chip RAPS03 e per compiere scelte
definitive sulle soluzioni circuitali da adottare nella prossima versione della board. In particolare i
test si concentreranno sull'effettivo funzionamento dei banchi di conversione analogico digitale e
verranno valutate le possibili alternative presenti sulle schede di test. Ad esempio verrà studiata
l'efficacia dell'ADC driver e del buffer presenti a monte degli ADC, in confronto alla versione priva
di questa soluzione.
Viene introdotto inoltre un dispositivo FPGA (Field Programmable Gate Array) che consentirà di
interfacciare il chip con un PC, di controllare i segnali di clock del chip e degli ADC, l'elaborazione
dei segnali di controllo inviati da PC tramite un virtual instrument e di ricevere (direttamente via
interfaccia USB 2.0) ed elaborare i segnali di uscita, opportunamente digitalizzati, provenienti dal
sensore.
L'FPGA è un dispositivo molto potente e versatile che consente ampie possibilità di sviluppo ed
ottimizzazione dei test oltre ad una buona velocità di acquisizione dei dati.
La struttura del set-up si compone come presentato nello schema in figura 67:
●
della board di alloggiamento del chip
●
del FPGA Xilinx Opal Kelly Spartan 3 comprensivo della breakout board BRK3010
●
AD9238 e relativa evaluation board della Analog Devices
Al fine di gestire in maniera efficiente il set-up appena descritto, sono stati utilizzati i seguenti
pacchetti software: :
●
Xilinx ISE WebPack 9.1i (Programmazione FPGA)
●
Front Panel (download bitstream e configurazione PLL)
●
National Instruments LabView 8.0 (Virtual Instrument)
61
6 Struttura di test basata su FPGA
Figura 67: Struttura di test: Board RAPS03, Opal Kelly XEM3010 e AD9238 (evaluation board)
6.1. Introduzione agli FPGA
I dispositivi FPGA (Field Programmable Gate Array) sono circuiti logici la cui funzionalità è
programmabile via software e costituiscono un ottimo compromesso tra flessibilità, costo e
prestazioni. Consentono la realizzazione sia di sistemi completi definitivi, sia di prototipi, visto il
loro costo unitario contenuto. Presentano caratteristiche intermedie rispetto ai dispositivi ASIC
(Application Specific Integrated Circuit) e a quelli con architettura PAL (Programmable Array
Logic). L'uso degli FPGA comporta alcuni vantaggi rispetto agli ASIC: si tratta infatti di dispositivi
standard la cui funzionalità da implementare non viene impostata dal produttore. Essi sono
programmati direttamente dall'utente finale, consentendo la diminuzione dei tempi di progettazione,
la verifica del comportamento logico mediante simulazioni e la possibilità di test immediato
dell'applicazione. Il grande vantaggio rispetto agli ASIC è che permettono di apportare eventuali
62
6 Struttura di test basata su FPGA
modifiche o correggere errori, semplicemente riprogrammando il dispositivo in qualsiasi momento.
Di contro, per applicazioni su larga scala divengono antieconomici, perché il prezzo unitario dei
dispositivi FPGA è superiore a quello degli ASIC che, al contrario, hanno elevati costi di
progettazione.
I dispositivi FPGA sono circuiti integrati contenenti molte celle logiche identiche, che possono
essere viste come delle singole porte logiche. Ogni cella può indipendentemente prendere possesso
di una funzione specifica, definita da una tabella (LUT Look Up Table) e può comunicare con le
altre celle tramite una fittissima trama di interconnessioni e di interruttori. Questa matrice di celle e
di connessioni forma la base per la costruzione di ogni circuito, anche di quelli più complessi,
grazie alla grande varietà di funzioni possibili e all'elevatissimo numero di connessioni. Sono
costituiti infatti da un array di componenti logici, circondati da blocchi di I/O programmabili
liberamente e collegabili tra loro tramite interconnessioni anch'esse programmabili; costituiscono
un’importante evoluzione nel mondo dei dispositivi programmabili poiché hanno un’elevata
potenza di calcolo e di connessione. Un aspetto molto importante sono i collegamenti locali che
attraversano il dispositivo e che sono condivisi da pochi elementi logici, quindi la potenza utilizzata
ed i ritardi che si generano sono contenuti. La figura 68 mostra l'architettura degli array simmetrici
della Xilinx in cui si possono individuare i blocchi logici configurabili (CLB), le linee di
connessione e i blocchi di ingresso-uscita programmabili.
Figura 68: Array simmetrici Xilinx (famiglia XC)
Field Programmable significa appunto che la funzione dell'FPGA è definita “sul campo” dal
programma dell'utente, piuttosto che dalla disposizione, non modificabile, dei dispositivi che
realizzano le funzioni logiche.
Questi dispositivi permettono di raggiungere livelli di integrazione molto spinti, mantenendo la
caratteristica di basso costo di produzione iniziale, tipico dei dispositivi programmabili.
63
6 Struttura di test basata su FPGA
Le FPGA sono tipicamente inadatte per applicazioni puramente General Purpose, basati su
microprocessori, o anche Special Purpose, dominio degli ASIC, ma le ottimizzazioni di questi
dispositivi, la specializzazione di alcune aree e la possibilità di integrare blocchi di memoria RAM,
assottigliano la linea di confine presente tra FPGA, ASIC e microprocessori.
Esistono quattro modalità di programmazione dei blocchi logici:
1. Fuse
Le linee del dispositivo sono inizialmente tutte connesse e la programmazione consiste nel
“bruciare” (fuse) alcune connessioni in modo da mantenere solo quelle necessarie.
La programmazione avviene mediante una tensione più elevata di quella di normale
funzionamento.
Figura 69: Programmazione delle connessioni Fuse
2. Antifuse
Le linee del dispositivo sono inizialmente tutte disconnesse e la programmazione consiste
nel “creare” (antifuse) le connessioni necessarie.
La programmazione avviene, come in precedenza, applicando una tensione più elevata di
quella di normale funzionamento.
Figura 70: Programmazione delle connessioni Antifuse
64
6 Struttura di test basata su FPGA
3. EEPROM
Le linee del dispositivo sono prodotte in modo da essere sempre disconnesse.
La programmazione consiste nel depositare carica sul floating gate del transistor in modo da
mantenerlo in conduzione.
Figura 71: Programmazione delle connessioni EEPROM
4. SRAM riprogrammabile
Le linee del dispositivo sono prodotte in modo da essere sempre disconnesse.
La programmazione consiste nel memorizzare un valore logico (0 o 1) in una cella di RAM
statica
Figura 72: Programmazione delle connessioni SRAM
65
6 Struttura di test basata su FPGA
6.2. Opal Kelly XEM3010
Figura 73: Opal Kelly XEM3010 completa di breakout board BRK3010
Come accennato in precedenza, si è scelto di utilizzare un dispositivo FPGA per gestire sia il
sensore di radiazione RAPS03, sia il banco di conversione analogico digitale, oltre ad ottenere un
interfaccia di comunicazione tra il chip ed un PC. La diretta implementazione su una board di un
oggetto quale una logica programmabile richiede un notevole sforzo progettuale (si sarebbe dovuto
provvedere ad una memoria EEPROM che contenesse il bitfile, un PLL per la generazione dei
segnali di clock, una RAM, un controller USB ecc.) nonché un incremento notevole di costi nel
montaggio della scheda in quanto, di norma, questi chip sono del tipo BGA (Ball Grid Array). Una
simile scelta sarebbe giustificata solo nel caso di una board destinata ad essere prodotta su larga
scala o nel caso in cui le specifiche progettuali siano così restrittive da imporre tali soluzioni.
Per questo si è scelto di utilizzare una evaluation board in cui l'FPGA viene fornita con tutta
l'elettronica necessaria al suo funzionamento, corredata di strumenti e risorse software utili al
progettista. La scelta pertanto si è indirizzata non verso uno specifico modello di FPGA, piuttosto,
verso una board che soddisfacesse le specifiche del progetto. L'esperienza di Andrea Papi ci ha
indirizzato verso le evaluation board della Opal Kelly [11], di cui si è scelto il modello più
performante XEM3010, il quale offre un numero sufficientemente elevato di linee digitali di I/O
soddisfacente le richieste del progetto ed offre in più una certa ridondanza (nel caso di sviluppi
futuri). A fronte di una potenza di calcolo modesta, la Opal Kelly XEM3010 presenta però una
interfaccia veloce e versatile come la USB 2.0, una RAM capiente, del supporto software utile allo
sviluppo dell'interfaccia di comunicazione, oltre ad avere una dimensione (75mm x 50mm) ed un
66
6 Struttura di test basata su FPGA
costo contenuto. La Opal Kelly XEM3010 integra al suo interno:
●
l'FPGA Xilinx Spartan 3 (XC3S1500);
●
un banco di memoria SRAM da 32MB a 16 bit;
●
un connettore USB 2.0 che costituisce un'interfaccia veloce con il PC sia in fase di
configurazione sia in fase di acquisizione dati;
●
Il Cypress CY2293 che integra al suo interno 3 PLL indipendenti per la generazione di 5
segnali di clock complessivi di cui 3 verso l'FPGA e 2 verso i connettori esterni (expansion
connectors) configurabili tramite software dedicato Front Panel;
●
una piccola EEPROM seriale posizionata nei pressi del microcontrollore USB 2.0 che
contiene le istruzioni del microcontrollore stesso, la configurazione dei PLL e il codice
identificativo del dispositivo;
●
2 expansion connectors ad alta densità da 80 pin sul lato inferiore della board innestabili
sulla board BRK3010 che consente un accesso facilitato ai pin:
●
2 bottoni a pressione e 8 LED utili nella configurazione dell'FPGA.
Si riporta lo schema a blocchi della board XEM3010:
Figura 74: Schema a blocchi XEM3010
67
6 Struttura di test basata su FPGA
Hanno avuto particolare rilevanza, nella scelta di questo componente, la presenza dell'interfaccia
USB 2.0 che può garantire una velocità massima di trasferimento dati 480Mbits/sec, la disponibilità
di un generatore di clock on-board (fino a 150MHz) che, almeno nella versione transitoria della
scheda PCB (presentata nei capitoli 4 e 5), è stato utilizzato come master clock per il sistema di
acquisizione e per il chip, e le dimensioni fisiche della XEM3010.
Quest'ultima caratteristica ha consentito di assemblare la board Opal Kelly XEM3010 e la board di
alloggiamento del chip, su di un unico supporto adatto per i test all'interno del banco ottico. Inoltre,
utilizzando l'interfaccia USB 2.0 il PC può comandare l'intera struttura di test e acquisire dati dal
chip totalmente via software. Nelle immagini seguenti viene mostrata la board del RAPS03 e il
relativo supporto, sul retro vi sono le predisposizioni che consentono il montaggio della Opal Kelly.
Figura 75: Board RAPS03 e relativo supporto
Figura 76: Supporto per alloggiamento Opal Kelly XEM3010
68
6 Struttura di test basata su FPGA
6.3. FPGA Xilinx Spartan-3
Figura 77: FPGA Spartan-3
(XC3S1500)
La famiglia di FPGA (Field-Programmable Gate Arrays) Spartan-3 è stata realizzata per sviluppare
la produzione di prodotti elettronici a largo consumo, caratterizzati da soluzioni ad elevate
prestazioni ed a basso costo, per applicazioni orientate verso l'utente. Questa famiglia è composta
da otto elementi e range di densità da 50000 a 5000000 gates. La Opal Kelly XEM3010 integra al
suo interno il dispositivo XC3S1500 (dove 1500 indica 1.5 milioni di gates presenti sul dispositivo)
che offre buone potenzialità (intermedie nella famiglia Spartan-3) sia in temini di numero di gate
che di linee di I/O. La tabella in figura 78 ne riassume le caratteristiche.
Figura 78: Attributi del dispositivo scelto (in evidenza)
69
6 Struttura di test basata su FPGA
Si riportano ulteriori caratteristiche tecniche della famiglia Spartan-3 estratti dal datasheet Xilinx:
●
Fino a 74880 celle logiche (29952 nel caso del XC3S1500)
Segnali Select I/O:
●
Fino a 784 I/O pin (487 nel caso del XC3S1500)
●
Trasferimento dati a 622 Mb/s I/O
●
18 segnali standard single-ended
●
8 segnali differenziali standard di I/O che includono LVDS, RSDS
●
Terminazioni con sistema DCI (Digitally Controlled Impedance)
●
Range dei segnali da 1.14V a 3.45V
●
Supporta il Double Data Rate (DDR)
●
Supporta DDR, DDR2, SDRAM fino a 333 Mbps
Risorse Logiche:
●
Celle logiche utilizzabili come registri a scorrimento
●
Multiplexer veloci
●
Logica di riporto look-ahead
●
Moltiplicatori 18 x 18 dedicati
●
JTAG compatibile con IEEE 1149.1/1532
Memoria gerarchica SelectRAM:
●
Fino a 1872 Kbit di Block RAM (576Kbit nel caso del XC3S1500)
●
Fino a 520 Kbit di RAM distribuita (208Kbit nel caso del XC3S1500)
●
Digital Clock Manager (fino a 4 DCM)
●
Eliminazione del clock skew
●
Sintesi di frequenza
●
Cambiamento di fase ad alta risoluzione
●
8 linee principali di clock
●
Sintesi, mapping, placement e routing
●
Processore MicroBlaze, PCI, e altri core
70
6 Struttura di test basata su FPGA
L’architettura della famiglia Spartan-3 è costituita da cinque elementi programmabili fondamentali:
●
CLB - Blocchi Logici Configurabili che contengono Tabelle di Look-Up (LUT) basate sulla
RAM per implementare logica ed elementi di memoria come flip-flop o latch. I CLB
possono essere programmati per realizzare una larga varietà di funzioni logiche o per salvare
dati.
●
IOB - I Blocchi di Input/Output controllano il flusso di dati tra i pin di I/O e la logica
interna alla periferica. Ogni IOB supporta un flusso di dati bidirezionale e operazioni 3state. Sono disponibili ventiquattro differenti segnali standard e sette standard differenziali
ad elevate prestazioni. Sono inclusi registri DDR (Double Data-Rate). La caratteristica DCI
(Digitally Controlled Impedance) fornisce terminazioni automatiche sul chip, semplificando
la progettazione.
●
Block RAM - fornisce dei blocchi memoria nel formato a doppia porta da 18 Kbit.
●
Moltiplicatori - Questi blocchi accettano due numeri binari da 18 bit in ingresso e calcolano
il prodotto.
●
DCM - Digital Clock Manager (sistema di gestione digitale del clock) fornisce soluzioni
auto-calibranti completamente digitali per distribuire, ritardare, moltiplicare, dividere e
cambiare la fase del clock.
Figura 79: FPGA Spartan-3: Elementi logici programmabili fondamentali
71
6 Struttura di test basata su FPGA
La figura 79 mostra l'anello di IOB che circonda un array regolare di blocchi logici CLB. Il
dispositivo XC3S1500 in particolare presenta 2 colonne di blocchi RAM, costituiti da numerosi
blocchi elementari di 18Kbit a cui ad ognuno è associato un multiplexer dedicato. La famiglia
Spartan-3 è fornita di una fitta rete di interconnessioni e interruttori che collegano tutti i cinque
elementi funzionali, trasmettendo segnali tra loro. Ogni elemento funzionale ha una matrice di
interruttori associati che permette connessioni multiple.
Configurazione
Gli FPGA Spartan-3 sono programmati per caricare la configurazione in robuste celle di memoria
che controllano tutti gli elementi funzionali e le risorse destinate al routing. I dati relativi alla
configurazione devono essere scritti all’interno di una PROM o all’esterno della scheda in
dispositivi di memoria non volatili. Dopo aver acceso l’FPGA, i dati relativi alla configurazione
vengono copiati nell’FPGA usando uno dei seguenti modi: Master Parallel, Slave Parallel, Master
Serial, Slave Serial, e Boundary Scan (JTAG). La memoria consigliata per salvare i dati della
configurazione è la Xilinx Platform Flash PROM nella cui famiglia fanno parte le PROM XCF00S
(per configurazioni seriali) e le XCF00P ad alta densità per configurazioni parallele o seriali.
Capacità di I/O
La SelectIO degli Spartan-3 supporta 18 standard in single-ended e 8 standard differenziali. Molti di
questi supportano il DCI (Digitally Controlled Impedance) che usa terminazioni integrate per
eliminare le riflessioni dei segnali non volute.
IOB - Blocchi Input/Output
Il blocco d’input/output IOB fornisce un’interfaccia bidirezionale e programmabile tra un pin di I/O
e la logica interna all’FPGA. Ci sono tre percorsi principali all’interno dell’IOB: il percorso
d’uscita, d’ingresso e il 3-state. Ognuno ha la propria coppia di elementi di memoria che possono
agire come registri o latch.
72
6 Struttura di test basata su FPGA
6.4. Flusso di progetto e ambiente di sviluppo
L'ambiente software scelto per la configurazione della Opal Kelly che alloggia come detto l'FPGA
Xilinx Spartan-3 è il pacchetto Xilinx ISE 9.1i Webpack reperibile sul sito del produttore [10].
ISE acronimo di Integrated Software Environment è l'ambiente di sviluppo che permette di
percorrere l'intero flusso di progetto che si può schematizzare come in figura 80:
Figura 80: Flusso di progetto FPGA
Il primo passo di progettazione è il Design Entry o descrizione del dispositivo, che consiste nella
creazione del progetto. Sono possibili tre diversi approcci:
●
l'utilizzo di un editor per schematici (Schematic Editor);
●
l'utilizzo di un editor che descrive il dispositivo mediante un diagramma a stati finiti
(FSM Finite State Machine);
●
l'utilizzo di un editor di testo per descrivere il circuito con i linguaggi di programmazione di
tipo HDL (Hardware Description Language): VHDL (Very High Scale Integrated Circuit
Hardware Description Language) o Verilog.
73
6 Struttura di test basata su FPGA
In questo lavoro di tesi si è scelto di usare una descrizione di alto livello di tipo VHDL, grazie ad
una maggiore familiarità con questo tipo di linguaggio. La figura seguente mostra il menù di
selezione presente in ISE 9.1i all'apertura di un nuovo progetto.
Figura 81: ISE 9.1i: Scelta del top-level source
Successivamente il software rileva le periferiche di tipo plug&play collegate al PC ed è in grado di
riconoscere il dispositivo FPGA Spartan-3 connesso al calcolatore come riportato in figura 82:
Figura 82: ISE 9.1i: Selezione del dispositivo e scelta del linguaggio
di programmazione
74
6 Struttura di test basata su FPGA
A questo punto è possibile importare files complementari al progetto, come ad esempio, sorgenti
VHDL predefinite. Ultimata la fase di inizializzazione si accede alla schermata principale di ISE
9.1i: sulla sinistra di figura 83 si può notare il Project Navigator, che mostra l'architettura gerarchica
del moduli implementati. Attraverso il Project Navigator e la finestra sottostante dei processi si può
accedere a tutte le funzionalità illustrate nel flusso di progetto. Alla destra della figura si nota invece
il Design Summary, che raccoglie tutte le informazioni sul progetto, sulle celle logiche
implementate, sulle risorse utilizzate del dispositivo, oltre ai report generati dal programma.
Figura 83: ISE 9.1i
Terminata la stesura e l'ottimizzazione dei listati VHDL si può accedere alle funzionalità avanzate
del software come mostrato in figura 84. La fase successiva è la sintesi del moduli implementati in
VHDL: la fase di sintesi accessibile dal menù Processes attraverso l'opzione Synthesize-XST,
consente di ottenere dalla descrizione HDL una connessione di porte logiche che costituisce il
circuito desiderato. Il processo di sintesi provvede inoltre ad un'ottimizzazione dei blocchi circuitali
descritti dal codice VHDL. Questa fase si articola a sua volta in due sottoprocessi:
75
6 Struttura di test basata su FPGA
●
Check Syntax, che consiste nel controllo della
sintassi, verificando se la Netlist è corretta;
●
View RTL Schematic, che consiste in un
processo opzionale che permette di osservare
in forma grafica lo schematico ottenuto dalla
sintesi del circuito descritto in HDL.
Il passaggio successivo è l'Implement Design che
permette
di generare la bitstream necessaria alla
programmazione del dispositivo, partendo dalla netlist
generata in fase di sintesi. Tale fase consta dei seguenti
sottoprocessi:
Figura 84: ISE 9.1i: Processes
●
Translate, che verifica la correttezza della netlist prodotta dal sintetizzatore e scrive i
risultati in una nuova netlist, la quale descrive la logica utilizzata nel progetto e i vincoli
(statici e dinamici) precedentemente impostati dall’utente.
●
Map, che consente di definire le risorse fisiche (in termini di blocchi logici necessari)
del progetto su FPGA. In particolare vengono allocate le risorse necessarie alla
realizzazione degli elementi del circuito e vengono considerati tutti i vincoli fisici e
temporali, al fine di eseguire l’ottimizzazione dell’architettura e un controllo delle regole di
progetto sulla netlist risultante.
●
Place & Route, che consiste nella definizione dei CLB del dispositivo FPGA che verranno
effettivamente utilizzati nel progetto. Inoltre si stabiliscono quali saranno le
linee di
collegamento fra i vari blocchi logici. Tale fase può essere compiuta in due modalità: una
tiene conto dei vincoli temporali impostati tramite file con estensione .ucf, mentre
l’altra ignora i vincoli temporali, fornendo un’indicazione dei requisiti necessari per
realizzare il progetto.
76
6 Struttura di test basata su FPGA
●
Generate Programming File, che consiste nella generazione della bitstream, dopo che
l’Implement Design è andato a buon fine. Tale sequenza di bit contiene la
configurazione finale dei blocchi logici e delle interconnessioni da trasferire sul
dispositivo FPGA.
Conclusa l'implementazione è possibile procedere alla verifica funzionale, a livello logico, del
progetto. ISE 9.1i integra un simulatore che permette di testare i blocchi funzionali presenti e di
verificare l'effettivo funzionamento del circuito. Aggiungendo una test bench waveform si possono
configurare i parametri necessari alla simulazione del blocco selezionato. La figura 86 mostra la
simulazione del clock manager (che verrà illustrato nei paragrafi successivi) in una fase intermedia
dello sviluppo. In questo test ad esempio sono stati visualizzati, oltre ai vari segnali di clock, i
segnali di uscita di un contatore di cui si voleva testare il funzionamento.
Figura 85: ISE Simulator: Simulazione logica del Clock Manager
Terminata la generazione del bit file ed effettuati i test logici mediante simulatore, ISE 9.1i prevede
l'utilizzo dell'applicazione Impact per la configurazione finale del dispositivo.
Tuttavia nello svolgimento di questa esperienza di tesi si è preferito utilizzare un interfaccia più
semplice ed immediata per il download del file all'interno del FPGA. E' stata sfruttata infatti la
77
6 Struttura di test basata su FPGA
funzionalità presente nel software Front Panel fornito dalla Opal Kelly [11] che permette la
comunicazione diretta, grazie alla presenza della porta USB 2.0, tra PC e FPGA. In figura 86 viene
mostrata l'interfaccia minimale del Front Panel.
Figura 86: Front Panel
Successivamente questa funzionalità del Front Panel è stata importata all'interno del virtual
instrument realizzato in LabView8.0.
6.5. Progettazione del Clock Manager
In questo lavoro di tesi, per quanto riguarda la sezione di programmazione dell'FPGA, è stata
affrontata la progettazione e l'ottimizzazione del clock manager, così denominato in quanto
costituisce il blocco logico elementare, in cui vengono generati tutti i segnali di clock e di controllo
necessari agli ADC (seriali o paralleli) e al chip RAPS03. Questo blocco logico si inserisce nel
contesto più ampio della programmazione globale dell'FPGA, che dovrà provvedere a tutta la logica
di controllo della struttura di test e all'acquisizione dei dati dal chip. Inoltre, tramite un virtual
instrument realizzato in LabView 8.0, s'intende costruire una prima interfaccia tra il PC e l'FPGA
che consenta al calcolatore di configurare l'intera struttura e di gestire i dati provenienti dal chip.
Rispetto al passato, ove era previsto l'utilizzo di schede di acquisizione, l'uso dell'FPGA consentirà
di avere un set-up più semplice e flessibile costituito essenzialmente dalle due schede di test
(illustrate in precedenza) assemblate su di un unico supporto ed il PC che potrà gestire e configurare
interamente via software la struttura di test.
La struttura gerarchica che caratterizza la programmazione VHDL ha consentito di lavorare al
progetto del clock manager in maniera sostanzialmente indipendente. Infatti dopo aver condotto un
attento studio sui segnali di clock e di controllo necessari al funzionamento degli ADC e del chip, si
è potuto scindere la progettazione in tre macroblocchi e procedere allo sviluppo del sottoblocco del
clock manager in modo autonomo.
78
6 Struttura di test basata su FPGA
La progettazione dei segnali di clock e la sincronia dei segnali di controllo costituiscono infatti il
modulo base per lo sviluppo dei macroblocchi gerarchicamente superiori, a cui si aggiunge la
necessità di configurare i PLL contenuti sulla board XEM3010. Si è quindi prestata molta
attenzione nel progettare nei tempi previsti il modulo così da renderlo disponibile per testare il
funzionamento degli altri blocchi logici.
Si può quindi suddividere la programmazione del dispositivo in tre moduli essenziali:
1. Clock Manager;
2. Logica degli ADC, che si occupa dell'acquisizione e gestione dei dati provenienti dal RAPS03;
3. Interprete istruzioni, che si occupa dell'elaborazione dei segnali di controllo e delle istruzioni
provenienti dal PC.
Il clock manager è costituito, come mostra il blocco circuitale in figura 87, da:
Figura 87: Schematico Clock Manager
4 ingressi (lato sinistro)
●
ck_master: è il clock di riferimento del clock manager e dell'intero circuito logico
implementato nell'FPGA. Viene generato dal PLL presente on-board sulla Opal Kelly
XEM3010 e viene configurato attraverso l'apposito tool presente nel Front Panel;
79
6 Struttura di test basata su FPGA
●
reset: è un segnale asincrono a cui fa riferimento l'intero sistema per il ripristino delle
configurazioni iniziali, inviabile tramite virtual instrument da PC;
●
ADC_Ser_Par: è il segnale di selezione degli ADC seriali o paralleli, che determina le
diverse configurazioni del clock del RAPS03 e dell'ADC selezionato;
●
n_campioni è un array di 3 bit: determina il numero di 2 n
campioni
che devono essere prelevati
per ogni ciclo di clock del chip.
3 uscite (lato destro)
●
ck_ADC: clock destinato all'ADC seriale o parallelo secondo quanto selezionato
dall'ingresso ADC_Ser_Par (valore logico basso ADC parallelo, valore logico alto ADC
seriale);
●
ck_RAPS: clock destinato al chip RAPS03 configurabile dall'ingresso n_campioni;
●
not_cs: segnale di sincronia per il campionamento dell'ADC seriale.
Il primo segnale che va configurato secondo le specifiche di progetto è il ck_master. Come
premesso, tale segnale rappresenta il clock fondamentale dell'intero sistema ed è ricevuto come
ingresso di riferimento per il clock manager. Per la corretta generazione di tale clock si fa
riferimento al tool di configurazione incluso nel software Front Panel della Opal Kelly (figura 88).
Figura 88: Front Panel: Configurazione dei PLL
80
6 Struttura di test basata su FPGA
Nella Opal Kelly è presente on-board un solo oscillatore fisso alla frequenza di 48 MHz generato
dal PLL Cypress CY22393. Tutte le frequenze stabili ottenibili nell'ampio intervallo compreso tra
250 KHz e 400 MHz vengono generate attraverso moltiplicazione per il parametro P (8 < P <
2055) e divisione per il parametro Q (2 < Q < 129), oltre alla presenza di ulteriori due divisori
supplementari DIV1N e DIV2N (4 < DIV < 127). Si possono generare fino a sei uscite indipendenti
ciascuna abilitabile e memorizzabile su EEPROM direttamente dal Front Panel. La figura 89
mostra alcuni valori di P, Q e DIV con cui è possibile generare frequenze stabili nel nostro range
d'interesse.
Figura 89: Configurazione della frequenza di clock
Logica di generazione ck_RAPS e ck_ADC
Il clock del chip RAPS03 deve essere generato in funzione del ADC selezionato, seriale o parallelo,
ed in funzione del numero di campioni scelti per il campionamento, ad esempio se si vogliono
acquisire 1, 2 o 4 campioni per ogni ciclo di clock del chip. La generazione del ck_raps si basa
ovviamente sul clock di riferimento del sistema ck_master.
Possiamo distinguere due casi possibili per il segnale di clock del chip:
1. Se è stato selezionato l'ADC parallelo AD9238
Il segnale ADC_Ser_Par è al valore logico basso. La generazione del ck_RAPS_par viene
affidata ad un multiplexer a 3 bit (in appendice viene allegato il listato VHDL denominato
mux3bit). Il multiplexer permette di ottenere il clock per il chip RAPS03 in funzione del
numero di campioni selezionati dall'ingesso n_campioni (array di 3 bit). Se viene scelto un
campionamento a 1 campione per ciclo di clock, ck_RAPS_par avrà lo stesso periodo del
81
6 Struttura di test basata su FPGA
clock di sistema, doppio nel caso vengano selezionati 2 campioni ecc.
Questo risultato di divisione in frequenza del clock del RAPS03 rispetto al clock master
viene ottenuto con l'ausilio di un contatore a 7 bit sensibile ai fronti di discesa del clock di
sistema (VHDL in appendice: Counter_7bit);
La figura 90 mostra il timing diagram dell'ADC9238:
Figura 90: Timing diagram AD9238
Il clock dell'ADC parallelo viene considerato pari al ck_master.
2. Se è stato selezionato l'ADC seriale AD7274
Il segnale ADC_Ser_Par è al valore logico alto. La generazione del ck_RAPS_ser è
notevolmente più complessa in quanto è necessario generare oltre al segnale di clock del
chip, in modo sostanzialmente analogo a quanto visto sopra per l'ADC parallelo, anche un
ulteriore segnale denominato not_cs che viene utilizzato, come illustrato nel datasheet del
dispositivo AD7274, per inizializzare il processo di campionamento. Si mostra a tal
proposito, in figura 91, il timing diagram del convertitore analogico digitale AD7274:
Figura 91: Timing diagram AD7274
82
6 Struttura di test basata su FPGA
Appena il segnale not_cs
CS  passa al valore logico basso al successivo fronte di discesa del
clock_master, qui denominato sclk, l'ADC inizia la conversione restituendo come primo valore uno
zero, al successivo fronte di discesa di sclk inizia trasferimento dati che termina al quattordicesimo
fronte di discesa di sclk con l'invio seguente di due zeri in uscita. A questo punto il segnale
CS 
deve tornare al valore logico alto per un ciclo di sclk e così via. Lo sviluppo di questo blocco logico
ha richiesto un notevole sforzo progettuale in particolar modo per le difficoltà riscontrate nella
sincronizzazione del segnale
CS  con il clock del RAPS03. Di seguito si mostra un immagine
che riassume il comportamento atteso del
CS  e la sincronia necessaria con ck_RAPS_ser
(figura 92 mostra il caso in cui n_campioni è pari ad 0).
Figura 92: Sincronizzazione segnali notcs e ck_RAPS_ser
Le funzioni logiche citate vengono svolte dai blocchi div_sclk_x15, conta_fronti,
Counter_7bit, mux3bit (in appendice è presente il codice VHDL). Nel corso del debug del
blocco logico div_sclk_x15 si sono riscontrati numerosi problemi nell'implementare la
sincronizzazione dei due segnali e si è scelto, per semplificare il circuito logico, di
posticipare il passaggio del clock del RAPS dal valore logico basso al valore logico alto in
corrispondenza del nono fronte si salita dell'sclk e non dell'ottavo fronte di discesa.
Il clock dell'ADC seriale viene considerato pari al ck_master.
83
6 Struttura di test basata su FPGA
Blocchi Logici
Vengono presentati, per completezza, i blocchi logici costituenti l'intero circuito logico che verrà
implementato nell'FPGA, progettati dall'Ing. Daniele Biagetti e dall'Ing. Paolo Delfanti.
In figura 93 viene mostrato il top level che racchiude al suo
interno tutti i sottocircuiti di figura 94 incluso il clock manager.
Da notare in figura 94 il blocco denominato PC_Interface che
consente la comunicazione tra FPGA e PC tramite Virtual
Instrument. Tale blocco, di fondamentale importanza per l'invio
delle istruzioni e l'acquisizione dati, è stato importato dalle librerie
predefinite presenti nel software Front Panel.
Figura 93: Blocchi logici: Top Level
Figura 94: Blocchi logici implementati
84
6 Struttura di test basata su FPGA
Simulazioni logiche
Il software ISE 9.1i dispone di un semplice simulatore
per la verifica del corretto funzionamento logico dei
blocchi circuitali, selezionabile dalla finestra Sources
come mostra la figura 95. Creando una new testbench
source ed impostando tutti i parametri richiesti per la
simulazione, si è proceduto ad una verifica dei segnali
generati dal Clock Manager. La simulazione in figura
96 riporta gli ingressi e le uscite del clock manager
quando viene selezionato l'ADC parallelo, mantenendo
Figura 95: ISE 9.1i Simulatore logico
cioè al valore logico basso il segnale ADC_Ser_Par. Si
è configurato inoltre l'ingresso n_campioni in modo tale
che assuma, in istanti successivi, i valori “000”, “001” e “010”. Si può notare, in basso nella figura,
le uscite dell'ADC pari al ck_master e l'uscita del ck_RAPS pari al ck_master negato quando
n_campioni è pari a “000”. Quando n_campioni diviene uguale a “001” il periodo del ck_RAPS
raddoppia e poi quadruplica quando n_campioni è pari a “010”.
Figura 96: Simulazione logica ADC parallelo
In figura 97 viene invece analizzato il comportamento, più complesso, dell'ADC seriale. Il segnale
ADC_Ser_Par viene portato al valore logico alto e viene configurato l'ingresso n_campioni prima al
valore “000” poi al valore “001”. Il comportamento in uscita del ck_RAPS e del not_cs conferma il
funzionamento logico corretto prelevando un campione per ogni ciclo di clock del RAPS03 nel
primo caso e due nel secondo caso. Il clock dell'ADC è stato generato pari al ck_master.
85
6 Struttura di test basata su FPGA
Figura 97: Simulazione logica ADC seriale
Si nota inoltre nelle figure 96 e 97 la necessità di inviare un reset asincrono al fine di inizializzare i
blocchi logici. Al colpo di clock successivo al segnale di reset le celle logiche iniziano a funzionare
correttamente.
6.6. Virtual Instrument e test del Clock Manager
Figura 98: LabView: Virtual instrument per il test del clock manager e della logica degli ADC
E' stato realizzato, dall'Ing. Daniele Biagetti, un primo virtual instrument (figura 98) con il software
LabView8.0 per testare il funzionamento dell'interfaccia di comunicazione tra FPGA e PC, il
funzionamento del Clock Manager e della logica degli ADC. Si è potuto così passare al controllo
dei segnali per mezzo dell'oscilloscopio Agilent Infiniium 54831D MSO [12], prelevando
86
6 Struttura di test basata su FPGA
direttamente sugli expansion connectors della Opal Kelly i segnali da testare. La board Opal Kelly
XEM3010 mette infatti a disposizione 40 linee dedicate, denominate ybus, che corrispondo ai pin di
uscita di un expansion connector. Risulta così relativamente semplice mappare i segnali d'interesse
sui pin esterni della breakout board, agendo direttamente sul codice VHDL. Il bus citato
corrisponde ai pin di uscita presenti sul package FG320 dell'FPGA Spartan-3 (figura 99). E'
possibile localizzare tali pin ed eventualmente modificare la disposizione delle uscite (modificando
il file con estensione .ucf), grazie al tool Xilinx PACE di ISE 9.1i.
Figura 99: Xilinx PACE: Package pins XC3S1500 - FG320
Una volta identificati i segnali di uscita mappati sulle linee ybus è possibile prelevarli tramite le
sonde dell'oscilloscopio digitale per visualizzarne il comportamento logico. Le simulazioni mostrate
nelle figure 96 e 97 infatti non consentono di valutare i possibili ritardi e le implicazioni che
possono avere sul funzionamento logico dei blocchi implementati. Per questo sono state riproposte
le stesse configurazioni del clock manager utilizzate nelle simulazioni per verificare la presenza di
eventuali malfunzionamenti. Grazie al virtual instrument il download della bitstream nel
dispositivo, la selezione dell'ADC, seriale o parallelo, e la configurazione del segnale n_campioni
risulta intuitiva.
87
6 Struttura di test basata su FPGA
Nelle immagini proposte in figura 100 e 101, vengono visualizzate le uscite del ck_raps e ck_ADC
oltre agli ingressi ck_master e ADC_Ser_Par (posto a 0 per selezionare l'ADC parallelo), quando
rispettivamente n_campioni è configurato a 0 ed 1 (viene cioè prelevato un campione per ogni ciclo
di clock nel primo caso e due nel secondo).
Figura 100: ADC Parallelo acquisizione di 1 campione per ciclo di clock del RAPS03
Figura 101: ADC Parallelo acquisizione di 2 campioni per ciclo di clock del RAPS03
88
6 Struttura di test basata su FPGA
Nelle figure 102 e 103 invece viene selezionato l'ADC seriale (ADC_Ser_Par è posto ad 1) e viene
aggiunto il segnale not_cs. Le immagini, come in precedenza, si riferisco rispettivamente ai casi in
cui n_campioni viene posto prima a 0 e successivamente ad 1.
Figura 102: ADC Seriale acquisizione di 1 campione per ciclo di clock del RAPS03
Figura 103: ADC Seriale acquisizione di 2 campioni per ciclo di clock del RAPS03
89
6 Struttura di test basata su FPGA
Il comportamento del clock manager si è rivelato corretto come ci si attendeva dalle simulazioni
elaborate. L'unica eccezione ha riguardato il segnale not_cs che in un primo momento non aveva il
comportamento desiderato. Per ovviare a questo inconveniente si è dovuto procedere a raffinamenti
successivi del codice VHDL fino ad ottenere il comportamento corretto del segnale come
dimostrano le figure 102 e 103.
Il buon funzionamento del clock manager ha permesso di studiare anche i blocchi gerarchici
superiori. Attualmente si sta ultimando la fase di test dei segnali provenienti dagli altri circuiti logici
implementati, presentati in figura 94, il cui comportamento risulta complessivamente corretto. In
particolare è stata ultimata la fase di debug della logica degli ADC e si sta procedendo alle prime
acquisizioni dei dati.
90
Conclusioni e sviluppi futuri
Il lavoro presentato è stato sviluppato in collaborazione con l'Ing. Daniele Biagetti e l'Ing. Paolo
Delfanti, ed ha condotto alla realizzazione della scheda PCB di alloggiamento del chip RAPS03.
I test elettrici effettuati confermano il funzionamento circuitale della board ed in particolar modo
della Power Area, oggetto di questa tesi. La scheda è, come premesso, una board transitoria di cui si
voleva disporre in breve tempo per testare il funzionamento del prototipo RAPS03. L'esperienza
che maturerà dai test che verranno condotti, servirà a fare scelte definitive sull'elettronica che
risiederà on-board sul prossimo prototipo della PCB.
A seguire è stata effettuata la programmazione del dispositivo FPGA riuscendo ad implementare la
logica di funzionamento desiderata; particolare attenzione è stata riservata alla verifica del corretto
funzionamento del Clock Manager di cui è stata progettata la logica. Il lavoro di progettazione
svolto è pertanto consistente con gli obiettivi preposti.
Il set-up è ancora in fase di sviluppo ma sono stati già integrati tutti i componenti necessari al
funzionamento dell'intera struttura di test. Al momento si sta procedendo alla verifica della logica di
funzionamento del dispositivo in fase di acquisizione dei dati. Si confida di disporre a breve di un
set-up affidabile basato essenzialmente sulla scheda PCB e l'FPGA, al fine di poter iniziare la
caratterizzazione del chip RAPS03. Le migliorie introdotte da questa struttura, riguardano
principalmente la possibilità di avere una comunicazione diretta tra il chip ed un calcolatore, che
consente di procedere all'acquisizione e alla gestione dei dati senza ricorrere all'uso di schede di
acquisizione esterne. L'uso del dispositivo FPGA consente inoltre di apportare modifiche e
ottimizzazioni all'apparato di test agendo esclusivamente via software, garantendo così la massima
flessibilità nelle fasi di caratterizzazione del chip.
Il lavoro svolto ha una duplice utilità: da un lato l'hardware ed il software progettato permettono di
controllare in maniera completa il funzionamento sensore RAPS03 permettendo di monitorare il
comportamento delle strutture di test in esso contenute e di acquisire dati trasferendoli già
digitalizzati al PC tramite un'interfaccia USB 2.0. Più precisamente gli ADC a disposizione
permetteranno la lettura contemporanea di un massimo di due uscite analogiche del chip,
consentendo quindi la lettura di ognuna delle strutture matriciali da 32 x 32 pixel e di due delle
sottomatrici della 256 x 256 pixel, nonché di tutte le altre strutture singole presenti nel RAPS03.
91
Dall'altro lato si potrà testare il funzionamento delle diverse architetture di conversione analogicodigitale scelte in modo da disporre di informazioni utili al progetto di una successiva versione di
board di test che permetta di sfruttare a pieno le potenzialità del RAPS03 come ad esempio,
l'acquisizione contemporanea di tutte e quattro le sottomatrici della matrice 256 x 256 pixel o la
possibilità di collegare più sensori assieme in previsione di futuri test come tracciatore di particelle
in esperimenti di fisica delle alte energie.
Da punto di vista personale lo svolgimento di questo lavoro mi ha permesso di mettere in pratica
molte delle conoscenze maturate durante il corso di studi nonché di acquisirne di nuove. Mi è stato
possibile infatti, lavorando in team, seguire tutto il flusso di progetto di una board PCB: dalla
individuazione delle specifiche, alla scelta delle possibili architetture, alla selezione dei componenti,
sino a giungere all'oggetto finito. Ho potuto così acquisire competenze specifiche riguardanti gli
strumenti software utilizzati:
Cadence OrCAD ed i suoi tools dedicati per il disegno degli
schematici (Capture), definizione dei modelli e simulazioni circuitali (Pspice) e progettazione fisica
della scheda PCB (LayoutPlus) . Ed in ultimo, la programmazione in linguaggio VHDL di parte del
software, dalla stesura dei listati sino alle simulazioni software, per procedere infine alle verifiche
sperimentali tramite oscilloscopio.
92
Appendice
APPENDICE
Vengono di seguito riportati gli schematici elaborati con OrCAD Capture dell'intera scheda PCB
e il codice VHDL relativo al Clock Manager.
Power Area
93
Appendice
94
Appendice
95
Appendice
96
Appendice
ADC, connessioni con il chip e con la struttura di test
(Ing. Daniele Biagetti)
97
Appendice
98
Appendice
99
Appendice
100
Appendice
101
Appendice
102
Appendice
Chip RAPS03
(Ing. Paolo Delfanti)
103
Appendice
VHDL
----------------------------------------------------------------------------------- Create Date: 13:43:08 06/09/2007
-- Module Name: Clock_Manager - Behavioral
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Clock_Manager is
Port ( ck_master, reset : in STD_LOGIC;
n_campioni : in STD_LOGIC_vector (2 downto 0);
ADC_Ser_Par : in STD_LOGIC;
ck_ADC, ck_RAPS : out STD_LOGIC;
not_cs: buffer STD_LOGIC
);
end Clock_Manager;
architecture Behavioral of Clock_Manager is
component Counter_7bit
port (ck_master, reset : in STD_LOGIC;
counter7 : out STD_LOGIC_vector (6 downto 0)
);
end component;
component mux3bit
port (ck_master : in std_logic;
counter : in std_logic_vector (6 downto 0);
n_campioni : in STD_LOGIC_vector (2 downto 0);
ck_out : out STD_LOGIC
);
end component;
component divide_sclk_x15 is
Port ( sclk, reset : in STD_LOGIC;
ck_out : out STD_LOGIC;
not_cs : out std_logic
);
end component;
component generate_notcs is
port ( reset,sclk : in std_logic;
ck_RAPS : in STD_LOGIC;
notcs : buffer std_logic
);
end component;
signal s_counter_par, s_counter_ser : std_logic_vector (6 downto 0);
signal s_ck_RAPS_par, s_ck_RAPS_ser : std_logic;
signal ck_RAPS_base_ser, not_ck_master : std_logic;
104
Appendice
begin
div_xadc_par : Counter_7bit
port map (ck_master => ck_master,
counter7 => s_counter_par,
reset => reset
);
not_ck_master <= ck_master;
selez_ck_adc_par : mux3bit
port map (ck_master => not ck_master,
counter => s_counter_par,
n_campioni => n_campioni,
ck_out => s_ck_RAPS_par
);
gen_ck_RAPS_base_ser : divide_sclk_x15
port map (sclk => ck_master,
reset => reset,
not_cs => not_cs,
ck_out => ck_RAPS_base_ser
);
div_xadc_ser : Counter_7bit
port map (ck_master => ck_RAPS_base_ser,
counter7 => s_counter_ser,
reset => reset
);
selez_ck_adc_ser : mux3bit
port map (ck_master => ck_RAPS_base_ser,
counter => s_counter_ser,
n_campioni => n_campioni,
ck_out => s_ck_RAPS_ser
);
ck_RAPS <=
'0' when (reset='1') else
s_ck_RAPS_par when ((reset='0') and (ADC_Ser_Par='0')) else
s_ck_RAPS_ser when ((reset='0') and (ADC_Ser_Par='1')) else
'0';
ck_ADC <= ck_master and (not reset);
end Behavioral;
105
Appendice
----------------------------------------------------------------------------------- Module Name: Counter - Behavioral
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Counter_7bit is
Port ( ck_master, reset : in STD_LOGIC;
counter7 : out std_logic_vector (6 downto 0)
);
end Counter_7bit;
architecture Behavioral of Counter_7bit is
signal t : std_logic_vector(6 downto 0);
begin
process (ck_master,reset)
begin
if (reset = '1') then
t <= "0000000";
elsif(ck_master'event and ck_master = '0' and reset = '0') then
t <= t + "0000001";
end if;
end process;
counter7 <= t;
end Behavioral;
----------------------------------------------------------------------------------- Module Name: mux3bit - Behavioral
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity mux3bit is
Port ( ck_master : in std_logic;
counter : in std_logic_vector (6 downto 0);
n_campioni : in STD_LOGIC_vector (2 downto 0);
ck_out : out STD_LOGIC);
end mux3bit;
architecture Behavioral of mux3bit is
begin
with n_campioni select
106
Appendice
ck_out <=
ck_master when "000", --ck
counter(0) when "001", --ck/2
counter(1) when "010", --ck/4
counter(2) when "011", --ck/8
counter(3) when "100", --ck/16
counter(4) when "101", --ck/32
counter(5) when "110", --ck/64
counter(6) when "111", --ck/128
'0' when others;
end Behavioral;
----------------------------------------------------------------------------------- Module Name: divide_sckl_x15 - Behavioral
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity divide_sclk_x15 is
Port ( sclk, reset : in STD_LOGIC;
ck_out : out STD_LOGIC;
not_cs : out std_logic
);
end divide_sclk_x15;
architecture Behavioral of divide_sclk_x15 is
component conta_fronti is
Port ( sclk, reset : in STD_LOGIC;
salita : out std_logic_vector (3 downto 0)
);
end component;
signal r : std_logic_vector(3 downto 0);
begin
contafronti : conta_fronti
port map ( sclk => sclk, reset => reset, salita => r);
process (r,sclk)
begin
if falling_edge(sclk) then
case r is
when "0000" =>
ck_out <= '0';
not_cs <= '1';
when "0001" =>
ck_out <= '0';
not_cs <= '0';
when "0010" =>
ck_out <= '0';
not_cs <= '0';
107
Appendice
when "0011" =>
ck_out <= '0';
not_cs <= '0';
when "0100" =>
ck_out <= '0';
not_cs <= '0';
when "0101" =>
ck_out <= '0';
not_cs <= '0';
when "0110" =>
ck_out <= '0';
not_cs <= '0';
when "0111" =>
ck_out <= '0';
not_cs <= '0';
when "1000" =>
ck_out <= '1';
not_cs <= '0';
when "1001" =>
ck_out <= '1';
not_cs <= '0';
when "1010" =>
ck_out <= '1';
not_cs <= '0';
when "1011" =>
ck_out <= '1';
not_cs <= '0';
when "1100" =>
ck_out <= '1';
not_cs <= '0';
when "1101" =>
ck_out <= '1';
not_cs <= '0';
when "1110" =>
ck_out <= '1';
not_cs <= '0';
when "1111" =>
ck_out <= '0';
not_cs <= '0';
when OTHERS =>
end case;
end if;
end process;
end Behavioral;
----------------------------------------------------------------------------------- Module Name: conta_fronti - Behavioral
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
108
Appendice
entity conta_fronti is
Port ( sclk, reset : in STD_LOGIC;
salita : out std_logic_vector (3 downto 0)
);
end conta_fronti;
architecture Behavioral of conta_fronti is
signal r : std_logic_vector (3 downto 0);
begin
process (sclk,reset,r)
begin
if (reset = '1' or r = "1111") then
r <= "0000";
else
if (rising_edge(sclk)) then
r <= r + '1';
end if;
end if;
end process;
salita <= r;
end Behavioral;
----------------------------------------------------------------------------------- Module Name: notccs - Behavioral
---------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity generate_notcs is
port ( reset,sclk : in std_logic;
ck_RAPS : in STD_LOGIC;
notcs : buffer std_logic
);
end generate_notcs;
architecture Behavioral of generate_notcs is
109
Appendice
signal ck_rit : std_logic;
signal not_ck : std_logic;
begin
not_ck <= not ck_RAPS;
ck_rit <= ck_RAPS when (rising_edge(sclk)) else ck_rit;
notcs <= not_ck and ck_rit and (not reset);
end Behavioral;
110
Bibliografia
[1] A. Einstein, Teoria dei quanti di luce
[2] CERN, The Compact Muon Solenoid CMS, http://cmsinfo.cern.ch/outreach/
[3] Università degli Studi di Perugia - Daniele Biagetti, tesi di laurea: Caratterizzazione elettrica e
funzionale di sensori di radiazione a pixel attivi integrati in tecnologia CMOS da 0.18μm, 2006
[4] http://www.diei.unipg.it/PAG_PERS/passeri/raps/raps.htm
[5] Università degli Studi di Perugia – M. Macellari Tesi di laurea: Analisi di rumore in sensori di
radiazione integrati in tecnologia CMOS
[6] Università degli Studi di Perugia - Nicola Cirulli, Tesi di Laurea: Progettazione e sviluppo di
una scheda PCB per il test di un sensore integrato di radiazione (RAPS), 2002
[7] Università degli Studi di Perugia - Gino Cannistraro, Tesi di Laurea: Sviluppo di un sistema di
caratterizzazione per sensori di radiazione (basato su interfaccia USB), 2005
[8] http://www.linear.com
[9] http://www.pcbexpress.com/
[10] http://www.xilinx.com/
[11] http://www.opalkelly.com/
[12] http://www.agilent.com