Diferencia entre revisiones de «Matriz de puerta programable en campo»

Contenido eliminado Contenido añadido
m Deshecha la edición 115605045 de 200.25.160.129 (disc.): debido al vandalismo
Etiqueta: Deshecho
Mrisco (discusión · contribs.)
Algunas correcciones, adición de referencias, etc.
Línea 2:
[[Archivo:Fpga xilinx spartan.jpg|thumb|150px|Una Spartan de [[Xilinx]].]]
 
UnaUn '''matrizarreglo de puertascompuertas programablesprogramable en el campo'''<ref>{{Cita libro|apellidos=Morris Mano|nombre=M.|enlaceautor=|título=Diseño Digital|url=|fechaacceso=|año=2003|editorial=Pearson|isbn=970-26-0438-9|editor=|ubicación=|página=61|idioma=Español|capítulo=}}</ref><ref>{{Cita libro|apellidos=Gonzáles Maxinez|nombre=David Jaime|enlaceautor=|título=Programación de Sistemas Digitales con VHDL|url=|fechaacceso=|año=2014|editorial=|isbn=978-607-438-932-6|editor=Grupo Editorial Patria|ubicación=|página=330|idioma=|capítulo=}}</ref> o '''FPGA''' (del inglés ''field-programmable [[gate array]]''), es un dispositivo programable que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada en el momento, mediante un [[lenguaje de descripció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 [[System on a chip|sistemas en un chip]].
 
Las FPGA se utilizan en aplicaciones similares a los [[ASIC]] sin embargo son más lentas, tienen un mayor consumo de energía y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGA tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.
Línea 12:
[[Archivo:Fpga1a.gif|thumb|250px|Arquitectura interna de una FPGA.]]
 
Las FPGA fueron inventadas en el año 1984 por [[:en:Ross Freeman|Ross Freeman]] y Bernard VonderschmittVon Der Schmitt, cofundadores de [[Xilinx]], y surgen como una evolución de los CPLD.
 
Tanto los CPLD como las FPGA contienen un gran número de elementos lógicos programables. Si medimos la densidad de los elementos lógicos programables en puertas lógicas equivalentes (número de puertas NAND equivalentes que podríamos programar en un dispositivo) podríamos decir que en un CPLD hallaríamos del orden de decenas de miles de puertas lógicas equivalentes y en una FPGA del orden de cientos de miles hasta millones de ellas.
Línea 21:
 
== FPGA frente a ASIC ==
Las FPGA se utilizan en aplicaciones similares a los ASIC pero tienen una serie de inconvenientes históricos así como de ventajas respecto a estos últimos:
 
'''Inconvenientes:'''
Línea 31:
* Los costes de desarrollo y adquisición son mucho menores.
* El tiempo de diseño y manufacturación es menor.
 
Los inconvenientes listados aquí se mantienen más por razones históricas que por motivos reales, actualmente existen FPGAs lo suficientemente grandes para contener sistemas complejos, la velocidad de recursos de interconexión han aumentado exponencialmente y se ha reducido su consumo energético sobre todo para FPGAs destinadas especialmente para dispositivos de bajo consumo.
 
== Historia ==
Las FPGA son el resultado de la convergencia de dos tecnologías diferentes, los dispositivos lógicos programables (PLD [[Programmable Logic Devices]]) y los circuitos integrados de aplicación específica ([[Circuito integrado de aplicación específica|ASIC]], circuito integrado de aplicación específica). La historia de los [[PLDs|PLD]] comenzó con los primeros dispositivos [[PROM]] (memoria programable de solo lectura) y se les añadió versatilidad con los PAL (matriz lógica programable) 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 [[uncommitted logic array|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 y celdas ROM, como los innovadores dispositivos Xilinx de mediados de los 80. Los circuitos resultantes son similares en capacidad y aplicaciones a los PLD más grandes, aunque hay diferencias puntuales que delatan antepasados diferentes. Además de en computación reconfigurable, las FPGA se utilizan en controladores, codificadores/decodificadores y en el prototipado de circuitos VLSI y microprocesadores a medida.
 
El primer fabricante de estos dispositivos fue [[Xilinx]] [2] y los dispositivos de Xilinx se mantienen como uno de los más populares en compañías y grupos de investigación. Otros vendedores en este mercado son [[Atmel]], [[Altera]], [[AMD]] y [[Motorola]].
 
== Características ==
Línea 69 ⟶ 71:
* [[ABEL]]
 
En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipajeprototipado rápido, y para validar un diseño en HDL, existen varias propuestas y niveles de abstracción del diseño. Los niveles de abstracción superior son los funcionales y los niveles de abstracción inferior son los de diseño al nivel de componentes hardware básicos.
Entre otras, National Instruments [[LabVIEW]] FPGA propone un acercamiento de programación gráfica de alto nivel.
 
Línea 75 ⟶ 77:
Cualquier circuito de aplicación específica puede ser implementado en una FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones donde más comúnmente se utilizan las FPGA incluyen a los [[Procesamiento digital de señales|DSP]] (procesamiento digital de señales), radio definido por ''software'', sistemas aeroespaciales y de defensa, prototipos de ASIC, 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.
 
Existe código fuente disponible (bajo licencia [[Licencia pública general de GNU|GNU GPL]])<ref>''[http://www.opencores.org/ opencores.org]'' {{subst:en}}</ref><ref>{{Cita web|url=http://sba.accesus.com/sba-ip-cores|título=SBA IP Cores}}</ref> de sistemas como [[microprocesador]]es, [[microcontrolador]]es, [[filtro digital|filtros]], módulos de comunicaciones y [[memoria de ordenador|memorias]], entre otros. Estos códigos se llaman ''cores''.
 
Actualmente es posible implementar todo un [[System on a chip|SoC]] mediante una FPGA única, existen herramientas libres y núcleos de propiedad intelectual del código abierto que facilitan su implementación, tal es es caso de la [[Arquitectura de Bus Simple]] (SBA) que provee una librería de código VHDL portable para la implementación en FPGAs de distintos fabricantes.
 
== Tecnología de la memoria de programación ==
Línea 92 ⟶ 96:
== Fabricantes ==
A principios del 2007, el mercado de las FPGA se ha colocado en un estado en el que hay dos grandes productores de FPGA de propósito general y un conjunto de otros competidores que ofrecen dispositivos con características específicas.
* [http://www.xilinx.com/ Xilinx] es uno de los grandes líderes en la frabricaciónfabricación de FPGA.
 
* [https://www.altera.com/ Altera] es el otro gran gigante. Anunció un acuerdo con Intel en 2015 para desarrollar una plataforma de supercomputación con CPUs con FPGA integradas.
* [http://www.latticesemi.com/ Lattice Semiconductor] sacó al mercado FPGA con tecnología de 90nm. Es el líder en tecnología no volátil como FPGA basadas en tecnología Flash y con productos de 90nm y 130nm130 nm. En 2014, Lattice semiconductor comenzó a ofrecer dispositivos programables basados en RAM combinados con memoria no volátil no reprogramable.
* Actel (actualmente [http://www.microsemi.com/ Microsemi]) tiene FPGA basadas en tecnología Flash reprogramable.
* [http://www.quicklogic.com/ QuickLogic] dispone de productos basados en antifusibles, programables una sola vez.
Línea 139 ⟶ 143:
* [http://fpga4fun.com FPGA Tutoriales (inglés)]
* [http://www.dsp-fpga.com/ DSP-FPGA.com Revista de electrónica (inglés)]
* [http://www.openfpga.org OpenFPGA]
*[http://sba.accesus.com Simple Bus Architecture]
{{Wayback|url=http://www.openfpga.org/ |date=20070710211329 }}
* [http://www.opencores.org OpenCores.org] - Código abierto de algunas IP (Intelectual Property) (inglés)
* [https://web.archive.org/web/20130323013336/http://www.fpgafromscratch.com/ Diseño de FPGA desde cero (inglés)]
Línea 159 ⟶ 165:
* [http://www.clifford.at/icestorm/ Icestorm] - Documentación y utilidad de configuración para FPGA de Lattice. Junto a Yosys y Arachne-pnr forman un conjunto de herramientas libres para cerrar el ciclo de diseño completo, obteniendo el fichero de configuración (''bitstream'') a partir de código en Verilog
* [http://iverilog.icarus.com/ Icarus Verilog] - Simulador libre para Verilog
*[http://sba.accesus.com/software-tools/sba-creator SBA System Creator] - Herramienta para generar SoC basado en SBA.
* [http://gtkwave.sourceforge.net/ Gtkwave] - Visualizador libre de señales