UNIVERSITÀ DEGLI STUDI DI ROMA “TOR VERGATA” Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di laurea in Fisica Tesi di laurea Analisi e sviluppo di un sensore ottico neuromorfo VLSI per il calcolo di campi di velocità Candidato Relatore Fabrizio Ortolani Dott. Gaetano Salina Anno Accademico 2003-2004 A me. Indice INTRODUZIONE....................................................................................................... 1 1 ELETTRONICA NEUROMORFA .............................................................. 6 1.1 IL MODELLO BIOLOGICO ............................................................................. 6 1.1.1 DUE ASPETTI IMPORTANTI: L’ ADATTAMENTO E LA SELETTIVITÀ ............. 10 1.2 DALLA NEUROBIOLOGIA ALLA MICROELETTRONICA .............................. 11 1.3 ELETTRONICA DIGITALE ED ELETTRONICA NEUROMORFA ..................... 12 2 VLSI ANALOGICO: DISPOSITIVI E CIRCUITI .................................. 17 2.1 2.1.1 VLSI ANALOGICO: LA TECNOLOGIA CMOS............................................ 17 WEAK INVERSION ...................................................................................... 21 2.1.2 IL MODELLO EKV..................................................................................... 22 2.2 ERRORI DEI TRANSISTOR ........................................................................... 24 2.2.1 ERRORI STATICI......................................................................................... 24 2.2.2 ERRORI DINAMICI...................................................................................... 25 2.3 CIRCUITI NEUROMORFI .............................................................................. 26 3 SISTEMI VISIVI NEUROMORFI ............................................................ 30 3.1 3.1.1 LA RETINA .................................................................................................. 30 I FOTORECETTORI...................................................................................... 32 3.1.2 CELLULE ORIZZONTALI ............................................................................. 32 3.1.3 CELLULE BIPOLARI ................................................................................... 32 3.1.4 AMACRINE................................................................................................. 33 3.1.5 GANGLIONI ................................................................................................ 33 3.2 MICROELETTRONICA DI UN SENSORE OTTICO .......................................... 33 3.2.1 FOTORECETTORI ........................................................................................ 34 3.2.2 LAYER RESISTIVO ..................................................................................... 37 3.2.3 LA RETE WINNER-TAKE-ALL (WTA)....................................................... 38 3.3 TIPOLOGIE DI SENSORI E ALGORITMI DI CALCOLO .................................. 40 3.3.1 CORRISPONDENCE METHODS ..................................................................... 42 3.3.1.1 Facilitate-and-Sample (FS).................................................................... 43 3.3.1.2 Facilitate-Trigger-Inhibit (FTI) ............................................................. 44 3.3.2 GRADIENT METHODS ................................................................................ 46 3.4 LIMITI DI APPLICAZIONE ............................................................................ 47 3.4.1 LO SPAZIO ................................................................................................. 47 3.4.2 IL TEMPO ................................................................................................... 49 3.4.3 IL PROBLEMA DELL’APERTURA .................................................................. 50 3.4.3.1 Motion field e optical flow .................................................................... 51 4 4.1 IL SENSORE ................................................................................................ 56 ARCHITETTURA E FINALITÀ ....................................................................... 56 4.2 SCELTE DI PROGETTAZIONE ....................................................................... 57 4.3 LA MATEMATICA DEL SENSORE ................................................................ 60 4.3.1 ACCORGIMENTI E RESTRIZIONI .................................................................. 62 4.4 SVILUPPO DELLA TESI ................................................................................. 63 5 LA REALIZZAZIONE ELETTRONICA ................................................. 67 5.1 BIAS CONSTRAINT....................................................................................... 67 5.1.1 DIFFERENTIAL PAIR................................................................................... 68 5.2 SMOOTHNESS CONSTRAINT ........................................................................ 72 5.3 BRIGHTNESS CONSTRAINT ......................................................................... 74 5.3.1 MOLTIPLICATORE DI GILBERT ................................................................... 77 5.3.2 IL CIRCUITO DI FEEDBACK ........................................................................ 83 5.4 IL VETTORE VELOCITÀ .............................................................................. 84 5.5 TEST ............................................................................................................ 86 CONCLUSIONI ....................................................................................................... 90 Introduzione I traguardi raggiunti dall’elettronica negli ultimi decenni hanno aperto nuove e vaste prospettive per la ricerca. Si è potuto da allora assaporare l’idea di studiare i fenomeni biologici in funzione di una loro possibile riproduzione elettronica. Fra gli studi biologici sensoriali, quelli sulla vista sono probabilmente i più frequenti e più importanti, in quanto ad essa è dedicata la maggiore fra le aree sensoriali del cervello. Questi nuovi “sistemi intelligenti” richiedono però, una larga potenza computazionale, unità di calcolo parallelo, e design a basso consumo. Le soluzioni convenzionali al problema dell’analisi di un’immagine, ad esempio quelle che si avvalgono dell’utilizzo di DSP, richiedono un enorme flusso di dati provenienti dalla scansione e dalla trasmissione dei parametri di ogni singolo pixel. Ne consegue un notevole carico per l’intero apparato, nonché una stabilità del sistema fortemente dipendente dalla velocità di calcolo. I sistemi VLSI neuromorfi ispirati a modelli biologici, presentano una possibile soluzione a questa richiesta sia per le altre capacità di calcolo che per le ridotte potenze richieste. -1- Il dispositivo oggetto di questa tesi, si colloca proprio nel contesto dello studio dei sistemi analogici neuromorfi, in particolare dei sensori ottici, implementati tramite la tecnica VLSI; lo scopo finale è di realizzare un sistema in grado di rilevare, nel suo campo visivo, l’oggetto che possiede la velocità più elevata, agganciarlo e seguirlo nei suoi spostamenti. Un’ulteriore, fondamentale caratteristica è la capacità di spostare l’attenzione su un altro bersaglio allorché questo possieda maggior velocità rispetto al precedente. Un sensore ottico neuromorfo riesce ad aggirare efficacemente i problemi che affliggono le altre possibili realizzazioni in quanto è in grado di preprocessare l’immagine direttamente al livello dei pixel, riducendo drasticamente la mole di informazione trasmessa ai successivi stadi di analisi. Nei chip ottici neuromorfi, i fotorecettori, le memorie, i nodi di elaborazione condividono lo stesso spazio fisico sulla superficie di silicio, la funzione di elaborazione è determinata dalla struttura della sua architettura e dal modo in cui i pixel sono tra loro interconnessi. Poiché ogni pixel elabora un’informazione basata su un segnale locale dovuto anche ai suoi vicini, ogni operazione è completamente parallela e distribuita. Un’altra importante caratteristica di questi sensori è la totale asincronia delle operazioni: la presenza di un clock introduce un alias temporale che può compromettere significativamente le operazioni in real-time. Un metodo ulteriormente efficace di alleggerire il carico nel caso in cui l’informazione fornita dai sensori sia maggiore della capacità di calcolo del sistema, è quello di selezionare una sottoregione in input ed elaborarla, passando poi da una sottoregione all’altra. In natura quest’espediente è chiamato attenzione selettiva; nel nostro caso, quindi, l’attenzione dovrà spostarsi di volta in volta solo su di un soggetto la cui caratteristica è di essere il più veloce tra i presenti. L’individuazione di ciascun soggetto è realizzata selezionandone nella scena i contorni in movimento che possiedono un elevato contrasto, indipendentemente dalla luminosità dell’ambiente circostante. Per ognuno viene calcolata la velocità ed in seguito, tramite una rete winner-take-all (WTA), il -2- dispositivo aggancia il più veloce seguendolo finché non sopraggiunga nel campo visivo un qualche oggetto con maggiore velocità. Le applicazioni possibili per un sensore ottico intelligente in grado di discriminare i soggetti che vede, in base alle necessità di utilizzo, sono innumerevoli e vanno dall’individuazione di soggetti in movimento, come in questo caso, alle comunicazioni, dall’analisi spaziale a quella terrestre alla realizzazione di robot in grado di seguire pattern o adattarsi alle condizioni dell’ambiente circostante. Questa tesi è volta a progettare una architettura in grado di analizzare gli stimoli provenienti da una matrice di pixel e fornire in uscita una mappa, sotto forma di campo vettoriale, delle velocità presenti nel campo visivo del sensore in modo da poterle analizzare e discriminare successivamente tramite una rete WTA. Il lavoro sperimentale di tesi è stato preceduto da un accurato studio dei sensori ottici neuromorfi e da una dettagliata ricerca sulle realizzazioni già esistenti. Questa importante fase preliminare è servita per acquisire le nozioni necessarie per l’approccio a questo tipo di dispositivi, ma soprattutto per comprendere quale fosse la strada migliore da percorrere per raggiungere gli scopi del progetto: la molteplicità delle problematiche associate ai sensori ottici può vanificare, se non vengono fatte le giuste considerazioni del caso, tutti gli sforzi fatti per l’intera realizzazione. Una volta individuata la soluzione ottimale, bisognava cercare di riadattarla alle nostre esigenze, anche questo compito ha riservato non poche difficoltà dovute in particolare alle diverse tecnologie utilizzate e finalità di utilizzo dei progetti dai quali si è preso spunto. Una corretta analisi delle grandezze in gioco (dimensioni dei mosfet e parametri di utilizzo) e l’introduzione di nuovi elementi nei circuiti primitivi hanno reso possibile superare questi ostacoli ed ha portato allo sviluppo finale del dispositivo per il calcolo delle velocità, obiettivo ultimo di questa tesi. Questa sarà articolata come segue. Dapprima verranno introdotti i concetti base e le radici storiche che hanno portato all’interessamento e alle nostre conoscenze attuali in materia di elettronica neuronale, -3- introdurremo le caratteristiche salienti di questo tipo di approccio ed il perché và preferito, in questo caso, alle implementazioni “classiche”. Nel secondo capitolo ci occuperemo degli aspetti più tecnici: la tecnologia utilizzata, il modo in cui viene realizzata; vedremo quali sono le equazioni che regolano il funzionamento dei mosfet con il modello EKV, i loro range di funzionamento e quali sono gli errori che più affliggono la progettazione. Alla fine del capitolo faremo una breve trattazione di un importante principio, il principio translineare, che spesso semplifica la comprensione del funzionamento di un circuito nonché la sua ideazione. Il terzo capitolo è dedicato alla descrizione del modello biologico della retina, dei suoi componenti e delle sue funzionalità e di come queste vengano riprodotte in maniera elettronica. Saranno infatti introdotti i principali costituenti di un sensore ottico neuromorfo con particolare riguardo agli oggetti di maggior interesse per il nostro progetto. Questa tesi è anche frutto di una approfondita indagine sulle implementazioni esistenti in campo di sensori ottici, una intera sezione di questo capitolo è volta all’elencazione e alla descrizione dei principali algoritmi con i quali diversi gruppi di ricerca hanno realizzato i loro sensori ottici ed i calcoli sulle velocità. Il capitolo si chiude con un ultimo paragrafo molto importante che riguarda i problemi maggiori che si incontrano nella realizzazione di un sensore ottico e che vanno attentamente presi in considerazione nel momento in cui ci si accinga a progettare questo tipo di dispositivi, in quanto ne vincolano sia l’utilizzo che il funzionamento. Il quarto capitolo si apre con la descrizione dell’architettura del nostro sensore, del suo funzionamento e delle sue finalità. Delineerò le motivazioni che hanno portato alle nostre scelte di progettazione e quali sono i problemi a cui andremo incontro. In un paragrafo ci occuperemo della matematica che regola il funzionamento del sensore e nei successivi mostreremo come le equazioni ricavate, vengano tradotte in elettronica ponendo le basi per il capitolo successivo nel quale, ad una descrizione dettagliata degli elementi costituenti il circuito complessivo, si accompagnano i test effettuati in fase di progettazione. Il capitolo si chiude con la simulazione del circuito arrangiato in una matrice di pixel, stimolato dal passaggio di oggetti con diverse velocità. Dai grafici si vede quello che ci si aspettava: delle correnti -4- proporzionali alla velocità che quindi caratterizzano gli oggetti presenti nel campo visivo. -5- 1 Elettronica Neuromorfa Il progetto di una macchina intelligente in grado di simulare il comportamento umano è da sempre una grande sfida e rimane per ora un obiettivo molto distante. Questo è in parte dovuto alla nostra incompleta conoscenza di questi meccanismi ed in parte alle restrizioni fisiche sulla densità delle connessioni e sulla capacità di integrazione imposto dal layout dei circuiti elettronici. Gran parte di queste operazioni vengono svolte dai più piccoli organismi biologici con relativa facilità, il che evidenzia e dà speranza sulla possibilità di realizzazione di tali progetti. Nel campo dell'ingegneria neuromorfa, l’ispirazione deriva proprio dallo studio di modelli e circuiti neurobiologici, che vengono implementati attraverso blocchi analogici imitandone le capacità e funzionalità. Questa sezione ha lo scopo di fornire una panoramica generale ma concisa di quella che in microelettronica viene definita Elettronica Neuromorfa. Inizieremo con una breve digressione sui sistemi neurologici con particolare attenzione ai neuroni. Verranno analizzati i meccanismi di trasmissione dei dati e della loro elaborazione. Di seguito vedremo come i risultati dell'analisi biologica, siano stati implementati con la tecnica VLSI analogica, studiandone dapprima i concetti base e poi i circuiti fondamentali che costituiscono il punto di partenza di un qualsiasi progetto di questo tipo. 1.1 Il Modello Biologico Camillo Golgi aveva dimostrato nel 1883 che il sistema nervoso, per svolgere le sue funzioni, deve essere strutturato come una forma “reticolare”; Charles Sherrington aveva suggerito nel 1897 che i neuroni comunichino tramite sinapsi e che pertanto il sistema nervoso altro non sia che una rete sinaptica; negli anni Trenta infine Santiago Ramon y Cayal aveva raffinato quel modello spiegando come i neuroni si scambiano segnali elettro-chimici che dall’assone -6- dell’uno fluiscono nella dendrite dell’altro (e mai viceversa) e come la memoria risieda proprio nelle sinapsi che congiungono i neuroni (e non nei neuroni stessi). La teoria “reticolarista” venne definitivamente confermata solo negli anni Cinquanta, quando il microscopio elettronico rese possibile vedere le sinapsi. Figura 1: Architetture neurali - Cellule Orizzontali di una retina di coniglio a mostrare l'intricata interconnettività neurale (sinistra) ed una rappresentazione schematica di un neurone con evidenziato il flusso di dati. Il processo di “integrate and fire” del neurone si basa su delicati equilibri ionici tra l’interno e l’esterno della sua membrana in particolare ioni Sodio (Na+) e Potassio (K+) e sull’attività delle sinapsi. Il citoplasma all’interno della cellula è, in condizioni normali, polarizzato, con un potenziale rispetto all’esterno di circa –80mV. Se una corrente sufficiente è iniettata nel verso della depolarizzazione fino a una soglia di –40mV, viene emesso un impulso. Questa corrente è proprio dovuta alle variazioni sulle conduttività della membrana relative alle due specie ioniche nel momento in cui, tramite le sinapsi, si propaga lungo un albero dendritico un segnale di attivazione proveniente dai neuroni vicini. Nel 1943 Warren McCulloch e Walter Pitts, basandosi su quelle idee, proposero il modello secondo cui il neurone poteva essere immaginato come un’unita’ logica a “soglia”: quando il segnale di input supera un certo “valore di -7- soglia”, il neurone emette il suo segnale di output. I due dimostrarono poi come era possibile implementare tramite neuroni binari ogni espressione logica finita. Per neurone “binario” s’intende un’unita’ astratta che si attiva se e soltanto se l’input totale che riceve raggiunge il valore di soglia proprio dell’unita’ stessa. Viene detto “binario” perché si presenta soltanto in due stati: attivo e non attivo (quando è attivo, emette sempre lo stesso output). Un neurone può ricevere input da due tipi di sinapsi: eccitatorie e inibitorie. Figura 2: La sinapsi - un meccanismo neurobiologico per la comunicazione e l'elaborazione del segnale. Se una delle seconde è attiva, il neurone non può diventare attivo. Con questo semplice schema è possibile costruire “circuiti neuronali” che realizzano le operazioni booleane di AND, OR e NOT. Una rete di tali neuroni costituisce una complessa macchina booleana, in grado di esprimere ed eseguire complicate espressioni logiche. L’intuizione più importante era però un’altra: McCulloch e Pitts si resero conto che l’”intelligenza” di una tale rete era dovuta al fatto di -8- essere una rete, al fatto di contenere migliaia di collegamenti, e non certo all’intelligenza del singolo neurone, che è anzi limitato a due soli stati (attivo e inattivo). Benché l’idea del neurone potesse rendere conto di come venisse generato un comportamento casuale dell’organismo, rimaneva del tutto misterioso come quello stesso potesse essere in relazione con i milioni di input pervenuti alle varie zone del cervello, input che possono talvolta essere persino in contraddizione fra di loro. In altre parole, restava da stabilire come dal caos di miliardi di neuroni potesse nascere l’ordine di un comportamento intelligente a fronte di una data situazione. Nel 1959 McCulloch e Pitts formularono allora il principio della “ridondanza del comando”, in base al quale il comando viene trasferito alla zona del cervello che riceve l’informazione più indicativa. I neuroni di quella zona prendono l’iniziativa e, per attivazione ricorsiva di neuroni ad essi collegati, la rete neurale produce alla fine un comportamento ben definito. Il punto saliente di questo modello è che in realtà nessun neurone possiede l’informazione globale necessaria a stabilire quale sia l’azione da compiere. Nel 1949 Donald Hebb formulò la legge secondo cui la connessione fra due neuroni viene “rinforzata” ogni volta che è usata, in altre parole ogni volta che uno dei due neuroni invia un segnale ,lungo quella connessione, all’altro. Hebb ipotizzava pertanto che le connessioni non fossero fisse, ma fossero variabili nel tempo a causa di un qualche tipo di metabolismo non meglio identificato. Non solo: Hebb ipotizzava anche che esse variassero secondo una legge che premiava semplicemente quelle più frequentemente usate. In tal modo Hebb forniva una prima spiegazione di come il cervello poteva “imparare” nuove nozioni. Per effetto di queste e altre scoperte si venne consolidando un modello neurale del cervello secondo il quale esisteva una rete di cellule nervose (circa cento miliardi) fra di loro connesse (circa 200.000 miliardi di connessioni). Tramite le interconnessioni ciascuna cellula (ciascun neurone) riceve segnali elettrochimici (input) da altre cellule (altri neuroni). Il neurone integra gli input e genera un nuovo segnale elettrochimico (output) che è funzione di tali input. L’output viene -9- inviato lungo altre interconnessioni ad altri neuroni.Le interconnessioni di input sono chiamate “dendriti”, quelle di output “assoni”. La resistenza del citoplasma nervoso fa sì che il segnale “muoia” dopo breve con la conseguente perdita di gran parte dell’informazione; per ovviare a questo inconveniente l’assone è provvisto di un sistema di amplificazione. In alcuni esseri il segnale viene riattivato con continuità lungo tutto l’assone, in quelli più evoluti invece, quest’ultimo è ricoperto da una “membrana mielinica” che diminuisce la capacità tra il citoplasma e il fluido extracellulare a vantaggio della velocità di trasmissione. Lo scudo di mielina presenta dei nodi (nodi di Ranvier) che funzionano da ripetitori del segnale. Ogni input è “pesato” secondo la forza della relativa connessione. La forza delle connessioni è dinamica e varia secondo l’esperienza (legge di Hebb). Pertanto una connessione molto “usata” sarà più forte di una poco “usata”, e questo avrà degli effetti sugli input che vi passano. La percezione sensoriale costituisce una serie di input che scatenano una propagazione di segnali all’interno della rete di neuroni. Alla fine della catena sono attivati dei neuroni periferici che emettono i segnali di output. Questa è la risposta del cervello a quella esperienza. 1.1.1 Due aspetti importanti: l’ Adattamento e la Selettività Tra le diverse qualità che appartengono ai sistemi neuronali, quelle che maggiormente ci interessano ai fini del progetto in esame sono la capacità di adattamento della risposta e la selettività delle informazioni input. Ad esempio, il limitato range dinamico di output di un neurone sensoriale, richiede che questo venga riadattato per soddisfare i cambiamenti dell’ambiente circostante. Attraverso questo adattamento, lo stesso limitato set di outputs può essere utilizzato per rappresentare i differenti stimoli dei differenti contesti. Questa abilità è illustrata con un esempio nella figura seguente. - 10 - Figura 3: Adattamento - Secondo il range di valori dello stimolo, il neurone riadatta l'output per fornire i valori più esatti. I grafici rappresentano le probabilità per diversi stimoli (sx) e la risposta adattiva del neurone (dx). Questa capacità del neurone viene riprodotta a livello dei fotorecettori di un sensore ottico per ottimizzare il range di visibilità e rendere la risposta attiva su diversi ordini di grandezza. L’altra notevole capacità dei sistemi neurali è la selettività dei dati. E’ stato mostrato che alcuni gruppi di neuroni sono sensibili solo a stimoli specifici. Per esempio nella corteccia visiva primaria (V1), troviamo neuroni che rispondono selettivamente a strisce aventi una precisa orientazione; oppure nelle aree MT, V4, IT, neuroni che rispondono al movimento , al colore o alla forma. Anche in questo caso la cosiddetta attenzione selettiva è una delle caratteristiche fondamentali del nostro sensore ottico, in grado di discriminare gli oggetti nel campo visivo in base alla loro velocità. 1.2 Dalla Neurobiologia alla Microelettronica Ci sono profonde differenze tra hardware elettronici e reti neurali: i primi sono quasi tutti programmati, contengono cioè le istruzioni di quello che devono esattamente fare, le reti neurali non dispongono di precise istruzioni sui loro compiti. Le reti neurali, ad un livello molto basso, spostano le loro connessioni e modificano i loro collegamenti, in modo che la macchina funzioni secondo la volontà per cui è stata programmata. I dispositivi elettronici, invece, vengono - 11 - programmati in maniera software in modo da funzionare secondo la volontà del loro progettista. A prima vista l’intento di ricreare in maniera artificiale una così complessa struttura biologica come il cervello o le funzioni degli organi a lui vicini, sembra cedere in diversi punti. I sistemi viventi sono costituiti da cellule molli tridimensionali; l’hardware elettronico è costruito con materia inorganica su schede bidimensionali. I sistemi viventi sono alimentati da reazioni biochimiche; gli altri da trasformatori collegati alla rete. I sistemi viventi utilizzano impulsi nervosi di circa 100mV con variazioni temporali dell’ordine di qualche millisecondo; l’elettronica fa transizioni tra 0v e 5V in pochi nanosecondi. Ma una delle cose più sconcertanti è che in un sistema complesso come il cervello, la distruzione di una piccola percentuale di cellule non causa una diminuzione nelle prestazioni, mentre il mancato funzionamento anche di un solo transistor in un computer causa la perdita completa di funzionamento. In entrambi troviamo però la capacità di manipolare le informazioni, il fatto che i segnali siano rappresentati da differenze di potenziale e che questi viaggino su fili conduttori avvolti in un eccellente isolante. Inoltre esiste in entrambi il concetto di “elemento attivo”, amplificazione e feedback. Il feedback è il fenomeno per cui l’output di un organismo viene restituito in input all’organismo stesso. E’ il feedback che consente l’“omeostasi”, il fenomeno per cui un organismo tende a compensare le variazioni nell’ambiente esterno per mantenere una propria stabilità interna. E’ il feedback, in altre parole, che presiede ai fenomeni di adattamento dell’organismo all’ambiente. 1.3 Elettronica Digitale ed Elettronica Neuromorfa La complessità e il parallelismo degli algoritmi biomorfi e le loro applicazioni in real-time escludono ogni possibile utilizzo di processori seriali ed implementazioni software. I dispositivi DSP ad alta velocità sono un'alternativa per poter eseguire questi calcoli in real-time. Ma queste architetture, sebbene - 12 - veloci, devono essere connesse a sensori analogici ed i segnali continui nel tempo provenienti da questi sensori devono essere campionati a frequenze molto elevate per ridurre gli alias; inoltre, questi dati devono essere inviati su bus di lunghezza finita dal sensore al processore e questo diventa un grosso impedimento alla performance generale del sistema. Ancora, i sistemi digitali presentano notevoli vantaggi del caso si richiedono soluzioni numeriche precise, il sistema nervoso e gli algoritmi neuromorfi accettano rumore e disturbi in input e forniscono risultati approssimati. Progettare questo tipo di sistemi è quindi fondamentalmente differente dal progettare sistemi digitali. La natura analogica dei sistemi neurali può quindi essere meglio implementata sfruttando design VLSI analogici ad alta velocità e densità. Il concetto di analisi ispirate a fenomeni biologici (bio-inspired) nasce diversi decenni fa. La scintilla che accese l'interesse per questo tipo di studi fu il lavoro di un neurobiologo di nome Paul A. Weiss nei primi anni 40. Dopo aver osservato l'intricata architettura della rete neurale, egli evidenziò che questa offriva un "grado di adattività e robustezza mai visto". Pioniere nell'implementazione di circuiti neurali hardware fu Carver Mead alla fine degli anni '80 che pubblicò il libro "Analog VLSI and Neural Systems”, nel quale introduceva i rivoluzionari sistemi “neuromorfi”, coniando appositamente il termine che avrebbe descritto da quel momento i sistemi VLSI (Very Large Scale Integration) contenenti circuiti analogici che simulano le architetture neurobiologiche presenti nel sistema nervoso. Il seguente inciso è tratto dal suo articolo “Neuromorphic Electronic Systems”. "I sistemi biologici per l'elaborazione delle informazioni operano su principi completamente differenti da quelli che a molti ingegneri sono familiari. Per molti problemi, in particolare quelli in cui i dati in input sono affetti da processi di degenerazione e l'elaborazione può essere specificata in diverse maniere relative, le soluzioni biologiche sono di molti ordini di grandezza più efficaci di quelle che è possibile implementare usando dei metodi digitali. Questo - 13 - vantaggio può essere attribuito principalmente all'uso di principi e fenomeni fisici elementari come elementi computazionali primitivi, e alla rappresentazione dell'informazione data da valori relativi di segnali analogici, piuttosto che da valori assoluti di segnali digitali. Questo approccio richiede tecniche adattive per mitigare gli effetti delle differenze tra i componenti. Questo tipo di adattamento appartiene naturalmente ai sistemi che imparano dal loro ambiente circostante. I sistemi analogici adattivi su larga scala sono molto robusti alla degradazione dei componenti e agli errori dei sistemi convenzionali, e necessitano di molta meno potenza. Per questa ragione ci si può aspettare che la tecnologia analogica adattiva sia in grado di utilizzare tutte le potenzialità della fabbricazione di dispositivi sul wafer di silicio” Scaturisce da alcune semplici considerazioni che per quanto innovative ed efficienti possano essere le nostre tecnologie, la natura è sempre in grado di superarci. Questo fatto può essere evidenziato mettendo a confronto una delle più efficienti architetture neurobiologiche, il cervello umano, con gli ultimi ritrovati della tecnologia digitale adottando diversi criteri di performance. Senza dubbio il cervello umano è uno dei sistemi neurobiologici conosciuti, più complessi; riesce ad effettuare circa 3,6x1015 operazioni sinaptiche al secondo. A dispetto di questa immensa potenza di calcolo, questo consuma soltanto 12 watts, valore determinato attraverso misure d'afflusso di sangue cerebrale e di consumo di ossigeno. Questi valori implicano un'efficienza neurale di circa 3x1014 operazioni sinaptiche al secondo per ogni watt di potenza consumata. Facendo un parallelo con la nostra moderna tecnologia, i processori DSP che offrono la soluzione più efficiente per consumo e capacità di calcolo sono in grado di effettuare 2x1010 operazioni “floating point” al secondo per ogni watt. Uno potrebbe dire che il confronto sia sleale in quanto le operazioni floating point effettuate dalla DSP, sono più complesse ed offrono una maggiore precisione; d'altro canto, le reti sinaptiche effettuano contemporaneamente - 14 - moltiplicazioni e filtri spazio-temporali, entrambi operazioni complesse per l'analisi digitale. Osservando un processo biologico a livello neurale, esso può sembrare impreciso ed estremamente lento. Questa mancanza di velocità è però compensata da un parallelismo sostanziale dell'architettura, senza che venga compromessa la precisione. La risposta neurale può essere classificata come un meccanismo di media statistica. Questo tipo di approccio è totalmente opposto a quello digitale ma fornisce un vantaggio fondamentale. I sistemi neurobiologici sono estremamente robusti e immuni dai piccoli guasti dei componenti. Infatti, mentre in un sistema digitale la rottura di un singolo componente compromette l'intero sistema , quelli neurobiologici sono in grado di riadattarsi e continuare a funzionare senza perdita di efficienza. La tab.1 mette a confronto un'architettura neurale con un’ implementazione elettronica convenzionale (digitale): Neuronale Elettronica Rappresentazione Analogica Digitale Processing Parallelo Seriale Consumo Basso Alto Velocità Bassa, Alta1 Alta Apprendimento Adattivo Prestabilito Precisione Approssimata Accurata Sensibilità Ridondante Sensibile all’errore Organizzazione Monolitica Modulare Connettività Fan-out elevato Scarsamente connesso Geometria 2.5 Dimensioni2 2 Dimensioni Tabella 1: Confronto tra Architettura Digitale e Neurale 1 Dipende dal processo a cui ci si riferisce. 2 Sebbene geometricamente sia tridimensionale, gli viene spesso attribuita una dimensione 2.5, dovuta al fatto che la struttura è arrangiata in piani (2D) interconnessi solo in alcuni punti. - 15 - Dagli anni ‘80 i progressi sono stati sempre più rapidi: vista, udito, e altri modelli bio-sensoriali sono stati implementati con successo. Fra questi, gli studi sulla vista sono quelli più frequenti; questo non sorprende, in quanto dei 1011 neuroni del cervello (Koch, 1999), molti sono dedicati alla visione più che ad ogni altra funzione sensoriale (Zigmond et al. 1999). La visione è un processo complesso ed i sistemi neuromorfi progettati realizzano diverse funzioni visuomotorie. Queste includono la stima del movimento, l’inseguimento di bersagli e di calcolo di collisioni. - 16 - la navigazione, 2 VLSI Analogico: Dispositivi e Circuiti Gli studi sulle architetture neurali possiedono una duplice finalità: da una parte cercano di comprendere le proprietà computazionali dei sistemi biologici neurali utilizzando modelli implementati con la tecnologia VLSI analogica; dall'altra si cerca di implementare dei dispositivi per applicazioni tecnologiche, utilizzando le caratteristiche e le potenzialità già note dei sistemi biologici. Abbiamo visto come, per diverse ragioni, il design con la tecnica VLSI risulta il più efficace allo scopo. Da un punto di vista puramente pratico si ha la possibilità di strutturare sistemi decisamente complessi in grado di rispondere in real-time agli stimoli e di avvicinarsi molto ai modelli biologici; questo avviene principalmente perché ci sono dirette analogie tra un singolo transistor sotto soglia e un neurone: • conservazione della carica; • amplificazione; • andamento esponenziale; • soglia di innesco; • integrazione dei segnali; utilizzando queste analogie possiamo costruire architetture parallele estremamente compatte, a basso consumo, in grado di emulare in real-time e asincronamente le proprietà dei neuroni reali o di una rete sensoriale. 2.1 VLSI analogico: La Tecnologia CMOS La Tecnologia CMOS è il punto di riferimento per il design a basso consumo di potenza (rispetto ai transistor bipolari). Questo è in parte dovuto all'alta densità di integrazione e in parte alla corrente di gate virtualmente uguale a zero. - 17 - Il transistor MOS (acronimo di Metallo-Ossido-Semiconduttore) si presenta costruito fisicamente come nella figura che segue. Figura 4: Struttura del MOSFET Il dispositivo, considerando ad esempio i transistori MOS a canale P, è costituito da un substrato di silicio N e da due zone di silicio P. Mentre il substrato N è a basso drogaggio (circa 1015 atomi/cm3 ), le due zone P che costituiscono la Source (sorgente) e il Drain (drenaggio) sono ottenute per diffusione con forte drogaggio (1018÷1020 atomi/cm3). Figura 5: Simbolo grafico di un MOS di tipo n con l'indicazione delle tensioni e della corrente. - 18 - E' ben noto il fenomeno di induzione elettrostatica per cui se un corpo elettrizzato A si avvicina ad un altro corpo conduttore B scarico, sulla superficie di quest'ultimo si genera una distribuzione di cariche tale che sulla parte superficiale di B più vicina ad A si manifesta una carica di segno opposto alle cariche di A e una carica dello stesso segno sulla parte più lontana. Il fenomeno dell'induzione elettrostatica ha un ruolo fondamentale nel funzionamento del MOSFET. Infatti, variando la tensione applicata all’elettrodo di gate si varia per effetto di campo elettrico (Field Effect) la distribuzione e la densità delle cariche nella zona del substrato sottostante, compresa fra le due regioni drogate P, o N, zona che viene detta canale. Sulla superficie dello strato semiconduttore, il campo elettrico generato dalla tensione applicata al gate, ha l'effetto di indurre, a seconda del segno della tensione, cariche di segno opposto e di provocare quindi un accumulo oppure uno svuotamento delle cariche maggioritarie presenti negli strati superficiali della regione a semiconduttore. La modulazione della densità di carica superficiale da parte della tensione applicata può passare perciò tre diverse fasi: accumulo, svuotamento e inversione. La fase di accumulo, ad esempio in un p-mos, è dovuta ad una tensione di gate molto positiva e tale da indurre nel semiconduttore n sottostante molti portatori maggioritari che in pratica isolano completamente le due zone p di drain e source. Si considerino ora substrato, drain e source cortocircuitati a terra e si applichi al gate una tensione VGS negativa come indicato nella figura 6. Gate e substrato costituiscono allora le armature di un condensatore piano con lo strato di SiO2 come dielettrico. La carica negativa si accumula sul gate e quella positiva nel substrato. Inizialmente la carica negativa nel substrato di tipo n si manifesta tramite la formazione di una zona di svuotamento con conseguente esclusione delle lacune al di sotto del gate come per una giunzione p-n, ma all’aumentare della carica accumulata sul gate, aumenta la carica affacciata dall’altro lato nel semiconduttore ed essendo questa, dello stesso segno delle due diffusioni di drain - 19 - e source, forma un canale di conduzione tra queste permettendo il passaggio di corrente. Figura 6: MOS - regione di svuotamento e formazione del canale Nella tecnologia CMOS (Complementary MOS) c’è la possibilità di integrare su un singolo wafer di silicio sia mosfet di tipo p che di tipo n. Non essendo possibile impiantare mosfet di tipo diverso su uno stesso substrato, si ricorre all’espediente di fabbricare i mosfet p, come ad esempio nel nostro caso, o quelli di tipo n, all’interno di “isole” o pozzetti (well). Figura 7: tecnologia CMOS - sezione schematica degli strati di semiconduttore che realizzano nello stesso dispositivo mos di tipo n e p. - 20 - Il comportamento di un mosfet rispetto alla VGS è legato ad una grandezza intrinseca del dispositivo, un valore di tensione VTO, che agisce da soglia e da luogo a due distinte risposte rispetto alle variazioni sul gate: esponenziale per VGS al di sotto di VTO e quadratica per valori superiori. Per la maggior parte delle applicazioni neuromorfe, i dispositivi MOS sono polarizzati nella regione operativa sottosoglia, denominata anche di weak inversion. 2.1.1 Weak Inversion Se la differenza di potenziale tra gate e source (VG-VS) di un MOS è minore della tensione di soglia VTO, si dice che questo opera in regime sotto soglia o di weak-inversion. Fino a poco tempo fa, i progettisti di circuiti analogici ignoravano completamente questo regime di lavoro, ritenendo i MOS semplicemente “spenti”. Figura 8: Grafico della corrente di output (drain-to-source) Id, in funzione della tensione di gate. Sotto soglia, la corrente di output (drain-to source) ID del transistor è in realtà molto piccola, ma non nulla. La caratteristica più importante di questo - 21 - regime è la relazione esponenziale che lega la corrente ID al potenziale d’ingresso VGS (a differenza della dipendenza quadratica nella zona sopra soglia). In questo regime di lavoro, il principio fisico alla base del flusso di corrente è la diffusione. Lo stesso meccanismo che permette agli ioni di fluire attraverso i canali passivi della membrana cellulare dei neuroni. Per questa ragione i circuiti progettati con transistors che operano in weak-inversion, possono modellizzare abbastanza accuratamente le sinapsi biologiche, i neuroni e le reti. Riassumendo quindi possiamo dire che lavorare nella regione sotto soglia presenta i seguenti vantaggi: • il regime di lavoro si ottiene con bassi voltaggi di alimentazione e piccolissime correnti (10-14 4 10-7 Ampere), queste caratteristiche di operazione si prestano intrinsecamente ad un design a bassa potenza. • La relazione esponenziale tra la tensione gate-source e la corrente di drain (dovuta alla dominante corrente di diffusione) permette di usare la teoria Translineare o di Gilbert per implementare il calcolo analogico. • L'inversione debole fornisce la massima transconduttanza per un dato valore della corrente di drain. Di conseguenza, la massima amplificazione intrinseca è ottenuta se il transistor lavora in questa condizione. 2.1.2 Il Modello EKV Questo è il modello più adeguato per il design neuromorfo; originariamente sviluppato da Enz, Krummenacher e Vittoz, per la simulazione analogica a bassa potenza. Questo offre una metodologia di design intuitiva utilizzando un numero minimo di parametri rendendo possibile un calcolo per il funzionamento del circuito al primo ordine, più semplice e pratico. Possiamo classificare il numero di parametri di tre gruppi (cfr.Tab. 2 e 3): • 3 parametri di design al primo ordine (Vto, n e β)) • 13 parametri intrinseci del dispositivo - 22 - • 20 parametri estrinseci del dispositivo Il modello si basa inoltre su una “static long channel theory”: questa implica la simmetria geometrica dei dispositivi, nonché il fatto che tutte le tensioni siano riferite al bulk. Includendo i principali effetti al secondo ordine abbiamo: • modulazione della lunghezza del canale • riduzione della mobilità dovuta a un campo verticale • saturazione della velocità • ionizzazione per impatto • effetto di short-and-narrow channel Nelle tabelle seguenti sono riassunte le espressioni più importanti ed i principali parametri per il calcolo al primo ordine del modello EKV. Simbolo Descrizione Unità di misura Tipo W/L Coefficiente geometrico Design - µ Mobilità dei portatori nel canale Processo cm 2V −1 s −1 C OX Capacità del gate per unità di area Processo Fm −2 K Cost. di Boltzmann ( 1.3807 × 10 −23 ) Costante JK −1 T Temperatura Assoluta Ambiente K q Carica Elettronica (1.60217733 × 10 −19 ) Costante C k Fattore di Subthreshold slope Processo - VTO Tensione nominale di soglia Processo V V0 Tensione di Early Processo V VG ,VS , VD Tensioni di gate, source e drain Design V Tabella 2: Parametri e costanti di base del modello EKV, per il calcolo degli effetti al primo ordine. - 23 - Descrizione Coefficiente di Transconduttanza (β) Equazione β= W µC OX L KT (tipicamente 25.9mV @ 300K) q Potenziale Termico (UT) UT = Corrente di Saturazione (I0) I 0 = 2kβU T2 Corrente di Drain (ID) ID = IF − IR kV − V S I F = I 0 exp G UT kV − V D I R = I 0 exp G UT Tabella 3: Espressioni base del modello EKV (analisi in continua) per il calcolo degli effetti al primo ordine. 2.2 Errori dei Transistor Nel momento in cui si progetta un dispositivo neuromorfo, si richiederà che la struttura possieda una delle caratteristiche fondamentali di questi oggetti: l'essere immune dagli errori dei transistor. Qui di seguito sono riportati alcuni tra i principali errori che possono minare il design di un dispositivo neuronale. 2.2.1 Errori Statici Sono dovuti principalmente al fatto che i MOSFET non sono dispositivi ideali rispetto alle variazioni dei processi. Tali errori possono essere divisi in due - 24 - classi principali; sistematici (effetto early ed effetto di body) e random (transistor mismatch). • Effetto Early: quest'errore è causato dalla resistenza finita di output del dispositivo dovuta alla modulazione di lunghezza del canale. Quest'errore più significativo che si incontra in un'implementazione neuromorfa. • Effetto di Body (o di Bulk): quest'errore viene introdotto quando la tensione di soglia viene alterata da un cambiamento della tensione nel bulk (o substrato). Questo può essere in effetti tenuto ad una tensione comune a tutti i dispositivi o utilizzato come gate addizionale o alternativo, talvolta infatti viene chiamato back gate. Se usato come input, è meno efficiente del gate effettivo, come espresso dalla seguente formula (valida in regime di weak inversion). V + (k − 1)V BS I D = I D 0 exp GS kU T Dove: I D = corrente di drain; I D 0 = coefficiente pre-esponenziale della corrente di drain; VGS = tensione gate-source; VBS = tension bulk-source; U T = potenziale termico; • Transistor Mismatch: le variazioni di risultati possono essere talvolta attribuite alla non uguaglianza dei MOSFET, ad esempio per quanto riguarda la tensione di soglia e/o il valore di β (amplificazione). 2.2.2 Errori Dinamici Questi errori dipendono dal punto di lavoro e dalle condizioni in cui opera il dispositivo. - 25 - • Rumore Termico: è causato dal movimento termico random ed elettroni nel canale. Questa è la sorgente dominante degli errori dinamici dei dispositivi operanti in strong inversion (grandi correnti) in2 = 4kTB R Dove: k = costante di Boltzmann; T = temperatura assoluta; R = resistenza; B = larghezza di banda del rumore; • Shot Noise: questo è causato dal tempo random di arrivo degli elettroni in un flusso di corrente sulla barriera di potenziale. È la sorgente di errore dominante nei dispositivi che operano in weak inversion (piccole correnti). in2 = 2qI D B Dove: I D = corrente diretta; B = larghezza di banda del rumore; q = carica dell’elettrone; • Flicker Noise: è dovuto a stati inattesi di energia prodotti da contaminazioni di difetti del cristallo. 2.3 Circuiti Neuromorfi L’ implementazione di un processo bio-inspired richiede che la computazione venga fatta a livello del dispositivo. In altre parole, le proprietà del dispositivo sono plasmate in maniera da soddisfare le funzioni o i processi matematici richiesti e poiché i dispositivi operano sotto soglia, la loro funzione di trasferimento è esponenziale. Questa stessa è precisamente quella che si trova in biologia nei tessuti nervosi, dove una modulazione dell'energia della barriera ionica con un voltaggio, produce una corrente proporzionale in maniera esponenziale a tale voltaggio. - 26 - Questa caratteristica tensione-corrente ci permette di utilizzare i dispositivi operanti in weak inversion, in configurazioni chiamate circuiti Translineari. Tali circuiti sono alla base di molti neuromorphic circuit blocks che possono essere divisi in due grandi categorie: statici e dinamici. Alla prima categoria appartengono circuiti che operano, ad esempio, delle semplici operazioni matematiche come moltiplicazione, estrazione di radice, calcolo del modulo di un vettore a partire dalle sue componenti, quest'ultimo utilizzato nel nostro dispositivo; oppure operazioni più complesse come il caso di una rete Winner Take All (WTA). Nella seconda categoria troviamo elementi come il classico neurone “integrate and fire”, i circuiti di ritardo o di memoria. Il termine translineare fu coniato da Gilbert per indicare i dispositivi, in particolare i transistor bipolari a giunzione (BJT), la cui transconduttanza è lineare nella corrente di collettore. A partire da questa assunzione viene poi formulato quello che si chiama principio translineare. Possiamo vedere subito che un elemento translineare ideale (TE) che abbia una dipendenza dalla tensione di gate di tipo esponenziale, ha una transconduttanza lineare rispetto alla corrente di collettore: ηV I = λI S e UT dove IS è una corrente di scala, λ è una costante adimensionale di scala per IS, η è una costante adimensionale che scala la tensione di gate V e UT è il potenziale termico. Se calcoliamo la transconduttanza otteniamo gm = ∂I = λI S e ∂V ηV che in effetti è funzione lineare della corrente. - 27 - UT × η ηI = UT UT Il principio translineare discende direttamente dall'applicare il principio di Kirchhoff ad una maglia chiusa di un circuito costruito con tali dispositivi. Dividendoli in orari (CW) e antiorari (CCW) in base all'orientazione della freccia dell’emettitore rispetto al verso di percorrenza della maglia ed assumendo per semplicità che questi operino tutti alla stessa temperatura, scaturisce l'espressione: ∏ n∈CCW In N −N = I S CCW CW λn ∏ n∈CW In λn che nel caso di un egual numero di dispositivi orari e antiorari diventa: ∏ n∈CCW In = λn ∏ n∈CW In λn possiamo quindi enunciare il principio translineare come segue: “in una maglia chiusa comprendente un ugual numero di elementi translineari ideali orari e antiorari, il prodotto delle densità di corrente (relative) che scorrono attraverso gli elementi antiorari è uguale al prodotto delle densità di corrente (relative) attraverso gli elementi orari” Un dispositivo MOSFET sottosoglia, polarizzato in saturazione, con il source ed il bulk connessi insieme, possiede una caratteristica corrente-tensione esponenziale. In questo caso, λ corrisponde alla frazione W/L e η è uguale a k. Accanto ai circuiti translineari esiste anche quello che viene chiamato current-mode processing, nel quale i segnali e le variabili di stato sono rappresentate dalle correnti piuttosto che dalle tensioni. I vantaggi sono notevoli in quanto includono una larga banda passante, un elevato range dinamico e una spiccata utilizzabilità nei dispositivi a basso consumo. Un esempio di applicazione di questo tipo di processing è il log-domain filtering, ossia un tipo di analisi logaritmica dei segnali in gioco. Questa è stata applicata con successo ai - 28 - fotorecettori nel nostro dispositivo, per adattare il regime di risposta su diversi ordini di grandezza. - 29 - 3 Sistemi Visivi Neuromorfi Il termine “retinomorphic vision system”, originariamente utilizzato da Bohaen, si riferisce ai sistemi elettronici progettati con lo scopo di simulare i comportamenti della retina biologica; ora, più in generale, a questa categoria appartengono tutti quei dispositivi progettati con lo scopo di una qualsiasi percezione e applicazione visiva. In realtà, questi sistemi, talvolta chiamati retine, hanno spesso ben poca relazione con quella biologica se non per quelle caratteristiche peculiari che rendono il modello biologico l’esempio di una architettura complessa ma compatta ed estremamente efficiente. I punti chiave di questi dispositivi sono: l'elaborazione visiva continua, in real-time e fatta a livello dei pixel. Introdurremo brevemente la retina biologica, passando in rassegna le caratteristiche dei singoli elementi che la costituiscono. Vedremo poi, come le sue principali funzioni siano state emulate con circuiti analogici, trattando con particolare enfasi quegli aspetti che saranno fondamentali per il nostro progetto. La seconda parte del capitolo sarà dedicata allo studio di alcuni dei principali algoritmi utilizzati nei sensori ottici per la rilevazione del movimento ed il calcolo della velocità. Chiuderà il capitolo un’importante sezione sugli errori e le difficoltà che si incontrano nella realizzazione di un sensore ottico e che hanno pesantemente influito sulle nostre scelte di progettazione. 3.1 La Retina La retina è un sottile strato di tessuto neurale che riveste parzialmente l’orbita oculare. I segnali che arrivano al cervello devono portare informazioni su un range di illuminazione di vari ordini di grandezza: la parziale indipendenza dal grado di illuminazione è in gran parte frutto di uno stadio analogico di elaborazione proprio a livello di quest’organo. - 30 - Figura 9: Architettura del sistema visivo umano - rappresentazione cellulare della retina (sx) e varie parti del cervello interessate dalla vista (dx). La luce è tradotta in tensione dai fotorecettori. Il segnale viene poi trasmesso, attraverso le sinapsi triple, alle cellule bipolari e di qui ai gangli, l’output della retina. Queste connessioni attraversano due strati di cellule trasversali alla direzione di propagazione del segnale. I due layer sono formati dalle cellule orizzontali e dalle amacrine. Le prime, appena sotto i fotorecettori (outer-plexiform layer), insieme con questi e alle cellule bipolari, rappresentano l’informazione attraverso segnali analogici lentamente variabili. Le seconde, sopra i gangli (inner-plexiform layer), hanno il compito di computare il movimento e sono provviste di canali attivi, che propagano segnali molto piccati in seguito ad ampi stimoli. L’elemento chiave nell’outer-plexiform layer è la sinapsi tripla; possiamo riassumere le operazioni di computazione in termini dei tre componenti alla sinapsi: • I fotorecettori operano il logaritmo dell’intensità; • Le cellule orizzontali formano un network resistivo che media spazialmente e temporalmente l’output dei fotorecettori; • L’output delle cellule bipolari è proporzionale alla differenza tra i due precedenti segnali; - 31 - 3.1.1 I Fotorecettori Sono gli elementi di input della retina situati nell’ Outer Nuclear Layer (ONL), che generano un segnale di risposta all'arrivo di un fotone. Questi vengono classificati in due tipi: bastoncelli (95%) e coni (5%). • Bastoncelli: sono relativamente piccoli (1-2µm), sono responsabili dell'individuazione della luce acromatica. Il loro output è un valore discreto “triggerato” sulla ricezione di un singolo fotone. • Coni: sono relativamente grandi (3-5µm) e sono responsabili della rivelazione delle caratteristiche cromatiche della luce. Ne esistono tre tipi: accordarti alle lunghezze d'onda dei fotoni corte (blu), medie (verde) e lunghe (rosso). Il loro output è un valore analogico proporzionale alla quantità di fotoni ricevuti con un certo tempo di integrazione (sampling window). 3.1.2 Cellule Orizzontali Occupano il lato esterno dell’ Inner Nuclear Layer (INL) ed interagiscono esclusivamente con l’ Outer Plexiform Layer (OPL). Le cellule orizzontali formano un network resistivo che media temporalmente e spazialmente l'output dei fotorecettori. Queste cellule sono principalmente dei neuroni senza assone; il loro output viene fornito come feedback inibitore alle sinapsi dei fotorecettori. È questo processo il principale responsabile delle capacità adattive temporali e spaziali della retina e quindi del suo eccellente range dinamico di funzionamento. 3.1.3 Cellule Bipolari Queste si trovano nel mezzo dell’ inner nuclear layer. Prendono il loro input dalle cellule fotorecettrici ed i loro output sono connessi ai ganglioni; tali output sono proporzionali alla differenza tra i segnali dei fotorecettori e quelli delle - 32 - cellule orizzontali. Ci sono due classi di cellule bipolari: i tipi ON e OFF, sensibili rispettivamente ad onset ed offset di luce. Queste cellule sono responsabili del riconoscimento dei contorni dell'accrescimento del contrasto. 3.1.4 Amacrine Occupano lo strato interno dell’ inner nuclear layer ed interagiscono esclusivamente con l’ Inner Plexiform Layer (IPL). Ne esistono più di 30 tipi e le loro funzioni principali comprendono: • generazione di risposte transienti • selettività direzionale dei ganglioni • inibizione laterale stazionaria • controllo del guadagno • segnalazione delle sovrapposizioni tra i canali ON e OFF 3.1.5 Ganglioni Queste cellule occupano il layer più interno, il Ganglion Cell Layer (GCL), e ricevono i loro input dalle cellule bipolari. Esistono due classi di ganglioni una a campo largo l'altra a campo stretto, e come per le cellule bipolari esistono i tipi ON e OFF. Ogni tipo di ganglione proietta una particolare immagine della retina, che viene utilizzata per diversi scopi, trasmessa a diverse parti del cervello attraverso le fibre degli assoni che formano il nervo ottico. 3.2 Microelettronica di un Sensore Ottico L'approccio alla realizzazione di un sensore ottico può essere, come abbiamo già visto, dettato da due scopi: il primo è quello di simulare un modello biologico al fine di scoprire quali siano i meccanismi che regolano tale modello; l'altro quello di ricreare, talvolta simulando, altre semplificando, i comportamenti - 33 - e le potenzialità di oggetti naturali, utilizzandole e adattandole al fine di ottenere un dispositivo che risponda a determinate caratteristiche funzionali, che abbia i vantaggi di un sistema naturale, ma i cui risultati finali non debbano avere necessariamente riscontri in natura. Un sensore ottico è composto da una unità “sensoriale” che interfaccia il chip con l’ambiente esterno, i fotorecettori, e da una parte elettronica più o meno complessa, che gli permette di realizzare i compiti per cui è stato progettato; di questa architettura, che differenzia sostanzialmente ciascun chip, fa parte invece un oggetto spesso comune a molti e che avvicina, simulandone alcuni comportamenti, il modello elettronico a quello biologico: la rete resistiva. Introdurremo poi un circuito particolare che simula una funzione tipica della corteccia cerebrale, l’attenzione selettiva, e che sarà uno dei costituenti fondamentali del sensore: la rete Winner-Take-All (WTA). 3.2.1 Fotorecettori Il primo livello di computazione per un dispositivo visivo è la traduzione di un segnale luminoso in un segnale elettrico. Il più semplice fotorecettore è costituito da un fototransistor che fornisce una corrente che è funzione della luce incidente. Questa funzione è solitamente una compressione non lineare assimilabile ad un logaritmo. Il mapping logaritmico permette di comprimere il range di variazione dell’irradianza ambientale, che copre oltre sei ordini di grandezza, in una escursione minore aumentando l’efficienza del sensore e limitando fortemente problemi di saturazione. - 34 - Figura 10: schema di un fotopixel logaritmico semplice - il fotodiodo funziona da generatore ideale di corrente mentre il mosfet, lavorando sottosoglia, traduce la corrente in una tensione in modo logaritmico. La scelta delle caratteristiche costruttive e funzionali del fotorecettore è legata al suo utilizzo all'interno del sensore e quindi alla possibilità di realizzare a livello del fotorecettore stesso, operazioni complesse che snelliscano il lavoro dei livelli successivi fornendo segnali già elaborati con il minor ingombro possibile sulla superficie di silicio. Nel nostro caso il pixel utilizzato è il frutto di lavori passati e di un accurato studio svolto in una precedente tesi [14]. Il pixel in questione, traduce l’intensità luminosa incidente fornendo in uscita tre segnali attraverso i quali è possibile codificare il contrasto temporale e spaziale: un segnale è proporzionale al logaritmo del livello stazionario dell’irradianza, gli altri due ai contrasti positivi e a quelli negativi. Canali separati per la codifica di aumenti e diminuzioni della luminosità si ritrovano, come abbiamo visto, nelle retine biologiche. - 35 - Lo schema elettrico del pixel è riportato nella figura seguente. Figura 11: pixel logaritmico derivativo – il pixel fornisce le due correnti Ion e Ioff per transienti positivi (chiaro-scuro) o negativi (scuro-chiaro) ed un valore Vout proporzionale in maniera logaritmica alla fotocorrente . Il pixel in questione è di tipo logaritmico con feedback al quale viene aggiunto un ramo derivativo raddrizzatore che fornisce le correnti Ion e Ioff. Tale ramo è costituito dai due mosfet Mon e Moff e dalla capacità C. Nello stato stazionario, esso non altera in modo significativo il feedback del circuito. Durante i transienti della fotocorrente, invece, la Vout varia più velocemente della Vfb attivando Mon o Moff. In questo modo scorre, a seconda del verso del transiente, la corrente Ion o Ioff che, caricando o scaricando la C riporta la Vfb al livello della Vout. Si ottengono così, due misure della derivata temporale della fotocorrente, una per transienti positivi (chiaro-scuro), l’altra per quelli negativi (scuro-chiaro). Nella figura seguente è mostrato il risultato della risposta del pixel ad uno stimolo con il 33% di contrasto, eseguita con il simulatore SPECTRE. - 36 - Figura 12: Pixel - risposta del pixel ad uno stimolo con 33% di contrasto. Si vede come il pixel reagisca alle variazioni di contrasto fornendone un segnale derivativo, mentre non venga attivato da livelli costanti di luminosità. 3.2.2 Layer Resistivo La retina opera, al passaggio della luce, i primi interventi di filtraggio del segnale. In figura 13a è illustrato in maniera semplificata il primo layer di questo organo e la sua schematizzazione elettrica. Figura 13: Retina e layer resisitivo - a) rappresentazione pittorica della retina e dei suoi "componenti elettronici"; b) RC-network . - 37 - Sono presenti i fotorecettori (coni e bastoncelli), le cellule orizzontali (connesse ai coni e alle altre cellule orizzontali da sinapsi elettriche), le cellule bipolari (connesse ai coni e alle cellule orizzontali). Come proposto da C. Mead, un modello semplice del layer delle cellule orizzontali può essere realizzato modellizzando ogni sinapsi con una resistenza, e le membrane delle cellule con una capacità. Il modello ottenuto è una griglia di resistori e capacitori (RCnetwork) come in figura 13b. Considerando nella figura precedente una distribuzione di input Ui,j connessi alla rete da conduttanze λ1, gli output saranno i valori Vi,j sui rispettivi nodi connessi tra loro da conduttanze λ2; la dinamica del circuito si ottiene applicando la legge di Kirchhoff ad un nodo: [ ( ) ( 1 Vi,j = λ1 U i,j − V i,j + λ 2 V i + 1 ,j + V i −1 ,j + V i,j + 1 + V i,j − 1 − 4V i,j C )] La rete RC attua una media locale degli output dei fotorecettori, questo sarà un elemento fondamentale del nostro progetto in quanto provvederà a fornire uno dei termini dell’algoritmo di calcolo che il nostro dispositivo dovrà computare. 3.2.3 La Rete Winner-Take-All (WTA) Le reti winner-take-all sono degli elementi non lineari in grado di riconoscere,in un set di input, quello con valore massimo. La rete sfrutta l’ accoppiamento tra punti primi vicini: questa infatti possiede dei collegamenti di tipo eccitatorio-inibitorio tra le celle che gli consente di seguire saldamente l’oggetto “vincitore” senza essere distratta dagli altri, ed allo stesso tempo di essere in grado di spostare l’attenzione nel momento in cui vi siano cambiamenti significativi nel campo visivo. - 38 - Figura 14: WTA - schema di una rete winner-take-all con tre celle vicine con i rispettivi controlli inibitori ed eccitatori. Come possiamo vedere dalla figura precedente, l’architettura è completamente parallela e ciascuna cella è connessa alle vicine tramite due mosfet controllati dall’esterno: Vex controlla l’accoppiamento più o meno forte tra le celle e Vinh caratterizza il funzionamento della rete che è in grado di estrarre più massimi locali (Vinh -> 0) o un solo massimo (Vinh -> Vdd). Il comportamento della WTA è realizzato dai quattro mosfet in basso che, in assenza dello specchio di corrente si riducono al circuito seguente, Figura 15: WTA - cella base di una rete winner-take-all. - 39 - Min funziona da generatore di corrente con I = e kVc , l’altro ramo funziona da source follower quindi Vc segue Vout, e a sua volta Vout varia, affinché attraverso Min scorra la corrente I1. In una WTA a due celle il potenziale Vc è condiviso dalle due con il risultato che questo seguirà la Vout più alta e quindi quella con ingresso in corrente più elevato. Queste deduzioni, applicate ad una rete con n celle portano chiaramente al risultato desiderato. Figura 16: WTA - winner-take-all a due celle, il potenziale Vc segue l'ingresso con valore più elevato. 3.3 Tipologie di Sensori e Algoritmi di Calcolo Un dispositivo ottico può avere innumerevoli applicazioni, dal volo aereo al calcio robotico. La molteplicità di applicazione è data dalla flessibilità con cui possono essere utilizzate le diverse configurazioni e gli algoritmi. I dispositivi possono essere implementati su un singolo chip o dividendo i processi su diversi chip, questo per ovviare a problemi di spazio fisico di integrazione o perché, data - 40 - la loro flessibilità, i singoli componenti possono essere adattati a diversi scopi. In particolare il nostro progetto rientra nei “Single chip focal plane processors”. Possiamo riassumere questo tipo di chip in tre classi di utilizzo: • Motion chips; o Correlation-based velocity sensors; o Optical-flow based velocity sensors; o Models of insect visual motion systems; • Tracking chips; • Task- specific vision chips; Alla prima classe appartengono i sensori di movimento che realizzano il calcolo di direzione del movimento o del flusso delle velocità, questo si attua attraverso diversi algoritmi che saranno descritti tra breve e che comprendono anche quello di nostro interesse. Nella seconda classe rientrano quegli oggetti in grado di riconoscere dei pattern o altri oggetti in movimento e seguirli. Per la loro idea di base non sono però assimilabili al nostro progetto, in quanto di solito si riferiscono a sensori montati su robot per i quali si studia la capacità di orientarsi o di muoversi in ambienti naturali. Nell’ultima rientrano tutti i chip che non hanno collocazione precisa ma sono stati studiati per una particolare applicazione, come per esempio il nostro, il quale si avvale di algoritmi precisi ma il cui compito non è solo il calcolo di velocità o la percezione di un oggetto. I principali algoritmi per il riconoscimento del moto appartengono agli “Intensity-based methods”. Si basano, cioè, sull’ irradianza dell’immagine per stimare il movimento all’interno della stessa. Si dividono in due gruppi: • Corrispondence methods • Gradient methods - 41 - La distinzione deriva dall’idea di fondo profondamente diversa che hanno i due tipi di approcci e dalle finalità che si prefiggono. Quindi la loro scelta, influenza pesantemente le difficoltà che si incontreranno nei successivi stadi di analisi nonché la buona riuscita del progetto. I primi estraggono particolari caratteristiche, come i bordi o gli spigoli, e stimano la velocità seguendole nel tempo e/o nello spazio; i secondi sfruttano la relazione tra la velocità e i rapporti tra le derivate spaziali e temporali della distribuzione di luminosità dell’immagine. Di seguito verranno riportati alcuni esempi per ciascuna tipologia di approccio, tratti da articoli e pubblicazioni di progetti esistenti. L’intento è di aprire una panoramica sulle precedenti realizzazioni, sulle idee di fondo di ciascuna di esse, sui metodi di analisi e implementazione della visione di oggetti in movimento, per poter giustificare ed inquadrare nel giusto contesto le scelte del nostro progetto. 3.3.1 Corrispondence methods I sensori costruiti su questo tipo di algoritmi, basano i loro calcoli sulla corrispondenza, o correlazione tra pixel vicini, in riferimento ai cambiamenti generati dal passaggio degli oggetti presenti nel campo visivo. In particolare viene estratto il tempo di transito (time-of-travel) di una specifica caratteristica degli oggetti (bordi, spigoli…) su pixel adiacenti al fine di ricavare le grandezze desiderate che possono essere la velocità o la direzione del moto. L’idea base di un dispositivo basato sulla correlazione è illustrato in fig 8. Una coppia di fotorecettori, separati nello spazio, convergono in una cella che ne rileva la coincidenza. Uno dei due input viene ritardato e quanto più il moto coincide con la separazione spaziale e quella temporale del ritardo, tanto più il segnale di output emesso diviene alto. - 42 - Figura 17: Metodo della Correlazione - le celle non-direzionali convergono negli elementi non lineari che misurano la coincidenza tra gli input separati spaziotemporalmente. L’algoritmo di correlazione fu concepito da Reichardt e Hassenstein durante degli esperimenti sul sistema visivo dei coleotteri; esperimenti successivi riadattarono l’idea alla visione delle mosche e a sistemi più complessi di quello in figura, in particolare su modelli con selezione direzionale. 3.3.1.1 Facilitate-and-Sample (FS) I sensori che utilizzano la procedura Facilitate-and-Sample calcolano la velocità in una dimensione misurando il tempo di passaggio di un bordo tra due pixel successivi. La misura viene effettuata come segue (fig 9). Ogni qual volta un bordo viene intercettato da un pixel, vengono generati due impulsi: uno molto stretto che fungerà da sampler (fast pulse) ed un secondo che pur salendo velocemente decadrà invece molto lentamente (slow pulse). Per calcolare la velocità, ad esempio di un oggetto che si muova, da sinistra a destra, un pixel usa - 43 - il suo stesso fast pulse per campionare il valore dell'impulso lento alla sua sinistra. Più è lungo il tempo di transito minore sarà il valore campionato. (a) (b) Figura 18: Algoritmo FS - a) schema a blocchi; b) segnali di attivazione e sampling. 3.3.1.2 Facilitate-Trigger-Inhibit (FTI) L’FTI è una elaborazione del più semplice algoritmo FT (Facilitate-Trigger, cfr fig 10). Quest’ultimo viene così denominato poiché per ogni cella di movimento (M) l'impulso del pixel rispettivo funziona da riferimento mentre quello del pixel adiacente da trigger: l'impulso di output viene terminato quando quello di riferimento assume un livello logico uguale a zero. - 44 - (a) (b) Figura 19: Algoritmo FT - a) schema a blocchi; b) segnali di attivazione e triggering. L’algoritmo FTI lavora invece su tre pixel vicini (fig 11), un bordo che si muove da sinistra a destra causa l’emissione di un impulso che attiva la cella del movimento (Facilitate), al passaggio sul secondo si genera il segnale di uscita (Trigger) che verrà riportato a livello basso dal terzo pixel (Inhibit). E’ semplice intuire che in entrambi i casi la velocità è direttamente proporzionale alla larghezza dell’impulso. Figura 20: Algoritmo FTI - schema a blocchi. - 45 - 3.3.2 Gradient methods I metodi che utilizzano il gradiente sono detti impliciti. Non vi è infatti esplicita corrispondenza spaziale o temporale tra gli oggetti nel campo visivo ed i risultati delle misure che il sistema effettua, come avviene invece nei metodi precedenti dove il tempo e lo spazio, intimamente legati, erano misurati esplicitamente. In questo tipo di algoritmo si mette in relazione la luminosità dell’immagine in ciascun punto del piano focale con il movimento degli oggetti. La velocità è ricavata a partire dalle derivate parziali, rispetto al tempo ed allo spazio, della distribuzione di luminosità locale. L’equazione di partenza si basa sulle seguenti assunzioni: sia (x,y) un punto del piano focale ed I(x,y) la luminosità dell’immagine in quel punto. Se questa deriva da un oggetto in movimento, la luminosità di un particolare punto del pattern, proiettato sul piano focale deve essere costante (ad esempio non dovranno cambiare ombre o illuminazione a causa del moto): dI(x,y,t) =0 dt F ≡ ∂I ∂I ∂I vx + vy + = 0 ∂y ∂x ∂t Dalla fig. 12 risulta evidente il motivo e la necessità dell’espressione precedente, detta anche brightness constraint equation: nel caso in cui la distribuzione dovesse cambiare nel tempo sarebbe impossibile risalire localmente al suo moto effettivo, in quanto vengono introdotti dei termini di moto apparente. Figura 21: Brigthness Constraint - variazioni nel tempo della distribuzione dell'intensità luminosa portano alla computazione errata del moto (apparent motion). - 46 - Accanto all’equazione differenziale bisogna imporre delle condizioni a contorno che determinino l’unicità della soluzione, altrimenti il problema risulterà mal posto. Su questo punto si distinguono le molteplici implementazioni realizzate finora, in quanto dalla scelta di tali condizioni dipende prima di tutto la convergenza del sistema verso uno stato stabile che sia la soluzione, nonché la difficoltà di progettazione del circuito che dovrà risolvere l’equazione differenziale. 3.4 Limiti di applicazione Nella fase di progettazione di un qualsiasi dispositivo non si può non tener conto dei limiti fisici della sua applicazione, limiti che possono derivare dal tipo di realizzazione, dalla fisica degli oggetti o da caratteristiche intrinseche del progetto. Talvolta è possibile ridurre gli effetti negativi introdotti lavorando su alcuni parametri del sistema che ne migliorano la resa, spesso però a discapito di altri aspetti, quale ad esempio la compattezza del sistema, i consumi, la flessibilità. La determinazione dei limiti di applicazione non solo fornisce una discreta panoramica delle future performance del sistema, ma ne dà una idea abbastanza precisa dei range dinamici di funzionamento e quindi della sua reale utilità per gli scopi di utilizzo. 3.4.1 Lo Spazio Disegnando un dispositivo elettronico si cerca in ogni modo di ottenere la maggiore resa nel minor spazio possibile, nel caso di un sensore ottico questa regola vale ancora di più in quanto una maggiore superficie dedicata al calcolo, riduce la superficie dedicata all’acquisizione, a discapito così della qualità dei dati su cui lavorare. Il primo stadio di un sensore ottico è la fototraduzione, la trasformazione dell’irradianza in segnale elettrico. Questo, come abbiamo detto, - 47 - avviene a livello dei pixel: ciascuno di essi è formato da un fotorecettore e dalla circuiteria necessaria all’elaborazione del segnale. Si definisce d fattore di riempimento (= D/d), ossia il rapporto tra la grandezza del fotorecettore D e l’area d occupata dal pixel. Questa grandezza come si può facilmente capire è fondamentale per il buon funzionamento del sensore, poiché minore è la superficie occupata dal singolo pixel, maggiore può essere l’integrazione, si riduce di conseguenza l’alias spaziale introdotto dal campionamento dell’immagine con un notevole guadagno nella qualità dell’immagine acquisita, ma soprattutto, nella precisione di calcolo degli stadi successivi. Per quantificare gli effetti introdotti da tali grandezze, e di conseguenza, dal campionamento, inficiando l’esattezza della soluzione del moto, analizziamo il caso di una matrice di pixel unidimensionale utilizzando come stimolo un pattern sinusoidale che si muove sul piano focale con velocità fissata v (fig.18). Ci accingiamo a calcolare in particolare gli effetti sul gradiente dell’intensità luminosa, grandezza che sarà di nostro interesse per il sensore. Figura 22: Campionamento - l'effetto delle dimensioni finite del pixel sul campionamento di un’onda sinusoidale per diversi valori di k. La distribuzione dell’intensità luminosa sul piano focale sarà data da E(x,t) = sin(kx – ωt) con x,t ∈ ℝ, dove ω = kv e k è la frequenza spaziale dello - 48 - stimolo. Al primo ordine la derivata spaziale nel punto xi si può approssimare con il termine ∆xi = (xi+1 - xi-1) /2d. Il gradiente spaziale discreto diviene: xi − d + D xi + d + D 2 2 1 1 E x ( xi , t ) = sin(k (ξ − vt ))dξ − sin(k (ξ − vt ))dξ = 2d D xi + d − D xi − d − D 2 2 2 = sin(kd ) ⋅ sin(kD 2) ⋅ cos(k (xi − vt )) kDd ∫ ∫ allo stesso modo il gradiente rispetto al tempo si trova essere: ∂ 1 Et (xi ,t) = ∂t D xi + D ∫ 2 sin(k (ξ − vt ))dξ = − xi − D 2v sin(kD 2 ) ⋅ cos(k (xi − vt )) D 2 si vede che per d molto piccoli il calcolo viene eseguito più correttamente. Lo stesso effetto migliorativo, non potendo il più delle volte diminuire a piacere il valore di d per motivi fisici di integrazione del dispositivo, si ottiene per bassi valori di frequenza k. 3.4.2 Il Tempo Per una data distanza tra i pixel d, le velocità massima e minima che un sensore può riportare sono dettate dagli intervalli di tempo minimo e massimo che egli riesce a manipolare; in termini di espressione questo si riduce a: vmax = d ∆t min e vmin = d ∆t max i valori di ∆tmax e ∆tmin possono dipendere da due diversi tipi di limiti detti limite parametrico e limite di rumore. - 49 - Ogni parametro di ciascun componente del sistema concorre a determinare i valori di ∆tmax e ∆tmin. Per esempio nei sistemi digitali il segnale di clock che corre lungo le linee del circuito impone il ∆tmin mentre il contatore con maggior numero di clock conteggiati può fissare il ∆tmax. In un dispositivo analogico tali valori possono essere imposti dalla velocità di salita di particolari impulsi o dai tempi di rilassamento del circuito. Le soglie dei limiti parametrici possono spesso essere modificate lavorando sulle cause che li generano, ma talvolta questi limiti sono imposti dalla tecnologia utilizzata: è molto difficile ottenere tempi di salita o discesa di segnali analogici inferiori a qualche nanosecondo con le attuali tecnologie CMOS. L’altro limite alla stima degli intervalli di tempo deriva dalla presenza di rumore nei segnali, rumore dovuto in parte all’input ed in parte al circuito che lo analizza. Se il circuito non imponesse timing interni e non vi fosse alcun disturbo, l’intervallo di velocità stimabile sarebbe infinito. Il limite di rumore è proporzionale alla quantità S/N, dove S è l’ampiezza dell’output ed N il rumore r.m.s.(root-mean-square). Questo fa sì che si generi una griglia di risoluzione di passo N sull’immagine, ossia non sia possibile distinguere due output che distino meno di N tra loro. 3.4.3 Il problema dell’apertura Nel 1911 Pleichart Stumpf introdusse il problema dell’apertura per spiegare perché delle spirali in rotazione sembrassero espandersi o contrarsi. Il problema, come Stumpf descrisse, è che se si guarda una curva in movimento attraverso una apertura sufficientemente piccola che la curva stessa può essere assimilata ad una retta, può essere percepita soltanto la componente perpendicolare alla curva, perdendo così le altre componenti. Così per ottenere la corretta percezione del moto si deve ricostruire la velocità, combinando delle misure locali. - 50 - 3.4.3.1 Motion field e optical flow Ogni qual volta un oggetto si muove davanti ad un sensore, avviene un cambiamento nell’immagine. Se un punto p0 su un oggetto si muove con velocità v0, al punto corrispondente sull’immagine pi può essere assegnato un vettore vi per indicare il movimento sul piano focale. L’insieme di tutti questi vettori costituisce il motion field. Figura 23: il movimento di un oggetto genera vettori di spostamento sull'immagine Se restringiamo il moto alle sole rotazioni e traslazioni di corpi rigidi, il motion field sarà ovunque continuo, eccetto che ai bordi degli oggetti. - 51 - Figura 24: Motion field generato dalla traslazione rigida di un oggetto. Il moto apparente dei pattern dell’immagine è detto optical flow. Generalmente l’optical flow coincide con il motion field, ma ciò non è vero in assoluto: un esempio illuminante è il cosiddetto “barber’s pole”, illustrato in fig. 21. Figura 25: motion field e optical flow del "barber’s pole". - 52 - Il problema fondamentale è che noi siamo in grado di misurare solo la componente dell’optical flow parallela al gradiente dell’intensità luminosa e non quella perpendicolare fig. 22). Figura 26: problema dell'apertura - possiamo misurare solo la componente b. Possiamo ricavare analiticamente questa limitazione a partire dalla già nota brigthness constraint equation. Riscriviamo l’equazione Ixu+Iyv+It=0 come segue: (I x ,I y )⋅ (u,v ) = − I t dunque la componente della velocità nella direzione del gradiente in un punto dell’immagine: (u,v ) = − It I x2 + I y2 non possiamo comunque calcolare la componente perpendicolare a questa. Tale ambiguità è nota come problema dell’apertura. Per limitare le conseguenze indesiderate introdotte de questo effetto si può cercare di scegliere come punti notevoli quelli che abbiano gradiente significativo in più di una direzione (ad esempio gli spigoli, cfr fig. 23). Infatti i pattern visibili attraverso una apertura possono essere classificati come zero (apertura A), first (apertura B) o second - 53 - (apertura C) order brightness patterns. I primi due forniscono una computazione ambigua del moto al contrario degli ultimi. Figura 27: problema dell'apertura - lo spostamento induce delle computazioni di moto virtuale; solo nel caso di pattern di secondo ordine o con l'intersezione dei bordi si ottiene una misura corretta della velocità. Facendo riferimento alla figura si nota come, mediando su tutti i possibili moti visibili attraverso l’apertura si ottenga un vettore (in grassetto) perpendicolare all’orientazione del bordo. I vettori di questo tipo appartengono al cosiddetto “normal flow”. La misura della velocità attraverso questi vettori non è in genere corretta, neanche mediandoli sull’oggetto, se non nel caso di particolari forme; la velocità può essere ottenuta soltanto dalle intersezioni delle singole constraint lines generate da ciascun vettore. Il normal flow fornisce quindi una misura grossolana della velocità, utile e sufficiente in alcuni casi ma completamente errata in altri. Nei dispostitivi unidimensionali il problema ovviamente non sussiste, ma è causa di enormi difficoltà e errore in quelli bidimensionali. Nella figura seguente è però illustrato un fenomeno di moto apparente dovuto al problema dell’apertura che inficia i risultati del calcolo anche nei sistemi unidimensionali. Supponiamo di avere un pattern periodico con lunghezza d’onda l, che si muove a velocità S ed angolo θ sul nostro sensore, ipotizzato unidimensionale. Questo causa un - 54 - moto apparente lungo l’array ad una velocità S/cosθ. La lunghezza d’onda apparente vista dal sensore è aumentata e pari a l/cosθ. Il nodo altrettanto importante è che la stessa misura potrebbe derivare da un moto reale di un pattern con velocità S/cosθ orientato rispetto all’array con un angolo θ; non c’è modo, in linea di principio, di poter distinguere localmente i due moti. Figura 28: Problema dell'apertura ed effetto della lunghezza d'onda del pattern. - 55 - 4 Il Sensore 4.1 Architettura e Finalità Lo schema a blocchi del dispositivo è riportato nella figura seguente. Figura 29: Rappresentazione a blocchi dell’architettura del sensore. Il sistema ha una struttura a livelli, che può essere descritta analizzandoli uno per volta. Il primo layer è quello di acquisizione ed è costituito dalla matrice di pixel. Questi, del tipo logaritmico derivativo introdotti precedentemente, traducono le variazioni di contrasto in segnali analogici che diventano gli stimoli per lo stadio successivo: ciascun fotorecettore è collegato ad un livello inferiore in cui si attua il calcolo delle velocità presenti nel campo visivo. Questo aspetto è l’argomento centrale di questa tesi e sarà trattato in dettaglio nei paragrafi che seguono nei quali verranno descritti in maniera particolareggiata tutti i suoi componenti. Possiamo dire intanto che la scelta del tipo di realizzazione, - 56 - dell’architettura e dell’algoritmo di calcolo è stata dettata da un accurato studio delle finalità del circuito, questo oggetto infatti costituisce il cuore del sensore: il calcolo delle velocità deve essere il più accurato possibile, ed entro i limiti di progettazione, esente da errori che invalidino le velocità stimate. La velocità deve essere necessariamente calcolata a partire dalla stima del moto tra pixel vicini ma i modi in cui può essere calcolata sono, come abbiamo visto, molteplici. Ciascun pixel possiede una cella che realizza una particolare operazione da cui si estraggono le componenti sugli assi x ed y della velocità locale, questi risultati vengono successivamente condivisi tra i pixel su due distinte reti resistive in modo da uniformare e mediare i risultati tra i vicini. Ciascun nodo ix,jx, iy,jy delle reti è l’input di un circuito che calcola il modulo del vettore velocità in quel punto. Le velocità così stimate vengono inviate alla winner-take-all. La cella vincitrice coincide con il fotorecettore di fronte al quale vi è il bordo con velocità massima. L’uscita finale è data da un convertitore analogico-digitale che codifica l’informazione ricevuta dalla WTA fornendo le coordinate del pixel o dei pixel vincitori. 4.2 Scelte di progettazione Nel primo periodo di tesi si è operata una attenta e dettagliata ricerca sugli studi esistenti in materia di sensori neuromorfi, cercando di cogliere in ognuno le problematiche che i suoi ideatori avevano incontrato, come erano state risolte, ma soprattutto se l’utilizzo dello stesso algoritmo sarebbe stato utile al nostro obiettivo. Esiste tantissima letteratura sull’argomento e sono molti i gruppi di ricerca che si sono cimentati nella fabbricazione di sensori ottici utilizzando gli algoritmi e le intuizioni più disparate, ma nella maggior parte dei casi riadattare un algoritmo pensato appositamente per uno scopo ben preciso non è cosa semplice: ogni volta che si realizza un dispositivo si deve ottimizzare il sistema - 57 - per operare in determinate condizioni e non sempre sono contemplati range di utilizzo fuori di quello per cui è stato ideato. Il compito iniziale più importante è stato proprio cercare l’algoritmo che meglio di tutti potesse realizzare i calcoli richiesti, con una ragionevole accuratezza ed anche, per quanto possibile, il minor ingombro sulla superficie del chip. I risultati di questa analisi hanno portato alle conclusioni riportate, in breve, di seguito. Il problema dell’apertura pone non pochi limiti alla realizzazione del dispositivo, ed impone delle scelte quasi obbligate se si vogliono ottenere determinati risultati. Supponiamo d’ora in poi di parlare sempre di sensori bidimensionali; creare un sensore che rilevi soltanto il movimento risulta meno complicato in quanto, se non si è interessati al modulo della velocità, la direzione del moto è, quasi in ogni caso, computata correttamente. Ma se ci accingiamo a realizzare un dispositivo in grado di misurare le velocità, o come nel nostro caso, a confrontarne un certo numero, bisognerà essere più che certi della correttezza con la quale ciascuna velocità sia stata calcolata, riducendo al minimo i casi in cui il moto potrebbe risultare ambiguo. Avendo constatato che i metodi di tipo correlativo, seppur di più semplice realizzazione e di immediata comprensione, sono affetti pesantemente da tutti gli errori introdotti dal problema dell’apertura, bisognerà quindi scartare questa strada ed avventurarsi nell’utilizzo degli algoritmi basati sul calcolo del gradiente. Abbiamo già incontrato l’equazione di partenza, la brightness constraint equation, che per comodità ripetiamo: F (v ( x,y,t )) ≡ ∂I ∂I ∂I = 0 vy + vx + ∂x ∂y ∂t come avevamo accennato, accanto a questa equazione bisogna porre delle condizioni a contorno affinché la soluzione sia unica e ben definita. Taluni stabiliscono che i vettori del flusso siano normali alla distribuzione locale di luminosità (normal flow), imponendo la seguente condizione: - 58 - Ix Iy = vx v y da cui si ottengono le espressioni per le due componenti della velocità: vx = − I x It vy = − I x2 + I y2 I y It I + I y2 2 x la soluzione così ottenuta è però soltanto parziale in quanto la velocità risulta computata solo nella direzione normale al gradiente di intensità, con le conseguenze già viste. Altri impongono l’omogeneità del flusso nel campo visivo (Horn-Schunck) o smoothness constraint. Questa assunzione è strettamente legata al moto dei corpi rigidi nel campo visivo del sensore: l’omogeneità deriva dall’assumere che punti vicini nello spazio possano facilmente appartenere allo stesso oggetto e quindi possedere lo stesso moto. La sua espressione 2 2 2 δv δu δv δu S = + + + δx δx δy δy 2 può essere vista come una misura di quanto varia il flusso sull’immagine. Accanto a questi vincoli, in un lavoro precedente [42], viene introdotta una ulteriore condizione che è il punto di svolta per la soluzione delle ambiguità. Si impone che nel caso in cui vi sia incertezza nel calcolo del moto, a questo venga attribuito un valore stabilito a priori o comunque differente da quello equivoco calcolato dal sistema. Questa assunzione, detta bias constraint si traduce nella formula B(v) = (v x -v x ref ) 2 + (v y -v y ref )2 che può essere interpretata come una misura di quanto il moto si discosti da quello di riferimento. Nella realtà v ref non assume necessariamente un valore fisso ma può essere implementata come un valore medio sulla “storia” del pixel o - 59 - sulla media dei vicini o qualsiasi altro valore che possa ottimizzare il sistema e renderlo stabile in condizioni di moto equivoco. Date le sue eccellenti potenzialità, i vantaggi che si ottengono in termini di minori errori che compromettono i risultati, e confrontando i risultati che offre quest’ultimo approccio, con le esigenze del nostro dispositivo, si è valutato che questo avrebbe potuto possedere le caratteristiche necessarie a soddisfare i compiti richiesti. I nostri calcoli si baseranno dunque sull’utilizzo di tre vincoli: brightness, smoothness e bias constraint. Nel paragrafo che segue vedremo come queste espressioni, attraverso la matematica che governa il sistema, portino alla misura del moto ed in quello successivo come queste siano state realizzate in maniera elettronica. 4.3 La Matematica del Sensore Le espressioni precedenti devono essere combinate per poter estrarre il valore delle velocità misurate in ciascun punto del sensore. Dati gli input Ex(x,y,t), Ey(x,y,t), e Et(x,y,t) su una regione Ω⊂ℝ2 dell’immagine, il campo di velocità corretto è quello che minimizza la funzione G H (v(x, y,t); ρ ,σ ) = ∫ (F 2 + ρ S + σ B )d Ω Ω con la condizione che dv/dt(x,y,t)=0 su Ω. Il peso di ciascun termine è dato dai valori di ρ e σ: questi due parametri, ritenuti per ora costanti, determinano il comportamento generale del sensore attribuendogli la capacità di restituire diverse tipologie di flussi di velocità a seconda delle esigenze di realizzazione ed utilizzo del sensore. Nella realtà il calcolo deve essere effettuato su una matrice nxm di pixel, dunque su un numero discreto di punti e non sul continuo. La funzione - 60 - H(v(x,y,t)) andrà quindi minimizzata su ciascun punto i,j con i ∈ [1,..n] e j ∈ [1,..m] che definisce una cella primitiva di calcolo di passo h (distanza tra i pixel). La sua espressione quantizzata assume la forma: G H (v (x,y,t )) = ∑∑ (E n m xi,j u i,j + E yi,j vi,j + Et ) 2 [( + ρ ∆u i,j )2 + (∆vi,j )2 ]+ i =1 j =1 [( + σ u i,j − v0 )2 + (vi,j − v0 )2 ] dove per il calcolo delle derivate si utilizza la formula discreta (∆xi,j ) 2 xi +1,j − xi −1,j = 2h 2 − xi,j −1 x + i,j +1 2 h 2 G Il sistema ammette un minimo globale quindi la condizione H ′(v0 ;ρρ, ) = 0 G è una condizione sufficiente per la soluzione unica v0 . Differenziare la G precedente espressione di H (v (x,y,t )) porta a dover risolvere un sistema di equazioni 2nxm. Si procede invece su un’altra via: si sceglie di realizzare una architettura dinamica la cui evoluzione porterà il sistema in uno stato di equilibrio quasi-stabile che sarà proprio la soluzione cercata. Per la convergenza del sistema, la stima dei valori di ui,j e vi,j viene incrementata negativamente e proporzionalmente alle derivate parziali di H: u i,j G ∂H (v ; ρ , σ ) =− ∂u i,j vi,j G ∂H (v ; ρ , σ ) =− ∂vi,j finché non si raggiunge l’equilibrio. Questo approccio porta a dover risolvere un sistema di 2nxm equazioni differenziali del tipo: u i,j = − ( [ ( ) 1 E xi,j E xi,j u i,j + E yi,j v i,j + E t + C ) ( − ρ u i +1,j + u i −1,j + u i,j +1 + ui,j −1 − 4ui,j + σ u i,j − u 0 - 61 - )] vi,j = − [ ( ) 1 E yi,j E xi,j u i,j + E yi,j vi,j + E t + C ( ) ( − ρ vi +1,j + vi −1,j + vi,j +1 + vi,j −1 − 4vi,j + σ vi,j − v0 )] con C costante. Il motivo per cui un sistema di equazioni lineari sia stato trasformato in un sistema di equazioni differenziali è presto chiarito. Ciascun termine delle precedenti espressioni è facilmente interpretabile in linguaggio elettronico: l’intera espressione può essere vista come l’equazione che regola le correnti di carica e scarica di un condensatore di capacità C. Si noti come il secondo e terzo termine nelle parentesi quadre descrivano il comportamento di una rete resistiva in cui ρ rappresenta la conduttanza laterale della rete e σ l’accoppiamento di una piccola corrente di perdita riferita a dei potenziali di riferimento U0 e V0. L’unico termine che necessita di uno studio di una realizzazione particolare è il brightness constraint: questo confronta istantaneamente i vettori di flusso computati con l’immagine reale e fornisce in uscite due correnti bidirezionali IUi,j e IVi,j tali che ( (E ) +E ) IU i,j ∝ − E xi,j E xi,j u i,j + E yi,j v i,j + E t IV i,j ∝ − E yi,j xi,j u i,j + E yi,j v i,j t imponendo l’esecuzione di somme e moltiplicazioni che vanno realizzate ed ottimizzate, riducendo al minimo gli errori. 4.3.1 Accorgimenti e restrizioni La misura del flusso di velocità richiede un notevole carico computazionale ed ogni singolo passaggio necessita una elevata accuratezza per evitare che la propagazione degli errori da uno stadio al successivo, danneggi irreparabilmente la stima rendendone impossibile ed inutile l’utilizzo. - 62 - In effetti, quando sono stati introdotti i diversi tipi di algoritmi, non sono state affrontate le problematiche relative all’utilizzo del metodo del gradiente. Anche questo tipo di approccio non è esente da inconvenienti e restrizioni che ne limitano e complicano l’uso: • la precisione richiesta ai circuiti dedicati al calcolo, in quanto i calcoli sono di tipo derivativo e l’errore commesso si paga con una forte ripercussione sul dato finale; • la possibilità di integrare su un singolo chip l’intera architettura, in quanto ciascun pixel richiede un notevole carico computazionale; • l’imposizione di corrette condizioni al contorno che soddisfino tutte le possibilità che si potrebbero presentare al sensore in modo da evitare il più possibile ambiguità di calcolo. 4.4 Sviluppo della tesi Fin qui abbiamo descritto il contesto in cui si colloca questa tesi e gli step che hanno caratterizzato il lavoro preliminare di ricerca. Dopo questa fase si è intrapreso il lavoro di concretizzazione del circuito che risolvesse l’algoritmo scelto. La realizzazione della soluzione è stata studio di una precedente tesi [42]: lì veniva realizzato un sensore in grado di generare una mappa del flusso di velocità presenti nel campo visivo. Il nostro intento è stato quello di riadattare per i nostri scopi, le idee di fondo di quel progetto, in particolare è stato ricostruito e riadattato alla nostra tecnologia, il circuito lì descritto, ottimizzandone i parametri di ciascun componente per ottenere un corretto funzionamento nei nostri range di lavoro, ma ancor prima per fare in modo di integrarlo con il pixel già in nostro possesso. Una recente pubblicazione dello stesso autore in collaborazione con altri ricercatori [44], riporta un prototipo di un sensore in grado di operare con le - 63 - medesime funzionalità del nostro, si tratta però di un sensore ibrido, realizzato cioè in parte in maniera analogica ed in parte con l’ausilio di un microprocessore digitale che simula e racchiude in se diversi dispositivi, aggirando così i problemi di integrazione ma soprattutto di implementazione analogica delle operazioni. Per la realizzazione di questi dispositivi ci si avvale, e non si potrebbe fare altrimenti, del VLSI analogico. Abbiamo già visto come questa tecnologia si riveli il miglior supporto per questo tipo di architetture e quali sono i parametri da considerare durante la progettazione. In particolare è possibile realizzare tali dispositivi utilizzando moduli che funzionano con alimentazioni a 5V o 3,3V, questo ha comportato per noi notevoli complicazioni in quanto il progetto originale, alimentato a 5V, andava totalmente riadattato per funzionare a 3,3V implicando, lo vedremo in seguito, un restringimento dei valori di funzionamento di un particolare componente del circuito. Altra fondamentale differenza è stata la scelta delle dimensioni della tecnologia. Le diverse implementazioni che utilizzano la tecnica VLSI sono caratterizzate in base ad un parametro costruttivo ben preciso: la lunghezza minima di canale dei mosfet. La tecnologia utilizzata dai nostri predecessori permetteva una lunghezza di canale minima di 0.8 µm, mentre la nostra è di 0.35 µm. Questo comporta la possibilità di una maggiore integrazione in quanto si riduce l’unità costitutiva minima ed un abbassamento delle correnti di utilizzo con conseguente riduzione della potenza assorbita. La tesi si stacca quindi dalle precedenti realizzazioni proprio per l’idea di integrare su singolo chip l’intera architettura, utilizzando una tecnologia a densità ancor più elevata ed ancora, ricercando delle soluzioni analogiche alternative all’utilizzo dell’elettronica digitale. Il punto di partenza è la soluzione elettronica delle già citate equazioni differenziali di u i,j e vi,j (cfr. 4.3). Osservandole si era già dedotto che l’espressione poteva essere interpretata come l’equazione delle correnti di un nodo capacitivo e che una parte coincideva con il comportamento di una rete resistiva (cfr. 3.2.2). L’architettura del sistema può venir schematizzata così: - 64 - Figura 30: Architettura della soluzione - le componenti della velocità sono codificate dai potenziali Ui,j e Vi,j ai nodi delle due reti resistive che attuano lo smoothness constraint; il bias contraint è realizzato dalle contuttanze σ verso U0 e V0 mentre la brightness equation è contenuta nelle celle A e B. La singola cella è divisa in due parti, una per il calcolo della componente x l’altra per la componente y. In ciascuna sono presenti le strutture che realizzano le diverse condizioni ed equazioni a contorno che abbiamo imposto affinché il sistema, nella sua dinamica, evolvesse verso uno stato di equilibrio dal quale estrarre la soluzione desiderata. Si notano le due reti resistive che attuano lo smoothness constraint accoppiando i nodi vicini con la conduttanza ρ. Il valore di questo parametro regola quanto il segnale di ciascun pixel si propaga sulla rete e viene avvertito dagli altri influendo, quindi, sui calcoli delle celle circostanti. In pratica è un valore che pesa la media tra le stime della velocità dei pixel vicini. Il bias constraint è reso tramite la conduttanza σ che riferisce i nodi Ui,j e Vi,j a U0 e V0. Anche questo parametro assume una importanza cruciale per il - 65 - corretto funzionamento del sensore in alcune condizioni d’uso. Abbiamo visto come il problema dell’apertura sia un grosso impedimento alla corretta computazione delle velocità in quanto introduce dei termini ambigui e virtuali nelle componenti della stessa: la presenza di una velocità “preferenziale” sovrapposta a quella calcolata risolve in parte il problema. Il peso di quanto questa influisca sul calcolo è dato proprio dal valore di σ, nonché ovviamente dal valore di U0 e V0. L’architettura più complessa è quella dedicata alla realizzazione della brightness equation. I due blocchi A e B forniscono le due correnti IUi, j e IVi, j , frutto dei calcoli sulle derivate spaziali e temporali dell’intensità luminosa che, come già anticipato, implicano operazioni come prodotti, somme e derivate che non sono riproducibili banalmente senza commettere errori e che richiedono degli espedienti ingegnosi per il loro calcolo, tenendo conto soprattutto dei range di utilizzo e delle capacità richieste al sensore. Ricavate così le due componenti x e y della velocità, queste vengono fornite in input ad un circuito che opera la somma vettoriale delle due correnti calcolando il vettore velocità per ciascun nodo. Sarà proprio tale set di vettori, l’input della winner-take-all che ne dovrà estrarre quello con modulo maggiore. - 66 - 5 La Realizzazione Elettronica Questo capitolo è dedicato alla descrizione dettagliata del circuito oggetto di questa tesi. Passeremo in rassegna tutti i singoli blocchi che insieme forniscono la soluzione dell’algoritmo scelto, le difficoltà incontrate e le soluzioni che sono state trovate per ovviare agli innumerevoli disagi causati dal riadattamento del progetto di partenza al nostro, nonché la via trovata per implementare l’intera architettura in modo analogico. Per la progettazione del circuito abbiamo utilizzato il supporto CADENCE, un cad elettronico specifico per la realizzazione VLSI; mentre per le simulazioni ci siamo avvalsi di SPECTRE, un simulatore molto potente in grado di analizzare il circuito nelle sue condizioni quasi reali di utilizzo, introducendo come parametri di simulazione quelli forniti dalla stessa fonderia che realizzerà il chip. 5.1 Bias Constraint La via per tradurre in elettronica il bias constraint è facilmente individuabile dalla sua espressione. Quello che ci serve è semplicemente un oggetto in grado di fornire in uscita una corrente proporzionale alla differenza di potenziale dei suoi input, con la possibilità di controllare la costante di amplificazione di questa corrente. Tale comportamento è assimilabile ad un oggetto ben conosciuto: l’amplificatore a transconduttanza. Il circuito è stato utilizzato in configurazione di inseguitore (fig. 27b). In questa forma l’amplificatore fornisce una corrente di uscita proporzionale alla differenza tra il potenziale di input e quello di output ed il contributo dell’input sull’ouput è pesato dalla transconduttanza associata all’amplificatore ed in particolare al valore di Vbias. - 67 - Figura 31: a) Amplificatore a transconduttanza - la corrente di uscita è la differenza tra le due correnti I1 e I2, la transconduttanza è proporzionale alla corrente Ib. b) Amplificatore a transconduttanza – configurazione di inseguitore. Come noto infatti, l’amplificatore a transconduttanza è caratterizzato da una corrente di uscita che segue con un andamento del tipo tanh la differenza di potenziale tra i due ingressi e la transconduttanza che misura la variazione di corrente di output in funzione degli input, è lineare con la corrente Ib. Questo andamento è dovuto al suo circuito di partenza, il differential pair, che sarà la cella base che caratterizzerà anche il moltiplicatore. Data quindi la sua importanza e il continuo utilizzo nei nostri circuiti, risulta necessario un breve approfondimento sul suo funzionamento. 5.1.1 Differential Pair È un circuito molto semplice, costituito da tre soli mosfet, nel quale una corrente di polarizzazione Ib viene condivisa da due mosfet M1 e M2 con - 68 - rispettive correnti I1 e I2, le cui entità dipendono dai valori dei potenziali di input sui gate V1 e V2. Figura 32: Differential pair – schema del circuito dove sono mostrati i potenziali d’ingrsso V1 e V2 , le due correnti di output I1 e I2 e la corrente di bias Ib , regolata dalla tensione Vb . Il circuito presenta diversi comportamenti nei casi di funzionamento sotto o sopra soglia che vanno analizzati separatamente. Funzionamento sottosoglia Supponiamo che tutti i mosfet lavorino sottosoglia ed in saturazione, allora avranno una relazione corrente-tensione d’ingresso di tipo esponenziale; le espressioni delle correnti attraverso i due mosfet saranno: I1 = I b I2 = Ib e knV1 UT e knV1 UT + e knV2 e knV2 UT UT e knV1 UT + e knV2 UT L’andamento delle due correnti in relazione alla differenza V1-V2 è sigmoidale: è pressoché lineare per piccole differenze, saturando a Ib per differenze maggiori. Sta proprio in questa linearità il punto cruciale di questo circuito ed il motivo che lo rende così utile nelle realizzazioni neuronali. Se nelle precedenti espressioni moltiplichiamo i numeratori e denominatori per - 69 - exp[kn/2UT(V1+V2)] possiamo ricavare la corrente di uscita Iout e si ottiene per essa la relazione V − V2 I out = I1 − I 2 = I b tanh 1 2 operativamente questa corrente si ottiene specchiando la corrente I1 nel ramo di I2 aggiungendo un nodo da cui estrarre il valore di Iout, ma così facendo non abbiamo fatto altro che costruire un amplificatore a transconduttanza. Questo tipo di relazione è spesso ricorrente, la ritroveremo infatti anche nelle espressioni che regolano lo smoothness constraint. La condizione di saturazione per Mb è: e -V e -V UT = e kbVb e kbVb UT UT << 1 con UT + e knV1 UT + e knV2 UT si traduce allora nella relazione max(V1 ,V2 ) > k n−1 (4U T + k bVb ) Funzionamento soprasoglia In questo caso la relazione corrente-tensione d’ingresso è di tipo quadratico. Se i mosfet lavorano in saturazione, ossia Vd>k(Vg-VTO), considerando i potenziali in unità di UT: I = [( ) β k V g − V TO − V s 2k ]2 allora, supponendo k e β costanti ed uguali per tutti i mosfet, le correnti in ciascuno dei due rami sono: I1 = β [k (V1 − V TO ) − V ]2 2k I2 = β [k (V 2 − V TO ) − V ]2 2k dall’equazione all’equilibrio Ib=I1+I2 risolta rispetto a V, si giunge alle soluzioni: - 70 - V = k 2 (V1 − V TO ) + (V 2 − V TO ) ± 4Ib − ∆V βk 2 con ∆V=V1-V2. Per un corretto funzionamento V deve essere più piccolo di V1 e V2, prendendo quindi in considerazione la soluzione minore otteniamo per I1 e I2: βk I1 = 8 ∆V + 4Ib − ∆V βk βk = 8 -∆∆ + 4Ib − ∆V βk I2 2 2 2 2 La corrente di uscita sarà quindi: I OUT = I 1 − I 2 = βk ∆V 2 4Ib − ∆V βk 2 Anche in questo caso dovremo imporre il funzionamento in saturazione del circuito. Per il mosfet Mb si trova la condizione V>k(Vb-VTO). Per gli altri due si può trovare un limite minimo di funzionamento in saturazione supponendo che tutta la corrente scorra in un solo ramo ed ottenendo: max(V1 ,V2 ) > Vb + (Vb -VTO ) una ulteriore limitazione deriva dal trovare il range di variabilità di ∆V. Tale quantità si può ricavare dalla semplice imposizione che l’argomento della radice nell’espressione di Iout, rimanga positivo. Ne consegue infatti che: ∆V < 2 (Vb -VTO ) in realtà, con altre considerazioni, si trova che il range è più piccolo di un fattore 2 . Queste due condizioni, necessarie per le loro implicazioni, risulteranno fondamentali per il corretto funzionamento del moltiplicatore ed allo stesso tempo saranno una delle maggiori cause di problemi per l’utilizzo dello stesso, nel nostro circuito. - 71 - 5.2 Smoothness Constraint Abbiamo visto come lo smoothness constraint venga realizzato tramite l’utilizzo di una rete resistiva. Questa è formata da un insieme di maglie i cui nodi sono collegati da elementi che possiedono un certo coefficiente di conduttività (o resistività). La rete può essere quindi implementata adottando come elementi delle semplici resistenze con coefficiente di resistività ρ, le quali, se tutte di valore uguale, forniscono una diffusione uniforme e fissata dei segnali lungo la rete. La possibilità di settare dall’esterno il valore di resistenza, ossia l’estensione del segnale, fa ricadere la scelta su un importante e diffuso dispositivo: il circuito HRes (Horizontal Resistor). Ampiamente descritto nel libro di Carver Mead [37], fornisce una connessione resistiva variabile e controllabile dall’esterno tramite una tensione di bias come ci accingiamo a mostrare di seguito. Una connessione resistiva tra due nodi può essere facilmente implementata tramite due transistor in serie i cui gate si trovino ai potenziali Vg sopra i valori di input V1 e V2, come mostrato in fig.29. Questi potenziali regolano le correnti di saturazione I0 dei due mosfet, modulando quindi l’effettiva resistenza della connessione. Per ciascun mosfet ricordiamo che la corrente è data dall’espressione: I 0e kVg (e −Vs ) − e −Vd = e kVg −Vs dove le tensioni sono espresse in unità di kT/qk. - 72 - (1 − e Vs −Vd ) Figura 33: HRes - rappresentazione schematica del funzionamento del circuito; i due mosfet formano la connessione variabile: quando V1 è maggiore di V2, Q2 limita la corrente e viceversa. La corrente è lineare con la differenza V1-V2 per piccole differenze e satura per elevate differenze ad un valore settato dalla polarizzazione di gate. Considerando il caso in cui V1 sia maggiore di V2, allora V1 sarà il potenziale di drain di Q1 e Vn quello di source, quest’ultimo farà a sua volta da potenziale di drain di Q2 e V2 sarà quello di source. In questa situazione la corrente di saturazione di Q1 sarà maggiore di quella di Q2, in quanto il potenziale gate-source nel primo mosfet è maggiore che nel secondo. Q2 limiterà la corrente nel ramo finché non si raggiungerà la condizione di saturazione V1-V2 > kT/q. L’espressione è totalmente antisimmetrica sotto lo scambio V1<->V2. Si può ricavare il comportamento della corrente in funzione della differenza V1-V2 eguagliando le espressioni delle correnti per i singoli mosfet. Si ottiene così la seguente relazione: V − V2 I = I sat tanh 1 2 la cui pendenza intorno allo zero fornisce il valore della resistenza R: R= 2kT 1 ⋅ q I sat - 73 - Per poter controllare il valore di R è quindi necessario poter gestire il valore di Vg per ciascun mosfet della rete. Per fare ciò ci si avvale di un semplice circuito polarizzatore, in grado di “sondare” il valore di Vn e polarizzare di conseguenza i gate dei mosfet relativi a quel nodo. La forza di questa risposta è un paramento configurabile dall’esterno attraverso un particolare input del circuito. Nella figura seguente viene mostrato il disegno schematico dell’HRes. Figura 34: HRes - disegno schematico. Il terminale Vn sonda un nodo della rete ed il feedback negativo del circuito riporta questo potenziale al source del mosfet di uscita il quale setta la corrente dei mosfet connessi al nodo stesso. 5.3 Brightness Constraint Il brightness constraint deve essere realizzato in modo da fornire due correnti che soddisfino le equazioni ( (E ) +E ) IU i,j ∝ − E xi,j E xi,j u i,j + E yi,j v i,j + E t IV i,j ∝ − E yi,j xi,j u i,j - 74 - + E yi,j v i,j t in esse appaiono le derivate spaziali e temporali dell’intensità luminosa e sono legate da diverse operazioni. Bisogna quindi costruire diversi oggetti in grado di offrire in uscita delle correnti proporzionali a ciascun termine, che verranno sommate e moltiplicate per ottenere il risultato desiderato. L’ architettura completa del circuito che risolve l’intera soluzione è mostrata in fig.31. È costituita da due blocchi identici, uno per la componente della velocità sull’asse x e l’altro per l’asse y ed entrambi i valori sono riferiti al potenziale di riferimento VRef. Si riconoscono l’amplificatore che genera il bias constraint e il circuito di polarizzazione dell’HRes. I cardini di tutto il circuito sono i due condensatori Cu e Cv per i quali vengono calcolate le correnti di carica e scarica. Accanto a questi due circuiti già noti possiamo individuare due ulteriori blocchi: uno è un moltiplicatore di Gilbert, opportunamente modificato per l’utilizzo all’interno di questa struttura, che opera la moltiplicazione tra le derivate spaziali e il valore locale calcolato della velocità; l’altro è il circuito che, una volta che le correnti del moltiplicatore sono state sommate, tramite degli specchi di corrente, alle derivate temporali provenienti dal fotopixel, moltiplica nuovamente questo risultato per le derivate spaziali e genera le correnti di feedback F+ ed F-, come segue dalle espressioni che regolano le correnti del brightness constraint. Otteniamo così il risultato desiderato: al nodo di ciascun condensatore sono presenti le tre correnti, considerando ad esempio la componente x: • (Fx + − Fx − ) = − E xi,j (E xi,j u i,j • I s = ρ u i +1,j + u i −1,j + u i,j +1 + u i,j −1 − 4u i,j • I B = σ u i,j − u 0 + E yi,j v i,j + E t ( ( ) ) ) Vediamo ora come queste operazioni vengano eseguite da ogni singolo elemento. - 75 - Figura 35: Schema generale del circuito che risolve l’equazione differenziale del sensore – in alto si vedono i due circuiti di polarizzazione degli HRes collegati ai mosfet delle reti resistive, si vede il simbolo identificativo dell’amplificatore differenziale; il resto del circuito risolve il brightness constraint attraverso il moltiplicatore di Gilbert (in alto) ed un circuito di feedback in basso nel quale vengono specchiate tutte le correnti in gioco attraverso i due mosfet p in basso a sinistra. - 76 - 5.3.1 Moltiplicatore di Gilbert Il moltiplicatore di Gilbert, mostrato in fig. 32, è costituito da una serie di differential pair in cascata che, come abbiamo già visto, ci permette di avere in uscita una corrente proporzionale alla differenza tra i due ingressi in tensione. Con questo espediente possiamo realizzare sia la differenziazione nelle coordinate spaziali, sostituendo alla derivata una differenza a primo ordine, sia la moltiplicazione tra due correnti che ci è data dal porre in cascata i singoli differential pair. Infatti la corrente d’uscita dello stadio superiore, oltre a dipendere dagli input dipende anche dalla corrente di bias che per ciascuno è la corrente dello stadio inferiore. Vediamo in dettaglio come si realizzano queste operazioni. Figura 36: Moltiplicatore di Gilbert - schema del circuito. Funzionando sopra soglia, le correnti di uscita sono proporzionali al prodotto di ∆V1,2 e ∆V3,4. Bisogna premettere che il circuito viene fatto lavorare sopra soglia, questo espediente permette di avere un campo di linearità più largo rispetto al - 77 - funzionamento sotto soglia. L’intera architettura opera però in quest’ultimo range di lavoro; vedremo nell’ultima parte di questo paragrafo come il moltiplicatore viene ulteriormente modificato per superare questa difficoltà. Dalla figura precedente si ricavano le espressioni per le correnti I1 e I2: βk I1 = 8 ∆V 1 ,2 + 4Ib − ∆V 12,2 βk 2 I2 βk = 8 -∆∆ 1 ,2 + 4Ib − ∆V 12,2 βk 2 con ∆V1,2= V1-V2 e Ib è la corrente imposta dal mosfet di bias; è proprio quest’ultimo a determinare il funzionamento sopra o sottosoglia del circuito. Effettivamente Vbcore è un parametro fondamentale, in quanto regola non solo il range di linearità del moltiplicatore, ma anche il suo operare o non in saturazione, condizione risultata essenziale per tutte le espressioni del nostro circuito in quanto verrebbero meno le basi su cui si fondano le considerazioni finora fatte. Sulla scia delle precedenti espressioni possiamo allora scrivere similmente per le correnti I+ e I -: I + = I 1 ,3 + I 2 ,4 = βk ∆V 3 ,4 + 8 4 I1 − ∆V 32,4 βk + -∆∆ 3 ,4 + I − = I 1 ,4 + I 2 ,3 = βk -∆∆ 3 ,4 + 8 4 I1 − ∆V 32,4 βk + ∆V 3 ,4 + 2 2 4I2 − ∆V 32,4 βk 2 4I2 − ∆V 32,4 βk 2 con ∆V3,4= V3-V4. Da questa si ottiene la corrente totale di uscita Icore, il cui nome si chiarirà tra breve I Core = I + − I - = βk ∆V 3 ,4 2 4 I1 − ∆V 32,4 − βk 4I2 − ∆V 32,4 βk Esplicitando le correnti I1 e I2 si ha un’espressione molto complessa e poco intuitiva, dalla quale difficilmente si evince il risultato da noi atteso; ma se si 2 espandono in serie le due radici intorno a ∆V3,4 si ricava una relazione più semplice con delle conseguenze immediate: - 78 - core I out 2 ∆V3,4 βk ≈ ∆V1,2 ∆V3,4 1 + 2 4 I b − 2 ∆V 2 1,2 βk la corrente di uscita è, perlomeno al primo ordine, proporzionale al prodotto delle due differenze ∆V1,2 e ∆V3,4. Ci si pone ora il problema di far funzionare il circuito all’interno dell’intera architettura, ossia di riportare le correnti di uscita in valori di utilizzo sottosoglia. La soluzione è di porre sui rami di I+ e I -, due diodi prima del nodo di alimentazione e di racchiudere tutto il circuito finora presentato, dentro un altro differential pair i cui ingressi sono i potenziali ai capi dei diodi (cfr fig.33). Figura 37: Moltiplicatore di Gilbert a largo range lineare - l'uscita del moltiplicatore semplice che lavora soprasoglia con un largo range lineare, viene riportata tramite una trasformazione logaritmica ai capi dei diodi, in regime sottosoglia regolato alla tensione VbOut. In questo modo le correnti I+ e I- che scorrono attraverso i diodi, inducono una risposta in tensione di tipo logaritmico ai capi dei diodi stessi comportando così una compressione logaritmica dei valori assunti dal moltiplicatore. La - 79 - tensione così scalata è la tensione di gate del differential pair esterno che, pilotato in ampiezza dalla tensione VbOut, fornisce una corrente con le stesse caratteristiche di proporzionalità delle precedenti ma con valori di funzionamento nella zona sottosoglia. Data l’equazione del diodo I diodo 1 Vd n UT = I0 e − 1 si ottiene per la corrente di output del differential pair esterno, che ricordiamo lavora sottosoglia I out = I out + − I out- = I bOut (I + I 0 ) log + (I + I ) 0 − tanh kn 2 essendo Iout una certa funzione esponenziale delle correnti I+ e I- ne risulta che, considerando kn≈1 e I0 trascurabile rispetto alle precedenti, la precedente espressione si può riscrivere nella forma più semplice I out ≈ I bOut core I out I bCore La corrente finale risulta quindi identica a quella di core ma scalata di un fattore proporzionale alle correnti di polarizzazione. Dallo schema generale del circuito si vedono le corrispondenze tra gli input Vi e quelli reali del sensore. La coppia di ingressi del primo stadio sono la tensione di riferimento e lo stadio di uscita dell’amplificatore differenziale, mentre in quello superiore troviamo le tensioni di uscita dei pixel che precedono e seguono sull’asse x o y, il nodo in cui stiamo calcolando la velocità in modo da ricavare le derivate spaziali. Nelle figure seguenti sono riportati i grafici degli andamenti delle correnti di uscita in funzione delle due differenze di input ∆V1,2 e ∆V3,4 come visualizzati - 80 - dal simulatore SPECTRE. Nel primo si è graficata la corrente Iout in funzione di ∆V1,2 parametrizzando le curve con ∆V3,4, nel secondo si sono scambiati i ruoli dei due input . a b Figura 38: Figure di simulazione del moltiplicatore. Andamento della corrente di uscita in funzione delle differenze ∆A (a) e ∆B (b), parametrizzando le curve rispettivamente con ∆B e ∆A. - 81 - Esistono dei limiti di applicazione e di funzionamento del moltiplicatore, li abbiamo anticipati nella descrizione del differential pair. In quella sede siamo giunti a delle espressioni che dettavano alcune condizioni necessarie affinché il circuito funzionasse in modo corretto e le equazioni rimanessero consistenti. Tali restrizioni si ripercuotono inesorabilmente sul moltiplicatore essendo esso composto da più circuiti di questo tipo. Studiamo il core del moltiplicatore a partire dal basso. Il circuito deve lavorare sopra soglia ed in saturazione: è il valore di VbCore a regolare questa condizione. Durante i test del circuito si è lavorato molto sull’ottimizzazione di questo parametro in quanto un suo valore errato avrebbe compromesso l’intera computazione delle derivate e dei prodotti. Anche l’ampiezza del range di linearità del moltiplicatore dipende da questa tensione, se riportiamo infatti le equazioni che regolano il funzionamento del differential pair e le applichiamo a quelli che costituiscono il moltiplicatore, possiamo ricavarne quanto detto: max(V1 ,V2 ) > VbCore + (VbCore -VTO ) max(V3 ,V4 ) > max(V1,V2 ) + (VbCore -VTO ) il range di variabilità di ∆V1,2 e ∆V3,4 è limitato invece dalle relazioni: ∆V1,2 < (VbCore -VTO ) ∆V3,4 < 2 (VbCore -VTO ) 2 Quanto queste abbiano influito sulla realizzazione del moltiplicatore risulta evidente nel momento in cui si analizzi il campo di tensioni a nostra disposizione. L’implementazione a cui ci siamo ispirati utilizzava dei moduli con alimentazione a 5V, e con tensione di soglia VTO=0.75V. Questo vuol dire che sopra questo valore i mosfet lavorano sopra soglia e i rimanenti 4.25V possono essere utilizzati per far variare le Vi in modo da soddisfare le precedenti relazioni, prime fra tutte quelle che regolano le ampiezze della linearità del moltiplicatore. Infatti è dalla - 82 - differenza tra la tensione di bias e quella di soglia che dipendono queste ampiezze: maggiore è la differenza, maggiore è in linea teorica la regione lineare. D’altro canto i valori che possono assumere le tensioni di input sono anch’esse dipendenti da tale differenza dovendo assumere dei valori minimi di separazione tra uno stadio e l’altro. Il nostro circuito è alimentato a 3.3V, ne risulta che, avendo una tensione di soglia di 0.475V, rimangono soltanto poco più di 2.7V per far variare gli input ed attenersi alle restrizioni del circuito. Si è dovuto quindi ottimizzare il valore della tensione di bias in modo da ottenere il miglior compromesso tra ampiezza delle regioni lineari e valori di escursione degli input. La tensione scelta è di 0.875V, e come si vede dai grafici, la larghezza della regione lineare è vicina alle previsioni teoriche di 0.4V e 0.28V. 5.3.2 Il Circuito di Feedback Il circuito di feedback ha il compito di minimizzare il sistema fornendo una corrente che mantenga il brightness constraint intorno al punto di equilibrio. La corrente è data dalla differenza di altre due correnti F+ ed F-, calcolate in base ai risultati ottenuti risolvendo la brightness equation. Infatti, le correnti ottenute dal moltiplicatore confluiscono in un nodo nel quale si sommano con le correnti provenienti dal pixel Et+ ed Et-, che rappresentano le derivate temporali della fotocorrente. Si ottiene così il termine contenuto nella parentesi dell’espressione di F+ ed F-, che per comodità riportiamo per la componente x: (Fx + − Fx − ) = − E xi,j (E xi,j u i,j + E yi,j v i,j + E t ) La suddetta parentesi è di nuovo moltiplicata per le derivate spaziali e l’operazione viene eseguita da un altro stadio moltiplicatore. Queste correnti risolvono la brightness equation e la differenza tra le correnti F+ ed F-, aumentando o diminuendo in base all’evoluzione del potenziale sui nodi U o V, tende a stabilizzare il sistema minimizzando i risultati ottenuti. - 83 - 5.4 Il Vettore Velocità A questo punto abbiamo ottenuto un campo di velocità in corrispondenza di ciascun nodo delle due maglie scomposto in tutte le singole componenti sugli assi x e y. Per poterle confrontare abbiamo bisogno di ricavare i moduli delle velocità in ogni punto. A tale scopo viene inserito il circuito che tra breve descriveremo. Questo, prendendo come ingressi delle correnti proporzionali ai valori delle tensioni U e V di ogni coppia di nodi (xi,yi) della maglia, ne fornisce in uscita, sotto forma di corrente, il modulo del vettore somma. Figura 39: Vettore velocità - schema del circuito che realizza la somma vettoriale delle due correnti Ix e Iy. In figura sono riportati le due curve su cui viene applicato il principio translineare. Il circuito può essere studiato utilizzando il principio translineare. In fig.32 sono riportate le due curve su cui applicare l’espressione: ∏ n∈CCW In = λn ∏ n∈CW In λn considerando i mosfet tutti uguali, si elimina il fattore λn, ottenendo rispettivamente per la prima e la seconda curva: I x2 = I1 I Out ; I 2 I Out = I y2 che a sistema con la relazione I Out = I1 + I 2 forniscono l’espressione cercata - 84 - I Out = I x2 + I y2 nella figura seguente è mostrato l’andamento della corrente in uscita in funzione di una delle correnti di input, in particolare Ix, parametrizzando le curve in funzione di Iy. Si vede come ad un primo andamento quasi costante dovuto alla piccola Ix si contrapponga l’andamento lineare per grandi valori di quest’ultima e come la curva Iy=0 corrisponda alla bisettrice del primo quadrante. Figura 40: Vettore velocità - corrente di uscita IOut del circuito in funzione della corrente Ix; le curve sono parametrizzate in Iy. Le correnti di input vengono ricavate da ciascun nodo attraverso un inseguitore. I valori di tensione di U e V pilotano i gate di due mosfet, impedendo una perdita di corrente dal nodo che altererebbe l’equazione differenziale che regola il funzionamento del sensore. La corrente che scorre in questi mosfet è così proporzionale a tali valori; - 85 - Figura 41: Circuito impiegato per ricavare le correnti da ciascun nodo dei layer resistivi e fornirle in ingresso al circuito per il calcolo della velocità. Vout "segue" Vin con un certo fattore di scala ed una soglia dettata da Vbias. polarizzando il circuito inseguitore con una tensione vicina a quella a riposo dei nodi si ottengono delle tensioni di uscita che tengono conto delle sole fluttuazioni attorno a questo punto di equilibrio e con valori in grado di mantenere il funzionamento sotto soglia. Tramite degli specchi di corrente queste tensioni forniscono le correnti di input del circuito. 5.5 Test A questo punto le parti che compongono il sistema sono ben definite. Una volta unite, si è passati alla fase di test. Non potendo, per ovvi motivi, verificare il corretto funzionamento di una singola cella, sono stati arrangiati i pixel e i loro relativi componenti per il calcolo delle velocità, in una matrice 5x5. In questa configurazione sono emersi però dei problemi di carico e di ampiezza dei segnali in gioco dovuti al fatto che, quando sono stati testati i singoli componenti non erano contemplati elementi al di fuori di quello in esame. I segnali di ingresso e di uscita sono ora diffusi e condivisi da più celle: i problemi sono stati risolti lavorando sulle grandezze circuitali (dimensioni dei mosfet) e sui parametri di - 86 - funzionamento del sistema (alimentazioni e tensioni di polarizzazione) tenendo conto delle nuove configurazioni ed equilibri creatisi. Un esempio lampante è quello legato alla somma delle correnti provenienti dal pixel, recanti l’informazione sulle derivate temporali, e quelle del moltiplicatore, rappresentative delle derivate spaziali. In fase di test, infatti, si sono riscontrati dei valori troppo piccoli nelle correnti Et+ ed Et- e si è dovuto modificare ulteriormente il pixel per dare la possibilità di regolare dall’esterno queste due correnti e renderle confrontabili con le altre due, governate a loro volta dalla tensione VbOut. Questo inconveniente portava alla totale perdita dell’informazione temporale e quindi ad una errata computazione della velocità. Figura 42: Correnti di uscita del circuito nel caso in cui Et+ ed Et- non siano confrontabili con quelle del moltiplicatore. Lo zero in uscita corrisponde ad una uguale illuminazione dei due pixel adiacenti a quello in esame, che porta ad una derivata spaziale nulla. Una volta stabilite in maniera definitiva le grandezze dei mosfet, il buon funzionamento risulta legato alla scelta dei valori delle tensioni di bias. Sono queste, come infatti abbiamo visto, che regolano i pesi dei singoli fattori dell’equazione differenziale che il circuito risolve. All’aumentare o - 87 - diminuire di questi singoli valori corrisponde un comportamento ed una risposta diversa del sensore. Le tensioni più importanti sono quelle che regolano l’HRes (VbHr), l’amplificatore differenziale (VbA) e l’uscita del moltipilicatore (VbOut). Abbiamo già visto come quest’ultima sia indispensabile per la corretta valutazione del moto, è indispensabile che le correnti di uscita del moltiplicatore siano sempre confrontabili con le derivate temporali del pixel: i valori assunti da questo parametro fissano la sensibilità del sensore e quindi il range di velocità misurabile, variandolo è possibile coprire più ordini di grandezza in base alle necessità di utilizzo. L’importanza di VbA è chiara nel momento in cui si mette in relazione alla sua funzione nell’equazione differenziale del sensore: questa grandezza è legata al bias constraint, un valore troppo alto porta ad un appiattimento dei valori di U e V sul potenziale di riferimento, annullando l’intera computazione della velocità, uno troppo basso trascura i miglioramenti apportati da questo termine reintroducendo nel sensore il problema dei moti ambigui. L’ultimo parametro fondamentale è la tensione di polarizzazione VbHr dell’HRes. Risultava evidente dalle simulazioni che la scelta di questo valore cambiava radicalmente il comportamento dell’uscita: la diffusione del segnale di ogni singola cella portava il sensore alla computazione del cosiddetto global motion nel caso di elevata condivisione, oppure di singoli valori, nel caso di propagazione minima, che avevano caratteristiche eccessivamente discontinue per un loro utilizzo. Parametrizzando le simulazioni rispetto a queste tensioni si è ottenuto un set di valori in grado di determinare un corretto funzionamento del circuito, sia per quanto riguarda la linearità nella risposta ai diversi valori di velocità, sia rispetto alle correnti in gioco che rimangono dell’ordine di alcuni nA, pienamente in accordo con il funzionamento sotto soglia dell’intera architettura, anche in previsione della successiva aggiunta della rete WTA. Nella figura seguente è mostrata la risposta del sensore al passaggio di oggetti con un contrasto del 50% e velocità che coprono un intervallo di valori tra 100 e 2000 pixel al secondo. - 88 - a b Figura 43: Simulazione del passaggio di oggetti aventi un contrasto del 50%, con velocità comprese tra 100÷1000 p/s (a) e 1000÷2000 p/s (b). - 89 - Conclusioni Il compito di questa tesi era di produrre un oggetto in grado di interfacciarsi con l’ambiente esterno attraverso un sistema di visione neuromorfa, e generare una risposta che fosse indicativa delle velocità degli oggetti presenti nel campo visivo. La visione, affidata ad una matrice di pixel esistenti, forniva i dati necessari per la successiva elaborazione e questo è stato il punto di partenza del progetto. Dopo la ricerca e l’analisi dei sistemi già esistenti si è trovato che alcuni, con opportune modifiche, potevano essere utili ai nostri scopi. Da questo punto il lavoro di disegno, modifica e ottimizzazione del dispositivo ha portato ai risultati desiderati, che si sono rivelati molto soddisfacenti anche sotto l’ottica del successivo passo: l’inserimento della rete Winner-Take-All. Le correnti che abbiamo ottenuto (cfr. fig.39) saranno gli ingressi di questo dispositivo in grado di determinare quello con il valore massimo e, con opportune controreazioni, di seguire il movimento dell’oggetto corrispondente nel campo visivo. Un dispositivo di questo tipo può fornire lo spunto per diverse applicazioni pratiche nelle quali si necessiti di avere informazioni riguardanti soggetti in movimento in una scena, ma anche, viste le sue corrispondenze con i modelli naturali, essere parte di un progetto più ampio di imitazione di alcune funzionalità biologiche. Il fascino di tali ricerche, infatti, non sta solo nel comprendere i meccanismi alla base dell’elettronica neuromorfa, branca in continua evoluzione e sempre più avida di conoscenza, ma nasce anche dalla coscienza che, in pieno spirito pionieristico, ispirandoci alla natura e imparando da essa, che per milioni di anni ha modellato, testato e ottimizzato i suoi frutti, si è realizzato qualcosa che si ispira e si avvicina a quell’opera ingegneristica quasi perfetta che è il corpo umano. - 90 - Bibliografia [1]. T. Asai, M. Koutani, Y. Amemiya, “An Analog-Digital Hybrid CMOS Circuit for TwoDimensional MotionDetection with Correlation Neural Networks”, Department of Electrical Engineering, Hokkaido University, Sapporo, Japan. [2]. J. Chey, S. Grossberg, E. Mingolla, “Neural dynamics of motion grouping: from aperture ambiguity to object speed and direction”, J. Opt. Soc. Am. A/ Vol. 14, No. 10/ October 1997, pg. 2570- 2594. [3]. T.G. Constantinou, “Micropower neuromorphic electronics for visual perception”, Ph.D. Thesis, Department of Electrical and Electronic Engineering, Circuit and System Section, Imperial College, London. 19 May 2003. [4]. T. Delbruck and C.A. Mead, “Analog VLSI phototransduction by continuous-time, adaptive, logarithmic photoreceptor cirucuits”; Tech. Rep. 30, Caltech Computation and Neural Systems Program, 1994. [5]. T. Delbürck. “Silicon retina with correlation-based, velocity-tuned pixels“, IEEE Trans. Neural Net., 4:529–541, May 1993. [6]. T. Delbrück, “Investigations of analog VLSI visual transduction and motion processing”, Ph.D. dissertation, Department of Computation and Neural Systems,California Institute ofTechnology, Pasadena, CA, 1993. [7]. T. Delbrück, S. C. Liu, E. Chicca, G.M. Ricci, S. Bovet, “Winner-take-all circuit” - A Retina/v1 Simple Cell Chip for Physiology Experiment Design or Classroom Demonstration Institute of Neuroinformatics \(INI), Univ. Of Zürich and ETH Zürich. [8]. T. Delbruck, C. Mead, “Analog VLSI Phototrasduction by Continous-Time, Adaptive, Logarithmic Photoreceeptor Circuits”. Computational and neural Systems Program Memo, California Institue of Technology, Ottobre 1983. [9]. R.Deutschmann and C.Koch, “Compact real-time 2D gradient-based analog VLSI motion sensor”, in Intl. Conference on Advanced Focal Plane Arrays and Electronic Cameras ,1998. [10]. R. A. Deutschmann and C. Koch, “An analog VLSI velocity sensor using the gradient method”, in Proc. IEEE International Symposium on Circuits and Systems ISCAS'98, 1998, vol. 6, pp. 649-652. - 91 - [11]. R. A. Deutschmann and C. Koch, “Compact real-time 2-D gradient-based analog VLSI motion sensor”. In Int. conf. on advanced focal plane arrays and electronic cameras, 1998. [12]. R.A. Deutschmann, C.M. Higgins, and C. Koch. “Real-time analog VLSI sensors for 2-D direction of motion”, In W. Gerstner,A. Germound, M. Hasler, and J.D. Nicoud, editors, Proc. International Conference on Arti_cial Neural Networks (ICANN97), volume 1327 of Lecture Notes in Computer Science, pages 1163-1168, Lausanne, Switzerland, October 1997. Springer Verlag. [13]. R.A. Deutschmann, “Analog VLSI Motion Sensors”, Thesis, Technische Universität München/Germany, California Institute of Technology/USA, July 29, 1997. [14]. M. Giulioni, “Analisi e progetto di sensori ottici neuromorfi”, Tesi di Laurea, Università La Sapienza, Roma, 2004. [15]. H.W. Haussecker, D.J. Fleet, “Computing Optical Flow with Physical Models of Brightness Variation”, IEEE Transactions On Pattern Analysis And Machine Intelligence, VOL. 23, NO. 6 pg 661- 673 , JUNE 2001. [16]. C.M.Higgins and C. Koch, “Analog cmos velocity sensors”, In Electronic Imagin’97, San Josè, CA. , February 1997. [17]. T.K. Horiuchi, T.G. Morris, C. Koch, and S.P. DeWeerth, “Analog VLSI circuits for attention-based, visual tracking”. In Advances in Neural Processing Systems 9. MIT press, 1997. [18]. Indiveri, G.. “Winner-take-all networks with lateral excitation”, J. Analog Integrated Circuits and Signal Processing, 13(1/2), 185–193, 1997. [19]. Indiveri, G. “Neuromorphic analog VLSI sensor for visual tracking: Circuits and application examples”, IEEE Trans. on Circuits and Systems II, 46(11), 1337–1347, November 1999. [20]. Indiveri, G., “A 2D neuromorphic VLSI architecture for modeling selective attention”, In Proceedings of the IEEE-INNS-ENNS International Joint Conference on Neural Networks; IJCNN2000..Modeling Selective Attention 2879, 2000. [21]. G. Indiveri, , R. Mürer, J. Kramer. “Active vision using an analog VLSI model of selective attention”. Submitted , 2000. [22]. G. Indiveri, A. Whatley, & J. Kramer, “A reconfigurable neuromorphic VLSI multi-chip system applied to visual motion computation”, In Proceedings of the Seventh International Conference on Microelectronics for Neural, Fuzzy and Bio-inspired Systems; Microneuro ’99 (pp. 37–44). Los Alamitos, CA:IEEE Computer Society, April 1999. - 92 - [23]. G. Indiveri, “Modeling Selective Attention Using a Neuromorphic Analog VLSI Device”. [24]. G. Indiveri, “Winner-take-all networks with lateral excitation" accepted for publication in J. Analog Integrated Circuits and Signal Processing, 1996. [25]. G.Indiveri, J.Kramer, and C.Koch “System implementations of analog VLSI velocity sensors”, IEEE Micro 16:40 .49, 1996. [26]. Indiveri,G.,P.Oswald,and J.Kramer, “An adaptive visual tracking sensor with a hysteretic Winner-Take-All network”, IEEE pp.324 .327, 2002. [27]. G. Indiveri and R. Douglas “Neuromorphic Vision Sensors”, Institute of Neuroinformatics UNI- ETH, Zurich (ppt) [28]. G. Indiveri, “A current-mode analog hysteretic winner-take-all network, with excitatory and inhibitory coupling”, Jour. of Analog Integrated Circuits and Signal Processing, Submitted. 2000. [29]. G. Indiveri, J. Kramer, C. Koch, “Neuromorphic Vision Chips: intelligent sensors for industrial applications”, Computation and Neural Systems Program California Institute of Technology Pasadena, CA 91125, U.S.A. [30]. J. Kramer, “An Integrated Optical Transient Sensor”. To be published. [31]. J. Kramer, R. Sarpeshkar and C.Koch, “Pulse-based analog VLSI velocity sensors", accepted for publication in IEEE Trans. Circuits and Systems II, 1995. [32]. J. Kramer, G. Indiveri, and C. Koch, “Analog VLSI motion projects at Caltech” in Proc. EUROPTO Conf. On Advanced Focal Plane Arrays and Electronic Cameras, (Berlin, Germany), October 1996. [33]. J. Kramer, R. Sarpeshkar, and C. Koch, “An analog VLSI velocity sensor", in Proc. Int. Symp. Circuit and Systems (ISCAS), pp. 413-416, (Seattle, WA), May 1995. [34]. J. Kramer, “Compact integrated motion sensor with three-pixel interaction”, IEEE Trans. Pattern Anal. Machine Intell.,18:455–460, 1996. [35]. M.H. Lei and T.D. Chiueh, “An analog motion field detection chip for image segmentation” IEEE Trans. on circuits and systems for video technology, vol. 12, no. 5, pp. 299–308, May 2002. [36]. S.C. Liu, J. Kramer, G. Indiveri, T. Delbruck, R. Douglas, “Analog VLSI: Circuits and Principles”, MIT Press, 2002. [37]. C. Mead, “Analog VLSI and Neural Systems”, Addison-Wesley, Reading, MA, 1989. [38]. Millmann, Halkias. “Microelettronica”, Bollati Boringhieri, 1978. - 93 - [39]. V. Pant, “Modular neuromorphic vlsi architectures for visual motion and target tracking”, Thesis, faculty of the Electrical and Computer Engineering Department in part. ful. for the Degree of Master of Science, University of Arizona, Feb. 2003. [40]. W. D. Prophet, D. D. Hoffman, C. M. Cicerone, “Contours from apparent motion: A computational theory”, Department of Cognitive Science University of California Irvine, California 92717, 2-6-98. [41]. R. Sarpeshkar, J. Kramer, G. Indiveri, and C. Koch, “Analog VLSI architectures for motion processing: from fundamentals limits to system applications”, Proc. IEEE, 84(7):969987, July 1996. [42]. A.A. Stocker, “Constraint Optimization Networks for Visual Motion Perception Analysis and Synthesis”; Ph.d. thesis no. 14360, Swiss Federal Institute of Technology ETHZ, Zürich, Switzerland, March 2002. [43]. A.Stocker and R. Douglas, “Computation of smooth optical flow in a feedback connected analog network” in Advances in Neural Information Processing Systems 11, M. Kearns, S. Solla, and D. Cohn, Eds., Cambridge, MA, 1999, pp. 706–712, MIT Press. [44]. A.Stocker, R. J. Douglas,“Analog integrated 2-d optical flow sensor with programmable pixels”, to be published 2003. [45]. A.B. Torralba, “Analogue architecture for vision: cellular neural networks and neuromorphic circuits”, Thesis. 17 Oct 1999. [46]. ____, “Computer Vision IT412”, School of Computer Science & Software Engineering. - 94 - Ringraziamenti La tesi è il traguardo di una vita di studi, fatiche, gioie e delusioni. Durante gli anni sono state tante le persone che mi hanno sostenuto ed aiutato a raggiungerlo e devo anche a loro se ora posso scrivere quest’ultima pagina. Il lavoro di tesi diventa il coronamento di tutte le conoscenze ed esperienze accumulate, nel quale si riassumono tutti gli sforzi finora fatti e se ne raccolgono i frutti. Desidero ringraziare il Dott. Gaetano Salina per avermi dato la possibilità di mettere in pratica quello per cui ho studiato in tutti questi anni, accrescendo ancora le conoscenze nel campo elettronico, su una branca interessante come quella neuromorfa. Durante la tesi, le chiacchierate fatte sono state sempre spunto di idee e motivazione, e la sua discrezione mi ha fatto lavorare sempre in un clima di fiducia reciproca e tranquillità. Un grande ringraziamento va a Davide Badoni che mi ha ospitato e con molta pazienza, iniziato allo studio ed alla progettazione VLSI, sempre prodigo di suggerimenti e tempo da dedicarmi; un grazie anche ad Andrea per le sue essenziali e determinanti “dritte”. Ma lo studio non è stato solo libri e laboratori, l’università mi ha regalato l’amicizia di tante persone speciali che in tutti questi anni mi sono state vicine. Germano, Marco (il Gonflo), Marco, Sergio, è con loro ho diviso le fatiche, lo stress, le sconfitte e le gioie degli esami, e sostenendoci gli uni agli abbiamo superato tanti “scogli”, non solo universitari. Ma probabilmente non sarei qui se alle spalle non avessi la mia splendida famiglia, sempre pronti, a sorreggermi nei dubbi e nelle crisi , che affliggono ogni studente durante la sua carriera. Sono stati spesso il mio “grillo parlante”, ma loro “tifo” per ogni esame, e la stima che mi hanno continuamente manifestato è stato il carburante per arrivare fino qui. Un ringraziamento è per il mio angelo, Marta. Voglio ringraziarla per la sua compagnia, che mi ha regalato la tranquillità necessaria ad affrontare i momenti più difficili, per la sua pazienza nell’ascoltarmi ripetere i miei ultimi e più impegnativi esami, per la sua comprensione in questi ultimi giorni. Avendo di sicuro tralasciato qualcuno, desidero, infine, ringraziare con un abbraccio, tutti quelli che hanno messo po’ di loro in tutto questo. - 95 -