Está en la página 1de 37

FPGAs y Cómputo Reconfigurable

Dra. Claudia Feregrino Uribe


Dr. René Cumplido Parra

Laboratorio de FPGAs y
Cómputo Móvil
http://ccc.inaoep.mx/fpgacentral

Ciencias Computacionales
INAOE
Noviembre 2002
Contenido
1. FPGA
2. Herramientas de diseño
3. Dispositivos FPGA
4. Cómputo reconfigurable
5. Aplicaciones del cómputo
reconfigurable
6. Reconfiguración Dinámica
7. Dispositivos
8. Conclusiones
1. FPGAs

n Field Programmable Gate Array -


Arreglo de compuertas
programable en el campo

n Es un circuito integrado que


contiene celdas lógicas
programables (64 a 8,000,000)

n Las celdas lógicas se


interconectan por medio de una
matriz de interconexiones
programables
n Un diseño se implementa en un FPGA:
n Especificando una función lógica simple para cada
celda, y
n selectivamente cerrando los switches en la matriz de
interconexión

n El arreglo de celdas lógicas forma una “fábrica”


de bloques básicos para los circuitos lógicos

n Diseños complejos se crean al combinar estos


bloques básicos para crear el circuito deseado
Arquitectura Genérica de un FPGA
Bloque Lógico Configurable
C1 C2 C3 C4

H1 DIN S/R EC
S/R
Control

G4 DIN
G3 G F'
SD

G2 Func. G' D Q

Gen. H'

G1
FPGA 1
EC
RD

H G'
Y
Func. H'
S/R

F4 Gen. Control

F3 F
Func. DIN
SD
F2 Gen.
F'
G'
D Q

F1 H'

EC
RD
1
H'
F'
X
K

CLB CLB

Switch
Matrix

Interconecciones
CLB CLB
Programables
¿Qué significa 'Field Programmable'?

n Field Programmable significa que la función del


FPGA es definida por una configuración del
usuario en lugar de definirla el fabricante del
dispositivo.
n Dependiendo del dispositivo, la
configuración es validada
permanentemente o
semipermanentemente, o
cargada desde una memoria
externa.

n Acceso a diseños complejos


sin el alto costo de ingeniería
asociado con un circuito
integrado de aplicación
específica (ASIC).
2. Herramientas de diseño de FPGAs
n Hay software especial para
definir las conexiones de los
switches y las funciones de
celdas lógicas.

n El software traduce
diagramas esquemáticos del
usuario o código de lenguaje
de descripción de hardware,
y luego valida el diseño
traducido.
n Para diseños complejos, se
prefiere codificar usando
HDL (Lenguajes de
Descripción Hardware)
n VHDL
n Handel-C

n Los diseños se codifican


(programan) y se sintetizan
(compilan) a hardware

n Se pueden crear bibliotecas de


funciones complejas que simplifican
el proceso de diseño
Herramientas de diseño
n Lenguajes: VHDL, Verilog, Handel-C

n Ambientes integrados: Xilinx ISE, Max Plus,


Libero

n Simuladores: Active HDL, ModelSim

n Síntesis: Synopsis FPGA Compiler, Synplicity,


Leonardo
Flujo de diseño de un ASIC Flujo de diseño de un FPGA
3. Dispositivos FPGA
Características de la familia Spartan
Características de los FPGAs Virtex

n La familia Virtex de 2.5-volts


ofrece caracteristicas
destinadas a aplicaciones de
alto desempeño, ej. video
n Recursos de memoria
n Bloques de RAM
n Interfaces de alta velocidad
para memoria externas
n Delay-Locked Loops (DLLs)
Familia de FPGAs Virtex II

• System Gates incluyen 20-30% de CLBs usado como RAM

• Celda lógica = (1) 4 Entradas (LUT) + Flip Flop + Lógica de acarreo


Densidades de FPGAs
n Spartan II XC2S15 15, 000*
n Spartan IIE XC2S150E 150,000
n Virtex E XCV50E 72,000
n Virtex E XCV3200E 4,047,000
n Virtex II XC2V40 40,000
n Virtex II XC2V8000 8,000,000

* Compuertas equivalentes (System gates)


Densidades de IP Cores
n Encriptador AES 40,000*
n Microcontrolador 80530 130,000
n Microcontrolador 8051 150,000
n Decodificador Viterbi 190,000
n Controlador de Ethernet 195,000
n Decodificador JPEG color 780, 000

* Compuertas equivalentes (System gates)


Costos de FPGAs
Varían dependiendo de la densidad y velocidad

n Spartan 20,000 compuertas ~ US$1

n Spartan 100,000 compuertas ~ US$20

n Virtex 300,000 compuertas ~ US$150

n Virtex II 8-millones compuertas ~ US$8,000


4. Cómputo Reconfigurable
El cómputo reconfigurable se
basa en dos ideas básicas:

n La arquitectura se adapta al
algoritmo a implementar y
no viceversa

n Proveen soporte de hardware solo a las


funciones requeridas por el algorítmo
Computación Reconfigurable

n Cómputo usando hardware que puede


adaptarse a nivel lógico para resolver
problemas específicos

n Sistema de procesamiento de información


donde el hardware puede ser reorganizado
para adaptarse a cambios en el flujo de
datos o algoritmos
Espectro de cómputo

n ASICs proporcionan gran eficiencia, pero poca


flexibilidad

n Procesadores son muy flexibles pero no están


optimizados para la aplicación

n El hardware reconfigurable ofrece una solución


intermedia
Formas de implementar
cómputo reconfigurable
¿Por qué es interesante?
n Los procesadores tradicionales no siempre cumplen con las
especificaciones de algunas aplicaciones

n Los avances en VLSI permiten explorar otras alternativas


de cómputo

n Relación hardware/software

n Área de investigación relativamente nueva

n Se requieren conocimientos de:


n VLSI
n Algoritmos computacionales
n Arquitectura de computadoras
n Compiladores
n Diseño digital, entre otras áreas
5. Aplicaciones del cómputo
reconfigurable
Aplicaciones potenciales:

n Compresión de datos
n Encriptado de datos
n Simulación de sistemas
físicos
n Procesamiento de señales digitales
n Procesamiento de imágenes y videos digitales
n Visión por computadora
n Sistemas en un chip para aplicaciones portatiles
¿Qué tienen en común
estas aplicaciones?
n Requieren de la ejecución de un número
significativo de operaciones aritméticas

n Los algoritmos involucran la ejecución de


muchas operaciones en paralelo

n Las operaciones se ejecutan en un orden fijo

n No requieren de un control sofisticado


6. Reconfiguración dinámica
n Involucra la adaptación del hardware sin detener
la ejecución de un proceso

n Partes del hardware pueden ser reconfiguradas


en respuesta a:

n Nuevos requerimientos de la aplicación


n Cambio en los tipos de datos a procesar
n Estímulos externos
¿Qué queda por resolver?
n ¿Cómo se integrarán los dispositivos reconfigurables a los
sistemas?

n ¿Cómo lograr que las arquitecturas reconfigurables


ofrezcan los beneficios de portabilidad y confiabilidad que
ofrecen las arquitecturas convencionales?

n ¿Cómo y cuándo se debe realizar la reconfiguración?

n ¿Cuál es la mejor forma de almacenar y administrar los


distintos contextos para la reconfiguración?
7. Dispositivos
n Procesadores configurables y
extendibles
n FPGAs
n Dispositivos híbridos
(FPGAs + procesadores RISC)
n Otras plataformas
Procesador ARCtangent –A5
n Procesador RISC/DSP 32-bits

n 4 Etapas de pipeline

n Instrucciones de 16/32 bits

n Extensiones para DSP


n Unidades MAC
n Memorias XY

n Configurable por el usuario


n Hasta 128 nuevas
instrucciones
Procesador Xtensa
n Procesador RISC 32-bits

n Instrucciones de 16/24 bits

n Configurable por el usuario


n Formato de datos
n Longitud de registros
n Instrucciones especializadas
Procesador Xtensa
Procesador Xtensa
Resultados de simulaciones
FPGAs – Virtex II de Xilinx
Dispositivos híbridos
Combinan lógica programable, memorias
y procesadores en un solo chip

n Virtex-Pro de Xilinx
n Excalibur de Altera
n TA7 CSoC de Triscend
Virtex-Pro de Xilinx
Excalibur de Altera
E7 CSoC de Triscend
8. Conclusiones
n FPGAs son una plataforma ideal para
investigación y desarrollo de sistemas digitales
complejos y sistemas en un chip

n Metodologías de diseño similares a ASIC y la


conveniencia del diseño de software

n El cómputo reconfigurable ofrece:


n Simplificación de dispositivos
n Menor tamaño y consumo de potencia
n Alto rendimiento

n Tecnología en constante evolución

También podría gustarte