Descargar la presentación
La descarga está en progreso. Por favor, espere
1
(Field Programmable Gate Array)
FPGA (Field Programmable Gate Array)
2
FPGA’s Qué es una FPGA? Es un dispositivo semiconductor conformado por bloques de lógica, cuya interconexión y funcionalidad puede ser configurada luego de su fabricación Sistemas Digitales - FIUBA
3
Qué es una FPGA? Ross Freeman y Bernard Vonderschmitt, co-fundadores
FPGA’s Qué es una FPGA? 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 Sistemas Digitales - FIUBA
4
Antecesores de las FPGAs
PLA (Programmable Logic Array) PAL (Programmable Array Logic) GAL (Gate Array Logic) CPLD (Complex Programmable Logic Device) FPGA (Field Programmable Gate Array) Sistemas Digitales - FIUBA
5
Ventajas de las FPGAs 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 Sistemas Digitales - FIUBA
6
Aplicaciones de las FPGAs
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) Sistemas Digitales - FIUBA
7
Clasificación por tecnología de implementación
FPGA’s Clasificación por tecnología de implementación 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. Sistemas Digitales - FIUBA
8
Tolerancia a la radiación
FPGA’s Clasificación por tecnología de implementación Tecnología Característica SRAM Antifuse Flash Reprogramable Si No Memoria externa Velocidad Más lenta Mejor Potencia Peor Segunda mejor Densidad Media Tolerancia a la radiación Sistemas Digitales - FIUBA
9
Clasificación por tecnología de implementación
FPGA’s Clasificación por tecnología de implementación 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 Sistemas Digitales - FIUBA
10
Clasificación por tecnología de implementación
FPGA’s Clasificación por tecnología de implementación Ejemplos de las distintas tecnologías SRAM con flash interna: la familia Spartan-3AN de Xilinx, y la familia LatticeXP de Lattice Sistemas Digitales - FIUBA
11
Clasificación por tecnología de implementación
FPGA’s Clasificación por tecnología de implementación Ejemplos de las distintas tecnologías Flash: Igloo y ProASIC3 de la empresa Actel (Microsemi) Sistemas Digitales - FIUBA
12
Clasificación por tecnología de implementación
FPGA’s Clasificación por tecnología de implementación Ejemplos de las distintas tecnologías Antifuse: Axcelerator de la empresa Actel (Microsemi) Sistemas Digitales - FIUBA
13
Empresas fabricantes de FPGAs
Sistemas Digitales - FIUBA
14
Empresas fabricantes de FPGAs
USD B USD B USD 3.23 B USD M USD M Sistemas Digitales - FIUBA
15
Diferentes familias de FPGAs
ALTERA XILINX Sistemas Digitales - FIUBA
16
FPGA’s Generación Spartan-3 - 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 Sistemas Digitales - FIUBA
17
Características de la generación Spartan-3
FPGA’s Características de la generación Spartan-3 Sistemas Digitales - FIUBA
18
Spartan-3: Arquitectura
FPGA’s Spartan-3: Arquitectura 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) Sistemas Digitales - FIUBA
19
Spartan-3: Arquitectura
FPGA’s Spartan-3: Arquitectura CLBs Sistemas Digitales - FIUBA
20
FPGA’s Spartan-3: CLB Sistemas Digitales - FIUBA
21
Spartan-3: Diagrama simplificado de un Slice
FPGA’s Spartan-3: Diagrama simplificado de un Slice lógica de carry LUTs flip-flops Sistemas Digitales - FIUBA
22
Spartan-3: Slices dentro del CLB
FPGA’s Spartan-3: Slices dentro del CLB Sistemas Digitales - FIUBA
23
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 Sistemas Digitales - FIUBA
24
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) Sistemas Digitales - FIUBA
25
Lógica combinacional dentro de una FPGA
FPGA’s 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 Sistemas Digitales - FIUBA
26
Lógica combinacional dentro de una FPGA
FPGA’s Lógica combinacional dentro de una FPGA Función a implementar Tabla de verdad LUT programada Sistemas Digitales - FIUBA
27
FPGA’s 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 Sistemas Digitales - FIUBA
28
¿Cómo se implementaría una
FPGA’s ¿Cómo se implementaría una función de 5 variables? X4 X3 X2 X1 X0 Y 1 … LUT MUX LUT Sistemas Digitales - FIUBA
29
Bloque de entrada / salida (IOB)
FPGA’s 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 Sistemas Digitales - FIUBA
30
Bloque de entrada / salida (IOB) (Spartan-3)
FPGA’s Bloque de entrada / salida (IOB) (Spartan-3) Sistemas Digitales - FIUBA
31
FPGA’s IOB (Spartan-3) Sistemas Digitales - FIUBA
32
Conexiones programables (Spartan-3)
FPGA’s Conexiones programables (Spartan-3) Tipos de líneas de interconexión: Líneas de propósito general Líneas largas Líneas directas Proporcionan distintas opciones para la interconexión de los distintos elementos de manera flexible y eficiente Sistemas Digitales - FIUBA
33
Conexiones programables (Spartan-3)
FPGA’s Conexiones programables (Spartan-3) Líneas de propósito general Son un conjunto de líneas horizontales y verticales conectadas a una matriz de interconexión (switch matrix) Sistemas Digitales - FIUBA
34
Conexiones programables (Spartan-3)
FPGA’s Conexiones programables (Spartan-3) Matriz de interconexión Son un conjunto de líneas horizontales y verticales conectadas a una matriz de interconexión (switch matrix) Configuración Cada punto de interconexión está formado por 6 transistores Son interruptores programables Sistemas Digitales - FIUBA
35
Conexiones programables (Spartan-3)
FPGA’s Conexiones programables (Spartan-3) Líneas largas 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. Sistemas Digitales - FIUBA
36
Conexiones programables (Spartan-3)
FPGA’s Conexiones programables (Spartan-3) Líneas directas 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 Sistemas Digitales - FIUBA
37
FPGA’s 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. Sistemas Digitales - FIUBA
38
Spartan-3: Ubicación de la Block RAM
FPGA’s Spartan-3: Ubicación de la Block RAM Sistemas Digitales - FIUBA
39
Spartan-3: Block RAM (config. de cada bloque)
FPGA’s Spartan-3: Block RAM (config. de cada bloque) Tabla extraída de “Spartan-3 Generation FPGA User Guide” Sistemas Digitales - FIUBA
40
Spartan-3: Block RAM total
FPGA’s Spartan-3: Block RAM total Tabla extraída de “Spartan-3 Generation FPGA User Guide” Sistemas Digitales - FIUBA
41
Spartan-3: Block RAM FPGA’s
Imagen extraída de “Spartan-3 Generation FPGA User Guide” Sistemas Digitales - FIUBA
42
FPGA’s Spartan-3: Block RAM Primitivas Sistemas Digitales - FIUBA
43
Spartan-3: Multiplicador
FPGA’s Spartan-3: Multiplicador Cuenta con 20 multiplicadores embebidos de 18 bits de operando y 36 bits de salida. Se encuentran al lado de los bloques de memoria Sistemas Digitales - FIUBA
44
Spartan-3: Multiplicador
FPGA’s Spartan-3: Multiplicador Sistemas Digitales - FIUBA
45
DCM (Digital Clock Manager) (Spartan-3)
FPGA’s DCM (Digital Clock Manager) (Spartan-3) Función 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 Sistemas Digitales - FIUBA
46
DCM (Digital Clock Manager) (Spartan-3)
FPGA’s DCM (Digital Clock Manager) (Spartan-3) Sistemas Digitales - FIUBA
47
DCM (Digital Clock Manager) (Spartan-3)
FPGA’s DCM (Digital Clock Manager) (Spartan-3) Sistemas Digitales - FIUBA
48
DCM (Digital Clock Manager) (Spartan-3)
FPGA’s DCM (Digital Clock Manager) (Spartan-3) Sistemas Digitales - FIUBA
49
DCM (Digital Clock Manager) (Spartan-3)
FPGA’s DCM (Digital Clock Manager) (Spartan-3) Sistemas Digitales - FIUBA
50
FPGA’s Spartan-3E: Recursos La siguiente tabla muestra los diferentes recursos disponibles en una fpga Spartan-3E Cuadro extraído de “Spartan-3 Generation FPGA User Guide” Sistemas Digitales - FIUBA
51
Spartan-3E: Pines de Entrada / Salida
FPGA’s Spartan-3E: Pines de Entrada / Salida Cuadro extraído de “Spartan-3 Generation FPGA User Guide” Nota: Los valores entre paréntesis indican la cantidad de pines de sólo lectura Sistemas Digitales - FIUBA
52
Evolución de la tecnología FPGA
FPGA’s Evolución de la tecnología FPGA Xilinx Sistemas Digitales - FIUBA
53
Evolución de la tecnología FPGA
FPGA’s Evolución de la tecnología FPGA Altera Sistemas Digitales - FIUBA
54
Evolución de la tecnología FPGA
FPGA’s Evolución de la tecnología FPGA Altera Sistemas Digitales - FIUBA
55
FPGA’s 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 Sistemas Digitales - FIUBA
56
Flujo de diseño FPGA’s Diseño Codificación Simulación Síntesis
Transformación de la descripción en un circuito en base a primitivas Diseño del circuito a implementar en la FPGA Codificación en HDL Simulación del código HDL Diseño Codificación Simulación Síntesis Mapeo, ruteo y ubicación Simulación Generación del bitstream Configuración de la FPGA 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 Generación del archivo de configuración (.bit) Se configura la FPGA o una memoria auxiliar Sistemas Digitales - FIUBA
57
Visualización de un proyecto en la
FPGA’s Visualización de un proyecto en la herramienta de Xilinx Sistemas Digitales - FIUBA
58
FPGA’s Mapeo de pines Sistemas Digitales - FIUBA
59
FPGA’s Kit FPGA: Nexys 2 Sistemas Digitales - FIUBA
60
FPGA’s Kit FPGA: Nexys 2 Sistemas Digitales - FIUBA
61
FPGA’s FIN Sistemas Digitales - FIUBA
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.