• No se han encontrado resultados

4. Arquitectura del Imager CNN Simplicial

4.5. Variaciones en la arquitectura

5.5.2. Tareas Paso a Paso

Las tareas que el circuito puede realizar son: almacenar un valor en un registro, leer el valor de un registro, capturar una imagen, realizar la conversión AD de la imagen capturada, cargar una función en la memoria, procesar una imagen y sumar el valor de todos los registros de una imagen completa. A continuación se describen brevemente como realizar algunas de estas tareas.

Procedimiento de Escritura de una imagen o de un valor en un registro Como primer paso se debe seleccionar la celda destino con las entradas Col y Row. Una vez hecho esto, se habilita el registro correspondiente con las señales correspondientes. Se coloca el dato a almacenar en la entrada BusIn, y se aplica

un pulso al reloj del registro correspondiente. Para almacenar una imagen completa en el arreglo, se debe direccionar una por una las celdas e ir almacenando el valor correspondiente. Si se desea almacenar el valor del contador en algún registro, se coloca la señal CBusB en ”1”, se habilita la celda en la que se quiere almacenar y se aplica un pulso de reloj. En este caso, todas las celdas del arreglo copian el valor del contador en el registro habilitado. La Fig. 5.22 muestra el procedimiento para copiar los datos del contador al registro W, y como almacenar datos en los registros X, U y T. Se debe notar que solo se almacenaran en el registro W, los datos del contador que sean menores que los almacenados previamente.

ROW VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV COL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV BUSin ZZZZZZZZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV LX LLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLL LU LLLLLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLL LT LLLLLLLLLLLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LLLLLLLLLLLLLH LL CbusB HHHHHHH LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LW LLLHH LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 0 1 2 3 4 0 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

del registro de la celda seleccionada se encuentra en la señal BusOut. Para leer

una imagen completa en el arreglo, se debe direccionar una por una las celdas e ir leyendo el valor correspondiente. Si se desea leer el valor del contador, primero se debe almacenar en un registro y luego leer el registro.

ROW VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV COL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV SelWTXUb LLLLLLLLLLLLLLHHHHHHHHHH LLLLLLLLLLHHHHHHHHHH LLLLLLLLLLHHHHHHHHHH LLLLLLLLLLHHHHHHHHHH SelXWTUb LLLLLLLLHHHH LLLLHHHH LLLLHHHH LLLLHHHH LLLLHHHH LLLLHHHH LLLLHHHH LLLLHHHH BUSOut ZZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 0 1 2 3 0 2 1 3 5 2 1 3 5 2 1 3 5 2 1 3 5

Figura 5.23: Secuencia se señales para leer datos de los registros.

Procedimiento para capturar una imagen y realizar su conversión a digital Al comienzo del ciclo de adquisición se carga el fotodiodo a una tensión de ini- cialización jada desde el exterior. Para esto se coloca la tensión deseada en la señal

V DDP ixel y se aplica un pulso en la señal RstP xl. Luego se coloca el Bus digital, BusIn, en cero y la tensión analógica,AnalogIn, en la tensión correspondiente en la

cual se realice la comparación. En un siguiente paso se abre el transistor que resetea al pixel, dejando al diodo integrar fotones libremente. Se habilita el comparador a través de la señalHabCompy se equilibra el comparador colocando la señalClkCmp

en ”1”. Al colocar la señal ClkCmp en”0” la salida del comparador toma un valor digital”0” o”1”en función de la comparación de la rampa analógica con la entrada

AnalogIn. Luego del tiempo de establecimiento del comparador (este tiempo no

supera losnanosegundos), se aplica un pulso a la señalLU, para almacenar el valor

a la señal ClkCmp, y se aplica un pulso a la señal LU, el ciclo se repite para todos

los valores de la rampa digital desde 0 hasta 62. Luego se deshabilita el comparador colocando en ”0” la señal HabComp y en el registro U queda almacenado el valor

de la conversión AD. La Fig. 5.24 muestra la secuencia de señales para realizar la conversión AD. RST HHHHHHHHHHHHHHHHHHHHHHHHHHHHH...HHHHHHHHHHHHHHHHHHHHHHHHHHH LLLLLLL BIAS VAnalog LZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ...ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZL HAB LHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH...HHHHHHHHHHHHHHHHHHHHHHHHHHH LLLLLLL LLL LLLLL LLLLL LLLLLH...H LLLLL LLLLL LLLLLLLLLLLLLLL VVVVVVVVVVVVVVVVVVVVVVVVV...VVVVVVVVVVVVVVVVVVVVVVVVVVVV LLLLLLLHH LLLHH LLLHH LLL...HH LLLHH LLLHH LLLLLLLLL LLLLLLLLH LLLLL LLLLL LLLLL...LH LLLLH LLLLH LLLLLLLLL BUS CLK LU 0 1 2 62 63 64

Figura 5.24: Secuencia se señales para realizar la conversión AD.

Procedimiento para cargar las Funciones Función F(Vf) y G(Vg)

Las funciones que evaluará el sistema se almacenan en latches y la forma de ingresarlos es a través de un registro serie. Para ingresar datos, se coloca el valor de la función F (G) en la entrada Fin (Gin), del vértice 00000 y se aplica un pulso de reloj a la señal F clk (Gclk). Luego se coloca el valor de la función F (G) en la

entrada F in (Gin), del vértice 00001 y se aplica un pulso de reloj a la señal F clk

(Gclk). Esto se repite hasta el vértice 11111. Una vez cargado el registro serie con los valores de la función se latchean para enviarlos a todas las celdas con la señal

LatchF G. La Fig. 5.25 muestra la secuencia de señales para cargar una función F.

CLK LLLLHHH LLLHHH LLLHHH LLLHHHH...LLLLHHH LLLHHH LLLLLLLLLLL

DATA VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV...VVVVVVVVVVVVVVVVVVVVVVVVVV

LATCH LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL...LLLLLLLLLLLLLLLLLLLLLLLLLHH

F31 F30 F29 F1 F0

el valor de las entradas de los vecinos de los borde a través de la señal Borde, y se

selecciona el tipo de operación que se le aplicara a las funciones F(Vf) y G(Vg), a través de la señal F oGin. Luego de haber inicializado las celdas y de establecer las

señales de conguración del procesamiento se comienza con la rampa de programa. Se coloca el bus (BusIn) en cero, se selecciona el registro al cual se le aplicara la

función F(Vf) , con las señales SelW T XU b, SelXW T U by se latchea el valor de la

comparación con la señalLatchF. Luego se selecciona el registro al cual se le aplicara

la función G(Vg) , con las señalesSelW T XU b,SelXW T U b, y se latchea el valor de

la comparación con la señal LatchG. Una vez realizado esto, los multiplexores que

leen la memoria tendrán los valores de las funciones de los vértices correspondientes y la salida del bloque FoG ya tendrá el valor de la función que se aplicará. El siguiente paso es realizar la integración del valor de la función aplicando un pulso en la señal

ClkC. Luego se incrementa el valor del Bus, y se repite el procedimiento hasta que

el valor del Bus llegue a 62. Al nalizar la rampa de procesamiento, el valor del nuevo estado queda almacenado en el contador. Como último paso se debe cargar el valor del contador en un registro. La Fig. 5.26 muestra la secuencia de señales para realizar el procesamiento.

Procedimiento para obtener la suma total de valores en imagen

Este procedimiento se utiliza para realizar la suma de todos los valores de los registros de todo el arreglo. Si la imagen esta binarizada, valiendo el fondo 0 y el objeto 1, este procedimiento sirve para calcular el área del objeto y si se aplica un reconocimiento de bordes, y se realiza este procedimiento, la salida es el perímetro del objeto medido en cantidad de pixeles. Estos valores son importantes para obtener descriptores de imagen, tal como se explicó en el capítulo 2. Para comenzar, se debe aclarar que se necesita un acumulador externo para obtener el resultado nal de la

SELF VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV SELG VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV FOG LVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV BORDE LVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV BUS VVVVVVVVVVVVVVVVVVVVVVVV...VVVVVVVVVVVVVVVVVVVVVV SELREG VVVVVVVVVVVVVVVVVVVV...VVVVVVVVVVVVVVVVVV LF LLLL LLLLLLLL LLLLLLLL... LLLLLLLL LLLLLLLLLLLL LG LLLLLLLL LLLLLLLL LLLL...LLLL LLLLLLLL LLLLLLLL CCKF LLLLLLLLLLLL LLLLLLLL ...LLLLLLLL LLLLLLLL LLLL 0 1 61 62 F G F G F G F G

Figura 5.26: Secuencia se señales para realizar el procesamiento de una imagen.

suma y se debe inicializar en cero. Luego se selecciona la primera columna y la salida del sumador se almacena en el acumulador externo. Luego se selecciona la siguiente columna y se suma el valor del sumador al valor del acumulador. Se realiza este procedimiento hasta que se recorren todas las columnas. Al recorrer toda la imagen (seleccionar la última columna) el valor del acumulador contiene el valor de la suma de todos los valores de las celdas del arreglo.