fpga (field programmable gate array)

61
FPGA (Field Programmable Gate Array)

Upload: eliza

Post on 28-Jan-2016

95 views

Category:

Documents


0 download

DESCRIPTION

FPGA (Field Programmable Gate Array). FPGA’s. 2do. Cuatrimestre de 2013. Sistemas Digitales - FIUBA. Lógica digital configurable. PLA (Programmable Logic Array) PAL (Programmable Array Logic) GAL (Gate Array Logic) CPLD (Complex Programmable Logic Device) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: FPGA (Field Programmable Gate Array)

FPGA(Field Programmable Gate Array)

Page 2: FPGA (Field Programmable Gate Array)

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

Page 3: FPGA (Field Programmable Gate Array)

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

Page 4: FPGA (Field Programmable Gate Array)

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

Page 5: FPGA (Field Programmable Gate Array)

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

Page 6: FPGA (Field Programmable Gate Array)

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

Page 7: FPGA (Field Programmable Gate Array)

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.

Page 8: FPGA (Field Programmable Gate Array)

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

Page 9: FPGA (Field Programmable Gate Array)

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

Page 10: FPGA (Field Programmable Gate Array)

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

Page 11: FPGA (Field Programmable Gate Array)

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)

Page 12: FPGA (Field Programmable Gate Array)

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

Page 13: FPGA (Field Programmable Gate Array)

FPGA’s

Empresas fabricantes de FPGAs

Sistemas Digitales - FIUBA

Page 14: FPGA (Field Programmable Gate Array)

FPGA’s

Empresas fabricantes de FPGAs

Sistemas Digitales - FIUBA

USD 15.08 B

USD 11.41 B

USD 3.23 B

USD 502.25 M

USD 79.79 M

Page 15: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Diferentes familias de FPGAs

ALTERA

XILINX

Page 16: FPGA (Field Programmable Gate Array)

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

Page 17: FPGA (Field Programmable Gate Array)

FPGA’s

Características de la generación Spartan-3

Sistemas Digitales - FIUBA

Page 18: FPGA (Field Programmable Gate Array)

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)

Page 19: FPGA (Field Programmable Gate Array)

Spartan-3: Arquitectura

CLBs

FPGA’s

Sistemas Digitales - FIUBA

Page 20: FPGA (Field Programmable Gate Array)

Spartan-3: CLB

FPGA’s

Sistemas Digitales - FIUBA

Page 21: FPGA (Field Programmable Gate Array)

Spartan-3: Diagrama simplificado de un Slice

FPGA’s

Sistemas Digitales - FIUBA

flip-flopsLUTs

lógica de carry

Page 22: FPGA (Field Programmable Gate Array)

Spartan-3: Slices dentro del CLB

FPGA’s

Sistemas Digitales - FIUBA

Page 23: FPGA (Field Programmable Gate Array)

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

Page 24: FPGA (Field Programmable Gate Array)

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)

Page 25: FPGA (Field Programmable Gate Array)

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

Page 26: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Lógica combinacional dentro de una FPGA

Función a implementar Tabla de verdad LUT programada

Page 27: FPGA (Field Programmable Gate Array)

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

Page 28: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

¿Cómo se implementaría una función de 5 variables?

X4 X3 X2 X1 X0 Y

0 0 0 0 0 0

0 0 0 0 1 1

0 0 0 1 0 1

0 0 0 1 1 1

… … … … …  

0 1 1 1 0 0

0 1 1 1 1 1

1 0 0 0 0 1

1 0 0 0 1 1

1 0 0 1 0 0

1 0 0 1 1 0

… … … … …  

1 1 1 1 0 0

1 1 1 1 1 1

LUT

LUT

MU

X

Page 29: FPGA (Field Programmable Gate Array)

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

Page 30: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Bloque de entrada / salida (IOB) (Spartan-3)

Page 31: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

IOB (Spartan-3)

Page 32: FPGA (Field Programmable Gate Array)

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

Page 33: FPGA (Field Programmable Gate Array)

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

Page 34: FPGA (Field Programmable Gate Array)

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

Page 35: FPGA (Field Programmable Gate Array)

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

Page 36: FPGA (Field Programmable Gate Array)

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

Page 37: FPGA (Field Programmable Gate Array)

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.

Page 38: FPGA (Field Programmable Gate Array)

Spartan-3: Ubicación de la Block RAM

FPGA’s

Sistemas Digitales - FIUBA

Page 39: FPGA (Field Programmable Gate Array)

Spartan-3: Block RAM (config. de cada bloque)

FPGA’s

Sistemas Digitales - FIUBA

Tabla extraída de “Spartan-3 Generation FPGA User Guide”

Page 40: FPGA (Field Programmable Gate Array)

Spartan-3: Block RAM total

FPGA’s

Sistemas Digitales - FIUBA

Tabla extraída de “Spartan-3 Generation FPGA User Guide”

Page 41: FPGA (Field Programmable Gate Array)

Spartan-3: Block RAM

FPGA’s

Sistemas Digitales - FIUBA

Imagen extraída de “Spartan-3 Generation FPGA User Guide”

Page 42: FPGA (Field Programmable Gate Array)

Spartan-3: Block RAM

FPGA’s

Sistemas Digitales - FIUBA

Primitivas

Page 43: FPGA (Field Programmable Gate Array)

Spartan-3: Multiplicador

FPGA’s

Sistemas Digitales - FIUBA

• Cuenta con 20 multiplicadores embebidos de 18 bits de

operando y 36 bits de salida.

• Se encuentran al lado de los bloques de memoria

Page 44: FPGA (Field Programmable Gate Array)

Spartan-3: Multiplicador

FPGA’s

Sistemas Digitales - FIUBA

Page 45: FPGA (Field Programmable Gate Array)

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

Page 46: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

Page 47: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

Page 48: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

Page 49: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

Page 50: FPGA (Field Programmable Gate Array)

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

Page 51: FPGA (Field Programmable Gate Array)

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

Page 52: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Evolución de la tecnología FPGA

Xilinx

Page 53: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Evolución de la tecnología FPGA

Altera

Page 54: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Evolución de la tecnología FPGA

Altera

Page 55: FPGA (Field Programmable Gate Array)

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

Page 56: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Flujo de diseño

Diseño Codificación Simulación Síntesis

Mapeo, ruteo y

ubicaciónSimulación Generación

del bitstreamConfiguración de la FPGA

Diseño del circuito a implementar en la

FPGA

Codificaciónen HDL

Simulación delcó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)

Page 57: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Visualización de un proyecto en laherramienta de Xilinx

Page 58: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Mapeo de pines

Page 59: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Kit FPGA: Nexys 2

Page 60: FPGA (Field Programmable Gate Array)

FPGA’s

Sistemas Digitales - FIUBA

Kit FPGA: Nexys 2

Page 61: FPGA (Field Programmable Gate Array)

FIN

FPGA’s

Sistemas Digitales - FIUBA