m.c. felipe santiago espinosa marzo/2019fsantiag/computo_reconfig/02_fpgas.pdf · circuitos...
TRANSCRIPT
¿Qué es un FPGA?
• Siglas de Field Programmable Gate Array– Circuito integrado VLSI – Contiene una matriz de bloques
lógicos programables “simples”– Un conjunto extenso de conexiones
programables.• Un número muy grande de bloques
lógicos “Islas” (1,000 … 100,000+) en un “Mar” de conexiones.
Arquitectura FPGA
2
Granularidad en los FPGAs
En un FPGA, los bloques lógicos pueden tener:
• Granularidad fina: El bloque contiene pocos transistores, por lo que puede implementar solamente operaciones lógicas simples.
• Granularidad gruesa: El bloque contiene un número grande de transistores, suficiente para implementar funciones lógicas complejas.– Los FPGA's actuales son de granularidad gruesa.
3
Celda de un FPGA Plessey
Bloques lógicos
• Los bloques lógicos contienen principalmente Tablas de Búsqueda (LUT, Lookup Table), multiplexores y elementos de estado.
• Las funciones lógicas se implemetan en las LUT.• Incluyen multiplexores (para seleccionar 1 de N entradas)• Flip-Flops, como registros o elementos de almacenamiento
temporizados.
FPGA Bloque Lógico
4
LUTs (Lookup Tables)
• Una LUT contiene Celdas de Memoria para implementar pequeñas funciones lógicas.
• En cada celda se almacena un ‘0’ o ‘1’ .• Una tabla de verdad de 1 variable se programa en cada LUT.• Las entradas seleccionan el contenido de una celda.
LUT de 3 Entradas -> 8 Celdas de Memoria
(Static Random Access Memory)
3 – 6 Entradas
Multiplexor
5
Recursos de ruteo
• Funciones más grandes se consiguen conectado muchos bloques lógicos.
• Las conexiones también están determinadas por celdas RAM.
Celdas SRAM
6
Con transistores de paso se establecen las conexiones
Recursos de ruteo
7
Deben cumplir con dos requerimientos:
• Enrutamiento: La capacidad del dispositivo para acomodar todas las conexiones requeridas por una apl icación, considerando que los segmentos de alambre son colocados durante la fabricación del circuito.– El número de alambres debe ser suficiente.
• Velocidad: Se debe minimizar el retardo de propagación debido a las conexiones programables entre segmentos de alambre. Este es un factor interno del rendimiento del FPGA.– Los segmentos de alambre deben ser de diferentes tamaños.
Lógica Temporizada
• Algunas funciones son del tipo Registro (utilizan los FFs).• Los FFs se sincronizan con una señal de reloj.• Los FPGAs contienen un módulo que administra un reloj global.• Los bloque lógicos reciben líneas dedicas a la señal de reloj.
Los FFs se actualizan con la señal de reloj8
Circuitos secuenciales
• El tiempo de respuesta en un circuito combinacional es variable.• Los registros ayudan a crear sistemas con una temporización
predecible.• Entre los diferentes bloques se crea una conexión al Nivel de
Transferencia de Registros (RTL, Register-transfer level).
Entradas
9
Circuitos secuenciales
• El tiempo de respuesta en un circuito combinacional es variable.• Los registros ayudan a crear sistemas con una temporización
predecible.• Entre los diferentes bloques se crea una conexión al Nivel de
Transferencia de Registros (RTL, Register-transfer level).
CLOCK
Nueva salida en cada flanco
Intermedio
Flancos
Entradas
10
11
• La frecuencia de reloj determina la velocidad del circuito.
• La lógica combinacional es temporizada.
• Ejemplos• Registros de
desplazamiento.• Maquinas de estado.• Unidades segmentadas.
Circuitos secuenciales
• El tiempo de respuesta en un circuito combinacional es variable.• Los registros ayudan a crear sistemas con una temporización
predecible.• Entre los diferentes bloques se crea una conexión al Nivel de
Transferencia de Registros (RTL, Register-transfer level).
CLOCK
Nueva salida en cada flanco
Intermedio
Flancos
Entradas
Entradas y salidas
• Un FPGA debe obtener datos del exterior y generar resultados en sus salidas.
Más de 100 pines I/O con velocidades de hasta 100 MHz.
12
Entradas y salidas
• Un FPGA debe obtener datos del exterior y generar resultados en sus salidas.
Más de 100 pines I/O con velocidades de 100 MHz o superiores.
SERIALIZADOR: I/O EspecialesTasas de transferencia ~ 10 Gbps
TRx Óptico
13
Xilinx
• www.xilinx.com• Market share: 49%• The leader in FPGAs for
many years, Xilinx has a good range of FPGAs in terms of cost and performance.
16
Altera
• www.altera.com• Market share: 40% • T h e A l t e r a F P G A s
cover the low, mid and upper end markets with the Cyclone, Arria and S t r a t i x s e r i e s respectively.
17
Lattice Semiconductor• www.latticesemi.com• Market share: 6%• Lattice Semiconductor
tackles the low-power and low-cost market for FPGAs.
• They market their products as “high-value FPGAs” of the industry, providing best performance per cost.
• With the explosion in portable electronics, this has been a good strategy for Lattice.
18
Microsemi• www.microsemi.com• Market share: 4%• Microsemi specializes in low-
power and mixed-signal FPGAs. • Here are some of Microsemi’s
claims: 1. The industry’s lowest power
FPGA: the IGLOO.2. The industry’s only FPGA
w i t h h a r d 3 2 - b i t A R M Cortex-M3 microcontroller: the SmartFusion.
19
QuickLogic
• www.quicklogic.com• Market share: 1%• QuickLogic’s focus is on the
mob i le dev ices indus t ry meaning ultra-low power, small form factor packaging, and high design security.
• Rather than selling “FPGA”, they p i tch “customizable semi-conductors”.
20
Spartan Series
• Spartan / XL• Spartan-II• Spartan-IIE• Spartan-3• Spartan-3E• Spartan-3A• Spartan-3A DSP
Primeras familias de FPGAs de
Virtex Series
Virtex / E / EM Virtex II Virtex II PRO / X Virtex - 4 Virtex - 5 Virtex - 6
- Esta generación de FPGAs está orientada a necesidades de alto volumen y bajo costo.
Generación Spartan-3
24
Spartan Family Gates I/Os Block RAM(Total)
Embedded Multipliers DCM Voltaje
Spartan-3A DSP 3.4 M 469 2, 268 Kb0
216 – DSPBlocks
8 3.3V - 1.2V
Spartan-3A 1.4 M 502 360 Kb 362- 18x18 8 3.3V - 1.2V
Spartan-3E 1.6M 376 648 Kb 36 - 18x18 8 3.3V - 1.2V
Spartan-3 5M 784 1872 Kb 104 - 18x18 4 3.3V - 1.2V
Spartan-IIE 600K 514 288 Kb – 4 3.3V - 1.5V
Spartan-II 200K 284 56 Kb – 4 3.3V - 1.5V
Spartan-XL 40K 224 25Kb – – 3.3V
Spartan-3E: Arquitectura
Está constituida por los siguientes elementos:
• CLBs (Configurable Logic Blocks).
• IOBs (Input/Output Blocks).
• Conjunto de conexiones programables.
• Bloques dedicados:
• Bloques RAM.
• Multiplicadores.
• Administradores de reloj digital (DCM).
25
Spartan-3E: CLB
27
Los CLBs (Configurable Logic Blocks) constituyen los principales recursos lógicos para implementar funciones combinacionales o secuenciales.
En un Slice se pueden implementar: Funciones lógicas. Funciones aritméticas. Funciones ROM.
Los Slices de la Izquiera (SLICEM) están acondicionados para dos funciones adicionales: Almacenamiento de datos como RAM distribuida. Desplazamiento de datos con registros de 16-bits.
30
Recursos de un slice:
Funciones lógicas en el FPGALas LUT's son pequeñas memorias que se desempeñan como Generadores de Funciones (FG: Function Generators).
31
Función a implementar Tabla de verdad LUT programada
• El retardo es constante.
Multiplexores
Son elementos dedicados a proveer interconexión entre slices y LUT's.
• MUXF5 Combina 2 LUTs para formar cualquier función de 5 variables
• MUXF6 Combina 2 slices para formar cualquier función de 6 variables
32
¿Cómo se implementa 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
33
Bloque de entrada / salida (IOB)
• Soportan un flujo bidireccional.
• Las salidas pueden configurarse como tri-state.
• Incluyen resistencias de pull-up y pull-down programables.
• Soportan varios estándares de señales (incluyendo señales
diferenciales).
• Incluyen registros tanto para las entradas como para las
salidas.
• Se tiene un Control Digital de Impedancia (DCI) para acoplar
con las líneas que llegan a la FPGA.
34
Conexiones programables
• Líneas de propósito general.
• Líneas largas.
• Líneas directas.
• Lineas doble.
• Lineas HEX.
Tipos de líneas de interconexión:
Proporcionan distintas opciones para la interconexión de CLB's e IOB's de manera flexible y eficiente
36
Las líneas horizontales y verticales se enlazan a través de las matrices de interconexión (switch matrix)
Líneas de propósito general
39
Conexiones programables
Transistores de paso que unen dos segmentos de alambre.
Matriz de interconexión
Configuración
• Cada punto de interconexión está formado por 6 transistores.• Son interruptores programables.
40
Conexiones programables
• Son líneas que atraviesan el 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 como el reloj o señales de inicialización globales.
Líneas largas
41
Conexiones programables
• Son líneas de conexión directa entre bloques.
• Se utilizan para implementar redes entre los CLBs e IOBs a d y a c e n t e s , d e m a n e r a eficiente.
• Introducen retardos mínimos.
Líneas directas
42
Conexiones programables
Bloques RAM (Spartan-3E)
• Esta generación de FPGAs posee bloques de memoria que permiten crear RAMs , ROMs , FIFOs , LUTS gran d e s , b u f f e rs c i rc u la re s y re g is t ro s d e desplazamiento.
• Se encuentran cerca de los multipl icadores para acelerar la implementación de operaciones multiplicar-acumular.
• Cuando se utilizan las LUTs en vez de usar Bloques RAM, se dice que se hace uso de memoria distribuida.
44
Spartan-3E: Total de Bloques RAM
Tabla extraída de “Spartan-3 Generation FPGA User Guide”
46
La capacidad de cada bloque es de 18 432 bits.
Spartan-3E: Multiplicador
• Cuenta con 20 mul t ip l icadores embebidos con
operandos de 18 bits para un resultado de 36 bits.
• Se encuentran al lado de los bloques de memoria.
50
DCM (Digital Clock Manager)
• Elimina el desfase que se genera en el reloj por retardos en el
ruteo (skew). Asegura que el flanco (ascendente o descendente)
llegue 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 relojes con diferentes frecuencias, multiplicando
por M y dividiendo por N (siendo M = 2 a 32 y N = 1 a 32)
• Corrimiento de fase. Puede implementar desfases controlados
de la señal de reloj
Función
52
Resumen de Recursos en un Spartan-3E
Cuadro extraído de “Spartan-3 Generation FPGA User Guide”
La tabla muestra los diferentes recursos disponibles en una fpga Spartan-3E
57
Spartan-3E: Pines de Entrada / Salida
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”
58
Flujo de diseño
Diseño Captura Simulación Síntesis
Mapeo, ruteoy ubicación Simulación Generación
del bitstreamConfiguración
del FPGA
Diseño del circuito a implementar en el
FPGA
Codificaciónen HDL
Simulación delcódigo HDL
Transformación de la descripción a
elementos primitivos
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 al FPGA o una
memoria auxiliar
Generación del archivo de
configuración (.bit)
59
• FPGA XC3S500E (Spartan-3E).• Memoria Micron M45W8MW16,
PSDRAM de 16 MByte.• Memoria Flash de Intel de 16
MByte.• Oscilador de 50 MHz.• 75 terminales de E/S directas
del FPGA: Conector Hirose F X 2 c o n 4 3 s e ñ a l e s y 4 c o n e c t o r e s P m o d d e 8 señales).
• Periféricos para evaluación: 8 L E D s , 4 d i s p l a y s d e 7 segmen t os , 4 b o t o n e s , 8 interruptores deslizantes.
• Puertos: PS/2, VGA y RS232 para aplicaciones. USB para programación y alimentación.
63
Tarjeta de desarrollo Nexys 2
Tendencias
• Arquitecturas mixtas, or ientadas a apl icaciones de características diversas (lógica, procesadores soft/hard, DSP).
• Enlaces seriales 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.
66