FPGA´S CONTENIDO pág. 1. INTRODUCCIÓN 2. DEFINICIÓN 3. HISTORIA 4. ELEMENTOS
4 5 6
Error! Bookmark not defined.
5. PROGRAMACIÓN 6. VENTAJAS 7. FABRICANTES 8. APLICACIONES APLICACIONES 9. CONCLUSIONES BIBLIOGRAFÍA
10 11 13 14 16 18
1.
INTRODUCCIÓN
Los circuitos integrados son omnipresentes en gran cantidad de productos industriales.Una de sus alternativas, los circuitos tipo FPGA, presentan una característica única: están al alcance de países con un desarrollo tecnológico medio. Las FPGAs (Field programmable Gate Arrays) aparecen en el Mercado en 1984, con una idea central: permitir realizar un circuito integrado a medida, sin los riesgos económicos asociados a las otras opciones tecnológicas. Hoy las FPGAs están presentes en campos tan diversos como la automoción, la electrónica de consumo, o la investigación espacial. La tecnología FPGA tiene una aplicación horizontal en todas las industrias que requieren computación a alta velocidad.
2
2.
DEFINICIÓN
Un FPGA (Field Programmable Gate Array o Arreglo de Compuertas Programables) es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada mediante un lenguaje de programación especializado. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip [1]. En el nivel más alto, los FPGAs son chips de silicio reprogramables. Al utilizar bloques de lógica pre-construidos y recursos para ruteo programables, se logra configurar estos chips para implementar funcionalidades personalizadas en hardware sin tener que utilizar una tablilla de prototipos o un cautín. Sólo deberá desarrollar tareas de cómputo digital en software y compilarlas en un archivo de configuración o bitstream 1 que contenga información de cómo deben conectarse los componentes. Se puede decir que estos componentes y la tecnología que alrededor de ellos se ha desarrollado, han revolucionado las técnicas de diseño de hardware, imprimiendo una velocidad y fiabilidad mayores a los diseños de sistemas electrónicos digitales. De hecho, hoy en día, un gran número de los sistemas electrónicos profesionales cuentan con FPGA como componentes fundamentales .
1
Serie de bytes, por lo general de 8 bits cada uno, y puede considerarse como un caso especial de un flujo de bits.
3
3.
HISTORIA
Las FPGA (Field Programmable Gate Arrays ), en principio llamadas LCA ( Logic Cell Array ) nacen en 1985 con una idea sencilla: un Gate Array tolerante a errores de diseño y programable o reprogramable por el usuario. Fueron inventadas en el año 1984 por Ross Freeman y Bernard Vonderschmitt, co-fundadores de Xilinx 2 . Históricamente las FPGA surgen como una evolución de los conceptos desarrollados en las PAL ( Programmable Array Logic ) y los CPLD (Complex Programmable Logic Device). Las FPGA son el resultado de la convergencia de dos tecnologías diferentes, los dispositivos lógicos programables (PLDs [Programmable Logic Devices] ) y los circuitos integrados de aplicación específica (ASIC [application-specific integrated circuit] ). La historia de los PLDs comenzó con los primeros dispositivos PROM (Programmable Read-Only Memory ) y se les añadió versatilidad con los PAL que permitieron un mayor número de entradas y la inclusión de registros. Esos dispositivos han continuado creciendo en tamaño y potencia. Mientras, los ASIC siempre han sido potentes dispositivos, pero su uso ha requerido tradicionalmente una considerable inversión tanto de tiempo como de dinero. Intentos de reducir esta carga han provenido de la modularización de los elementos de los circuitos, como los ASIC basados en celdas, y de la estandarización de las máscaras, tal como Ferranti fue pionero con la ULA (Uncommitted Logic Array ). El paso final era combinar las dos estrategias con un mecanismo de interconexión que pudiese programarse utilizando fusibles, antifusibles o celdas RAM, como los innovadores dispositivos Xilinx de mediados de los 80. Los circuitos resultantes son similares en capacidad y aplicaciones a los PLDs más grandes, aunque hay diferencias puntuales que delatan antepasados diferentes. Además de en computación reconfigurable, las FPGAs se utilizan en controladores, codificadores/decodificadores y en el prototipado de circuitos VLSI y microprocesadores a medida.
2
[10] http://www.xilinx.com/
4
4. ELEMENTOS
Cada chip FPGA está compuesto de un número finito de recursos predefinidos con interconexiones programables para implementar un circuito digital reconfigurable. En el nivel más bajo, los bloques de lógica configurables, como los segmentos o células lógicas, ofrecen dos componentes básicos: flip-flops y tablas de consulta (LUTs ). Es importante tomar esto en cuenta porque distintas familias de FPGAs se diferencian en la manera en que los flip-flops y las LUTs están empacados [6]. Los flip-flops son registros binarios de desplazamiento utilizados para sincronizar la lógica y ahorrar estados lógicos entre ciclos de reloj. En cada transición de reloj el flip-flop recibe el valor 1 ó 0 (VERDADERO o FALSO) en su entrada, y conserva esa constante de valor hasta la siguiente transición de reloj.
Figura 1. Estructura flip-flop
Las tablas de consulta ( LUTs ) significa “ Look Up Table ” y es conveniente pensar en esto como una ecuación matemática: R= S + L , donde “R ” es el resultado de lo que deseas obtener, “S ” es el archivo de origen y “L” es tu LUT o la diferencia necesaria entre tu archivo de origen y tu resultado deseado. En cualquier caso, el LUT es la forma de lograr la diferencia entre el archivo de origen y el resultado. Nunca es el resultado por sí mismo. Una jerarquía de interconexiones programables permite a los bloques lógicos de un FPGA ser interconectados según la necesidad del diseñador del sistema, algo
5
parecido a un breadboard (es una placa de uso genérico reutilizable o semipermanente) programable. Estos bloques lógicos e interconexiones pueden ser programados después del proceso de manufactura por el usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica necesaria. La arquitectura de un FPGA consiste en cinco elementos programables fundamentales [5]: • • • • •
CLB (Bloques Lógicos Configurables ) IOB (Bloques de entrada-salida ) BRAM (memoria RAM de bloque ) Multiplicadores DCM (Manejador de reloj digital )
Figura 2. Estructura FPGA
Los CLBs se pueden programar de diversas maneras logrando así una amplia gama de funciones lógica. Cada CLB está compuesto por cuatro slices y estos a su vez contienen las llamadas LUTs, las cuales son elementos basados en memoria. Las LUTs pueden tomar la forma de un bloque lógico e implementar multiplexores, o bien utilizarse como elementos de memoria (RAM distribuida) donde cada una tiene una capacidad de hasta 16 bits. También puede utilizarse como un registro de desplazamiento logrando retrasos de 16 ciclos de reloj. Los IOBs se encargan del flujo de datos desde y hacia el FPGA a través de los pines del chip. Soportan flujos de datos bidireccionales, operaciones tri-estados, y
6
un total de 24 estándares de señales incluyendo siete estándares diferenciales de alto desempeño. Poseen además control digital de impedancias. La RAM de bloque consiste en varios bloques (internos del FPGA) de 18 Kbits. Cada uno se comporta como un chip de memoria de doble puerto. Cada puerto tiene sus propias señales de control para las operaciones de lectura y escritura. Los Multiplicadores son bloques dedicados que efectúan esta operación entre dos números de 18 bits cada uno. A la salida se obtiene un número de 36 bits. Se puede asociar un bloque multiplicador con un bloque de RAM, de manera que se obtiene un multiplicador sincrónico con las salidas registradas. La cercanía física de los bloques multiplicadores y los bloques de RAM posibilita esta característica. Haciendo multiplicadores en cascada es posible lograr la multiplicación de más de dos números e incluso de números de más de 18 bits.
Fig. 4 (a) Multiplicador de 18 bits asincrónico. (b) Multiplicador de 18 bits con salidas registradas
Como último elemento entre los fundamentales del FPGA están los DCM . Por lo general, los miembros de la familia Spartan 3 de Xilinx, poseen cuatro DCMs. Estos elementos están destinados a proveer una señal de reloj de elevada exactitud. Eliminan los cambios de fase en la señal de reloj, así como las desviaciones de esta señal producto de perturbaciones externas, de altas temperaturas u otros efectos. Para esto implementan un DLL (en inglés, DelayLocked Loop). El DLL rastrea las desviaciones de la señal de reloj y a través de una realimentación logra eliminar el error en la señal original. El DCM es capaz de proveer al sistema de un conjunto de señales desfasadas con respecto a la señal de reloj original.
7
5. PROGRAMACIÓN
Anteriormente sólo los ingenieros con un profundo entendimiento de diseño de hardware digital podían trabajar con la tecnología FPGA. Sin embargo, el aumento de herramientas de diseño de alto nivel está cambiando las reglas de programación de FPGAs, con nuevas tecnologías que convierten los diagramas a bloques gráficos, o hasta el código ANSI C a circuitos de hardware digital [7]. El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el diseño de sistemas a implementarse en un FPGA. Un diseño puede ser capturado ya sea como esquemático, o haciendo uso de un lenguaje de programación especial. Estos lenguajes de programación especiales son conocidos como HDL o Hardware Description Language (lenguajes de descripción de hardware). Los HDLs más utilizados son:
• VHDL (Very High Speed Integrated Circuit ) • Verilog3 • ABEL (Advanced Boolean Expression Language)
En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje rápido, y para validar un diseño en HDL, existen varias propuestas y niveles de abstracción del diseño. Entre otras, National Instruments LabVIEW FPGA [2] propone un acercamiento de programación gráfica de alto nivel.
3
www.verilog.com, usado para modelar sistemas electrónicos.
8
6. VENTAJAS
Los cinco beneficios principales de la tecnología FPGA [9]. 1. 2. 3. 4. 5.
1.
Rendimiento Tiempo en llegar al Mercado Precio Fiabilidad Mantenimiento a largo plazo
Rendimiento
Aprovechando del paralelismo del hardware, los FPGAs exceden la potencia de cómputo de los procesadores digitales de señales (DSPs) rompiendo el paradigma de ejecución secuencial y logrando más en cada ciclo de reloj. BDTI, una destacada firma analista que realiza evaluaciones de referencia, lanzó evaluaciones mostrando cómo los FPGAs pueden entregar significativamente más potencia de procesamiento por dólar que una solución de DSP, en algunas aplicaciones. El controlar entradas y salidas (E/S) a nivel de hardware ofrece tiempos de respuesta más veloces y funcionalidad especializada que coincide con los requerimientos de una aplicación.
2.
Tiempo en llegar al mercado
La tecnología FPGA ofrece flexibilidad y capacidades de rápido desarrollo de prototipos para enfrentar los retos de que un producto se libere tarde al mercado. Usted puede probar una idea o un concepto y verificarlo en hardware sin tener que pasar por el largo proceso de fabricación por el que pasa un diseño personalizado de ASIC. Posteriormente podrá implementar cambios y realizar iteraciones de un diseño FPGA en cuestión de horas en vez de semanas. También existe hardware comercial listo para usarse (COTS) con diferentes tipos de E/S ya conectados a un chip FPGA programable por el usuario. El aumento en disponibilidad de herramientas de software de alto nivel disminuye la curva de aprendizaje con niveles de abstracción. Estas herramientas frecuentemente incluyen importantes núcleos IP (funciones pre-construidas) para control avanzado y procesamiento de señales.
9
3.
Precio
El precio de la ingeniería no recurrente de un diseño personalizado ASIC excede considerablemente al de las soluciones de hardware basadas en FPGA. La fuerte inversión inicial de los ASICs es fácilmente justificable para los fabricantes de equipos originales que embarcan miles de chips por año, pero muchos usuarios finales necesitan la funcionalidad de un hardware personalizado para decenas o cientos de sistemas en desarrollo. La misma naturaleza programable del silicio implica que no hay precio de fabricación o largo plazos de ejecución de ensamblado. Los requerimientos de un sistema van cambiando con el tiempo, y el precio de cambiar incrementalmente los diseños FPGA es insignificante al compararlo con el precio de implementar cambios en un ASIC antes de su lanzamiento.
4.
Fiabilidad
Mientras que las herramientas de software ofrecen un entorno de programación, los circuitos de un FPGA son una implementación segura de la ejecución de un programa. Los sistemas basados en procesadores frecuentemente implican varios niveles de abstracción para auxiliar a programar las tareas y compartir los recursos entre procesos múltiples. El software a nivel driver se encarga de administrar los recursos de hardware y el sistema operativo administra la memoria y el ancho de banda del procesador. El núcleo de un procesador sólo puede ejecutar una instrucción a la vez, y los sistemas basados en procesadores están siempre en riesgo de que sus tareas se obstruyan entre sí. Los FPGAs, que no necesitan sistemas operativos, minimizan los retos de fiabilidad con ejecución paralela y hardware preciso dedicado a cada tarea.
5.
Mantenimiento a largo plazo
Como se mencionó anteriormente, los chips FPGA son actualizables en campo y no requieren el tiempo y el precio que implica rediseñar un ASIC. Los protocolos de comunicación digital por ejemplo, tienen especificaciones que podrían cambiar con el tiempo, y las interfaces basadas en ASICs podrían causar retos de mantenimiento y habilidad de actualización. Los chips FPGA, al ser reconfigurables, son capaces de mantenerse al tanto con modificaciones a futuro que pudieran ser necesarias. Mientras el producto o sistema se va desarrollando, usted puede implementarle mejoras funcionales sin la necesidad de invertir tiempo rediseñando el hardware o modificando el diseño de la tarjeta.
10
7. FABRICANTES
A principios de 2007, el mercado de los FPGA se ha colocado en un estado donde hay dos productores de FPGA de propósito general que están a la cabeza del mismo, y un conjunto de otros competidores quienes se diferencian por ofrecer dispositivos de capacidades únicas.
• Xilinx es uno de los dos grandes líderes en la fabricación de FPGA. • Altera es el otro gran líder. • Lattice Semiconductor lanzó al mercado dispositivos FPGA con tecnología de 90nm. En adición, Lattice es un proveedor líder en tecnología no volátil, FPGA basadas en tecnología Flash, con productos de 90nm y 130nm. • Actel tiene FPGAs basados en tecnología Flash reprogramable. También ofrece FPGAs que incluyen mezcladores de señales basados en Flash.
• QuickLogic tiene productos basados en antifusibles (programables una sola vez). • Atmel es uno de los fabricantes cuyos productos son reconfigurables (el Xilinx XC62xx fue uno de estos, pero no están siendo fabricados actualmente). Ellos se enfocaron en proveer microcontroladores AVR con FPGAs, todo en el mismo encapsulado. • Achronix Semiconductor tienen en desarrollo FPGAs muy veloces. Planean sacar al mercado a comienzos de 2007 FPGAs con velocidades cercanas a los 2GHz. • MathStar, Inc. ofrecen FPGA que ellos llaman FPOA (Arreglo de objetos de matriz programable).
11
8. APLICACIONES
Cualquier circuito de aplicación específica puede ser implementado en un FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones donde más comúnmente se utilizan los FPGA incluyen a los DSP (procesamiento digital de señales), radio definido por software, sistemas aeroespaciales y de defensa, prototipos de ASICs, sistemas de imágenes para medicina, sistemas de visión para computadoras, reconocimiento de voz, bioinformática, emulación de hardware de computadora, entre otras. Cabe notar que su uso en otras áreas es cada vez mayor, sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo. También tienen cabida en empresas que realizan las actividades indicadas en el listado siguiente [10]:
Alarmas.
Arcos de seguridad de bancos.
Climatización de autobuses.
Comunicaciones por fibra óptica.
Conducción Automática de Trenes.
Control industrial.
Control de instalaciones eléctricas.
Electrónica de potencia.
Electrónica espacial.
Electrónica submarina.
Electrónica aplicada a hoteles.
Enclavadores Eléctricos.
Ensayo de materiales.
Equipos de medicina y radiología.
12
Herramientas EDA4.
Equipos de medidas de potencia.
Equipos de medidas en audio.
Equipos de transmisión de TV.
Equipos ferroviarios.
Equipos para parking públicos.
Estaciones terrenas.
Fabricación de azulejos y cerámicos.
Identificación dactilar.
Ingeniería Nuclear.
Internet.
Tarjeta inteligente.
Telemandos y Automatismos para Puertas.
Maquinaria de empaquetamiento de frutas.
Maquinaria para panaderías.
Navegación GPS.
Regulación de Tráfico.
Seguridad Electrónica.
4
Electronic Design Automation. Son las herramientas de hardware y software utilizadas en el diseño de sistemas electrónicos.
13
9. CONCLUSIONES
Desde que Xilinx los inventó en 1984, los FPGAs han pasado de ser sencillos chips de lógica de acoplamiento a reemplazar a los circuitos integrados de aplicación específica (ASICs ) y procesadores para procesamiento de señales y aplicaciones de control.
La adopción de chips FPGA en la industria ha sido impulsada por el hecho de que los FPGAs combinan lo mejor de los ASICs y de los sistemas basados en procesadores. Ofrecen velocidades temporizadas por hardware y fiabilidad, pero sin requerir altos volúmenes de recursos para compensar el gran gasto que genera un diseño personalizado de ASIC .
Tradicionalmente, los ingenieros de hardware han usado la tecnología de arreglo de compuerta programable en campo ( FPGA) con herramientas de programación hechas para expertos. Sin embargo, como los FPGAs se han vuelto más rápidos y más rentables, los ingenieros e investigadores con poca o ninguna experiencia en diseño de hardware digital están buscando aprovechar los FPGAs para crear soluciones personalizadas. Para abarcar este creciente interés, los proveedores están creando herramientas de más alto nivel que hacen más fácil programar FPGAs y brindar los beneficios de la tecnología FPGA a nuevas aplicaciones.
Con el desarrollo de esta tecnología, el diseño de hardware ha transitado vertiginosamente de la pura interconexión de circuitos integrados y componentes electrónicos a la programación software. No es extraño ver una placa de un equipo, incluso de alta tecnología, con solo algunos componentes discretos de montaje superficial, un oscilador y un FPGA. Las potencialidades de estos dispositivos hacen que se puedan agrupar en ellos un número nada despreciable de funciones y componentes complejas que antes constituían cada una un circuito integrado. Lo que se conoce como System on Programmable Chip (SoPC) implica lo descrito anteriormente, todo un sistema encapsulado enteramente en un FPGA.
14
BIBLIOGRAFIA
[1] E. Boemo Scalvinoni, “Estado del arte de la tecnología FPGA”, Cuaderno Tecnológico No1 - Microelectrónica, Instituto Nacional de Tecnología Industrial, Unión Europea, 2005. [2] FPGAs accelerate time to market for industrial designs, M. Thompson, EETimes, 2004. http://www.us.design-reuse.com/articles/8190/fpgas-accelerate-time-tomarket-for-industrial-designs.html [3] G. Sutter. "Bajo Consumo en FPGAs". Escuela Politécnica Superior, Universidad Autónoma de Madrid, 2005. [4] M. L López Vallejo, J. L. Ayala Rodrigo. "FPGA: Nociones básicas e implementación". Dpto. de Ingeniería, Universidad de Madrid, 2004. [5] Microcontroladores PIC. Detalles de la estructura de un FPGA, [en línea]. http://www.microcontroladorespic.com/tutoriales/FPGAs/estructuraconfiguracion.html [6] National Instruments, NI Developer Zone - FPGAs a Fondo [en línea]. http://zone.ni.com/devzone/cda/tut/p/id/8261 [7] R. D Cardenas Espinosa. "Curso FPGA (Programación de Arreglos de Compuertas)". UAM-Colombia, 2009. [8] Stephen D. Brown, Robert J. Francis, Jonathan Rose, and Zvonko G. Vranesic. Field-Programmable Gate Arrays. Kluwer Academic Publishers, Norwell, Massachusetts, 1992. [9] The Field-Programmable Gate Array (FPGA): Expanding Its Boundaries, InStat Market Research, April 2006 [Citado 02 feb 2011]. http://zone.ni.com/devzone/cda/tut/p/id/8259 [10] Xilinx Corporation. Notas de aplicación: DS003(v1.9), Xapp138 (v2.3), Xapp151(v1.5. Xapp153(v1.0) http://www.xilinx.com 15