FPGA

Anuncio
Arreglo de Compuertas
Programables en el Campo
Field Programmable Gate Array
(FPGA)
Introducción
ASICs: Costo. Tiempo de Desarrollo.
PLDs: Muy buena aceptacion. Pero muy chicos.
CPLDs: Muy rapidos, pero todavía chicos.
FPGAs: Xilinx Inc., 1985.
FPGA
2010
Altera Inc.
Actel Corp.
Lucent Technology
Philips Semiconductors
Intel Corp.
Motorola Semiconductors
QuickLogic
Cypress
Lattice Semiconductors
AMD
Vantis
Xilinx
Sistemas Digitales II / Electrónica Digital II
2
Que es un FPGA?
Logica y conexiones programables
Programacion en circuito (ISP)
Bloques dedicados a:
Memoria
Control de reloj
Operaciones MAC, bloques DSP
Procesadores embebidos
Comunicacion serie de Gigabits/s
Otros bloques especificos
Sistemas Digitales II / Electrónica Digital II
3
Que es un FGPA?
Hasta 1200 E/S.
Hasta 40 estándares de E/S soportados. E/S Diferenciales
Hasta 40.000 Flips-Flops y Look-Up-Tables (LUTs)
Soft-Coded Procesador, 8051, ARM3
PLL y DLL disponibles (2-12) por dispositivo. Hasta
550MHz.
Impedancia de salida programable
Muy usados en prototipos de ASICs debido a su alta
densidad y su re-programabilidad. Ayudan a solucionar
errores de diseño sin modificar el Printed Circuit Board
(PCB).
Sistemas Digitales II / Electrónica Digital II
4
Flujo de Trabajo con FPGA
Back-end Tools (FPGA
specific tools)
Synthesis &
Optimization
Specifications
VHDL Code / Sch
Place & Route
Compilation
Timing Verification
Simulation &
Verification
Front-end Tools
(general purpose tools)
Sistemas Digitales II / Electrónica Digital II
FPGA
Configuration
5
Estructura General de un FPGA
Estructura y componentes de un FPGA de Xilinx
Sistemas Digitales II / Electrónica Digital II
6
Estructura General de un FPGA
Estructura y componentes de un FPGA de Altera
Sistemas Digitales II / Electrónica Digital II
7
Similaridad entre FPGAs
Sistemas Digitales II / Electrónica Digital II
8
Vista
interna de
un FPGA
(Spartan 3)
Sistemas Digitales II / Electrónica Digital II
9
Familia del Virtex II
Sistemas Digitales II / Electrónica Digital II
10
Celda de Configuración del FPGA
Elemento básico no-lógico
Determina la configuración de cada
elemento lógico
Determina la configuración de los
elementos de ruteo e interconexiones
Sistemas Digitales II / Electrónica Digital II
11
Celdas de Configuración del FPGA
Tipos de Celdas
SRAM
Anti-Fuse
Flash
Flash y SRAM
Sistemas Digitales II / Electrónica Digital II
12
Celda de Configuración Tipo SRAM
La configuración de los elementos lógicos y los
de ruteo e interconexión son almacenados en
celdas SRAMs
Ventajas:
Proceso de fabricación estándar
Costos muy bajos
Proceso súper-comprobado
Alto rendimiento
Infinitamente reprogramable
Programable en circuito (In System Programable)
Rápida y fácil actualización
Sistemas Digitales II / Electrónica Digital II
13
Celda de Configuración tipo SRAM
Desventajas:
Celda volátil
Simple glitch en Vcc desconfigura el FPGA
Retardos en ruteo largos debido al retardo de la
celda SRAM
Necesidad de una memoria de configuración externa
Tiempo de configuración lento ~500ms
Inseguridad debido a la conexión FPGA-Memoria
de configuración que puede ser ‘leída’
Sistemas Digitales II / Electrónica Digital II
14
Celda de Configuración Tipo Anti-Fuse
La configuración de los elementos lógicos y los
de ruteo e interconexión son almacenados en
celdas Anti-Fuse (ACTEL)
Sistemas Digitales II / Electrónica Digital II
15
Celda de Configuración Tipo Anti-Fuse
Ventajas:
No es volátil
Retardos de conexiones de ruteo son pequeños
No sensibles a bombardeo de partículas iónicas
Muy usados en sistemas espaciales
Sistemas Digitales II / Electrónica Digital II
16
Celda de Configuración Tipo Anti-Fuse
Desventajas:
Proceso de fabricación específico
Costos elevados
One-Time-Programmable (OTP)
Proceso de verificacion muy largo y riguroso
Proceso muy caro
No sensibles a bombardeo de partículas iónicas
Muy usados en sistemas espaciales
Sistemas Digitales II / Electrónica Digital II
17
Celda de Configuración Tipo Flash
La configuración de los elementos lógicos y los
de ruteo e interconexión son almacenados en
celdas Flash
Sistemas Digitales II / Electrónica Digital II
18
Celda de Configuración Tipo Flash-SRAM
Ventajas:
Prácticamente ‘no es volátil’
Tiempo de configuración es bastante bajo (~<1ms)
Se pueden configurar solo las celdas SRAM
Durante el proceso de debug o prototipo
No se necesita una memoria de configuración externa
Menos espacio en el PCB
Sistema no vulnerable – Sistema seguro
Sistemas Digitales II / Electrónica Digital II
19
Celda de Configuración Tipo Flash-SRAM
Desventajas:
FPGA es caro
Proceso se esta haciendo mas común últimamente
Sistemas Digitales II / Electrónica Digital II
20
Celda de Configuración Tipo Flash-SRAM
Las celdas Flash se usan para guardar los datos
de configuración del FPGA
Las celdas SRAM para la configuración de los
elementos lógicos y los de ruteo e interconexión
Cuando de alimenta el FPGA, las celdas
SRAM se configuran en forma casi
instantanea desde las celdas Flash.
Sistemas Digitales II / Electrónica Digital II
21
Celda de Configuración Tipo Flash
Ventajas:
No es volátil
Retardos de conexiones de ruteo son pequeños
Sensibilidad baja a bombardeo de partículas iónicas
Usados en sistemas espaciales
Sistemas Digitales II / Electrónica Digital II
22
Celda de Configuración Tipo Flash
Desventajas:
FPGA es bastante caro
Proceso se esta haciendo mas común últimamente
Proceso de reconfiguración bastante largo (~3-5 seg)
Sistemas Digitales II / Electrónica Digital II
23
Comparación Tipos de Celdas
SRAM
Anti_fuse
Flash
Velocidad
Más lenta
Mejor
Más lenta
Potencia
Varía/Peor
Segunda Mejor
Mejor
Densidad
Mejor
Segunda Mejor
Media
Tolerancia a la Radiación
Peor
Mejor
Media
Tamaño celda ruteo
1
1/10
1/7
Memoria Externa
Si
No
No
Reprogramable
Si
No
Si
Sistemas Digitales II / Electrónica Digital II
24
Transicion FPGA a ASIC
Producciones de grandes volumenes, +500.000/Y
HardCopy – Altera
EasyPath - Xilinx
Arquitectura similar al FPGA pero no programable !
Bajo Costo
Baja Potencia(*)
(*) Igloo
Sistemas Digitales II / Electrónica Digital II
25
Arquitectura de los FPGAs
Arquitectura en general es similar para FPGAs de
diferentes fabricantes. Aunque cada fabricante diga
que su arquitectura es la mejor. .. .
Para diferenciarse cada fabricante ofrece …..
El mas beneficiado:
El usuario final
Sistemas Digitales II / Electrónica Digital II
26
Arquitectura de los FPGAs
Se verá en detalla la arquitectura de los FPGAs de Xilinx
Spartan 2-3-6
Virtex 2-2P-4-5-6
Medio rendimiento
Barato
Alto rendimiento
Caro
Sistemas Digitales II / Electrónica Digital II
27
Arquitectura de los FPGAs
Sistemas Digitales II / Electrónica Digital II
28
Bloque Lógico Configurable (CLB)
CLB
Sistemas Digitales II / Electrónica Digital II
29
Bloque Lógico Configurable (CLB)
Sistemas Digitales II / Electrónica Digital II
30
Bloque Lógico Configurable - SLICEL
Dos LUTs
Dos flip-flops
Cuatro salidas
Dos combinacionales
Dos registradas
Entradas de control para f-fs
Entradas para la LUTs
E/S para la cadena de acarreo
Sistemas Digitales II / Electrónica Digital II
31
Tabla de Búsqueda–Look-up Table (LUT)
A B C D Z
Generador de Funciones=LUT
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
.
.
.
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
Proceso transparente para el
disenador
Sistemas Digitales II / Electrónica Digital II
32
Tabla de Búsqueda–Look-up Table (LUT)
F5Mux
F6Mux
FiMux
F7Mux
F8Mux
Sistemas Digitales II / Electrónica Digital II
33
Elementos de Almacenamiento del SLICE
Sistemas Digitales II / Electrónica Digital II
34
Lógica de Acarreo (Carry In- Carry Out)
Sistemas Digitales II / Electrónica Digital II
35
SLICEL/M y sus Componentes
Sistemas Digitales II / Electrónica Digital II
36
Detalle de un
SLICEM
Sistemas Digitales II / Electrónica Digital II
37
Virtex II – Detalle de Mitad del Slice
Sistemas Digitales II / Electrónica Digital II
38
Vista de
un CLB
real
Sistemas Digitales II / Electrónica Digital II
39
Detalle del
Bloque E/S
(IOB)
Sistemas Digitales II / Electrónica Digital II
40
Bloque E/S real
Sistemas Digitales II / Electrónica Digital II
41
Estandares de E/S Soportados (Spartan 3)
Estandard
Descripción
Uso
Buffer
Entrada
Buffer
Salida
LVTTL
Low-Voltage TTL
Propósito general 3.3V
LVTTL
Push-pull
LVCMOS
Low-Voltage CMOS
Propósito general 3.3V, 2.5V, 1.8V,
1.5V
CMOS
Push-pull
PCI
Peripheral Component Interconnect
Bus PCI
LVTTL
Push-pull
GTL
Gunning Transceiver Logic
Bus alta velocidad, backplane
VREF
Open Drain
GTL+
GTL Plus
Intel Pentium Pro
VREF
Open Drain
HSTL
High Speed Transceiver Logic
Interface con SRAM
VREF
Push-pull
SSTL3
Stub Series Terminated Logic 3.3V
SRAM/SDRAM
VREF
Push-pull
SSTL2
Stub Series Terminated Logic 2.5V
SRAM/SDRAM
VREF
Push-pull
SSTL18
Stub Series Terminated Logic 1.8V
SRAM/SDRAM
VREF
Push-pull
Estandares Diferenciales
LVDS
Low-Voltage Differential Signaling
High speed interface
Diferencial
Diferencial
BLVDS
Bus LVDS
Multipoint LVDS
Diferencial
Diferencial
LVPECL
Low Voltage Positive ECL
High-speed clocks
Diferencial
Diferencial
LDT
Lightning Data Transport
Bidireccional serie/paralelo (Hyper
Transport)
Diferencial
Diferencial
Mini-LVDS
Mini-LVDS
Flat Panel Displays
Diferencial
Diferencial
LVDSExt
Extensión de LVDS
Hard Drive interface
Diferencial
Diferencial
RSDS
Reduced Swing Differencial Signaling
DVI/HDMI
Diferencial
Diferencial
Sistemas Digitales II / Electrónica Digital II
42
Bancos de E/S
Bancos E/S Virtex II
Sistemas Digitales II / Electrónica Digital II
43
Bloques de Memoria (BRAM)
Sistemas Digitales II / Electrónica Digital II
44
Opciones de Configuración de Memoria
Sistemas Digitales II / Electrónica Digital II
45
Bloques de Memoria (BRAM)
Diferentes configuraciones de relación
datos/direcciones que se pueden implementar en
los BRAMs
1
4
2
0
0
0
4Kx4
4.095
8Kx2
8
0
8.191
16Kx1
2Kx8
2047
16+2
0
16.383
1023
Sistemas Digitales II / Electrónica Digital II
46
Bloques de Memoria (BRAM)
Principales aplicaciones de los BRAM:
Almacenamiento de programas para procesadores
embebidos en el FPGA
Rd/Wr variables durante cálculos matemáticos, por ej.
Coeficientes para filtros FIR
Buffers circulares
Registros de desplazamiento o muy largos o muy anchos
Líneas de retardo
Sistemas Digitales II / Electrónica Digital II
47
Bloques de Memoria (BRAM)- Cont.
Principales aplicaciones de los BRAM:
Realización de MEF usando técnicas de
microprogramación
Contadores muy largos y rápidos
Memorias Direccionables por Contenido (CAM) de alto
rendimiento de Rd/Wr
Almacenamiento de formas de onda o tablas de
funciones trigonométricas para generar salidas tipo
Direct Digital Synthesis (DDS) (Síntesis Digital Directa)
Sistemas Digitales II / Electrónica Digital II
48
Bloques DSP
P=AxB
36 = 18 x 18
Pipelining (opcional)
Sistemas Digitales II / Electrónica Digital II
49
Bloque DSP – Avanzado Virtex-5
Sistemas Digitales II / Electrónica Digital II
50
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II
51
Interconexiones - Ruteo
Transistor de Paso
Y0
Y
M
PIP
Sistemas Digitales II / Electrónica Digital II
52
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II
53
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II
54
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II
55
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II
56
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II
57
Generacion de Reloj–Digital Clock Manager
Bloque dedicado exclusivamente a funciones de control y
generación de señal de reloj para la lógica interna del FPGA
CLKIN
CLK0
CLKFB
CLK2X
CLK2X180
DCM
CLKDIV
CLKFX
CLKFX180
Sistemas Digitales II / Electrónica Digital II
58
Generación de Reloj
Las principales funciones del DCM se pueden resumir en:
Eliminar el sesgo del reloj (clock skew), ya sea
dentro del FPGA o con componentes externos
Producir corrimiento de fase (Phase shifting) de una
señal de reloj, ya sea por una fracción del periodo
de reloj o por incrementos fijos
Multiplicar o dividir la frecuencia de entrada del reloj,
generando una frecuencia completamente nueva
Sistemas Digitales II / Electrónica Digital II
59
Generación de Reloj
Las principales funciones del DCM se pueden resumir en:
Acondicionar la señal de entrada del reloj, asegurando
un reloj limpio, con un ciclo de trabajo del 50%
Amplificar de nuevo (rebuffer) una señal de reloj,
normalmente para eliminar el sesgo (deskew)
Convertir la señal de reloj de entrada a un estándar
diferente, por ejemplo, de LVPECL a LVTTL
Sistemas Digitales II / Electrónica Digital II
60
Ruteo de Reloj Dedicado
H G F E
DCM
4
8
8
8
8
8
8
8
H
G
F
E
D
C
B
A
DCM
8
4
DCM
H
G
F
E
D
C
B
A
DCM
D C B A
Sistemas Digitales II / Electrónica Digital II
61
Ruteo de Reloj Dedicado
Ejemplo de
Ruteo de
reloj
dedicado
Applicacion
real
Sistemas Digitales II / Electrónica Digital II
62
Aplicaciones con DCM–Correción de Skew
D
Other Device
on the board
Sistemas Digitales II / Electrónica Digital II
63
Aplicaciones con DCM–Correción de Skew
D
Other Device
on the board
A) Esquema de configuración de los DCMs
B) Alineamiento ideal del reloj
C) Retardando el reloj, parece un adelantamiento
Sistemas Digitales II / Electrónica Digital II
64
Configuración del FPGA – Master Mode
Sistemas Digitales II / Electrónica Digital II
65
Configuración del FPGA – Slave Mode
Sistemas Digitales II / Electrónica Digital II
66
Vista
interna de
un FPGA
(Spartan 3)
Sistemas Digitales II / Electrónica Digital II
67
Xilinx Virtex-5 Applications
Xilinx XUP-V5
(UNSJ)
Sistemas Digitales II / Electrónica Digital II
68
ALICE Experiment
Time Projection
Chamber
Optical splitters
Inner Tracking System
Silicon Strip detector
Silicon Drift detector
Silicon Pixel Detector
Pixel Trigger crate
Sistemas Digitales II / Electrónica
Digital II
Printed with permission - A. Kluge, G. Aglieri Rinella
69
ALICE – Pixel Trigger Crate
Sistemas Digitales II / Electrónica
Digital II
70
Descargar