FPGA (Field Programmable Gate Array)

Post on 28-Jan-2016

99 views 0 download

Tags:

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

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

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

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

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

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

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.

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

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

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

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)

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

FPGA’s

Empresas fabricantes de FPGAs

Sistemas Digitales - FIUBA

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

FPGA’s

Sistemas Digitales - FIUBA

Diferentes familias de FPGAs

ALTERA

XILINX

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

FPGA’s

Características de la generación Spartan-3

Sistemas Digitales - FIUBA

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)

Spartan-3: Arquitectura

CLBs

FPGA’s

Sistemas Digitales - FIUBA

Spartan-3: CLB

FPGA’s

Sistemas Digitales - FIUBA

Spartan-3: Diagrama simplificado de un Slice

FPGA’s

Sistemas Digitales - FIUBA

flip-flopsLUTs

lógica de carry

Spartan-3: Slices dentro del CLB

FPGA’s

Sistemas Digitales - FIUBA

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

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)

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

FPGA’s

Sistemas Digitales - FIUBA

Lógica combinacional dentro de una FPGA

Función a implementar Tabla de verdad LUT programada

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

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

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

FPGA’s

Sistemas Digitales - FIUBA

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

FPGA’s

Sistemas Digitales - FIUBA

IOB (Spartan-3)

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

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

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

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

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

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.

Spartan-3: Ubicación de la Block RAM

FPGA’s

Sistemas Digitales - FIUBA

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

FPGA’s

Sistemas Digitales - FIUBA

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

Spartan-3: Block RAM total

FPGA’s

Sistemas Digitales - FIUBA

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

Spartan-3: Block RAM

FPGA’s

Sistemas Digitales - FIUBA

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

Spartan-3: Block RAM

FPGA’s

Sistemas Digitales - FIUBA

Primitivas

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

Spartan-3: Multiplicador

FPGA’s

Sistemas Digitales - FIUBA

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

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

FPGA’s

Sistemas Digitales - FIUBA

DCM (Digital Clock Manager) (Spartan-3)

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

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

FPGA’s

Sistemas Digitales - FIUBA

Evolución de la tecnología FPGA

Xilinx

FPGA’s

Sistemas Digitales - FIUBA

Evolución de la tecnología FPGA

Altera

FPGA’s

Sistemas Digitales - FIUBA

Evolución de la tecnología FPGA

Altera

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

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)

FPGA’s

Sistemas Digitales - FIUBA

Visualización de un proyecto en laherramienta de Xilinx

FPGA’s

Sistemas Digitales - FIUBA

Mapeo de pines

FPGA’s

Sistemas Digitales - FIUBA

Kit FPGA: Nexys 2

FPGA’s

Sistemas Digitales - FIUBA

Kit FPGA: Nexys 2

FIN

FPGA’s

Sistemas Digitales - FIUBA