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