Field Programmable Gate Array

Embed Size (px)

DESCRIPTION

Field Programmable Gate Array

Citation preview

Field Programmable Gate Array

Una FPGA deAltera.

Una Spartan deXilinx.UnaFPGA(del inglsField ProgrammableGate Array) es un dispositivosemiconductorque contiene bloques de lgica cuya interconexin y funcionalidad puede ser configurada'in situ'mediante un lenguaje de descripcin especializado. La lgica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por unapuerta lgicao unsistema combinacionalhasta complejossistemas en un chip.Las FPGAs se utilizan en aplicaciones similares a losASICssin embargo son ms lentas, tienen un mayor consumo depotenciay no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que aade una enorme flexibilidad al flujo de diseo), sus costes de desarrollo y adquisicin son mucho menores para pequeas cantidades de dispositivos y el tiempo de desarrollo es tambin menor.Ciertos fabricantes cuentan con FPGAs que slo se pueden programar una vez, por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los ASICs y las FPGAs reprogramables.Histricamente las FPGA surgen como una evolucin de los conceptos desarrollados en lasPALy losCPLD.ndice[ocultar] 1Historia: FPGA vs CPLD 2Historia 3Caractersticas 4Programacin 5Aplicaciones 6Tecnologa de la memoria de programacin 7Fabricantes 8Vase tambin 9Referencias 10Enlaces externos 10.1Recursos 10.2Utilidades 10.3MultimediaHistoria: FPGA vs CPLD[editar]

Arquitectura interna de una FPGA.Las FPGAs fueron inventadas en el ao 1984 porRoss Freemany Bernard Vonderschmitt, co-fundadores deXilinx, y surgen como una evolucin de los CPLDs.Tanto los CPLDs como las FPGAs contienen un gran nmero de elementos lgicos programables. Si medimos la densidad de los elementos lgicos programables en puertas lgicas equivalentes (nmero de puertas NAND equivalentes que podramos programar en un dispositivo) podramos decir que en un CPLD hallaramos del orden de decenas de miles de puertas lgicas equivalentes y en una FPGA del orden de cientos de miles hasta millones de ellas.Aparte de las diferencias en densidad entre ambos tipos de dispositivos, la diferencia fundamental entre las FPGAs y los CPLDs es su arquitectura. La arquitectura de los CPLDs es ms rgida y consiste en una o ms sumas de productos programables cuyos resultados van a parar a un nmero reducido debiestablessncronos (tambin denominados flip-flops). La arquitectura de las FPGAs, por otro lado, se basa en un gran nmero de pequeos bloques utilizados para reproducir sencillas operaciones lgicas, que cuentan a su vez con biestables sncronos. La enorme libertad disponible en la interconexin de dichos bloques confiere a las FPGAs una gran flexibilidad.Otra diferencia importante entre FPGAs y CPLDs es que en la mayora de las FPGAs se pueden encontrar funciones de alto nivel (como sumadores y multiplicadores) embebidas en la propia matriz de interconexiones, as como bloques de memoria.Historia[editar]Las FPGA son el resultado de la convergencia de dos tecnologas diferentes, los dispositivos lgicos programables (PLDsProgrammable Logic Devices) y los circuitos integrados de aplicacin especfica (ASIC [Application-Specific Integrated Circuit]). La historia de losPLDscomenz con los primeros dispositivos PROM (Programmable Read-Only Memory) y se les aadi versatilidad con los PAL (Programmable Array Logic) que permitieron un mayor nmero de entradas y la inclusin de registros. Esos dispositivos han continuado creciendo en tamao y potencia. Mientras, losASICsiempre han sido potentes dispositivos, pero su uso ha requerido tradicionalmente una considerable inversin tanto de tiempo como de dinero. Intentos de reducir esta carga han provenido de la modularizacin de los elementos de los circuitos, como los ASIC basados en celdas, y de la estandarizacin de las mscaras, tal como Ferranti fue pionero con laULA(Uncommitted Logic Array). El paso final era combinar las dos estrategias con un mecanismo de interconexin que pudiese programarse utilizando fusibles, antifusibles o celdas RAM y celdas ROM, como los innovadores dispositivos Xilinx de mediados de los 80. Los circuitos resultantes son similares en capacidad y aplicaciones a los PLDs ms grandes, aunque hay diferencias puntuales que delatan antepasados diferentes. Adems de en computacin reconfigurable, las FPGAs se utilizan en controladores, codificadores/decodificadores y en el prototipado de circuitos VLSI y microprocesadores a medida.El primer fabricante de estos dispositivos fueXilinx[2] y los dispositivos de Xilinx se mantienen como uno de los ms populares en compaas y grupos de investigacin. Otros vendedores en este mercado sonAtmel,Altera,AMDyMotorola.Caractersticas[editar]Una jerarqua de interconexiones programables permite a los bloques lgicos de un FPGA ser interconectados segn la necesidad del diseador del sistema, algo parecido a unbreadboard(es una placa de uso genrico reutilizable o semi permanente) programable. Estos bloques lgicos e interconexiones pueden ser programados despus del proceso de manufactura por el usuario/diseador, as que el FPGA puede desempear cualquier funcin lgica necesaria.Una tendencia reciente ha sido combinar los bloques lgicos e interconexiones de los FPGA con microprocesadores y perifricos relacionados para formar un Sistema programable en un chip. Ejemplo de tales tecnologas hbridas pueden ser encontradas en los dispositivos Virtex-II PRO y Virtex-4 de Xilinx, los cuales incluyen uno o ms procesadores PowerPCembebidosjunto con la lgica del FPGA. El FPSLIC de Atmel es otro dispositivo similar, el cual usa un procesadorAVRen combinacin con la arquitectura lgica programable de Atmel. Otra alternativa es hacer uso de ncleos de procesadores implementados haciendo uso de la lgica del FPGA. Esos ncleos incluyen los procesadores MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores decdigo abiertoLatticeMicro32 y LatticeMicro8.Muchos FPGA modernos soportan la reconfiguracin parcial del sistema, permitiendo que una parte del diseo sea reprogramada, mientras las dems partes siguen funcionando. Este es el principio de la idea de la computacin reconfigurable, o los sistemas reconfigurables.Programacin[editar]En la FPGA no se realiza programacin tal cual como se realiza en otros dispositivos comoDSP,CPLDomicrocontroladores. La FPGA tiene celdas que se configuran con una funcin especfica ya sea como memoria (FLIP-FLOP tipo D), como multiplexor o con una funcin lgica tipo AND, OR, XOR. La labor del "programador" es describir el hardware que tendr la FPGA. Por consiguiente, la tarea del "programador" es definir la funcin lgica que realizar cada uno de losCLB, seleccionar el modo de trabajo de cadaIOBe interconectarlos.El diseador cuenta con la ayuda deentornos de desarrolloespecializados en el diseo de sistemas a implementarse en un FPGA. Un diseo puede ser capturado ya sea como esquemtico, o haciendo uso de unlenguaje de programacinespecial. Estos lenguajes de programacin especiales son conocidos comoHDLoHardware Description Language(lenguajes de descripcin dehardware). Los HDLs ms utilizados son: VHDL Verilog ABELEn un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje rpido, y para validar un diseo en HDL, existen varias propuestas y niveles de abstraccin del diseo. Los niveles de abstraccin superior son los funcionales y los niveles de abstraccin inferior son los de diseo al nivel de componentes hardware bsicos. Entre otras, National InstrumentsLabVIEWFPGA propone un acercamiento de programacin grfica de alto nivel.Aplicaciones[editar]Cualquier circuito de aplicacin especfica puede ser implementado en un FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones donde ms comnmente se utilizan los FPGA incluyen a losDSP(procesamiento digital de seales), radio definido por software, sistemas aeroespaciales y de defensa, prototipos de ASICs, sistemas de imgenes para medicina, sistemas de visin para computadoras, reconocimiento de voz, bioinformtica, emulacin 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.Existe cdigo fuente disponible (bajo licenciaGNU GPL)1de sistemas comomicroprocesadores,microcontroladores,filtros, mdulos de comunicaciones ymemorias, entre otros. Estos cdigos se llamancores.Tecnologa de la memoria de programacin[editar]Las FPGAs tambin se pueden diferenciar por utilizar diferentes tecnologas de memoria: Voltiles: Basadas enRAM. Su programacin se pierde al quitar la alimentacin. Requieren una memoria externa no voltil para configurarlas al arrancar (antes o durante el reset). No Voltiles: Basadas enROM. Hay de dos tipos, las reprogramables y las no reprogramables.1. Reprogramables: Basadas enEPROMo flash. stas se pueden borrar y volver a reprogramar aunque con un lmite de unos 10.000 ciclos.2. No Reprogramables: Basadas enfusiblesoantifusibles. Solo se pueden programar una vez, lo que las hace poco recomendables para trabajos en laboratorios.Ejemplo de tarjeta de desarrollo que incorpora una FPGA:2

Fabricantes[editar]Desde principios de 2007, hay dos grandes productores de FPGA de propsito general, adems de un conjunto de otros competidores quienes se diferencian por ofrecer dispositivos con caractersticas nicas. Xilinxes uno de los dos grandes lderes en la fabricacin de FPGA. Alteraes el otro gran lder. Lattice Semiconductorlanz al mercado dispositivos FPGA con tecnologa de 90nm. Adems, Lattice es un proveedor lder en tecnologa no voltil, FPGA basadas en tecnologa Flash, con productos de 90nm y 130nm. Acteltiene FPGAs basados en tecnologa Flash reprogrammable. Tambin ofrece FPGAs que incluyen mezcladores de seales basados en Flash. QuickLogictiene productos basados en antifusibles (programables una sola vez). Atmeles uno de los fabricantes cuyos productos son reconfigurables (el Xilinx XC62xx fue uno de estos, pero no estn siendo fabricados actualmente). Ellos se enfocaron en proveer microcontroladoresAVRcon FPGAs, todo en el mismo encapsulado. Achronix Semiconductora travs de tecnologa de Intel de 22 nm, su catlogo incluye dispositivos FPGA de hasta 1.5 GHzVase tambin[editar] Gate array LabVIEW CPLD,GAL,PLA,PAL,PLD ASIC VLSI Circuito integrado Hardware GSD