111
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

Corso di Laurea in Ingegneria Elettronica - infn.it Corso di Laurea in Ingegneria Elettronica Tesi di Laurea Progetto di una scheda PCB per la caratterizzazione ... Il lavoro svolto

Embed Size (px)

Citation preview

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..........................................................................................................................................41. 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..............................................................................................................91APPENDICE......................................................................................................................................93

Power Area.....................................................................................................................................93ADC, connessioni con il chip e con la struttura di test .................................................................97Chip RAPS03 ..............................................................................................................................103VHDL..........................................................................................................................................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.

8

Figura 1: Fotodiodo in tecnologia CMOS con strato epitassiale

Figura 2: Fotodiodo in tecnologia CMOS senza strato epitassiale

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

9

Figura 3: Active Pixel Sensor (APS) Figura 4: Active Pixel Sensor (APS) Layout

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

follover, 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.

10

Figura 5: Uscita di un pixel APS interessato dal passaggio di una particella β

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.

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

Figura 6: RAPS03

1 Sensori di radiazione

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

Figura 7: Strutture RAPS03

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.

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

Figura 8: Pixel ESA L Figura 9: Pixel ESA S

1 Sensori di radiazione

● 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

Figura 10: Matrice G1P0

Figura 11: Pixel G1P0

Figura 12: Matrice 32 x 32 G1P0L Figura 13: Pixel G1P0L

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

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 V dd realizzando così una

configurazione tradizionale del pixel APS a 3 transistor.

16

Figura 14: Circuito ESA_S 4T

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.

17

Figura 15: PCB a singola faccia

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

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.

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

Figura 16: PCB a doppia faccia

Figura 17: PCB Multilayer

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.

21

Figura 18: PCB SMD (Surface Mount Device)

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.

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.

23

Figura 19: Esempio di schematico: Voltage reference

Figura 20: Simulazione del voltage reference di figura 19

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.

24

Figura 21: Importazione del file .MNL della Power Area in Orcad Layout

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 :

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

Figura 22: Placement and Routing della Power Area

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.

26

Figura 23: Flusso di lavoro dallo schematico fino al gerber file

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.

28

Figura 24: Capture CIS

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.

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

Figura 25: Property Editor

3 Il Software OrCAD

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.

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

line risultano spesso insufficienti al completamento di tutte le proprietà richieste da Capture per

30

Figura 27: Ricerca on-line del componenteFigura 28: Selezione Database locale o remoto

Figura 26: Ricerca ed inserimento di componenti contenuti nelle librerie predefinite

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.

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

Figura 29: ERC MatrixFigura 30: DRC

3 Il Software OrCAD

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

Figura 31: Generazione della netlist

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.

33

Figura 32: Schema riassuntivo del flusso di progetto di una scheda PCB con CAD elettronico

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 ± 5 V 100 mW 10 mA

AD7274 3.3 V 20 mW 6 mA

HA5033 ± 5 V 210 mW 21 mA

OP275 ± 5 V 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 drop-

out. 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]:

➢ LT1763 V outdigitale= 3.3V , I out

max= 500 mA , V d= 300 mV , Noise = 20 V RMS

➢ LT1763 V outdigitale= 1.8V , I out

max= 500 mA , V d= 300 mV , Noise = 20 V RMS

➢ LT1764 V outanalogica= 3.3V , I out

max= 3 A , V d= 340 mV , Noise = 40 V RMS

➢ LT1764 V outanalogica= 1.8V , I out

max= 3 A , V d= 340 mV , Noise = 40 V RMS

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

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

Figura 33: Polarizzazione LT1763

Figura 34: Polarizzazione LT1764

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.

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

Figura 35: Circuito di polarizzazione (LTspice/Switcher CAD III)

4 Progetto della Power Area della scheda PCB

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

Figura 36: Schematico per la simulazione Power Area (LTspice/Switcher CAD III)

4 Progetto della Power Area della scheda PCB

Dalla formula:

RS =V S−V F

I F considerata una I F = 10 mA

si ottengono i valori nominali delle resistenze serie RS = 170 per V S = 3.3 V e

RS = 20 per V S = 1.8 V . In figura vengono mostrate le simulazioni ottenute con il

software LTspice/Switcher CAD III:

42

Figura 37: Simulazione tensioni analogiche 1.8 V e 3.3 V

Figura 38: Simulazione tensioni digitali 1.8 V e 3.3 V

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 :

43

Figura 39: Schematico Orcad Capture LT1763-3.3

Figura 40: Schematico Orcad Capture LT1764-3.3

4 Progetto della Power Area della scheda PCB

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

Figura 41: Schematico Orcad Capture LT1763-1.8

Figura 42: Schematico Orcad Capture LT1764-1.8

4 Progetto della Power Area della scheda PCB

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

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

45

Figura 43: PSpice model editor, modello spice LT1763-1.8

Figura 44: Tensione 1.8 V digitale e relativa corrente

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:

46

Figura 45: Tensione di modo comune, OP275

4 Progetto della Power Area della scheda PCB

Di seguito viene riportata la tensione di uscita:

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:

47

Figura 46: Tensione di uscita OP275

Figura 47: Tensioni di riferimento

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:

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

Figura 48: Alimentazione, filtri tensioni d'ingresso e chiusura delle masse analogica e digitale

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:

49

Figura 49: Regolatori di tensione analogici

4 Progetto della Power Area della scheda PCB

50

Figura 50: Regolatori di tensione digitali

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 nmax −V out I GND∗V i n max

T J = P∗JA e T J max = T JT 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 outmax è 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 nmax = 5V , V out = 1.8 V , I GND = 0.04 A , I outmax = 1.4 A

Il valore I GND è stato ricavato per approssimazione dalla seguente grafico presente nel datasheet:

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

Figura 51: Corrente sul pin di ground LT1764

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 outmax 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 nmax = 5V , V out = 3.3 V , I GND = 0.01 A ,

I outmax = 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 nmax = 5V , V out = 1.8 V , I outmax = 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 nmax = 5V , V out = 3.3 V , I outmax = 0.225 A

I GND risultano in entrambe i casi trascurabili come illustrato nelle figure52 e 53.

53

5 Postprocessing e preparazione del layout

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

54

Figura 52: Corrente sul pin di ground LT1763-1.8

Figura 53: Corrente sul pin di ground LT1763-3.3

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)

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.

55

Figura 55: Macroblocchi della scheda PCB, viene evidenziata la collocazione ed il layout della Power Area

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.

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.

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

Figura 56: Footprint LT1764

Figura 58: Footprint connettore di alimentazioneFigura 59: Footprint ferrite

Figura 57: Footprint LT1763

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.

57

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)

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.

58

Figura 61: Top layer: piazzamento e routing

Figura 62: Layer alimentazioni

5 Postprocessing e preparazione del layout

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

Figura 63: Layer masse analogica e digitale

Figura 64: Bottom layer: routing

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.

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.

60

Figura 65: Scheda PCB di test per il chip RAPS03 (Power Area in evidenza)

Figura 66: Blocchi costituenti la scheda PCB

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

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

Figura 67: Struttura di test: Board RAPS03, Opal Kelly XEM3010 e AD9238 (evaluation board)

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.

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

Figura 68: Array simmetrici Xilinx (famiglia XC)

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.

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.

64

Figura 70: Programmazione delle connessioni Antifuse

Figura 69: Programmazione delle connessioni Fuse

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.

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

65

Figura 71: Programmazione delle connessioni EEPROM

Figura 72: Programmazione delle connessioni SRAM

6 Struttura di test basata su FPGA

6.2. Opal Kelly XEM3010

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

Figura 73: Opal Kelly XEM3010 completa di breakout board BRK3010

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:

67

Figura 74: Schema a blocchi XEM3010

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.

68

Figura 75: Board RAPS03 e relativo supporto

Figura 76: Supporto per alloggiamento Opal Kelly XEM3010

6 Struttura di test basata su FPGA

6.3. FPGA Xilinx Spartan-3

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.

69

Figura 78: Attributi del dispositivo scelto (in evidenza)

Figura 77: FPGA Spartan-3 (XC3S1500)

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

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

71

Figura 79: FPGA Spartan-3: Elementi logici programmabili fondamentali

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:

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

Figura 80: Flusso di progetto FPGA

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.

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:

74

Figura 81: ISE 9.1i: Scelta del top-level source

Figura 82: ISE 9.1i: Selezione del dispositivo e scelta del linguaggio di programmazione

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.

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

Figura 83: ISE 9.1i

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:

● 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

Figura 84: ISE 9.1i: Processes

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.

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

Figura 85: ISE Simulator: Simulazione logica del Clock Manager

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.

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

Figura 86: Front Panel

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:

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

Figura 87: Schematico Clock Manager

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 2ncampioni 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).

80

Figura 88: Front Panel: Configurazione dei PLL

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.

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

Figura 89: Configurazione della frequenza di clock

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:

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:

82

Figura 91: Timing diagram AD7274

Figura 90: Timing diagram AD9238

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

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

Figura 92: Sincronizzazione segnali notcs e ck_RAPS_ser

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.

84

Figura 94: Blocchi logici implementati

Figura 93: Blocchi logici: Top Level

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

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

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

Figura 96: Simulazione logica ADC parallelo

Figura 95: ISE 9.1i Simulatore logico

6 Struttura di test basata su FPGA

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

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

Figura 97: Simulazione logica ADC seriale

Figura 98: LabView: Virtual instrument per il test del clock manager e della logica degli ADC

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.

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

Figura 99: Xilinx PACE: Package pins XC3S1500 - FG320

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

88

Figura 101: ADC Parallelo acquisizione di 2 campioni per ciclo di clock del RAPS03

Figura 100: ADC Parallelo acquisizione di 1 campione per ciclo di clock del RAPS03

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.

89

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

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

digitale 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_7bitport map (ck_master => ck_master,

counter7 => s_counter_par, reset => reset );

not_ck_master <= ck_master;

selez_ck_adc_par : mux3bitport 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_x15port map (sclk => ck_master,

reset => reset, not_cs => not_cs, ck_out => ck_RAPS_base_ser );

div_xadc_ser : Counter_7bitport map (ck_master => ck_RAPS_base_ser,

counter7 => s_counter_ser, reset => reset );

selez_ck_adc_ser : mux3bitport 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') elses_ck_RAPS_par when ((reset='0') and (ADC_Ser_Par='0')) elses_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) thencase r iswhen "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 issignal r : std_logic_vector (3 downto 0);

begin

process (sclk,reset,r)begin

if (reset = '1' or r = "1111") thenr <= "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