rna fpga pwm

29
UNIVERSIDAD AUTONOMA DE TLAXCALA FACULTAD DE CIENCIAS BASICAS, INGENIERIA Y TECNOLOGIA MAESTRIA EN CIENCIAS DE LA INGENIERIA EN COMPUTACION Tema de Tesis : DESARROLLO DE UNA RED NEURONAL EN UN FPGA USANDO PWM Alumna: Ing. Adriana Ruiz Pastor. i FCBIT

Upload: scan31

Post on 26-Jul-2015

170 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Rna Fpga Pwm

UNIVERSIDAD AUTONOMA DE TLAXCALA

FACULTAD DE CIENCIAS BASICAS, INGENIERIA Y TECNOLOGIA

MAESTRIA EN CIENCIAS DE LA INGENIERIA EN COMPUTACION

Tema de Tesis :

DESARROLLO DE UNA RED NEURONAL EN UN FPGA USANDO PWM

Alumna: Ing. Adriana Ruiz Pastor.

Asesores: Dr. Federico Ramírez CruzM en C. Juan Manuel Álvarez Ledesma

i

FCBIT

Page 2: Rna Fpga Pwm

Resumen

Una de las áreas del hardware que es interesante, está enfocada a la aplicación de redes neuronales artificiales (RNAs), las cuales tienen la característica de tener una capacidad de aprendizaje. Dicha area ha venido desarrollando tecnologías que permiten implementarse en procesos de automatización y control. En este trabajo de tesis se desarrolla una RNA que nos permita observar su comportamiento, su función de aprendizaje y su reacción ante una entrada poco común como lo es la modulación por ancho de pulso (PWM), cabe mencionar que esta RNA será implantada en un dispositivo programable como lo es el FPGA (Field Programmable Gate Array). Se espera que al ser implantada la RNA en un dispositivo hardware esta se desempañe con mayor capacidad de procesamiento, aprovechando los recursos que el mismo FPGA le proporcionara.

Índice de Términos – Arreglo de compuertas programables en el campo (FPGA), capacidad de aprendizaje, redes neuronales (RNs), modulación por ancho de pulso (PWM).

ii

Page 3: Rna Fpga Pwm

Contenido

Resumen............................................................................................................................ii

Prefacio..............................................................................................................................v

INTRODUCCION..........................................................................................................vi

Capitulo 1. Conceptos generales....................................................................................3

1.1 Redes neuronales.............................................................................................3

1.2 VHDL..............................................................................................................5

1.3 Lenguaje de programación..............................................................................5

1.4 FPGA´s............................................................................................................6

1.5 PWM’s.............................................................................................................7

Capitulo 2 Descripción Funcional de una red neuronal desarrollada en un FPGA. 8

2.1 Generalidades..................................................................................................8

2.2 Características de una red neuronal artificial...................................................8

2.3 Características del FPGA...............................................................................102.3.1 Entradas Digitales2.3.2 Convertidores2.3.3 Salidas Digitales

Capitulo 3. Diseño y Desarrollo de la red neuronal

3.1 Introducción3.2 Funcionalidad de una red neuronal

iii

Page 4: Rna Fpga Pwm

3.3 Análisis del modelo de una red neuronal backpropagation3.4 Simulación de la red neuronal backpropagation en MATLAB

Capitulo 4. Implementación de la red neuronal en el FPGA

4.1 Introducción4.2 Desarrollo de la red neuronal en el FPGA4.3 Integración de la señal del PWM a la red neuronal4.4 Observaciones

Capitulo 5. Evaluación y resultados del desarrollo de la red neuronal usando el PWM

5.1 Evaluación de la red neuronal5.1.1 Resultados obtenidos

5.2 Evaluación del desarrollo de la red neuronal en el FPGA5.2.1 Resultados obtenidos

5.3 Evaluación del la integración del PWM a la red neuronal5.3.1 Resultados obtenidos

Conclusiones y trabajos futurosGlosarioReferencias

Lista de tablasLista de figuras

Bibliografía:.....................................................................................................................13

Plan de trabajo:................................................................................................................15

iv

Page 5: Rna Fpga Pwm

Prefacio

Se propone utilizar la capacidad de procesamiento, utilizando redes neuronales artificiales (RNA) ya que nos permiten aplicar el procesamiento paralelo y aplicar un número especifico para las diferentes aplicaciones, de procesadores sencillos.

Un FPGA (Field Programmable Gate Array) es un arreglo de compuertas lógicas en la aplicación, es decir este dispositivo nos permite generar dispositivos electrónicos, programándolos en sus estructura de celdas; para esto es necesario hacer uso del lenguaje de simulación llamado VHDL ( Very Hardware Description Language ) el cual nos permite realizar el dispositivo así como una simulación de los mismos por bloques. Una vez realizada esta etapa se sintetizar el código, se genera un archivo para programar el dispositivo programable FPGA (Field Programmable Gate Array).

Ahora el PWM (pulse width-modulation, modulación de ancho de pulso) y su papel dentro de este trabajo es darnos las entradas necesarias para nuestra red, ya que con este dispositivo generamos diferentes pulsos los cuales la red reconocerá y diferenciara estos pulsos para realizar el procesamiento de los mismos. Con lo que respecta al ruido utilizando esta técnica se obtiene una lectura de resultados sin presencia de ruido.

Objetivo general: Implantar una red neuronal artificial en un dispositivo programable como es el FPGA usando PWM como entrada

Objetivos particulares

Aprender a modelar y diseñar una red neuronal Implementar una NNA en un dispositivo programable Comparar el tiempo de procesamiento de una NNA basados en trabajos

reportados con microcontroladores contra el propuesto en este trabajo.

v

Page 6: Rna Fpga Pwm

INTRODUCCION

Actualmente en las investigaciones realizadas para este trabajo de tesis, hemos seleccionado algunas de las soluciones que investigadores reconocidos han otorgado a este tipo de problemas, refiriéndonos al trabajo de redes neuronales implementadas en hardware; de acuerdo a algunos artículos que analizamos son las siguientes:

La inquietud de aplicar una red neuronal en algún dispositivo de hardware como lo son los dispositivos lógicos programables sigue siendo un buen tema de investigación ya que se enfrenta a diferentes retos; como son los tipos de sistemas con el que se trabaja y a veces sus conversiones; tales como las redes neuronales que trabajan con entradas analógicas, pero de aquí que el reto de transformarlas a digitales por ser una implementación hardware [1].El estudio de las redes neuronales ha sido un gran aporte al área de electrónico-digital ya que ha permitido el desarrollo de numerosas aplicaciones, tales como el hecho de querer solucionar problemas lógicos aplicados a hardware como los son las operaciones XOR [2].

Algunos de los estudios sólo se han quedado en proyectos de simulación que algunos autores han desarrollado para simular el comportamiento de algún tipo de red neuronal [3][4]. La mayoría de trabajos han sido desarrollados por medio de herramientas orientadas a la simulación, una de las cuales es tan poderosa en su área como lo es MATLAB; ya que proporciona numerosas herramientas, módulos de programación y gráficos para distintas aplicaciones.

Actualmente la implementación de circuitos electrónicos en dispositivos lógico programables es una línea de investigación atractiva para la comunidad científica, ya que atreves de una herramienta de programación tenemos la posibilidad de diseñar, simular y sintetizar estas aplicaciones [5], son los llamados CAD (Diseño Asistido por Computadora). Nos permiten realizar el diseño de los dispositivos electrónicos necesarios para el procesamiento y realización de la simulación o aplicación; estos diseños ya son modelados para cada dispositivo programable que el mercado

desarrolla de acuerdo a la demanda. Uno de los lenguajes de programación que realizan este tipo de aplicaciones con VHDL(Lenguje de descripción y modelado de circuitos digitales, VHDL es el acrónimo que representa la combinación de VHSIC y HDL,

vi

Page 7: Rna Fpga Pwm

donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware

vii

Page 8: Rna Fpga Pwm

Description Language ) [6], con él podemos realizar el desarrollo completo de hardware, ya que para llegar a esto se pasa por pruebas y simulaciones previas. Es una forma de desarrollo económico ya que podemos cambiar el diseño electrónico de acuerdo a las necesidades que se tengan durante el desarrollo del estudio.

El estudio de las redes neuronales desde su desarrollo ha dejado huella en diversas áreas de la ciencia. Por ejemplo en la Universidad Autónoma de Tlaxcala, en FCBIyT en 1999 en un proyecto de tesis desarrollaron un programa discriminador de señales nerviosas utilizando una red neuronal para reconocimiento espacio-temporal; y el objetivo del trabajo era desarrollar un programa que sirviera de apoyo a experimentos en problemas biológicos cuya naturaleza es el análisis multiunitario de señales, implementándolo en el sistema nervioso central en ratas [7].

Al observar los resultados de algunos trabajos que han utilizado las redes neuronales para mejorar el funcionamiento de sus procesos de comunicación, tal es el caso del Dr. Vicente Alarcón Aquino y sus colegas [8] que al haber escogido una red neuronal Backpropagation les, descubrieron que generaba un menor error de reconocimiento además de que contenía un menor número de neuronas que la red RBF(Radial Basis Function), esto reducía el tiempo de respuesta del sistema además de que permitía un ahorro en el uso de memoria. Ese es uno de los motivos del porque en este trabajo de tesis pretendemos diseñar e implementar una red de tipo BPN (Backpropagation Network).

El modo en cual posteriormente la implementación sea evaluada está por definirse, ya que con el desarrollo del proyecto se podrán observar los límites y capacidades del sistema. Una implementación que nos pareció interesante seria realizar una aplicación como la que se desarrollo en la universidad de Patras al oeste de Atenas [9], donde se realizo la aplicación para sistemas médicos expertos (MES) y esto por la necesidad de las variantes que representan las enfermedades pulmonares, con solo una red de 8 neuronas lograron realizar que el sistema aprendiera los diferentes síntomas que presenta un persona con grado avanzado de enfermedad pulmonar, para poder describir datos que ayudaran a los médicos a tener un mejor cuadro de diagnostico.

A todo esto el hecho de que utilicemos un PWM (pulse width-modulation, modulación de ancho de pulso) es debido a que como se demostró con el trabajo de El-Masry [9] que esta técnica se puede utilizar para aplicar de manera eficiente una WSO (weighted summation operation, Operación suma ponderada) que se requieren en la realización de una RNA ( Artificial Neural Network, Red Neuronal Artififcial) general. También podemos mencionar de este trabajo que se observo que su aplicación son de fácil programación, además que por vía electrónica son ajustables las ganancias de las neuronas, y de son de estructuras modulares.

Y no solo estas investigación han sido plasmadas en artículos científicos también existen investigación documentadas en libros. Un ejemplo es el del autor Amos R. Omondi [10] que nos muestra una investigación de implementaciones de redes neuronales sobre dispositivos programables tales como los FPGA (Field Programmable Gate Array) lo cual sigue siendo considerado una aplicación difícil de implementar. Un FPGA se basa en una matriz de hardware configurable debido a los bloques que están interconectados por una tela de enrutamiento. Los circuitos son plenamente reprogramables y, por lo tanto, es muy flexible, son algo fácil de usar y de programar,

1

Page 9: Rna Fpga Pwm

ofrecen un gran rendimiento, y están disponibles a un costo razonable. No es de extrañarse que los FPGAs, ocupen un lugar en el área de control y automatización, desplazando de ranking a los microcontroladores y a los microprocesadores (por sus capacidades de velocidad de procesamiento, inflexible, alto costo de desarrollo) y la realización de programación pura (un análisis minucioso, flexible y de bajo costo de desarrollo), que los han hecho cada vez más populares en los últimos años, no sólo para la aplicación de neurocomputadoras.

2

Page 10: Rna Fpga Pwm

Capitulo 1. Conceptos generales

1.1 Redes neuronales

Las redes neuronales artificiales son modelos de comportamiento inteligente que pueden ser construidos con sistemas artificiales basados en el sistema nervioso de los seres vivos; en la figura Fig. 1 se muestra un elemento de procesamiento (PE) biológica y una representación artificial de la misma [4]. Las aplicaciones de sistemas basados en redes neuronales han permitido diseñar redes con propósitos específicos, tales como el reconocimiento de patrones, la optimización de procesamiento de datos, la automatización de sistemas electrónicos basados en lógica difusa, etc.

Fig. 1 Representación de elemento de procesamiento (PE)

Las RNAs inspiradas en el funcionamiento del sistema nervioso de seres vivos han permitido a las computadoras modernas aprender, mediante algoritmos bien definidos de redes neuronales, teniendo como auxiliares auditivos y transductores de visión de amplio espectro. Por otro lado las computadoras digitales de arquitectura tradicional abordan ese tipo de tarea con mayores dificultades que las arquitecturas de redes celulares neuronales (CNN) que pueden ser diseñadas con arreglos de bloques en VHDL (Very High ) [4].

En algunas literaturas [4] definen la forma de procesamiento de los sistemas de computo tradicional como una forma de procesamiento secuencial; en el cual el computador serial consiste por lo general de un solo procesador que se encarga de manipular instrucciones y datos lo cuales se encuentran almacenados en memoria. En cambio una RNA no ejecuta instrucciones, esta responde a las entradas en paralelo que se le presentan, el resultado no se almacena en ninguna memoria, debido a que de esta forma presenta el estado de la red para lograr un equilibrio.

3

Page 11: Rna Fpga Pwm

Esta diferencia de procesamiento ha motivado a las comunidades científicas a estudiar sistemas neuronales biológicos en un esfuerzo por diseñar sistemas computacionales con capacidades semejantes a las del cerebro [4]. Así, la tecnología de circuitos integrados modernos esta ofreciendo su potencialidad para construir redes paralelas masivas con base en elementos simples de procesamiento.

Una idea clara del procesamiento de una neurona artificial se observa en la Fig. 3, en donde puede observarse el recorrido de un conjunto de señales que entran a una red.

Fig. 3 Proceso de una red neuronal

De esta manera, la disciplina formal del estudio de redes neuronales (la neurocomputacion), sienta las bases necesarias para programar y coordinar el comportamiento de diseños de procesamiento.

Los modelos de redes neuronales están ofreciendo nuevos enfoques para resolver problemas, mismos que se pueden simular en maquinas de propósito especifico, aceleradores de hardware con arquitectura neuronal incluso en computadoras convencionales. A fin de alcanzar velocidades de procesamiento máximo pueden utilizarse arreglos con base en tecnología de procesamiento óptico o en VLSI de silicio. El aspecto fundamental reside en utilizar el modelo neuronal de procesamiento paralelo en tiempo real con una enorme cantidad de procesadores sencillos.

4

Page 12: Rna Fpga Pwm

1.2 VHDL

En cuanto al VHDL (Very High Speed Integrated Circuit) [15] es un lenguaje de descripción y diseño de circuitos integrados, de tal manera que los humanos y las maquinas puedan leer y entender. Describe la funcionalidad y la organización de sistemas hardware digital. El surgimiento del VHDL se da a mediados de la década de los 80’s. Surge como una necesidad manifiesta de disponer de un lenguaje estándar capaz de dar el soporte necesario al proceso completo de diseño de sistemas electrónicos, en sus distintas etapas y niveles de abstracción cuya complejidad se ha ido incrementando cada día más. Esto fue lo que motivó el nacimiento del VHDL.

El VHDL fue desarrollado como un lenguaje para el modelado y simulación lógica dirigida por eventos de sistemas digitales, y actualmente se utiliza también para la síntesis automática de circuitos [16]. VHDL tiene similitudes con otros lenguajes de programación como es que es un lenguaje estructurado, reutiliza submodulos y es portable. Una de las ventajas de este lenguaje es que permite la descripción y simulación de eventos concurrentes (paralelos) y permite mezclar diferentes niveles de abstracción al describir un sistema digital.

VHDL es un lenguaje cuya sintaxis permite el modelado estructural, en flujo de datos y comportamental del hardware diseñado.

Su utilización en síntesis no es inmediata aunque gracias al desarrollo de las actuales herramientas de síntesis es posible implementar diseños especificados en un alto nivel de abstracción [18].

1.3 Lenguaje de programación

Las ventajas ofrecidas por este lenguaje de programación VHDL al diseño digital son

muchas y podemos mencionar las siguientes [17]:

Estándar: VHDL es un estándar, como tal reduce la confusión y hace que las

interfaces entre herramientas, compañías, y productos sean más fáciles.

Portabilidad: El mismo código VHDL puede ser simulado y usado en muchas

herramientas de diseño y en diferentes etapas del proceso de diseño.

La capacidad de modelado: VHDL fue desarrollado para modelar todos los

niveles de diseño, desde un nivel alto de abstracción viendo un sistema como caja negra

hasta un diseño de bajo nivel, considerando compuertas y transistores.

Reusabilidad: VHDL permite que diseños comunes puedan ser descritos,

verificados, y modificados para un uso futuro.

5

Page 13: Rna Fpga Pwm

Documentación: En VHDL se permite integrar documentación en el diseño por

medio de comentarios en los códigos desarrollados, brindando una gran ayuda al

momento de realizar modificaciones.

1.4 FPGA´s

FPGA (Field Programmable Gate Array), se define como un arreglo bidimensional de módulos digitales reprogramables con interconexiones programables, que cuentan con capacidades de 5000 a 10 millones de compuertas en un solo chip. Sus tiempos de retardo son dependientes de la arquitectura; estos dispositivos sustituyen a ASIC de mediano tamaño sin mencionar que se obtiene una buena relación costo/rendimiento para producciones relativamente pequeñas [15].

Fig. 4 Estructura de un FPGA

La aplicación de los FPGA va mas allá de la implementación de lógica digital, pueden ser utilizados para la implementación de arquitecturas especificas. Los sistemas basados en FPGAs proporcionan un mejor desempeño que sus correspondientes implementaciones en software. Las aplicaciones que requieren de un gran número de operaciones simples son adecuadas para su implementación en FPGAs puesto que un elemento de procesamiento puede diseñarse para efectuar esta operación y varias instancias de este pueden reproducirse para llevar a cabo procesamiento paralelo[19].

6

Page 14: Rna Fpga Pwm

1.5 PWM’s

Y por ultimo un modulador por ancho de pulso (PWM, de pulse-width modulation en inglés) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (por ejemplo sinusoidal o cuadrada) ya sea para transmitir información a través de un canal de comunicaciones o control de la cantidad de energía que se envía a una carga. Como técnica de comunicación de información es buena debido a que proporciona la capacidad de manipular el ancho de pulso el cual será el encargado de transportar la información a su destino de procesamiento y presenta mayor inmunidad al ruido que el uso de voltaje o corriente para transportar datos.

Fig.5 Modulador ancho de pulso PWM

1.1 PLANTEAMINETO DEL PROBLEMA

Problema: El problema es el diseñar una red neuronal artificial que pueda desarrollarse en un dispositivo programable como lo es el FPGA teniendo como entrada un PWM.

Solución: Experimentar con diversas topologías de redes neuronales artificiales y aplicarles una sola técnica de entrada PWM. Someterlas a evaluación constante hasta llegar a diseñar la más apropiada para el FPGA

Justificación: ¿porque habría que hacerlo? Porque el cómputo programable es un área poco conocida en este ámbito de investigación, y porque se desea adquirir conocimientos que nos permitan utilizar tecnologías como esta para el desarrollo de trabajos y darles un enfoque practico.

7

Page 15: Rna Fpga Pwm

Capitulo 2 Descripción Funcional de una red neuronal desarrollada en un FPGA

2.1 Generalidades

Los sistemas de computo secuenciales, tienen éxito en la resolución de problemas matemáticos o científicos, en la creación o manipulación y mantenimiento de bases de datos, en comunicaciones electrónicas, en el procesamiento de datos, incluso en funciones de control en electrodomésticos, haciéndolos más eficientes y fáciles de usar, pero también cuentan con una incapacidad grande para poder interpretar al mundo [4].

Esta dificultad de los sistemas de computo que trabajan bajo la filosofía de los sistemas secuenciales, desarrollados por Von Neuman, ha hecho que un gran número de investigadores centre su atención en el desarrollo de nuevos sistemas de tratamiento de la información, que permitan solucionar problemas cotidianos, tal como lo hace el cerebro humano; este órgano biológico cuenta con varias características para cualquier sistema de procesamiento digital, tales:

Es robusto y tolerante a fallas, diariamente mueren neuronas sin afectar su desempeño.

Es flexible, se ajusta a nuevos ambientes por medio de un proceso de aprendizaje, no hay que programarlo.

Puede manejar información difusa, con ruido o inconsistente. Es altamente paralelo Es pequeño, compacto y consume poca energía.

Basados en la impresionante capacidad del cerebro humano para realizar funciones simples para los humanos y complejas para las maquinas, cada vez se abren mas líneas de investigación tratando de desarrollar sistemas que permitan a las maquinas aplicar las funciones programadas de una manera más amplia y flexible.

2.2 Características de una red neuronal artificial

Las redes neuronales artificiales (RNA), son pequeños sistemas que emulan el comportamiento de las redes neuronales biológicas, y que se han utilizado para aprender técnicas de solución basadas en ejemplos de comportamiento típico de patrones, estos sistemas no requieren de que el algoritmo sea programado, ellos generalizan y aprenden de la experiencia, debido a la capacidad de tolerar fallas y a su flexibilidad de procesos.

Las redes neuronales artificiales no ejecutan instrucción, responden en paralelo a las entradas que se presentan; el resultado no es almacenado en algún tipo de memoria, el conocimiento de una red neuronal artificial no se almacena en instrucción, el poder de la red esta en su topología y en los valores de las conexiones (pesos) entre neuronas [4].

8

Page 16: Rna Fpga Pwm

Fig. 6 De una neurona biología a un neurona artificial

Dentro de una red neuronal, los elementos de procesamiento se encuentran agrupados por capas, una capa es una colección de neuronas; como se muestra en la figura 7 [4], de acuerdo a la ubicación de la capa en la RNA, esta recibe diferentes nombres: Capa de entrada (1a capa), la cual recibe las señales de la entrada de la red; Capa oculta (2a

Capa), estas no tiene contacto con el medio exterior, sus elementos pueden tener diferentes conexiones y son estas las que determinan las diferentes topologías de la red; y al final de la estructura tenemos a la Capa de salida (3 a Capa) la cual recibe la información de la capa oculta y transmite la respuesta al medio exterior.

Fig. 7 RNA de tras capas

9

Page 17: Rna Fpga Pwm

2.3 Características del FPGA

El dispositivo programable con el que se cuenta es un Spartan-3E FPGA como la que se muestra en la figura 8

Fig.8 Tarjeta de desarrollo Spartan-3E FPGA

Esta es una tarjeta de desarrollo que nos permite realizar proyectos a medida de sus capacidades, estos proyectos son de áreas como: instrumentación y control, sistemas embebidos, reconocimiento de patrones. En específico este dispositivo tiene las siguientes características, como se muestra en la tabla 1 [ 20]:

Memoria FashStrata de la corporacion Intel de 128 Mbit Linear Technology for the SPI-compatible A/D and D/A converters, theprogrammable pre-amplifier, and the power regulators for the non-FPGAcomponentsMicron Technology, Inc. for the 32M x 16 DDR SDRAMSMSC for the 10/100 Ethernet PHYSTMicroelectronics for the 16M x 1 SPI serial Flash PROMTexas Instruments Incorporated for the three-rail TPS75003 regulator supplying mostof the FPGA supply voltagesXilinx, Inc. Configuration Solutions Division for the XCF04S Platform Flash PROMand their support for the embedded USB programmerXilinx, Inc. for the XC2C64A CoolRunner™-II CPLD

Tabla 1. Características del FPGA

10

Page 18: Rna Fpga Pwm

Fig. Diagrama funcional de una RNA

11

Page 19: Rna Fpga Pwm

12

Page 20: Rna Fpga Pwm

Bibliografía:

[1].Ali Zilouchian, Mo Jamshidi, “ Intelligent Control Systems Using Soft Commputing Methodologies”; editorial CRC Press.

[2].K.C. Chang; “Digital Systems Design with VHDL and Synthesis an Integrated approach”; Computer Society.

[3].David G. Martinez, Jessica Alcala; ”VHDL: El arte de programar sistemas digitales”; CECSA

[4].Universidad Tecnollogica de Pereira, “Redes Neuronales”; copyright 2000, www.ohm.utp.edu.co/neuronales

[5].[Yutaka Maeda and Toshiki Tada, “FPGA implementation of a pulse density neural network with learningability using simultaneous perturbation” IEEE Transactions on Neural Networks, Vol. 14 No. 3; May 2003]

[6].Ortiz-Rodríguez J.M., Martínez-Blanco M.R. “Diseño de neuro-hadware” [Ingeniería en Comunicaciones y Electrónica, Unidad Académica de Ingeniería Eléctrica, U.A.Z., Zacatecas, Zac.]

[7].Juan Carlos Moctezuma Eugenio, (2) César Torres Huitzil “Estudio sobre la implementación de redes neuronales artificiales usando XILINX SYSTEM GENERATOR” Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla, México Instituto Nacional de Astrofísica, Óptica y Electrónica, Departamento de Ciencias Computacionales, Puebla-México]

[8].J.C. Moctezuma Eugenio, A. Sánchez Galvez, A. Ata Pérez ,”Implementación hardware de funciones de transferencia para redes neuronales artificiales” Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla, México

[9].Barriga A 1, Marbán M.A, Sánchez-Solano1 S, Brox P1, Cabrera A ., “Modelado de alto nivel e implementación sobre FPGAS de sistemas difusos”;Instituto de Microelectrónica de Sevilla - Centro Nacional de Microelectrónica Avda. Reina Mercedes s/n, (Edif. CICA) E-41012, Sevilla, Spain2 Dpto. Automática y Computación. Facultad de Ingeniería Eléctrica. Instituto Superior Politécnico “José Antonio Echeverría”, Ciudad de la Habana, Cuba.

[10]. Álvaro Varela,Johann Osama, Fredy Segura, Antonio García; “Neurona digital optimizada: Modelado, implementación y validación”; Centro de Microelectrónica de los Andes

13

Page 21: Rna Fpga Pwm

[11]. Freddy Hernández Hernández, Dr. Carlos Reyes García, “Desarrollo de un software discriminador de señales nerviosas utilizando una red neuronal para reconocimiento espacio-temporal” Enero 1999; Universidad Autónoma de Tlaxcala, FCBIyT; Ing. en Computación

[12]. Dr. Vicente Alarcón Aquino , M.C. Luis Gerardo Guerrero Ojeda, M.C. Juan Antonio Arízaga Silva ,“ESTUDIO DE REDES NEURONALES PARA UN SISTEMA AUTO-CONFIGURABLE DE CUARTA GENERACIÓN” Universidad De Las Américas Puebla ,Universidad Politécnica de Puebla ; [email protected], [email protected], [email protected].

[13]. I. El-Masry TechniqueEzz,”Implementations of Artificial Neural Networks Using Current-Mode Pulse Width Modulation”, Senior Member, IEEE, Hong-Kui Yang, and Mohamed A. Yakout, IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL. 8, NO. 3, MAY 1997.

[14]. A. R. Ormondi and J. C. Rajapakse, “FPGA Implementations of Neural Networks” Eds. (Dordrecht, Germany: Springer-Verlag, 2006, pp. 360, ISBN: 978-0-387-28485-9). Reviewed by C. Teuscher

[15]. Miguel Arias Estrada, “Introduccion a VHDL y dispositivos FPGA”; 2001, INAOE- Ciencias Computacionales

[16]. Robert Cypher, Jorge L. C. Sanz, Springer verlag, “The SIMD model of parallel computation” , New York 1994

[17]. K. C. Chang , “Digital Desing and Modeling with VHDL and Synthesis”, IEEE Computer Society Press, USA. 1997

[18]. F. Pardo, J. A. Boluda, “VHDL Lenguaje para síntesis y modelado de circuitos” , Alfaomega/Ra-Ma, España 1999.

[19]. Miguel Arias-Estrada, César Torres Huitzil ,“Sistemas inteligentes en unchip utilizando FPGAs: Aplicaciones a la visión por computadora”, ¨. X Congreso Internacional de Electrónica, Comunicaciones y Computadoras. CONIELECOM’2000. Cholula, Pue. Febrero 2000.

[20]. www.xilinx.com 7, ”Spartan-3E FPGA Starter Kit Board User Guide”, UG230 (v1.1) June 20, 2008

14

Page 22: Rna Fpga Pwm

Plan de trabajo:

A 1 año

FECHAS ACTIVIDADESSeptiembre 08Diciembre 08

Recopilar información sobre Redes Neuronales

Recopilar información sobre implementación de RNA

Estudiar el lenguaje de descripción HDL

Adquirir el FPGA y estudiar sus características

Enero 09Febreo 09

Definir el tipo de Red Neuronal adecuada para el FPGA

Realizar prácticas en la tarjeta del FPGA para familiarizarse con ella

Marzo 09Abril 09

Definir y estudiar la aplicación del PWM en la Red Neuronal a la Red seleccionada

Diseñar una neurona con ayuda del software y sintetizarlo al FPGA

Mayo 09Junio 09

Aplicación del PWM a la Red Neuronal que se encuentra en el FPGA programada

Escritura del reporte de tesis

Junio 2009 Resultados y análisis de la aplicación y realización de la implementación

Escritura del documento de tesis

15