1. Introducción a los FPGAS
1.2 Dispositivos Lógicos Programables
Un dispositivo lógico programable o PLD es un circuito integrado formado por un cierto
número de compuertas lógicas y/o módulos básicos cuyas conexiones pueden ser
programadas por el usuario final para construir circuitos digitales reconfigurables.
A diferencia de una compuerta lógica que tiene una función específica, un PLD no la tiene
al momento de su fabricación. Antes de su uso puedes ser programado.
1.2.1 Estado actual de la Lógica programable
En años recientes, la línea entre software y hardware se está borrando. Leguajes como Verilog
y VHDL permiten implementar hardware descargado en FPGA´s. Es por ello que la densidad
promedio de los dispositivos lógicos programables ha comenzado a subir considerablemente.
1.2.2 Clasificación
Tabla 1.1 Clasificación de los PLDs
PLD Nombre Compuertas Estructura Marcas
SPLD Dispositivo Lógico
Programable Simple
Hasta 2 K PAL SPLD simple 3.3 V XC9500XL
Xilinx
CPLD Dispositivo Lógico
Programable Complejo
Hasta 50 K PAL - XC95216 CPLD Xilinx
(6.4K)
- MAXII CPLD Altera
FPGA Matrices de Compuertas
Programables en Campo
Hasta 8M Matriz de
Bloques
Lógicos.
- Spartan 6 Xilinx (1M-6.8M)
- MAXSeries Altera.
SPLD
Dispositivo lógico Programable Simple. Son los PLDs más simples pequeños y baratos. El
término SPLDs hace referencia a una variedad de dispositivos lógicos como: ROMs (Read
Only Memory), PALs (Programable Array Logic), GALs (Generic Array Logic).
CPLD
Dispositivo Lógico Programable Complejo. Un CPLD es un circuito integrado equivalente
a varias PALs enlazadas por interconexiones Programables. Extiende el concepto de un
PLD a un, mayor nivel de integración ya que respecto a los SPLDs permiten implementar
sistemas con un mejor desempeño y reduce costos.
FPGA
Matrices de Compuertas Programables en Campo. Consiste en arreglos de varias celdas
lógicas las cuales se comunican unas con otras mediante canales de conexiones verticales y
horizontales. A diferencia de otros PLDs, no está limitado a la típica matriz and-or, sino
tiene una matriz interna configurable de bloques lógicos (CLBs) y un anillo de bloques de
entrada (IOs).
2. 1.2.4 Comparación Entre Microprocesadores Y FPGAs.
Dispositivo Microprocesadores FPGA
Tipo de Funciones No diseñada para funciones
particulares
No diseñada para funciones
particulares
Velocidad y Potencia Lento, de poca potencia Rápido y eficiente en potencia
Programación Reprogramable Reprogramable
Implementación En Software En Hardware
En el FPGA todos los procesos ocurren en paralelo, no concibe un sistema operativo que
ejecute algoritmos complejos en tiempo real. Mientras los microprocesadores ejecutan un
conjunto de instrucciones en una manera secuencial debido a que se basan en una
arquitectura de CPU.
1.2.5 Comparación entre CPLDs y FPGAs
Estos dispositivos lógicos programables son elaborados por los mismos fabricantes, pero
difieren en:
Lógica
En un CPLD, las funciones se implementan utilizando lógica AND-OR de dos niveles.
Mientras que en un FPGA, se realizan en múltiples niveles de lógica.
3. Interconexión
En un CPLD la interconexión es te tipo Cross bar, cada salida de LBs (Bloques Lógicos) es
directamente intercnoectable a cada entrada a través de 1 o 2 interruptores, En cambio un
FPGA tiene interconexiones segmentadas, las conexiones entre CLBs típicamente pasan a
través de varios interruptores.
Funciones embebidas de alto nivel
El FPGA tiene funciones embebidas de alto nivel (como sumadores y multiplicadores) e
incluso memorias embebidas. El CPLD no lo tiene.
Cantidad de Bloques Lógicos
EL FPGA contiene mayor cantidad de bloques lógicos que el CPLD.
Funciones Aritméticas
El FPGA tiene recursos especiales de ruteo para implementar funciones aritméticas
eficientes. El CPLD no lo tiene.
En general, los FPGAs pueden contener grandes diseños digitales, mientras que los CPLDs
pueden contener únicamente pequeños diseños.
1.2.6 VENTAJAS DE USAR FPGAs
Entre las ventajas más destacadas se puede mencionar:
Los FPGAs permiten construir bloques que admiten una buena personalización de
hardware, es decir incluyen facilidad de reprogramar en campo para solucionar
problemas de implementación sin necesidad de reemplazar el hardware.
Actualmente los FPGAs se presentan en tamaños utilizables a un precio admisible.
Estos los hacen factores efectivos para disminuir costos cuando se realizan
configuraciones individuales.
La tecnología FPGA es admisible donde la disponibilidad a largo plazo o ambientes
industriales severos están involucrados.
Su velocidad de procesamiento y flexibilidad, por lo que el uso de FPGAs para la
implementación de sistemas electrónicos cada vez es más demandante.
Verificación efectiva del diseño mediante simuladores.
Densidad de integración amplia, (hasta 6.8 millones de compuertas).
4. 1.2.7 aplicaciones de los FPGAs
Los FPGAs han ganado aceptación y han crecido rápidamente esta década debido a que
pueden ser utilizados en un amplio rango de aplicaciones.
Los FPGAs, facilitan el desarrollo e implementación de sistemas, digitales complejos. Son
dispositivos que combinan muchas de las novedades en el diseño de circuitos integrados para
la implementación de sistemas digitales, y brindan la posibilidad de ajustarse a necesidades
individuales, definidas por el usuario.
Las aplicaciones típicas son:
Lógica aleatoria.
Dispositivos controladores
Procesamiento digital de señales.
Procesamiento de imagen audio y video.
Soluciones militares
Telecomunicaciones
Redes.
Sistemas con bloques SRAM.
Supercomputadoras.
Emulación de hardware de computadora.
1.3FPGA
Figura 1.1 FPGA Spartan de Xilinx1
Field Programmable Gate Array (Matrices de Compuertas Programables en Campo). Es un
PLD de propósito general, que tiene capacidad lógica muy alta debido a que posee un arreglo
bidireccional de bloques lógicos comunicado por medio de una matriz de cables e
interruptores cuya interconexión y funcionalidad son programables por los usuarios.
El tamaño, estructura, número de bloques, cantidad de conexiones y forma de conectividad
difieren de una arquitectura a otra.
5. 1.3.1 Familia Spartan 6
Son FPGAs de la compañía Xilinx, La Familia Spartan 6 provee capacidades principales de
integración de sistemas con el más bajo costo total para aplicaciones de gran volumen, Los
trece miembros de la familia ofrece una densidad expandida que va desde 3,840 a 147,443
celdas lógicas.
La Familia de FPGAs Spartan 6 está diseñada para necesidades de alto volumen y
sensibilidad al costo. Todos los miembros de la familia ofrece rangos de densidad desde 2
millones hasta 6.8 millones de compuertas como se muestran en la tabla 1.3
Dispositivo Celdas
Lógicas1
Compuertas
Arreglo CLB
DSP48A13
Block RAM
Blocks
TotaldeBancos
I/O
I/OMax.Parael
usuario.
Bloquesdepunto
finalparaPCI
Xpress5
TransceptoresGTP6
Ranuras2
FlipFlops
Max.Dist.
RAM.
18
Kb4
Max.
Kb
XC6SLX4 3,840 177,777 600 4,800 75 8 12 216 4 132 0 0
XC6SLX9 9,152 423,703 1,430 11,440 90 16 32 576 4 200 0 0
XC6SLX16 14,579 674,953 2,278 18,224 136 32 32 576 4 232 0 0
XC6SLX25 24,051 1,113K 3,758 30,064 229 38 52 936 4 266 0 0
XC6SLX45 43,661 2,021K 6,822 54,576 401 58 116 2,088 4 358 0 0
XC6SLX75 74,637 3,455K 11,662 93,296 692 132 172 3,096 6 408 0 0
XC6SLX100 101,261 4,688K 15,822 126,576 976 180 268 4,824 6 480 0 0
XC6SLX150 147,443 6826K 23,038 184,304 1,355 180 268 4,824 6 576 0 0
XC6SLX25T 24,051 1,113K 3,758 30,064 229 38 52 936 4 266 1 2
XC6SLX45T 43,661 2,021K 6,822 54,576 401 58 116 2,088 4 358 1 4
XC6SLX75T 74,673 3,455K 11,662 93,296 692 132 172 3,096 6 408 1 8
XC6SLX100T 101,261 4,688K 15,822 126,576 976 180 268 4,824 6 480 1 8
XC6SLX150T 147,443 6,826K 23,038 184,304 1,355 180 268 4,824 6 576 1 8
Tabla 1.3 resumen de atributos de FPGAs Spartan 62
Notas:
1. La capacidad de celdas lógicas del FPGA Spartan 6 refleja el aumento de la capacidad de celdas
lógicas ofrecidas por la nueva arquitectura de 6 Entradas LUT.
2. Cada rejilla del FPGA Spartan-6 contiene cuatro LUTs y ocho flip-flops.
3. Cada rejilla DSP48A1 contiene un multiplicador de 18x18, un sumador, y un acumulador.
4. Los bloques de RAMs son fundamentalmente de 18Kb de tamaño. Cada bloque puede también ser
usado como dos independientes bloques de 9Kb.
5. Simplifican el proceso de diseño
6. Máximo número de emisores-receptores GTP.
2. Tabla tomada de Xilinx Spartan-6 Family Overview.
6. 1.3.1.1 Arquitectura de la familia Spartan 6
Cada bloque lógico configurable (BLC o CLB) en los FPGAs Spartan-6 consiste de dos
rejillas, organizadas lado a lado como partes de dos columnas verticales. Hay tres tipos de
rejillas CLB en la arquitectura del spartan-6: SLICEM, SLICEL y SLICEX. Cada rejilla
cpntiene cuatro LUTs, ocho flip-flos y lógica diversa. Las LUTs son de propósito general
que suporta lógica cobinacional y secuensial. Las herramientas de sintetizado toman ventaja
de esta altamente eficiente lógica, aritmética, y características de memoria.
1.3.1.1.1 IOBs (Bloques de Entrada y salida)
Controlan el flujo de datos entre las termnales I/O y la lógica interna del dispositivo. Cada
IOB soporta flujo de datos bidireccional y operación en tres estados.
Tabla 1.4.1 Numeración de bancos del Spartan-63
Banco Localización Descripción
0 Arriba Todos los dispositivos
1 Derecha Todos los dispositivos
2 Al fondo Todos los dispositivos
3 Izquierda Todos los dispositivos
4 Izquierda, arriba Banco extra en los dispositivos LX75/LX75T,
LX100/LX100T, LX150/LX150T
5 Derecha, arriba Banco extra en dispositivos LX75/LX75T, LX100/LX100T,
LX150/LX150T
101 Arriba, izquierda Banco de transceptor GTP en todos los dispositivos LXT
123 Arriba, derecha Bancode transceptores GTP en dispositivos LX45T, LX75T,
LX100T, LX150T
245 Al fondo a la izquierda Banco de transceptores GTP en dispositivos LX75T,
LX100T, LX150T
267 Al fondo a la derecha Banco de transceptores GTP en dispositivos LX75T,
LX100T, LX150T
Figura 1.3.1 Bancos I/O y GTP para LX45T, LX75T, LX100T y LX150T.4
3. Tabla tomada de Spartan-6 FPGA Packaging and Pinouts, Product Specification.
4. Figura tomada de Spartan-6 FPGA Packaging and Pinouts, Product Specification
7. 1.3.1.1.2 Bloque RAM
Cada FPGA Spartan-6 tiene entre 12 y 258 bloques RAM de doble puerto, cada una
almacena 18kb.
1.3.1.1.3 Control del reloj
Cada FPGA Spartan 6 tiene arriba de 6 CMTs, cada uno compuesto por dos DCMs y un
PLL, los cuales pueden ser usados individualmente o en serie.
Estos bloques proveen control completo sobre: frecuencia de reloj (multiplica o divide la
frecuencia de la señal del reloj con ciertos límites), desplazamiento en fase y retardos.
1.3.1.1.4 Spartan-6 FPGA Significado de la Información.
Figura 1.4.2 Significado de la Información.5
5. Figura tomada de Xilinx Spartan-6 FPGA Packaging and Pinouts, Product Specification.
1.4 FPGA SP605 Spartan-6 (kit de Evaluación)