11
Neurona: El propósito del sistema es simular la sinapsis de un módulo neuronal que posee cuatro entradas en paralelo, en donde se espera una respuesta de un 1 lógico al cumplirse que: n=1 N W n X n = S La respuesta S deberá ingresar a un comparador, si esta llegase a ser menor a un τ establecido, la respuesta final del sistema será un cero, de lo contrario esta será un uno lógico. En términos generales la caja negra del sistema se verá de la siguiente manera: El modelo del sistema en su totalidad será el siguiente:

Neuron A

Embed Size (px)

DESCRIPTION

aasdwa

Citation preview

Page 1: Neuron A

Neurona:

El propósito del sistema es simular la sinapsis de un módulo neuronal que posee cuatro entradas en paralelo, en donde se espera una respuesta de un 1 lógico al cumplirse que:

∑n=1

N

W n∗X n=S

La respuesta S deberá ingresar a un comparador, si esta llegase a ser menor a unτ establecido, la respuesta final del sistema será un cero, de lo contrario esta será un uno lógico.

En términos generales la caja negra del sistema se verá de la siguiente manera:

El modelo del sistema en su totalidad será el siguiente:

Page 2: Neuron A

Se denotan las 4 entradas del sistema, en donde se iniciará el proceso de multiplicación de ambos pares de señales en un módulo distinto, seguido a esto se realizará el concatenado de:

Suma. Comparación. Asignación. Salida final del sistema.

Se realizó un debido banco de pruebas, donde se probaron todas las respectivas combinaciones de X1 , X2 ,W 1 yW 2, lo anterior nos confirma que en un solo caso se obtendrá un 1 como una respuesta a la señal de salida:

Solamente cuando:

X1=11

X2=11

W 1=11

W 2=11

Se obtendrá un valor lógico a la salida, esto debido a que en decimales:

∑n=1

2

W n∗X n=18> τ=15

Page 3: Neuron A

Con lo anterior, se hubiese podido asignar una compuerta AND con 8 bits de entradas, donde cada par de bits representarían las 4 entradas del sistema, simplificando de manera considerable el trabajo realizado. Lo anterior se puede verificar con la siguiente tabla de verdad:

X_11 X_10 X_21 X_20 W_11 W_10 W_21 W_20 Led_out0 0 0 0 0 0 0 0 0

……………..

1 1 1 1 1 1 1 1 1

Implementación de cada módulo:

Multiplicador:

El multiplicador de dos por dos bits, permite multiplicar dos variables, hasta obtener una salida de cuatro bits. Este dispositivo posee la siguiente tabla de verdad:

De este modo se tiene cada uno de los bits de salida:

X3=ABCD

X2=AC BD

X1=AD⊕BC

X 0=BD

Se realizó el multiplicador utilizando la función producto de Verilog, se debieron definir una par de entradas de dos bits, y una salida de 4 bits. Para realizar las respectivas pruebas del sistema, se debió generar un banco de pruebas donde se le variaran las entradas al módulo, para de esta manera comparar la respuesta dada por este, con el valor esperado según la entrada.

Page 4: Neuron A

Sumador:

Las salidas de ambos módulos multiplicativos deberán ser sumadas. El par de entradas del sumador constan de caracteres numéricos de 4 bits, siendo la suma resultante, una salida de 5 bits. Se utilizó la función de adición existente ya en Verilog, este consta de un sumador completo, por lo que se incluirá acarreo, dándonos la salida correspondiente a la suma de ambas entradas.

Viendo el problema de manera general, siendo A y B las entradas del sumador, siendo estas últimas informaciones binarias de n bits:

A=An−1 An−2… .. A2 A1 A0

B=Bn−1Bn−2… ..B2B1B0

La adición de A+B será un proceso de n sumas parciales, donde se comienza por los bits de menores pesos. Se debe comenzar con A0 y B0 dando esto un S0 y un bit de carrier C 0, este último será el elemento integrante de la suma, en los siguientes dos bits en orden ascendente de peso. Por lo anterior, el resultado de todas las operaciones de suma incluirá un acarreo C i con cada suma Si, el elemento de acarreo será un factor integrante en los dos bits siguientes, y así hasta terminar el proceso de suma:

S=Cn−1Sn−1Sn−2… ..S2S1S0

Verilog utiliza sumadores completos en cadena, de forma que desde bit menos significativo, hacia el bit más significativo, el acarreo de entrada del bit i, esté conectado al acarreo de salida del bi t j−1. El primer bit requerirá de un semi-sumador, los demás si requerirán un sumador completo.

Page 5: Neuron A

Se probó el sumador implementado utilizando un banco de pruebas, donde se debió realizar una variación de ambas entradas, para verificar la salida del mismo:

Comparador:

Nuestro comparador debe realizar una discriminación entre la salida que obtenemos del sumador, con el valor de nuestro τ establecido. Para lograr lo anterior, se debió utilizar condiciones para asignarle el respectivo valor a la salida según el caso. Si el valor dado por la salida de la suma, fuese mayor a 15, se obtendrá un 1 lógico, de lo contrario se asignará un cero. Lo último sería asignar la respectiva salida de un bit a la salida del sistema.

Implementación en VERILOG:

Page 6: Neuron A

Sumador:

Multiplicador:

Comparador:

Módulo Neurona:

Page 7: Neuron A

Bancos de pruebas: Sumador_tb:

Se ingresó una serie de entradas según el tiempo, esto con el fin de ver el resultado del módulo en cada variación de tiempo.

Page 8: Neuron A

Comparador_tb:

Se debió utilizar el método anterior para poder añadirle un bit en cada tiempo a la entrada inicial del comparador, esto con el fin de evidenciar el cambio realizado por este cuando es ingresada una entrada mayor a 1510.

Multiplicador_tb:

En este caso se ingresaron todas las combinaciones de ambas entradas de dos bits, verificándose la salida del sistema.

Page 9: Neuron A

Neurona_tb: