Está en la página 1de 9

Dirección General de Educación Superior Tecnológica

Instituto Tecnológico de Mazatlán


Departamento de Ingeniería Eléctrica y Electrónica

Ingeniería Eléctrica
IELC-2010-211

Diseño Digital Con VHDL

ETF-1015

M.I. José Manuel Pastrano Balderas


Docente

Tarea 1
Características de los FPGA

Bernal Morales Jesús David


Nombre del alumno

MAZATLÁN, SINALOA, SEPTIEMBRE 2014


Introducción

En la electrónica digital existen muchas formas de obtener el mismo resultado.


Empezamos siempre por aprender el sistema numérico de base dos o binario y
luego saltamos a ver los tipos de compuertas lógicas y comportamiento y
funcionamiento para comenzar a hacer circuitos usando lógica combinacional.

Hacemos uso de las distintas formas existentes para controlar el funcionamiento de


nuestro arreglo de compuertas, hablamos de herramientas como el álgebra de
booleana, tablas de verdad, mapas de Karnaugh.

El siguiente paso sería trabajar con lógica secuencial y es aquí cuando pasamos de
trabajar sólo con compuertas lógicas a comenzar a usar flip-flops para hacer
contadores ascendentes, descendentes y hacerlos funcionar a nuestro gusto.

Si seguimos subiendo en la escalera nos damos cuenta de que existen muchas más
cosas que nos faltan por aprender y usar, y es aquí cuando conocemos los PLD y
sus distintas variedades. Es aquí cuando la cosa se pone más interesante y en lugar
de pasar unas cuantas horas haciendo ecuaciones y otras cuantas más armando un
circuito inmenso con una cantidad igual de grande de alambres que cruzan de un
lado a otro pasamos a sentarnos unas cuantas horas (o minutos dependiendo de la
habilidad) a describir el comportamiento de un circuito en una serie de líneas de
código que posteriormente se insertará en una de las variaciones de las PLD y
luego armar un circuito mucho más pequeño y que se comporte exactamente igual
como el otro que dijimos antes.

Este es el punto en el que podemos decir que estamos listos para dar los primeros
pasos para trabajar en el siguiente nivel de la escalera, las FPGA.
¿Qué es una FPGA?

Las FPGA son dispositivos semiconductores programables que están basados en


una matriz de Bloques Logicos Configurables (CLB) que están conectados por
interconexiones programables. Opuesto a las ASIC (Circuitos Integrados para
Aplicaciones Específicas), construidos específicamente para lo que fueron
diseñados, las FPGA pueden programarse para funcionar tal y como se requiera.
Aunque existen FPGAs que pueden programarse sólo una vez, la tendencia es
utilizar aquellas que pueden reprogramarse en la medida en que el diseño cambie.

Las FPGA permiten a los diseñadores cambiar estos diseños aún en las últimas
partes del periodo de diseño, incluso si el producto final ya ha sido manufacturado y
puesto en marcha.

La siguiente figura es un diagrama a bloques de la estructura básica de una FPGA.

Características comunes de las FPGA

Las FPGA han evolucionado más allá de las capacidades presentes en sus
predecesores y han incorporado bloques sólidos tipo ASIC comúnmente usados
como RAM, reloj y DSP (procesador digital de señales), por ejemplo. Los
componentes básicos en una FPGA son los siguientes:

 Bloques Lógicos Configurables (CLB): Son las unidades lógicas básicas en


las FPGA. Los números exactos y sus características varían en cada
dispositivo pero cada CLB consiste en una matriz configurable de switches
con 4 o 6 inputs, algunos circuitos de selección (MUX), y flip-flops. La matriz
de interruptores es altamente flexible y puede ser configurada para manejar
lógica combinacional, registradores de cambio o RAM. Como en cada caso,
se puede encontrar más información en las hojas técnicas de cada
dispositivo.

 Interconexiones: Mientras que los CLB proveen la capacidad lógica, las


interconexiones envían la señal entre los CLB y los inputs y outputs.
 SelectIO (IOBs): Actualmente las FPGA tienen soporte para docenas de
estándares I/O por lo que proporcionan la interfase ideal en un sistema. Los
inputs y outputs en las FPGA están agrupados y cada grupo es independiente
y capaz de soportar distintos estándares I/O.
 Memoria: Cuentan con un Bloque de RAM Embebida que permite tener
memoria dentro de un chip para nuestros diseños. Algunas cuentan con hasta
10Mbits de memoria repartida en bloques de 36Kbits.
 Gestión Completa de Reloj: Esta característica está presente en la mayoría
de los FPGA.
Aplicaciones de las FPGA

Debido a su naturaleza programable, las FPGA son ideales para trabajar en distintos
tipos de mercado. A continuación se muestran algunos ámbitos en los que pueden
ser usadas:

 Industria automotriz  Medicina  Audio


 Transmisión de  Comunicaciones  Seguridad
radio/TV inalámbricas  Video y
 Electrodomésticos  Comunicaciones producción digital
 Computación de alto alámbricas de imagenes
rendimiento
Considera que con un FPGA eres capaz, en teoría, de reinventar todo tipo de
dispositivos de cómputo. Incluso hacerlos trabajar en un mismo espacio y de forma
paralela.

Por supuesto, en la práctica la creación está limitada por las capacidades de cada
tarjeta FPGA, y también por la plataforma. Para trabajar con un FPGA debes contar
con un software especial creado por el fabricante. En Windows la experiencia es
completa, pero en Linux puede presentar inconvenientes.

Por cierto, FPGA Libre impulsa "el desarrollo con dispositivos FPGA utilizando
herramientas de software libre u open source". Además, fomenta "el intercambio y
desarrollo de cores IP con licencias que posean el mismo espíritu que las del
software libre".

Los FGPA comerciales tienen unos 25 años entre nosotros. Cada vez poseen más
áreas de aplicación (radioastronomía, emulación de hardware, bioinformática,
criptografía). Las universidades están extendiendo su uso como excelente
herramienta didáctica y de prototipado.

¿Cómo se programa una FPGA?

Como dijimos anteriormente, las FPGA cuentan con otros dispositivos cuya
configuración es con una función específica (flip-flops, MUX, etc), por lo que el
“programador” tiene que describir el hardware que tendrá la FPGA en cuestión. Por
ende, su tarea es definir la función lógica que realizará cada uno de los CLB y
seleccionar el modo de trabajo de cada IOB e interconectarlos.

Para esto el diseñador cuenta con herramientas especializadas en el diseño de


sistemas a implementarse en una FPGA. Esto se puede hacer de distintas maneras,
usando el modo esquemático o haciendo uso de un lenguaje de programación
especial. Para este caso hablamos de un lenguaje HDL (Hardware Description
Language). Los lenguajes más usados son:

 VHDL
 Verilog
 ABEL

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

¿Quién fabrica las FPGA?

Desde 2007 existen dos grandes productores de FPGA de propósito general,


además de un conjunto de otros competidores que se diferencian por ofrecer
dispositivos con características únicas.

 Xilinx es uno de los grandes líderes en la fabricación de FPGA.


 Altera es el otro gran líder.
 Lattice Semiconductor lanzó al mercado FPGA con tecnología de 90nm. Es
proveedor líder en tecnología no volátil, FPGA basadas en tecnología Flash.
 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 sólo una
vez)
 Atmel es uno de los fabricantes cuyos productos son reconfigurables. Se
enfocaron en proveer microcontroladores AVR con FPGAs, todo dentro del
mismo encapsulado.
 Achronix Semiconductor a través de tecnología de Intel de 22nm, su
catálogo incluye dispositivos FPGA de hasta 1.5GHz.

FPGA ALTERA
SPARTAN de XILINX
Conclusiones

Después de investigar y escribir acerca de las FPGA tuve una transformación total
de mi forma de ver la electrónica digital y de cómo se logra obtener algo tan
complejo como una computadora.

Me doy cuenta de que, relativamente, es muy sencillo desarrollar sistemas digitales


de gran complejidad tan solo sabiendo un poco de programación y el conocimiento
necesario para entender cómo funcionan estas tarjetas y saber describir el
comportamiento que deberán tener.

También es importante tener conocimientos previos para hacer el diseño del sistema
deseado de la manera más óptima posible y tener la capacidad (o habilidad) lógica
para que la descripción del hardware sea más sencilla.

Algo que debo destacar es la principal ventaja de las FPGA, estoy hablando de su
naturaleza reprogramable y el hecho de poder modificar su comportamiento en la
medida en que las necesidades del sistema cambien, o incluso iniciar el diseño
desde cero si así fuese requerido; y lo mejor de todo esto es que esto podría
hacerse en tan solo unos minutos una vez identificado el segmento que debería
modificarse.

Sin duda las FPGA ofrecen un universo de posibilidades y aplicaciones que de


hecho ya ayudan a resolver problemas en la vida actual. Estoy seguro que en un
futuro próximo saldrá al mercado algo mucho más poderoso que las FPGA y que
expandan el universo que estas nos han traído y será muy interesante aprender a
trabajar con ese sucesor cuando llegue a nosotros.
Referencias

 Field Programmable Gate Array (FPGA)


http://www.xilinx.com/training/fpga/fpga-field-programmable-gate-array.htm
 What is a FPGA?
http://www.xilinx.com/fpga/
 FPGA y el sorprendente poder del hardware reconfigurable
http://alt1040.com/2010/09/fpga-y-el-sorprendente-poder-del-hardware-
reconfigurable
 Programmable logic device (PLD)
http://en.wikipedia.org/wiki/Programmable_logic_device
 Field Programmable Gate Array
http://es.wikipedia.org/wiki/Field_Programmable_Gate_Array
 Circuito integrado de aplicación específica (ASIC)
http://es.wikipedia.org/wiki/Circuito_integrado_de_aplicaci%C3%B3n_espec%
C3%ADfica

También podría gustarte