2. FPGA’s
- Es un dispositivo semiconductor conformado por bloques
de lógica, cuya interconexión y funcionalidad puede ser
configurada luego de su fabricación
Qué es una FPGA?
Sistemas Digitales - FIUBA
3. FPGA’s
- Ross Freeman y Bernard Vonderschmitt, co-fundadores
de Xilinx, fueron quienes crearon este dispositivo en 1985,
un año después de fundar la empresa
Qué es una FPGA?
Sistemas Digitales - FIUBA
4. FPGA’s
- PLA (Programmable Logic Array)
- PAL (Programmable Array Logic)
- GAL (Gate Array Logic)
- CPLD (Complex Programmable Logic Device)
- FPGA (Field Programmable Gate Array)
Antecesores de las FPGAs
Sistemas Digitales - FIUBA
5. FPGA’s
- Prototipado rápido
- Time to market corto
- Costo más bajo asociado a NRE (ingeniería no
recurrente)
- Capacidad para reconfiguración en campo
- Ciclo de vida largo (reduce el riesgo de obsolescencia)
- Flexibilidad
- Posibilidad de reconfiguración del hardware sin necesidad
de cambio en la placa madre del diseño que la contiene
- Procesamiento en paralelo
Ventajas de las FPGAs
Sistemas Digitales - FIUBA
6. FPGA’s
- Comunicaciones
- Industria aeroespacial
- Procesamiento de imagen/video de alta resolución
- Procesamiento digital de señales
- Prototipado de ASICs
- Switches y Routers
- Amplificadores Lock-in
- Equipos médicos (Resonadores magnéticos)
Aplicaciones de las FPGAs
Sistemas Digitales - FIUBA
7. FPGA’s
Clasificación por tecnología de implementación
Sistemas Digitales - FIUBA
- SRAM:
La configuración de las celdas lógicas se almacena una memoria
estática. Volátil.
- SRAM con flash interna:
Similar a la anterior, salvo que contiene una memoria flash
interna. Elimina la necesidad de una flash externa
- Flash:
Usa tecnología flash para el almacenamiento de la
configuración. No volatil.
- Antifuse:
Inicialmente no conducen corriente. Al configurarla se
cierran los contactos. Sólo pueden configurarse una vez.
8. FPGA’s
Clasificación por tecnología de implementación
Sistemas Digitales - FIUBA
Tecnología
Característica SRAM Antifuse Flash
Reprogramable Si No Si
Memoria externa Si No No
Velocidad Más lenta Mejor Más lenta
Potencia Peor Segunda mejor Mejor
Densidad Mejor Segunda mejor Media
Tolerancia a la
radiación
Peor Mejor Media
9. FPGA’s
Clasificación por tecnología de implementación
Sistemas Digitales - FIUBA
Ejemplos de las distintas tecnologías
SRAM: la mayoría de los chips de las familias
Virtex y Spartan de la empresa Xilinx, y las Stratix y
Cyclone de Altera
10. FPGA’s
Clasificación por tecnología de implementación
Sistemas Digitales - FIUBA
Ejemplos de las distintas tecnologías
SRAM con flash interna: la familia Spartan-3AN de Xilinx, y
la familia LatticeXP de Lattice
11. FPGA’s
Clasificación por tecnología de implementación
Sistemas Digitales - FIUBA
Ejemplos de las distintas tecnologías
Flash: Igloo y ProASIC3 de la empresa Actel (Microsemi)
12. FPGA’s
Clasificación por tecnología de implementación
Sistemas Digitales - FIUBA
Antifuse: Axcelerator de la empresa Actel (Microsemi)
Ejemplos de las distintas tecnologías
16. FPGA’s
- Incluye las familias Spartan-3, Spartan-3E y Spartan-3A
(Spartan-3A, Spartan-3AN, Spartan-3A DSP)
- Dispositivos de la empresa Xilinx
- Esta generación de FPGAs está orientada a necesidades
de alto volumen, sensibles a la variable costo
Generación Spartan-3
Sistemas Digitales - FIUBA
18. Spartan-3: Arquitectura
FPGA’s
Sistemas Digitales - FIUBA
Está constituida por los siguientes elementos:
- CLBs (Configurable Logic Blocks)
- IOBs (Input/Output Blocks)
- Conjunto de conexiones programables que
interconectan los bloques
- Diferentes bloques (Block RAM, DCM,
multiplicadores, etc)
23. FPGA’s
Sistemas Digitales - FIUBA
Celda lógica de una FPGA (Spartan-3)
La celda lógica está conformada por tres elementos:
• LUT (Look-Up Table) de 4 entradas
• Multiplexor
• Flip-flop
24. FPGA’s
Sistemas Digitales - FIUBA
Celda lógica de una FPGA (Spartan-3)
La LUT se implementa con una memoria SDRAM, por lo
que se puede usar como:
• Una LUT de 4 entradas
• Una memoria de 16x1 bit
• Un registro de deplazamiento (16 bits)
25. FPGA’s
Sistemas Digitales - FIUBA
Lógica combinacional dentro de una FPGA
La lógica combinacional se conforma a través de tablas
(Look-Up Tables, LUTs)
• También son denominadas Generadores de funciones
(FG: Function Generators)
• Su capacidad está dada por la cantidad de entradas
• El retardo a través de ellas es constante
26. FPGA’s
Sistemas Digitales - FIUBA
Lógica combinacional dentro de una FPGA
Función a implementar Tabla de verdad LUT programada
27. FPGA’s
Sistemas Digitales - FIUBA
Multiplexores
Son elementos dedicados a proveer interconexión entre
slices y LUTs
• MUXF5
Combina 2 LUTs para formar
cualquier función de 5 variables
• MUXF6
Combina 2 slices para formar
cualquier función de 6 variables
29. FPGA’s
Sistemas Digitales - FIUBA
Bloque de entrada / salida (IOB)
• Soportan flujo bidireccional
• Salidas configurables como tri-state
• Resistencias de pull-up y pull-down programables
• Soportan varios estándares de señales (incluye señales diferenciales)
• Brinda la posibilidad de registrar tanto entradas como salidas
• Control Digital de Impedancia (DCI) para matchear con las líneas que
llegan a la FPGA
32. FPGA’s
Sistemas Digitales - FIUBA
Conexiones programables (Spartan-3)
• Líneas de propósito general
• Líneas largas
• Líneas directas
Tipos de líneas de interconexión:
Proporcionan distintas opciones
para la interconexión de los
distintos elementos de manera
flexible y eficiente
33. FPGA’s
Sistemas Digitales - FIUBA
Conexiones programables (Spartan-3)
Son un conjunto de líneas horizontales y verticales
conectadas a una matriz de interconexión (switch
matrix)
Líneas de propósito general
34. FPGA’s
Sistemas Digitales - FIUBA
Conexiones programables (Spartan-3)
Son un conjunto de líneas horizontales y verticales
conectadas a una matriz de interconexión (switch
matrix)
Matriz de interconexión
Configuración
• Cada punto de interconexión
está formado por 6 transistores
• Son interruptores programables
35. FPGA’s
Sistemas Digitales - FIUBA
Conexiones programables (Spartan-3)
• Son líneas que atraviesan la FPGA de arriba abajo y
de izquierda a derecha
• Permiten un fan-out grande
• Se utilizan para que una señal acceda a un punto
distante, con menos retardos que las líneas de
propósito general
• Son un recurso escaso y son dedicadas para señales
críticas tales como el reloj o señales de inicialización
globales.
Líneas largas
36. FPGA’s
Sistemas Digitales - FIUBA
Conexiones programables (Spartan-3)
• Son líneas de conexión
directa entre bloques
• Se utilizan para implementar
redes entre los CLBs e
IOBs adyacente, de manera
eficiente
• Introducen retardos mínimos
Líneas directas
37. FPGA’s
Sistemas Digitales - FIUBA
Block RAM (Spartan-3)
• Esta generación de FPGAs posee bloques de memoria
que mediante diferentes configuraciones permiten crear
RAMs, ROMs, FIFOs, LUTS grandes, buffers circulares,
y registros de desplazamiento.
• Se encuentran cerca de los multiplicadores para acelerar
la implementación de operaciones multiply-accumulate
• Cuando en vez de usar Block RAMs se utilizan las LUTs se dice
que se hace uso de memoria distribuida.
45. FPGA’s
Sistemas Digitales - FIUBA
DCM (Digital Clock Manager) (Spartan-3)
• Eliminación del desfasaje que se genera en el reloj por
retardos en el ruteo (skew). Asegura que el flanco
(ascendente o descendente) llega al mismo tiempo a
todas las entradas de reloj de flip-flops
• Síntesis de frecuencias. A partir de la señal de reloj de entrada
puede generar diferentes relojes, multiplicando por M y
dividiendo por N (siendo M = 2 a 32 y N = 1 a 32)
• Corrimiento de fase. Puede implementar desfasajes controlados
de la señal de reloj
Función
50. Spartan-3E: Recursos
FPGA’s
Cuadro extraído de “Spartan-3 Generation FPGA User Guide”
La siguiente tabla muestra los diferentes recursos disponibles en una
fpga Spartan-3E
Sistemas Digitales - FIUBA
51. Spartan-3E: Pines de Entrada / Salida
FPGA’s
Nota: Los valores entre paréntesis indican la cantidad de pines de sólo lectura
Cuadro extraído de “Spartan-3 Generation FPGA User Guide”
Sistemas Digitales - FIUBA
55. FPGA’s
Sistemas Digitales - FIUBA
Tendencias
• Arquitecturas mixtas, orientadas a aplicaciones de características
diversas (lógica, procesadores soft/hard, DSP)
• Enlaces serie de alta velocidad (28 Gb/s)
• LUTs con mayor cantidad de entradas (6)
• Reconfiguración dinámica (on the fly)
• Dispositivos muy potentes que soportan entradas analógicas
• Aumento en la escala de integración
56. FPGA’s
Sistemas Digitales - FIUBA
Flujo de diseño
Diseño Codificación Simulación Síntesis
Mapeo,
ruteo y
ubicación
Simulación
Generación
del bitstream
Configuración
de la FPGA
Diseño del circuito a
implementar en la
FPGA
Codificación
en HDL
Simulación del
código HDL
Transformación de la
descripción en un
circuito en base a
primitivas
Asignación de cada
primitiva a un lugar físico y
utilización de los recursos
de interconexión para
conectar los componentes
entre sí
Simulación luego
del PAR
Se configura la
FPGA o una
memoria auxiliar
Generación del
archivo de
configuración (.bit)