FPGA-BASED SYSTEMS

Undergraduate Courses

Objetivos de la Asignatura

 

·         DCSE: Diseño de Circuitos y Sistemas Electrónicos (Ingeniería Telecomunicación)

·         EDCD: Estructura y Diseño de Circuitos Digitales (Ingeniería Informática)

 

Introducción:

Esta asignatura es el primero contacto del estudiante con la tecnología FPGA e intenta dar el entrenamiento necesario para trabajar en las diversas empresas nacionales y europeas que utilizan este tipo de circuitos

 

España sin duda es un país dado a las FPGAs. La relación se origina en la escasa implantación en la industria local, de tecnologías alternativas como Gate Arrays o Standard Cells, que ya existían en la década de los 80.  Los ingenieros españoles acogieron la lógica programable sin pre-conceptos, y sin la necesidad de descartar tecnologías que de otro modo estarían formando parte de sus productos. En otros países, los usuarios de FPGAs debieron vencer durante años la resistencia de los especialistas en las tecnologías que estos dispositivos iban a reemplazar. También ayudó la rápida incorporación de estos chips en la docencia de grado. Como ejemplo, en 1989 ya eran obligatorios en el Laboratorio de Electrónica Digital de la ETSIT-UPM.

 

La idea de fabricar un ASIC programable por el usuario estaba madura en la década de los ´80. Las primeras FPGAs originariamente se llamaban LCAs (Logic Cell Arrays), y habían salido al mercado en 1985. En España eran casi desconocidas pero utilizadas por empresas punteras como PESA. La nueva idea era sencilla y se basaba en 3 conceptos conocidos. En primer lugar, utilizar multiplexores para realizar funciones lógicas, en lugar del típico arreglo de transistores P y N.  Esta técnica era enseñada de generación en generación a los estudiantes de Circuitos Lógicos desde la época de los TTL, pues que permitía ahorrar chips, soldaduras y pistas.

 

La segunda innovación también era sencilla y estaba a la vista de todos. La red telefónica de la época no requería tender un hilo de cobre fijo entre cada par de abonados. En su lugar, existía una interconexión matricial de cables que se iban conectando mediante conmutadores hasta formar una unión galvánica entre los puntos a enlazar. Lo que valía para teléfonos también valdría para los circuitos integrados: no era necesario realizar la metalización fija final de los masked-programmed chips para mapear un diseño particular sobre la estructura estándar. Sólo se necesitaba difundir un patrón de segmentos de pistas junto con recursos de interconexión programables como multiplexores y llaves CMOS. 

 

La última idea de las FPGAs era consecuencia de las anteriores: una memoria almacenaría todos los valores de configuración del dispositivo. En el caso de Xilinx, esta memoria era externa y se utilizaría una cadena de scan-path para ingresar los bits que debían configurar tanto los multiplexores que mapeaban las funciones lógicas y los elementos que rutaban señales internas. Altera sorteó el problema mediante una EPROM interna, Lattice con una EEPROM también interna, y Actel con antifusibles. Sin embargo, el inconveniente de la propuesta de Xilinx no produjo rechazo alguno: la utilización de una EPROM auxiliar para arrancar un circuito programable complejo resultaba cotidiana para los miles usuarios de microprocesadores.

 

Las FPGAs fueron inventadas con la idea de evitar los riesgos de fabricar un masked-ASIC. Esto era parecido (y sigue siéndolo) a escribir un programa que se puede compilar una única vez. La reconfigurabilidad se consideraba una característica esencial para poder corregir los errores de diseño. Pero hubo muchas sorpresas. Poner a disposición de miles de ingenieros e investigadores un producto como la FPGA, que permite probar soluciones sin más coste que el tiempo que lleva implementarlas, fue como soltar conejos en Australia.

 

Los usuarios de µP y DSPs descubrieron que solidificar los algoritmos en el silicio producía unas aceleraciones muy importantes. Poner 100 multiplicadores en lugar de pasar 100 veces los datos por el multiplicador de la ALU del procesador realmente cambiaba la cosa. Nacen los primeros custom DSPs. Otros ingenieros montaron decenas de FPGAs en tarjetas, junto con memorias, FIFOS y matrices de conmutación, de modo de poder abordar problemas de mayor tamaño. Surge un nuevo acrónimo, FCCMs (FPGA-based custom computer machines), para indicar supercomputación a precios populares.

 

Diseñadores inquietos encontraron aplicaciones muy prácticas. El hardware upgrade sólo requería podía enviar a un cliente una nueva EPROM o reconfigurar de manera remota. Se podía hacer que un equipo realice diferentes funciones a lo largo del tiempo (entre ellas, auto-verificarse) simplemente mapeando diferentes configuraciones e ideando un mecanismo de carga. Si estas reconfiguraciones obedecían a causas externas, entonces se podía pensar en circuitos adaptativos e incluso evolutivos. Un procesador podía configurar una FPGA auxiliar antes correr un programa, obteniendo así un coprocesador a medida, con las funciones especiales requeridas para el cómputo. Después de un autotest, se podía reprogramar la FPGA para evitar una parte defectuosa del chip, creándose así un hardware cicatrizable. La programabilidad de los dispositivos también resultó crucial para poder manejar el stock de componentes en áreas como las telecomunicaciones, donde los cambios de estándares son vertiginosos.

 

Hoy en día la tecnología FPGA es omnipresente en comunicaciones, discos duros, automoción, cómputo intensivo, aplicaciones militares y de consumo. Las desventajas en velocidad y energía respecto a un masked-ASIC se compensan de dos modos. Por un lado, las compañías de FPGAs, todas fabless, acceden en primer lugar a las fábricas con tecnologías más avanzadas debido a su volumen y la regularidad de sus circuitos. Por otro lado, los dispositivos incluyen cada vez más bloques hardwired dentro del chip. Así, el campo de aplicación aumenta año tras año. A ello se suman las nuevas combinaciones on-chip de procesador más FPGAs, que una y otra vez aparecen en la historia de estos dispositivos.

 

Objetivos de la Asignatura

Los conocimientos que se deber aprender después del curso son:

·         Capacidad para especificación, negociación o diseño de un ASIC.

·         Conocimiento de la jerga de microelectrónica.

·         Práctica de codificación de VHDL sintetizable.

·         Técnicas para reducir retardo en FPGAs.

·         Realizar pruebas físicas sobre FPGAs.

·         Nociones de técnicas para facilitar la simulación y el test de circuitos.

·         Principio de Diseño Síncrono

·         Manejo optimizado de herramientas EDA.

La mayoría de las carreras de Ingeniería  incluyen algunas asignaturas sobre el diseño de circuitos integrados, si bien el enfoque y la tecnología en que se apoyan es variado.  La separación del diseño lógico en dos partes “Logica Digital” (primer año de la EPS) y “Sistemas Digitales” también ha sido propuesto en el resumen de las actividades del ACM/IEEE-CS Joint Curriculum Task Force 1991, donde también figura una asignatura “Diseño de Sistemas VLSI” como curso avanzado de grado.

 

Last update: