CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales...

267
TESIS DOCTORAL CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE CONTROLADORES BORROSOS Y NEURONALES: AUTOMATIZACIÓN Y REALIZACIÓN Ramón González Carvajal Sevilla, Febrero de 1999

Transcript of CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales...

Page 1: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

TESIS DOCTORAL

CONTRIBUCIONES AL DISEÑOMICROELECTRÓNICO DE

CONTROLADORES BORROSOSY NEURONALES:

AUTOMATIZACIÓN YREALIZACIÓN

Ramón González Carvajal

Sevilla, Febrero de 1999

Page 2: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

ii

Page 3: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

TESIS DOCTORAL

CONTRIBUCIONES AL DISEÑOMICROELECTRÓNICO DE CONTROLADORES

BORROSOS Y NEURONALES:AUTOMATIZACIÓN Y REALIZACIÓN

por

Ramón González Carvajal

Ingeniero Industrial por la E.S. de Ingenieros

de la Universidad de Sevilla

Presentada en la

Escuela Superior de Ingenieros

de la

Universidad de Sevilla

para la obtención del

Grado de Doctor Ingeniero Industrial

Sevilla, Febrero de 1999

Page 4: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

iv

Page 5: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

TESIS DOCTORAL

CONTRIBUCIONES AL DISEÑOMICROELECTRÓNICO DE

CONTROLADORES BORROSOS YNEURONALES: AUTOMATIZACIÓN Y

REALIZACIÓN

Autor: Ramón González Carvajal

Director: Antonio Jesús Torralba Silgado

Page 6: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

vi

Page 7: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A mis padres y a Juana

Page 8: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo
Page 9: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Agradecimientos

Quiero expresar mi agradecimiento a todas aquellas personas (familiares,compañeros y amigos) que han colaborado en el desarrollo de esta Tesis Doc-toral. En primer lugar quiero citar a mi Director de Tesis, D. Antonio J.Torralba Silgado por la constante supervisión del trabajo que estaba reali-zando, su aportación personal en muchas de las ideas que se exponen y porlas muchas horas que ha dedicado a discutir conmigo infinidad de detalles.

Quiero agradecer también al Director del Grupo de Tecnología Electrónica, D.Leopoldo García Franquelo, la ayuda prestada durante la realización dela Tesis.

Deseo hacer mención especial al profesor Dr. Jaime Ramírez-Angulo porsus aportaciones y consejos. En los capítulos 4 y 5 de esta tesis aparecen mu-chas ideas suyas, de entre las que destaca el uso de las baterías flotantespara el diseño de circuitos de baja tensión. Quiero agradecerle tambiénla paciencia infinita que ha tenido conmigo a la hora de revisar el trabajo ysus consejos a la hora de diseñar los circuitos.

También hago extensivos los agradecimientos a todos mis compañeros delGrupo de Tecnología Electrónica que, en mayor o menor medida, han servidode estímulo en los momentos de mayor desorientación y que con sus comenta-rios han ayudado a aclarar las ideas en numerosas ocasiones. De entre todaslas personas que me han ayudado, quiero hacer mención especial a:

� Al profesor Dr. Jon Tombs, por sus valiosas aportaciones y consejosasí como por los conocimientos de microelectrónica que me ha transmiti-do y que me han proporcionado siempre un punto de vista crítico y realde las cosas. También quiero agradecerle su ayuda a la hora de resol-ver problemas técnicos y su ayuda desinteresada en los momentos másdifíciles.

� Al profesor Dr. Francisco Colodro, cuyo trabajo sobre controladoresborrosos ha servido como punto de partida para esta tesis. Sus aclara-ciones, trabajo y comentarios han sido muy importantes. Además, las

Page 10: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

x

aportaciones en el área de las Redes Celulares Neuronales no hubieransido posibles sin sus ideas y trabajo.

� Al profesor Dr. Jorge Chávez Orzáez, por el apoyo informático y técni-co. Son muchas las herramientas software que se han utilizado duranteel desarrollo de esta tesis doctoral y, tanto él como el Dr. Jon Tombs, lashan puesto a punto e, incluso, me han enseñado a utilizarlas.

� A los ingenieros D. Jesús Valdés Morillo, D. Pedro Cáceres Salazary D. Fernando Muñoz Chavero por su trabajo y dedicación que handado lugar a muchas realizaciones físicas de las ideas que se presentanen esta tesis doctoral.

� Al Dr. Rafael Millán, D. Andrés González y D. Francisco Pérez, porsu ayuda desinteresada a la hora de resolver problemas en el laboratorio.

� Al Profesor Edgar Sánchez Sinencio y a todos los miembros del Ana-log Microelectronics Group de la Universidad de Texas A&M. En espe-cial, Fikret Dülger y Gabriele Manganaro que compartieron conmigosu amplia experiencia en el diseño analógico.

� A Federico, Alejandro, Carlos, Alfonso, Jesús, Victor y María porsu ayuda a la hora de revisar el texto y por su amistad.

Finalmente y no por ello menos importante, deseo expresar mi agradecimientoa:

� A mis padres, Ramón y M. Luisa, por su apoyo incondicional y pacien-cia.

� A Juana por su paciencia ante el tiempo que esta tesis le ha robado ypor su ánimo y ayuda en los momentos difíciles. Sin ella todo hubierasido más difícil.

Page 11: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Resumen de la Tesis

Una de las líneas de investigación desarrolladas por el Grupo de TecnologíaElectrónica (GTE) de la Universidad de Sevilla es la realización microelec-trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo de la información. Mientras que una redneuronal está constituida por un gran número de procesadores elementalescon un alto grado de conectividad, un controlador borroso es capaz de proce-sar un gran número de reglas. Cuando se requiere un tiempo de respuestapequeño, como es el caso de aplicaciones en tiempo real, se suele recurrir ala implementación microelectrónica frente a diseños secuenciales basados enmicroprocesadores.

El objetivo de esta tesis ha consistido en explorar diferentes alternativas parala realización microelectrónica de sistemas borrosos y neuronales. Los as-pectos más relevantes a considerar serán la automatización del diseño y laobtención de prestaciones que difícilmente se pueden conseguir con solucio-nes tradicionales.

Desde la aparición de los lenguajes de descripción hardware y, más concreta-mente, del VHDL, el diseño de grandes circuitos digitales ha sido posible aun coste razonable. Las ventajas de estos lenguajes son evidentes; de entreellas destaca la posibilidad de automatizar el diseño de circuitos, llevando aldiseñador a un nivel más alto de abstracción.

De entre los circuitos cuya automatización de diseño era posible se ha elegidoa los controladores borrosos y a las redes neuronales. Existen dos razonesfundamentales para su elección:

� El creciente interés por las llamadas técnicas de “inteligencia compu-tacional” hace que sean aplicados en numerosos sistemas microelectró-nicos.

� Aunque existe una infinidad de variantes a la hora de aplicar estas téc-nicas, se puede observar en la literatura la tendencia a utilizar un grupo

Page 12: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

xii

reducido de topologías con las que se puede resolver la mayoría de lassituaciones.

La automatización reduce significativamente el tiempo de diseño, disminu-yendo así el coste final de la ingeniería. En esta tesis se ha diseñado la he-rramienta AFAN, que automatiza el diseño de controladores borrosos y neu-ronales. En la literatura existen referencias a otras herramientas, basadasen repetir los operadores elementales necesarios para conformar el controla-dor final. AFAN es diferente a todas ellas, ya que antes de definir todos losoperadores elementales que van a formar parte del controlador realiza unaoptimización de la arquitectura según los requerimientos del usuario. De es-ta forma AFAN genera el código VHDL del controlador que más se ajusta entérminos de precisión, área y velocidad a las especificaciones.

Otra característica importante de AFAN es que es capaz de añadir la lógicade aprendizaje necesaria para aplicar el algoritmo de retropropagación. Estaherramienta ha sido aplicada con éxito en dos proyectos industriales (ASI-TRON y ADAPT), reduciendo el tiempo final de diseño de dichos proyectos yproporcionando controladores borrosos óptimos en área y velocidad.

La posibilidad de añadir nuevas arquitecturas y especificaciones a la herra-mienta AFAN es extraordinaria. Sin embargo, el objetivo planteado en estatesis ha sido probar que la automatización de estos controladores era posibley útil y no construir herramientas industriales listas para su utilización.

Un segundo objetivo planteado en esta tesis ha consistido en el estudio y me-jora de aquellos aspectos que las realizaciones digitales de controladores bo-rrosos y redes neuronales no pueden satisfacer:

� Bajo consumo en área.

� Bajo consumo de potencia.

� Alta velocidad.

Estas especificaciones se pueden conseguir utilizando circuitos analógicos ymixtos (analógico-digitales). Se realizó una búsqueda bibliográfica encamina-da a estudiar las diferentes alternativas propuestas. Todas ellas se podíandividir en dos grandes grupos: diseños en modo tensión y diseños en modocorriente. Se optó por centrar el estudio en los diseños en modo corrientebasados en el amplificador de transconductancia que es inherentemente másrápido que el amplificador operacional, en el que suelen estar basados los

Page 13: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

xiii

diseños en modo tensión. Además, el diseño en modo corriente presenta ven-tajas en el caso de controladores borrosos, ya que la operación suma no ocupaárea de silicio. Otro aspecto que deseábamos cubrir era la modularidad delcircuito borroso, de forma que se pudiera automatizar el diseño.

La mayoría de los controladores borrosos en modo corriente utilizan como cir-cuito base para la borrosificación el par diferencial. Con dicho circuito, lasfunciones de pertenencia que se generan son de forma “acampanada”. Estacampana depende del proceso de fabricación, por lo que la exactitud de la pro-gramabilidad de las funciones de pertenencia es deficiente.

Este problema hizo que se optase por definir un generador propio de funcio-nes de pertenencia, el cual es otra aportación original de esta tesis. Se basóen un amplificador de transconductancia muy lineal diseñado por Moham-med Ismail y se le dotó de programabilidad de forma que pudiese reproducirfunciones de pertenencia triangulares y trapezoidales. Además, se utilizó unoperador mínimo-máximo que no añadía complejidad al circuito, ya que elmétodo de inferencia de nuestro controlador era el de Mamdani. Esta últimapropiedad permitía a su vez generar diferentes tipos de funciones lineales atrozos.

Para realizar el resto del controlador se adoptó la estructura definida porel Dr. Ramírez-Angulo para diseñar un controlador borroso en tecnologíaBICMOS. Como operador desborrosificador era necesario buscar un circuitoCMOS que fuese capaz de realizar la división y la multiplicación simultáne-amente. En la literatura se encontró uno realizado por Bult y Wallinga quesatisfacía todos los requerimientos del diseño, por lo que no fue necesaria labúsqueda de otra solución alternativa.

Se diseñó un controlador borroso que era más rápido que lo que podíamos con-seguir utilizando tecnología digital. Sin embargo, el abanico no cubría todaslas posibilidades, ya que en todos los diseños la velocidad requerida implicabaun consumo alto. Por este motivo, se optó por crear una nueva estructura quedisminuyera el consumo a costa de una reducción de la velocidad.

La solución consistía en realizar un controlador mixto (analógico-digital) queapagase el consumo de la parte analógica cuya respuesta no aportase informa-ción a la salida. Para aplicarlo se tenía que modificar el controlador analógicoañadiendo la menor cantidad de área posible. Se aprovechó el hecho de in-

Page 14: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

xiv

corporar un circuito “competidor” para realizar el proceso de inferencia. Esecircuito tenía información de quién “gana” el proceso de inferencia, por lo quetambién sabe quién “pierde”, es decir, quién debe ser apagado.

Sin embargo, existían otras posibilidades no cubiertas en esta tesis ya que loscircuitos analógicos diseñados no eran capaces de operar con baja tensión. Eltercer objetivo de esta tesis fue la búsqueda de circuitos para procesamientode señal que tuvieran como característica principal una tensión de alimenta-ción muy baja. Después de realizar una búsqueda bibliográfica exhaustiva secomprobó que el número de circuitos existentes era insuficiente para realizarcontroladores borrosos. Se necesitaban espejos de corriente, rectificadores,amplificadores operacionales y de transconductancia que fuesen capaces deoperar a la tensión de alimentación más baja posible.

De este estudio surgió un conjunto de aportaciones originales compuesto porvarios circuitos que son capaces de operar con una tensión de alimentacióncercana a la tensión umbral de un transistor. Todas las aportaciones realiza-das en este campo no son solamente obra del autor de esta tesis, sino de ungrupo de trabajo compuesto por varios doctores y el doctorando.

Por último, se han realizado otros trabajos que están relacionados la tesis yque se presentan al final de la misma en forma de apéndice. De entre todosellos destaca el estudio de la aplicación de las técnicas de trenes de pulsos yde multiplexación en la frecuencia, al diseño de Redes Celulares Neuronalespara que éstas sean más eficientes en área. La mayor dificultad a la hora derealizar Redes Celulares Neuronales es el gran tamaño que ocupan las neu-ronas, que hace imposible tener un número suficiente de ellas en un circuitocomo para procesar imágenes reales. Existen diferentes estudios para reducirla complejidad de este tipo de redes, siendo nuestro diseño una de las posibi-lidades actualmente en estudio.

Page 15: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Índice General

1 Conceptos previos y realizaciones electrónicas 11.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 El control basado en lógica borrosa . . . . . . . . . . . . . . . . . 4

1.2.1 Fundamentos de la lógica borrosa aplicada al control . . 41.2.2 Estructura de un controlador borroso . . . . . . . . . . . 51.2.3 Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Circuitos Controladores . . . . . . . . . . . . . . . . . . . . . . . 91.3.1 Principales realizaciones hardware . . . . . . . . . . . . . 101.3.2 Automatización del diseño de controladores borrosos di-

gitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.3 Automatización del diseño de controladores borrosos ana-

lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4 Circuitos de muy baja tensión de alimentación para el procesa-

miento de señal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Diseño Automático de Controladores Borrosos y Neuronales 212.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2 Flujo de Diseño de AFAN . . . . . . . . . . . . . . . . . . . . . . . 242.3 Optimización de Arquitectura . . . . . . . . . . . . . . . . . . . . 25

2.3.1 Controlador Borroso . . . . . . . . . . . . . . . . . . . . . 252.3.2 Perceptrón Multicapa . . . . . . . . . . . . . . . . . . . . . 27

2.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.5 Conclusiones y trabajo futuro . . . . . . . . . . . . . . . . . . . . 33

3 Aplicaciones Industriales 353.1 Aplicación industrial de la lógica borrosa . . . . . . . . . . . . . 373.2 Proyecto ASITRON . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3 Proyecto ADAPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4 Diseño Analógico y Mixto de Controladores Borrosos 474.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.2 Flujo de Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.3 Arquitectura del Controlador Borroso . . . . . . . . . . . . . . . 514.4 Función de Pertenencia . . . . . . . . . . . . . . . . . . . . . . . . 53

Page 16: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

xvi ÍNDICE GENERAL

4.4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4.2 Arquitectura de la MFG . . . . . . . . . . . . . . . . . . . 534.4.3 Uso de la función Z . . . . . . . . . . . . . . . . . . . . . . 554.4.4 Resultados de Simulación . . . . . . . . . . . . . . . . . . 56

4.5 Realizaciones electrónicas de operadores Mínimo y Máximo . . 594.5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5.2 Principio de Funcionamiento . . . . . . . . . . . . . . . . 624.5.3 Familia de Circuitos . . . . . . . . . . . . . . . . . . . . . 654.5.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.6 Realización mixta analógico–digital . . . . . . . . . . . . . . . . 694.6.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 694.6.2 Esquema de funcionamiento . . . . . . . . . . . . . . . . . 73

4.7 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5 Aportaciones al diseño de circuitos de baja tensión 835.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.2 Baterías estáticas y dinámicas de baja tensión de alimentación

y gran rango de señal . . . . . . . . . . . . . . . . . . . . . . . . . 875.3 Aplicación de las baterías flotantes al diseño de baja tensión . . 89

5.3.1 Amplificador operacional CMOS de baja tensión de ali-mentación con etapa de salida clase AB . . . . . . . . . . 90

5.3.2 Amplificadores inversores con rango completo de tensio-nes en la entrada y en la salida utilizando baterías flo-tantes estáticas . . . . . . . . . . . . . . . . . . . . . . . . 118

5.3.3 Amplificadores inversores con rango completo de tensio-nes en la entrada y en la salida utilizando baterías flo-tantes dinámicas . . . . . . . . . . . . . . . . . . . . . . . 129

5.3.4 Transconductores de baja tensión de alimentación . . . . 134

6 Conclusiones y Líneas Futuras 1416.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436.2 Líneas futuras de investigación . . . . . . . . . . . . . . . . . . . 145

A Introducción a los sistemas basados en Lógica Borrosa 147A.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149A.2 Estructura de un sistema basado en lógica borrosa . . . . . . . . 150A.3 Borrosificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150A.4 Base de Conocimientos . . . . . . . . . . . . . . . . . . . . . . . . 153A.5 Inferencia Borrosa . . . . . . . . . . . . . . . . . . . . . . . . . . . 154A.6 Desborrosificador . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

B Diseño mixto de Redes Celulares Neuronales utilizando Técni-cas de Trenes de Pulsos 161B.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163B.2 Neurona basada en Técnicas de Trenes de Pulsos . . . . . . . . 163

Page 17: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

ÍNDICE GENERAL xvii

B.3 Módulos básicos de una neurona . . . . . . . . . . . . . . . . . . 165B.4 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

C Arquitecturas de controladores borrosos y neuronales digita-les. 171C.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173C.2 Controlador borroso . . . . . . . . . . . . . . . . . . . . . . . . . . 173

C.2.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 173C.2.2 Particularidades del controlador digital. . . . . . . . . . . 173C.2.3 Estructura externa del controlador . . . . . . . . . . . . . 176C.2.4 Arquitectura del controlador. . . . . . . . . . . . . . . . . 177C.2.5 Máquinas de estado del controlador . . . . . . . . . . . . 177C.2.6 Borrosificación. . . . . . . . . . . . . . . . . . . . . . . . . 179C.2.7 Desborrosificación . . . . . . . . . . . . . . . . . . . . . . . 180C.2.8 Código VHDL . . . . . . . . . . . . . . . . . . . . . . . . . 180

C.3 Perceptrón multicapa . . . . . . . . . . . . . . . . . . . . . . . . . 186C.3.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 186C.3.2 Teoría de Redes Neuronales . . . . . . . . . . . . . . . . . 186C.3.3 Descripción general de la red . . . . . . . . . . . . . . . . 190C.3.4 Control de la red . . . . . . . . . . . . . . . . . . . . . . . . 196C.3.5 Capa oculta . . . . . . . . . . . . . . . . . . . . . . . . . . 200C.3.6 Código VHDL . . . . . . . . . . . . . . . . . . . . . . . . . 232

Page 18: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

xviii ÍNDICE GENERAL

Page 19: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Capítulo 1

Conceptos previos yrealizaciones electrónicas

Índice General

1.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 El control basado en lógica borrosa . . . . . . . . . . . . . 4

1.2.1 Fundamentos de la lógica borrosa aplicada al control . 4

1.2.2 Estructura de un controlador borroso . . . . . . . . . . 5

1.2.3 Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Circuitos Controladores . . . . . . . . . . . . . . . . . . . . 9

1.3.1 Principales realizaciones hardware . . . . . . . . . . . . 10

1.3.2 Automatización del diseño de controladores borrososdigitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.3.3 Automatización del diseño de controladores borrososanalógicos . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.4 Circuitos de muy baja tensión de alimentación para elprocesamiento de señal . . . . . . . . . . . . . . . . . . . . . 17

En este capítulo se va a realizar una breve introducción a los sistemas basadosen Lógica Borrosa y Redes Neuronales y a varios aspectos relacionados conlas realizaciones electrónicas de los mismos, como la automatización del di-seño. Debido a que en esta tesis se han cubierto los campos digital, analógico ymixto relacionados con el diseño de circuitos basados en lógica borrosa, no pre-tendemos aquí realizar un estudio completo, ya que su extensión sería excesiva.Nos hemos centrado en los aspectos de cada campo en los que esta tesis docto-ral ha realizado aportaciones originales. Al final del capítulo se realiza una

Page 20: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2 Conceptos previos y realizaciones electrónicas

revisión bibliográfica de la electrónica analógica de baja tensión. El motivoes el esfuerzo que en esta tesis se ha realizado por desarrollar circuitos capa-ces de procesar señales operando con tensiones de alimentación cercanas a latensión umbral de un transistor. Con estos circuitos pretendemos desarrollarcontroladores borrosos que operen con una tensión de alimentación muy baja;el conjunto de aportaciones realizadas en este campo justifican su inclusión enesta tesis doctoral.

Page 21: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.1 Introducción 3

1.1 Introducción

En los últimos años grandes esfuerzos de investigación han sido invertidos enel estudio teórico y realización electrónica de dos nuevas técnicas de inteligen-cia computacional: las redes neuronales y la lógica borrosa.

Hay que remontarse al año 1960 para encontrar la primera publicación sobreel perceptrón, debida a Bernard Widrow. Esta red neuronal se caracterizópor la presencia de un gran número de procesadores elementales, todos ellostrabajando en paralelo con un alto grado de conectividad. En el mismo añose publicó también el algoritmo de aprendizaje más utilizado en la redes neu-ronales, conocido como LMS, y que está basado en la minimización del errorcuadrático medio. Desde entonces, y en paralelo con el desarrollo de la tec-nología microelectrónica, han sido muchos los avances con las propuestas denuevas arquitecturas y de circuitos electrónicos. Cabe decir que han sido lasrealizaciones electrónicas las que han permitido la construcción de redes do-tadas con un gran número de neuronas y que resuelven problemas reales. Porello aún sigue vigente en nuestros días el interés suscitado por las redes neu-ronales en sus primeros años.

La lógica borrosa fue propuesta en la década de los sesenta por L. A. Zadeh.Sin embargo, ha sido en la década de los ochenta cuando ha despertado ungran interés en Occidente, a partir del éxito obtenido en Japón, donde se utili-zó en el campo del control. Los controladores realizados con técnicas clásicasrequieren un modelo matemático del sistema bajo control o un conocimientoexhaustivo del mismo. No obstante, la lógica borrosa formaliza el tratamien-to de conocimientos vagos e imprecisos, pudiéndose construir dispositivos queemulan las técnicas de razonamiento aproximado Modus Ponens Generaliza-do (MPG), utilizado en control, y Modus Tollens Generalizado, utilizado endiagnóstico, los cuales, en cierto modo, son parecidos a la manera cotidiana derazonar del ser humano. De esta manera, en el diseño de controladores borro-sos no sólo se puede incorporar información matemática (controladores clási-cos) e información numérica (algoritmos de aprendizaje en redes neuronales)sino también información lingüística proporcionada en lenguaje natural porun experto humano.

Al igual que ha ocurrido con las redes neuronales, han sido muchos los inves-tigadores interesados en la integración en una pastilla de silicio de un sistemaborroso completo, interés surgido a partir del desarrollo de la microelectróni-ca.

En la realización de las redes neuronales y los controladores borrosos se hautilizado tanto técnicas digitales, como analógicas y mixtas. Cada una de ellaspresenta sus ventajas e inconvenientes.

Page 22: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4 Conceptos previos y realizaciones electrónicas

En este capítulo se presenta una recopilación bibliográfica de lo escrito enla literatura referente a la realización microelectrónica ( digital, analógica ymixta ) de controladores borrosos y neuronales así como de la automatizaciónde su diseño. No pretendemos realizar un repaso exhaustivo de los sistemasde control borroso, sus parámetros de diseño, circuitos (prototipos y comer-ciales) y sus aplicaciones. Existen excelentes introducciones que cubren estosaspectos ([1], [4], [35], [58], [45] y [65]). Debido a las numerosas variantesque existen en el diseño de estos controladores, mencionaremos los trabajosmás relevantes relacionados con los aspectos en los que esta tesis doctoral harealizado aportaciones originales.

Al final del capítulo se hace un resumen de los trabajos aparecidos reciente-mente en el diseño de circuitos de baja tensión de alimentación. En esta tesisdoctoral se han realizado aportaciones en campo del diseño analógico de muybaja tensión, que permitirán en un futuro muy próximo diseñar controladoresborrosos y neuronales trabajando con tensiones próximas a la tensión umbralde un transistor.

1.2 El control basado en lógica borrosa

1.2.1 Fundamentos de la lógica borrosa aplicada al con-trol

En este apartado se realiza una sucinta revisión de los fundamentos de lalógica borrosa aplicada al control. Para una revisión más completa se puedeconsultar el apéndice A que se incluye en esta tesis doctoral.

En la teoría clásica de conjuntos la pertenencia de un elemento a un conjuntocualquiera sólo tiene dos valores: verdadero o falso, 1 ó 0. En la teoría borro-sa de conjuntos el grado de pertenencia de un elemento a un conjunto puedetener infinitos valores en el rango [0; 1]. Por tanto, si X es el dominio (discre-to o continuo) de todos los elementos , un conjunto borroso cualquiera A estácompletamente definido por la función de pertenencia

�A : X �! [0; 1]

donde �A(x) es el grado de pertenencia del elemento x al conjunto A [120].

De modo análogo a como se hace extensible la teoría clásica de conjuntos alcampo de la lógica bivalente, se puede definir el campo de la lógica borrosa y,en vez de hablar de grados de pertenencia de un conjunto, se puede hablar de

Page 23: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.2 El control basado en lógica borrosa 5

grados de verdad de una proposición lógica.

El control borroso se basa en la aplicación de técnicas de razonamiento apro-ximado [122], de modo similar al usado por los humanos en su vida cotidia-na. Así pues, el controlador es capaz de evaluar el grado de verdad de unaproposición lógica (premisa) formulada a partir de las variables de estado deun sistema e inferir el grado de verdad de otra proposición (conclusión). De-pendiendo del grado de verdad inferido de la premisa, el controlador puedereducir a escalar la proposición consecuente y provocar una acción sobre elsistema bajo control. Desde un punto de vista formal, este tipo de procesa-miento de las variables de control (o estado) se puede formular mediante unadeclaración Si� Entonces (en inglés IF � THEN ) del tipo

Si (x1 es A1) y (x2 es A2) y (x3 es A3) Entonces (z es B) (1.1)

donde (xi es Ai) es una proposición borrosa primitiva llamada antecedente,cuyo grado de verdad es el grado de pertenencia de la variable escalar de es-tado x�i en el conjunto borroso Ai, definidos ambos en el dominio de la variablelingüística xi. Una variable lingüística es una variable que puede tomar comovalores palabras o sentencias del lenguaje natural o artificial, tal y como fuedefinida por Zadeh [121], [122]. Ai define una cualidad del estado representa-do por xi (ej. grande, rápido, caliente, . . . ) y su significado está determinadopor la función de pertenencia �Ai

(x�i ). El operador lógico y conecta todas lasproposiciones antecedentes primitivas en una única proposición compuesta.El grado de verdad de la proposición consecuente (z es B) es inferido, y segúnéste, así será la acción que ejercerá la variable z sobre el sistema a contro-lar. A una declaración Si � Entonces como la de la ecuación (1.1) se le llamaregla. Un controlador puede procesar varias reglas y combinar los conjuntosborrosos inferidos en un único conjunto para que, una vez reducido a escalar,provoque la acción sobre el sistema. Por la propia vaguedad de un conjuntoborroso, el controlador puede controlar un sistema del que no se tiene unainformación precisa ni se conoce el modelo matemático que lo describe. Asípues, el programador del controlador contará con su propia experiencia y conla flexibilidad en la programación (definición de las reglas) del mismo.

1.2.2 Estructura de un controlador borroso

La figura 1.1 recoge el diagrama de bloques de un sistema de control basadoen lógica borrosa. El sistema consta de cuatro partes:

� La interfase de borrosificación asocia a cada entrada su grado de perte-nencia a un conjunto borroso. Para el caso de controladores, las entradassuelen ser valores escalares. La aplicación de una función de pertenen-cia a un valor escalar se denomina borrosificación. En nuestro caso, este

Page 24: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

6 Conceptos previos y realizaciones electrónicas

Interfase de

Borrosificación

Base de

Reglas

Máquina de

Inferencia

Reductor a Escalar

(Desborrosificador)

Entrada

no-borrosa

Salida

no-borrosa

Figura 1.1: Estructura de un controlador borroso.

proceso interpreta la entrada escalar x0 como un conjunto borroso tipo“singleton” que toma el valor 1 en x = x0 y 0 en el resto.

MP NOPE GR MG

GR

NO

MPPE Muy PequenoMGPEqueno

Muy Pequeno Muy Grande

NOrmal

Figura 1.2: Funciones de Pertenencia.

Las funciones de pertenencia se denominan normalmente mediante unaetiqueta tal como pequeño, normal o grande. Las formas más usuales delas funciones de pertenencia son la triangular, trapezoidal y gaussiana.En la figura 1.2 se representa un conjunto de funciones de pertenenciade tipo triangular con sus etiquetas.

� La base de datos contiene la definición de un conjunto de funciones depertenencia Aij, Ci y de un conjunto de reglas borrosas en la forma dedeclaraciones

R(i):SI x1 ES Ai1 Y x2 ES Ai2 Y ... xn ES Ain

ENTONCES y ES Ci

Page 25: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.2 El control basado en lógica borrosa 7

En una formulación alternativa, debida a Tagaki y Sugeno [95], los con-secuentes de cada regla son funciones (generalmente lineales) de las en-tradas:

R(i):SI x1 ES Ai1 Y x2 ES Ai2 Y ... xn ES Ain

ENTONCES yi = ai0 + ai1x01 + :::+ ainx

0n

� La máquina de inferencia emplea la información almacenada en la basede datos para obtener un conjunto borroso de salida, dado el valor (borro-so o no) de las entradas. Para obtener la salida, la máquina de inferenciaemplea un conjunto de reglas de composición. Las más empleadas sonla regla del mínimo de Mamdani RM y la regla del producto de LarsenRL. Para el caso de entradas escalares, estas reglas de inferencia puedenexpresarse como:

RM(i):

minfminf�Ai1(x01); �Ai2

(x02); :::; �Ain(x0n)g;

�Ci(z); z 2 Zg = wi ^ �Ci

RL(i):

prodfminf�Ai1(x01); �Ai2

(x02); :::; �Ain(x0n)g;

�Ci(z); z 2 Zg = wi � �Ci

(1.2)

0

µ

x1

Rw

µw

R

1

1

zR

L

MIN

MIN

z

z

zR

M

0x

0x2

2

1

0x

w

w

2

2

Figura 1.3: Reglas de Composición de Mamdani (RM ) y Larsen (RL).

Page 26: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

8 Conceptos previos y realizaciones electrónicas

La figura 1.3 muestra una representación gráfica de las reglas de infe-rencia empleando el método del mínimo de Mamdani y el método delproducto de Larsen. La composición de reglas se ha realizado en amboscasos mediante el operador máximo.

� El reductor a escalar. En aplicaciones de control, el conjunto borroso in-ferido como salida debe convertirse a un valor escalar. Existen numero-sas técnicas para ello. La más empleada en las realizaciones electrónicascalcula el centro de gravedad del conjunto borroso inferido �R.

y =

Rz z � �R(z)R

z �R(z)(1.3)

En el caso en que las funciones de pertenencia de los consecuentes de lasreglas sean “singletons” de valor si, la evaluación del centro de gravedaddel conjunto inferido se reduce a la fórmula

y =

Pi=mi=1 wi � siPi=m

i=1 wi

(1.4)

siendo m el número de reglas. La expresión (1.4) también se emplea paraobtener la salida en un controlador de tipo Sugeno, reemplazando si porla función antecedente yi de cada regla.

1.2.3 Aprendizaje

Recientemente se ha demostrado que los sistemas basados en lógica borrosapueden aproximar cualquier función real continua en un conjunto compactohasta niveles arbitrarios de precisión [55], [107], [110]. Por ello, un controla-dor borroso puede ser entrenado hasta reproducir cualquier mapa de controlno lineal, incluyendo las técnicas más avanzadas de control de sistemas yequipos electrónicos, motores, fuentes de alimentación, etc. En la literaturapueden encontrarse distintas técnicas de aprendizaje, tales como algoritmo demínimos cuadrados [110], backpropagation [109], [53], aprendizaje competiti-vo [54] y particionamiento [108].

Si escogemos el método de backpropagation [85], los pasos a seguir en el pro-ceso de aprendizaje son los siguientes:

� Generar una lista de pares de entrada–salida del mapa que se deseaaprender.

� Escoger un par (x,yd) de la lista en orden aleatorio, siendo x el vector deentradas e yd la salida deseada.

� Calcular la salida y correspondiente al vector de entradas x.

Page 27: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.3 Circuitos Controladores 9

� Actualizar los parámetros de acuerdo con las siguientes ecuaciones:

�si = �s [yd � y]@y

@si(1.5)

�cij = �c [yd � y]@y

@cij(1.6)

��ij = �� [yd � y]@y

@�ij(1.7)

Donde cij y �ij son parámetros de la función de pertenencia Aij. Porejemplo, para funciones triangulares simétricas, cij puede ser la posicióndel centro del triángulo y �ij la pendiente de uno de sus lados.

� Volver al paso 2 hasta que

Error =1

2

Xpuntos aprendizaje

(yd � y)2 < � (1.8)

o hasta que haya transcurrido un número máximo de iteraciones.

Las derivadas @y=@si, @y=@cij y @y=@�ij pueden ser obtenidas por aplicación dela regla de la cadena, mientras que �s, �c y �� son parámetros que representanla velocidad del aprendizaje.

1.3 Circuitos Controladores

La mayor parte de las aplicaciones de control que emplean lógica borrosa es-tán basadas en paquetes software que corren en computadores convenciona-les. Numerosas empresas ofrecen paquetes comerciales para control borro-so que corren en ordenadores personales y que incorporan facilidades parael diseño y simulación, tales como CubiCalc de Hyperlogic, TILShell de To-gai InfraLogic o FIDE de Aptronix. La velocidad de funcionamiento de estoscontroladores, si bien es suficiente para la mayor parte de las aplicaciones,resulta insuficiente cuando lo que se pretende es el control en tiempo real desistemas muy complejos que requieren un elevado número de reglas o cuandolos sistemas a controlar tienen tiempos de respuesta del orden de los milise-gundos o menos. En estos casos, se impone una realización hardware de losmismos.

En 1985 Togai y Watanabe [99] desarrollaron en AT&T el primer chip borroso,empleando tecnología digital. Posteriormente, Yamakawa y Miki [116] desa-rrollaron el primer chip borroso analógico. Desde entonces, un gran número

Page 28: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

10 Conceptos previos y realizaciones electrónicas

de desarrollos hardware han aparecido en la literatura y algunos de ellos seencuentran disponibles comercialmente (por ejemplo, el chip FC110 de Togaiy el chip NLX230 de NeuraLogix).

En este apartado haremos un rápido repaso a las principales realizacioneshardware de controladores borrosos y presentaremos algunos desarrollos re-alizados en el Grupo de Tecnología Electrónica de la Escuela Superior deIngenieros de Sevilla.

1.3.1 Principales realizaciones hardware

Realizaciones digitales

El primer chip borroso en tecnología digital fue realizado por Togai y Wata-nabe [99]. En su primera versión, el chip considera un único antecedentepor regla. Las entradas se suponen conjuntos borrosos que son leídos de unamanera serie y procesados mediante una regla composicional de inferenciaque emplea el método de Mamdani. La única salida se obtiene mediante eldenominado centro de gravedad. Los conjuntos borrosos (entradas, salida yfunciones de pertenencia) se encuentran codificados en una ROM en formade 31 valores de 4 bits. Este primer chip es capaz de procesar 16 reglas enparalelo, las cuales se almacenan en una ROM interna. Con un reloj de 20.8MHz, el chip alcanza los 80.000 FLIPS (Fuzzy Logic Inferences Per Second).Posteriormente el chip fue mejorado, almacenando las reglas en una RAM es-tática y aumentando la velocidad de procesamiento hasta los 250.000 FLIPScon un reloj de 16 MHz [98], [113].

En 1989 Watanabe y su grupo presentaron un chip que alcanzaba los 580.000FLIPS [114] con un reloj de 36 MHz. El chip procesa un máximo de 102 reglaspor inferencia y tiene dos entradas y una salida (alternativamente 51 reglas,4 entradas y 2 salidas), siendo uno de los chips de mayor complejidad desa-rrollados hasta esa fecha. El circuito mantiene la estructura interna del chipprimitivo. Las reglas se componen mediante el método min–max y la salidaemplea el método del centro de gravedad. Respecto a los diseños anteriores,la precisión aumenta, ya que se mantiene una representación interna de losconjuntos borrosos mediante 64 palabras de 4 bits.

Desde entonces, muchas han sido las realizaciones electrónicas digitales decontroladores borrosos que mejoran las prestaciones de las mencionadas an-teriormente, en parte por la mejora de las tecnologías CMOS, que permite ir afrecuencias de reloj más altas, y en parte por el empleo de técnicas novedosasde multiplexación de tareas en el tiempo. De entre ellas destacamos algunasde las más recientes como [112], [37], [104], [91], [74], [36], [41], [7], [43], [96],

Page 29: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.3 Circuitos Controladores 11

[8] y [34].

Realizaciones analógicas

V CC V CC

V EEV EE

IE2 IE1=

Z = xn

i=1 i

IE2 IE1=E1I

E1I

x x1 2x nx x1 2x n

Comparador Compensador Comparador Compensador

Z = xn

i=1 i

Funcion Minimo Funcion Maximo

Figura 1.4: Partes del circuito de Yamakawa.

En paralelo con los desarrollos anteriores realizados en los EE.UU., el grupodel profesor Yamakawa desarrolló en Japón las primeras realizaciones borro-sas en tecnología analógica [116]. Un computador borroso fue propuesto porYamakawa y desarrollado por OMROM [115]. El computador de Yamakawa(distribuido en múltiples chips que realizan funciones elementales), empleatambién la composición min–max y una reducción a escalar mediante el mé-todo del centro de gravedad. Para ello aprovecha la simplicidad con la quese realizan las operaciones min y max con lógica acoplada por emisor (figura1.4). Las funciones de pertenencia son trapezoidales y se encuentran codifica-das mediante una PROM y un circuito analógico formado por un conjunto detransistores de paso gobernados por las salidas de un decodificador.

Aunque es posible alcanzar velocidades de procesamiento muy elevadas (has-ta 10 Mega FLIPS), el conjunto resulta demasiado complejo. Desarrollos pos-teriores del mismo grupo permiten introducir el controlador completo en doschips, con una velocidad de procesamiento superior a 1 Mega FLIP [97]. Lasfunciones de pertenencia de la salida se consideran “singletons”, con lo cualel proceso de reducción a escalar se simplifica. La necesidad de un segundochip nace del uso de una tecnología CMOS para la realización de las primerasetapas del controlador y de una tecnología BiCMOS para la realización del re-ductor a escalar, que requiere múltiples productos y una división, operacionesrealizables con mayor precisión en tecnología bipolar.

A partir de estas ideas surgieron muchas otras realizaciones de controladoresborrosos en electrónica analógica. Pronto se formaron dos grupos de realiza-ciones claramente diferenciados: realizaciones en las que la información esprocesada en tensión ( controladores modo tensión ) y realizaciones en las que

Page 30: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

12 Conceptos previos y realizaciones electrónicas

la información es procesada en corriente ( controladores modo corriente ).

Los primeros controladores borrosos modo tensión fueron realizados en tecno-logía bipolar, con unos resultados bastante satisfactorios. Sin embargo, la ideade poder incluir controladores borrosos dentro de circuitos ASIC más comple-jos llevó a realizarlos en tecnología CMOS. La mayoría de estas realizacionestienen como elemento constructivo básico el amplificador operacional, por loque los resultados en cuanto a velocidad no son tan relevantes como los resul-tados obtenidos utilizando circuitos modo corriente. Como ejemplos recientesde estas realizaciones podemos citar [88] y [44]. En la primera se muestrauna forma de sistematización del diseño de controladores borrosos en modotensión utilizando amplificadores operacionales y resistencias. La arquitec-tura propuesta es fácilmente realizable con electrónica discreta o integradaya que los cocientes entre los valores de las resistencias son los que progra-man los diferentes parámetros que definen a un controlador borroso. Estaestructura ha sido implementada en [105], obteniéndose muy buenos resulta-dos al ser una forma didáctica de mostrar el funcionamiento en tiempo realde un controlador borroso y al estar accesibles al osciloscopio todas sus etapasintermedias (Borrosificación, inferencia y desborrosificación). En la segundase muestra una implementación integrada muy simple que consigue buenosresultados. Sin embargo, presenta problemas por el circuito de inferencia em-pleado (la versión CMOS del circuito de Yamakawa) que, como veremos en elcapítulo 4, presenta problemas de exactitud cuando las entradas tienen valo-res similares.

Los controladores borrosos modo corriente se revelaron como la alternativaCMOS a los controladores borrosos modo tensión realizados en tecnología bi-polar. La mayoría de estas realizaciones se basan en el amplificador en trans-conductancia (OTA), que es inherentemente más rápido que el amplificadoroperacional. Es por ello que la mayoría de las realizaciones de controladoresborrosos aparecidos recientemente en la literatura emplean este modo de pro-cesar la información. Las primeras realizaciones electrónicas reseñables son[89], [90], [50] y [103]. Últimamente se han realizado esfuerzos para sistema-tizar el diseño de controladores borrosos analógicos modo corriente. De entreellas cabe destacar [61], en el que los autores proponen una solución basadaen el uso exclusivo de circuitos basados en espejos de corriente para la rea-lización de todas las partes de un controlador borroso. Esta solución parecebastante intuitiva, pero se complica si se quiere llegar a velocidades altas defuncionamiento ya que se necesita una gran cantidad de espejos de corrientefuncionando en clase AB. Además, el circuito que realiza la operación míni-mo/Máximo (MIN/MAX) es de complejidad O(n2).

Otro esfuerzo en la generalización del diseño de controladores borrosos analó-gicos es [102], en la que los autores emplean como bloque constructivo básico

Page 31: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.3 Circuitos Controladores 13

el amplificador operacional de transconductancia para la realización de todaslas etapas de un controlador borroso. El controlador resultante no puede serconsiderado de modo tensión o modo corriente exclusivamente, pero el usode transconductores nos lleva a clasificarlo como modo corriente. Aunque lasopciones elegidas para la borrosificación y la desborrosificación son muy váli-das, el circuito utilizado para la inferencia resulta muy complejo comparadocon otras opciones como el circuito de Lazzaro [57].

Existen otras muchas realizaciones de controladores borrosos analógicos enmodo corriente que toman el circuito que más se adecúa a las necesidades dela aplicación para la que han sido diseñados. Esa es la opción que el autor con-sidera más adecuada, ya que así se aprovecha mejor el conocimiento existentede cada tipo de circuitos. De estas opciones cabe destacar [82], ya que propo-ne una estructura modular que puede funcionar en modo corriente y en modotensión. Cada parte del controlador es realizada con el circuito que mejorcumple las especificaciones pedidas. La tecnología empleada por los autorespara realizar los controladores es BICMOS, aunque apuntan que pueden serrealizado completamente en tecnología CMOS.

En esta tesis doctoral se ha propuesto un controlador borroso completo CMOSbasado en la estructura propuesta en [82], precisamente porque intenta rea-lizar cada parte del controlador con el circuito que mejor se adapte a las espe-cificaciones impuestas. Además, su modularidad permite la parametrizacióndel controlador en función del número de entradas, reglas, salidas, etc, deforma que se pueda generar un mapa de conexiones de bloques básicos. Seha tomado como punto de partida el diseño de un controlador borroso CMOSmodo corriente por la facilidad que existe para realizar operaciones como lasuma de varias variables y por la velocidad que se puede llegar a conseguir.

Realizaciones mixtas

Las dos estrategias para acometer el diseño de controladores borrosos men-cionadas anteriormente (diseño digital y diseño analógico) tienen propiedadesdiferentes. Las realizaciones analógicas son muy eficientes en área, no nece-sitan interfase analógico/digital con el mundo real y son capaces de conseguirmuy buenos resultados en velocidad debido a su estructura de procesamien-to paralelo. Sin embargo, los controladores borrosos analógicos suelen tenerun número de entradas, salidas y reglas pequeño. Además, la precisión delcálculo analógico presenta limitaciones tecnológicas como el desapareamientoentre transistores y las variaciones de los parámetros del proceso de fabrica-ción. Por último, los circuitos analógicos son sensibles al ruido y a las interfe-rencias.

Page 32: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

14 Conceptos previos y realizaciones electrónicas

Las realizaciones digitales son más robustas y fáciles de diseñar permitien-do una fácil programación. Sin embargo, necesitan convertidores analógi-co/digitales para comunicarse con el mundo exterior y ocupan más área desilicio para realizar operaciones como la multiplicación o la división.

Una posible solución se basa en las denominadas realizaciones mixtas que in-tentan tomar lo mejor de ambos mundos (digital y analógico). De las muchasrealizaciones mixtas que existen en la literatura destaca un grupo importantebasado en las técnicas de trenes de pulsos (TTPs) [70]. Estas técnicas utilizanseñales digitales para transportar información y controlar circuitos analógi-cos. Las realizaciones electrónicas basadas en TTPs no tienen por qué sermixtas, pudiendo ser realizadas completamente en tecnología digital. Sin em-bargo, destacamos las realizaciones mixtas porque en el apéndice B de estatesis doctoral se propone una estructura basada en TTPs para realizar unaRed Celular Neuronal.

En el Grupo de Tecnología Electrónica se han realizado diferentes aportacio-nes en la utilización de TTPs para la realización de controladores borrosos yredes neuronales de entre las que destacamos [101], [28], [51], [30] y [100]. Laúltima de ellas es un claro ejemplo de realización de un controlador borrosoen tecnología analógico/digital.

Existen otras realizaciones mixtas que no han utilizado técnicas TTPs. En[49] se propone la utilización de circuitería analógica para realizar los cálcu-los necesarios para el algoritmo de control borroso. Esta circuitería analógicacontiene condensadores cuya carga es controlada por circuitería digital quedescarga cada cierto tiempo los condensadores para comenzar de nuevo unafase de cálculo.

En [12] se presenta un controlador borroso modo corriente que utiliza circuitosdigitales (espejos de ganancia programable digitalmente, convertidores ana-lógico/digitales, etc) para controlar a los circuitos analógicos y hacerlos másversátiles. Por último, en [15] se propone de nuevo el uso de lógica digital paracontrolar un controlador borroso analógico. Además, propone una arquitectu-ra no paralela en la que cada entrada es procesada en el mismo evaluador defunciones de pertenencia.

En esta tesis proponemos un controlador borroso mixto que utiliza la lógicadigital para reducir el consumo del circuito completo. La velocidad de res-puesta del circuito es programable de forma que el ahorro en consumo serámayor cuanto más lento programemos la salida del controlador borroso.

Page 33: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.3 Circuitos Controladores 15

1.3.2 Automatización del diseño de controladores borro-sos digitales

El gran número de aplicaciones industriales en las que se están incluyendorealizaciones electrónicas de controladores borrosos [117] está llevando a quese acometa la automatización del diseño de dichos controladores. Como se sa-be, la automatización reduce el tiempo de diseño y el coste del mismo.

De la multitud de variantes que se pueden utilizar para diseñar un controla-dor borroso, la mayoría de las realizaciones electrónicas utilizan un pequeñosubconjunto de variantes. Es decir, la estructura básica de las realizacionesde controladores borrosos comparten puntos de coincidencia como el métodode inferencia, la forma de las funciones de pertenencia, etc. Es por ello que laautomatización es posible.

En la literatura han sido publicados diferentes intentos de automatización deldiseño de controladores borrosos. En algunos casos el objeto de la automati-zación es simplemente la generación del código VHDL de un controlador conuna arquitectura fija en la que sólo se puede elegir el número de entradas,salidas y reglas. Algunas herramientas generan el controlador partiendo deuna descripción de las reglas en un lenguaje de alto nivel.

En [31] y [32] los autores proponen una herramienta que parte de una des-cripción de las reglas del controlador que se quiere realizar y termina con lageneración del código VHDL que describe al controlador. Esta herramientaes versátil pues permite diferentes complejidades de hardware (número demultiplicadores, sumadores, etc). Sin embargo, para que el usuario encuentreel controlador que mejor satisface sus necesidades, es necesario un procesoiterativo (prueba/error). La arquitectura del controlador es fija en cuanto alalgoritmo que implementa (algoritmo de Mamdani con funciones triangularespara los antecedentes y “singletons” para los consecuentes), lo cual no limitala posibilidad de aplicación de esta herramienta, ya que es el algoritmo másutilizado en las realizaciones electrónicas de controladores borrosos.

En [42] se presenta un sistema de simulación y síntesis de controladores bo-rrosos. Esta herramienta genera la descripción VHDL del controlador borrosoespecificado por el usuario en términos de número de reglas, salidas, entradas,precisión de las variables, . . . etc. La mejor característica de esta herramien-ta es la variedad de arquitecturas (algoritmos de borrosificación, inferencia ydesborrosificación) que es capaz de implementar. Además, no realiza ningunaoptimización del controlador generado, de forma que si dicho controlador nosatisface las necesidades de velocidad de respuesta o área, el usuario no pue-de hacer nada.

Page 34: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

16 Conceptos previos y realizaciones electrónicas

En [47] se presenta un generador de controladores borrosos para ser imple-mentados sobre FPGA. Para que el usuario encuentre el controlador deseado,es necesario un proceso iterativo en el que el usuario busca a través del espa-cio de diseño. Sin embargo, los controladores generados suelen tener tiemposde respuesta lentos comparados con las soluciones basadas en ASICs.

Existen otras herramientas de síntesis de otros tipos de controladores. Esdestacable [5], ya que se basa en la colocación de micro–operaciones y partesanalógicas y otras digitales de forma que se genera una red neuronal mix-ta que no sólo ocupa menor área que una completamente digital, sino queademás tiene mejores prestaciones en términos de precisión que una comple-tamente analógica.

En esta tesis doctoral se presenta una herramienta, llamada AFAN, que escapaz de generar la descripción VHDL de controladores borrosos y neurona-les digitales. Esta herramienta es capaz de buscar en un espacio de diseño elgrado de paralelismo (complejidad de hardware) para encontrar el controladorque más se acerca a las especificaciones del usuario en términos de velocidady área.

1.3.3 Automatización del diseño de controladores borro-sos analógicos

En los últimos años también se han realizado esfuerzos para automatizar eldiseño de controladores borrosos analógicos. Las razones son la mismas quelas expuestas en el caso de los controladores borrosos digitales. Varias herra-mientas han sido propuestas para la automatización del diseño de los contro-ladores analógicos. Cada una de ellas presenta características diferentes quepasamos a detallar.

En [64] se propone la generación del layout de un controlador borroso analógi-co a partir de las reglas que describen el funcionamiento del mismo. El layoutgenerado no es reconfigurable, ya que todas las tensiones de control son ge-neradas a partir de unos divisores de tensión resistivos y están conectadasal punto de control a través de una matriz de conexiones. Esta herramientaes buena en tanto en cuanto libera al diseñador de conocer cómo funciona laelectrónica analógica que incorpora el controlador. Sin embargo el controladordiseñado es ineficiente en consumo, versatilidad, reprogramabilidad y área.

En [60] se simplifica la automatización del diseño de controladores borrososanalógicos al tomarse una estructura basada en espejos de corriente para rea-lizar todas las partes de que consta el controlador. Además, se aprovechanotras herramientas existentes en el grupo de investigación del que forman

Page 35: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.4 Circuitos de muy baja tensión de alimentación para elprocesamiento de señal 17

parte los autores para poder generar un layout a partir de las especificacionesdel usuario. Los resultados obtenidos demuestran que la automatización deldiseño es posible, si bien, sin el uso de espejos de corriente clase AB la res-puesta del circuito obtenido será lenta, y si se utiliza una gran cantidad deestos espejos el offset introducido puede ser importante.

Existen otras aproximaciones que parten de una estructura fija del controla-dor y centran su esfuerzo en generar una una base de datos que sea compa-tible con las reglas borrosas que describen la solución del problema y que searealizable dentro de la arquitectura fija propuesta [66].

En esta tesis se propone una forma de automatizar el diseño de controladoresborrosos basado en el uso de una estructura modular. La circuitería analógicautilizada para la realización del controlador no se basa en un único bloqueconstructivo sino que se elige el que mejor se aproxime a las prestaciones de-seadas. Además, es posible incorporar una estrategia de ahorro de energíacuando se desee y siempre que la velocidad de la aplicación lo permita.

1.4 Circuitos de muy baja tensión de alimenta-ción para el procesamiento de señal

Uno de los campos de investigación que en la actualidad está teniendo másauge es el diseño de circuitos de baja tensión de alimentación. Existen variosmotivos:

� La reducción de la escala de integración para poder incluir más puertasdigitales por milímetro cuadrado de área de silicio, tiene como conse-cuencia la necesidad de reducir el consumo de dichos circuitos. De estaforma se disipa menos energía, que es una de las limitaciones más impor-tantes. Como la energía disipada en un circuito digital es proporcional aV 2dd parece lógico que al reducir la tensión de alimentación se alcance el

objetivo deseado.

� Por otro lado, la reducción de los tamaños físicos de los transistores demínima dimensión de la tecnología trae como consecuencia tamaños muyreducidos del espesor del óxido de la puerta. El gradiente de tensión endicho óxido es muy grande y se consigue reducir si se reduce la tensiónde alimentación.

� El auge de los equipos portátiles (teléfonos móviles, ordenadores portá-tiles, etc) ha provocado el desarrollo de las baterías portátiles de largaduración. Sin embargo, una forma de conseguir mayor duración de labatería, es la reducción de la tensión de alimentación de los circuitos

Page 36: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

18 Conceptos previos y realizaciones electrónicas

digitales. Por último, la reducción de la tensión de alimentación haceque se puedan utilizar baterías simples (1.5 V en las normales y 0.6 enNíquel–Cadmio) para alimentar equipos portátiles.

Por todo ello, nos planteamos en esta tesis la realización de controladores bo-rrosos analógicos de baja tensión de alimentación. Después de una búsquedabibliográfica descubrimos que no existen tantos circuitos en la bibliografía quenos permitan realizar un circuito procesador de señal de baja tensión de ali-mentación. Existen técnicas como la de transistores con puerta flotante [81]que permiten realizar una amplia gama de circuitos de baja tensión (suma-dores de tensión, amplificadores de transconductancia, multiplicadores, etc.),pero aún así, no todos los operadores que necesitamos pueden ser conseguidosmediante estas técnicas. Por otro lado, la mayoría de las aportaciones en estecampo han sido realizadas para diferentes tensiones de alimentación, la ma-yor parte de las ocasiones porque se han utilizado tecnologías con tensionesumbrales muy diferentes.

Esto hizo que nos planteásemos como reto el diseño de circuitos para proce-samiento de señal (amplificadores operacionales, amplificadores en transcon-ductancia, rectificadores, espejos de corriente, etc) cuya tensión de alimenta-ción fuese cercana a la tensión umbral de la tecnología. De esta forma todoslos circuitos propuestos serán fácilmente transportables a diferentes tecnolo-gías. En nuestro caso, la tecnología que utilizamos fué AMS CXQ que, comocaracterística principal, presenta VT � 0:85V . Por ello, consideraremos “bajatensión” a los circuitos capaces de operar con tensiones cercanas a esa, másuna cierta cantidad necesaria para los espejos de corriente VOV = 0:15. Ennuestro caso, si suponemos espejos en la parte superior e inferior, obtenemosuna tensión de 1.15V. De esta forma diseñaremos circuitos que sean capacesde operar con esa tensión y que tengan todos sus transistores operando en laregión de saturación.

Las aportaciones que en este campo presenta esta tesis, forman parte de lastareas de un grupo de trabajo constituido por varios doctores y el doctoran-do. A pesar de que las ideas aquí expuestas son un compendio de las ideassurgidas de este grupo de trabajo, el doctorando las expone al ser parte de sutrabajo de tesis, la cual se puede considerar co-dirigida por varios doctores enesta parte.

Recientemente han aparecido libros y números especiales en revistas que re-visan la bibliografía existente en este nuevo campo que es el diseño de cir-cuitos de baja tensión de alimentación [94], [2], [3]. En ellos se recopilan lasaportaciones más importantes aparecidas en los últimos años. De todas ellassólo nos fijaremos en las que cumplen el objeto de nuestro estudio, ya quedesde hace unos años se consideran circuitos de baja tensión a aquellos que

Page 37: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

1.4 Circuitos de muy baja tensión de alimentación para elprocesamiento de señal 19

consiguen reducir la tensión de alimentación de cierto tipo de circuitos. Porejemplo, en la época en la que se pasó de 5 voltios a 3.3 voltios en los circuitosdigitales, apareció mucha bibliografía referente a circuitos analógicos capa-ces de operar con 3.3 voltios. Estos circuitos no cumplen las restricciones quenosotros vamos a imponer a nuestro diseño, por lo que no los catalogaremoscomo de “muy baja tensión”.

De todos los circuitos aparecidos en la literatura, nos centraremos en los quehacen referencia al amplificador operacional, por ser éste el elemento básicoen la electrónica integrada. En esta tesis se han realizado otro tipo de aporta-ciones como transconductores, rectificadores y espejos de corriente, la mayoríade ellos basados en el mismo principio de funcionamiento, como veremos másadelante.

En [119], [10], [11] y [75] se proponen esquemas de amplificadores operacio-nales clase AB capaces de operar con tensiones de alimentación cercanas a latensión umbral de un transistor. Además, tienen reducido rango de tensionesde entrada, por lo que son apropiados para aplicaciones en circuitos de ca-pacidades conmutadas en su modalidad “amplificadores conmutados”. Estoscircuitos están basados en una etapa de transconductancia (OTA) de entra-da que tiene ganancia pequeña en bucle abierto ya que no se pueden utilizartécnicas cascodo. El área de estos esquemas es muy grande así como el con-sumo de potencia ya que la corriente generada en la etapa de entrada debeser pasada a la salida a través de espejos de corriente con pequeña tensión desalida (VOV ). Para que esto sea realizable se necesitan transistores con W/Lmuy grande, lo que introduce polos secundarios de “baja frecuencia” que limi-tan severamente el máximo del producto ganancia–ancho de banda (GBW).Además, el producto GBW ya está limitado por la tensión VOV , ya que am-bas magnitudes son proporcionales, y VOV debe ser reducida para poder hacerfuncionar a los espejos de corriente correctamente.

En [14] se presenta un esquema que es capaz de operar con rangos de tensióngrandes a la entrada y a la salida y con una tensión de alimentación cercanaa la tensión de umbral de un transistor. Sin embargo, esta realización utilizael substrato de un transistor MOS como una entrada activa de amplificadoroperacional, lo cual limita severamente su ancho de banda. En [56] se pre-senta un diseño capaz de operar con 1.8V. Está basado en pares diferencialescomplementarios a la entrada y una etapa de salida clase AB. Los autores yaapuntan que la etapa de entrada funcionaría en todo el rango de tensiones sila alimentación fuese de 2.5V. El ancho de banda obtenido es un poco mejorque en el resto de diseños (4MHz).

Por último, en [40] y [39] se proponen las versiones diferencial y simple de unamplificador operacional con una alimentación cercana a 1.2V, pero utilizando

Page 38: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

20 Conceptos previos y realizaciones electrónicas

transistores con tensiones umbrales de 0.6V, por lo que se alejan de nuestroobjetivo. De hecho, existen algunas implementaciones como ésta, que utilizanpares de entrada complementarios a la entrada. Para que esta configuraciónfuncione, además de ser más compleja, necesita una alimentación de unos1.5V en nuestra tecnología (VT = 0:85V ), lo que implica una alimentación de1.2V para VT = 0:6V . Otra desventaja de este diseño es que el autor realiza lospares diferenciales de entrada con relaciones de aspecto para los transistoresmuy grandes, de esta forma consigue hacer funcionar a los transistores de en-trada en zona lineal para tener un rango de tensiones de entrada mayor. Esteenfoque se desvía de nuestro objetivo, ya que nuestra idea es hacer funcionara todos los transistores en zona de saturación.

Una característica muy importante de los diseños mencionados anteriormentees que el ancho de banda obtenido es muy reducido (0.1MHz–2MHz). Nues-tro objetivo es diseñar amplificadores operacionales de mayor ancho de bandapara que sean útiles en un número mayor de aplicaciones.

En esta tesis se presentan [79] varias realizaciones de amplificadores opera-cionales capaces de operar con una tensión cercana a la tensión umbral de untransistor, con todos los transistores funcionando en la zona de saturación ycon rangos completos de tensión a la entrada y a la salida. También se presen-tan otras realizaciones de transconductores de muy baja tensión de operación.Todo este conjunto de aportaciones se detallan en el capítulo 5.

Page 39: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Capítulo 2

Diseño Automático deControladores Borrosos yNeuronales

Índice General

2.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2 Flujo de Diseño de AFAN . . . . . . . . . . . . . . . . . . . . 24

2.3 Optimización de Arquitectura . . . . . . . . . . . . . . . . . 25

2.3.1 Controlador Borroso . . . . . . . . . . . . . . . . . . . . 25

2.3.2 Perceptrón Multicapa . . . . . . . . . . . . . . . . . . . . 27

2.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.5 Conclusiones y trabajo futuro . . . . . . . . . . . . . . . . . 33

En este capítulo presentamos una herramienta, llamada AFAN, que automa-tiza el diseño de controladores basados en lógica borrosa y en redes neurona-les. AFAN no sólo automatiza su diseño sino que presta especial atención ala selección de la arquitectura del controlador. En concreto, AFAN conside-ra diferentes clases de paralelismo en la circuitería y selecciona la que mejorse ajusta a las especificaciones del usuario. Al final del capítulo se presentandiferentes ejemplos que muestran la funcionalidad de AFAN.

Page 40: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

22 Diseño Automático de Controladores Borrosos y Neuronales

Page 41: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2.1 Introducción 23

2.1 Introducción

En los últimos años los controladores basados en lógica borrosa y en redesneuronales han encontrado gran número de aplicaciones en campos tales co-mo la industria del automóvil, la robótica, la electrónica de potencia y loselectrodomésticos [1], [4]. Por ello, no es extraño encontrar controladores ba-sados en lógica borrosa y en redes neuronales formando parte de circuitosintegrados de aplicación específica (ASIC) industriales.

Recientemente han aparecido herramientas que automatizan el diseño elec-trónico de controladores basados en redes neuronales y lógica borrosa [32],[19].Estas herramientas generan ficheros en código VHDL que describen al contro-lador. A partir de estos ficheros el controlador puede ser obtenido (su esquemaeléctrico) utilizando un sintetizador de circuitos comercial como Synopsys oSynergy1.

Sin embargo, estas herramientas no se han ocupado de optimizar la arquitec-tura del controlador. En la mayoría de los casos, la arquitectura está fijada oel diseñador tiene que realizar una elección de entre las posibles arquitectu-ras que la herramienta le permite elegir.

En [32] se utiliza un proceso de selección de micro–operaciones colocándolasen diferentes partes del circuito y en diferentes ciclos de operación de la má-quina. Esta es una aproximación de bajo nivel a la selección de arquitectura.Sin embargo, en la práctica, el número de arquitecturas utilizadas en estetipo de controladores es limitado. Mas aún, es fácil identificar un grupo bási-co de elementos constructivos. Por ello, una aproximación al problema desdeun nivel de abstracción más alto parece una solución que puede proporcionarmejores soluciones.

AFAN tiene en cuenta las especificaciones del usuario acerca de la resoluciónde las variables (no de bits), la velocidad deseada y el área de silicio a utilizarpara seleccionar la arquitectura del controlador que mejor se ajusta al con-junto de especificaciones del usuario. Para ello considera diferentes opcionesen el paralelismo y en la conexión entre los diferentes bloques del controla-dor. También se preocupa de generar arquitecturas que puedan incluir cir-cuitería específica de aprendizaje por el método de propagación hacia atrás,característica esta última que no tienen otras herramientas mencionadas enla literatura. Una vez que la arquitectura es seleccionada, AFAN produce unfichero VHDL que contiene la descripción de la circuitería del controlador conla arquitectura elegida.

1Synopsys, Synergy y Cadence DFW–II son marcas registradas

Page 42: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

24 Diseño Automático de Controladores Borrosos y Neuronales

En este capítulo se va a describir el flujo de diseño de AFAN. Después sedescribirá el bloque de selección de arquitectura. Finalmente se presentaránvarios ejemplos y conclusiones.

2.2 Flujo de Diseño de AFAN

Estimación

Selección de

del UsuarioRequerimientos

NO

SI

SI

NO

LAYOUT(Externo a AFAN)

de prestaciones

Arquitectura

¿Acepta?¿Acepta?código VHDL

Generación del

Código VHDL

Síntesis del

Figura 2.1: Flujo de Diseño de AFAN.

El flujo de diseño de AFAN se muestra en la figura 2.1. En un diseño realizadocon AFAN el usuario introduce especificaciones relativas al máximo de áreadeseado, la mínima velocidad permitida para que el controlador satisfaga lasnecesidades de la aplicación de control y la resolución en número de bits de lasvariables de entrada, internas y de salida. La tabla 2.1 muestra un conjuntotípico de requerimientos de usuario para un controlador borroso.

AFAN se aprovecha del hecho de que los controladores borrosos y neuronalesestán, en la práctica, compuestos por un grupo de bloques básicos tales comogeneradores de funciones de pertenencia, bloques que realizan la inferencia(función máximo, mínimo, multiplicación,. . . ) y desborrosificadores en el casode controladores borrosos o sumadores–multiplicadores, bloques “competido-res” y funciones de activación en el caso de redes neuronales. Dependiendodel método elegido para implementar estos bloques, existe un conjunto de po-sibles implementaciones en circuito digital que explotan el paralelismo entreoperadores iguales o diferentes (“pipe–line”), a costa de una mayor compleji-dad. Las interconexiones entre los diferentes bloques es optimizada también

Page 43: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2.3 Optimización de Arquitectura 25

Reloj 20 MHzVelocidad del Controlador 0.5 MFLIPS (*)

Área del Controlador � 15 mm2

Resolución Entrada/Salida (bits) 8Resolución Interna (bits) 8

Aprendizaje –Funciones de Pertenencia (Entrada) Triangular

Tipo de Inferencia MamdaniNúmero de Reglas 32

Número de Entradas 3(*) MFLIPS: Mega Fuzzy Logic Inferences per Second.(En Inglés)

Tabla 2.1: Un conjunto simplificado de especificaciones de usuario para uncontrolador borroso.

por AFAN.

En algunos casos, es interesante incluir propiedades de aprendizaje en el con-trolador. AFAN es capaz de incluir la circuitería necesaria para realizar elalgoritmo de aprendizaje de propagación hacia atrás.

2.3 Optimización de Arquitectura

El proceso de selección de arquitectura se va a presentar para el caso deun controlador borroso y para el de un perceptrón multicapa. Sin embargo,hay que hacer notar que otros controladores pueden ser también incluidos enAFAN. No sólo controladores basados en redes neuronales y lógica borrosa,sino también controladores clásicos como los basados en las redes de Petri oen control PID, siempre y cuando éstos se puedan dividir en bloques sencillosy se pueda proponer reglas sencillas para definir la velocidad, resolución ycomplejidad de estos bloques y sus interconexiones.

2.3.1 Controlador Borroso

Los siguientes bloques constructivos pueden ser identificados en un controla-dor borroso[58]:

� El Generador de Funciones de Pertenencia (MFG). Existen diferentesbloques en AFAN que realizan esta función: una representación tabula-da de funciones de pertenencia de forma arbitraria (para controladores

Page 44: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

26 Diseño Automático de Controladores Borrosos y Neuronales

muy rápidos con baja resolución de las variables de entrada) o la com-putación algorítmica del grado de pertenencia para diferentes tipos defunciones de pertenencia, entre las que se incluyen formas triangularesy trapezoidales.

� La máquina de inferencia (IM). AFAN incluye los métodos más comu-nes para realizar el proceso de inferencia, entre los que se incluye el deMamdani (figura 2.2).

µRw1

MINIMO

z

z0x21

0x

w2 ConjuntoBorroso Inferido

Regla 1

Regla 2

Figura 2.2: Proceso de inferencia de Mamdani, utilizando pulsos unitarios(singletons) como funciones de pertenencia para las variables de salida.

� La memoria de reglas (RM). Las reglas se guardan en memorias inter-nas de tipo RAM. Dependiendo de la arquitectura final del controlador,algunas reglas (o incluso todas ellas) tienen que ser accesibles en para-lelo. AFAN es capaz de identificar el número mínimo de memorias RAMnecesarias para proporcionar el nivel de paralelismo que mejor se aco-mode a los requerimientos del usuario. La utilización de memorias RAMpara el almacenamiento interno reduce la complejidad de la circuiteríanecesaria para el controlador.

� El bloque Desborrosificador (DF). En la actualidad sólo se ha implemen-tado un método de desborrosificación en AFAN: el método del centro degravedad con pulsos unitarios (singletons) como consecuentes de las re-glas. La ecuación (2.1) resume los cálculos que hay que realizar paraobtener la salida del controlador.

salida =

Pi=ni=1 wisiPi=ni=1 wi

(2.1)

Page 45: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2.3 Optimización de Arquitectura 27

donde n es el número de reglas, wi es el resultado del proceso de inferen-cia para cada regla i, y si es el singleton para el consecuente de la regla i.

2.3.2 Perceptrón Multicapa

Los siguientes bloques constructivos básicos pueden ser identificados en unperceptrón multicapa [111]:

� El cuerpo de la neurona (NB). El cuerpo de la neurona realiza una sumapesada de las entradas. AFAN incluye además, la posibilidad de añadirun peso de polarización (figura 2.3). Los pesos pueden ser fijos o va-riables, dependiendo de los requerimientos del usuario. En AFAN, lasneuronas de la misma capa tienen el mismo número de entradas.

� La función de activación (AF). Actualmente, sólo una función de activa-ción lineal a trozos (saturada) está siendo considerada en AFAN. Depen-diendo de la especificación de resolución interna en número de bits, lapendiente puede tener un gran número de valores. AFAN también per-mite la programación en línea de la pendiente de la función de activaciónpara poder así mejorar la convergencia durante el proceso de aprendiza-je empleando, por ejemplo, el método de enfriamiento simulado.

x 2 ω 2

x 1ω 1

Σi=1

n

���� ������ ���� ����

����

����������������x 3ω 3

x nω n

ω 0

’1’

y

AF

0 i iy = AF ( w + w x )

Figura 2.3: Una neurona típica.

Page 46: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

28 Diseño Automático de Controladores Borrosos y Neuronales

2.4 Ejemplos

Consideremos primero el diseño de un controlador borroso con las especifica-ciones de la tabla 2.1 y un reloj del sistema de 20 MHz.

Divisor

Salida

Σω i

i * SiΣ ωΣω i

i * SiΣ ω

Σω i

i * SiΣ ω

Divisor

Salida

Velocidad > 0.1 MFLIPs

Velocidad > 0.5 MFLIPs

Número de Puertas = 10500

las reglas

RAM con.................

ω i

las Reglas

RAM con.................

ω i

las Reglas

RAM con.................

Entradas

ω i

EntradasEntradas

Número de Puertas = 3700

B)

A)

Figura 2.4: a) Arquitectura del controlador borroso generado por AFAN conlas especificaciones de la tabla 1. b) Arquitectura seleccionada por AFAN si lavelocidad del controlador es reducida a 0.1 MFLIPS.

Debido a los requerimientos de velocidad del controlador, AFAN selecciona unnivel intermedio de paralelismo en diferentes bloques del controlador como serepresenta gráficamente en la figura 2.4a.

Como los requerimientos de velocidad no son demasiado exigentes, se ha selec-cionado la computación algorítmica del grado de pertenencia de las variablesde entrada. Se ha colocado en el controlador una MFG parametrizable parafunciones de pertenencia triangulares. Si los requerimientos de velocidad fue-sen muy superiores, se utilizaría una representación tabulada de la MFG con

Page 47: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2.4 Ejemplos 29

a) Area del "core"= 15.38 mm Area Total = 28.32 mm2 2

b) Area del "core"= 2.96 mm Area Total = 9.75 mm

22

Figura 2.5: a) Layout del controlador borroso generado por AFAN con las espe-cificaciones de la tabla 1. b) Layout generado por AFAN si las especificacionesde velocidad del controlador se reducen a 0.1 MFLIPS.

una organización de la memoria como la expuesta en [91],con un alto coste enárea de silicio.

El bloque MFG seleccionado necesita ni + 2 ciclos de reloj para evaluar cadaregla (donde ni es el número de entradas del controlador). Por ello, el nú-mero de ciclos de reloj necesario para evaluar el numerador y el denominadorde la expresión (2.1) es: nreglas�(ni+2), lo que corresponde a 160 ciclos de reloj.

La desborrosificación necesita tantos ciclos de reloj como bits tiene el nume-rador (lo que supone 22 ciclos de reloj) si se utiliza un algoritmo simple dedivisión en vez del método de división de un solo ciclo de reloj (muy costo-so en área) o el de aproximaciones sucesivas (que necesita un multiplicador).Hay que hacer notar que, en este ejemplo, el tiempo necesario para realizar ladesborrosificación es un orden de magnitud inferior al tiempo necesario pararealizar el proceso de inferencia, lo que hace que satisfacer la velocidad especi-ficada no sea una tarea crítica. En caso contrario, AFAN hubiese seleccionadouna estrategia de división más rápida.

El proceso de inferencia y la desborrosificación serán realizadas en paralelo,utilizando técnicas de paralelismo en el tiempo (“pipe-line”). Como el procesode desborrosificación necesita menos de 40 ciclos de reloj, el proceso de infe-rencia puede ser realizado por cuatro bloques iguales trabajando en paralelo(160=4 = 40 ciclos de reloj) para conseguir satisfacer los requerimientos delusuario.

Sumando la complejidad de los diferentes bloques del controlador borroso se-leccionados por AFAN, la complejidad total estimada es de unas 10500 puertas

Page 48: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

30 Diseño Automático de Controladores Borrosos y Neuronales

Reloj 20 MHzVelocidad del Controlador 500 MSPS (*)

Área del controlador � 60 mm2

Resolución de Entrada/Salida (bits) 8Resolución Interna(bits) 10

Aprendizaje Propagación hacia atrásNúmero de Capas 3

Número de neuronas por capa 2–10–2(*) MSPS: Mega Synapses Per Second (En Inglés).

Tabla 2.2: Conjunto de especificaciones para un perceptrón multicapa.

equivalentes, lo que corresponde aproximadamente a 11mm2 de área activa enla tecnología seleccionada (0.7 �m CMOS). Utilizando un factor de rutado deun 30%, el layout del controlador debería ser de unos 14,3 mm2, lo que sa-tisface todos los requerimientos del usuario. El factor de rutado es estimadoen función de la cantidad de área activa, la utilización de memorias RAM yel ancho de los buses internos. La velocidad estimada del controlador es 0.5MFLIPS (Mega Fuzzy Logic Inferences per Second).

La figura 2.5a muestra el layout final generado en CADENCE DFW–II, par-tiendo del código VHDL generado por AFAN y transformado en puertas de lalibrería del fabricante por el programa Synopsys.

Hay que hacer notar que AFAN genera celdas que deben ser incluidas comoparte de un diseño mayor. Sin embargo, para dar una idea global, se ha gene-rado el layout de un circuito completo incluyendo los pads de entrada/salida.El área del chip es de 28.32 mm2 y el área del core es de 15.38 mm2. Además,se puede comprobar en la figura que el área de la celda es menor de 15 mm2

ya que el layout final no se encuentra totalmente optimizado.

Si los requerimientos de velocidad se reducen (por ejemplo, hasta 0.1 MFLIPS),AFAN selecciona la arquitectura con la mínima complejidad, en la cual to-das las reglas y entradas son procesadas secuencialmente utilizando una solaMFG. Esta arquitectura puede verse en la figura 2.4b. La máxima velocidadestimada es ahora de 0.125MFLIPS, mientras que el área estimada de la celdaes de 2.4 mm2. Una vez más, la figura muestra un chip completo incluyendolos pads de entrada/salida con un área total de 9.75 mm2.

Continuamos ahora con otro ejemplo de un perceptrón multicapa que incluyecircuitería de aprendizaje por el método de retropropagación. En este caso, elvalor tan alto de velocidad de procesamiento seleccionado (ver tabla 2.2), fuer-za a AFAN a elegir una arquitectura totalmente paralela (figura 2.6), donde

Page 49: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2.4 Ejemplos 31

cada neurona es un bloque independiente, aunque dentro de cada una de ellaslas operaciones de suma y multiplicación son procesadas secuencialmente. Es-ta celda requiere una gran cantidad de área de silicio. La velocidad estimadadel circuito propuesto por AFAN es de 346.5 MSPS (Mega Synapses Per Se-cond) y el consumo de área es aproximadamente de 35 mm2.

Hay que hacer notar que, en este caso, el requerimiento de velocidad no sepuede lograr con los bloques existentes. Se podría intentar paralelizar lasoperaciones dentro de la neurona pero el área de silicio resultante sería invia-ble para su fabricación. Por ello, AFAN devuelve al usuario el diseño que másse aproxima a sus especificaciones, indicando, además, que un incremento nomuy importante en la velocidad de reloj del sistema podría conseguir cumplirla especificación de velocidad.

El layout final para este ejemplo puede verse en la figura 2.7. Si la celda esintegrada como único componente de un chip, el área total, incluyendo padsde entrada/salida, es de 58 mm2.

Capa Oculta

Capa de Salida

Número de puertas = 30.000

Velocicad = 346.5 MSPS (Mega Synapses Per Second)

Capa de Entrada

Figura 2.6: Arquitectura de un controlador neuronal de tres capas generadopor AFAN con las especificaciones de la tabla 2. Cada neurona es un bloqueindependiente.

Los Layouts de las figuras 2.5 y 2.7 han sido obtenidos en CADENCE DFW–IIa partir del código VHDL generado por AFAN y procesado después con Sy-nopsys para obtener un circuito en puertas de la librería del fabricante. Elciclo total de diseño duró, en el peor de los casos, menos de dos días de trabajode un diseñador experto si bien, los layouts no han sido completamente opti-mizados.

Page 50: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

32 Diseño Automático de Controladores Borrosos y Neuronales

Area del "core"= 38.6 mm Area Total= 58 mm2 2

Figura 2.7: Layout del controlador neuronal de tres capas generado por AFANcon las especificaciones de la tabla 2.

Page 51: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

2.5 Conclusiones y trabajo futuro 33

2.5 Conclusiones y trabajo futuro

Se ha presentado un prototipo de una herramienta para el diseño automá-tico de controladores basados en lógica borrosa y en redes neuronales. Laherramienta propuesta utiliza un conjunto de reglas sencillas para realizarla selección de la arquitectura desde un acercamiento al problema de alto ni-vel, proporcionando diferentes soluciones para diferentes requerimientos delusuario. Se han presentado diferentes ejemplos realizados con AFAN, mos-trando sus habilidades.

En la actualidad, solamente un conjunto reducido de controladores basadosen lógica borrosa y en redes neuronales están siendo considerados en AFAN,incluyendo controladores borrosos con inferencia por el método de Mamdani yredes neuronales con la arquitectura del perceptrón y un número arbitrario deneuronas y capas. Sin embargo, se está considerando la extensión de AFANa otros tipos de controladores como los controladores neuro–borrosos (comoel ANFIS [52]), controladores PID, redes de PETRI, etc. Por último, hay queindicar que AFAN es capaz de añadir la circuitería necesaria para realizar elaprendizaje por retro–propagación si se quiere incluir.

Page 52: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

34 Diseño Automático de Controladores Borrosos y Neuronales

Page 53: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Capítulo 3

Aplicaciones Industriales

Índice General

3.1 Aplicación industrial de la lógica borrosa . . . . . . . . . 37

3.2 Proyecto ASITRON . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3 Proyecto ADAPT . . . . . . . . . . . . . . . . . . . . . . . . . 38

En este capítulo se muestran dos ejemplos de aplicación industrial de la he-rramienta presentada en el capítulo anterior [21]. Ambas aplicaciones son larealización microelectrónica de un circuito de aplicación específica (ASIC) pa-ra la resolución de un problema. En el primer caso el circuito ASIC se dedicaal control de un motor de inducción de un sistema de tráfico vertical, mientrasque en el segundo el ASIC se dedica al control de un sistema de comunicacio-nes por onda portadora. En ambos casos era necesario utilizar control borrosopara conseguir las prestaciones deseadas. Por otro lado, el controlador borrosorequerido podía ser generado por AFAN, por lo que el tiempo de diseño y sucoste se redujo.

Page 54: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

36 Aplicaciones Industriales

Page 55: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

3.1 Aplicación industrial de la lógica borrosa 37

3.1 Aplicación industrial de la lógica borrosa

La herramienta AFAN desarrollada en esta tesis doctoral ha sido utilizada endos aplicaciones industriales. En ambos casos el controlador borroso es unaparte de un Circuito Integrado de Aplicación Específica (ASIC) diseñado endos proyectos industriales diferentes:

� Proyecto ASITRON

� Proyecto ADAPT

En estos dos proyectos el autor de esta tesis colaboró de formas muy diferen-tes. En ASITRON proporcionó la celda digital que realizaba el control borrosoy el resto del proyecto fue elaborado por otros miembros del Grupo de Tecno-logía Electrónica. Sin embargo, en ADAPT colaboró en la realización de todotodo el proyecto, incluyendo el controlador borroso.

3.2 Proyecto ASITRON

Todas las partes del circuito constituyen en conjunto un sistema de ControlVectorial–Borroso que será utilizado para controlar la velocidad de una má-quina de inducción en un sistema de tráfico vertical. ASITRON se enmarcadentro de la acción GAME (acción especial del programa ESPRIT) con la co-financiación de la empresa Mecanismos y Accesorios MAC S.A. El circuito hasido fabricado con la tecnología CMOS 0:7� de ES2 y está incorporado a lalínea de producción de esta empresa [68].

Con el control vectorial se pretende eliminar la dependencia entre las varia-bles de control de una máquina de inducción. Esto se puede conseguir me-diante un control electrónico de las componentes de corriente responsablesdel par y del flujo magnético. De esta manera, el control de la máquina deinducción se asemeja al control de la máquina de continua en la que el pary el flujo están desacoplados de forma natural. No obstante, la estrategia decontrol vectorial depende de los parámetros de la máquina, necesitándose uncontrolador robusto que soporte dicha variación.

Los sistemas borrosos formalizan el procesamiento de información imprecisamediante el concepto de términos lingüísticos. Por lo tanto, no requieren unconocimiento profundo del sistema bajo control. A su vez, mediante la defi-nición de los parámetros que definen las reglas del controlador, gozan de unagran flexibilidad en su programación. Ambas características hacen que estetipo de sistemas sea idóneo para su aplicación al control vectorial de la má-quina de inducción.

Page 56: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

38 Aplicaciones Industriales

En la figura 3.1 se muestran los bloques funcionales del circuito integradoque se explican a continuación. La referencia de velocidad es leída por elASIC desde el microprocesador. La unidad de procesamiento borroso estáconstituida por el propio controlador y por una unidad de preprocesamiento.Esta última se encarga de generar el error a partir de la velocidad leída por eltacómetro del propio ASIC y de la referencia, así como la integral de éste. Es-tas dos variables serán las entradas al controlador borroso, que previamentehabrá sido programado desde el microprocesador con la escritura de los pa-rámetros en la memoria RAM. Cabe destacar que el desborrosificador ha sidodotado con la lógica adicional necesaria para el aprendizaje de los pulsos uni-tarios consecuentes.

A continuación describimos las características principales del controlador bo-rroso:

� El controlador tiene la capacidad de procesar hasta 64 reglas de tresantecedentes y un consecuente.

� La precisión utilizada en la codificación de las entradas, los centroidesde las funciones de pertenencia de entrada y la localización del pulsounitario consecuente es de 10 bits.

� Se permiten cuatro valores diferentes para la pendiente de las funcionesde pertenencia.

� El controlador está dotado con los módulos electrónicos para el aprendi-zaje “in situ” de los pulsos unitarios de salida.

� El área ocupada por los diferentes módulos del controlador se desglosaen la tabla 3.1.

Estas especificaciones fueron introducidas en AFAN, que generó una descrip-ción VHDL que fue utilizada por el resto de diseñadores del ASIC. La síntesisdel controlador borroso fue realizada junto con el resto del ASIC, por lo que losresultados de área que se presentan no son los del controlador que se incluyóen el ASIC, sino los obtenidos de rutarlo como celda independiente. Se estimaque se redujo el tiempo de diseño del ASIC en unos dos meses, cumpliendo elcontrolador diseñado todas las especificaciones que se le impusieron.

En la figura 3.2 se representa el layout del ASIC diseñado para el proyectoASITRON.

3.3 Proyecto ADAPT

Todas las partes del circuito ADAPT constituyen en conjunto un sistema deajuste automático de la impedancia de un sistema de comunicación por on-

Page 57: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

3.3 Proyecto ADAPT 39

Bloques funcionales Número de puertas NANDs AreaInferencia 2357 0:895mm2

Desborrosificador 1974 0:75mm2

Memoria RAM 2789 1:06mm2

Total 7120 2:705mm2

Tabla 3.1: Ocupación del controlador borroso con la tecnología CMOS de 0:7�de ES2.

Protecciones

(1)

3

8

Iq

Iq

Iq, Id, frec.

Vabc

Vabc

Iabc ref

Iabc ref

Iabc

Id

Vabc

Pulsos del EncoderuP

Interf.

P W M

Vq, Vd, frec.

ASITRON

Control

PI

TRANSFORMACION

COORDENADAS

ControlVectorial Borroso

ControlBorroso

Preproc.

Medidas

TACOMETRO

Convertidores

A/D

TRIFASICO

INVERSORMOTOR

INDUCCION

Corrientes del motor

Bus de control

BusDirec./datos M

ICR

OPR

OC

ESA

DO

R

Unidad de Control

Figura 3.1: Diagrama de bloques del circuito integrado ASITRON.

Page 58: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

40 Aplicaciones Industriales

Multiplicador Borroso

Area del "core": 40.7mm

Tecnología: 0.7

Número de puertas: 20327

f reloj= 11059200HzA/D de 10 bitsConvertidores

Memoria Borrosa Multiplicador del Data-Path

2

CMOSµ

Figura 3.2: Layout del circuito integrado que contiene el controlador borroso.

da portadora. ADAPT se enmarca dentro de la acción FUSE (acción especialdel programa ESPRIT) con la co-financiación de la empresa SAINCO [69]. Elcircuito ha sido fabricado con la tecnología CMOS CXE 0:8� de AMS y estáactualmente siendo comprobado en los laboratorios de SAINCO para su pos-terior incorporación a la línea de producción.

Uno de los principales problemas en las comunicaciones por onda portadoraa través de la línea eléctrica es la variación en la impedancia de entrada dela línea. La impedancia que presenta la línea al sistema de comunicacionesdepende de un gran número de factores, como el tipo de línea eléctrica, la si-tuación atmosférica, la hora del día y la topología de la línea. El cambio enalguno de estos factores puede hacer que la impedancia vista por el sistemade comunicaciones tenga una variabilidad de hasta un 400%.

En la actualidad, los sistemas de comunicaciones por onda portadora no rea-lizan ajuste automático de la impedancia entre el sistema de comunicacionesy la línea de transmisión. Esto implica que un cambio en la impedancia de lalínea produce una pérdida importante en la potencia de señal de informaciónque pasa a la línea. Se produce de este modo un incremento en la tasa deerror de bits o, incluso, en muchos casos, se imposibilitan las comunicaciones.

Debido al gran número de factores que afectan a la impedancia de la línea,es imposible conocer el sistema a controlar de forma precisa. Sin embargo, sepueden establecer unas pautas de comportamiento de este sistema traduci-

Page 59: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

3.3 Proyecto ADAPT 41

bles a términos lingüísticos de un controlador borroso. Además, programandode forma correcta el controlador borroso, se puede conseguir que el control deimpedancia se realice de forma eficiente, es decir, que se minimice el númerode iteraciones necesarias para llegar al óptimo. De esta forma se afectará lomenos posible a las comunicaciones existentes en la línea.

Línea

UPA

ADAPT

Módem

Ca

Cu

LcfVAR Ld

Lc

AT

Figura 3.3: Sistema de acoplamiento utilizado por ADAPT.

En la figura 3.3 se muestra el sistema de acoplamiento utilizado por ADAPT.La bobina variable adapta la fase de impedancia y el transformador variable,el módulo. La adaptación se realizará de la siguiente forma:

� ADAPT realiza la medida de la impedancia y de la potencia de señal quepasa a la línea.

� Utilizando estas medidas, el controlador borroso estima las tomas deltransformador y la bobina que mejor realizan la adaptación de impedan-cia.

� ADAPT realiza el cambio de tomas, y calcula los mismos parámetros denuevo.

� Con la nueva medida y la anterior, el controlador borroso realiza unaestimación más fina de las tomas óptimas.

Page 60: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

42 Aplicaciones Industriales

� El proceso se repite hasta llegar a las tomas óptimas.

ADAPT

SPI

Bloque de Control

SELECTORTAP-

A/D Bloque demuestreo DATA-PATH

Controlborroso

TAP<0:7>

CONFIGSS

MOSIMISO

EN_ESCR

MEMTX

AGCVINV

VINI

Figura 3.4: Diagrama de bloques de ADAPT.

En la figura 3.4 se muestran los bloques funcionales del circuito integrado quese explicarán a continuación.

� Canal SPI: Permite controlar y observar el estado del ASIC desde el ex-terior. Por este canal de comunicación serán programados sus registros(modo de funcionamiento, memoria del controlador borroso, etc.). Ade-más, el módem podrá leer a través de él los diversos valores que el ASICcalcula.

� Convertidor A/D y AGC. Este bloque analógico constará de cuatro con-vertidores A/D y de dos amplificadores de ganancia programable, quepermitan ajustar la amplitud de las señales de entrada al rango dinámi-co del convertidor.

� Bloque de muestreo: Este módulo realizará el control de los convertido-res A/D.

Page 61: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

3.3 Proyecto ADAPT 43

� Ajuste borroso. Establece la toma óptima a partir de un mecanismo dedecisión inteligente basado en lógica borrosa.

� TAP SELECTOR. Este bloque transforma la salida del controlador bo-rroso en una señal que actúa sobre las tomas de la bobina y del transfor-mador.

� Control: Es el bloque que va a controlar la secuencia de operaciones deASIC.

� DATA-PATH de cálculo: Este bloque se encargará de realizar los cálculosnecesarios para la funcionalidad del ASIC (cálculo de parámetros de lalínea, filtro digital, control de ganancia y offset). Comparte el divisor conel controlador borroso.

El ASIC tiene dos modos de funcionamiento principales: El modo de trans-misión y el de recepción. A continuación se explicarán con un poco de másdetalle ambos modos.

1. Modo de transmisión. En este modo de funcionamiento ADAPT mide lapotencia de señal transmitida y la impedancia vista por el módem. Y uti-liza dichas medidas para realizar el ajuste de impedancia.La secuenciade funcionamiento en el modo de transmisión se puede ver en la figura3.5. Puede observarse que, mediante una serie de tiempos programables,se puede ajustar el periodo de medida a la zona deseada del mensaje.

Portadora modulada

t1t2

t3 t4t5

te=t1+t2

tm

te y tm son

registros programables.

Señal transmitida

Señal de activación

Muestreo de V e I

Actuación de la

Bobina y transformador

Figura 3.5: Funcionamiento en modo de transmisión.

2. Modo de recepción. En este modo de funcionamiento se realiza la medidade la relación señal a ruido (para poder elaborar una estadística de los

Page 62: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

44 Aplicaciones Industriales

parámetros de transmisión). No se llevará a cabo ninguna acción sobrelas tomas. Para poder efectuar la medida de la relación señal a ruido,es necesario realizar un filtrado de la señal centrado en la frecuencia detrabajo. Para ello se ha utilizado un filtro IIR. La función de transferen-cia del filtro digital se puede ver en la figura 3.6.

21

2

90625.034375.11

1

291.21

1)( --

-

×+×-

-×=

zz

zzH

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5x 104

-100

-50

0

50

100

Frequency (Hertz)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5x 104

-80

-60

-40

-20

0

20

Frequency (Hertz)

Phase(dB)

(dB)Mag

Figura 3.6: Función de transferencia del filtro en recepción.

A continuación detallamos las características principales del controlador bo-rroso implementado en ADAPT:

� El controlador tiene la capacidad de procesar hasta 32 reglas de dos an-tecedentes y un consecuente.

� La precisión utilizada en la codificación de las entradas y los centroidesde las funciones de pertenencia de entrada es de 16 bits.

� La precisión utilizada en la codificación de la localización de los pulsosunitarios consecuentes es de 8 bits.

� La precisión utilizada en la codificación de la pendiente de las funcionesde pertenencia es de 8 bits.

Page 63: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

3.3 Proyecto ADAPT 45

Estas especificaciones fueron introducidas en AFAN, que generó una descrip-ción VHDL que fue utilizada por el resto de diseñadores del ASIC. La síntesisdel controlador borroso fue realizada con el resto del ASIC, por lo que no sepresentan resultados de área. Además, los operadores utilizados por el con-trolador borroso fueron incluidos como parte del DATA–PATH diseñado pararealizar los cálculos de la potencia, impedancia y relación señal/ruido (filtroIIR). Esta es una opción incluida en AFAN que consiste en dejar señales decontrol accesibles para cuando el controlador no esté actuando (como es estecaso). Se estima que se redujo el tiempo de diseño del ASIC en unos dos me-ses, cumpliendo el controlador diseñado todas las especificaciones que se lehabían impuesto.

En la figura 3.7 puede verse el layout final del circuito enviado a fabricación.

Figura 3.7: Layout del circuito integrado que contiene el controlador borroso.

Page 64: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

46 Aplicaciones Industriales

Page 65: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Capítulo 4

Diseño Analógico y Mixto deControladores Borrosos

Índice General

4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2 Flujo de Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3 Arquitectura del Controlador Borroso . . . . . . . . . . . 51

4.4 Función de Pertenencia . . . . . . . . . . . . . . . . . . . . . 53

4.4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.4.2 Arquitectura de la MFG . . . . . . . . . . . . . . . . . . 53

4.4.3 Uso de la función Z . . . . . . . . . . . . . . . . . . . . . 55

4.4.4 Resultados de Simulación . . . . . . . . . . . . . . . . . 56

4.5 Realizaciones electrónicas de operadores Mínimo y Má-ximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.5.2 Principio de Funcionamiento . . . . . . . . . . . . . . . 62

4.5.3 Familia de Circuitos . . . . . . . . . . . . . . . . . . . . 65

4.5.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.6 Realización mixta analógico–digital . . . . . . . . . . . . . 69

4.6.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.6.2 Esquema de funcionamiento . . . . . . . . . . . . . . . . 73

4.7 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Page 66: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

48 Diseño Analógico y Mixto de Controladores Borrosos

En este capítulo se discute el diseño analógico y mixto (digital–analógico) decontroladores borrosos. Además, se estudia la posibilidad de automatizar eldiseño basándonos en una definición modular de la arquitectura del controla-dor. Esta automatización será del mismo tipo que la realizada en AFAN [18],es decir, a partir de un conjunto de especificaciones del usuario tales como elnúmero de entradas, salidas, reglas y consumo de potencia, se selecciona laarquitectura del controlador y el generador de controladores borrosos produceun fichero que contiene la interconexión de bloques básicos de una librería. Pa-ra ello, un conjunto de celdas han sido diseñadas hasta el nivel de máscaras(“layout”) para una tecnología de 0.8 micras. El controlador resultante pue-de ser simulado utilizando SPICE y ser rutado con programas estándares derutado. Para diseñar controladores mixtos se ha fijado como objetivo conse-guir una reducción del consumo de energía del controlador puramente digitalo analógico. Esta reducción se consigue utilizando la información que los cir-cuitos de inferencia (circuitos competidores) proporcionan acerca de las partesdel circuito que están actuando sobre la salida. Con esa información pode-mos “apagar” temporalmente los que no actúan sobre la salida, ahorrando asíenergía. Por último, para circuitos con mayores requerimientos de velocidadse ha diseñado una nueva familia de circuitos operadores máximo y mínimoque presenta gran precisión y transitorios suaves.

Page 67: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.1 Introducción 49

4.1 Introducción

En los últimos años, los controladores borrosos se han utilizado en muchas ydiferentes aplicaciones de control [1]. Por ello, no es extraño encontrar contro-ladores borrosos incluidos dentro de circuitos de aplicación específica (ASIC’s)industriales. La arquitectura de estos controladores se repite con asiduidad,por lo que se plantea la posibilidad de su automatización. La automatizaciónreduce el proceso de diseño, disminuyendo su coste.

Recientemente se han presentado diferentes herramientas para automatizarel diseño electrónico de controladores borrosos utilizando una aproximacióndigital[32], [47], [42], [22] o una aproximación analógica [64], [60], [66]. Estágeneralmente aceptado que los circuitos analógicos son más rápidos que losdigitales y que tienen menor consumo de potencia y área de silicio. Por otrolado, los circuitos digitales pueden tener mayor precisión y son más fácilmen-te escalables.

En este capítulo presentamos una aproximación al diseño automático de con-troladores borrosos analógicos. Esta aproximación se basa en una arquitec-tura modular propuesta en [82], que utiliza un conjunto reducido de bloquesbásicos para construir un controlador borroso.

Se han diseñado unas celdas de librería escalables que pueden ser utilizadasgenerando un fichero de conexiones. Dicho fichero será generado por un com-pilador de silicio a partir de unas especificaciones dadas por el usuario. Lasceldas han sido diseñadas utilizando circuitos de modo corriente. En los últi-mos años se han propuesto diferentes realizaciones de controladores borrososanalógicos utilizando circuitos en modo tensión [44], [88], [82] o circuitos enmodo corriente [82], [89], [90], [50], [61], [102], [12]. Las ventajas de utilizarcircuitos en modo corriente son el mayor rango de valores que pueden tomarlas variables y la mayor velocidad.

Algunas de las celdas utilizadas han sido tomadas de la literatura, aunque lamayor parte han sido diseñadas para esta aplicación. De entre todos los cir-cuitos presentados destaca una nueva familia de circuitos operadores máximoy mínimo capaces de trabajar en modo tensión y en modo corriente.

Otro aspecto muy importante en el diseño de circuitos modernos es reducirel consumo de potencia. Por ello, hemos dejado programable el valor de lasfuentes de corriente de polarización. De esta forma, cuanto mayor sean estasfuentes mayores serán la velocidad y precisión del controlador, pero mayor se-rá también el consumo de potencia. Para reducir el consumo de potencia sinreducir la precisión del controlador se presenta un método novedoso: apagarlas fuentes de polarización de los generadores de funciones de pertenencia de-

Page 68: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

50 Diseño Analógico y Mixto de Controladores Borrosos

pendiendo del resultado del proceso de inferencia. De esta forma se consigueuna reducción considerable de la potencia consumida por controladores conespecificaciones muy restrictivas en velocidad (se comprueba aquí el compro-miso que siempre existe en electrónica entre velocidad y consumo).

Este capítulo está organizado como sigue. La sección 4.2 describe el flujo dediseño del compilador de silicio. Una descripción detallada del controlador seencuentra en la sección 4.3. En la sección 4.4 se presenta el generador defunciones de pertenencia. En la sección 4.5 se describe la familia de circuitosoperadores máximo y mínimo y en la sección 4.6 se presenta la realizaciónmixta del controlador borroso. Por último, en la sección 4.7 se presentan losresultados obtenidos.

4.2 Flujo de Diseño

Ajuste de losparámetros

parametrizadas

Generación de la Netlist de celdas

Estructural

Funcional

Layout

Requerimientos

NOSI Generación

del

Layout

(Externo al compilador)

Librería de celdas

del usuario

Selección de Arquitectura

Selección de Celdasy

Simulación de

las prestaciones

¿Acepta?

Figura 4.1: Flujo de Diseño.

El flujo de diseño se muestra en la figura 4.1. Las especificaciones de undiseño típico se formulan en términos de número de entradas, número de sali-das, número de reglas, máximo valor de la corriente de polarización (consumode potencia) y velocidad deseada.

Al igual que en el caso digital, el generador de controladores se basa en elhecho de que los controladores borrosos analógicos están compuestos en lapráctica de un conjunto de bloques básicos, tales como generadores de funcio-

Page 69: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.3 Arquitectura del Controlador Borroso 51

nes de pertenencia, operadores máximo–mínimo y desborrosificadores.

La salida del generador de controladores borrosos es un fichero en formatoCDL ( Cadence Design Language ) que contiene la interconexión de celdasparametrizadas que pueden ser rutadas con las herramientas de rutado auto-mático que proporciona el paquete informático Cadence DFII.

4.3 Arquitectura del Controlador Borroso

En la figura 4.2 se muestra el diagrama de bloques del controlador borroso.Se basa en una estructura propuesta por el Dr. Ramírez–Angulo en [82]. Estaestructura emplea el algoritmo de Mamdani con pulsos unitarios como conse-cuentes de las reglas borrosas y con el método de desborrosificación basado enel centro de gravedad. Como se puede ver en la figura, esta estructura permi-te un número variable de entradas, salidas y reglas.

IwrIyr

Icr

Is

Iy

Is Iwi=Σι

Ici IwiIyiIs

=*

Is Iwi=Σι

Ici Iwi*=ΣιIy

I

I c1

s

MBF MBF

MIN

MIN

MBFMBF

X X1 n Iw1Iy1

CMr

CM1

PROG

PROG Desborrosificador de una salida

Xi

(entradas)

(salidas)

Figura 4.2: Arquitectura del controlador borroso.

El generador de controladores conecta los bloques básicos de la librería paraformar así el controlador completo. Los siguientes bloques pueden identificar-se en la figura 4.2:

1. El Generador de Funciones de Pertenencia (MFG). Es un circuito quegenera una salida en forma de corriente a partir de una entrada y unconjunto de parámetros de programación. En esta tesis doctoral se hadiseñado un MBF; sin embargo, no es obligatorio su uso ya que existenmuchos otros en la bibliografía (como [77] ó [64]) que son capaces de fun-cionar dentro del esquema propuesto. La función Isalida = f(Ventrada) delMBF puede tener forma triangular, trapezoidal, sigmoidal, etc. Como

Page 70: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

52 Diseño Analógico y Mixto de Controladores Borrosos

veremos más adelante, en nuestra realización hemos elegido las funcio-nes triangulares y trapezoidales, si bien, se pueden utilizar otras concambios de pendiente más suaves cuando se precise incluir la circuiteríade aprendizaje.

2. La máquina de inferencia (IM). La IM realiza el proceso de inferencia(en este caso del tipo de Mamdani, como muestra figura 4.3) utilizandoel operador AND, que puede implementarse con circuitos que realicen lafunción Mínimo.

µRw1

MIN

z

z0x21

0x

w2 ConjuntoBorroso Inferido

Regla 2

Regla 1

Figura 4.3: Proceso de inferencia de tipo Mamdani,(se utilizan pulsos unita-rios como funciones de pertenencia de los consecuentes).

Este circuito toma como entradas la salida de los circuitos MBF perte-necientes a una regla y genera a partir de ellos una salida que coincidecon el máximo o mínimo de dichas entradas. En realidad se utiliza uncircuito máximo o mínimo y, utilizando las leyes de De Morgan y lógicacomplementaria, se consigue generar la función opuesta.

3. El bloque desborrosificador (DF). El bloque DF implementa el métododel centro de gravedad utilizando pulsos unitarios como consecuentes.La ecuación (4.1) resume los cálculos que deben ser realizados.

salida =

Pi=ri=1 wiciPi=ri=1wi

(4.1)

donde r es el número de reglas, y wi y ci son el resultado del proceso deinferencia y el consecuente de la regla i, respectivamente.

Los cálculos en (4.1) se pueden realizar fácilmente en circuitos que tra-bajan en modo “corriente”, donde la suma se lleva a cabo conectando lascorrientes de entrada en un nodo común de baja impedancia.

Page 71: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.4 Función de Pertenencia 53

4.4 Función de Pertenencia

4.4.1 Introducción

En esta sección presentamos un generador de funciones de pertenencia trian-gulares y trapezoidales. Está basado en una versión mejorada de un transcon-ductor lineal ajustable propuesto en [48] y en la aproximación a la generaciónde funciones lineales a trozos propuesta en [93]. Este transconductor presen-ta excelentes propiedades en términos de linealidad y ajustabilidad. Más aún,con la ayuda de operadores máximo–mínimo es posible generar cualquier ti-po de función lineal a trozos. Los generadores de funciones de pertenenciaobtenidos por este método son programables continuamente en todos sus pa-rámetros.

4.4.2 Arquitectura de la MFG

v1 v2-

I

( - )V1 V2I out = 2* I slope K* n

V1 V2

1I 2I

biasV

outI -

cV

Vdd

slopeI

Vss

40u=Ibias

2u

Vdd

OTA

Circuitode

Réplica

Figura 4.4: Transconductor Básico.

La figura 4.4 muestra el circuito transconductor utilizado para construir lafunción de pertenencia. Si lo comparamos con el transconductor propuesto en

Page 72: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

54 Diseño Analógico y Mixto de Controladores Borrosos

[48], este circuito presenta dos diferencias que mejoran la respuesta obtenidaen un diseño previo [20]:

� El consumo de potencia está limitado por medio de una fuente de co-rriente Ibias. De esta forma el consumo no crece con el modo común delas señales de entrada.

� La tensión de polarización Vc es generada por medio de un circuito de“réplica”, que hace que la corriente de salida sea independiente de lastensiones umbrales de los transistores MOS. Esto es muy importanteya que los transistores que definen la ganancia en transconductanciatienen efecto de cuerpo, por lo que la ganancia también depende de esastensiones umbrales. En la figura 4.4, la corriente de salida Iout vienedada por :

Iout =q2Islopekn(V1 � V2) (4.2)

Puede verse que en esta ecuación la transconductancia sólo depende delparámetro de la tecnología kn. Incluso esta dependencia puede ser cance-lada utilizando dos transconductores y un circuito multiplicador/divisor,como fue propuesto en [86], a costa de una mayor complejidad.

pbiasI

ampIv1 v2-

v1 v2-

v1 v2-

v1 v2-

I

V1

V2

biasI slopeI

OTA

Vss

Vdd

100n

Vdd

VssDiodo Clase AB Espejo de corriente clase AB

5u

Función Z

Vdd

I

VbiasMFGI

Figura 4.5: Circuito Z.

Para construir una función Z es necesario saturar la respuesta del transcon-ductor. Esta operación se lleva a cabo por medio de un rectificador de corrientey espejos de corriente como se muestra en la figura 4.5. Hay que hacer notarque se han utilizado espejos clase AB para conseguir alta velocidad de ope-ración. Una entrada del controlador borroso se conecta directamente a una

Page 73: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.4 Función de Pertenencia 55

entrada del transconductor mientras que la otra define la posición de la fun-ción Z en el eje x. La altura de la función Z puede ser programada por medio dela fuente de corriente Iamp, mientras que la pendiente puede ser programadapor la fuente de corriente Islope.

4.4.3 Uso de la función Z

I

V

I

V

I

V

I

V

MIN

MAX

a) b)

Figura 4.6: Forma de las funciones de transferencia.

La función mostrada en la figura 4.6a (función Z) puede ser generada con elcircuito de la figura 4.5. Se puede ver que si la posición y la pendiente delas funciones Z pueden ser elegidas, cualquier tipo de funciones triangula-res/trapezoidales pueden ser construidas con la ayuda de operadores Míni-mo/Máximo (ver figuras 4.6b y 4.7 para la implementación electrónica).

Además, en nuestra implementación los operadores mínimo son también ne-cesarios para la realización del proceso de inferencia, por lo que este tipo deMFG sólo duplica el número de entradas del circuito Mínimo que realiza elproceso de inferencia. El precio a pagar por este incremento en cuanto a lacomplejidad del circuito de mínimo no es alto ya que cada entrada adicionalen el circuito de mínimo sólo añade dos transistores.

Como se dijo en el apartado anterior, el operador mínimo se puede construirpor medio de un circuito que realice la función máximo y utilizando lógicacomplementaria y las leyes de De Morgan:

IMFG = MIN(IMFG1; IMFG2)) (4.3)IMFG = MAX(IMFG1; IMFG2) (4.4)

donde I es el complemento de I, i.e., I = Iamp � I.

Page 74: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

56 Diseño Analógico y Mixto de Controladores Borrosos

I MFGVpos1

Vpos2

I MFG

I slope1

Vpos2Vpos1INV

I amp

I

I slope2ampI

ampI I slope1

I MFG1

I slope2ampI

I slope2

MFG2

A-B MIRROR

OTA

MIN

Circuito

DIODO

Detalle del Circuito

I bias

I bias

I bias

Figura 4.7: Generador de funciones de pertenencia.

El circuito de Máximo propuesto en[57] y mejorado después en [62] para apli-caciones electrónicas de lógica borrosa, se muestra en la figura4.9. La únicamodificación incluida es una salida cascodo para mejorar la respuesta del es-pejo de corriente de salida.

Cambiando el circuito operador mínimo de la figura 4.7 por un circuito ope-rador máximo, puede producirse la forma complementaria. Más aún, es fá-cil ver que se puede construir cualquier tipo de función lineal a trozos (fun-ciones PWL) combinando varias funciones Z con circuitos operadores máxi-mo/mínimo (figura 4.8).

4.4.4 Resultados de Simulación

El generador de funciones de pertenencia mostrado en la figura 4.7 ha sidodiseñado utilizando una tecnología CMOS de 5 Voltios y 0.8 �m. En la figura4.10 puede verse la fotografía del chip diseñado para probar sus prestaciones.El área de la MFG completa es de 0.07mm2 y el consumo de potencia estáticoes de 80 �A. Las figuras 4.11 a 4.15 muestran las simulaciones post-layout.

En las figuras 4.11 y 4.12 se muestra la variabilidad de la posición y el anchode la MFG. Hay que indicar que la posición de las funciones Z se controla por

Page 75: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.4 Función de Pertenencia 57

V

VMINIMOI

I

Figura 4.8: Ejemplo de generación de funciones PWL.

medio de las entradas Vpos1 y Vpos2 del transconductor. La figura 4.13 muestrala variabilidad de la ganancia del transconductor. Esta figura ha sido obteni-da cambiando la fuente de corriente Islope.

La respuesta transitoria del circuito MFG se muestra en la figura 4.14a. Eneste caso, la entrada del circuito MFG es un rampa de tensión y el retrasomáximo es menor que 100ns (alrededor de 70 ns). La respuesta del mismocircuito obtenida experimentalmente puede verse en la figura 4.14b. Final-mente, la figura 4.15 muestra un ejemplo de generación de una función lineala trozos utilizando varios transconductores y operadores máximo/mínimo.

I IIMFGmax

I

V

Vdd

bias

MFG1 MFG2 MFGK

I

IMFGs

amp

N1 NkN2

Figura 4.9: Circuito que realiza la función Máximo.

Page 76: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

58 Diseño Analógico y Mixto de Controladores Borrosos

Figura 4.10: Fotografía de la MFG.

SymbolWave

D0:A0:i(vkk2)

D0:A0:i(vkk1)

D0:A0:i(vkk)

D0:A0:i(vkk)

0

4.5

Tunability of the possition of the MBC

Voltage X (lin) (VOLTS)3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 4.1 4.2 4.3 4.4

500n

1u

1.5u

2u

2.5u

3u

3.5u

4u

4.5u

5u

Cur

rent

s (l

in)

Figura 4.11: Variabilidad de la posición de la MFG.

Page 77: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.5 Realizaciones electrónicas de operadores Mínimo y Máximo 59

SymbolWaveD0:A0:i(vkk)

Cur

rent

s (li

n)

Voltage X (lin) (VOLTS)53 3.2 3.4 3.6 3.8 4 4.2 4.4 4.6 4.8

0

500n

1u

1.5u

2u

2.5u

3u

3.5u

4u

4.5u

5u

Tunability of the width of the MBC

Figura 4.12: Variabilidad del ancho de la MFG.

4.5 Realizaciones electrónicas de operadores Mí-nimo y Máximo

4.5.1 Introducción

Los operadores máximo y mínimo son fundamentales para aplicaciones de re-des neuronales y lógica borrosa. Realizaciones electrónicas (analógicas) decircuitos máximo y mínimo han sido producidas partiendo de circuitos com-petidores (WTA: del inglés “Winner Take All”,que puede ser traducido por “elque gana se lo lleva todo”) que, debido a su naturaleza, están caracterizadospor nodos que muestran grandes variaciones de tensión.

En las secciones anteriores se ha presentado el circuito de Lazzaro como la so-lución para realizar la operación mínimo/máximo. Sin embargo, las propieda-des de este circuito no le hacen ser la mejor opción para cualquier aplicación.Por ello, en esta sección presentamos una aportación original consistente enuna nueva familia de circuitos que operan en modo corriente y modo tensióny que son capaces de realizar las operaciones mínimo y máximo.

Page 78: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

60 Diseño Analógico y Mixto de Controladores Borrosos

SymbolWaveD0:A0:i(vkk)

3u

Voltage X (lin) (VOLTS)3 3.2 3.4 3.6 3.8 4

0

500n

1u

1.5u

2u

2.5u

3.5u

4u

4.5u

5uTunability of the slope of the MBC

Cur

rent

s (l

in)

Figura 4.13: Variabilidad de la pendiente de la MFG.

Figura 4.14: Respuesta transitoria del circuito MFG.

Page 79: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.5 Realizaciones electrónicas de operadores Mínimo y Máximo 61

Figura 4.15: Ejemplo de la generación de funciones lineales a trozos.

I1

V1

I2

V2

Ibias

Iout=max{I1,..,In}

Figura 4.16: Circuito de Lazzaro.

El circuito de Lazzaro mostrado en la figura 4.16 es un circuito competidorya que su funcionamiento se basa en que cuando diferentes corrientes (I1,I2,. . . In) entran en él, las tensiones V1, V2, . . .Vn toman valores muy parecidosy bajos excepto una, que es la que ha ganado y toma un valor muy superiora las demás. Este comportamiento le hace ser muy interesante para circuitosneuronales en los que la información que interesa es saber quién ha gana-do. Sin embargo, en los circuitos basados en lógica borrosa lo que interesaes saber el valor del que ha ganado, por lo que diferentes variantes han sidopropuestas para obtener el valor [62], [12]. La mayoría de ellas se basan encopiar la tensión VGS del transistor que ha ganado en un transistor de salidaque hace de espejo de corriente. El problema en cuanto a resolución es evi-dente, ya que la copia será tan buena como tan parecidas sean la tensión VDSdel ganador y del transistor de salida. Una opción que da buenas prestacio-nes es colocar una etapa de salida cascodo con polarización constante, aunquela mejor solución sería colocar una etapa activa que controlara la tensión del

Page 80: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

62 Diseño Analógico y Mixto de Controladores Borrosos

cascodo de forma que la VDS del ganador y del transistor de salida sean idén-ticas.

Sin embargo, éste no es el único problema que presenta el circuito de Lazza-ro. Al quedarse cargado a una tensión más alta que los demás el transistorque gana, cuando una corriente de entrada supera a la que en ese momen-to estaba ganando se produce un transitorio lento que separa la corriente desalida del valor que debería tener. Esto es debido a que en ese transitoriose debe descargar la puerta del transistor que había ganado y cargarse la delnuevo ganador. Este proceso es lento y provoca un valor VGS diferente del real.

Podemos concluir que el circuito de Lazzaro es, estrictamente hablando, uncircuito de modo mixto (digital–analógico) con entradas analógicas (I1, I2,. . . In), salidas digitales (V1, V2, . . .Vn) y una salida analógica opcional con elvalor del máximo de la corrientes en las entradas (Iout=MAX(Ii)). Estas pro-piedades le hacen muy interesante para implementaciones neuronales, peropara aplicaciones de lógica borrosa puramente analógicas en las que la varia-ble de interés es Iout, no es tan aconsejable.

Por ello, centramos nuestra investigación en la búsqueda de un circuito querealice la operación máximo o mínimo sin que la tensión de ningún nodo delcircuito se dispare provocando transitorios indeseables. De esta forma los ope-radores obtenidos cumplirán con los requisitos de gran velocidad.

4.5.2 Principio de Funcionamiento

V1 V2 Vn

Vout=max{V1,V2,..,Vn}

I/2

I

Figura 4.17: Circuito operador Máximo Bipolar.

En la figura 4.17 ([115]) se muestra un circuito operador máximo puramenteanalógico de modo tensión (que se puede transformar fácilmente en un opera-dor mínimo) en el que ningún nodo muestra grandes variaciones de tensión,por lo que es muy rápido. Además, la característica exponencial del transistorbipolar hace que sea muy preciso. Sin embargo, es poco útil en tecnologías

Page 81: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.5 Realizaciones electrónicas de operadores Mínimo y Máximo 63

puramente CMOS.

Inspirados en el circuito de la figura 4.17, hemos propuesto la realizaciónCMOS del operador máximo mostrado en la figura 4.18. En él M1, . . . , Mn yMout son transistores pareados. En este circuito la tensión de salida Vout siguea la tensión de entrada V1, . . . , Vn más alta. Además, el transistor al que seaplica la tensión más alta tomará la mayor parte de la corriente de polari-zación I=2. A esta realización se ha añadido el transistor Mrel para darle ala salida un etapa de ganancia. En la realización bipolar no es necesaria yaque la ley que rige a los transistores bipolares es exponencial, por lo que soncapaces de “resolver” el valor de la tensión de salida. Sin embargo, los tran-sistores MOS no tienen ganancia suficiente, por lo que en ausencia de Mrel noestá garantizado que la salida siga el máximo de la tensión de entrada. Estoes así porque Mrel y Mout forman una realimentación que compensa cualquiervariación externa que desvíe la salida del valor Vout=MAX(V1; : : : ; Vn).

El problema básico de este circuito es la resolución cuando varias entradasestán muy próximas. En este caso la salida no será exacta ya que ningúntransistor de entrada estará tomando toda la corriente I=2, sino que varios laestarán compartiendo. Esto hará que la tensión de salida sea función de todaslas de entrada y no de la máxima de ellas.

Para resolverlo, en [72] se propone el uso del circuito de Lazzaro para forzarla corriente del transistor de salida Mout al valor de la máxima corriente quecircula por los transistores de entrada. En este caso el problema de precisiónmejora, pero el problema de los transitorios no queda mitigado, ya que el usodel circuito de Lazzaro implica tensiones que ganan o pierden. Además, losrequerimientos de tensión de alimentación de este circuito son mayores debi-do a que entre alimentación y tierra se encuentran dos circuitos, el de Lazzaroy la versión CMOS del circuito de Yamakawa.

Por ello, proponemos el circuito de la figura 4.19. Esta versión presenta mayorprecisión al haberse añadido una etapa de ganancia por cada entrada. En estecaso cada etapa de ganancia compite para que cada transistor de realimenta-ción Mrel se quede con la intensidad Irel. Al ser la realimentación positiva, sólola etapa que tenga la máxima tensión a la entrada ganará toda la corriente,por lo que la salida cumple la ley Vout=MAX(V1; : : : ; Vn).

Además, en este circuito no existen nodos cuya tensión se dispare, por lo que,como veremos en las simulaciones, su respuesta transitoria es muy buena,siendo su precisión más alta que la del circuito de partida. Como normasbásicas de diseño se puede decir que habrá que dimensionar la W=L de lostransistores lo suficientemente grande como para que una pequeña diferenciaentre las tensiones de entrada produzca que sólo uno de los transistores de

Page 82: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

64 Diseño Analógico y Mixto de Controladores Borrosos

V1

V2

Vn Vout

I/2

IIbias

M2

M1

Mn Mout

Mrel

Vout=max{V1,V2,..,Vn}

Figura 4.18: Versión CMOS del operador Máximo Bipolar.

Page 83: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.5 Realizaciones electrónicas de operadores Mínimo y Máximo 65

entrada conduzca I=2. Además, habrá que hacer I lo suficientemente pequeñapara reforzar este efecto. Estas dos recomendaciones son mucho más impor-tantes en el circuito de la figura 4.18 que en el de la figura4.19.

Es muy importante hacer notar que tanto el circuito propuesto como la familiaque se expone a continuación, incrementan su complejidad linealmente con elnúmero de entradas. Esto les hace muy atractivos frente a los operadores bi-narios cuya complejidad crece cuadráticamente con el número de entradas.

V2

I

V1

I Ibias

Etapa completa para una entrada

Vout=MAX{Vi,..,Vn}

Figura 4.19: Versión mejorada del operador máximo CMOS.

4.5.3 Familia de Circuitos

Basándonos en este circuito se puede diseñar una familia completa de circui-tos operadores máximo y mínimo clasificados en:

� Circuitos modo tensión.

� Circuitos modo corriente.

Circuitos modo tensión

La primera modificación posible al circuito inicial se puede realizar cambian-do el transistor tipo n Mrel por un transistor tipo p como muestra la figura4.20. En esta realización se consigue disminuir la tensión de alimentaciónnecesaria para que este circuito funcione ya que, en cualquier camino entrealimentación y tierra, no se encuentra más de una tensión VGS. Puede verseque es necesario colocar una batería de unos 0.2 voltios para que el transistorMout no pueda salir nunca de saturación, lo que llevaría a un mal funciona-miento del circuito. Esto se consigue con las fuentes de corriente Ibat y las

Page 84: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

66 Diseño Analógico y Mixto de Controladores Borrosos

resistencias Rbat.

I/2

Ibat

Ibat

Ibias

V1

V2

Vn

M2

M1

Mn MoutVout=max{V1,V2,..,Vn}

Mrel

I

Figura 4.20: Versión de baja tensión del operador máximo.

En el caso de la versión mejorada, también podemos substituir cada transis-tor tipo n Mrel por uno tipo p como muestra la figura 4.21. La diferencia esque ahora obtenemos un circuito operador mínimo que tiene la propiedad depoder operar a baja tensión y de conservar la precisión del circuito de partida.

Ibias

I

Ibat

Ibat

I

Ibat

Ibat

V2 Vout=MAX{Vi,..,Vn}V1

Figura 4.21: Versión mejorada de baja tensión del operador mínimo CMOS.

Circuitos modo corriente

Los cuatro circuitos anteriores pueden ser excitados por corrientes a travésde transistores conectados como diodos. Los transistores diodo de entrada

Page 85: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.5 Realizaciones electrónicas de operadores Mínimo y Máximo 67

tendrán que estar todos pareados y deberán tener una relación de aspecto di-ferente y menor a la de los transistores de entrada de la etapa de tensión. Deesta forma, las fuentes de corriente I tendrán espacio suficiente para operarya que, para una corriente dada, la VGS del transistor conectado como diodoserá mayor que la inducida en el transistor de entrada de tensión por la mis-ma corriente.

En la figura 4.22 puede verse la versión de modo corriente del circuito funda-mental que realiza la operación máximo de corrientes.

I

I1

In

Vn

I/2

Mn Mout

Mrel

V1M1

Ibias

Iout=max{I1,..,In}

Figura 4.22: Circuito operador máximo en modo corriente.

4.5.4 Resultados

En las siguientes figuras pueden verse los resultados obtenidos que demues-tran que las predicciones teóricas son ciertas. Las versiones modo tensión sonmás rápidas y precisas, lo cual es lógico ya que los espejos incluyen un nuevopolo y un error de copia. Estos resultados no simulan el offset producido por eldesapareamiento de los transistores, aunque si se cuida el layout no debe sermuy grande este efecto. En todas las pruebas la carga a la salida del circuitoha sido capacitiva y de valor CL = 1pF .

En la figura 4.23 se puede observar la respuesta transitoria del circuito deLazzaro. En el detalle de la figura se muestra el error que se produce cuandodos señales de entrada se cruzan. La salida no sigue al máximo de las dos

Page 86: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

68 Diseño Analógico y Mixto de Controladores Borrosos

Figura 4.23: Respuesta transitoria del circuito de Lazzaro.

Page 87: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.6 Realización mixta analógico–digital 69

entradas durante un cierto tiempo. Esto es debido, como se explicó anterior-mente, a que en el circuito de Lazzaro existen nodos cuya tensión sube o bajamucho en función de si la entrada asociada a ese nodo es la mayor de todaso no. Cuando se produce un cambio en las entradas que hace que un nodose tenga que descargar y otro se tenga que cargar, a la salida no se ve untransitorio suave, sino que la salida sigue a una entrada hasta que se cargael nodo correspondiente a la entrada más alta y, entonces, la salida cambiabruscamente al valor de la entrada más alta.

En la figura 4.24 se muestra el transitorio del circuito fundamental. La sa-lida del circuito sigue a la mayor de las tres entradas. Es fácil observar queexiste un error cuando las entradas son parecidas (unos 50mV en el peor delos casos), pero los transitorios son más rápidos y suaves que en el circuito deLazzaro.

En la figura 4.25 podemos ver la mejoría obtenida al utilizar el circuito me-jorado de la figura 4.19. Al igual que en el caso anterior, la salida sigue a lamayor de las tres entradas con transitorios más suaves que en el circuito deLazzaro y con un error menor cuando las entradas son parecidas (unos 5 mVen el peor de los casos). La velocidad de respuesta del circuito es mucho ma-yor que la del circuito de Lazzaro, ya que el tiempo necesario para estabilizarla salida cuando se cruzan dos entradas es menor de 5ns, mientras que en elcircuito de Lazzaro es cercano a 100ns. Es evidente que este circuito ofrecemejores prestaciones, por lo que es recomendable su uso en aplicaciones dondela precisión sea importante. Al ser más complejo en número de transistoresque el circuito fundamental, no se aconseja su uso en aplicaciones donde sólose necesita una aproximación al máximo.

En las figuras 4.26 y 4.27 se representan las simulaciones de la versión enmodo corriente de los circuitos anteriores. Por último, en la figura 4.28 sepresenta la simulación del circuito mejorado de baja tensión. Hay que hacernotar que este circuito puede funcionar con una tensión de alimentación de1.5 voltios, lo cual le hace muy atractivo para aplicaciones de baja tensión.

4.6 Realización mixta analógico–digital

4.6.1 Introducción

A la hora de reducir el consumo de circuitos analógicos, una de las técnicasque se plantea es la de la reducción de la tensión de alimentación. Esta idease expondrá en detalle en el siguiente capítulo. Sin embargo, existen otrasopciones, entre las que destaca la realización de sistemas mixtos (analógico–

Page 88: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

70 Diseño Analógico y Mixto de Controladores Borrosos

Figura 4.24: Respuesta transitoria del circuito fundamental.

Page 89: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.6 Realización mixta analógico–digital 71

Figura 4.25: Respuesta transitoria del operador máximo mejorado.

Page 90: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

72 Diseño Analógico y Mixto de Controladores Borrosos

Figura 4.26: Respuesta transitoria del circuito fundamental de baja tensión ymodo corriente.

Figura 4.27: Respuesta transitoria del operador máximo mejorado en modocorriente.

Page 91: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.6 Realización mixta analógico–digital 73

Figura 4.28: Respuesta transitoria del circuito mejorado de baja tensión (Ope-rador mínimo).

digitales) que combinen las virtudes de ambas formas de procesar la señal.

Existen diferentes realizaciones de controladores borrosos mixtos en la lite-ratura ([12], [49], [100]), pero ninguno de ellos se centra en la reducción delconsumo de los controladores borrosos puros (digitales o analógicos) sino en laconsecución de determinadas especificaciones que no se pueden conseguir pormétodos tradicionales. Por ello, en esta sección vamos a presentar técnicasnovedosas que permiten reducir el consumo de los controladores borrosos.

4.6.2 Esquema de funcionamiento

La técnica que vamos a presentar se basa en que en muchos controladoresborrosos es habitual el uso de circuitos competidores para realizar el procesode inferencia. En este caso, el resultado del proceso de inferencia es el valorresultante proporcionado por un generador de funciones de pertenencia.

Como se dijo en la sección anterior, el circuito de Lazzaro (figura 4.16) esun circuito de modo mixto (digital–analógico) con entradas analógicas (I1, I2,. . . In), salidas digitales (V1, V2, . . .Vn) y una salida analógica opcional (Iout =MAX(Ii)). En este caso no nos vamos a fijar en el resultado de la inferencia(Iout) sino en las otras salidas digitales (V1, V2, . . .Vn), que nos muestran quiénha ganado y, también, quién ha perdido.

Page 92: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

74 Diseño Analógico y Mixto de Controladores Borrosos

Sabiendo quién ha perdido podemos tomar la decisión de apagar todas laspartes del controlador que no están añadiendo información a la salida. Ade-más, será necesario diseñar un circuito digital que secuencie la operación delcontrolador de forma que, cada cierto tiempo, lo encienda permitiendo a todoslos subcircuitos volver a competir.

En el caso de nuestro controlador borroso, necesitaremos cortar las fuentesde alimentación de los generadores de funciones de pertenencia para que seapaguen todos los que pierden en el proceso de inferencia. Es evidente quecortarlos totalmente ralentiza la operación del controlador, por lo que, depen-diendo de los requerimientos de velocidad, se apagarán las fuentes parcial ototalmente. En la figura 4.29 puede verse un esquema de lo explicado ante-riormente, y en la figura 4.30 la realización electrónica del circuito MBF mixtorealizado a partir del propuesto en la sección 4.4.

El circuito de Lazzaro también se ve afectado, ya que ahora no es necesa-rio copiar el resultado a la salida, sino que se puede utilizar un multiplexoranalógico para decodificar a la salida el valor que ha resultado ganador en elproceso de inferencia. Esta técnica reduce el ruido y el offset pues sólo un ge-nerador de funciones de pertenencia por regla puede añadir errores. Además,no existen errores de copia a la salida del circuito competidor, ya que es unmultiplexor analógico el que decodifica la salida. En la figura 4.31 se puedever el circuito competidor mixto.

En nuestra aproximación, el desborrosificador no se ve afectado y opera con-tinuamente. Esto se puede mejorar si se mantienen los valores que entran enel desborrosificador mientras el circuito competidor calcula el nuevo ganador.En cualquier caso, habrá un transitorio cada vez que los generadores de fun-ciones de pertenencia compitan.

4.7 Resultados

Los resultados de los generadores de funciones de pertenencia y circuitos ope-radores mínimo–máximo han sido presentados en secciones anteriores. Porello, en esta sección se van a presentar los resultados obtenidos al simular elcircuito desborrosificador así como el controlador global generado por el com-pilador de silicio.

Las figuras 4.32a–4.32b muestran ejemplos de las celdas utilizadas por el com-pilador para realizar el controlador borroso. La salida del compilador es unfichero CDL (Cadence Design Language) que contiene las conexiones de losbloques básicos que forman el controlador. Utilizando las herramientas que

Page 93: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.7 Resultados 75

WTA

LATCH

Vi1

Vi2

Vi(n-1)

Vin

Iout

MBF

MBF

MBF

MBF

ON/OFF

ON/OFF

ON/OFF

ON/OFF

Figura 4.29: Esquema del controlador operando en modo mixto.

Page 94: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

76 Diseño Analógico y Mixto de Controladores Borrosos

I MFGVpos1

Vpos2

I MFG

I slope1

Vpos2Vpos1INV

I amp

I

I slope2ampI

ampI I slope1

I MFG1

I slope2ampI

I slope2

I bias

I bias

MFG2

A-B MIRROR

OTA

MIN

Circuito

DIODO

Detalle del Circuito

I bias

Figura 4.30: Generador de funciones de pertenencia mixto.

Ibias

RESET

q d

ENABLE

V1

I1

COMPITE

Ibias

RESET

q d

ENABLE

Vn

COMPITE

InIout=max{I1,..,In}

Figura 4.31: Circuito operador máximo en modo mixto.

Page 95: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.7 Resultados 77

proporciona Cadence DFWII para rutado de celdas estándar, el usuario podríagenerar un layout del controlador.

El fichero que genera el compilador contiene la estructura interna del con-trolador, es decir, proporciona un fichero con las interconexiones y tamañosde todos los transistores internos de cada celda. En principio esta estructurainterna no es utilizada ya que, al importar el fichero, Cadence reconoce lasceldas y no sigue descendiendo en la jerarquía; sin embargo, hemos permiti-do esta libertad al compilador con el fin de poder ampliarlo en el futuro pararealizar operaciones como variar el tamaño de ciertos transistores mejorandoasí el consumo o la velocidad.

En la figura 4.33 se muestran el circuito base utilizado para la desborrosifica-ción, el cual fue propuesto en [16], y la ecuación que rige su funcionamiento.No se ha intentado realizar un circuito alternativo en esta tesis porque sepensó que sus propiedades eran suficientes para la aplicación. Las figuras4.34 y 4.35 muestran el comportamiento en DC y el transitorio del circuitomultiplicador/divisor.

En la figura 4.36 se muestran los resultados de la simulación de un controla-dor borroso de dos entradas, 9 reglas y 1 salida. Además, en dicha simulaciónse muestra el resultado esperado para así poder comprobar las buenas pro-piedades del controlador.

Page 96: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

78 Diseño Analógico y Mixto de Controladores Borrosos

b)

a)

Figura 4.32: a) Fotografía del OTA. b) Fotografía del multiplicador/divisor.

Page 97: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.7 Resultados 79

bI

xIyI

xI

xI yI= *

2*IboutI

Vdd

Figura 4.33: Circuito Multiplicador/Divisor en modo “corriente”.

Figura 4.34: Característica DC del circuito Multiplicador/Divisor.

Page 98: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

80 Diseño Analógico y Mixto de Controladores Borrosos

Figura 4.35: Respuesta transitoria del circuito Multiplicador/Divisor.

Page 99: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

4.7 Resultados 81

0 10 20 30 40 50-0.5

0

0.5

1

1.5

2

2.5

60

(a)

(b)

Figura 4.36: Controlador de dos entradas y nueve reglas: (a) Resultados de lasimulación con MATLAB (b) Resultados de simulación con Spectre.

Page 100: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

82 Diseño Analógico y Mixto de Controladores Borrosos

Page 101: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Capítulo 5

Aportaciones al diseño decircuitos de baja tensión

Índice General

5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.2 Baterías estáticas y dinámicas de baja tensión de ali-mentación y gran rango de señal . . . . . . . . . . . . . . . 87

5.3 Aplicación de las baterías flotantes al diseño de bajatensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5.3.1 Amplificador operacional CMOS de baja tensión de ali-mentación con etapa de salida clase AB . . . . . . . . . 90

5.3.2 Amplificadores inversores con rango completo de ten-siones en la entrada y en la salida utilizando bateríasflotantes estáticas . . . . . . . . . . . . . . . . . . . . . . 118

5.3.3 Amplificadores inversores con rango completo de ten-siones en la entrada y en la salida utilizando bateríasflotantes dinámicas . . . . . . . . . . . . . . . . . . . . . 129

5.3.4 Transconductores de baja tensión de alimentación . . . 134

En este capítulo se van a presentar técnicas novedosas para diseñar circuitosque operan en modo continuo con una fuente de alimentación simple de valorpróximo a la tensión umbral de los transistores MOS. Estas técnicas se basanen la utilización de fuentes de tensión flotantes de valor constante o ajustabledinámicamente y son capaces de permitir el diseño de amplificadores operacio-nales con transconductancia (Gm) constante sin la utilización de pares diferen-ciales complementarios en la entrada o de circuitería compleja para mantener

Page 102: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

84 Aportaciones al diseño de circuitos de baja tensión

constante la transconductancia. Se presentan varios ejemplos entre los que seincluyen amplificadores operacionales CMOS, transconductores lineales parala realización de filtros GM-C y circuitos para controlar la tensión de modocomún de amplificadores diferenciales. Todos los ejemplos han sido montadosexperimentalmente para verificar el funcionamiento de los esquemas propues-tos. En ningún caso se ha pretendido caracterizar completamente los circuitosfabricados sino que se ha intentado probar que es posible utilizar las técnicaspropuestas para realizar circuitos de baja tensión.

Page 103: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.1 Introducción 85

5.1 Introducción

En los últimos años se ha podido observar en la industria una tendencia aaumentar la escala de integración de los circuitos integrados basada en ladisminución de las dimensiones mínimas de los transistores. Los problemastécnicos derivados de esta disminución no sólo están relacionados con el pro-ceso de fabricación y la maquinaria asociada, sino que también afectan a loscircuitos fabricados en las nuevas tecnologías.

Dos de los problemas más importantes que aparecen están relacionados conla tensión de alimentación de los circuitos. Por un lado, la disminución delas dimensiones en los transistores provoca que los gradientes de tensión quese producen sean mayores, por lo que se pueden llegar a provocar efectos in-deseados como la rotura de los dispositivos. Por otro lado, al aumentar laescala de integración, crece la disipación de calor por milímetro cuadrado. Enlos circuitos digitales la disipación de calor es proporcional a V2

dd, siendo Vddla tensión de alimentación. Por tanto, vemos que ambos efectos dependen dela tensión de alimentación, y que se pueden mitigar si se reduce dicha tensión.

La reducción de la tensión de alimentación ha llevado a la búsqueda de nue-vas técnicas de diseño que nos permitan realizar circuitos que sean capaces defuncionar con baja tensión de alimentación. Los esfuerzos no sólo han ido en-caminados al desarrollo de celdas digitales, sino que también son necesariasceldas analógicas, como convertidores AD y DA, amplificadores operacionales,filtros, etc. De esta forma se podrán diseñar circuitos mixtos capaces de operarcon una única fuente de tensión de pequeño valor, que es la forma preferidapor la industria a la hora de diseñar equipos móviles con baterías portátiles.

En esta tesis doctoral nos hemos planteado la necesidad de realizar circui-tos analógicos capaces de operar con una tensión de alimentación cercana ala tensión umbral de un transistor. Uno de los motivos por el que buscamosacercarnos a este límite es porque algunos fabricantes ya han comprobado laposibilidad que sus tecnologías digitales tienen de poder operar a esa tensión,por lo que en un futuro próximo podrán existir circuitos digitales industrialescon esas propiedades.

Recientemente han aparecido publicaciones en las que se muestran circuitosanalógicos capaces de operar a esas tensiones de alimentación [119], [10], [11]y [75]. Todas ellas son realizaciones de amplificadores operacionales capacesde operar en aplicaciones conocidas como “amplificadores conmutados” ya queel rango de tensiones de entrada con el que son capaces de operar es muy redu-cido. Además, tienen otras limitaciones, como su ancho de banda, complejidady consumo. Sin embargo, no existen realizaciones con técnicas convencionalesde amplificadores operacionales alimentados a esa tensión y con rangos de en-

Page 104: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

86 Aportaciones al diseño de circuitos de baja tensión

trada y salida amplios. Existen, eso sí, técnicas no convencionales con las quese pueden conseguir estos objetivos. En [14] se presenta un esquema que escapaz de operar con rangos de tensión grandes a la entrada y la salida y conuna tensión de alimentación cercana a la tensión de umbral de un transistor.Sin embargo, esta realización utiliza el substrato de un transistor MOS comouna entrada activa de amplificador operacional, lo que limita severamente suancho de banda. Además, esta técnica no convencional es muy difícil de apli-car en la realidad ya que los fabricantes no la consideran una técnica seguraal tener que compartir todo el circuito (parte digital más analógica) el mismosubstrato.

Otras técnicas no convencionales que se están comenzando a utilizar cada vezmás son las de transistores con puerta flotante [81]. Estas técnicas sí permi-ten el funcionamiento de circuitos con muy baja alimentación, si bien todavíano han calado en la industria.

Por ello, en esta tesis doctoral hemos desarrollado circuitos capaces de operarcon muy baja tensión de alimentación utilizando técnicas tradicionales CMOS(transistores trabajando en la zona de saturación). La única variante intro-ducida es el uso de POLY-II y POLY-III (conocido este último como “polisilicioresistivo”). No creemos que esto limite nuestro diseño, ya que sólo hace faltarevisar las tecnologías que los fabricantes europeos ofrecen a sus clientes paraver que la mayoría (AMS, Alcatel–Mietec, ATMEL–ES2) ofrece la posibilidadde utilizar estas máscaras adicionales en procesos digitales. De hecho, mu-chos de ellos diferencian las tecnologías puramente digitales de las híbridaspor el uso de estas capas de polisilicio extra. Como nuestro objetivo es diseñarcircuitos analógicos capaces de operar con los digitales está claro que estastecnologías son las que queremos utilizar.

Los circuitos diseñados se caracterizan por ser capaces de procesar señalesen tiempo continuo, por lo que mejoran las realizaciones existentes, que sonmás adecuadas para aplicaciones de amplificadores conmutados. Además, elancho de banda obtenido es mayor que el que se consigue con técnicas menosconvencionales. Por último, los circuitos realizados son simples, lo cual leshace más atractivos si cabe, y se basan en su mayor parte en una técnica que,como se dirá más adelante, sistematiza el diseño de circuitos de baja tensión.

En lo que sigue, se van a presentar las aportaciones realizadas en este campo.En la sección 5.2 se va a presentar el fundamento teórico que nos permite quelos circuitos operen con muy baja tensión de alimentación. En las seccionessiguientes se presentaran las aportaciones realizadas utilizando etas ideas.

Page 105: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.2 Baterías estáticas y dinámicas de baja tensión de alimentación ygran rango de señal 87

5.2 Baterías estáticas y dinámicas de baja ten-sión de alimentación y gran rango de señal

a aa

b

b b

(a) (b) (c)

R R

Ibias

Ibias

Ibias

Vbat

Figura 5.1: Baterías estáticas CMOS.

Las figuras 5.1 y 5.2 muestran los bloques básicos utilizados en todos los cir-cuitos de bajo consumo mostrados en la sección 5.3. Asumiremos a partirde ahora que todos los amplificadores operacionales que aparecen (como enla figura 5.2c) son circuitos capaces de operar con tensiones de alimentacióntan pequeñas como el resto de circuitos que vamos a presentar. De hecho,más adelante presentaremos la arquitectura interna de amplificadores de ba-ja tensión, por lo que se entenderá cómo funcionan.

a

bR

Is

Is

(b)

a

b

Vs’

(a)

Vs’=Vs-Vref

a

b

Is

RVsR

(c)

Vdd

Vss

Vref ~ Vss

Figura 5.2: Baterías dinámicas CMOS.

La figura 5.1 muestra una batería flotante de valor Vbat conectada entre dosnodos, que llamaremos a y b. La implementación de baja tensión utiliza una

Page 106: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

88 Aportaciones al diseño de circuitos de baja tensión

resistencia conectada entre dos fuentes de corriente Ibias pareadas de formaque tengan el mismo valor (figura 5.1b), que en la práctica pueden ser realiza-das utilizando fuentes de corriente P y N generadas a partir de una corrientede referencia utilizando espejos de corriente (figura 5.1c). Desde un punto devista práctico, dado que las fuentes de corriente MOS necesitan como mínimouna tensión VDS = VOV (conocida en inglés como ”overdrive”) para poder ope-rar como dispositivos de alta impedancia, el rango de operación de la bateríaflotante es Vswing = VDD � 2 � VOV . Si tomamos un valor de VDD = 1:2V y deVOV = 0:15V , esto nos proporciona un rango de funcionamiento para la bate-ría flotante de 0:9V aproximadamente ( VOV es la tensión VDS del transistor desalida del espejo de corriente, que debe cumplir que VOV > Veff = VGS � VTH).

ba

I

I

c1c2

a

b

φ2φ1

φ2φ1

(i)

I

I

(f)

I

a

b

(g)

b

(h)

a

b

I

a

b

aI

b

a

(a) (b) (c)

Ia

bI I

I

a

b

(d) (e)

Figura 5.3: Diferentes realizaciones de la batería flotante.

En muchas situaciones prácticas la resistencia R puede ser reemplazada portransistores NMOS y PMOS conectados en forma de diodo para operar comoelevadores o reductores de tensión tal y como se muestra en la figura 5.3.Las conexiones para cambiar el nivel de continua de la señal (figuras 5.3by 5.3c) se caracterizan por tener un nodo de alta impedancia y otro de bajaimpedancia, mientras que los transistores conectados en modo diodo (figuras5.3d y 5.3e) se caracterizan por tener los dos nodos de baja impedancia. Otrasposibles realizaciones de la batería pueden verse en las figuras 5.3f, 5.3g y

Page 107: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 89

5.3h. Por último, en la figura 5.3i se muestra una realización basada en con-densadores con un circuito de refresco. Este tipo de baterías sólo es posibleutilizarlo cuando no circula corriente a través de la misma.

Sin embargo, también nos parece interesante la realización electrónica de ba-terías cuya caída de tensión sea conocida y varíe con el tiempo, más aún, cuyovalor varíe de forma proporcional a como varía una señal. Esto nos permitirápoder tener un valor de tensión proporcional a la señal que se pretende pro-cesar entre los dos nodos del circuito que queramos. La figura 5.2 muestrala realización electrónica de baterías dinámicas de valor V0

S controladas poruna señal de amplio rango VS. El circuito opera como sigue: el amplificadortiene su entrada positiva conectada a una tensión VREF muy cercana a uno delos de los raíles de alimentación VDD o VSS, mientras que la entrada negativaestá conectada a una resistencia R que en su otro extremo está conectada auna fuente de corriente y la fuente de señal VS (al menos VREF = VSS + VOVo VREF = VDD � VOV ). En esta configuración el amplificador genera una ten-sión de salida tal que produce una corriente I0S que, al circular a través de R,provoca una caída de tensión en la resistencia de valor VR = V 0

S = VS � VREF .Utilizando espejos de corriente podemos generar una copia de I0S en el otroextremo de R y así forzar a que no se derive corriente a través de VS ya queen este caso la fuente de señal ve una impedancia infinita (en realidad, al serlos espejos simples, la fuente ve una impedancia finita, pero si la copia de co-rrientes es buena, la corriente que se deriva pueda ser despreciada).

Las baterías flotantes dinámicas tienen las mismas restricciones en el ran-go de valores que pueden tomar que las estáticas, por lo que éste es igual aVDD�2�VOV . En realidad, el rango posible es mayor si permitimos la posibili-dad de que circule corriente por la fuente de señal VS, permitiendo así que unade las dos fuentes de corriente entre en zona de funcionamiento lineal. En loque sigue en este capítulo intentaremos que esta situación no se produzca,de forma que no “carguemos” la fuente de señal VS. Por otro lado, aunquelos circuitos presentados para la realización de baterías estáticas y dinámicasson ligeramente diferentes, en la práctica pueden ser generados con el mismocircuito (figura 5.2c), y así tendremos controlado el valor Vbat = VS�VREF antevariaciones de temperatura u otros parámetros en el caso de una batería es-tática.

5.3 Aplicación de las baterías flotantes al di-seño de baja tensión

En esta sección se van a presentar diferentes realizaciones en las que se con-siguen circuitos capaces de operar con tensiones de alimentación cercanas a la

Page 108: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

90 Aportaciones al diseño de circuitos de baja tensión

tensión umbral de un transistor con un rango completo o casi completo de ten-siones de entrada y salida. La mayoría de estas realizaciones están basadasen las baterías flotantes, y es por ello que han sido definidas con anteriori-dad. En cada una de las aplicaciones la batería cumple una misión diferente,por lo que se considera importante mencionar las aportaciones por separado.Además, algunas de las ideas aquí expuestas ayudan al funcionamiento de loscircuitos con baterías flotantes y, aunque no están basados en ellas, tambiénhan sido incluidos.

5.3.1 Amplificador operacional CMOS de baja tensión dealimentación con etapa de salida clase AB

Introducción

En este apartado se va a presentar la versión unipolar y diferencial de unamplificador operacional CMOS que es capaz de operar con una tensión dealimentación cercana a la tensión umbral VT de un transistor.

Recientemente se han presentado realizaciones en clase AB de amplificado-res operacionales capaces de operar con tensiones de alimentación cercanasa VT y con grandes rangos de tensión de salida [10], [11], [75] y [40]. Estasrealizaciones (basadas en una etapa de transconductancia OTA) presentan li-mitaciones en la ganancia en bucle abierto, en el ancho de banda y un granconsumo de área y potencia, pues la corriente generada en la etapa de en-trada debe ser transmitida a los transistores de la etapa de salida a travésde espejos de corriente con tensiones de salida VOV muy pequeñas. Para queesto sea posible es necesario utilizar transistores con dimensiones (W=L) muygrandes, que introducen nuevas capacidades parásitas (polos de baja frecuen-cia) y limitan el producto ganancia–ancho de banda (GBW ). El GBW está yalimitado por la necesidad de operar con baja tensión al ser el GBW propor-cional a Veff y ser necesario que Veff sea pequeño para que los espejos dejenrango de tensión suficiente al resto de transistores del circuito para operar.

Existen otras técnicas en la literatura como [14] que consiguen que el amplifi-cador operacional sea alimentado con una tensión cercana a VT . En este casola limitación de la realización viene provocada por el uso del substrato de untransistor MOS como una entrada activa lo cual reduce severamente el GBWdel circuito al ser la capacidad parásita asociada al substrato mucho mayorcomparada con las capacidades parásitas vistas desde el drenador, fuente opuerta de un transistor MOS. En este capítulo presentamos un amplificadorCMOS capaz de operar con una tensión de alimentación cercana a VT y queno presenta las limitaciones antes expuestas.

Page 109: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 91

Arquitectura del amplificador operacional de baja tensión

Para los comentarios que siguen se supondrá, sin pérdida de generalidad,que se dispone de tensiones de alimentación positivas y negativas, que lla-maremos VDD y VSS respectivamente. Estas tensiones son equivalentes auna sola tensión de alimentación: VSUP = VDD � VSS, con VDD = VSUP=2 yVSS = �VSUP=2.

La figura 5.4 muestra la arquitectura básica del amplificador operacional pro-puesto. Dicho amplificador consta de dos etapas: la primera etapa está reali-zada mediante un par diferencial y la segunda con un inversor CMOS modi-ficado por la inclusión de una batería de polarización VBIAS entre las puertasde los transistores de dicho inversor. La batería permite el funcionamientodel inversor CMOS con sus dos transistores operando en la región de satu-ración y alimentado con una tensión VSUP cercana a la tensión umbral de untransistor. Esto es posible ya que se ha conectado la batería de forma que supotencial más alto esté conectado a la puerta del transistor N y el más bajoa la del transistor P. De esta forma se desplaza el punto de polarización deambos transistores en DC y, como la batería es flotante, la señal que entre enel inversor le afectará a los dos.

A continuación se detalla el funcionamiento del circuito de una forma cuali-tativa para demostrar que con esa tensión de alimentación tan pequeña esposible que todos los transistores estén funcionando en la región de satura-ción.

En condiciones de reposo y con realimentación negativa, la primera etapadel amplificador operacional opera con sus dos entradas muy cercanas a latensión de alimentación negativa VSS, lo cual es común en aplicaciones deamplificadores conmutados y cuando se utilizan técnicas de transistores conpuertas flotantes [92], [81]. Esto es así ya que al estar realizada esta etapacon transistores P y al ser la tensión de alimentación cercana a VT , la ten-sión de entrada ha de ser muy pequeña en valor absoluto si queremos que eltransistor P esté en saturación, es decir, que presente una caída mayor que VTentre la alimentación y la entrada. Además, la salida tiene un valor de ten-sión muy cercano a VSS ya que estamos suponiendo que el amplificador estárealimentado, por lo que si la entrada es cercana a VSS, la salida también. Porotro lado, la realimentación negativa fuerza a que el valor de polarización dela tensión del nodo de salida de la primera etapa (Vx) sea tal que las corrientespor los transistores de salida sean iguales (transistores de la segunda etapa).Para que esto sea cierto, Vx debe estar muy cercano a la tensión VSS, con loque la tensión puerta–fuente (fuente–puerta) de los dos transistores de salidatiene un valor cercano a (VSUP + Vbias)=2 (Se ha supuesto que VGSN � VGSP ).Por ejemplo, con VSUP = 1V , VDD = �VSS = 0:5V y Vbias = 0:6V , las tensio-

Page 110: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

92 Aportaciones al diseño de circuitos de baja tensión

QI

Dout

_

+

M1P

Vi-

M1Vi+

Ibdp/2 Vx

VSS

VDD

Moutn

Moutp

VoutVbias

Ibdp

( a )

QI

Dout

_

+ _

+

VDDIbdp

Moutp MoutpM1PM1

Vi+Vi-

VDD

Vo- Vo+Vbias Vbias

Moutn Moutn

McmVcntcm

VSS VSS

Vcntcm

( b )

M1P

Vi-

M1Vi+

Ibdp/2

Ibdp

Vx

VSS

VDD

Vx

VSS

VDD

Vbias

Vbias

Moutp

Moutn

Vout

( c ) Figura 5.4: Amplificador operacional de dos etapas y baja tensión: (a) Esque-ma unipolar, (b) Esquema diferencial, (c) Realización con gran ganancia enbucle abierto.

Page 111: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 93

QI

Dout

Rc Cc

MR

Ibdp VDDIbinv

VSS

Ibdp/2

Vx

Vi- Vi+

M1 M1P

Vbias+

-

CbpMoutp

Moutn

Vout

Figura 5.5: Realización electrónica del esquema unipolar del amplificadoroperacional de dos etapas y baja tensión.

nes puerta–fuente de los transistores de salida quedan con un valor de 0.8V yVx = �0:3V .

De esta forma hemos visto que si la entrada del operacional está cercana aVSS, todos los transistores del circuito están funcionando en la región de sa-turación. Además, la corriente en los transistores de salida depende del valorde la batería Vbias, lo que en el futuro nos permitirá controlar la corriente encondiciones estáticas en la rama de salida.

La segunda etapa del amplificador, basada en el uso de una batería flotanteestática proporciona al circuito cualidades muy atractivas:

� Rango de tensiones de salida completo (“rail–to-rail”).

� Gran velocidad de respuesta, pues la máxima corriente de salida puedeser mayor que la corriente en condiciones estáticas (polarización en claseAB).

Hay que hacer notar además que, al tener el nodo de salida de la primeraetapa (Vx) un valor en reposo muy cercano a VSS, el offset sistemático por ladiferencia entre los valores VDS de los transistores de entrada es pequeño.

La figura 5.5 muestra la realización de la batería flotante Vbias utilizando untransistor MR conectado en forma de diodo polarizado con una fuente de co-rriente de pequeño valor Ibinv. También se puede utilizar una resistencia R envez del transistor MR, en cuyo caso V bias = Ibinv �R.

Page 112: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

94 Aportaciones al diseño de circuitos de baja tensión

Hasta el momento no hemos realizado consideraciones respecto al comporta-miento en frecuencia de nuestro circuito. Por un lado, al ser un amplificadorde dos etapas, necesitará una red RC de compensación (Rc y Cc de la figura5.5) conectada entre las salidas de las dos etapas. Por otro lado, la batería senecesita para polarizar la segunda etapa, pero su presencia puede estropearel comportamiento a altas frecuencias, por lo que si es necesario se puede co-locar un condensador de desacoplo Cbp que la cortocircuite a altas frecuencias.

Otros autores han presentado amplificadores de dos etapas con una etapa desalida CMOS operando en clase AB [75], [38], [92], [118]. En nuestro caso,el uso de una batería flotante negativa es la clave que nos permite empleartensiones de alimentación pequeñas utilizando circuitos sencillos para la po-larización y control de la etapa de salida (por “batería negativa” entendemosque el terminal de la batería con potencial más bajo está conectado al transis-tor de la etapa de salida conectado a VDD y viceversa). En [56] se utiliza una“batería flotante positiva” en la etapa de salida del amplificador operacional yse menciona la posibilidad de utilizarla con la polaridad cambiada, si bien estapublicación es posterior a la realización de este trabajo. Si se añaden espejosde corriente de baja tensión (como los que se mencionan en [75] y [76]) comocargas activas del par diferencial de entrada la ganancia en transconductan-cia (y por ello el GBW del operacional) se puede incrementar en un factor 2.

El amplificador operacional descrito puede ser utilizado para aplicaciones deamplificadores conmutados de baja tensión y rango completo de tensiones desalida. También puede ser utilizado para aplicaciones en tiempo continuo conun gran rango de tensiones de entrada, como se verá más adelante [81], [79].

Además, como veremos a continuación, la corriente en reposo de la etapa desalida es fácilmente controlable, por lo que ésta es otra propiedad que pode-mos añadir a las cualidades de nuestra realización. En el circuito de la figura5.4a la corriente en condiciones estáticas IQDout en los transistores de salida(Moutp y Moutn) del amplificador operacional está relacionada con la tensión depolarización (Vbias), con los parámetros de transconductancia de los transisto-res (�n, �p) y con las tensiones umbrales de los transistores (VTp, VTn) por laecuación:

IQDout = �n(VQGSn � VTn)

2 = �p(VQSGp � jVTpj)

2 (5.1)VGSn + V SGp� Vbias = Vsup (5.2)

donde

V QGSn =

VSUP + Vbias + VTnq

�n�p� jVTpj

1 +q

�n�p

(5.3)

Page 113: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 95

Para el caso en el que �n � �p y, suponiendo que VTn � jVTpj por simplicidad,la ecuación anterior queda como sigue:

V QGSn =

VSUP + Vbias + VTn � jVTpj

2�VSUP + Vbias

2= V Q

SGp (5.4)

Ibinv

VcQnt

IoutQ

IoutQ

IreQ

f Vc n tQ

M

Rc Cc

M

_

+Vx

R R

Ibdp

Ibdp/2

Moutp

Moutn

Ibdp/2

Moutp

Ibdp

Op-amp activo

M1 P1

RVi-

Circuito de control

VoVi+=Vref

Op-amp de referencia con Vin=Vref

Figura 5.6: Esquema para controlar la corriente estática de la etapa de salida.

Para las aplicaciones en las que se necesita tener un control muy preciso so-bre el valor de IQDout, se puede utilizar el circuito de la figura 5.6 de forma queesa corriente sea igual a un valor nominal IQREF . Dicho circuito funciona comosigue: se genera una réplica de la corriente estática IQDout en la rama de sali-da del amplificador operacional y es transformada en tensión a través de laresistencia R. Esta tensión (cercana a VSS) es comparada con la tensión gene-rada por la corriente de referencia IQREF . Un amplificador diferencial comparaesas dos tensiones y genera la tensión de control VQ

cnt, que puede ser utiliza-da para ajustar el valor de la corriente Ibinv de forma que IQDout = IQREF . Esteesquema debe ser aplicado a un amplificador operacional de referencia quetenga Vin = Vref y realimentación negativa unitaria. El valor de control VQcntpuede ser utilizado para controlar la corriente estática en las etapas de salidade todos los amplificadores operacionales del circuito integrado. Además, esteesquema también es válido si se quiere tener control sobre la tensión de labatería Vbias.

Arquitectura del amplificador operacional diferencial de baja ten-sión

La figura 5.4b muestra la realización diferencial del amplificador operacionalde la figura 5.4a. Básicamente se ha replicado la etapa de salida en la otra ra-

Page 114: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

96 Aportaciones al diseño de circuitos de baja tensión

ma del par diferencial de forma que tengamos entrada y salida diferencial. Ladiferencia es que en este montaje necesitamos un mecanismo para controlarel modo común de la salida del operacional. Por ello, se ha sustituido la cargafija del par diferencial de entrada por una carga controlable. Los transistoresMcm son utilizados para controlar la tensión de modo común de la salida. Latensión de la puerta de estos transistores Vcntcm es generada utilizando unatécnica de control de modo común de baja tensión que se discutirá más ade-lante.

El resto de la estructura del amplificador diferencial se basa en la estructuradel amplificador unipolar, por lo que es lógico pensar que también es posiblehacer funcionar el amplificador operacional con baja tensión. Sin embargo, elcircuito de control del modo común de la tensión de salida introduce un proble-ma adicional cuando se trabaja con tensión de alimentación pequeña. Esto esasí porque la tensión de modo común debe ser comparada con una referenciapara poder generar un señal de control. El proceso necesita un amplificadorque también debe ser capaz de funcionar con baja tensión de alimentación.Como sabemos, el modo común de la señal de entrada puede tener cualquiervalor y normalmente es un valor próximo a Vcm = VSS+Vsup=2. Esto nos obligaa desarrollar técnicas que permitan que un amplificador de baja tensión seacapaz de funcionar con tensiones de entradas intermedias.

Esquemas de baja tensión para el control de la tensión de modo co-mún. La realización práctica de la versión diferencial necesita un amplifica-dor de baja tensión para comparar el modo común de la tensión de salida delamplificador diferencial Voutcm con una referencia Vrefcm y generar una tensiónde control Vcntcm que fuerce Voutcm = Vrefcm.

De ahora en adelante, supondremos sin pérdida de generalidad, que Vrefcm =0. En la figura 5.7a se muestra una posible realización de un amplificadorde modo común basado en resistencias, donde el modo común de la señal desalida es comparada con una referencia utilizando dos resistencias iguales degran valor (R) conectadas al terminal negativo de un par diferencial y a losdos terminales de salida del operacional cuyo modo común se desea controlar.Esto provoca una caída de potencial en el terminal negativo del amplificadorde modo común:

Vy = 2VoutcmRjjRcm

R +RjjRcm+ VSS

0:5R

0:5R+Rcm(5.5)

Por otro lado, en el terminal positivo se tiene una tensión:

V 0

y = 2VrefcmRjjRcm

R +RjjRcm+ VSS

0:5R

0:5R +Rcm

(5.6)

Page 115: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 97

( a )

( b )

( c )

_

+

R

_

+

Vout+

Vout-

Vy’

C

C

Vy

M1PM1_

+

Vdescm

Vout-

Vout+

Vy

Vcntcm

Vcntcm

Vdescm

Idp

Vi+ Vi-

Vout

R

Vy’Rcm

Rcm

Ccm

Ccm

Figura 5.7: Esquema de baja tensión para un amplificador de modo común: (a)Esquema con resistencias, (b) Esquema con condensadores, (c) Amplificadorde modo común.

Page 116: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

98 Aportaciones al diseño de circuitos de baja tensión

Este amplificador genera una tensión Vcntcm que hace que Vy = V 0

y , por lo queVoutcm = Vrefcm. Además, de las expresiones anteriores de Vy y V 0

y se deduceque si tomamos R >> Rcm, entonces Vy y V 0

y tomarán un valor cercano a VSS.Esto es necesario para conseguir funcionamiento en baja tensión, ya que estosterminales se conectan a las puertas de los transistores del par diferencial delamplificador de modo común. Como se ha explicado anteriormente, la salidadel amplificador de modo común es una señal de control para los transistoresMCM del amplificador de la figura 5.4b, por lo que una posible realización queproporciona los niveles de tensión adecuados es la que se muestra en la figura5.7c.

En la figura 5.7b se muestra otra posibilidad para muestrear el valor de latensión de modo común de la salida del operacional. En este caso el esquemase basa en un divisor de tensiones capacitivo (en vez del resistivo explica-do anteriormente). A esta realización se la puede considerar una realizacióncon puertas flotantes, ya que la puerta de los transistores que forman el pardiferencial sólo están conectadas a tres capacidades. El fundamento del fun-cionamiento de este circuito es el mismo que en el caso anterior y se consigueel mismo efecto. Más adelante se explicarán las propiedades que presentanestas técnicas a la hora de seleccionar cuál es la más apropiada en cada mo-mento.

Técnicas para aumentar el rango de tensiones de entrada

Las técnicas propuestas para realizar el amplificador de modo común, ante-riormente mencionadas, sugieren que también sería posible el uso de éstaspara realizar un amplificador con rango completo de tensiones a la entrada.En lo que sigue, detallaremos cómo utilizarlas y los resultados obtenidos.

Método del divisor resistivo Ahora utilizaremos el divisor resistivo pa-ra conseguir que los terminales del amplificador tengan un valor de tensiónpróximo a una de las alimentaciones (en nuestro caso VSS), reduciendo, ade-más,el rango de variación de la señal. Asumiremos que disponemos de unamplificador operacional ideal con offset nulo y de divisores resistivos com-puestos por dos resistencias R y Rcm con R > Rcm (en realidad, basta con queR � 5Rcm para que se produzca la atenuación deseada, ya que Vsup � 1V ). Enla figura 5.8a se muestra el montaje que pasaremos a analizar a continuación.

Como en el caso del amplificador de modo común, calcularemos las tensionesque el divisor resistivo provoca en los terminales del amplificador operacional:

Page 117: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 99

_

+Rcm

Rcm

_

+

R

Vin

R

Rcm

Rcm

RVi-

Vi+

+

_

Vout

Vout+

Vout-+Rcm

_R2

R2

R1

R1Vin+

Vin- Vout+

Vout-

V-

V+

R

Vi-

Vi+

R

RRcm

RcmV+

V-

Rcm

Vout

+_

+_

( a ) ( b )

( d )( c )

APLIFICADOR OPERACIONALCOMPLETO

Figura 5.8: Esquema del divisor resistivo: (a) Esquema básico, (b) Montaje se-guidor con ganancia unidad, (c) Esquema diferencial, (d) Montaje diferencialcon ganancia G=R2/R1.

Page 118: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

100 Aportaciones al diseño de circuitos de baja tensión

V� = VSS + (Vi� � VSS)Rcm

R +Rcm(5.7)

V+ = VSS + (Vi+ � VSS)Rcm

R +Rcm(5.8)

Bajo condiciones de reposo (Vi� = Vi+ = 0), las entradas del amplificadoroperacional vienen dadas por V+ = V� = VSS + VREF , donde hemos llamadoVREF a la caída de tensión en la resistencia Rcm que viene dada por VREF =�VSSRcm=(R + Rcm). Para mantener los terminales del operacional cerca dela tensión VSS es necesario que VREF tome un valor pequeño, por lo que debeelegir R > Rcm. Por ejemplo, si VSS = �0:5V y R = 4Rcm, entonces VREF = 0:1Vy las entradas del operacional quedan con una tensión V+ = V� = �0:4V .

Podemos ahora considerar que nuestro amplificador operacional (en línea dis-continua en la figura 5.8a y con terminales positivos y negativos Vi� y Vi+),incluye a los divisores resistivos y al amplificador operacional original. A es-te amplificador operacional que, como veremos porseriormente, es capaz detener rango completo de tensiones a la entrada, lo denominaremos amplifica-dor operacional completo. Con el amplificador operacional completo podemosrealizar el montaje seguidor de tensión con ganancia unidad y rango casi com-pleto de tensiones a la entrada y a la salida tal y como se muestra en la figura5.8b. Este esquema se puede aplicar a la versión diferencial y realizar esque-mas como el que se muestra en la figura 5.8d, que tiene ganancia R1=R2.

Con todo ello hemos conseguido amplificadores de muy baja tensión de ali-mentación con rangos de entrada y salida casi completos. Sin embargo, estatécnica presenta inconvenientes:

1. La resistencia de entrada del amplificador es finita debido a las resisten-cias R y Rcm. Estas resistencias aumentan el área ya que su ocupaciónno es despreciable aún en el caso de disponer de polisilicio muy resistivo.

2. El producto ganancia–ancho de banda (GBW) se ve reducido en la ver-sión unipolar del amplificador completo por el factor G = 1=� respectodel GBW del operacional original, siendo � = 1 +R=Rcm.

3. El offset es amplificado un factor � mientras que la relación señal-ruidose ve afectada por un factor 1=�.

La versión diferencial no tiene esa pérdida de producto GBW porque los ele-mentos de modo común Rcm no están en el camino de la señal. De hecho, laausencia de señales de modo común hace posible la reducción de la tensiónde alimentación respecto de la versión unipolar, como veremos a continua-ción. En la versión unipolar del amplificador operacional completo, la señal

Page 119: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 101

de modo común en la entrada del amplificador operacional interno viene dadapor V S

icm = V SinRcm=(Rcm + R) (donde ‘S’ significa variación respecto del punto

de reposo, que en nuestro caso es V Sin = 0V ). Por ello, la mínima tensión de

alimentación posible viene dada por Vsup = jVGSj + VOV + V Sicm + VREF , donde

VOV es la caída de tensión a través de la fuente de corriente utilizada pa-ra polarizar el par diferencial de entrada al operacional interno y jVGSj es latensión media puerta–fuente en los transistores que forman dicho par dife-rencial. Sin embargo, en la versión diferencial la tensión de modo común semantiene constante en el valor VREF , al no ser incluido el término V S

icm, y lamínima tensión necesaria para polarizar la versión diferencial es menor. Co-mo ejemplo, si VOV = VREF = 0:1V y jVGSj = 0:8V , entonces Vsupmin

= 1V .

Método del divisor capacitivio. En este método (mostrado en la figura5.9) se realizan divisores de tensión en tiempo continuo utilizando elementoscapacitivos. Se utilizan transistores con varias puertas flotantes [81], [78] pa-ra realizar el par diferencial de entrada. Estos transistores realizan divisoresde tensión de la misma forma que los divisores resistivos presentados ante-riormente pero con algunas ventajas. En concreto, no cargan la entrada encondiciones estáticas y no aumentan el ruido como en el caso de divisores re-sistivos. Estos divisores capacitivos pueden ser utilizados para conseguir queel amplificador tenga sus terminales con una tensión cercana a VSS y con unrango de señal reducido en dichos terminales.

La figura 5.9a muestra la utilización de capacidades C y Ccm conectadas alamplificador. Este montaje presenta en condiciones estáticas (Vi+ = Vi� = 0)las siguientes tensiones en la puerta del amplificador: V� = V+ = VSS�(C=(C+Ccm))VSS. En el caso en que Ccm >> C se tiene que V� = V+ = VSS+VREF � VSS.Como ejemplo podemos decir que si elegimos Ccm = 4C, obtenemos los mismosresultados que en el ejemplo presentado con divisores resistivos. La mayoríade las consideraciones realizadas en el caso de los divisores resistivos puedehacerse en el de los divisores capacitivos, aunque ésta última técnica tiene lassiguientes ventajas:

1. Los divisores capacitivos no empeoran la impedancia de entrada a dife-rencia del caso del divisor resistivo.

2. En el caso de no existir polisilicio altamente resistivo, el divisor capaciti-vo ocupa menor área que el divisor resistivo para valores razonables deimpedancia de entrada y siempre que el divisor capacitivo sea realizadocon transistores de puertas flotantes con capacidades POLY-I POLY-II.

3. La relación señal-ruido no se ve empeorada por las capacidades añadi-das.

Page 120: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

102 Aportaciones al diseño de circuitos de baja tensión

AMPLIFICADOR OPERACIONAL COMPLETO

V-

V+

Vi+

Vi-

C

C

Ccm

Ccm

Vout

Vin

C

C

Ccm

Ccm

Vout

Vi+

C

C

Ccm

Ccm Vout-

Vout+Vi-

Vin+

C1

C1

Ccm

Ccm Vout-

Vin-

C2

C2

Vout+

( d )( c )

( a )( b )

Figura 5.9: Esquema del divisor capacitivo: (a) Esquema básico, (b) Montajeseguidor con ganancia unidad, (c) Esquema diferencial, (d) Montaje diferen-cial con ganancia G=C2/C1.

Resultados de simulación

Se han verificado los dos operacionales (unipolar y diferencial) mediante si-mulación a nivel de máscaras (“layout”) generado en CADENCE DFWII parala tecnología CXQ � 0:8�m del fabricante AMS. Todos los operacionales hansido diseñados para poder trabajar con una carga a la salida CL = 10pF . Lostamaños de los transistores utilizados así como los valores de las fuentes decorriente y demás componentes se muestran en la tabla 5.1. El diseño ha sidorealizado para la tecnología CXQ � 0:8�m, cuyos transistores tienen la ten-sión umbral VT � 0:85V , y para una tensión de alimentación Vsup = 1:2V . Elárea ocupada por el diseño a nivel de máscaras (“layout”) fue de 250x250�2.

Para verificar el correcto funcionamiento del amplificador completo se simulóun montaje unipolar con un divisor resistivo, cuyas resistencias R y Rcm es-taban conectadas a cada terminal del amplificador operacional de forma que

Page 121: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 103

( a )

( b )

( c )

Figura 5.10: Resultados de simulación del divisor resistivo: (a) CaracterísticaDC, (b) Respuesta transitoria, (c) Respuesta en frecuencia.

Page 122: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

104 Aportaciones al diseño de circuitos de baja tensión

Par Diferencial W=L = 250=2 *Tran. salida tipo P W=L = 450=2Tran. salida tipo N W=L = 150=2

CC 0.3pFRC 10K

Espejos tipo N W=L = 150=2Espejos tipo P W=L = 300=2

Ibdp 50�AIbinv 2.5�A

(*) Los tamaños W/L vienen dados en �m

Tabla 5.1: Valores utilizados para el diseño del amplificador operacional.

se mantenían los dos terminales del operacional cerca de VSS. Se configurócomo seguidor de tensión de la misma forma que el circuito de la figura 5.9b.La característica DC, la respuesta a un pulso y la respuesta en frecuencia semuestran en la figura 5.10a, 5.10b y 5.10c, respectivamente. Estos resultadoshan sido obtenidos para R = 20k y Rcm = 2k que ocuparon un área de 90x2�2.Puede verse en estas gráficas que el amplificador es capaz operar casi en elrango completo de tensiones de entrada, y que se obtiene un ancho de bandade 4:03MHz. De este dato podemos deducir que el amplificador interno poseeun producto ganancia–ancho de banda GBW = (1 + R=Rcm)BW = 40:3MHz.Además, la ganancia en bucle abierto del amplificador es de 62dB, la cual seve reducida a 45dB cuando incluimos el divisor resistivo. Su consumo de po-tencia fue de 150�W.

Del mismo modo, se simuló un montaje unipolar con un divisor capacitivoformado por los condensadores C y Cm realizados con polisilicio I y II. Se utili-zaron valores de C = 0:72pF y Cm = 6C con una ocupación de área de 80x70�2.La característica DC, la respuesta a un pulso y la respuesta en frecuencia semuestran en la figura 5.11a, 5.11b y 5.11c, respectivamente. Puede verse enestas gráficas que el amplificador es capaz operar casi en el rango comple-to de tensiones de entrada, y que se obtiene un ancho de banda de 5:3MHz.De este dato podemos deducir que el amplificador interno posee un productoganancia–ancho de banda GBW = (1 + Cm=C)BW = 38MHz, que es un valormuy parecido al que se obtuvo con el divisor resistivo.

Los esquemas diferenciales fueron simulados de la misma forma que los es-quemas unipolares. En la figura 5.12 puede verse cómo en el esquema condivisores resistivos, el rango de tensiones a la entrada y a la salida es comple-to (desde VDD hasta VSS). Además, el tiempo de subida es algo mejor que elobtenido en la versión unipolar debido a su mayor ancho de banda.

Page 123: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 105

( a )

( b )

( c )

Figura 5.11: Resultados de simulación del divisor capacitivo: (a) Característi-ca DC, (b) Respuesta transitoria, (c) Respuesta en frecuencia.

Page 124: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

106 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )

Figura 5.12: Resultados de simulación del amplificador diferencial con diviso-res resistivos: (a) Característica DC, (b) Respuesta transitoria

Page 125: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 107

Resultados Experimentales

Antes de enviar a fabricar un circuito de estas características es convenientemontar un prototipo en una placa de pruebas para verificar el funcionamientodel esquema propuesto. Para ello se utilizan tiras de transistores comerciales(CD4007). En este tipo de integrados los transistores están pareados y pre-sentan una tensión umbral bastante alta (VT � 2:5V ), por lo que utilizamosuna alimentación consecuente con este valor: VDD = �VSS = 1:5V . Con estoselementos se realizaron los esquemas unipolar seguidor de tensión, con divi-sor capacitivo y resistivo, que alcanzaron un rango de señal de 2.2V pico apico. Esto no es de extrañar ya que todos los transistores en un CD4007 tie-nen el mismo tamaño, por lo que las tensiones VOV en las fuentes de corrienteson mayores que en el caso en el que podemos controlar la W=L. En la tabla5.2 se muestran el resto de valores utilizados para la realización del amplifi-cador operacional unipolar con divisor resistivo.En la figura 5.13 se muestrala característica estática y las curvas experimentales obtenidas.

R 22kRcm 3.9KIbdp 200�AIbinv 10�ABW 130KHz

Tabla 5.2: Valores utilizados para la placa de pruebas.

Una vez verificados los esquemas se envió a fabricación una primera versióndel divisor capacitivo que tenía condensadores C y Cm accesibles desde el ex-terior. Los valores utilizados fueron C = 0:72pF y Cm = 6C. El circuito fueprobado en la configuración seguidor de tensión en una placa de pruebas conuna tensión de alimentación Vsup = 1:2V . El ancho de banda obtenido para unacarga capacitiva CL � 60pF fue de 1MHz, lo cual está en concordancia con lassimulaciones realizadas para el mismo operacional: CL = 10pF y BW=5.3MHz(La capacidad parásita en una placa de pruebas es alta y se estimó cercana alos 60pF).

En la figura 5.14a se muestra una fotografía del amplificador realizado contransistores de puertas flotantes utilizando las mismas dimensiones mencio-nadas en el apartado de simulaciones. Las formas de onda obtenidas al conec-tar dicho amplificador en configuración de seguidor pueden verse en la figura5.14b. El máximo rango de señal obtenido es de 1V pico a pico, siendo la ten-sión umbral medida para los transistores VT = 0:85V .

Al ser los resultados satisfactorios, enviamos un segundo circuito integrado a

Page 126: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

108 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )Figura 5.13: Resultados experimentales con placa de pruebas y divisor resis-tivo: (a) Característica estática, (b) Respuesta transitoria.

Page 127: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 109

( a )

( b )Figura 5.14: Resultados experimentales con la primera versión: (a) Fotografíadel montaje unipolar con divisor capacitivo, (b) Respuesta transitoria

Page 128: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

110 Aportaciones al diseño de circuitos de baja tensión

fabricación. Este circuito incluye las versiones unipolar y diferencial de losdivisores capacitivos y resistivos así como otros circuitos que explicaremoscon posterioridad. En este integrado todos los amplificadores operacionalestenían la realimentación negativa interna al mismo, ya que así se minimiza-ban las capacidades parásitas y se obtenían resultados más acordes con lascondiciones en las que este tipo de circuitos va a funcionar. Todos los tran-sistores fueron diseñados de manera que el amplificador funcionase con unacarga externa de CL = 50pF . De esta forma, será más fácil obtener resul-tados similares a los de simulación, al ser posible colocar externamente unacarga cercana a los 50pF. Un dato importante que hay que resaltar es que lacarga típica con la que este tipo de amplificadores van a funcionar es cerca-na a CL = 1pF , por lo que los resultados obtenidos con 50pF no son los querealmente va a tener el operacional que estamos diseñando. Además, los re-sultados de simulación indican que el ancho de banda aumenta conforme lacarga con la que tienen que funcionar disminuye. Esto es debido a que lascapacidades parásitas aumentan conforme aumentan las dimensiones (W=L)de los transistores, por lo que la respuesta en frecuencia se ve modificada.

En las figuras 5.15, 5.16, 5.17 y 5.18 pueden verse algunos resultados obteni-dos con el amplificador con divisores resistivos del segundo circuito integrado.En la figura 5.15a se muestra la fotografía del amplificador unipolar utiliza-do en estas pruebas. En la figura 5.16a puede verse la característica DC dedicho amplificador. Puede observarse la linealidad y el pequeño error de ga-nancia. Además, hay que hacer notar que el rango de tensiones de entraday salida obtenido ha sido casi completo: 1.15V con una tensión de alimenta-ción de 1.2V. En la figura 5.16b puede observarse el momento en el que laamplitud de la señal de salida comienza a descender, lo cual ocurre para unaseñal de entrada de 4MHz (se ha utilizado una relación R=Rcm = 10. En lasfiguras 5.17a y 5.17b puede verse la respuesta del amplificador a un tren deescalones, donde el tiempo de subida medido del amplificador es de 183ns.La figura 5.18a muestra la respuesta transitoria del amplificador diferencialante una entrada formada por dos ondas senoidales de 1MHz de frecuencia ydesfasadas � radianes. Puede verse la pequeña distorsión producida así comoel buen funcionamiento del circuito de modo común que centra las dos señalesde salida. En la figura 5.18b puede verse la característica DC del amplificadordiferencial mientras que en la figura 5.15b se muestra la fotografía de dichocircuito. El ancho de banda medido para el amplificador diferencial tambiénha sido cercano a los 5MHz.

En las figuras 5.20 y 5.21 se muestran algunos de los resultados obtenidoscon el amplificador con divisores capacitivos. En las figuras 5.19a y 5.19b semuestran las fotografías del amplificador unipolar y diferencial utilizados enestas pruebas. En la figura 5.20a se puede ver la característica DC. En elamplificador con divisores capacitivos el rango de entrada obtenido ha sido

Page 129: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 111

( a )

( b )Figura 5.15: (a) Fotografía del montaje unipolar con divisor resistivo, (b) Fo-tografía del montaje diferencial.

Page 130: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

112 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )Figura 5.16: Resultados experimentales para el montaje unipolar con divisorresistivo: (a) Característica DC, (b) Respuesta transitoria cerca del BW.

Page 131: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 113

( a )

( b )Figura 5.17: Resultados experimentales para el montaje unipolar con divi-sor resistivo: (a) Respuesta a un tren de escalones, (b) Detalle del tiempo desubida.

Page 132: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

114 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )Figura 5.18: Resultados experimentales para el montaje diferencial con divi-sor resistivo: (a) Característica DC, (b) Respuesta transitoria.

Page 133: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 115

( a )

( b )

Figura 5.19: (a) Fotografía del montaje unipolar con divisor capacitivo, (b)Fotografía de la versión diferencial.

Page 134: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

116 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )Figura 5.20: Resultados experimentales para el montaje unipolar con divi-sor capacitivo: (a) Característica DC, (b) Respuesta transitoria del esquemaunipolar.

Page 135: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 117

Figura 5.21: Resultados experimentales con el divisor capacitivo: Respuestatransitoria.

prácticamente completo. Además, ha sido el diseño que ha funcionado conmenor tensión de alimentación (Vsup = 1:1V ). En las figuras 5.20b y 5.21 sepueden ver dos respuestas transitorias del divisor capacitivo. El ancho debanda medido ha sido mayor que en el caso del divisor resistivo (5.5MHz)aunque la relación Cm=C = 7 utilizada hace que ese resultado sea lógico.

Conclusiones

Se han presentado las versiones unipolar y diferencial de un amplificador ope-racional capaz de operar con una tensión cercana a la tensión umbral (VT ) deun transistor con un rango casi completo de tensiones a su salida. Este ope-racional es capaz de funcionar en aplicaciones de amplificadores conmutados.Frente a otras realizaciones aparecidas recientemente en la bibliografía pre-senta las siguientes ventajas:

� Simplicidad; pues la versión más reducida sólo requiere 7 transistores ydos fuentes de corriente.

� Buena respuesta en frecuencia (GBW � 40MHz).

� Tamaño reducido (el par diferencial tiene W=L = 40=2 para CL = 1pF ,W=L = 200=2 para CL = 10pF y W=L = 2000=2 para CL = 50pF ). Estapropiedad es muy importante, ya que los tamaños de los transistores delpar diferencial de entrada en otros circuitos publicados con anterioridaderan mucho mayores.

Page 136: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

118 Aportaciones al diseño de circuitos de baja tensión

Además, se han presentado dos técnicas que hacen posible el funcionamientodel amplificador con rango casi completo de tensiones a la entrada. Estos mé-todos deterioran la respuesta en frecuencia del amplificador original, aunqueconsiguen anchos de banda muy superiores a los publicados en la bibliografíapara realizaciones similares. Todos estos resultados han sido posibles gra-cias a la utilización de una batería flotante colocada entre las puertas de lostransistores P y N del inversor de la etapa de salida de forma que ambos tran-sistores funcionen en la zona de saturación. Ésta ha sido la primera aplicaciónde las baterías flotantes; en la siguiente sección se utilizarán para conseguirtambién un rango completo de funcionamiento a la entrada.

5.3.2 Amplificadores inversores con rango completo detensiones en la entrada y en la salida utilizando ba-terías flotantes estáticas

Introducción

Los métodos propuestos anteriormente resuelven el problema de hacer funcio-nar un amplificador con rango completo de tensiones a la entrada. Sin embar-go, la respuesta en frecuencia del amplificador del que se parte es empeorada.Además, se ven empeorados otros factores como el “offset”, se añade ruido yse “carga” a la señal de entrada. Por todo ello nos planteamos el estudio deotras posibilidades para resolver el problema. En [11] se propone un esquemade funcionamiento para circuitos de capacidades conmutadas de baja tensión.Este esquema se basa en el uso de una batería conmutada a la entrada delamplificador operacional. Esto nos sugirió la idea de utilizar las baterías flo-tantes para hacer funcionar los amplificadores operacionales de baja tensiónen tiempo continuo y con rango completo de tensiones a la entrada.

Esquema diseñado para que un amplificador operacional opere conbaja tensión en tiempo continuo

Al igual que en el caso anterior, el esquema que vamos a proponer pretendeutilizar el amplificador operacional de la figura 5.5 de forma que sus termina-les de entrada tengan tensiones cercanas a VSS y el amplificador compuestopor la suma del amplificador original más el esquema propuesto sea capaz detener rango de tensiones completo a la entrada.

El esquema sugerido se muestra en la figura 5.22a. El terminal positivo delamplificador interno se conecta a una tensión de continua V 0

SS = VSS + VREFque tiene un valor muy cercano a VSS porque VREF se elige como una pequeñafracción de la tensión de alimentación VSUP . Por otro lado, una batería flotante

Page 137: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 119

_

+

VbiasR1

R2

VinVout

VSS’

_

+

Ibias

+

RbiasR1

Vin

R2

VoutVbias

_ Ibias

VSS’

_

+ _

+

Rbias

IbiasR1

R2

R2R1

Vin+

Vin-

Ibias

Vout+

Vout-

( a )

( b )

( c )Figura 5.22: Esquema con batería para funcionar con baja tensión: (a) Esque-ma básico, (b) Realización con fuentes de corriente y resistencia, c) Esquemadiferencial.

Page 138: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

120 Aportaciones al diseño de circuitos de baja tensión

de valor Vbias = �VREF � VSS está conectada en serie con el terminal negativodel amplificador original. Con todo ello, la tensión en el terminal positivo dela batería es Vx = 0.

En la figura 5.22b se muestra la realización de la batería flotante utilizandouna resistencia y dos fuentes de corriente pareadas Ibias. Con estos elementosse provoca una caída de tensión en la resistencia R de valor Vbias = IbiasR. Enesa figura se muestra la realización de baja tensión de un amplificador inver-sor de ganancia G = �R2=R1. La figura 5.22c muestra la versión diferencialutilizando el amplificador. La tensión necesaria para que estos esquemas fun-cionen es igual que en el caso del divisor capacitivo y el divisor resistivo sielegimos el mismo valor de VREF para todos los casos.

Realización práctica de la batería flotante

La clave para la realización de la batería Vbias es la generación de una caída detensión en la resistencia que no dependa de los parámetros y variaciones de latecnología y que satisfaga la relación Vbias = �VREF � VSS. Para incrementaral máximo el rango de tensiones, debemos hacer que VREF sea tan pequeñacomo sea posible. En la práctica, VREF no puede anularse porque es necesarioque tenga, como mínimo, el valor VOV , de forma que la fuente de corrienteconectada a VSS tenga rango suficiente de tensión para funcionar (suponemosque dicha fuente se realiza electrónicamente con un transistor trabajando enla región de saturación). Las fuentes de corriente Ibias deben estar muy bienpareadas ya que cualquier desapareamiento �Ibias aparece como una tensiónde offset Voff = R�Ibias.

Esto nos hace pensar que es necesario generar los valores Vbias y VREF de unamanera muy exacta utilizando, además, técnicas de baja tensión. Para es-ta misión hemos diseñado el circuito de réplica de la figura 5.23, que fun-ciona como sigue: Una tensión de referencia VREF es generada a través deun divisor de tensión. Supondremos VSUP = 1:2V para nuestro ejemplo yVREF = VSUP=10 = 0:12V y V 0

SS = VREF + VSS = �0:48V . Un amplificador (M1 yM1P) es utilizado para comparar V 0

SS con Vz. Dicho amplificador produce unatensión de control Vcnt que hace que la caída de tensión (Vz) en la resistenciapareada con las del divisor de tensión y conectada en serie con MIT, sea igual aVref . La corriente generada en el transistor MIT es copiada en los transistoresMIT 0 y MIT 00, y también es copiada cerca del rail negativo de alimentación através del espejo de baja tensión [75] formado por Mb, MIB y MIB0. Con estasfuentes de corriente pareadas es posible introducir y extraer la corriente Ibiasde la resistencia Rbias = 4R. Además, se han utilizado otras dos resistenciasdel mismo valor (4R) para hacer que la VDS en todos los espejos sea la mismay así mejorar la copia de corrientes sin tener que recurrir a “técnicas cascodo”.

Page 139: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 121

Ib /2

Vcnt

Rbias=4R

Ibias

Rbias

Copia de corriente

Ib

R

VSS

R

R

Mb

MIT IT

M

SS

+

_

Ib’MIT

R

R+

_

_

+

M 1P

Vc

Vin

Vout

R1

R2

+

_Vsup/2

Vz

+

_Vsup/2

Vx

V bias

VbiasIbias

Ib ias

B_

+V ref

Vx’

1 M

’ ’

’’

’BIMI

V

M ’

4

5

4

Generación de Ibias

Figura 5.23: (a) Realización de una batería flotante, (b) Amplificador de bajatensión y clase AB.

Con este método hemos conseguido generar una buena batería flotante devalor Vbias utilizando técnicas de réplica de la polarización. Este circuito (se-parado por una línea discontinua en la figura 5.23a) no es necesario realizarlopara cada transistor, sino que en un integrado con varios amplificadores sólohay que realizarlo una vez para generar las referencias para todos los am-plificadores. Por último, hay que indicar que la resistencia Rbias introduceuna constante de tiempo que puede estropear la respuesta en frecuencia delamplificador original, lo cual puede ser evitado en parte si colocamos un con-densador de desacoplo Cbp en paralelo con Rbias. Además, hemos de indicarque este esquema no carga la fuente de señal porque, en teoría, la única co-rriente que circula por la batería viene de las fuentes pareadas Ibias.

Resultados de simulación

Los circuitos de la figura 5.22b y 5.22c han sido verificados mediante la simu-lación del diseño a nivel de máscaras generado en CADENCE DFWII utilizan-do los ficheros de tecnología de AMS-CXQ-0.8�m (cuyos transistores tienenVT � 0:85V ). Los valores más significativos del diseño se muestran en la tabla5.3 .El amplificador operacional unipolar utilizado es el mostrado en la figura5.5, mientras que el amplificador diferencial es el mismo que se empleó parala realización del divisor resistivo, con el circuito de modo común con resisten-cias. De esta forma se simplifica el montaje diferencial con baterías, aunquetambién es posible realizar el amplificador de modo común con baterías.

Page 140: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

122 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )

( c )

Figura 5.24: Resultados de simulación del esquema con baterías: (a) Caracte-rística DC (b) Respuesta transitoria (c) Respuesta en frecuencia

Page 141: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 123

Par Diferencial W=L = 250=2 *Tran. salida tipo P W=L = 450=2Tran. salida tipo N W=L = 150=2

CC 0.3pFRC 10K

Espejos tipo N W=L = 150=2Espejos tipo P W=L = 300=2

Ibdp 50�AIbinv 2.5�A

Par Diferencial Batería W=L = 100=1:6Espejos N Batería W=L = 60=1:6Espejos P Batería W=L = 120=1:6

Rbias 48KVbias 480mV

Carga de salida CL = 10pF(*) Los tamaños W/L vienen dados en �m

Tabla 5.3: Valores utilizados para el diseño del amplificador operacional.

Figura 5.25: Respuesta transitoria del montaje diferencial

Page 142: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

124 Aportaciones al diseño de circuitos de baja tensión

En la figura 5.24a se muestra la característica DC del amplificador unipolarcon batería a la entrada y configuración con ganancia unidad. El rango deseñal obtenido a la entrada es de 1V. El ancho de banda obtenido puede verseen la figura 5.24c y es de BW=10.4MHz. Como se puede observar, el esquemacon batería mejora el ancho de banda comparado con los esquemas con divi-sores capacitivos o resistivos. Además, en las figuras 5.24b y 5.25 es posiblecomprobar los resultados de la simulación transitoria de los esquemas unipo-lar y diferencial, ambos con tiempos de subida cercanos a 100ns.

Resultados experimentales

Una vez verificado el esquema en simulación, se montó una placa de pruebasde la misma forma que en el caso del divisor capacitivo o resistivo. La tensiónde alimentación utilizada fue de Vsup = 3V ya que los transistores utilizados(CD4007) tienen una tensión umbral VT = 2:3V . El rango de señal de entra-da obtenido fue de 2.2V, el cual es satisfactorio teniendo en cuenta que lostransistores utilizados tenían tamaño único. El ancho de banda conseguidofue de 450kHz, de nuevo superior a los montajes con divisores resistivos ocapacitivos. En la figura 5.26 se muestra la característica DC y la respuestatransitoria para una carga de 60pF.

Los resultados logrados nos animaron a integrar esta solución en espera deun mayor ancho de banda. En las figuras 5.27, 5.28 y 5.29 se muestran los re-sultados obtenidos con el circuito integrado. El diseño fue escalado para unacarga de 50pF de forma que fuese sencillo extraer señales del integrado. Esteescalado disminuye el ancho de banda en simulación, ya que las capacidadesparásitas del amplificador original aumentan, y, en consecuencia, disminuyesu GBW. En las figuras 5.27a y 5.27b se muestran las fotografías del ampli-ficador unipolar y diferencial con batería. Puede observarse el poco tamañoque tienen los transistores del circuito de la batería (a la izquierda) frente alos del amplificador. En la figura 5.28a puede verse la respuesta transitoriadel amplificador sencillo configurado como inversor de ganancia unidad anteuna entrada senoidal de 2.5MHz. Se aprecia que la respuesta es buena enamplitud aunque el retraso comienza a ser importante. Esto es debido a quela carga de salida con la que fue probado era de unos 80pF, superior a los 50pFpara los que fue diseñado. En la figura 5.28b se observa que el tiempo de subi-da del montaje unipolar con una carga de 80pF es cercano a los 140ns, lo cualmejora a los esquemas con divisor capacitivo y resistivo, aunque es peor de loesperado (100ns en simulación). Por último, en la figura 5.29a se muestra larespuesta transitoria del montaje diferencial ante una entrada de 2MHz y en5.29b se muestra la característica DC medida.

Page 143: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 125

( b )

( a )

Figura 5.26: Resultados con placa de pruebas del esquema con baterías: (a)Característica DC (b) Respuesta transitoria

Page 144: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

126 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )

Figura 5.27: (a) Fotografía del amplificador unipolar con batería, (b) Fotogra-fía del montaje diferencial con baterías.

Page 145: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 127

( a )

( b )Figura 5.28: Resultados del amplificador operacional en montaje unipolar conbatería: (a) Tiempo de subida, (b) Respuesta transitoria.

Page 146: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

128 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )Figura 5.29: Resultados del amplificador operacional en montaje diferencialcon batería: (a) Respuesta transitoria, (b) Característica DC.

Page 147: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 129

Conclusiones

Se ha presentado los esquemas de dos amplificadores (unipolar y diferencial)que son capaces de funcionar con una tensión de alimentación cercana a latensión umbral de los transistores de la tecnología (Vsup = 1:2V y VT = 0:85V )y con rango de tensiones a la entrada y a la salida casi completos. La comple-jidad del esquema ha aumentado con respecto a los dos esquemas propuestoscon anterioridad, aunque los resultados obtenidos mejoran sus prestaciones.

5.3.3 Amplificadores inversores con rango completo detensiones en la entrada y en la salida utilizando ba-terías flotantes dinámicas

+_

R

-

+VrefOA

VB

Vout

IB IB

( b )

Vref

Vs’VB

-

+

OA Vout

( a )

Vs’VB

-

+

OA VoutVs’

VB

( c )Figura 5.30: Amplificador con ganancia unidad con baterías dinámicas: (a)Esquema básico, (b) Realización electrónica utilizando fuentes de corriente yresistencias, (c) Esquema con mayor rango de entrada.

Page 148: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

130 Aportaciones al diseño de circuitos de baja tensión

AF

B

R

-

+

OA

VrefVout

E

G*IB

(G-1)*IbqG*IB

(G-1)*Ibq

( c )

C

B

+

-

A

B Vcn

DA

Vs’

VrefIB

IBR

A

( b )

R

-

+

B

OA

VrefVout

IB

IBA

( a )

Figura 5.31: a) Amplificador con ganancia unidad empleando baterías dinámi-cas, (b) Detalle de la circuitería de control de la batería dinámica, (c) Montajecon ganancia G.

Page 149: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 131

Las baterías flotantes dinámicas pueden utilizarse de forma similar a las es-táticas [80] para hacer funcionar al amplificador operacional con rango com-pleto de tensiones a la entrada. El esquema propuesto se muestra en la figura5.30a. Suponemos que la señal de entrada se puede definir como V 0

S = Vcm+Vs,donde Vcm es la componente de modo común y Vs es la componente de señal.Al igual que en el esquema con batería estática, el terminal positivo del am-plificador original está conectado a la tensión VREF . Por otro lado, una bateríadinámica de valor VB = V 0

S � VREF está conectada entre el terminal negativo yla salida del operacional. Como en el caso de la batería estática, VREF repre-senta una pequeña fracción de la tensión de alimentación VSUP . Como ya sediscutió en el apartado anterior, VREF debe ser pequeño para permitir que elamplificador operacional pueda funcionar con baja tensión de alimentación.También deber tener un valor lo suficientemente grande como para dejar fun-cionar a la fuente de corriente conectada a VSS como un transistor en la regiónde saturación. Por todo ello elegimos VREF = VOV .

Un análisis simple nos muestra el correcto funcionamiento del esquema. Alestar realimentado negativamente el sistema, el operacional tenderá a tenerpróximas las tensiones en sus terminales: Vi� = Vi+ = VREF . Con ello, la ten-sión de salida viene dada por VOUT = Vi� + VB = VREF + V 0

S � VREF = V 0

S, porlo que la salida sigue a la tensión de la señal de entrada. Además, como losterminales del amplificador permanecen con el valor VREF , el funcionamientodel operacional con baja tensión de alimentación es posible.

En la figura 5.30b se muestra la realización de la batería dinámica utilizandouna resistencia de valor R y dos fuentes de corriente pareadas de valor IB,que provocan una caída de tensión Vbias = RIB. En la figura 5.31a se presentala realización del circuito de control que genera la caída de tensión de maneraque VB = V 0

S � VREF . El circuito utiliza un amplificador (DA) que comparala tensión en un extremo de la batería dinámica (nodo C)con el valor VREF ygenera la tensión del nodo A de forma que esas dos tensiones se igualen. Pa-ra replicar la corriente generada a partir de la tensión del nodo A se utilizantécnicas de copia de baja tensión de forma que la copia sea lo mejor posible, locual es crítico para este tipo de esquemas. Hay que hacer notar que al estarlos terminales del amplificador de control (DA) cerca de la tensión VSS, dichoamplificador es realizable con técnicas de baja tensión similares a las expues-tas con anterioridad.

Resultados de Simulación

En la figura 5.32 se presentan los resultados de simulación (característica DC,respuesta transitoria y respuesta en frecuencia) del esquema propuesto. Pue-de apreciarse que el ancho de banda es similar al del esquema de la batería

Page 150: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

132 Aportaciones al diseño de circuitos de baja tensión

( a )

( b )

( c )

Figura 5.32: Resultados de simulación del esquema con baterías dinámicas:(a) Característica DC, (b) Respuesta transitoria, (c) Respuesta en frecuencia.

Page 151: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 133

estática y que el rango de valores a la entrada es algo menor. Este rangopuede mejorarse si se añade otra batería dinámica conectada al terminal po-sitivo (figura 5.30c), si bien, para una tensión de entrada por debajo de VREF ,los transistores de las fuentes de corriente conectados a VSS funcionarán enla zona lineal y no en saturación. Esto hace que en esa zona la respuesta enfrecuencia del circuito cambie. El ancho de banda obtenido está próximo alos 12MHz, que es muy alto (El amplificador utilizado fue diseñado para unacarga de 5pF, por lo que los tamaños de los transistores fueron algo menoresque los presentados anteriormente para 10pF).

Esta técnica mejora a la de la batería estática porque es mucho más sim-ple, requiere menos circuitería y no es tan sensible a las variaciones de losparámetros de la tecnología. Además, esta técnica es una aportación muyimportante debido a que introduce un nuevo concepto de realización de ampli-ficadores operacionales de baja tensión. Este concepto consiste en conectar laseñal a la rama de realimentación, es decir, a la salida del amplificador opera-cional. Esta técnica es aplicable a otros circuitos donde se necesite transferirla tensión de un nodo a otro sin que sea necesaria la circulación de corriente.De esta forma se abre un nuevo camino al diseño de circuitos de baja tensión.

Realización de amplificadores de ganancia G basados en la técnicade la batería dinámica.

Para realizar amplificadores con ganancia G es necesario extender el conceptode batería dinámica. Teniendo en cuenta la definición de señal de entrada quehemos utilizado (V 0

S = Vcm + Vs) y el valor de tensión que queremos tener a lasalida del amplificador (Vout = GVs + Vcm), se puede demostrar que el valor dela batería dinámica debe ser Vbat = GVB � (G � 1)V Q

B , donde VB = V 0

S � Vref yV QB = Vcm� Vref (V Q

B representa el valor de la batería en condiciones estáticas,Vs = 0). La figura 5.31c muestra la realización electrónica de este esquemautilizando fuentes de corriente pareadas. Los factores G y G � 1 pueden serrealizados mediante el correcto escalado de los espejos de corriente. Para com-pletar este diseño sería necesario un segundo amplificador DA2 que generasela corriente IQB , que se corresponde con la caída de tensión VQ

B , comparandocon el valor Vcm, de la misma forma que se generaba antes IB.

Por último, decir que el esquema propuesto también se puede extender parael caso de amplificadores diferenciales, al igual que el resto de esquemas pro-puestos.

Page 152: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

134 Aportaciones al diseño de circuitos de baja tensión

5.3.4 Transconductores de baja tensión de alimentación

Introducción

En este apartado presentamos otra posibilidad para la realización de circuitosde baja tensión utilizando baterías flotantes. El circuito que aquí se presentaes un amplificador de transconductancia que es capaz de reducir su tensiónde operación gracias al uso de una batería flotante. Está basado en el cir-cuito propuesto por Nauta [71], que tiene un gran ancho de banda debido ala ausencia de nodos internos. Siguiendo los sentidos definidos en la figura5.33a, y suponiendo que todos los transistores están funcionando en la regiónde saturación, la corriente diferencial Iod viene dada por:

Iod = Io1 � Io2 = (Vdd � Vtn + Vtp)q�n�p Vid = gmd Vid (5.9)

Se puede demostrar que los amplificadores de transconductancia 3–6 formanun camino de baja impedancia para las señales de modo común y un caminode alta impedancia para las señales diferenciales.

Sin embargo, este circuito tiene algunos inconvenientes, de entre los cualesdestaca el hecho de que para ajustar la ganancia sea necesario variar la ten-sión de alimentación. Esto implica la existencia de una fuente de tensiónvariable que hace que este circuito no pueda ser utilizado en aplicaciones debaja tensión.

Lee y Pan [59] modificaron este circuito de forma que la transconductanciadiferencial pudiera ser ajustada mediante la tensión de modo común, y de-mostraron su funcionamiento con simulaciones en las que la tensión de ali-mentación era de 3V. En este apartado presentamos un circuito basado en laestructura propuesta por Nauta y que es capaz de operar con baja tensión.El circuito tiene ajustable la transconductancia diferencial y la resistencia desalida y es capaz de funcionar a altas frecuencias.

Esquema de la batería flotante

La figura 5.33b muestra el principio básico de funcionamiento que hace po-sible tener etapas de salida clase AB. Este principio ya fue utilizado pararealizar la etapa de salida para los amplificadores operacionales presentadosanteriormente [79]. Ahora la batería Vbias la implementaremos según el es-quema mostrado en la figura 5.33c, utilizando dos resistencias (Rbias) y lasfuentes de corriente (Ibias) pareadas. El nuevo amplificador de transconduc-tancia se obtiene reemplazando el inversor de salida de la figura 5.33a por elcircuito de la figura 5.33c.

Con este circuito la corriente diferencial viene dada por:

Page 153: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 135

Vdd

Io1

a)

Vdd Vdd Vdd

Io2

Inv2

Inv1

Vdd

Vdd

Vc-1/2Vid

Vc+1/2Vid

Inv3 Inv5 Inv6Inv4

RL

A M1

c) d)b)

M2

Vbias

Vbias

Vdd Vdd Vdd

Rbias

Ibias

Ibias

Rbias Rbias

Ibias

Rbias

Ibias

Figura 5.33: a) Amplificador de transconductancia [71], b) Amplificador detransconductancia propuesto, c) Realización de la batería flotante d) Realiza-ción de baja tensión.

Page 154: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

136 Aportaciones al diseño de circuitos de baja tensión

Iod = Io1 � Io2 = (Vdd + 2Vbias � Vtn + Vtp)q�n�b Vid = gmd Vid (5.10)

donde Vbias = Ibias Rbias es la tensión de la batería flotante. Si comparamoslas ecuaciones 5.9 y 5.10 puede verse que en la última el término ajustable2Vbias se añade a la tensión de alimentación. Esto permite que el valor de latransconductancia pueda ser ajustado con tensión de alimentación constante.Además, otra ventaja del esquema de ajuste propuesto es que gmd es lineal-mente dependiente de Ibias, lo cual es muy deseable para tener fácil ajuste yabre la posibilidad de utilizar este circuito para implementar multiplicadoresanalógicos.

Las fuentes de corriente de los inversores Inv4 e Inv6 pueden ser ajustadasindependientemente de forma que se pueda modificar el factor de calidad enaplicaciones de filtro “GM-C”. Sin embargo, esta realización introduce nodosinternos, que pueden degradar la respuesta en frecuencia del esquema com-parado con el circuito original. Si suponemos que los transistores P y N es-tán escalados de manera que puedan dar la misma corriente, la respuestaen frecuencia viene dada por el polo interno pint introducido en el nodo A,!p '

1CgRbias=2

, donde Cg es la capacidad parásita del transistor M1. Existendos posibilidades para reducir los efectos de este polo:

� Utilización de un valor pequeño de Rbias de modo que !p sea un polo demuy alta frecuencia.

� Introducción de un cero de compensación !z conectando una capacidaden paralelo con Rbias.

En el primer caso, se deben utilizar grandes valores de Ibias para obtener elvalor de Vbias deseado, lo que incrementa el consumo estático de potencia yobliga a utilizar transistores con elevada W=L para poder trabajar con muybaja tensión de alimentación. En el segundo, la cancelación polo-cero puedeser conseguida en primera aproximación pero el área de silicio aumenta bas-tante debido a la capacidad, la cual, además, introduce capacidades parásitasa substrato que mueven el polo interno a frecuencias más bajas . Sin embargo,existen valores de corrientes de polarización y capacidades de compensaciónque permiten el funcionamiento a altas frecuencias, sobre todo con tensionesde alimentación no excesivamente bajas (Vsup > 1:8V ).

Una versión de baja tensión de alimentación puede observarse en la figura5.33d. En este circuito la conexión cruzada de las puertas de los transisto-res es equivalente a un batería flotante de polaridad negativa que permite elfuncionamiento del amplificador de transconductancia con una tensión de ali-mentación cercana a la tensión umbral de un transistor. Se puede comprobarque la tensión puerta-fuente en condiciones estáticas viene dada por:

Page 155: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 137

V Qgsn =

Vdd + 2Vbias + Vtnq�n=�p � jVtpj

1 +q�n=�p

(5.11)

Suponiendo �n ' �p y Vtn ' jVtpj por simplicidad, esta expresión se reduce a:

V Qgsn ' Vdd=2 + Vbias ' V Q

sgp (5.12)

Por ejemplo, si Vdd = 1:2V y Vbias = 0:3V , entonces V Qgsn = 0:9V . En la práctica,

Vbias puede ser modificada para valores en el rango desde 0 hasta Vdd=2� Vov,donde Vov es la caída de tensión mínima en una fuente de corriente que per-mite realizarla con transistores funcionando en la región de saturación. Ennuestro caso, Vov puede ser tan pequeña como Vov = 0:15V .

Para aplicaciones GM-C es necesario tener una elevada resistencia de entradaen este tipo de transconductores, por lo que la estructura propuesta no es lamas idónea. Para este caso es recomendable realizar las fuentes de corrienteutilizando espejos cascodo, lo cual hace que sean necesarias dos tensiones Vovadicionales en el camino entre VSS y VDD. Por ello, en este caso, la tensióndel transconductor de 1.2V debe ser elevada hasta 1.5V como mínimo parapoder funcionar, ya que Vov es una pequeña fracción de VDD � VSS. Con estamodificación, la resistencia de entrada puede hacerse arbitrariamente grandeactuando sobre los transistores de la red de modo común.

Resultados de simulación

En esta sección son presentados los resultados obtenidos de la simulación deldiseño a nivel de máscaras generados para la tecnología AMS-CXQ. Todos losinversores y sus fuentes de corriente tienen la misma W=L = 1:6=1 para lostransistores N y W=L = 5=1 para los P, teniendo la batería Rbias = 22K.

La figura 5.34 muestra la característica DC (Iod frente Vid) para Vsup = 2:5V eIbias en el rango de 0 a 10�A. El amplificador de transconductancia tiene unacarga de RL = 2K. La transconductancia (curvas en �A=V ) están superpues-tas en la figura. En ella se puede observar la gran linealidad y ajustabilidaddel transconductor en el rango (-0:5V ,0:5V ). Para este diseño se utilizó com-pensación polo-cero con Cc = 0:6pF en paralelo con Rbias. El ancho de bandaobtenido por simulación fue de 273 MHz. La respuesta transitoria con unaentrada senoidal de 27MHz y 300mV de amplitud fue simulada obteniéndoseuna distorsión armónica total de THD = 0:79%.

La figura 5.35 muestra los resultados obtenidos con la versión de baja tensiónde la batería flotante y Vdd = 1:2V . Se utilizó W=L = 1:6=1 para los transistoresN, W=L = 5=1 para los transistores P Rbias = 3K y RL = 2K. La fuente Ibias

Page 156: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

138 Aportaciones al diseño de circuitos de baja tensión

Gm

(lin

)

Cur

rent

s (li

n)

-20u

-10u

0

10u

20u

22u

26u

30u

34u

38u

42u

46u

50u

54u

100m 500m-500m -300m -100m 0

Voltage X (lin) (VOLTS)

300m

Figura 5.34: Transconductor con inversores de la figura 5.33c y Vdd = 2:5V .

Page 157: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

5.3 Aplicación de las baterías flotantes al diseño de baja tensión 139

Gm

(lin

)

Cur

rent

s (li

n)

100m0 200m

8u

9u

-100m-200m

12u

13u

11u

Voltage X (lin) (VOLTS)

2u

1u

0

-1u

-2u

10u

Figura 5.35: Transconductor con inversores de la figura 5.33d y Vdd = 1:2V .

Page 158: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

140 Aportaciones al diseño de circuitos de baja tensión

toma valores en el rango de 20 a 80�A. La corriente estática es 180�A paraIbias = 20�A. En este caso, la capacidad parásita del diseño a nivel de másca-ras fue suficiente para llegar a un ancho de banda de 1.5GHz sin necesidad decapacidad de compensación. La distorsión armónica obtenida por simulaciónpara una entrada de 150MHz y 200mV fue del 13%.

Como puede observarse, el diseño funciona con tensión de alimentación pe-queña y constante, y posee un ancho de banda bastante grande. Además, laajustabilidad que se consigue gracias al uso de baterías flotantes es grande.Actualmente se está construyendo un filtro GM-C utilizando estos transcon-ductores para probar su utilidad.

Page 159: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Capítulo 6

Conclusiones y Líneas Futuras

Índice General

6.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

6.2 Líneas futuras de investigación . . . . . . . . . . . . . . . . 145

Page 160: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

142 Conclusiones y Líneas Futuras

Page 161: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

6.1 Conclusiones 143

6.1 Conclusiones

En esta Tesis Doctoral se ha estudiado la automatización del diseño de contro-ladores borrosos digitales y analógicos. Se ha propuesto un método de auto-matización de controladores borrosos digitales basado en la optimización de laarquitectura según los requerimientos del usuario. De esta forma se añade lacantidad de puertas digitales necesarias para satisfacer las especificacionesde velocidad.

Este método ha sido utilizado con éxito en dos proyectos industriales (ca-pítulo 3 de esta Tesis Doctoral) verificándose su utilidad y correcto funciona-miento. Además, el objeto de esta Tesis Doctoral se incluye dentro del proyectoSistema de síntesis automática de sistemas analógicos y mixtos, pro-yecto subvencionado por la Comisión Interministerial de Ciencia y Tecnología(CICYT), TIC96–0860.

También se han estudiado diferentes posibilidades para la realización de con-troladores borrosos analógicos. De este estudio han surgido varias aportacio-nes, de entre las que destacan las siguientes:

� Una propuesta para la automatización de los controladores borrosos ana-lógicos basada en la utilización de una estructura modular [23].

� Un generador de funciones de pertenencia con todos sus parámetros(pendiente y posición) programables independientemente, como se mues-tra en el capítulo 4 de esta tesis. Una de sus propiedades más importantees que sus parámetros no dependen de la tensión umbral de los transis-tores, con lo que la linealidad que se consigue es mayor, al no dependerdel punto de funcionamiento.

� Un método original para reducir el consumo de los controladores borro-sos basado en que éstos pueden utilizar circuitos competidores para rea-lizar el proceso de inferencia. De esta forma, se puede reducir el consu-mo apagando todas las partes del ASIC que hayan “perdido” durante elproceso de inferencia.

� Un circuito original para realizar la operación máximo y mínimo. Laspropiedades fundamentales de este circuito son su gran velocidad derespuesta, su exactitud y que su complejidad crece linealmente con elnúmero de entradas (O(n)).

Por último, se han propuesto varios circuitos de muy baja tensión de alimen-tación para procesamiento de la señal. La mayoría de estos circuitos están

Page 162: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

144 Conclusiones y Líneas Futuras

basados en el uso de baterías estáticas o dinámicas para conseguir desplazarlos niveles de tensión continua de los nodos del circuito de forma que puedanfuncionar con una tensión de alimentación cercana a la tensión umbral de untransistor. Esta restricción es muy importante, ya que una condición básica ala hora de diseñar estos circuitos ha sido que todos los transistores funcionenen la zona de saturación. Las aportaciones más importantes realizadas eneste campo son las siguientes:

� Un amplificador operacional de dos etapas clase-AB con rango completode tensiones a la salida. Este amplificador operacional está alimentadoa 1.2V, siendo la tensión umbral de los transistores 0.85V. El productoganancia-ancho de banda obtenido es mayor de 30MHz y la gananciaen bucle abierto es de 62dB. Este amplificador operacional es único enla bibliografía por su ancho de banda, ganancia y reducida tensión dealimentación. Además, se ha propuesto un método para controlar la co-rriente en la etapa de salida. El único problema de este amplificador esel rango de tensiones a la entrada, lo cual se resuelve con otras aporta-ciones de esta tesis.

� Dos métodos basados en divisores resistivos y capacitivos que consiguenque el rango de tensiones a la entrada del amplificador anterior sea com-pleto, si bien, el ancho de banda del amplificador se ve reducido hastaunos 5MHz. Además, este método resuelve el problema del control dela tensión de modo común del amplificador diferencial realizado a par-tir del amplificador original. Los amplificadores resultantes de utilizaréste método también son únicos en prestaciones con respecto a los pu-blicados en la bibliografía. La mayor limitación de estos métodos es ladegradación de la respuesta en frecuencia respecto a la del amplificadororiginal y la disminución de la relación señal-ruido en el caso del uso deresistencias.

� Un método basado en la utilización de baterías flotantes estáticas colo-cadas a la entrada del amplificador operacional original de forma quese pueda tener rango completo de tensiones a la entrada. En este caso,el ancho de banda del amplificador original no se reduce tanto como enel caso de los divisores resistivos o capacitivos, por lo que los resultadosobtenidos mejoran el primer método propuesto.

� Un método basado en la utilización de baterías flotantes dinámicas co-locadas en el bucle de realimentación del amplificador. Los resultadosobtenidos son similares a los obtenidos en el caso de las baterías está-ticas, si bien en este caso la aportación es muy importante ya que estaforma de introducir la señal en un amplificador operacional de baja ten-sión abre nuevas posibilidades para realizar circuitos de baja tensión.

Page 163: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

6.2 Líneas futuras de investigación 145

� Un amplificador de transconductancia de baja tensión basado en una re-alización anterior propuesta por Nauta. En nuestra realización el anchode banda es menor que el obtenido por Nauta, si bien el circuito pro-puesto es capaz de operar con una tensión de alimentación muy baja yes posible variar la transconductancia sin variar la tensión de alimenta-ción.

El trabajo desarrollado en esta tesis ha dado lugar a las siguientes publica-ciones:

� Una publicación en la revista IEE Electronics Letters.

� Una publicación en la revista IEEE Micro.

� Una participación en libro publicado por la editorial Springer Verlag.

� Diez publicaciones en congresos internacionales (seis de ellas en el IS-CAS).

� Seis publicaciones en congresos nacionales.

6.2 Líneas futuras de investigación

En esta tesis se ha investigado el diseño de controladores borrosos así comoel de circuitos analógicos de baja tensión para el procesamiento de señal. Losresultados obtenidos han sido excelentes y han mostrado varias líneas de tra-bajo futuro muy interesantes, que podrían ser el objeto de nuevos proyectosde investigación. De entre todas ellas destacamos las siguientes:

1. Controladores Borrosos:

� Ampliar AFAN a otras celdas que presenten las mismas caracterís-ticas que los controladores borrosos.

� Buscar una celda para realizar la desborrosificación que aumentela velocidad del controlador borroso analógico.

� Buscar otras alternativas a la automatización de los controladoresborrosos, como son los sistemas reconfigurables. En este campo yase ha comenzado a trabajar, como se muestra en [63].

� Realización de controladores borrosos de baja tensión aprovechandolas celdas diseñadas en el capítulo 5 de esta tesis.

2. Diseño analógico de muy baja tensión:

Page 164: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

146 Conclusiones y Líneas Futuras

� Caracterizar el comportamiento de todas las celdas analógicas pro-puestas para la realización de circuitos de baja tensión. De estaforma podremos saber qué método utilizar en cada aplicación, yaque no todas poseen las mismas características en términos de con-sumo, linealidad, ancho de banda, offset, ruido, rechazo al ruido enla alimentación, etc.

� Diseñar sistemas (convertidores A/D, filtros, etc) con las celdas ana-lógicas propuestas. De esta forma se cerrará el camino abierto conel diseño de circuitos de baja tensión, cuyo objetivo principal erael diseño de sistemas analógicos capaces de funcionar a la mismatensión que los digitales.

� Investigar la realización de otras celdas analógicas que son nece-sarias para diseñar sistemas analógicos de baja tensión. De entrelas celdas que no existen destaca el interruptor analógico de bajatensión CMOS.

Page 165: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Apéndice A

Introducción a los sistemasbasados en Lógica Borrosa

Índice General

A.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

A.2 Estructura de un sistema basado en lógica borrosa . . . 150

A.3 Borrosificador . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

A.4 Base de Conocimientos . . . . . . . . . . . . . . . . . . . . . 153

A.5 Inferencia Borrosa . . . . . . . . . . . . . . . . . . . . . . . . 154

A.6 Desborrosificador . . . . . . . . . . . . . . . . . . . . . . . . . 156

Page 166: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

148 Introducción a los sistemas basados en Lógica Borrosa

Page 167: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A.1 Introducción 149

A.1 Introducción

En este apéndice se realiza una breve descripción de la matemática asociadaa los sistemas basados en lógica borrosa. Estos sistemas han despertado ungran interés en los últimos años, principalmente en aplicaciones de tipo con-trol no–lineal. Sin llegar a los extremos de Japón, en el que prácticamentetodas las grandes empresas introducen en sus productos sistemas de controlbasados en lógica borrosa, este interés ha llegado también a los Estados Uni-dos y Europa.

Son muchas las razones que justifican este interés. Los sistemas de controlbasados en lógica borrosa son fáciles de diseñar y su estructura de reglas re-cuerdan de alguna manera al razonamiento humano. Por otra parte, han de-mostrado ser sistemas muy robustos cuando están adecuadamente diseñadosy permiten tratar de una manera natural la ambigúedad existente en ciertotipo de información.

En la teoría clásica, la pertenencia a un conjunto A de un elemento x se definecomo cierta o falsa, el elemento pertenece (1) o no (0) al conjunto. En la teoríade conjuntos borrosos esta pertenencia se define con el denominado grado depertenencia del elemento x al conjunto borroso A, �A(x), que puede tomar infi-nitos valores en el rango [0; 1]. Cada elemento perteneciente a un determinadodominio @ se define por los grados de pertenencia a los n conjuntos borrososque se describen en dicho dominio, [�A1(x); : : : ; �An(x)].

De forma análoga a como se desarrolla la teoría clásica de conjuntos, con gra-do de pertenencia lógico o bivalente, se desarrolla la teoría de los conjuntosborrosos, empleando un grado de pertenencia continuo y definiendo los ope-radores intersección y unión de conjunto borrosos, como se hacía en la teoríaclásica, así como las propiedades de conmutatividad, asociatividad, transitivi-dad y existencia del elemento neutro y de la unidad, asociadas a las relacionesentre los conjuntos.

Los sistemas de lógica borrosa se basan en la aplicación de las técnicas derazonamiento aproximado, similares a las aplicadas por el ser humano en lavida cotidiana. El sistema evalúa el grado de verdad de una determinada pre-misa, formulada a partir de las variables de estado de un sistema, para inferirel grado de verdad de la conclusión. Este procesamiento se reduce, desde unpunto de vista formal, a la aplicación de sentencias de la forma Si�Entonces,que se denominan reglas borrosas, R(j), ecuación A.1.

R(j) � Si (x1 es Aj;x1) y : : : y (xn es Aj;xn) entonces

Page 168: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

150 Introducción a los sistemas basados en Lógica Borrosa

(u1 es Bj;u1) y : : : y (um es Bj;um) (A.1)

Donde a Aj;xi se le denomina conjunto borroso antecedente asociado a la va-riable lingüística de entrada xi y a la regla R(j), a Bj;uk, conjunto borroso con-secuente asociado a la variable lingüística de salida uk y a la regla R(j). Unavariable lingüística se define como una variable capaz de tomar como valorespalabras o sentencias del lenguaje natural. El operador lógico y conecta, enuna única proposición compuesta inferida por consecuente, las proposicionesantecedentes primitivas. El sistema borroso combina, para cada consecuentede salida, los conjuntos borrosos inferidos generando un único conjunto bo-rroso compuesto de salida asignado al consecuente. Un conjunto de reglasconstituye lo que se denomina base de conocimientos, el núcleo del sistemaborroso.

Las variables empleadas por los sistemas borrosos son variables de tipo im-preciso, lingüístico. Los sistemas reales, sin embargo, manejan valores esca-lares, valores que, para ser manejados por el sistema borroso, hay que borro-sificar o convertir a valor lingüístico. Una vez calculado el valor lingüístico desalida, para generar un valor que entienda el sistema real, habrá que desbo-rrosificarlo o convertirlo a escalar.

A.2 Estructura de un sistema basado en lógicaborrosa

En la figura A.1 se muestra la configuración básica de un sistema borroso quecomprende, según lo comentado previamente, cuatro bloques fundamentales:

1. El borrosificador.

2. La base de conocimientos.

3. El dispositivo de inferencia borrosa.

4. Finalmente el desborrosificador.

Se describen, en este apéndice, cada uno de los elementos que constituyen elsistema borroso.

A.3 Borrosificador

El borrosificador es el proceso que convierte una entrada escalar, pertenecien-te a un determinado dominio de entrada al sistema borroso, en una variablelingüística definida por los grados de pertenencia asignados a cada conjunto

Page 169: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A.3 Borrosificador 151

Inferencia Borrosa

Base de Conocimientos

Borrosificador Desborrosificador

Figura A.1: Estructura de un sistema basado en lógica borrosa.

borroso antecedente que definen ese dominio de entrada, [�A1(x); : : : ; �An(x)].

La función de borrosificación convierte, en definitiva, los datos de entrada envalores lingüísticos, asociados a conjuntos borrosos, que pueden ser procesa-dos por la máquina de inferencia borrosa.

Esta conversión de valor escalar a variable lingüística se puede realizar devarias formas, dependiendo de la función de pertenencia o conjunto borrososeleccionado, figura A.2:

� Si se asigna al valor escalar de entrada x0 un conjunto borroso A, congrado de pertenencia �A(x), tal que �A(x) = 0 salvo en el punto x = x0en el que es �A(x = x0) = 1, al conjunto borroso A se le denomina pulsounitario.

� Si el valor escalar de entrada se supone perturbado por un ruido alea-torio, se suele seleccionar como conjunto borroso A una función de tipotriangular, trapezoidal o gaussiana, cuyo vértice se corresponde con elvalor medio de la entrada y la base es dos veces la desviación típica.

En general, estos tipos de funciones de pertenencia son las más comunes y em-pleadas puesto que pueden parametrizarse fácilmente, ocupan poca memoriay se manipulan con suma facilidad en la inferencia borrosa. En particular, lasfunciones de pertenencia triangulares y gaussianas son las más usadas paralos antecedentes, mientras que, los pulsos unitarios son las más empleadaspara los consecuentes. La parametrización de estas funciones de pertenenciase describe en las siguientes ecuaciones:

� Pulso unitario, figura A.2.

�A(x) =

8><>:

0 Si x < �1 Si x = �0 Si x > �

(A.2)

Page 170: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

152 Introducción a los sistemas basados en Lógica Borrosa

x ix i

x ix i

j,xiAµ

j,xiAµ

j,xiAµ j,xi

AµPulso unitario Triangular

Gaussiana

γα β

γα β δ

Trapezoidal

α

α β

Figura A.2: Tipos de funciones de Pertenencia, �Aj;xi, de la variable de entrada

xi asociadas a la regla R(j).

� Triangular, figura A.2.

�A(x) =

8>>>><>>>>:

0 Si x < �x�����

Si � � x � � �x ��

Si � � x �

0 Si x >

(A.3)

� Trapezoidal, figura A.2.

�A(x) =

8>>>>>><>>>>>>:

0 Si x < �x�����

Si � � x � �

1 Si � � x � ��x��

Si � x � �

0 Si x > �

(A.4)

� Gaussiana, figura A.2.

�A(x) = e[2���(x��)]2

8x (A.5)

En la presente Tesis se han empleado funciones de transferencia triangulares,cuando el sistema borroso se emplea como estrategia de control, y gaussianas,cuando se emplea el sistema borroso como aproximador universal, en los an-tecedentes y pulsos unitarios en los consecuentes.

Por cuanto a las funciones de pertenencia triangulares, se denomina valor depico o centroide al parámetro �, figura A.2. Las distancias � � �, � � y � �se denominan respectivamente ancho izquierdo, ancho derecho y ancho. Las

Page 171: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A.4 Base de Conocimientos 153

funciones de pertenencia en las que el ancho derecho e izquierdo coincidense denominan simétricas, en caso contrario asimétricas. Al punto en el quese cortan dos funciones de pertenencia se le denomina punto de cruce. Nivelde cruce es el grado de pertenencia que adquiere el punto de cruce en cual-quiera de las dos funciones de pertenencia. Al número de puntos de cruceentre dos funciones de pertenencia se denomina relación de punto de cruce.Las funciones de pertenencia de los antecedentes, con respecto a estos últi-mos parámetros, suelen ser de tal forma que el nivel del punto de cruce esdistinto de cero. Si no fuese así, existirían escalares que al borrosificarse noactivarían ninguna función de pertenencia, sistema borroso discontinuo. Concarácter general, se suelen adoptar el valor 0:5 como nivel del punto de crucey el valor 1 como relación de punto de cruce entre dos funciones de pertenen-cia cualesquiera, lo que indica que el número de funciones de pertenencia quedispararía un antecedente escalar es de una o dos (en cualquier caso, la sumade los grados de pertenencia es siempre la unidad).

El empleo de funciones de pertenencia gaussianas en los antecedentes, al usarlos sistemas borrosos como aproximadores universales, se debe a que generanfunciones escalares de salida, en función de las entradas escalares, continuasy derivables. ésto permite la aplicación de los algoritmos de propagación ha-cia atrás y de mínimos cuadrados recursivos para determinar la estructuraborrosa que mejor aproxima una determinada superficie de entrada.

A.4 Base de Conocimientos

Contiene la definición del conjunto de funciones de pertenencia, Aj;xi y Bj;uk ,del sistema borroso así como del conjunto de reglas borrosas en la forma desentencias R(j), ecuación A.6.

R(j) � Si (x1 es Aj;x1) y : : : y (xn es Aj;xn) entonces

(u1 es Bj;u1) y : : : y (um es Bj;um) (A.6)

En una formulación alternativa, debida a Sugeno y Tagaki, los consecuen-tes de cada regla son funciones arbitrarias, fj;uk, generalmente lineales, delespacio de entrada, ecuación A.7.

R(j) � Si (x1 es Aj;x1) y : : : y (xn es Aj;xn) entonces

(u1 es fj;u1(x1; : : : ; xn)) y : : : y (um es fj;um(x1; : : : ; xn)) (A.7)

La base de conocimientos engloba a la base de datos, que consiste en la elec-ción de las funciones de pertenencia que corresponden a los antecedentes,

Page 172: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

154 Introducción a los sistemas basados en Lógica Borrosa

Aj;xi, y consecuentes, Bj;uk, de cada regla borrosa R(j), y a la base de reglas oprotocolo, que comprende al conjunto de reglas borrosas.

La base de reglas debe cumplir, [35], las siguientes propiedades:

1. Completa. Para cualquier combinación de valores de entrada se obtie-ne un valor apropiado de salida. Se produce el total recubrimiento delespacio de entradas.

2. Consistente. No se presentan contradicciones. No existen dos reglas conidénticos antecedentes pero distintos consecuentes.

3. Continuo. Reglas contiguas tienen funciones de pertenencia en los con-secuentes con intersección no nula.

A.5 Inferencia Borrosa

Emplea la información almacenada en la base de datos, de reglas y de fun-ciones de pertenencia para obtener, a partir de las entradas borrosificadas, lavariable lingüística de salida. Constituye el núcleo principal de la estructuraborrosa y el parámetro fundamental de diseño de este bloque es el método deinferencia empleado. El método de inferencia más empleado es el que disparacada regla individualmente dando lugar, por regla, a un conjunto borroso desalida. Se denomina mecanismo de inferencia a la forma en que se infiere unaregla individual para obtener el conjunto borroso de salida asociado a dicharegla.

Existen varios mecanismos de inferencia. Supongamos un conjunto de s reglascon n antecedentes y m consecuentes y la siguiente expresión genérica parala regla R(j):

Si x1 es Aj;x1 y : : : y xn es Aj;xn entonces u1 es Bj;u1 y : : : y um es Bj;um;

8j = 1; : : : ; s (A.8)

Donde xi son las variables de entrada, Aj;xi son los conjuntos borrosos de lasentradas xi asignados a la regla j, uk son las variables de salida, Bj;uk son losconjuntos borrosos de las salidas asignados a la regla j, x1 � : : : �xn es el dominiode entrada y u1 � : : : � um es el dominio de salida.

La inferencia o disparo de cada regla consiste en la determinación de la fun-ción de pertenencia de los antecedentes, grado de activación de las funcionesde pertenencia del dominio de entrada, para obtener, posteriormente, la depertenencia de los consecuentes.

Page 173: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A.5 Inferencia Borrosa 155

Las dos principales formas de obtención de las funciones de pertenencia delos antecedentes y de interpretación de la sentencia de conexión, y, o gradode activación del dominio de entrada, para unos valores de entrada dadosex1 ; : : : ; exn , son:

1. Método del mínimo: �(j) = �R(j)antecedente(ex1; : : : ; exn) =

min(�Aj;x1(ex1); : : : ; �Aj;xn

(exn)).

2. Método del producto: �(j) = �R(j)antecedente(ex1 ; : : : ; exn) = �Aj;x1

(ex1) � : : : ��Aj;xn

(exn).

Donde a �(j) se le denota grado de disparo. En la figura A.3 se interpretangráficamente ambos métodos.

A1

α(j) min= 0.35

α(j)= 0.2275

j,x1µ j,x2

µ

x1 x2ex2

ex1

A2

0.35

0.650.65

0.35

Figura A.3: Interpretación geométrica de los métodos del mínimo y del pro-ducto. Dos variables de entrada, x1 y x2. Entrada al sistema borroso,e = [ex1; ex2 ].

La función de pertenencia del consecuente de la regla R(j) se obtiene de formasimilar a la anterior. En la figura A.4 se interpretan gráficamente los distintosmétodos que existen, ecuaciones A.9, A.10.

�R(j)consecuente(uk) = min(�(j); �Bj;uk

) (A.9)

�R(j)consecuente(uk) = �(j) � �Bj;uk

(A.10)

La variable lingüística de salida se obtiene por la combinación de los conjun-tos borrosos de salida obtenidos para cada regla R(j). Está definida por unafunción de pertenencia, �consecuente(uk), asociada a la salida y formada por lacombinación de los s conjuntos borrosos de salida generados por las s reglasdel sistema, ecuación A.11.

�consecuente(uk) = maxsj=1

��R(j)consecuente(uk)

�(A.11)

Page 174: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

156 Introducción a los sistemas basados en Lógica Borrosa

α (j) α (j)

j,uBk

B j,uk

j,uBµ

j,uBµ

u u

(a) (b)

Figura A.4: Interpretación geométrica de los métodos para obtener el conjuntoborroso consecuente. (a) �R(j)

consecuente(uk) = min(�(j); �Bj;uk). (b) �R(j)

consecuente(uk) =

�(j) � �Bj;uk.

A.6 Desborrosificador

El bloque desborrosificador genera la actuación a partir de la variable lingüís-tica de salida inferida. Una vez inferidos los conjuntos borrosos de salida deldominio consecuente, este bloque genera las salidas escalares a partir de ellos(reducción a escalar). Existen multitud de métodos para generar la salida es-calar equivalente al conjunto borroso. Suponiendo, para simplificar, el siste-ma borroso de tipo MISO, entrada multidimensional y salida unidimensional(el razonamiento sería análogo para sistemas MIMO, de entradas y salidasmultidimensionales), y que la inferencia se realiza mediante el método delmínimo, los principales métodos de desborrosificación son:

1. Centro del área o centro de gravedad. En la figura A.5 se muestra la in-terpretación geométrica de este método de desborrosificación. u� repre-senta la salida escalar, equivalente a la variable lingüística de salida,resultante de aplicar el proceso de desborrosificación.

En la ecuación A.12 se muestra la relación matemática que genera la sa-lida escalar. En esta ecuación, �consecuente(u) es la función de pertenencia,asociada al conjunto borroso de salida, resultado de aplicar el mecanis-mo de inferencia al conjunto de reglas R(j) que caracterizan al sistema,ecuación A.11.

u� =

Ru u � �consecuente(u) � duRu �consecuente(u) � du

(A.12)

2. Centro de las sumas. En la figura A.6 se muestra la interpretación ge-ométrica de este método de desborrosificación. u� representa, como enel caso anterior, la salida escalar, equivalente a la variable lingüísticasalida, resultante de aplicar el proceso de desborrosificación.

Page 175: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A.6 Desborrosificador 157

u*

Bj,uµ

B2,uB1,u

Se procesa 1 vez

u

Figura A.5: Cálculo de escalar de salida. Método del centro del área o degravedad. Sistema borroso con dos reglas.

B2,uB1,u

Bj,u

u* u

µ

Se procesa 2 veces

Figura A.6: Cálculo de escalar de salida. Método del centro de las sumas.Sistema borroso con dos reglas.

Page 176: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

158 Introducción a los sistemas basados en Lógica Borrosa

En la ecuación A.13 se muestra la relación matemática que genera la sa-lida escalar. En esta ecuación, �R(j)

consecuente son las funciones de pertenen-cia, asociadas a los conjuntos borrosos de salida, resultado de aplicar elmecanismo de inferencia a cada una de las reglas R(j) que caracterizanal sistema borroso. s representa el número total de reglas del sistemaborroso. Este método es similar al anterior salvo que las regiones deintersección entre conjuntos borrosos de salida, figura A.6, asociados adistintas reglas del sistema son procesadas, en la desborrosificación delescalar de salida, dos veces.

u� =

Ru u �

Psj=1 �Bj;u

(u) � duRu

Psj=1 �Bj;u

(u) � du(A.13)

3. Media ponderada. En la figura A.7 se muestra la interpretación geomé-trica de este método de desborrosificación. La salida escalar, u�, se obtie-ne ponderando el valor máximo pulsado de cada función de pertenenciaborrosa de salida con el valor de pico o centroide de dichas funciones depertenencia, ecuación A.14. Como en los casos anteriores, s representael número total de reglas del sistema borroso. En la figura A.7 se suponeun sistema borroso con dos reglas en el que, los valores de pico de lasfunciones de pertenencia de la salida inferidas son �(1)c y �(2)

c .

u� =

Psj=1 �c(j) � c

(j)

Psj=1 �c(j)

(A.14)

Bj,uµ

B1,u B2,u

c(2)c(1)

u*

c(1)µ

c(2)µ

u

Figura A.7: Cálculo de escalar de salida. Método de la media ponderada.Sistema borroso con dos reglas.

4. Centro del área más grande. Se subdivide el conjunto borroso de sali-

Page 177: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

A.6 Desborrosificador 159

da en subconjuntos convexos1. La salida escalar, u�, se estima como elcentro de gravedad del subconjunto de mayor área. En la figura A.8 semuestra la interpretación geométrica de este método de desborrosifica-ción.

Bj,uµ

u* u

Figura A.8: Cálculo de escalar de salida. Método del centro del área masgrande. Sistema borroso con cuatro reglas.

5. Primero de los máximos. Selecciona como escalar, u�, de salida al menorvalor (primero) de la mayor función de pertenencia consecuente inferida.En la figura A.9 se muestra la interpretación geométrica de este métodode desborrosificación.

Bj,uµ

u* u

Figura A.9: Cálculo de escalar de salida. Método del primero de los máximos.

6. Media de los máximos. Selecciona como escalar, u�, de salida al valormedio de la mayor función de pertenencia consecuente inferida. En la

1Un conjunto borroso B es convexo si 8x; y 2 B; 8� 2 [0; 1]; �B(� � x + (1 � �) � y) �min(�B(x); �B(y))

Page 178: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

160 Introducción a los sistemas basados en Lógica Borrosa

figura A.10 se muestra la interpretación geométrica de este método dedesborrosificación.

Bj,u

u* u

µ

Figura A.10: Cálculo de escalar de salida. Método del valor medio de losmáximos.

Page 179: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Apéndice B

Diseño mixto de Redes CelularesNeuronales utilizando Técnicasde Trenes de Pulsos

Índice General

B.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

B.2 Neurona basada en Técnicas de Trenes de Pulsos . . . . 163

B.3 Módulos básicos de una neurona . . . . . . . . . . . . . . . 165

B.4 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

En este apéndice presentamos un trabajo que el autor ha realizado duranteel transcurso de esta tesis doctoral y que no se han incluido en el cuerpo deésta. Este trabajo se centra en la realización de redes celulares neuronales(CNN) utilizando técnicas no convencionales para codificar la información. Elmotivo fundamental es la búsqueda de soluciones que permitan integrar ungran número de neuronas dentro de una pastilla de silicio, que es el principalproblema que presentan estas redes dado su alto grado de interconectividad.Por ello, se estudian diferentes soluciones para transmitir la información deforma eficiente en cuanto a número de conexiones, área de la realización yvelocidad de cálculo. En [67] el autor colaboró en el estudio del uso de técnicasde multiplexación en la frecuencia para disminuir el número de operadoresy conexiones en una Red Celular Neuronal. Sin embargo, en este apéndicenos vamos a centrar en otra técnica para conseguir el mismo objetivo: “ LaTécnica de Trenes de Pulsos”. El motivo de esta elección es que las ecuacionesdiferenciales que gobiernan el funcionamiento de una CNN sugieren que ladinámica que sigue el estado de una neurona puede ser emulado por la suma

Page 180: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

162Diseño mixto de Redes Celulares Neuronales utilizando Técnicas de

Trenes de Pulsos

de paquetes discretos de carga en un condensador [29]. Esta tarea puede serllevada a cabo mediante una fuente de corriente gobernada por un tren depulsos. La generación de este tren de pulsos mediante señales estocásticas,reduce la complejidad de los operadores.

Page 181: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

B.1 Introducción 163

B.1 Introducción

En los últimos años se han propuesto diferentes alternativas para la realiza-ción electrónica digital o analógica de redes neuronales. Las ventajas y limi-taciones de cada una de estas técnicas de computación son bien conocidas, porlo que para mejorar las prestaciones en ciertas situaciones se han propuestootras técnicas de entre las que destacamos las Técnicas de Trenes de Pulsos[70]. Estas técnicas toman las ventajas de ambos mundos, digital y analógi-co, ya que la información es transportada por medio de señales digitales, quetambién son utilizadas para controlar a los circuitos analógicos.

Las dos técnicas de trenes de pulsos más conocidas son la Lógica Estocásti-ca (LE) y la Modulación por Ancho de Pulsos (MAP). En la lógica estocásticauna señal es representada por un tren de pulsos cuya probabilidad de tenerel valor lógico ‘1’ es proporcional al valor instantáneo de la señal. La ventajaprincipal de la lógica estocástica a la hora de simplificar los cálculos resideen el hecho de que el producto de dos señales estocásticas puede ser realizadopor una simple puerta AND. Sin embargo, no existe un método directo pararealizar la suma de dos señales estocásticas. En [101] se propone un circuitodigital llamado F que es capaz de realizar la suma de n pulsos estocásticos enun ciclo de reloj, con el coste de la complejidad electrónica necesaria para re-alizarlo. Una realización más eficiente puede ser obtenida si utilizamos sumaanalógica de corrientes como se mostrará más adelante.

Si se sustituye una de las dos señales estocásticas a la entrada de la puertaAND por una señal codificada mediante la técnica “Modulación por Ancho dePulsos”, la puerta AND sigue realizando la operación de multiplicación. Laseñal resultante puede ser utilizada para encender o apagar una corrienteconstante que carga un un condensador. De esta forma es posible realizar lasuma de productos sinápticos que se lleva a cabo en una Red Neuronal co-mo se mostrará más adelante. Basándonos en estos principios, presentamosen este capítulo la arquitectura básica de una neurona. Con esta neuronarealizaremos una red Celular Neuronal (CNN) cuyos primeros resultados desimulación también presentamos.

B.2 Neurona basada en Técnicas de Trenes dePulsos

Una Red Celular Neuronal (CNN) es una matriz dinámica de procesadoresanalógicos, en la que las neuronas de la red interaccionan entre ellas sólocon las que se encuentran suficientemente cerca (dentro de una vecindad lo-cal). La CNN original fue propuesta por Chua y Yang en [27] y [26] y fue

Page 182: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

164Diseño mixto de Redes Celulares Neuronales utilizando Técnicas de

Trenes de Pulsos

.. . . .. +-sum line

Io

I off I RxAND1

AND2

AND3

S1

S2

CMTA(i,j;k,l)S

Pv’kl

{A(i,j;k,l}SGN

{A(i,j;k,l}SGN

Pvyij

Io

Io

φ1

φ2

figure 4 figure 2

Figura B.1: Diagrama de bloques de una neurona.

reformulada en [25]. Existe muchas referencias en la bibliografía acerca dela realización de redes Celulares Neuronales ([33], [87], [46], [83], [106], [9],[84], [13] y [6]) cada una de ellas utilizando diferentes técnicas. De entre ellastenemos que destacar [73], pues en ella se presenta una realización en modocorriente utilizando técnicas de trenes de pulsos.

Las ecuaciones diferenciales que rigen el comportamiento de la neurona (i; j)en una CNN viene dada por [27]:

Cd vxijd t

= �1

Rx

vxij +X

C(k;l) 2 Nr(i;j)

A(i; j; k; l) vykl + (B.1)

XC(k;l) 2 Nr(i;j)

B(i; j; k; l) vukl + Ioff

vyij = f(vxij) (B.2)

donde vxij, vyij y vuij son el estado, la salida y la entrada de la celda (i; j), res-pectivamente. C y Rx son parámetros de la CNN. Ioff es un término de polari-zación. Nr(i; j) es la vecindad de radio r alrededor de la celda (i; j). A(i; j; k; l)y B(i; j; k; l) son las matrices de realimentación hacia atrás y hacia delanteasociadas con la celda (i; j), respectivamente. La función lineal a trozos f esla función de activación saturada en sus extremos.

Las ecuaciones discretizadas de la carga de una CNN (B.1 y B.2) pueden serrealizadas electrónicamente por el circuito mostrado en la figura B.1. Es-ta arquitectura reproduce el comportamiento de una neurona unipolar. (Las

Page 183: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

B.3 Módulos básicos de una neurona 165

CNNs con neuronas bipolares son fácilmente convertidas en neuronas unipo-lares, con el único cambio en el término de polarización Ioff ).

La señal estocástica SA(i;j;k;l) y la señal MAP Pvykl son trenes de pulsos que re-presentan los valores de A(i; j; k; l) y vykl, respectivamente. Por ello, la puertaAND1 realiza el producto A(i; j; k; l) � vykl. Los pulsos resultantes del pro-ducto gobiernan una fuente de corriente bipolar y, dependiendo del signo deA(i; j; k; l), carga o descarga el condensador de suma. En una CNN invarianteespacialmente, las matrices A y B son compartidas por todas las neuronas porlo que los trenes de pulsos estocásticos SA(i;j;k;l) y SB(i;j;k;l) son obtenidos sólouna vez y propagados al resto del circuito con el consiguiente ahorro en áreade silicio. Esto es posible ya que los trenes de pulsos son señales digitales, porlo que su propagación a lo largo de un circuitos es sencilla y segura.

B.3 Módulos básicos de una neurona

Vref

Vref

. .+-

I offCMT

P.

. ....

. RAMPGEN..

.vyij

IRx +

-

xijV

linea de suma

Figura B.2: Emulación de una neurona utilizando un circuito RC

La salida de las neuronas es codificada mediante técnicas MAP. Esta forma decodificación ha sido seleccionada porque puede ser realizada fácilmente me-diante un generador de rampa local y un comparador (figuras B.1 y B.2). Elcomparador y el generador de rampa local son utilizados para generar la señalMAP Pvyij , que es realimentada para gobernar el funcionamiento de un espejo

Page 184: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

166Diseño mixto de Redes Celulares Neuronales utilizando Técnicas de

Trenes de Pulsos

Figura B.3: Respuesta en tiempo contínuo del circuito RC y del circuito de lafigura B.2: a) Carga y b) Descarga.

Page 185: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

B.3 Módulos básicos de una neurona 167

φ

φ

φ

φ

φ

1

1 1

2 2

φ2

...

.

. .

..

..

.

V

V

V

V

VDD

ref1

ref2

ref

ref

I

I

o

o

Linea de suma

Figura B.4: Espejos de corriente utilizados para cargar la capacidad de laneurona.

Page 186: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

168Diseño mixto de Redes Celulares Neuronales utilizando Técnicas de

Trenes de Pulsos

cascodo de gran rango de señal (figure B.2). De esta forma es posible tener encuenta el efecto de la resistencia Rx (ecuación B.1) utilizando la corriente IRx

.Para reducir los problemas de inyección de carga en los interruptores analó-gicos se optó por introducir un nuevo transistor inactivo que compense esteefecto. Por último el condensador puede ser implementado utilizando la capa-cidad de puerta de un transistor MOS. Si se dispone de tecnología analógica(segundo polisilicio), esta capacidad puede ser implementada con el conden-sador formado entre los dos polisilicios.

El circuito de la figura B.2 ha sido diseñado utilizando una tecnología digitalCMOS de 1:0�m y 5V (también han sido simulado con posterioridad con tec-nología analógica 0:8�m AMS-CXQ 3:3V ). La corriente Ioff fue ajustada paraobtener un valor de contínua de 2:5V en el condensador. Los resultados desimulación utilizando HSPICE de el circuito de la figura B.2 utilizando dosvalores iniciales diferentes se pueden ver en las figuras B.3.a y B.3.b. Ademáseste resultado puede compararse con la respuesta del circuito RC con los mis-mos valores iniciales.

Las fuentes de corriente y los interruptores analógicos, que están goberna-dos por los productos A(i; j; k; l)� vykl y B(i; j; k; l)� Vukl, han sido construidosutilizando dos espejos cascodo de gran rango de señal como se muestra en lafigura B.4. Los trenes de pulsos �1 y �2 representan los productos sinápticos(salidas de las puertas digitales AND2 y AND3 en la figura B.1, respectiva-mente) asociados a la celda de la figura B.4.

Simulaciones de alto nivel han mostrado que la estrategia de cálculo propues-ta en esta realización es una posibilidad viable para la realización de redescelulares neuronales. Las redes simuladas fueron capaces de resolver satis-factoriamente un problema de detección de bordes en una figura 21� 21.

Para confirmar las simulaciones de alto nivel realizadas en lenguaje C, la evo-lución de la tensión del condensador de suma obtenida de la simulación dealto nivel ha sido comparada con el resultado de la simulación HSPICE comomuestran las figuras B.5.a y B.5.b en dos casos diferentes. En ambos casos, lamismas señales estocásticas asociadas a los pesos sinápticos fueron utilizadasen C y HSPICE. De esta forma evitamos que los resultados de simulación seviesen afectados por la naturaleza aleatoria de las señales estocásticas. Losestados de las celdas vecinas a la celda simulada fueron elegidos de formaque el valor final fuese 0 en el primer caso (Figura. B.5.a) y 1 en el segun-do caso (Figura B.5.b). Ambas figuras verifican que la técnica de trenes depulsos puede ser adoptada utilizando tecnología CMOS y manteniendo granprecisión.

Page 187: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

B.3 Módulos básicos de una neurona 169

−2.3 17.7 37.7Time (microsecond)

0.6

1.1

1.6

2.1

2.6V

olta

ge (

V)

High−level language simulation resultHSPICE result

−10.0 40.0 90.0 140.0 190.0Time (microsecond)

1.9

2.4

2.9

3.4

3.9

Vol

tage

(V

)

High−level simulation resultHSPICE result

Figura B.5: Comparación entre los resultados C y HSPICE cuando el estadofinal de la celda es (a) 0V y (b) 5V

Page 188: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

170Diseño mixto de Redes Celulares Neuronales utilizando Técnicas de

Trenes de Pulsos

B.4 Conclusiones

La aplicación de técnicas de trenes de pulsos para la realización hardware deRedes Celulares Neuronales ha sido presentada. Las principales ventajas dela arquitectura propuesta son:

� La información es representada mediante señales digitales las cualesson robustas frente al ruido y las interferencias.

� Debido a la naturaleza estocástica de algunas señales su producto esobtenido por medio de una simple puerta AND. La operación suma esllevada a cabo mediante circuitos que operan en modo corriente. Ambascaracterísticas permiten realizar los cálculos necesarios para realizaruna Red Celular Neuronal utilizando circuitería simple de gran preci-sión.

� Los operadores de realimentación hacia adelante y hacia atrás son guar-dados en una memoria digital y convertidos en trenes de pulsos estocás-ticos. En el de Redes Celulares Neuronales con operadores invariantesen el espacio, el número de elementos diferentes de estos operadores espequeño, por lo que el área requerida no aumenta.

� Debido a la representación estocástica de estos coeficientes, pueden serpropagados a través de todo el circuito sin ser degradada la informaciónque transportan y utilizando un número reducido de líneas.

Se han realizado simulaciones de alto nivel que prueban el comportamientode la red cuando se utilizan las técnicas de trenes de pulsos para realizar-la. Los resultados obtenidos de simulaciones a nivel de transistor han sidocomparadas con las simulaciones de alto nivel, mostrando que los errores sondespreciables. Por todo ello podemos concluir que las técnicas de trenes depulsos son una alternativa interesante para construir grandes Redes Celula-res Neuronales dentro de un circuito ASIC.

Page 189: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Apéndice C

Arquitecturas de controladoresborrosos y neuronales digitales.

Índice General

C.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

C.2 Controlador borroso . . . . . . . . . . . . . . . . . . . . . . . 173

C.2.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 173

C.2.2 Particularidades del controlador digital. . . . . . . . . . 173

C.2.3 Estructura externa del controlador . . . . . . . . . . . . 176

C.2.4 Arquitectura del controlador. . . . . . . . . . . . . . . . 177

C.2.5 Máquinas de estado del controlador . . . . . . . . . . . 177

C.2.6 Borrosificación. . . . . . . . . . . . . . . . . . . . . . . . 179

C.2.7 Desborrosificación . . . . . . . . . . . . . . . . . . . . . . 180

C.2.8 Código VHDL . . . . . . . . . . . . . . . . . . . . . . . . 180

C.3 Perceptrón multicapa . . . . . . . . . . . . . . . . . . . . . . 186

C.3.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 186

C.3.2 Teoría de Redes Neuronales . . . . . . . . . . . . . . . . 186

C.3.3 Descripción general de la red . . . . . . . . . . . . . . . 190

C.3.4 Control de la red . . . . . . . . . . . . . . . . . . . . . . . 196

C.3.5 Capa oculta . . . . . . . . . . . . . . . . . . . . . . . . . 200

C.3.6 Código VHDL . . . . . . . . . . . . . . . . . . . . . . . . 232

En este capítulo se va a explicar la arquitectura básica de los circuitos utili-zados por AFAN. Un estudio en detalle de lo que aquí se resume puede encon-trarse en [24] y [17]. Nos centraremos en el estudio del controlador borroso y

Page 190: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

172 Arquitecturas de controladores borrosos y neuronales digitales.

del perceptrón haciendo hincapié en los aspectos más relevantes de su funcio-nalidad.

Page 191: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.1 Introducción 173

C.1 Introducción

C.2 Controlador borroso

C.2.1 Introducción

En esta sección se va a esbozar la arquitectura del controlador borroso digitalque utiliza AFAN. Se va a detallar su estructura general y algunas particula-ridades de su funcionamiento. No se va a profundizar más ya que este capí-tulo sólo pretende mostrar la funcionalidad y las posibilidades que presentael circuito diseñado. El circuito que se explica implementa el algoritmo deMamdani con pulsos unitarios como consecuentes y con el método del centrode gravedad como algoritmo de desborrosificación. Los detalles del algoritmode Mamdani han sido explicados en otros capítulos por lo que pasaremos di-rectamente a describir el controlador.

C.2.2 Particularidades del controlador digital.

Dadas las peculiaridades de un circuito digital, hemos de delimitar las capa-cidades de cada uno de los elementos característicos del controlador. Veamoslas características del controlador digital:

� Todos los valores de la red van a ser enteros codificados en binario conun determinado rango de valores. El rango de valores vendrá descritoen el archivo de configuración variables.vhd mediante el número de bitscorrespondiente.

� Las variables internas van a ser unipolares; es decir, van a ser ente-ros positivos con rango de cero a 2n, donde n será el tamaño del bus decorrespondiente.

� Las funciones de pertenencia en este caso serán codificadas definiendo elcentroide del triángulo y la pendiente. El centroide será codificado comoun número entero sin signo y la pendiente como un número entero sinsigno más un desplazamiento. De esta forma podemos tener una pen-diente mayor o menor que la unidad ya que un desplazamiento significadividir por 2m, siendo m el número de bits del desplazamiento.

Estructura del controlador

La red se ha estructurado en forma de entidades jerárquicas tal y como sepuede ver en la figura C.1.

Page 192: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

174 Arquitecturas de controladores borrosos y neuronales digitales.

Inferencia

Inferencia

Memoria de reglasPropagación

hacia atrás

Control

Borr. Desborr.Control

Bossorificación

Bossorificación

Variables.vhd

Desborrosificación SalidaEntradas

Datos

Control

ControlGeneral

Figura C.1: Estructura jerárquica del controlador borroso.

Page 193: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.2 Controlador borroso 175

El controlador borroso consta de una memoria de reglas, de un módulo decontrol general y de varios módulos de cálculo con sus módulos de controlasociados. Estos últimos realizan los procesos de borrosificación, desborrosifi-cación e inferencia. Cada uno de estos procesos puede realizarse en paraleloa los demás o no. En el caso del controlador que describimos la borrosificacióny la inferencia se realizan en paralelo con la desborrosificación de forma quese optimiza el tiempo de respuesta del controlador. Además, se pueden tenervarios bloques que realicen la borrosificación e inferencia en paralelo, aunqueen el caso que explicaremos no estará implementada por simplicidad.

Configuración del controlador.

Veamos a continuación la configuración del controlador, que se puede hacera través del archivo variables.vhd. Para ello, reproducimos un extracto delmismo:

PACKAGE resto_variables_types is

function INTEGER_SIZE(aa:integer) return integer;constant NEN: integer:=2; -- Número de Entradasconstant NRN: integer:=16; -- Número de Reglasconstant NBEN: integer:=16; -- Número de bits de las ntradaconstant NBPN: integer:=4; -- Número de bits de las pendientesconstant NBSN: integer :=4; -- Número de bits de las salidasconstant NBAN: integer:=16; -- Número de bits de la Alturaconstant BPUN: integer:=1; -- Bit de pendiente unidadconstant NABSMN : integer := 6;constant NABSMPSN: integer := 6;constant AP: integer := 0;constant TBEN: integer := (NEN*NBEN);constant TMN:integer:=(NBPN+NBEN);constant TSN: integer:=(TMN-(BPUN-1));constant TAMN: integer:=((NEN*NBEN)+(NBPN*NEN)+NBSN);constant TAMROMN: integer:=((NEN*NBEN)+(NBPN*NEN));constant TNN: integer:=((TSN+ NBSN)+NABSMPSN);constant TDN: integer:=(TSN+NABSMN);constant TRDN: integer:=(2*TNN-1);constant TNUNN: integer:=((TSN+ NBSN)+NABSMPSN);constant TRIN: integer := NBEN+NBPN;

Los parámetros de configuración del controlador son:

� NEN: Es el número de máximo de entradas del controlador. El número deentradas que procesa el controlador será programable digitalmente.

Page 194: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

176 Arquitecturas de controladores borrosos y neuronales digitales.

� NRN: Es el número máximo de reglas que puede procesar el controlador borro-so. Esta variable dimensiona la memoria del controlador borroso y no obliga aque el controlador borroso las procese todas, ya que el número de reglas proce-sadas será programable digitalmente.

� NBEN: Es el número de bits de las entradas del controlador.

� NBPN: Es el número de bits de las pendientes para codificar los triángulos delas funciones de pertenencia.

� NBSN: Es el número de bits de la salida del controlador.

� NBAN: Es el número de bits utilizados para realizar los cálculos internos en elcontrolador.

� BPUN: Es el desplazamiento que se realiza después de multiplicar por unapendiente. De esta forma se consigue tener pendientes negativas.

� AP: Es la variable que determina si el controlador incluye los circuitos de cál-culo y control necesarios para realizar el proceso de aprendizaje de los conse-cuentes.

C.2.3 Estructura externa del controladorEn la figura C.2 se muestra el aspecto externo del controlador borroso. A continua-ción pasamos a detallar el significado de cada una de las señales del controlador.

� Dirección: Es el bus utilizado para direccionar externamente la memoria dereglas.

� Reglas: Es el bus bidireccional utilizado para leer o escribir el contenido de lamemoria de reglas.

� WE, ME: Son las señales de control externo de la memoria de reglas.

� Bit_normal: Es la señal utilizada para poner en funcionamiento el controladoro pararlo para realizar lectura de registros internos, configuración, etc.

� Entradas: Es el bus de entrada de las variables de control. Su tamaño esNEN*NBEN.

� Prog_reglas: Es el bus que le indica al controlador cuantas reglas debe procesar.

� Prog_entradas: Es el bus que le indica al controlador cuantas entradas debeprocesar.

� Clk, Reset: Son las señales de típicas de un diseño digital síncrono; reloj y resetasíncrono para todos los biestables.

Page 195: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.2 Controlador borroso 177

Direccion

WE

REGLAS

ME

bit_normal

Resultado

FLI

Entradasprog_reglasprog_entradas

resetclk

Controlador

TOP

Figura C.2: Estructura jerárquica del controlador borroso.

C.2.4 Arquitectura del controlador.En la figura C.3 podemos ver los componentes esenciales del controlador y sus co-nexiones. La descripción detallada de cada uno de estos componentes se realiza enlos siguientes apartados. En esta figura se ha omitido la memoria del controlador yaque este bloque se considera externo al controlador de forma que pueda ser realizadomediante bloques de librería que son mucho más óptimos en área.

C.2.5 Máquinas de estado del controladorEl controlador borroso tiene diferentes máquinas de estados. La máquina principalo máquina del nivel 1 es la que controla al resto de máquinas de estado. Las demásmaquinas de estado constan de diferentes bloques que se encargan de secuenciar lasoperaciones del controlador. Para realizar estas tareas disponen de contadores a loscuales controlan. Las salidas de estos contadores se encargan de direccionar multi-plexores que van dejando acceder los datos a los diferentes módulos de cálculo.

La máquina del nivel 1 (figura C.4) controla qué regla se está evaluando en cada ins-tante y el flujo de datos con la memoria de reglas. En paralelo, verifica si el módulode desborrosificación ha terminado de realizar la división. Cuando los módulos de bo-rrosificación y desborrosificación han terminado, da la orden de comenzar el procesode nuevo. De esta forma se ahorra tiempo, ya que mientras se realiza el proceso deborrosificación de las nuevas entradas, se está realizando la desborrosificación de las

Page 196: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

178A

rqu

itecturas

de

controlad

oresb

orrososy

neu

ronales

digitales.

Entradas

Mux Entrada_i

CONTROL_ENTRADASç(conta_entradas)

reset clk

TODAS LASENTRADAS

dout

del NIVEL 2

Estados

Maquina deContador

Entradas

ContadorReglas

Maquina de

estados

del NIVEL 1

Mux

(Borrosificador)

REGLAS

(Desborrosificador)

Divisoruna Regla

Calcula

clk

reset clk

reset clk

clkreset

clkreset reset clk

dout

REG_REGLAS

min_de_la_regla

enable

load

carga_cont_entradas

carga_registro_minimo

reset_interno_2

fin_calculos_regla

enable_contador_entradas

fin_division

reset_sin

load_2

load_1

singleton

estado_cont_reglas

termina_calculos

bit_normal

enab_cont_reglas

load_denominador

load_numerador

comienza_division

comienza_maquina_2

me_interno

load_cont_reglas

reset_interno

fin_division

resultado_finalcomienza_division

min_de_la_regla

reset_sin

load_min

entrada_i

pendiente_i

centroide_i

din

bit_normal

estado_cont_entradas

comienza_maquina_2

(conta_entradas)CONTROL_REGLAS

Regla_iREGLA

ENTRADA DESDELA RAM

enable

load

din

PROG_ENTRADASBIT_NOTMAL

PROG_REGLAS

ME_int

DIRECCION

RESULTADO

FINAL

FLI

Figu

raC

.3:A

rquitectu

radelcon

trolador.

Page 197: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.2 Controlador borroso 179

load_numerador

FORMATO DE SALIDAS______________________reset_internoload_cont_reglasME_internocomienza_maquina_2comienza_division

load_denominadorenab_cont_reglas

Reposo

espera_fin_div

termino_la_2?

carga_reg_regla

estado_cont_reglas=0

00010000

00000000

00100111

bit_normal=1 11100000

11000000

00010000

00000000

00000000

fin_division=0

00000000

00000110 fin_division=1

00001000

termina_calculos=1

Figura C.4: Máquina de estados del nivel 1.

entradas anteriores. Este proceso es más costoso en área que un enfoque secuencialdel problema, ya que ambos (borrosificador y desborrosificador) no pueden compartirmódulos de cálculo. Si fuese necesaria más velocidad de procesamiento siempre esposible poner tantos bloques borrosificadores en paralelo como sea necesario.

Las máquinas de control secundarias controlan los procesos de borrosificación y des-borrosificación. La forma en que estos bloques realizan las operaciones se explica acontinuación.

C.2.6 Borrosificación.

En este bloque se calcula, para cada regla, el antecedente de cada entrada del con-trolador borroso. En el caso que nos ocupa la función de pertenencia es generadamediante cálculos a partir del centroide y la pendiente del triángulo. El grado de per-tenencia de cada entrada a un conjunto borroso se calcula como muestra la figura C.5.

Una vez calculados todos los grados de pertenencia se realiza el proceso de inferen-cia eligiendo el mínimo de los grados de pertenencia para cada regla si utilizamos elalgoritmo de Mamdani.

Page 198: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

180 Arquitecturas de controladores borrosos y neuronales digitales.

abs(ei-ci)*pi

not(abs(ei-ci)*pi)

ei ci

pi

Salida=not(abs(ei-ci)*pi)

Figura C.5:

C.2.7 DesborrosificaciónEste bloque realiza el cálculo de la salida por el método del centro de gravedad. Paraello calcula los sumatorios del numerador y del denominador y realiza la división.Existen muchas formas de realizar la división. En nuestro caso hemos elegido el mé-todo de la división conocido como “lápiz y papel”, aunque otros métodos como aproxi-maciones sucesivas o división paralela pueden utilizarse.

C.2.8 Código VHDLEn este apartado reproducimos una parte del código VHDL que describe la neurona.La totalidad del código puede encontrarse en [17].

Calculos_regla.vhd

------------------------------------------------------------- Borrosificacion y maquina de inferencia. ---- Lo controla la maquina del nivel 2 ---- Ademas los types son abreviados --------------------------------------------------------------- Revision 1.2 -------------------------------------------------------------

library IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all ;library WORK;USE WORK.resto_variables_types.ALL;

entity calcula_una_regla is

generic(

Page 199: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.2 Controlador borroso 181

NBE: integer:=NBEN;BPU: integer:=BPUN;NBP: integer:= NBPN;TM: integer := TMN;TS: integer := TSN;NBA: integer:= NBAN);port( reset_sin: IN std_logic;

clk: in std_logic;entrada_i: IN std_logic_vector (NBE-1 downto 0);

centroide_i: IN std_logic_vector (NBE-1 downto 0);pendiente_i: IN std_logic_vector ( NBP-1 downto 0);load_MIN: IN std_logic; -- es el load4 de los planosreset: IN std_logic;min_de_la_regla: OUT std_logic_vector (NBA-1 downto 0));

end calcula_una_regla;

architecture comport of calcula_una_regla issignal minimo_nuevo: unsigned (NBA-1 downto 0);signal saturacion_del_posible_maximo: unsigned (TS-1 downto 0);signal minimo_nuevo_tmp: unsigned (NBA-1 downto 0);signal min_de_la_regla_t: unsigned (NBA-1 downto 0);signal entrada_it: unsigned (NBE-1 downto 0);signal centroide_it: unsigned (NBE-1 downto 0);signal pendiente_it: unsigned (NBP-1 downto 0);signal min_de_la_reglat: unsigned (NBA-1 downto 0);

begin

int:process(entrada_i,centroide_i,pendiente_i,min_de_la_reglat)begin

for i in entrada_i’range loopentrada_it(i)<=entrada_i(i);end loop;for i in centroide_i’range loopcentroide_it(i)<=centroide_i(i);end loop;for i in pendiente_i’range looppendiente_it(i)<=pendiente_i(i);end loop;for i in min_de_la_regla’range loopmin_de_la_regla(i)<=min_de_la_reglat(i);end loop;

end process;

Page 200: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

182 Arquitecturas de controladores borrosos y neuronales digitales.

c1: process(minimo_nuevo,load_MIN,min_de_la_regla_t,reset_sin)

begin

if(load_MIN=’1’) thenminimo_nuevo_tmp<=minimo_nuevo;

elsif(reset_sin=’1’) thenfor i in minimo_nuevo_tmp’range loopminimo_nuevo_tmp(i)<=’1’;end loop;

elseminimo_nuevo_tmp<=min_de_la_regla_t;

end if;end process;ci2:process(min_de_la_regla_t)beginmin_de_la_reglat<=min_de_la_regla_t;end process;

c11:process(reset,clk)begin

if(reset=’1’) thenfor i in min_de_la_regla_t’range loop

min_de_la_regla_t(i)<=’1’;end loop;

elsif(clk=’1’ AND clk’event) thenmin_de_la_regla_t<=minimo_nuevo_tmp;

end if;end process;

c2: process(entrada_it,centroide_it,pendiente_it)variable valor_absoluto: unsigned ( NBE-1 downto 0);variable sera_maximo: unsigned (TM-1 downto 0);variable saturacion_del_posible_maximo_var:

unsigned (TS-1 downto 0);variable valor_absoluto_sig: signed (NBE downto 0);variable valor_absoluto_sig_t: std_logic_vector (NBE downto 0);variable centroide_i_s: signed (NBE downto 0);variable entrada_i_s: signed (NBE downto 0);

begin

for i in centroide_i’range loopentrada_i_s(i):=entrada_it(i);

end loop;entrada_i_s(NBE):=’0’;

Page 201: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.2 Controlador borroso 183

for i in centroide_it’range loopcentroide_i_s(i):=centroide_it(i);

end loop;centroide_i_s(NBE):=’0’;

valor_absoluto_sig:=(entrada_i_s-centroide_i_s);valor_absoluto_sig_t:=abs(valor_absoluto_sig);for i in valor_absoluto’range loop

valor_absoluto(i):=valor_absoluto_sig_t(i);end loop;sera_maximo:=valor_absoluto*pendiente_it;

for i in (BPU-1) to TM -1 loop--Saturamos desde bit_de_pendiente_unidad--hasta Tamano minimo, que es justamente

--Tamano de saturacionsaturacion_del_posible_maximo_var((i-(BPU-1))):=

sera_maximo(i);end loop;

saturacion_del_posible_maximo<=saturacion_del_posible_maximo_var;

end process;

c31:if( TS>NBA) generatea31:process(saturacion_del_posible_maximo,min_de_la_regla_t)

variable max_tam_sat: unsigned (TS-1 downto 0);variable res_tam_sat:unsigned (TS-1 downto 0);variable maxi: unsigned (NBA-1 downto 0);

variable res: unsigned (NBA-1 downto 0);variable min_nuevo: unsigned (NBA-1 downto 0);

variable not_saturacion_del_posible_maximo:unsigned (TS-1 downto 0);

beginfor i in not_saturacion_del_posible_maximo’range loop

not_saturacion_del_posible_maximo(i):=not(saturacion_del_posible_maximo(i));

end loop;for i in maxi’range loop

maxi(i):=’1’;end loop;

for i in maxi’range loopmax_tam_sat(i):=maxi(i);

end loop;

Page 202: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

184 Arquitecturas de controladores borrosos y neuronales digitales.

for i in NBA to TS-1 loopmax_tam_sat(i):=’0’;

end loop;

if ((saturacion_del_posible_maximo)<max_tam_sat) thenres_tam_sat:=not_saturacion_del_posible_maximo;

elsefor i in res_tam_sat’range loop

res_tam_sat(i):=’0’;end loop;

end if;

for i in res’range loopres(i):=res_tam_sat(i);

end loop;

if (res<min_de_la_regla_t) thenmin_nuevo:=res;

elsemin_nuevo:=min_de_la_regla_t;

end if;

minimo_nuevo<=min_nuevo;end process;

end generate;

c32:if( TS=NBA) generatea32:process(saturacion_del_posible_maximo,min_de_la_regla_t)

variable maxi: unsigned (NBA-1 downto 0);variable res: unsigned (NBA-1 downto 0);variable min_nuevo: unsigned (NBA-1 downto 0);

variable not_saturacion_del_posible_maximo:unsigned (TS-1 downto 0);

beginfor i in not_saturacion_del_posible_maximo’range loop

not_saturacion_del_posible_maximo(i):=not(saturacion_del_posible_maximo(i));

end loop;res:=not_saturacion_del_posible_maximo;

if (res<min_de_la_regla_t) thenmin_nuevo:=res;

elsemin_nuevo:=min_de_la_regla_t;

end if;

Page 203: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.2 Controlador borroso 185

minimo_nuevo<=min_nuevo;end process;

end generate;

c33:if( TS<NBA) generatea33:process(saturacion_del_posible_maximo,min_de_la_regla_t)

variable saturacion_del_posible_maximo_grande:unsigned (NBA-1 downto 0);

variable maxi: unsigned (NBA-1 downto 0);variable res: unsigned (NBA-1 downto 0);variable min_nuevo: unsigned (NBA-1 downto 0);variable not_saturacion_del_posible_maximo_grande:

unsigned (NBA-1 downto 0);begin

for i in maxi’range loopmaxi(i):=’1’;

end loop;

for i in saturacion_del_posible_maximo’range loopsaturacion_del_posible_maximo_grande(i):=

saturacion_del_posible_maximo(i);end loop;

for i in TS to NBA-1 loopsaturacion_del_posible_maximo_grande(i):=’0’;

end loop;for i in not_saturacion_del_posible

_maximo_grande’range loopnot_saturacion_del_posible_maximo_grande(i):=

not(saturacion_del_posible_maximo_grande(i));end loop;

res:=not_saturacion_del_posible_maximo_grande;if (res<min_de_la_regla_t) then

min_nuevo:=res;else

min_nuevo:=min_de_la_regla_t;end if;

minimo_nuevo<=min_nuevo;end process;

end generate;

Page 204: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

186 Arquitecturas de controladores borrosos y neuronales digitales.

end comport;

configuration cfg_comport_calcula_una_regla of calcula_una_regla isfor comportend for;

end cfg_comport_calcula_una_regla;

C.3 Perceptrón multicapa

C.3.1 Introducción

En esta sección se va a esbozar la arquitectura del perceptrón digital que utilizaAFAN. Se va a detallar su estructura general y la estructura de la capa oculta. No seva a profundizar más ya que este capítulo solo pretende mostrar la funcionalidad ylas posibilidades que presenta el circuito diseñado.

C.3.2 Teoría de Redes Neuronales

Introducción

Dentro de la teoría de Redes Neuronales surgen varios modelos de red, con distintosgrados de complejidad, los cuales van enfocados a la resolución de distintos proble-mas. El presente trabajo se centra en la red denominada red de propagación haciaatrás, o “Red Backpropagation”, fundamentada en la unidad denominada perceptrón.Vamos a describir a continuación los componentes y el funcionamiento de una RedBackpropagation que van a ser de interés en nuestra realización.

El Perceptrón (Neurona)

El perceptrón es la unidad básica de una Red Backpropagation, cuyo esquema serepresenta en la figura C.6.Ante un vector de entradas (x1:::xj :::xn), se calcula la suma ponderada por unos pesos(i1:::ij :::in), y mediante una función de activación f se obtiene la salida del percep-trón, yi.

El comportamiento del perceptrón viene dado fundamentalmente por los pesos delmismo, los cuales serán las variables a modificar durante el proceso de aprendizajede la red, como veremos más adelante. Así mismo, interviene la función de activación,f , la cual suele ser una función sigmoidal o bien lineal a trozos:

� f(netai) = netai, en el caso de una función de activación lineal.

� f(netai) = (1 + e�netai)�1, en el caso de función de activación sigmoidal.

Page 205: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 187

neta =i Σ j

wij

xj

wi1

wij

win

y =f(neta )i i

xj

x1

x n

Figura C.6: Perceptrón.

Red de propagación hacia atrás.

La estructura típica de una red de propagación hacia atrás se puede observar en lafigura C.7.

Por simplicidad se ha representado una única capa oculta, aunque pueden haber másde una capa oculta. Aparte de los perceptrones, aparece una neurona de tendencia,denominada neurona de polarización. La particularidad de esta neurona es que suvalor siempre es “1”, por lo que cada neurona (a partir de aquí, no se distinguirá entrelos nombres de neurona y perceptrón) que tenga asociada como entrada una neuronade polarización, tendrá un peso asociado que se sumará al resto de valores de las en-tradas ponderadas.

Para simplificar las ecuaciones de la red, se supone la neurona de polarización comouna neurona más, sabiendo que su valor es la unidad. En tal caso, las ecuaciones querigen la red son:

� Capa de entrada: xei = f e(ei).

� Capa oculta: netaoj =Pi=m

i=1 wijxei ; x

oj = fo(netaoj).

� Capa de salida: netask =Pi=n

j=1wjkxoj ; yk = f s(netask).

Error

El propósito de una red neuronal es conseguir que se comporte de una forma determi-nada. Ante una entrada determinada (e1:::ei:::en), la red dará una salida (y1:::yk:::yp)

determinada por los valores de los pesos. Si sobre esa entrada definimos una salidadeseada (d1:::dk:::dp), el error que la red habrá cometido será (�1 : : : �k : : : �p), donde�k = (dk � yk).

Page 206: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

188 Arquitecturas de controladores borrosos y neuronales digitales.

Figura C.7: Red de propagación hacia atrás.

Corrección de pesos

Conocido el error cometido por la red, habrá que corregir los pesos de forma que elcomportamiento sea el deseado. Para ello, hemos de calcular para cada neurona dela red su contribución al error a partir de la minimización del error respecto de lavariación de pesos.

Como consecuencia de esta minimización aparece la denominada regla delta genera-lizada, que no es más que la regla a aplicar para corregir los pesos. Dado que el errorse define a partir de las salidas deseada y real, se distingue una regla para la capade salida (definida sobre el error ya calculado), y una regla para corregir las capasocultas definidas sobre unos errores calculados a partir de los errores cometidos porsus capas posteriores. En general, la regla delta generalizada para la corrección depesos es de la forma:

wij(t+ 1) = wij(t) + ��jxi (C.1)

donde �j representa el término de error de la neurona, xi la entrada a la que estáasociada el peso wij , y representa un factor de velocidad de aprendizaje. El cálculodel término de error � dependerá del tipo de capa, y se define un término para cadaneurona. Para la capa de salida depende directamente del error cometido por cadaneurona de salida.

En el caso que nos ocupa, con una sola capa oculta, el error asociado a la capa oculta

Page 207: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 189

se calcula por un proceso denominado propagación hacia atrás, en el que dicho errores calculado a partir del error cometido por la capa de salida. Veamos el término deerror para cada una de las capas:

� Capa de salida: Como hemos dicho antes, el término de error depende directa-mente del error. Es de la forma:

�sk = (dk � yk)fs0

(netask) (C.2)

� Capa oculta: Se define el término de error de cada neurona a partir de los erro-res de las neuronas de la capa de salida, ponderados por los pesos de conexiónentre la neurona y la capa de salida. Su formulación es:

�oj = fo0

(netaoj)k=pXk=1

�skwsij (C.3)

Aprendizaje

Es el proceso mediante el cual conseguimos que la red se comporte de un modo deter-minado. En el mismo, sometemos la red a distintas entradas, comparamos las salidasobtenidas con las deseadas, calculamos los errores cometidos y corregimos los pesosde forma que dichos errores se minimicen.

Veamos el proceso de aprendizaje paso a paso:

� Se aplica un vector de entrada e = (e1:::ei:::em).

� Se calculan los valores de las neuronas de la red, tanto de la capa oculta comode salida, mediante las ecuaciones de la red:

xei = f e(ei) i = 1 : : : m (C.4)

netaoj =i=mXi=1

wijxei xoj = fo(netaoj) j = 1 : : : n (C.5)

netask =i=nXj=1

wjkxoj yk = f s(netask) k = 1 : : : p (C.6)

(C.7)

� Se calculan los términos de error para las neuronas de la capa de salida:

�sk = (dk � yk)fs0

(netask) k = 1 : : : p (C.8)(C.9)

Page 208: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

190 Arquitecturas de controladores borrosos y neuronales digitales.

� Se calculan los términos de error para las neuronas de la capa oculta:

�oj = fo0

(netaoj)k=pXk=1

�skwsij j = 1 : : : n (C.10)

(C.11)

Los términos de error de la capa oculta se calculan antes de corregir los pesosde la capa de salida. En el caso de tener más de una capa oculta, también secalculan antes de corregir los pesos de las capas posteriores.

� Se actualizan los pesos de la capa de salida:

wsij(t+ 1) = ws

ij(t) + ��kxj j = 1 : : : n k = 1 : : : p (C.12)(C.13)

� Se actualizan los pesos de la capa oculta:

woij(t+ 1) = wo

ij(t) + ��jxi i = 1 : : : m j = 1 : : : n (C.14)(C.15)

� Se calcula el término de error global, Ep, mediante el cual sabremos si la redestá aprendiendo, y el momento en que podemos dar por concluido el aprendi-zaje:

Ep =1

2

pXk=1

�2k (C.16)

El proceso de aprendizaje requiere unos patrones de aprendizajes específicos. Esteproyecto no comprende la generación de dichos patrones.

C.3.3 Descripción general de la red

Introducción

Para la realización de la red se utilizará el lenguaje específico para diseño de circui-tos digitales VHDL. El código escrito es válido para una red propagación hacia atrásgenérica. Para compilar una red particular, las características propias de la red se-rán descritas en un archivo de configuración, a partir del cual se compilará el códigomediante la herramienta SYNOPSYS.

Antes de describir la estructura de la red, veamos las particularidades propias de laimplementación digital que se va a realizar.

Page 209: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 191

Particularidades de la red digital

Dadas las peculiaridades de un circuito digital, hemos de delimitar las capacidadesde cada uno de los elementos característicos de la red. Veamos las características dela red digital:

� Todos los valores de la red van a ser enteros codificados en binario con un de-terminado rango de valores. El rango de valores vendrá descrito en el archivode configuración tipos.vhd mediante el número de bits correspondiente.

� Las neuronas van a ser unipolares; es decir, van a ser enteros positivos conrango de cero a 2n, donde n será el tamaño del bus de neuronas. Este rango vaa ser único para todas las neuronas de la red (entrada, ocultas y salida).

� Los pesos van a ser bipolares. El rango de valores será de �2n�1 : : : 2n�1 � 1,donde n es el tamaño del bus de pesos. Los pesos, al tener valores positivos ynegativos, estarán codificados en complemento a dos

� La función de activación va a ser la misma para todas las neuronas de la red.Será del tipo lineal a trozos, con pendientes potencia de dos, v.g., 8, 4, 2, 1, 1/2,1/4, 1/8, ...

� Los valores de la tasa de aprendizaje, o factor de velocidad de aprendizaje, �,serán así mismo potencia de dos, v.g., 1/2, 1/4, 1/8, ...

Estructura de la red

La red se ha estructurado en forma de entidades jerárquicas tal y como se puede veren la figura C.8.

Esta es la estructura de entidades en la red. Ahora bien, para poder transferir datosentre las distintas capas de la red, se dispone entre capas sucesivas un bus bidireccio-nal que permita el intercambio de datos en ambos sentidos de la red. Vamos a ver, enprimer lugar, los sentidos de transferencia de datos de la red (no tenemos en cuentade momento las señales de control de la red).

La red va a tener un modo de funcionamiento normal, que será aquel en que, anteuna entrada determinada, obtengamos su salida correspondiente. En este caso, elintercambio de datos será de la capa de entrada, pasando por las sucesivas capasocultas, hasta la capa de salida; es decir, es una cascada de datos desde la entradahasta la salida (de izquierda a derecha, según se representa vagamente en la figuraC.8, y que se verá más adelante en una representación más detallada de la red). Es-te será el sentido del flujo de datos de la red, por lo que al hacer referencia a capasposteriores respecto de una dada, nos referiremos a aquellas que se encuentran de lacapa de referencia a la de salida.

Cuando la red va a realizar el proceso de aprendizaje, hemos visto en la sección deteoría de redes que para calcular el error de las capas ocultas es necesario disponerde información de la capa posterior, por lo que el bus de interconexión entre ambas

Page 210: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

192 Arquitecturas de controladores borrosos y neuronales digitales.

Control Capa Oculta Control Capa Salida

NEURONA

NEURONA

NEURONANEURONA

NEURONA

NEURONANEURONA

NEURONA

NEURONA

CAPA DE ENRADA CAPA OCULTA CAPA DE SALIDA

TIPOS

RED TOP Control RED

N_POL N_POL N_POL

Control Capa Entrada

Figura C.8: Estructura jerárquica de la red.

capas ha de permitir el paso de información en sentido contrario. Este hecho de pasarinformación de los errores hacia capas anteriores es lo que determina el nombre dered de propagación hacia atrás.

Configuración de la red.

Veamos a continuación la configuración de la red que se puede hacer a través delarchivo tipos.vhd. Para ello, reproducimos un extracto del mismo:

-- Definiciones de la red constantNumero_capas:integer:=3;type datos_capa is array (integer range 1 to Numero_capas) of integer;constant Tamano_bus_neuronas:integer:=8;constant Tamano_bus_pesos:integer:=8;constant Numero_neuronas:datos_capa:=(2,5,1);constant numero_maximo_neuronas:integer:=5; -- sin incluir polarizacionconstant Polarizacion:integer:=0;constant Numero_valores_proceso:integer:=6; -- No incluye el escalontype valores_proceso is array(integer range 0 to Numero_valores_proceso)

of integer;-- Han de contemplarse valores para:-- pendiente de rampa.-- tasa de aprendizaje.-- pendiente muy pequena para evitar zonas con pendiente nula-- en aprendizaje

Page 211: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 193

-- Valores positivos indican division-- +1: divide por 2-- +2: divide por 4-- +3: divide por 8-- etc...-- Valores negativos indican multiplicacion-- -1: multiplica por 2-- -2: multiplica por 4-- -3: multiplica por 8-- etc...-- Cero indica identidad (pendiente unidad)-- Importante: el primer valor (0) indica rampa escalon. Si por error-- durante el aprendizaje se pusiera rampa escalon, tomara el valor-- asignado aqui (en este caso 0 -> pendiente unidad)--El resto iran ordenados de mayor a menor pendienteconstant desplazamiento:valores_proceso:=(0,-1,0,+2,+3,+4,+8);constant d_min:integer:=-1;constant d_max:integer:=8;-- Fin definicioned de la red

Los parámetros de configuración de la red son:

� Numero_capas: Es el número total de capas de la red. La primera capa será lacapa de entrada, y la última será la de salida.

� Numero_neuronas: Es un vector que contendrá el número de neuronas de cadacapa. El número de neuronas de la primera capa corresponderá al número deentradas de la red, así como el de la última capa será el de salidas de la red.

� Numero_maximo_neuronas: Es un dato de ayuda al código, el cual representael valor máximo del vector Numero-neuronas, descrito anteriormente.

� Polarización: Es un entero con valores 0 ó 1, el cual indicará si la red dispondráde neurona de polarización o no. En caso de tener de polarización (1), se disponede una neurona de polarización por capa (excepto la capa de salida), así comoun vector de entrada a la red que activa o desactiva la neurona de polarizaciónde cada una de las capas.

� Tamano_bus_neuronas: Es el número de bits de resolución de las neuronas dela red. Todas las neuronas de la red tendrán la misma resolución, la cual seráun entero positivo con rango 0� 2Tamano bus neuronas � 1).

� Tamaño del bus de pesos: Corresponde al número de bits de resolución de los pe-sos de la red. La resolución de los pesos será la misma para todas las neuronasde la red, los cuales serán positivos o negativos con rango �2Tamano bus pesos �

1� 2Tamano bus pesos�1 � 1.

� Número de valores de proceso: Dentro de cada neurona han de realizarse dis-tintas operaciones sobre cadenas de bits que representan el valor de la función

Page 212: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

194 Arquitecturas de controladores borrosos y neuronales digitales.

neta de la neurona, el error, etc, ... Estas operaciones son la multiplicación ydivisión por números potencia de dos, correspondientes a la función de activa-ción (pendiente de la recta 4, 1/2, 1/16, ...), a la tasa de aprendizaje (1/2, 1/4,1/8, ...) y a una pendiente pequeña necesaria en el proceso de aprendizaje, lacual veremos con detalle en la sección correspondiente. Todos estos valores vana recogerse en un vector, cuyo número de componentes queda definido por esteparámetro.

� Desplazamiento: Es el vector al que hemos hecho referencia al introducir elparámetro Numero-valores-proceso. El significado de cada uno de los valoreses el desplazamiento a efectuar sobre una cadena de bits. En la figura C.9 sepueden observar algunos ejemplos.

� D_min, D_max: Son valores de ayuda al código, y representan los valores míni-mo y máximo del vector de desplazamiento.

B6B7 B5 B4 B3 B2

B6B7 B5 B4 B3 B2

B0B1B2B3B4

B0B1B2B3B4

B0B1B2B3B4

B5B6B7

0 0

1 1

1 11

0 0 0

+2 Divide por 4 (Numero Negativo)

+2 Divide por 4 (Numero Positivo)

Desplazamiento

-3 Multiplica por 8 (Numero Positivo)

-3 Multiplica por 8 (Numero Negativo)

Figura C.9: Posibles valores de la variable DESPLAZAMIENTO.

Descripción externa de la red

Consideramos en este apartado la red como una caja negra, la cual se comunica conel exterior a través de unas señales de entrada y salida. En la figura C.10 podemosobservar la red como un elemento único.

Lo primero a destacar es que el circuito está gobernado por un reloj externo, clk, queataca a todos los biestables de la red, al igual que la señal exterior reset. Veamos acontinuación una descripción de cada una de las señales externas:

� Vector_control: Es la señal principal de la red, pues con ésta se controla elfuncionamiento de la misma. Para activar cualquiera de los modos de funcio-namiento de la red (ver sección de la descripción funcional de la red), ha deactivarse (1) el bit correspondiente a dicho modo, estando el resto de bits delvector desactivados (0). En caso de estar más de un bit activado, la red perma-necerá en estado de reposo (estado inicial).

Page 213: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 195

Figura C.10: Aspecto externo de la red.

� Entrada_red: Es la señal de entrada a procesar por la red, a partir de la cualobtendremos una salida determinada. El tamaño de este vector será el númerode entradas (o número de neuronas de la primera capa) multiplicado por laresolución de una de ellas (tamaño del bus de neuronas).

� Entrada_disponible: Cuando la red está en modo aprendizaje (ya veremos sufuncionamiento), esta señal de 1 bit indica a la red (1) que está disponible unpatrón de aprendizaje en entrada_red.

� Bus_pesos: Es un vector bidireccional, que permite el intercambio de los pesosde la red entre la misma y el exterior, tanto para lectura como para escritura.Es del tamaño de los pesos, definido en el archivo de configuración mediantela variable tamano_bus_pesos, la cual indica la resolución en bits de un enterocon signo representado en complemento a dos.

� READY, START_IO: Estas dos señales (READY de entrada y START_IO desalida) permiten establecer un protocolo de comunicaciones con el exterior parala lectura y escritura de los pesos. El protocolo está basado en el empleado porMotorola denominado “handshake”.

� Valor_rampa: Esta señal de entrada representa el número de posición dentrodel vector desplazamiento correspondiente al valor de la pendiente de la rampade la función de activación de las neuronas de la red. Este vector de despla-zamientos está definido en el archivo de configuración tipos.vhd. Veamos unejemplo:

Page 214: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

196 Arquitecturas de controladores borrosos y neuronales digitales.

constant desplazamiento:valores_proceso:=(0,-1,0,+2,+3,+4);Para valor_rampa=3, corresponde un desplazamiento(3)=+2 (vector con indicede 0 a numero_valores_proceso), lo que indica una pendiente de 1/4 (1/2+2).

� Tasa_aprendizaje: Señal análoga a valor_rampa, sólo que indica un valor parael factor de velocidad de aprendizaje, o tasa de aprendizaje.

� Vector_polarizacion: En caso de existir neurona de polarización (archivo de con-figuración), mediante esta señal podemos controlar qué capas tendrán activa-das su neurona de polarización (neurona activada: funciona como tal; neuronadesactivada: como si no existiese).

� Salida_red: Es la señal resultante del proceso en la red neuronal ante el vectorentrada_red. El tamaño del vector será el número de salidas de la red (númerode neuronas de la capa de salida) multiplicado por la resolución de las neuronas(tamaño del bus de neuronas).

� Salida_deseada: Es la señal a comparar con la salida real de la red (salida_red)en el proceso de aprendizaje. Su estructura es igual al vector salida_red.

� Clk: Señal externa de reloj.

� Reset: Señal de iniciación de la red. Deja a la red en el estado inicial.

Arquitectura de la red

En la figura C.11 podemos ver los componentes esenciales de la red y su intercone-xión. La descripción detallada de cada uno de estos componentes se realiza en lossiguientes apartados.

C.3.4 Control de la red

En este apartado vamos a realizar una descripción del bloque de control de la red, elcual es quien gestiona el funcionamiento de la red mediante una máquina de estadosy un contador de capas. El bloque de control de la red está gobernado por la señalexterna vector_control.

Arquitectura del control de la red

En este apartado vamos a ver con detalle el módulo de la red control_RED. A con-tinuación vemos los elementos constituyentes de la misma: señales y máquina deestados.

Señales Todas las señales, tanto de entrada como de salida, son de control. Vea-mos cada una de ellas:

� vector_control: Señal exterior que controla el funcionamiento de la red.

Page 215: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 197

Figura C.11: Arquitectura de la red.

Page 216: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

198 Arquitecturas de controladores borrosos y neuronales digitales.

� entrada_disponible: Señal exterior de 1 bit mediante la cual indicamos a lared que en caso de aprendizaje disponemos de un patrón válido en la señalentrada_red.

� fin_capa: Señal interna de tantos bits como número de capas existan en la red.Mediante esta señal podemos saber si cada una de las capas ha actualizado susvalores.

� control_capas: Contiene los vectores de control de cada una de las capas de lared (a excepción de la capa de entrada). Todos los vectores de control de lascapas oculta y de salida tienen la misma estructura.

� control_entrada: Dado que la capa de entrada consta tan sólo de unos registrosde captura de la entrada a la red, su funcionamiento es muy sencillo, siendo portanto el vector de control de esta capa más sencillo que el vector de control delresto de capas.

� clk y reset: Señales externas de reloj y reset que atacan a todos los biestablesdel control de red.

Maquina de estados de la red En la figura C.12 se representa la máquina deestados de la red; a continuación el funcionamiento de dicha máquina de estados.

Figura C.12: Máquina de estados de la red.

Page 217: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 199

� Estado_inicial: La red parte de un estado inicial, al cual se accede en cualquierinstante ante una señal asíncrona exterior reset. En este estado, la máquina deestados pone a cero lógico los vectores de control de todas las capas, quedandola red parada, a la espera de que se active uno de los bits del vector de controlde la red. Sólo saldrán del estado inicial ante la activación de uno y sólo uno delos bits del vector de control.

� Ejecución: Éste es el estado de funcionamiento normal de la red, en el quese simula de forma continua la entrada a la red. Se activa desde el estadoinicial ante un vector de control "1000" . La máquina de estados activa el bit demodo ejecución de los vectores de control de cada una de las capas (bit 5 de losvectores de control de las capas ocultas y de salida, y bit 0 del vector de controlde la capa de entrada). Vuelve al estado inicial en el momento en que el vectorde control de la red sea distinto de "1000".

� Aprendizaje: Se activa desde el estado inicial a partir de un vector de control"0100". La red permanecerá en este estado a la espera de una entrada válida(patrón de aprendizaje). Se considerará entrada válida cuando reciba una señalde entrada válida (entrada_disponible=’1’). Una vez recibida la señal de entra-da disponible, pasará al proceso de aprendizaje de dicho patrón. Los vectoresde control de las capas permanecen inalterados. Vuelve al estado inicial anteun vector de control distinto de "0100".

� Simula_red: Una vez que se dispone de un patrón válido a la entrada de la red,se obtienen los valores de cada una de las neuronas, de forma que cada capaespera a que la capa anterior actualice todas sus neuronas para calcular susvalores de forma exacta. Para ello se activa el modo de ejecución en espera.Permanecerá en este estado hasta que la capa de salida calcule sus valores (sa-lida_disponible=’1’). Vuelve al estado inicial ante un vector de control distintode "0100".

� Calcula_error: Una vez recibida la señal de salida disponible en el estado desimulación de la red, en este estado se da señal a cada una de las capas paraque calculen el error cometido por cada una de las neuronas. En primer lugarse calcula el error de la capa de salida (error real), tras lo cual se transmiteel error mediante Backpropagation hacia las capas anteriores (de la capa desalida a la de entrada, sin llegar a ésta última). Para calcular los errores delas capas ocultas es necesario activar la capa posterior a la de cálculo para quetransmita el error. Para ir activando el proceso de cálculo del error de cada unade las capas, se activa el contador de capas del control de red, de forma que alconcluir el cálculo de una capa el contador se decrementa, pasando a calcularel error de la capa anterior.

� Siguiente_capa: Este estado dura un único ciclo en el que se decrementa el con-tador de capas (parte del número total de capas, señalando a la capa de salida).Si el número de capa siguiente es 1 (capa de entrada), se da por terminado elcálculo del error, pasando al estado corrige_error; si es distinto de 1, vuelve alestado calcula_error.

Page 218: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

200 Arquitecturas de controladores borrosos y neuronales digitales.

� Corrige_error: En este estado se da orden a todas las capas a la vez de quecorrijan el error cometido. Cada capa dará señal de fin de corrección. Una vezterminado el proceso de corrección (todas las capas activan su señal de fin decapa), se vuelve al estado inicial.

� Carga_pesos: Este estado es activado a partir del estado inicial, ante un vectorde control "0010". En este estado se activa cada una de las capas sucesivamentede la última (capa de salida) a la segunda (la capa de entrada no tiene pesos)para que carguen los pesos desde el exterior. Una vez terminado el procesode carga de una capa (señal de fin de capa correspondiente), pasa al estadosiguiente_capa (carga de pesos).

� Siguiente_capa (carga de pesos): Estado de un único ciclo en el que se decre-menta el contador de capas. Si la siguiente capa es la de entrada, termina elproceso de carga y se vuelve al estado inicial; en caso contrario, se vuelve alestado carga_pesos.

� Salva_pesos: Este estado es activado a partir del estado inicial, ante un vectorde control "0011". En este estado se activa cada una de las capas sucesivamentede la última (capa de salida) a la segunda (la capa de entrada no tiene pesos)para salvar los pesos al exterior. Una vez terminado el proceso de salvado deuna capa (señal de fin de capa correspondiente), pasa al estado siguiente_capa(salvado de pesos).

� Siguiente_capa (salvado de pesos): Estado de un único ciclo en el que se decre-menta el contador de capas. Si la siguiente capa es la de entrada, termina elproceso de salvado y se vuelve al estado inicial; en caso contrario, se vuelve alestado salva_pesos

Contador de capas El módulo de control de la red dispone de un contador decapas decreciente, mediante el cual se puede tener control secuencial de las capasen el proceso Backpropagation del aprendizaje, así como de los procesos de carga ysalvado de los pesos de las neuronas.

C.3.5 Capa oculta

Introducción

El número de capas ocultas es configurable en el archivo de configuración de la red.En este capítulo trataremos las capas ocultas como si la red tuviera una única capaoculta, dado que todas las capas ocultas tienen la misma estructura (sólo se diferen-ciarán en el número de neuronas de cada una).

Esta capa es la más compleja de todas, ya que contiene una máquina de estadoscompleja, un contador de neuronas y una serie de neuronas cuya arquitectura es com-pleja, puesto que en ellas han de realizarse distintos tipos de operaciones aritméticas.

Page 219: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 201

Arquitectura de la capa oculta

En la figura C.13 podemos ver la capa oculta como una caja negra.

Figura C.13: Bloque Capa_oculta

En ésta podemos observar las señales clk y reset, las cuales son señales externas dela red. Ambas señales atacan a todos los biestables de la capa oculta, tanto a los pro-pios de los registros de las neuronas como a los de la máquina de estados y contadorde neuronas.

En la figura C.14 podemos observar los componentes esenciales de la capa oculta y suinterconexión:Veamos a continuación una descripción de cada uno de sus elementos.

Señales Distinguimos 3 tipos de señales en la capa de oculta:

� Señales de control: Son las señales que gobiernan la capa oculta, distinguién-dose señales externas (READY, START_IO, clk y reset), señales del control dered (modo_funcionamiento) y señales de interconexión de capas (capa anteriordisponible, capa posterior actualizada, capa disponible, activa contador entra-das, cuenta contador entradas, fin contador entradas, activa contador neuronas,cuenta contador neuronas y fin contador neuronas).

� Señales de configuración: Señales que permiten configurar la red; en este caso,la capa oculta (valor rampa, tasa aprendizaje y neurona polarización activada).

� Datos: Son las señales para la transferencia de datos tanto con el exterior(bus_pesos) como con las capas adyacentes (bus entrada, bus salida, selectorpesos capa y selector pesos próxima capa).

Veamos cada una de estas señales:

� modo_funcionamiento: Es el vector de control de la capa oculta. El vector pro-cede del bloque de control de la red y consta de 7 bits.

Page 220: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

202 Arquitecturas de controladores borrosos y neuronales digitales.

Figura C.14: Componentes de la capa oculta

Page 221: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 203

� valor_rampa: Esta señal de entrada representa el número de posición dentrodel vector desplazamiento correspondiente al valor de la pendiente de la rampade la función de activación de las neuronas de la red. Este vector de desplaza-mientos está definido en el archivo de configuración de la red.

� tasa_aprendizaje: Señal análoga a valor_rampa que indica un valor para elfactor de velocidad de aprendizaje, o tasa de aprendizaje.

� neurona_polarizacion_activada: Caso de existir polarización (definida en el ar-chivo de configuración de la red), esta señal de 1 bit controla si la neurona depolarización de la capa oculta está activada (el valor de la neurona de polariza-ción será el máximo valor positivo de n bits: 2n-1) o no (el valor de la neuronade polarización será cero).

� activa_contador_neuronas: Señal de control procedente de la capa posterior.

� cuenta_contador_neuronas: Señal de control procedente de la capa posterior.

� fin_contador_neuronas: Señal que indica a la próxima capa que el contador deneuronas de la capa oculta ha llegado a su máximo valor.

� activa_contador_entradas: Señal de control que indica a la capa anterior laactivación de su contador.

� cuenta_contador_entradas: Señal de control que indica a la capa anterior queincremente el valor de su contador.

� fin_contador_entradas: Señal de control procedente de la capa anterior que in-dica que su contador ha llegado a su máximo valor.

� capa_anterior_disponible: Señal de control procedente de la capa anterior queindica que los valores de sus neuronas están actualizados.

� capa_posterior_actualizada: Señal de control procedente de la capa posteriormediante la cual indica que durante el proceso Backpropagation se han trans-ferido a la capa oculta todos los términos de error correspondientes a la neuronaque esté en ese momento en el proceso de cálculo de error en esta capa.

� capa_actualizada: Señal de control mediante la cual la capa oculta indica a susvecinas y al control de red que los valores de sus neuronas están actualizadoso bien que en el proceso Backpropagation se han transferido a la capa anteriortodos los términos de error correspondientes a la neurona de cálculo de la capaanterior.

� READY: Señal exterior mediante la cual indicamos a la red en el proceso decargado de pesos que en el bus de pesos hay un valor de peso, o bien en elproceso de salvado de pesos se solicita a la red un valor de peso en el bus depesos.

� START_IO: Señal mediante la cual la red solicita un peso en el bus de pesos enel proceso de cargado de pesos, o bien indica al exterior que en el bus de pesosexiste un valor de peso en el proceso de salvado de pesos.

Page 222: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

204 Arquitecturas de controladores borrosos y neuronales digitales.

� selector_pesos_capa: Señal procedente del contador de la capa anterior que in-dica el número de entrada para la capa oculta seleccionada en un momentodado, y por tanto señala al peso correspondiente a la interconexión entre dichaentrada y cada una de las neuronas de la capa oculta. El formato del selectores de un entero positivo, y el bus del selector es del tamaño mínimo correspon-diente a la codificación en binario del número máximo de neuronas por capa dela red (en el archivo de configuración, numero_maximo_neuronas).

� selector_pesos_proxima_capa: Señal análoga a selector_pesos_capa, mediantela cual el control de la capa oculta indica a la capa posterior los pesos de inter-conexión a cada una de las neuronas de dicha capa y la capa oculta.

� bus_pesos: Bus bidireccional de interconexión entre el exterior y los pesos decada una de las neuronas de la capa que permite la lectura y escritura de pesosentre el exterior y las neuronas. El tamaño del bus viene dado por el valor detamano_bus_pesos en el archivo de configuración de la red.

� bus_entrada: Bus bidireccional de interconexión entre la capa anterior y la capaoculta. El tamaño del bus de interconexión es el mismo entre todas las capasde la red, siendo igual a la resolución en bits de las neuronas + 1 (tiene 1 bitmás por el signo). Mediante este bus podemos transmitir de una capa a otra lossiguientes valores: en sentido de izquierdas a derechas (flujo normal de datos)transmitimos valores de las neuronas de la capa anterior a la capa oculta, y ensentido inverso transmitimos los términos de error de la capa oculta a la capaanterior. Por este motivo (los términos de error tienen signo) el tamaño del busde interconexión es 1 bit mayor a la resolución de las neuronas.

� bus_salida: Bus bidireccional de interconexión entre la capa oculta y la capaposterior de iguales características al bus de entrada.

� clk: Señal de reloj externo que ataca a todos los biestables de la capa.

� reset: Señal de reset externo que ataca a todos los biestables de la capa.

Además de estas señales, existen otras señales internas en la capa de entrada, lascuales son:

� selector_neuronas: Señal procedente del contador de neuronas de la capa quepermite activar cada una de las neuronas de la capa oculta, de forma que activa(caso de estado de simulación de la red o de corrección de pesos de la capaposterior) el bus de salida de la capa permitiendo poner el valor de una neuronadeterminada en dicho bus. El selector de neuronas es un vector de tantos bitscomo neuronas tenga la capa oculta.

� control_neurona: Vector de 9 bits que controla el funcionamiento de todas lasneuronas de la capa (el vector ataca a todas las neuronas de la capa).

Control de capa oculta

En la figura C.16 podemos ver el bloque control_capa_oculta:Al igual que el resto de capas, la capa oculta está constituida por una máquina deestados y un contador de neuronas de la capa.

Page 223: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 205

Figura C.15: Control de capa oculta.

Máquina de estados de la capa oculta En la figura C.16 podemos ver laestructura gráfica de la máquina de estados de la capa oculta.

Figura C.16: Máquina de estados de la capa oculta.

A continuación describimos el funcionamiento de dicha máquina de estados:

� Estado_inicial: Es el estado del que parte la máquina de estados. Ante unaseñal reset exterior, la máquina de estado pasará a este estado. Los valores delos vectores de control de la máquina de estados son:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.

Page 224: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

206 Arquitecturas de controladores borrosos y neuronales digitales.

(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

Dependiendo del vector modo_funcionamiento(5 downto 0), la máquina de es-tados irá a uno de los siguientes estados:

"100000": actualizando\_capa."010000": calculando\_error."001000": back\_propagation."000100": calcula\_peso."000010": carga\_pesos."000001": lee\_pesos.

� actualizando_capa: En este estado se activa el contador de entradas de la capaoculta (contador de neuronas de la capa anterior), de forma que en cada ciclode reloj la capa anterior suministre a la capa oculta el valor de cada una de susneuronas. En las neuronas de la capa oculta se irán realizando las operacionesaritméticas del cálculo de sus valores (suma ponderada de las entradas a lacapa) hasta que la capa anterior active la señal de fin de contador de entradas.Los vectores de control tomarán los siguientes valores:

control\_neurona:(0): activa\_acumulador=’1’.(1): modo\_ejecución=’1’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’1’.START\_IO=’0’.

La capa se mantendrá en este estado hasta que ocurra algunos de los siguientescasos:

Page 225: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 207

– modo funcionamiento(5downto0) 6= "100000": El control de red obliga a lacapa a salir de la simulación. Pasa al estado inicial.

– fin_contador_entradas=’1’: La capa anterior notifica que ya se han simu-lado todas las entradas a la capa oculta. La capa oculta pasa al estadocapturando_registro.

� capturando_registro: Se da señal a todas las neuronas de la capa para quecapturen el valor del acumulador resultante de las operaciones aritméticas dela simulación de las entradas. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’1’.(2): captura\_registro=’1’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

La capa se mantendrá en este estado un único ciclo de reloj. Dependiendo sila red se encuentra simulando un patrón de aprendizaje o si está en ejecuciónnormal, pasará a un estado u otro, según el valor de modo_funcionamiento(6):

– modo_funcionamiento(6)=’1’: La red está simulando un patrón de apren-dizaje. La capa pasará al estado esperando.

– modo_funcionamiento(6)=’0’: La red está en ejecución normal. La capapasará al estado actualizando_capa.

� esperando: La capa sólo accede a este estado cuando la red está en modo apren-dizaje simulando un patrón de aprendizaje. Se accede al mismo una vez quela capa ha calculado los valores de sus neuronas, permaneciendo en el mismohasta que el control de red avise de la finalización de la simulación del patrónpor todas las capas. Los valores de los vectores de control son:

control\_neurona:(0): activa\_acumulador=’1’.(1): modo\_ejecución=’1’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.

Page 226: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

208 Arquitecturas de controladores borrosos y neuronales digitales.

(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

Cuando reciba una señal de control modo funcionamiento(5downto0) 6= "100000",la capa pasará al estado inicial.

� calculando_error: La capa accederá a este estado cuando el control de red activeel cálculo de error de la capa oculta a la vez que activa el proceso Backpropa-gation de la capa posterior. En este estado se calculará el término de error decada una de las neuronas, para lo cual se activa el contador de neuronas de lacapa (una única neurona de la capa será seleccionada). En cada ciclo de reloj lacapa posterior irá suministrando los sumandos del término de error de la neu-rona seleccionada, los cuales se irán sumando en la propia neurona, hasta quela capa posterior dé señal de fin de sumandos (capa posterior actualizada=’1’).Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’1’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’1’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

La capa se mantendrá en este estado hasta que ocurra uno de los siguientescasos:

– capa_posterior_actualizada=’1’: La capa posterior avisa del fin del cálculodel término de error de la neurona seleccionada en la capa oculta. La capapasará al estado capturando_error.

Page 227: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 209

– modo funcionamiento(5downto0) 6= "010000": El control de red desactivael modo de aprendizaje de la red. La capa pasará al estado inicial.

� capturando_error: Estado de un único ciclo de reloj en el que el control de capaoculta indica a la neurona seleccionada que capture el valor del acumulador enel registro de error. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’1’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’1’.(4): captura\_error=’1’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de los siguientes valores:

– fin_contador=’0’: Todavía no se han calculado los errores de todas las neu-ronas de la capa oculta. La capa pasará al estado siguiente_neurona.

– fin_contador=’1’: Ya se han calculado los errores de todas las neuronas dela capa oculta. La capa pasará al estado siguiente_capa.

– modo funcionamiento(5downto0) 6= "010000": El control de red desactivael modo de aprendizaje de la red. La capa pasará al estado inicial.

� siguiente_neurona: Estado de un único ciclo de reloj en el que se incrementael valor del contador de neuronas de la capa oculta con lo cual seleccionamosla siguiente neurona de la capa para ser calculado el término de error de lamisma. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’1’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.

Page 228: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

210 Arquitecturas de controladores borrosos y neuronales digitales.

(8): activa\_bus\_pesos=’0’.capa\_diponible=’0’.

activa\_contador\_capa=’1’.cuenta\_contador\_capa=’1’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende del valor del vector de controlmodo_funcionamiento(5 downto 0). Caso de ser 6= "010000" (fin aprendizaje)el control de red desactiva el modo de aprendizaje de la red por lo que la capapasará al estado inicial. En caso contrario, la capa oculta pasará al estadocalculando_error.

� siguiente_capa: Estado de un único ciclo de reloj en el que se indica al controlde red que se ha terminado el cálculo del error en la capa oculta. Los vectoresde control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’1’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

La capa oculta pasará al estado inicial.

� back_propagation: Estado en el que la capa oculta suministra a la capa anteriorlos distintos sumandos del término de error de la neurona correspondiente de lacapa anterior. Serán tantos sumandos como neuronas tenga la capa oculta (sincontar la neurona de polarización, caso de existir). En cada ciclo de reloj la capasuministra (vía bus de entrada) cada uno de los sumandos (uno por neurona).Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.

Page 229: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 211

(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’1’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’1’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de los siguientes casos:

– fin_contador=’0’: Todavía no se han suministrado todos los sumandos deltérmino de error. La capa oculta permanece en este estado.

– fin_contador=’1’: Ya se han suministrado todos los sumandos del términode error. La capa oculta pasará al estado espera_pulso.

– modo funcionamiento(5downto0) 6= "001000": El control de red desactivael modo de aprendizaje. La capa oculta pasará al estado inicial.

� espera_pulso: Estado de un único ciclo de reloj en el que se indica al controlde red y a la capa anterior que ha finalizado el proceso Backpropagation parala neurona seleccionada de la capa anterior. Los vectores de control toman losvalores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’1’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de los siguientes casos:

– modo_funcionamiento(5 downto 0)="001000": Continúa el proceso de apren-dizaje. La capa oculta pasará al estado espera_otro_pulso.

Page 230: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

212 Arquitecturas de controladores borrosos y neuronales digitales.

– modo funcionamiento(5downto0) 6= "001000": El control de red desactivael modo de aprendizaje. La capa oculta pasará al estado inicial.

� espera_otro_pulso: Estado de un único ciclo de reloj de sincronización con lacapa anterior. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’1’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de los siguientes casos:

– modo funcionamiento(5downto0) = "001000": Continúa el proceso de apren-dizaje. La capa oculta pasará al estado espera_otro_pulso.

– modo funcionamiento(5downto0) 6= "001000": El control de red desactivael modo de aprendizaje. La capa oculta pasará al estado inicial.

� calcula_peso: Estado de un único ciclo de reloj en el que se calculan los pesoscorregidos de todas las neuronas asociados a una entrada determinada, para locual se activa la neurona correspondiente de la capa anterior (entrada a la capaoculta). Se inician las señales de escritura de los pesos, la cual se realizará enel próximo ciclo de reloj. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’0’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’0’.

Page 231: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 213

cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’1’.

El próximo estado de la capa oculta será escribe_peso.

� escribe_peso: Estado de un único ciclo de reloj en el que se escriben los pesos enla RAM de cada una de las neuronas. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’1’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende del contador de entradas a la capaoculta:

– fin_contador_entradas=’0’: Todavía no se han corregido todos los pesos delas neuronas de la capa oculta. El próximo estado de la capa oculta serásiguiente_peso.

– fin_contador_entradas=’1’: Ya se han corregido todos los pesos de las neu-ronas de la capa oculta. El próximo estado de la capa oculta será espe-ra_resto_capas.

� siguiente_peso: Estado de un único ciclo de reloj en el que se incrementa elcontador de entradas a la capa oculta, con lo que seleccionaremos la próximaentrada a la capa oculta, pudiendo corregir los pesos asociados a dicha entrada.Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.

Page 232: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

214 Arquitecturas de controladores borrosos y neuronales digitales.

(5): back\_propagation=’0’.(6): corrige\_peso=’1’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’0’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’1’.START\_IO=’0’.

El próximo estado de la capa oculta será calcula_peso.

� espera_resto_capas: Estado de espera en el que permanece la capa oculta unavez corregidos todos los pesos de las neuronas de la capa. Se da señal de fin decorrección al control de red y se espera a que el mismo desactive la actualizaciónde pesos. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’1’.(7): WE=’1’.(8): activa\_bus\_pesos=’0’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende del control de red:

– modo_funcionamiento(5 downto 0)="000100": El resto de capas no ha fi-nalizado la corrección de pesos. La capa oculta permanece en este estado.

– modo funcionamiento(5downto0) 6= "000100": El control de red desactivala actualización de pesos (el resto de capas ya ha finalizado la correcciónde pesos). La capa oculta pasará al estado inicial.

� carga_pesos: Estado de un único ciclo de reloj en el que se solicita al exteriormediante la señal START_IO un peso en el bus de pesos. Los vectores de controltoman los valores:

control\_neurona:

Page 233: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 215

(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’1’.

El próximo estado de la capa oculta será espera_senal_exterior.

� espera_senal_exterior: Estado de espera en el que permanece la capa ocultahasta recibir un peso del exterior vía bus de pesos. Se han activado una neuronade la capa oculta y una entrada a la capa oculta de forma que el peso a cargaresté perfectamente direccionado. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de la señal exterior READY:

– READY=’0’: Todavía no se dispone de un peso en el bus de pesos. La capaoculta permanece en este estado.

– READY=’1’: Desde el exterior se avisa de la colocación de un peso en elbus de pesos. La capa oculta pasará al estado escribiendo_peso_ext.

– modo funcionamiento(5downto0) 6= "000010": El control de red anula elproceso de carga de pesos. La capa oculta pasa al estado inicial.

Page 234: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

216 Arquitecturas de controladores borrosos y neuronales digitales.

� escribiendo_peso_ext: Estado de un único ciclo de reloj en el que se activan lasseñales de escritura en la RAM de la neurona seleccionada. Los vectores decontrol toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’0’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta será espera_escritura.

� espera_escritura: Estado de un único ciclo de reloj en el que se completa elproceso de escritura del peso en la RAM. Los vectores de control toman losvalores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de los contadores de neuronas yde entradas de la capa oculta:

Page 235: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 217

– fin_contador_entradas=’0’: Todavía no se han escrito todos los pesos de laneurona seleccionada de la capa oculta. La capa oculta pasará al estadocp_siguiente_peso.

– fin_contador_entradas=’1’: Ya se han escrito todos los pesos de la neuro-na seleccionada de la capa oculta. El próximo estado de la capa ocultadepende del valor del contador de neuronas de la capa:

� fin_contador=’0’: Todavía no se han cargado los pesos de todas lasneuronas de la capa oculta. La capa oculta pasará al estado cp_sigui-ente_neurona.

� fin_contador=’1’: Ya se han cargado los pesos de todas las neuronas dela capa oculta. La capa oculta pasará al estado cp_lp_sacabo.

� cp_siguiente_peso: Estado de un único ciclo de reloj en el que se incrementa elcontador de entradas a la capa oculta, de forma que direccionamos el siguientepeso de la neurona seleccionada de la capa oculta. Los vectores de control tomanlos valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’1’.START\_IO=’0’.

El próximo estado de la capa oculta será carga_pesos.

� cp_siguiente_neurona: Estado de un único ciclo de reloj en el que se incremen-ta el contador de neuronas de la capa oculta, de forma que seleccionamos lasiguiente neurona de la capa oculta. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.

Page 236: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

218 Arquitecturas de controladores borrosos y neuronales digitales.

(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’1’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta será carga_pesos.

� cp_lp_sacabo: Estado de un único ciclo de reloj en el que se da aviso al controlde red de la finalización de la carga de pesos de la capa oculta. Los vectores decontrol toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’1’.activa\_contador\_capa=’0’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’0’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta será el estado inicial.

� lee_pesos: Estado de un único ciclo de reloj en el que se indica al exterior me-diante la señal START_IO la existencia de un peso en el bus de pesos, a la vezque se activa el peso correspondiente. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.

Page 237: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 219

(8): activa\_bus\_pesos=’1’.capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’1’.

El próximo estado de la capa oculta será espera_escritura_ext.

� espera_escritura_ext: Estado de espera en el que permanece la capa ocultahasta recibir del exterior la señal de lectura del peso. Los vectores de controltoman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta depende de la señal exterior READY, asícomo de los contadores de neuronas y de entradas de la capa oculta:

– READY=’0’: Todavía no se ha leído el peso desde el exterior. La capa ocultapermanece en este estado.

– READY=’1’: Desde el exterior se avisa de la lectura del peso. El próximoestado de la capa oculta depende del valor del contador de entradas de lacapa:

� fin_contador_entradas=’0’: Todavía no se han salvado todos los pesosde la neurona seleccionada de la capa oculta. La capa oculta pasaráal estado lp_siguiente_peso.

� fin_contador_entradas=’1’: Ya se han salvado todos los pesos de laneurona seleccionada de la capa oculta. El próximo estado de la capaoculta depende del valor del contador de neuronas de la capa:� fin_contador=’0’: Todavía no se han salvado los pesos de todas

las neuronas de la capa oculta. La capa oculta pasará al estadolp_siguiente_neurona.

Page 238: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

220 Arquitecturas de controladores borrosos y neuronales digitales.

� fin_contador=’1’: Ya se han salvado los pesos de todas las neuro-nas de la capa oculta. La capa oculta pasará al estado cp_lp_sacabo.

� lp_siguiente_peso: Estado de un único ciclo de reloj en el que se incrementa elcontador de entradas a la capa oculta, de forma que direccionamos el siguientepeso de la neurona seleccionada de la capa oculta. Los vectores de control tomanlos valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’0’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’1’.START\_IO=’0’.

El próximo estado de la capa oculta será lee_pesos.

� lp_siguiente_neurona: Estado de un único ciclo de reloj en el que se incremen-ta el contador de neuronas de la capa oculta, de forma que seleccionamos lasiguiente neurona de la capa oculta. Los vectores de control toman los valores:

control\_neurona:(0): activa\_acumulador=’0’.(1): modo\_ejecución=’0’.(2): captura\_registro=’0’.(3): calcula\_error=’0’.(4): captura\_error=’0’.(5): back\_propagation=’0’.(6): corrige\_peso=’0’.(7): WE=’1’.(8): activa\_bus\_pesos=’1’.

capa\_diponible=’0’.activa\_contador\_capa=’1’.cuenta\_contador\_capa=’1’.activa\_contador\_entradas=’1’.cuenta\_contador\_entradas=’0’.START\_IO=’0’.

El próximo estado de la capa oculta será lee_pesos.

Page 239: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 221

Contador selector de la capa oculta El contador de neuronas de la ca-pa oculta tiene por objeto poder identificar cada una de las neuronas de la capaoculta. Mediante un decodificador del valor del contador podemos seleccionaruna neurona determinada, y con la ayuda de señales de control (modo ejecu-ción y corrige pesos), dar salida por el bus de salida de la capa oculta al valorde la neurona. Al mismo tiempo que seleccionamos una neurona determinada,indicamos a la capa posterior la dirección de los pesos de interconexión entreambas capas.

De igual forma que podemos activar el bus de salida de la capa oculta para su-ministrar los valores de las neuronas a la próxima capa(mediante el selector deneuronas y las señales modo_ejecución o corrige_pesos), podemos activar el busde entrada (mediante el selector de neuronas y la señal back_propagation) parasuministrar sumandos del término de error a la capa anterior.

El contador de neuronas de la capa oculta puede ser activado desde la propiacapa y desde la capa posterior. El funcionamiento del contador/selector es elsiguiente:

– activa_contador: Mientras esta señal esté a 0’, el contador estará reini-cializado, anulando el selector de neuronas. Cuando esté a 1’, el contadormantendrá su valor, y activará el bit correspondiente del selector de neu-ronas.

– cuenta_contador: Mientras esta señal esté a 0’, el contador mantiene suvalor (siempre que esté activado). Si está a 1’, incrementará su valor.

Neurona de la capa oculta

En la figura C.17 podemos ver una neurona de la capa oculta como un bloque:Podemos ver los componentes esenciales de la neurona en la figura C.18, en la que seha suprimido el cableado de las señales valor_rampa, tasa_aprendizaje, clk y reset,además de haberse simplificado la señal neurona_seleccionada al suponerse consti-tutiva del vector control_neurona.Los componentes de la neurona son:

� Pesos neurona: Bloque donde se integran la memoria RAM para los pesos de laneurona, así como la lógica de activación del bus de pesos y direccionamientode la memoria RAM.

� Cálculos neurona: Este bloque contiene todos los elementos necesarios (suma-dor, multiplicador, selectores de buses, señales de control, etc...) para realizartodas las operaciones aritméticas necesarias en la neurona.

� Proceso: En este bloque se aplican sobre los resultados de los cálculos de la neu-rona las funciones de activación (rampas), las tasas de aprendizaje, las satura-ciones (si se da el caso), así como el ajuste del tamaño de los valores calculadosa los de los valores de neurona y error.

Page 240: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

222 Arquitecturas de controladores borrosos y neuronales digitales.

Figura C.17: Neurona capa oculta.

� Neurona: Contiene los registros del valor de la neurona.

� Error: Contiene los registros del valor del error asociado a la neurona.

A continuación vemos cada uno de estos bloques con detalle.

Pesos neurona En la figura C.19 podemos ver el bloque de pesos:En el modelo de simulación se incluye un modelo de RAM de ES2 con latches a lasalida. El funcionamiento de la RAM es el siguiente:

� Lectura: Cuando ME=’1’, la RAM captura la dirección de la memoria, poniendoel valor contenido en dicha posición de memoria en el latch de salida (bus_salidade la RAM).

� Escritura: Cuando ME=’1’ y WE=’0’, la RAM captura el valor de bus_entradaen la posición de memoria indicada por el vector dirección.

La señal ME es atacada por el reloj, concretamente por su inverso (not clk), de formaque en cada ciclo de reloj tenemos actualizado el valor del peso solicitado en el cicloanterior.

La escritura en memoria es activada cuando se activa la señal exterior de escrituradesde el control de capa (WE_ext) y además ocurre uno de estos dos casos: la neuronaestá seleccionada (caso de cargado o salvado de pesos) o bien la corrección de pesosestá activada (corrige_pesos=’1’).

Mediante la señal activa_bus_pesos podemos controlar cual es el dato de entrada a lamemoria RAM y el bus de pesos:

Page 241: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 223

Figura C.18: Componentes de la neurona de la capa oculta.

Page 242: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

224 Arquitecturas de controladores borrosos y neuronales digitales.

Figura C.19: Pesos neurona.

� activa_bus_pesos=’0’: En este caso el dato de entrada a la RAM será peso_co-rregido, y en el bus de pesos estará el valor del peso almacenado en la memoriaRAM correspondiente al vector direccion (siempre que la neurona esté seleccio-nada, durante el proceso de salvado de pesos). Las señales WE y peso_corregidodisponen de unos registros que se capturan en cada ciclo de reloj, para estabili-zar sus valores.

Calculos_neurona. Dependiendo del estado de la red y de la capa, en la neuro-na han de realizarse distintas operaciones aritméticas. En la figura C.20 podemosver los componentes esenciales y el flujo de datos del bloque calculos_neurona y suinterconexión con el resto de componentes esenciales de la neurona (en esta figura noaparecen las señales de control a fin de clarificar el flujo de datos entre los distintoscomponentes).

Figura C.20: Cálculos de la neurona (datos).

Según el estado de funcionamiento, las operaciones a realizar son:

Page 243: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 225

� Funcionamiento normal de la red: En el estado normal de simulación de lared, las operaciones a realizar en la neurona son el cálculo de los valores de lasmismas a partir de los valores de las entradas a la capa y de los pesos de inter-conexión de las mismas y la neurona. Para calcula el valor de la neurona, enel bloque calculos_neurona se calcula el valor de la función neta (sobre la cualhabrá que aplicar una función de activación, tipo rampa, en el bloque proceso),según la fórmula:

netai =nentradasX

j

pesoij � entradaj (C.17)

Para ello, antes de comenzar la operación se reinicializa el valor del acumula-dor (activa_acumulador=’0’), y se activa el contador de entradas a la capa (ac-tiva_contador_entradas=’1’, cuenta_contador_entradas=’1’), por lo que en cadaciclo de reloj disponemos de una entrada en el bus de entrada, así como del pesoasociado a dicha entrada en la salida del bloque de pesos.

Durante el proceso del cálculo se activa el acumulador, capturando en cada ciclode reloj el valor de salida del sumador. En la figura C.21 podemos ver el flujode datos en el proceso.

Figura C.21: Cálculos del valor de la neurona.

� Cálculo del error asociado a la neurona : Durante el proceso de aprendizajede la red, las neuronas de la capa oculta han de calcular el término de errorasociadas a las mismas. El término de error asociado a la neurona es:

errori = f0

(netai) =nncpXj

pesocpij � error

cpj (C.18)

Donde nncp es el número de neuronas de la capa posterior y cp representa ala capa posterior. Los términos peso x error son facilitados a la neurona por

Page 244: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

226 Arquitecturas de controladores borrosos y neuronales digitales.

la capa posterior mediante el bus de salida de la capa oculta, los cuales se vansumando en el acumulador. La multiplicación por la pendiente de la funciónde activación correspondiente al valor actual de la neurona se efectúa el bloqueproceso. En la figura C.22 podemos ver el flujo de datos en el proceso.

Figura C.22: Cálculos del error de la neurona

� Propagación hacia atrás: Cuando la capa anterior está en proceso de cálculo delerror de cada una de sus neuronas, la capa oculta va suministrando a la mismalos sumandos del término de error mediante el bus de entrada de la capa oculta.El término de error es:

errori = pesoi � error (C.19)

En la figura C.23 podemos ver el flujo de datos en el proceso.

Figura C.23: Propagación hacia atrás.

Page 245: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 227

� Corrección de los pesos : Cada uno de los pesos corregidos responden a la si-guiente formulación:

pesoi(t+ 1) = pesoi(t) + � � error � entradai (C.20)

Sólo son necesarios una multiplicación y una suma (la multiplicación por latasa de aprendizaje se realiza en el bloque proceso), por lo que no son necesariosvarios ciclos de reloj en los que ir acumulando valores de suma en el registroacumulador. Simplemente se activan los buses correspondientes y se espera aque el bloque pesos_neurona realice la escritura del nuevo peso. En la figuraC.24 podemos ver el flujo de datos en el proceso.

Figura C.24: Corrección de pesos.

Para la realización de estas operaciones se han dimensionado los tamaños delsumador, multiplicador y acumulador tal y como se indica a continuación

� Multiplicador:

– bus_mult1: Recibe valores de neurona y de error, ambos con signo. El ta-maño de ambos es tamano_bus_neurona+1 (el valor de neurona procededel bus de entrada, el cual contiene el valor de la neurona más 1 bit designo, ajustado a 0’).

Bus_mult1=Tamano_bus_neurona+1

– bus_mult2: Recibe valores de peso y de error, ambos con signo. A priorise desconoce cual de estos vectores va a ser de mayor tamaño (peso: ta-mano_bus_pesos, error: tamano_bus_neuronas+1). Se ajusta el vector deerror al tamaño del vector de peso (función AJUSTA definida en el archivode configuración mediante la cual se ajustan los tamaños de los vectorescon signo, saturando los mismos caso de ser necesario).

Bus_mult2=Tamano_bus_pesos

Page 246: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

228 Arquitecturas de controladores borrosos y neuronales digitales.

Por tanto, para realizar las operaciones de multiplicación sin sobrepasar el ta-maño del resultado el tamaño del multiplicador es:

Multiplicador=Tamano_bus_neurona+Tamano_bus_pesos+1

� Sumador:

– bus_sum1: Recibe valores de señal procesada y de acumulador, ambos consigno. El tamaño de ambos es tamano_acumulador.

Bus_sum1=Tamano_acumulador

– bus_sum2: Recibe valores del multiplicador, de peso y de bus de salida,todos ellos con signo. El mayor de ellos es el vector procedente del multi-plicador. Por tanto:

Bus_sum2=Tamano_bus_neurona+Tamano_bus_pesos+1

Para calcular el tamaño de salida del sumador hemos de tener en cuenta el nú-mero de veces que se va a sumar reiterativamente. Se van a realizar a lo sumotantas sumas como el número máximo de neuronas exista en una capa de lared. Por tanto, el tamaño del acumulador (y del sumador) será:

Acumulador=Tamano_bus_neurona+Tamano_bus_pesos++INTEGER_SIZE(número_máximo_neuronas+Polarización)

Proceso En la figura C.25 podemos ver el bloque proceso:

Figura C.25: Bloque proceso.

En primer lugar hay que destacar que este bloque no está gobernado por la señal dereloj, dado que está compuesto de una serie de puertas lógicas para la realizaciónde ciertas operaciones matemáticas sobre una señal de entrada. Estas operacionesson la multiplicación y la división por potencias de 2, además de la aplicación de

Page 247: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 229

funciones rampa con pendientes asimismo potencia de 2. Más adelante veremos quecontiene un latch para la captura del estado de saturación de la neurona; este latches capturado por la señal captura_registro. Las operaciones a realizar en proceso sonlas siguientes:

� Funcionamiento normal: En el funcionamiento normal de la red en la que lasneuronas están calculando sus valores a partir de las entradas, vimos que en elbloque calculos_neurona se van sumando los términos de la función neta en elregistro acumulador. Para calcular el valor de la neurona, sobre el valor de lafunción neta habrá que aplicar la función de activación, que en el caso del tipode red implementado en este proyecto, son del tipo rampa variable (controladasmediante la señal valor_rampa). La formulación del valor de la neurona es:

valor neurona = f(func: neta) (C.21)

En la figura C.26 podemos ver gráficamente la función de activación f, con al-gunos valores de pendiente de la rampa y para una resolución de neuronas de3 bits.

Figura C.26: Función activación (rampa).

A la vez que se calcula el valor de la neurona según la función de activación, seajusta dicho valor a un número entero positivo de tamano_bus_neuronas bits.Cuando se recibe la señal captura_registro=’1’ (momento en el que el registrode la neurona captura el valor procesado), se captura si ha habido saturacióndel valor o no, dado que este dato es necesario en el proceso de aprendizaje (casode haber saturado la neurona, en el aprendizaje se aplica una pequeña rampaen el cálculo del error para evitar que la red se quede estancada).

� Cálculo del error y corrección de pesos: En estos procesos es necesario multipli-car o dividir por potencia de 2 (aplicación de la tasa de aprendizaje en el casode la corrección de pesos y aplicación de la pendiente de la rampa en caso delcálculo del error). En la figura C.27 podemos ver gráficamente estas operacio-nes:

En la figura C.28 podemos ver los componentes esenciales del bloque:

Page 248: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

230 Arquitecturas de controladores borrosos y neuronales digitales.

Figura C.27: Multiplicación/División por potencias de 2.

Figura C.28: Componentes del bloque proceso.

Page 249: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 231

Figura C.29: Registro de la neurona.

Registro Neurona En la figura C.29 podemos ver el bloque de registro del valorde la neurona:Al recibir la señal captura_registro=’1’, en el próximo ciclo de reloj se capturará elvalor de la neurona procedente del bloque proceso. Este bloque activa el bus de salidade la neurona siempre que la neurona esté seleccionada y la red esté en modo deejecución normal o en modo de corrección de pesos.

Registro error En la figura C.30 podemos ver el bloque de registro del error dela neurona:

Figura C.30: Registro de error

Al recibir la señal captura_error=’1’, se capturará en el próximo ciclo de reloj el valordel error a la salida del bloque proceso.

Neurona de polarización En caso de existir polarización de la red (archivo deconfiguración de la red), es un registro imaginario con valor máximo caso de estaractivada la polarización de esta capa, o valor cero en caso contrario.

Page 250: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

232 Arquitecturas de controladores borrosos y neuronales digitales.

C.3.6 Código VHDL

En este apartado reproducimos una parte del código VHDL que describe la neurona.La totalidad del código puede encontrarse en [24].

neurona.vhd

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;library WORK;use WORK.tipos.all;

entity neurona isgeneric( capa:integer:=2 );port( control_neurona:in std_logic_vector(8 downto 0);

neurona_seleccionada:in std_logic;bus_entrada:inout signed(Tamano_bus_neuronas downto 0);bus_salida:inout signed(Tamano_bus_neuronas downto 0);direccion_peso:in tipo_selector;valor_rampa:in integer range 0 to Numero_valores_proceso;tasa_aprendizaje:in integer range 0 to Numero_valores_proceso;bus_pesos:in signed(Tamano_bus_pesos-1 downto 0);clk:in std_logic

);end neurona;

architecture func_neurona of neurona is

component pesos_neuronageneric( capa:integer );port( clk:in std_logic;

direccion:in tipo_selector;bus_pesos:in signed(Tamano_bus_pesos-1 downto 0);

activa_bus:in std_logic;peso_corregido:in signed(Tamano_bus_pesos-1 downto 0);WE_ext:in std_logic;neurona_seleccionada:in std_logic;corrige_peso:in std_logic;

peso:out signed(Tamano_bus_pesos-1 downto 0));

end component;

component calculos_neuronaport( clk:in std_logic;

activa_acumulador:in std_logic;modo_ejecucion:in std_logic;

Page 251: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 233

calcula_error:in std_logic;backpropagation:in std_logic;corrige_peso:in std_logic;neurona_seleccionada:in std_logic;peso:in signed(Tamano_bus_pesos-1 downto 0);bus_entrada:inout signed(Tamano_bus_neuronas downto 0);bus_salida:in signed(Tamano_bus_neuronas downto 0);error:in signed(Tamano_bus_neuronas downto 0);acumulanding:in signed(Tamano_acumulador-1 downto 0);incremento:in signed(Tamano_bus_neuronas downto 0);salida:out signed(Tamano_acumulador-1 downto 0);peso_corregido:out signed(Tamano_bus_pesos-1 downto 0)

);end component;

component procesoport( acumulador:in signed(Tamano_acumulador-1 downto 0);

valor_rampa:in integer range 0 to Numero_valores_proceso;tasa_aprendizaje:in integer range 0 to Numero_valores_proceso;modo_ejecucion:in std_logic;calcula_error:in std_logic;corrige_peso:in std_logic;captura_registro:in std_logic;senal_procesada:out signed(Tamano_bus_neuronas downto 0);valor_neurona:out unsigned(Tamano_bus_neuronas-1 downto 0)

);end component;

signal WE:std_logic;signal activa_acumulador:std_logic;signal modo_ejecucion:std_logic;signal calcula_error:std_logic;signal backpropagation:std_logic;signal corrige_peso:std_logic;signal captura_registro:std_logic;signal captura_error:std_logic;signal peso:signed(Tamano_bus_pesos-1 downto 0);signal peso_corregido:signed(Tamano_bus_pesos-1 downto 0);signal acumulador:signed(Tamano_acumulador-1 downto 0);signal senal_procesada:signed(Tamano_bus_neuronas downto 0);signal neurona_in:unsigned(Tamano_bus_neuronas-1 downto 0);signal neurona_out:unsigned(Tamano_bus_neuronas-1 downto 0);signal proxima_neurona:unsigned(Tamano_bus_neuronas-1 downto 0);signal error_in:signed(Tamano_bus_neuronas downto 0);signal error_out:signed(Tamano_bus_neuronas downto 0);signal proximo_error:signed(Tamano_bus_neuronas downto 0);signal activa_bus_pesos:std_logic;

Page 252: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

234 Arquitecturas de controladores borrosos y neuronales digitales.

beginactiva_acumulador<=control_neurona(0);modo_ejecucion<=control_neurona(1);captura_registro<=control_neurona(2);calcula_error<=control_neurona(3);captura_error<=control_neurona(4);backpropagation<=control_neurona(5);corrige_peso<=control_neurona(6);WE<=control_neurona(7);activa_bus_pesos<=control_neurona(8);

error_in<=senal_procesada;

c1:pesos_neuronageneric map(capa)port map( clk,

direccion_peso,bus_pesos,

activa_bus_pesos,peso_corregido,WE,neurona_seleccionada,corrige_peso,peso

);c2:calculos_neurona

port map( clk,activa_acumulador,

modo_ejecucion,calcula_error,backpropagation,corrige_peso,neurona_seleccionada,peso,bus_entrada,bus_salida,error_out,acumulador,senal_procesada,acumulador,peso_corregido

);c3:proceso

port map( acumulador,valor_rampa,

tasa_aprendizaje,

Page 253: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 235

modo_ejecucion,calcula_error,corrige_peso,captura_registro,senal_procesada,neurona_in

);registro_neurona:process(neurona_in,neurona_out,captura_registro)

beginif captura_registro=’1’ then

proxima_neurona<=neurona_in;else

proxima_neurona<=neurona_out;end if;

end process;registro_error:process(error_in,error_out,captura_error,

neurona_seleccionada)begin

if (captura_error=’1’ and neurona_seleccionada=’1’) thenproximo_error<=error_in;

elseproximo_error<=error_out;

end if;end process;

busing_salida:process(neurona_out,neurona_seleccionada,modo_ejecucion,corrige_peso)

beginif (neurona_seleccionada=’1’ and

(modo_ejecucion=’1’ or corrige_peso=’1’)) thenbus_salida<=RESIGNED(neurona_out);

elsefor i in bus_salida’range loop

bus_salida(i)<=’Z’;end loop;

end if;end process;

reloj:process(clk,proxima_neurona,proximo_error)begin

if (clk’event and clk=’1’) thenneurona_out<=proxima_neurona;

error_out<=proximo_error;end if;

end process;end func_neurona;

configuration cfg_neurona of neurona isfor func_neurona

Page 254: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

236 Arquitecturas de controladores borrosos y neuronales digitales.

for c1:pesos_neurona use configuration WORK.CFG_PESOS_NEURONA;end for;

for c2:calculos_neurona use configuration WORK.CFG_CALCULOS_NEURONA;end for;

for c3:proceso use configuration WORK.CFG_PROCESO;end for;

end for;end cfg_neurona;

proceso.vhd

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;library WORK;use WORK.tipos.all;

entity proceso isport( acumulador:in signed(Tamano_acumulador-1 downto 0);

valor_rampa:in integer range 0 to Numero_valores_proceso;tasa_aprendizaje:in integer range 0 to Numero_valores_proceso;modo_ejecucion:in std_logic;calcula_error:in std_logic;corrige_peso:in std_logic;captura_registro:in std_logic;senal_procesada:out signed(Tamano_bus_neuronas downto 0);valor_neurona:out unsigned(Tamano_bus_neuronas-1 downto 0)

);end proceso;

architecture func_proceso of proceso is

signal preprocesado:signed(Tamano_acumulador-1 downto 0);signal intermedia:signed(Tamano_acumulador-1 downto 0);signal procesado:signed(Tamano_bus_neuronas downto 0);signal saturacion:std_logic;signal offset:integer range -1 to 8;

begincentrado:process(acumulador)

Page 255: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 237

variable mitad:signed(Tamano_bus_neuronas downto 0);variable overflow,overflops:std_logic;variable i:integer range Tamano_acumulador-1 downto 0;begin

mitad(mitad’left):=’1’;mitad(mitad’left-1):=’1’;for i in mitad’left-2 downto 0 loop

mitad(i):=’0’;end loop;overflow:=acumulador(acumulador’left); -- 100000000XXXfor i in acumulador’left-1 downto valor_neurona’left loop

overflow:=overflow and not(acumulador(i));end loop;overflops:=acumulador(acumulador’left); -- 100000001000overflops:=overflops and acumulador(valor_neurona’left);for i in acumulador’left-1 downto valor_neurona’left+1 loop

overflops:=overflops and not(acumulador(i));end loop;for i in valor_neurona’left-1 downto 0 loop

overflops:=overflops and not(acumulador(i));end loop;overflow:=overflow or overflops;case overflow is

when ’1’ =>preprocesado(preprocesado’left)<=’1’;for i in preprocesado’left-1 downto 0 loop

preprocesado(i)<=’0’;end loop;

when others =>preprocesado<=acumulador+mitad;

end case;end process;

bus_1:process(preprocesado,modo_ejecucion)variable i:integer range Tamano_acumulador-1 downto 0;begin

if modo_ejecucion=’1’ thenintermedia<=preprocesado;

elsefor i in intermedia’range loop

intermedia(i)<=’Z’;end loop;

end if;end process;

bus_2:process(acumulador,calcula_error,corrige_peso)variable i:integer range Tamano_acumulador-1 downto 0;begin

if (calcula_error=’1’ or corrige_peso=’1’) then

Page 256: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

238 Arquitecturas de controladores borrosos y neuronales digitales.

intermedia<=acumulador;else

for i in intermedia’range loopintermedia(i)<=’Z’;

end loop;end if;

end process;bus_Z:process(modo_ejecucion,calcula_error,corrige_peso)

variable i:integer range Tamano_acumulador-1 downto 0;begin

if (modo_ejecucion=’0’ and calcula_error=’0’and corrige_peso=’0’) then

for i in intermedia’range loopintermedia(i)<=’0’;

end loop;else

for i in intermedia’range loopintermedia(i)<=’Z’;

end loop;end if;

end process;offseting:process(valor_rampa,tasa_aprendizaje,modo_ejecucion,

corrige_peso,saturacion)begin

if modo_ejecucion=’1’ thenoffset<=desplazamiento(valor_rampa);

elsif corrige_peso=’1’ thenoffset<=desplazamiento(tasa_aprendizaje);

elsif saturacion=’0’ thenoffset<=desplazamiento(valor_rampa);

elseoffset<=desplazamiento(Numero_valores_proceso);

end if;end process;

procesing:process(intermedia,offset)variable saturnino:std_logic;variable punto_entrada:integer range 0 to Tamano_acumulador-1;variable signo:std_logic;variable i,j:integer range Tamano_acumulador-1 downto -1;begin

signo:=intermedia(intermedia’left);punto_entrada:=procesado’left-1+offset;-- Calculo de la saturacionsaturnino:=’0’;L1:for i in intermedia’left-1 downto 0 loop

exit L1 when i<=punto_entrada;saturnino:=saturnino or (intermedia(i) xor signo);

Page 257: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

C.3 Perceptrón multicapa 239

end loop;procesado(procesado’left)<=signo;case saturnino is

when ’0’ => -- No hay saturacionfor i in procesado’left-1 downto 0 loop

procesado(i)<=’0’;end loop;

L4:for i in procesado’left-1 downto 0 loopj:=i+offset;exit L4 when j<0;procesado(i)<=intermedia(j);

end loop;when others => -- Hay saturacion

for i in procesado’left-1 downto 0 loopprocesado(i)<=not(signo);

end loop;end case;

end process;senaling:process(procesado)

beginsenal_procesada<=procesado;

end process;neuroning:process(procesado,captura_registro,valor_rampa)

variable manolito:std_logic;variable i:integer range Tamano_bus_neuronas-1 downto 0;begin

manolito:=procesado(procesado’left) xorprocesado(procesado’left-1);

valor_neurona(valor_neurona’left)<=not(procesado(procesado’left));if (manolito=’1’ or valor_rampa=0) then

for i in valor_neurona’left-1 downto 0 loopvalor_neurona(i)<=not(procesado(procesado’left));

end loop;else

for i in valor_neurona’left-1 downto 0 loopvalor_neurona(i)<=procesado(i);

end loop;end if;if captura_registro=’1’ then

saturacion<=manolito;end if;

end process;end func_proceso;

configuration cfg_proceso of proceso isfor func_procesoend for;

Page 258: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

240 Arquitecturas de controladores borrosos y neuronales digitales.

end cfg_proceso;

Page 259: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

Bibliografía

[1] Special issue on engineering applications of fuzzy logic. Proc. of the IEEE, 83,1995.

[2] Special issue on low-voltage analog circuits. IEEE transactions on Circuits andSistems-II, 1995.

[3] Special issue on low-voltage analog circuits. Analog Int. Circts. and SignalProc., 1995.

[4] Special issue on applications of artificial neural networks. Proc. of the IEEE,84, 1996.

[5] A. Achyuthan and M.I. Elmarsy. Mixed analog/digital hardware synthesys ofartificial neural networks. IEEE Trans. on Computer-Aided Design of Integra-ted Circuits and Systems, 13, September 1994.

[6] M. Anguita, F.J. Pelayo, A. Prieto, and J. Ortega. Analog cmos implementationof a discrete-time cnn with programmable cloning templates. IEEE Trans. onCAS-II, 40:215–218, 1993.

[7] G. Ascia and V. Catania. Architecture of a 50 mfips fuzzy processor and therelated 1um vlsi cmos digital circuit. Proc. of on Microelectrnics for NeuralNetworks and Fuzzy Logic, 1997.

[8] G. Ascia and V. Catania. A parallel processor architecture for real-time fuzzyapplications. Fuzzy Hardware: Architectures and Applications, Kluwer Acade-mic Publishers, pages 181–198, 1997.

[9] I.A. Baktir and M.A. Tan. Analog cmos implementation of cellular neural net-works. IEEE Trans. on CAS-II, 40:200–206, 1993.

[10] A. Baschiroto and R. Castelo. Sc filter with rail-rail output swing. IEEE J.Solid State Circuits, pages 1979–1996, December 1997.

[11] A. Baschiroto, R. Castelo, and G.P. Montagna. Sc filter with rail-rail outputswing. Electronics Letters, pages 1365–1366, July 1998.

[12] I. Baturone, S. Sánchez-Solano, A. Barriga, and J. L. Huertas. Implementationof cmos fuzzy controllers as mixed-signal integrated circuits. IEEE Transac-tions on Fuzzy Systems, 5, February 1997.

Page 260: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

242 BIBLIOGRAFÍA

[13] G.F.D. Betta, S. Graffi, Z.M. Kovacs, and G. Massetti. Cmos implementation ofan analogically programmable cellular neural network. IEEE Trans. on CAS-II, 40:206–215, 1993.

[14] B.J. Blalock, P. E. Allen, and G.A. Rincón-Mora. Designing 1-v op amps usingstandard digital cmos technology. IEEE Transactions on Circuits and Systems-II, 45:769–780, July 1998.

[15] S. Bouras, M. Kotronakis, K. Suyama, and Y. Tsividis. Mixed analog-digitalfuzzy logic controller with continuous-amplitude fuzzy inferences defuzzifica-tion. IEEE Transactions on Fuzzy Systems, 6, May 1998.

[16] K. Bult and H. Wallinga. Compact low-voltage power-efficient operational am-plifier cells for vlsi. IEEE Journal of Solid–State Circuits, SC-22:357–365, June1987.

[17] R.G. Carvajal. Sistema de síntesis automática de controladores borrosos consalida vhdl. Proyecto Fin de Carrera, page 150, 1995.

[18] R.G. Carvajal, A.Torralba, M. Aguirre, and L.G. Franquelo. Automatic synt-hesis of fuzzy controllers using afan. Chapter 5 of the book Fuzzy Hardware:architectures and applications, 1997.

[19] R.G. Carvajal, A. Torralba, F. Colodro, and L.G. Franquelo. A hardware com-piler of fuzzy and neural controllers with vhdl output. Proc. of DCIS/SICD’95(in spanish), pages 356–359, October 1995.

[20] R.G. Carvajal, A. Torralba, F. Colodro, and L.G. Franquelo. An analog cmosuniversal membership function circuit with fully independent, adjustable pa-rameters. Proc. of the 12th Design of Circuits and Integrated Systems Confe-rence, DCIS’97, pages 407–411, November 1997.

[21] R.G. Carvajal, A. Torralba, and L. Franquelo. Automatic synthesis of neuraland fuzzy controllers with architecture optimization. IEEE Micro, 17:50–54,October 1997.

[22] R.G. Carvajal, A. Torralba, and L. G. Franquelo. Afan, a tool for the automaticsynthesis of neural and fuzzy controllers with architecture optimization. 1997IEEE International Symposium on Circuits and Systems, ISCAS’97, Jun 1997.

[23] R.G. Carvajal, A. Torralba, R. Millan, and L.G. Franquelo. Automatic synthesisof analog and mixed–signal fuzzy controllers with emphasis in power consump-tion. Proc. of the Int. Symp. on Circuits and System, ISCAS’99 (aceptado parasu publicación), June 1999.

[24] P. Cáceres. Sistema de diseño automático de redes neuronales. Proyecto Fin deCarrera, page 300, 1997.

[25] L.O. Chua and T. Roska. The cnn paradigm. IEEE Trans. on CAS-I, 40:147–156, 1993.

Page 261: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

BIBLIOGRAFÍA 243

[26] L.O. Chua and L. Yang. Cellular neural networks: Applications. IEEE Trans.on CAS-I, 35:1257–1272, 1988.

[27] L.O. Chua and L. Yang. Cellular neural networks: Theory. IEEE Trans. onCAS-I, 35:1257–1272, 1988.

[28] F. Colodro. Realizaciones electrónicas basadas en lógica estocástica de circuitosneuronales y borrosos. Tesis Doctoral, page 110, Diciembre 1996.

[29] F. Colodro, A. Torralba, R.G. Carvajal, and L.G. Franquelo. Pulse stream basedcnn hardware implementation. Proc. of the Int. Symp. on Circuits and Systems,ISCAS’98, June 1998.

[30] F. Colodro, A. Torralba, J. Tombs, and L.G. Franquelo. Pulse stream techni-ques for hardware. Fuzzy Hardware: Architectures and Applications, KluwerAcademic Publishers, Chapter 13, pages 283–294, 1997.

[31] A. Costa, A. Gloria, P. Faraboshi, and A. Pagni. A tool for automatic synthesisof fuzzy controllers. Proc. of IEEE International Conference on Fuzzy Systems,pages 1771–1775, 1994.

[32] A. Costa, A. Gloria, P. Faraboshi, and A. Pagni. A tool for automatic synthesisof fuzzy controllers. Proc. of the IEEE, 83:422–434, March 1995.

[33] J.M. Cruz and L.O. Chua. A cnn chip for connected component detection. IEEETrans. on CAS-I, 38:147–156, 1991.

[34] J. Deschamps. Fuzzy controller synthesis method. Fuzzy Hardware: Architec-tures and Applications, Kluwer Academic Publishers, pages 231–256, 1997.

[35] D. Driankov, H. Hellendoorn, and M. Reinfrank. An introduction to fuzzy con-trol. Springer-Verlag, 1:300, 1993.

[36] H. Eichfeld, T. Künemund, and M. Menke. A 12b general-purpose fuzzy logiccontroller. IEEE Transactions on Fuzzy Systems, 4:460–475, November 1996.

[37] H. Eichfeld, M. Lohner, and M. Muller. Architecture of a fuzzy logic contro-ller with optimized memory organization and operator design. Proc. Int. Conf.Fuzzy Systems, pages 1317–1323, 1992.

[38] F.O. Eynde and W. Sansen. Chapter 2. Analog Interfaces for Digital SignalProcessing Systems. Kluwer Academic Publishers, pages 62–77, 1993.

[39] G. Ferri. A 1.2v cmos op-amp with high driving capability. Proc. of IEEE Con-ference on Circuits and Systems, pages 436–439, 1997.

[40] G. Ferri, W. Sansen, and V. Peluso. A low voltage fully differential constant-gm rail-to-rail cmos operational amplifier. Analog Int. Circts. and Signal Proc.,16:5–15, 1998.

[41] A. Gabrielli, E. Gandolfi, M. Maseti, and M.R. Roch. Vlsi design and realisationof a 4 input high speed fuzzy processor. Proc. of IEEE International Conferenceon Fuzzy Systems, pages 779–785, 1997.

Page 262: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

244 BIBLIOGRAFÍA

[42] D. Galán, C.J. Jiménez, A. Barriga, and S. Sánchez-Solano. Vhdl package fordescription of fuzzy logic controllers. Proc. of the Euro-VHDL’95, pages 528–533, 1995.

[43] E. Gandolfi, A. Gabrielli, M. Maseti, and M.R. Roch. A dedicated parallel pro-cessor for fuzzy computation. Proc. of IEEE International Conference on FuzzySystems, pages 779–785, 1994.

[44] S. Guoand, L. Peters, and H. Surmann. Design and application of an analogfuzzy controller. IEEE Transactions on Fuzzy Systems, 4:429–438, November1996.

[45] M.M. Gupta and T. Yamakawa, editors. Fuzzy Computing: Theory, Hardwareand Applications. North–Holland, 1985.

[46] H. Harrer, J.A. Nossek, and R. Stelzl. An analog implementation of discrete–time cellular neural networks. IEEE Trans. on Neural Networks, 3:466–476,1992.

[47] T. Hollstein, S.K. Halgamuge, and M. Glesner. Computer-aided design of fuzzysystems based on generic vhdl specifications. IEEE Transactions on Fuzzy Sys-tems, 4:403–417, November 1996.

[48] S.C. Huang and M. Ismail. Linear tunable comfet transconductors. ElectronicsLetters, March 1993.

[49] U. Çilingiroglu, B. Pamir, Z.S. Günay, and F. DÜlger. Sampled-analog im-plementation of application-specific fuzzy controllers. IEEE Transactions onFuzzy Systems, 5, August 1997.

[50] D. Ishizuke, K. Tanno, Z. Tang, and H. Matsumoto. Design of a fuzzy controllerwith normalization circuits. Proc. Int. Conf. Fuzzy Systems, pages 1303–1308,March 1992.

[51] C.L. Janer, J.M. Quero, J.G. Ortega, and L.G. Franquelo. Fully parallel sto-chastic computation architecture. IEEE Transactions on Signal Processing,44, August 1996.

[52] J.S.R. Jang. Anfis: Adaptive–network–based fuzzy inference systems. IEEETrans. Syst., Man, and Cybern., 23:665–685, May 1993.

[53] C. Jou. Supervised learning in fuzzy systems: algorithms and computationalcapabilities. in Proc. 2nd Int. Conf. Fuzzy Systems, pages 1–6, Mar 1993.

[54] B. Kosko. Neural Networks and Fuzzy Systems. Prentice Hall, EnglewoodCliffs, 1987.

[55] B. Kosko. Fuzzy systems as universal approximators. in Proc. 1992 Int. Conf.Fuzzy Systems, pages 1153–1162, March 1992.

[56] K. Langen and J. Huising. Compact low-voltage power-efficient operationalamplifier cells for vlsi. IEEE J.Solid-State Circuits, 33:1482–1496, October1998.

Page 263: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

BIBLIOGRAFÍA 245

[57] J. Lazzaro, S. Ryckebusch, M. A. Mahowald, and C. A. Mead. Winner-take-all networks of o(n) complexity. Advances in Neural Information ProcessingSystems, D.S. Toureztky, ed. Morgan Hauffmann, 1:61–68, 1989.

[58] C.C. Lee. Fuzzy logic in control systems: Fuzzy logic controller-parts i and ii.IEEE Trans. on Syst. Man and Cybern., 20:404–435, 1990.

[59] T. Lee and H. Pan. A low–voltage cmos transconductor for vhf continuous–timefilters. Proc. of the 1997 IEEE ISCAS, pages 213–216, June 1997.

[60] L. Lemaitre, M. Patyra, and D. Mlynek. Synthesis and design automation ofanalog fuzzy logic vlsi circuits. Proc of IEEE Conference on Fuzzy Systems,pages 74–79, 1993.

[61] L. Lemaitre, M. Patyra, and D. Mlynek. Analysis and design of cmos fuzzy logiccontroller in current mode. IEEE Journal of Solid-State Circuits, 29:317–322,March 1994.

[62] B. Liu and C. Huang. Array based fuzzy inference mechanism implementedwith current–mode cmos circuits. 1994 IEEE International Symposium on Cir-cuits and Systems, ISCAS’94, Jun 1997.

[63] T. Lund, A. Torralba, R.G. Carvajal, and J. Ramírez-Angulo. A comparison ofarchitectures for a programmable fuzzy logic chip. Proc. of the Int. Symp. onCircuits and System, ISCAS’99 (aceptado para su publicación), June 1999.

[64] N. Manaresi and R. Rovatti. A silicon compliler of analog fuzzy controllers:From behavioral specifications to layout. IEEE Transactions on Fuzzy Systems,4:418–428, November 1996.

[65] R.J. Marks, editor. Fuzzy Logic Technology and Applications. IEEE Press,1985.

[66] J. Matas, L.G. Vicuña, and M. Castilla. A synthesis of fuzzy control surfacesin cmos technology. Proc of IEEE International Conference on Fuzzy Systems,pages 641–646, 1997.

[67] A. Mondragon, R.G. Carvajal, J. Pineda, and E. Sanchez-Sinencio. Frequency-domain intrachip communication schemes for cnn. Proc. of the WCNNA’98,June 1998.

[68] J.L. Mora, E. Galván, F. Colodro, F. Barrero, J.N.Tombs, and A. Torralba. Asi-tron: Asic for vectorial control of induction motors and speed regulation usingfuzzy logic. Proc. of the 5th IEEE International Conference on Electronics, Cir-cuits and Systems, ICECS’98, September 1998.

[69] F. Muñoz, R.G. Cavajal, A. Torralba, and L.G. Franquelo. Adapt: Mixed–signalasic for impedance adaptation in power line communications using fuzzy logic.On Proc of the DCIS’98, November 1998.

Page 264: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

246 BIBLIOGRAFÍA

[70] A. Murray, D. Corso, and L. Tarassenlo. Pulse–stream vlsi neural networksmixing analog and digital techniques. IEEE Trans. on Neural Networks, 2:193–204, 1991.

[71] B.Ñauta. A cmos transconductance–c filter for very high frequencies. IEEEJournal of Solid–State Circuits, SC-27:142–153, 1992.

[72] I. Opris. Rail-to-rail multiple-input min/max circuit. IEEE Trans. on CAS-II,45:137–140, January 1998.

[73] A. Paasio, A. Dawidziuk, and V. Porra. Pulse stream current mode cmos cnnchip. Fourth IEEE Int. Work. on CNN and Their Appl., pages 457–460, 1996.

[74] M.J. Patyra, J.L. Grantner, and K. Koster. Digital fuzzy logic controller: De-sign and impementation. IEEE Transactions on Fuzzy Systems, 4:439–459,November 1996.

[75] V. Peluso, P. Vancoreland, M. Steyaert, and W. Sansen. 900 mv differentialclass ab ota for switched opamp applications. Electronics Letters, pages 1455–1456, August 1997.

[76] J. Ramírez-Angulo. Current mirrors with low input voltage requirements forbuilt in current sensors. 37th Midwest Symp. on Circts. and Syst, pages 107–110, August 1994.

[77] J. Ramírez-Angulo. A bicmos universal membership function circuit with fullyindependent, adjustable parameters. Proc. Int. Conf. on Circuits and Systems,ISCAS’95, pages 275–279, 1995.

[78] J. Ramírez-Angulo. Ultracompact low-voltage analog cmos multiplier usingmultiple input loating gate transistors. 1996 European Solid-State Circuits,pages 99–103, May 1996.

[79] J. Ramírez-Angulo, R. G. Carvajal, J. Tombs, and A. Torralba. Low-voltagecmos op-amps for a supply close to a transistor’s threshold voltage, acceptedfor publiation. Proc. Int. Conf. on Circuits and Systems, ISCAS’99, 1999.

[80] J. Ramírez-Angulo, R. G. Carvajal, J. Tombs, and A. Torralba. A simple techni-que for op–amp continuous time 1v operation (aceptado para su publicación).IEE Electronic Letters, 1999.

[81] J. Ramírez-Angulo, S.C. Choi, and G. González-Altamirano. Low-voltage circuitbuilding blocks using multiple input floating gate transistor. IEEE Trans. OnCircuits and Systems I, 42:971–974, November 1995.

[82] J. Ramírez-Angulo, K. Treece, P. Andrews, and T. Choi. Current-mode andvolage-mode vlsi fuzzy processor architecture. Proc. Int. Conf. on Circuits andSystems, ISCAS’95, pages 1156–1159, 1995.

[83] A. Rodríguez, S. Espejo, R. Domínguez, J.L. Huertas, and E. Sánchez-Sinencio.Current-mode techniques for the implementation of continuous and discrete-time cellular neural networks. IEEE Trans. on CAS-II, 40:132–146, 1993.

Page 265: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

BIBLIOGRAFÍA 247

[84] T. Roska and J. Vandewalle, editors. Cellular Neural Networks. John Wileyand Sons, 1993.

[85] D.E. Rumelhart and J.L. McCleland, editors. Parallel and Distributed Proces-sing I,II. Cambridge: MIT Press, 1986.

[86] P. Saavedra, A. López, J. Zrilic, and J. Ramírez Angulo. New analog current–mode/voltage mode fuzzifier with continuously adjustable parameters. Proc. ofthe 12th Design of Circuits and Integrated Systems Conf., August 1997.

[87] M. Salerno, F. Sargeni, and V. Bonaiuto. 6x6dpcnn: a programable mixedanalogue–digital chip for cellular neural networks. Fourth IEEE Int. Work.on CNN and Their Appl., pages 451–456, 1996.

[88] A. Sanz. Analog implementation of fuzzy controller. Proc. of IEEE InternationalConference on Fuzzy Systems, 4:279–283, 1994.

[89] M. Sasaki, T. Inone, Y. Shirai, and F. Ueno. Fuzzy multiple-input maximumand minimum circuits in current mode and their analysis using bounded-difference equations. IEEE Trans. on Comput., C-39:768–774, June 1990.

[90] M. Sasaki, N. Ishikawa, F. Ueno, and T. Inone. Current mode analog fuzzyhardware with voltage input interface and normalization loop. Proc. Int. Conf.Fuzzy Systems, pages 451–457, March 1992.

[91] M. Sasaki, F. Ueno, and T. Inone. 7.5 mflips fuzzy microprocessor using simdand logic-in-memory structure. Proc. 2nd. Int. Conf. Fuzzy Systems, pages 527–533, 1993.

[92] H. Sjöland and S. Mattison. A 100mhz cmos wide-band amplifer. IEEE J.Solid-State Circuits, 33:631–634, April 1998.

[93] E. Sánchez-Sinencio, J. Ramírez Angulo, B. Linares-Barranco, and A. Rodrí-guez Vázquez. Operational transconductance amplifiers for nonlinear functionsyntheses. IEEE Journal of Solid–State Circuits, pages 1576–1585, December1989.

[94] Edgar Sánchez-Sinencio, editor. Low-Voltage Analog Circuits. IEEE PRESS,1998.

[95] M. Sugneo. An introductory survey of fuzzy control. Information Sciences,36:59–83, 1985.

[96] L. Sultan. Fdsp: A vlsi core for adaptative fuzzy and digital signal procesingapplications. Proc. of IEEE International Conference on Circuits and Systems,1998.

[97] T.Miki, H. Matsumoto, K. Ohto, and T. Yamakawa. Silicon implementation fora novel high-speed fuzzy inference engine: Mega flips analog fuzzy processor.Journal of Intelligent and Fuzzy Systems, 1:27–42, 1993.

Page 266: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

248 BIBLIOGRAFÍA

[98] M. Togai and S. Chiu. A fuzzy accelerator and a programming environment forreal-time fuzzy control. Proc. 2nd. IFSA Congress, pages 147–151, July 1987.

[99] M. Togai and H. Watanabe. Expert system on a chip: An engine for real-timeapproximate reasoning. IEEE EXPERT, pages 55–62, 1986.

[100] J. Tombs, A. Torralba, and L.G. Franquelo. A pwm fuzzy logic controller. IEEEMICRO, pages 68–71, October 1996.

[101] A. Torralba and F. Colodro. Two digital circuits for a fully parallel stochasticneural network. IEEE Trans. of Neural Network, pages 1264–1268, September1995.

[102] K. Tsukano and T. Inoue. Synthesis of operational transconductance amplifier-based analog fuzzy functional blocks and its application. IEEE Transactionson Fuzzy Systems, 3:61–68, February 1995.

[103] T. Tsukano, T. Inone, and F. Ueno. A design of current-mode analog circuitsfor fuzzy inference hardware systems. Proc. Int. Conf. Fuzzy Systems, pages1385–1388, March 1992.

[104] A.P. Ungering, K. Thuerner, and K. Goser. Architecture of a fuzzy logic con-troller with pipelining and optimized chip area. Proc. 2nd. Int. Conf. FuzzySystems, pages 447–452, 1993.

[105] J. Valdés. Controlador borroso analógico de propósito general: Hardware ysotware. Proyecto Fin de Carrera, page 150, 1998.

[106] J.E. Varrientos, E. Sánchez-Sinencio, and J. Ramírez-Angulo. A current-modecellular neural network implementation. IEEE Trans. on CAS-II, 40:147–155,1993.

[107] L.X. Wang. Fuzzy systems are universal approximators. in Proc. 1992 Int.Conf. Fuzzy Systems, pages 1163–1170, March 1992.

[108] L.X. Wang. Training of fuzzy logic systems using nearest neighborhood cluste-ring. in Proc. 2nd. IEEE Int. Conf. Fuzzy Systems, pages 13–17, March 1993.

[109] L.X. Wang and J.M. Mendel. Back-propagation fuzzy systems as nonlinear dy-namic system identifiers. in Proc. 1992 Int. Conf. Fuzzy Systems, pages 1409–1418, March 1992.

[110] L.X. Wang and J.M. Mendel. Fuzzy basis functions, universal approximation,and ortoghonal least-squares learning. IEEE Trans. Neural Networks, 3:807–814, Sptember 1992.

[111] P. Wasserman. Neurocomputing: Theory and Practice. Van Nostrand Reinhold,1990.

[112] H. Watanabe. Risc approach to design of fuzzy proc. architectures. Proc. Int.Conf. Fuzzy Systems, pages 431–443, 1992.

Page 267: CONTRIBUCIONES AL DISEÑO MICROELECTRÓNICO DE …carvajal/PhD.pdf · trónica de redes neuronales y sistemas borrosos. Ambos sistemas se caracte-rizan por el procesamiento masivo

BIBLIOGRAFÍA 249

[113] H. Watanabe and W. Dettloff. Reconfigurable fuzzy logic processor: A full cus-tom digital vlsi. Int. Workshop on Fuzzy System Applications, pages 49–50,Aug. 1988.

[114] H. Watanabe, W.D. Dettloff, and K.E. Yount. A vlsi fuzzy logic controller withreconfigurable, cascadable architecture. IEEE J.Solid-State Circuits, 25:376–382, April 1990.

[115] T. Yamakawa. A simple fuzzy computer hardware system employing min andmax operations-a challenge to 6th generation computer. Proc. 2nd. IFSA Con-gress, July 1987.

[116] T. Yamakawa and T. Miki. The current mode fuzzy logic integrated circuitsfabricated by the standard cmos process. IEEE Trans. Comp., C-35:161–167,1986.

[117] J. Yen, editor. Industrial Applications of Fuzzy Logic And Intelligent Systems.IEEE PRESS, 1997.

[118] F. You, S.H.K. Embabi, and E. Sánchez-Sinencio. Multistage amplifier topo-logies with nested gm-c compensation. IEEE J.Solid-State Circuits, 32:2000–2011, December 1997.

[119] F. You, S.H.K. Embabi, and E. Sánchez-Sinencio. Low-voltage class ab bufferswith quiescent current control. IEEE J. Solid State Circuits, pages 915–920,June 1998.

[120] L.A. Zadeh. Fuzzy sets. Informat. Control, 8:338–353, 1965.

[121] L.A. Zadeh. Outline of a new appoach to the analysis of complex system anddecision processes. IEEE Trans. on System, Man, and Cybern, SMC-3, 1973.

[122] L.A. Zadeh. The concept of a linguistic variable and its application to approxi-mate reasoning. Information Science, pages Part I: 199–249, Part II:301–357.Part III: 43–80., 1975.