FCBIT
UNIVERSIDAD AUTONOMA DE TLAXCALA FACULTAD DE CIENCIAS BASICAS, INGENIERIA Y TECNOLOGIA MAESTRIA MAESTRIA EN CIENCIAS 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 Cruz M en C. Juan Manuel Álvarez Ledesma
i
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 apre aprend ndiz izaj aje. e. Dic Dicha area area ha veni venido do desa desarr rrol olla land ndoo tecn tecnol olog ogía íass que que perm permit iten en implementarse en procesos de automatización y control. En este trabajo de tesis se desa desarro rrolla lla una una RNA RNA que que nos nos perm permita ita obse observa rvarr su comp compor orta tamie miento nto,, su funci función ó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 programable como como lo es el FPGA (Field (Field Programmable Programmable Gate Gate Array). Se espera 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 Índice de Términ Términos os – Arreglo Arreglo de compue compuerta rtass progra programab mables les en el campo campo (FPGA (FPGA), ), capac capacida idadd de aprend aprendiza izaje, je, redes redes neu neuron ronale aless (RNs), (RNs), modula modulació ciónn por ancho ancho de pulso pulso (PWM).
ii
Contenido Resumen.................................................................................................................................ii Contenido..............................................................................................................................iii Prefacio.................................................................................................................................iv INTRODUCCION ................................................................................................................v Capitulo 1. Conceptos generales............................................................................................2 1.1 Redes neuronales..............................................................................................................3 1.2 VHDL...............................................................................................................................4 1.3 Lenguaje de programación..............................................................................................5 1.4 FPGA´s.............................................................................................................................6 1.5 PWM’s.............................................................................................................................6 Capitulo 2 Descripción Funcional de una red neuronal desarrollada en un FPGA..............7 2.1 Generalidades...................................................................................................................8 2.2 Características de una red neuronal artificial .................................................................8 2.3 Características del FPGA...............................................................................................10 Bibliografía:.........................................................................................................................13 Plan de trabajo: ...................................................................................................................14
iii
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.
iv
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, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware
v
) [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.
Description Language
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 Arra y) 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, ofrecen un gran rendimiento, y están 1
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.
Capitulo 1. Conceptos generales 2
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
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.
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 4
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. 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.
5
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].
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 6
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.
Capitulo 2 Descripción Funcional de una red neuronal desarrollada en un FPGA
7
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
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 (2 a 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
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, the programmable pre-amplifier, and the power regulators for the non-FPGA components Micron Technology, Inc. for the 32M x 16 DDR SDRAM SMSC for the 10/100 Ethernet PHY STMicroelectronics for the 16M x 1 SPI serial Flash PROM Texas Instruments Incorporated for the three-rail TPS75003 regulator supplying most of the FPGA supply voltages Xilinx, Inc. Configuration Solutions Division for the XCF04S Platform Flash PROM and their support for the embedded USB programmer Xilinx, Inc. for the XC2C64A CoolRunner™-II CPLD
Tabla 1. Características del FPGA
10
Fig. Diagrama funcional de una RNA
11
12
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, PueblaMé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 [11]. Freddy Hernández Hernández, Dr. Carlos Reyes García, “ Desarrollo de un software discriminador de señales nerviosas utilizando una red neuronal 13
para reconocimiento espacio-temporal” Enero 1999; Universidad Autónoma de Tlaxcala, FCBIyT; Ing. en Computación 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].
[12].
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.
[13].
[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
Plan de trabajo: A 1 año 14
FECHAS Septiembre 08 Diciembre 08
ACTIVIDADES Recopilar información sobre Redes Neuronales
Enero 09 Febreo 09
Definir el tipo de Red Neuronal adecuada para el FPGA
Realizar prácticas en la tarjeta del FPGA para familiarizarse con ella
Marzo 09 Abril 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
Recopilar información sobre implementación de RNA
Estudiar el lenguaje de descripción HDL
Adquirir el FPGA y estudiar sus características
Mayo 09 Junio 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