|
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: |