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

Analisi e sviluppo di un sensore ottico neuromorfo VLSI per il