Arreglo de Compuertas Programables en el Campo Field

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
C. Sisterna
Altera Inc.
Actel Corp.
Lucent Technology
Philips Semiconductors
Intel Corp.
Motorola Semiconductors
QuickLogic
Cypress
Lattice Semiconductors
AMD
Vantis
Xilinx
DSDA
2
Qué es un FPGA?
Lógica y conexiones programables
Programación en circuito (ISP)
Bloques dedicados a:
Memoria
Control de reloj
Operaciones MAC, bloques DSP
Procesadores embebidos
Comunicación serie de Gigabits/s
Otros bloques específicos
C. Sisterna
DSDA
3
Qué 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).
C. Sisterna
DSDA
4
Estructura General de un FPGA
Estructura y componentes de un FPGA de Xilinx
C. Sisterna
DSDA
5
Estructura General de un FPGA
Estructura y componentes de un FPGA de Altera
C. Sisterna
DSDA
6
Similaridad entre FPGAs
C. Sisterna
DSDA
7
Vista
interna de
un FPGA
(Spartan 3)
C. Sisterna
DSDA
8
Familia del Spartan 3E
C. Sisterna
DSDA
9
Familia del Virtex 5
C. Sisterna
DSDA
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
C. Sisterna
DSDA
11
Celdas de Configuración del FPGA
Tipos de Celdas
SRAM
Anti-Fuse
Flash
Flash y SRAM
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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’
C. Sisterna
DSDA
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)
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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
C. Sisterna
DSDA
18
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
C. Sisterna
DSDA
19
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)
C. Sisterna
DSDA
20
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
C. Sisterna
DSDA
21
Celda de Configuración Tipo Flash-SRAM
Desventajas:
FPGA es caro
Proceso se esta haciendo mas común últimamente
C. Sisterna
DSDA
22
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.
C. Sisterna
DSDA
23
Comparación Tipos de Celdas
SRAM
Anti_fuse
Flash
Tecnología
Ultima
Una o más
generación
atrás
Una o más
generación atrás
Velocidad
Más lenta
Mejor
Más lenta
Si
No
No
Potencia
Varía/Peor
Baja
Media Baja
Densidad
Mejor
Segunda Mejor
Media
Tolerancia a la
Radiación
Peor
Mejor
Media
Config. Externa
Si
No
No
Tamaño celda ruteo
1
1/10
1/7
Memoria Externa
Si
No
No
Reprogramable
Si
No
Si
Instant-On
No
Si
Si
Seguridad
Encriptado->
Buena, Sino
MALA
Muy buena
Muy Buena
Grande
(6 Transistores)
Muy pequeña
Media-Baja
(2 transistores)
Volátil
Tamano Celda
Config.
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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:
C. Sisterna
El usuario final
DSDA
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
C. Sisterna
DSDA
27
Arquitectura de los FPGAs
C. Sisterna
DSDA
28
Bloque Lógico Configurable (CLB)
CLB
C. Sisterna
DSDA
29
Bloque Lógico Configurable (CLB)
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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
C. Sisterna
DSDA
32
Tabla de Búsqueda–Look-up Table (LUT)
F5Mux
F6Mux
FiMux
F7Mux
F8Mux
C. Sisterna
DSDA
33
Elementos de Almacenamiento del SLICE
C. Sisterna
DSDA
34
Lógica de Acarreo (Carry In- Carry Out)
C. Sisterna
DSDA
35
SLICEL/M y sus Componentes
C. Sisterna
DSDA
36
Detalle de un
SLICEM
C. Sisterna
DSDA
37
Virtex II – Detalle de Mitad del Slice
C. Sisterna
DSDA
38
Vista de
un CLB
real
C. Sisterna
DSDA
39
Detalle del
Bloque E/S
(IOB)
C. Sisterna
DSDA
40
Bloque E/S real
C. Sisterna
DSDA
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
C. Sisterna
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
DSDA
42
Bancos de E/S
Bancos E/S Virtex II
C. Sisterna
DSDA
43
Bloques de Memoria (BRAM)
C. Sisterna
DSDA
44
Opciones de Configuración de Memoria
C. Sisterna
DSDA
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
C. Sisterna
1023
DSDA
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
C. Sisterna
DSDA
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)
C. Sisterna
DSDA
48
Bloques DSP
P=AxB
36 = 18 x 18
Pipelining (opcional)
C. Sisterna
DSDA
49
Bloque DSP – Avanzado Virtex-5
C. Sisterna
DSDA
50
Interconexiones - Ruteo
C. Sisterna
DSDA
51
Interconexiones - Ruteo
Transistor de Paso
Y0
Y
M
PIP
C. Sisterna
DSDA
52
Interconexiones - Ruteo
C. Sisterna
DSDA
53
Interconexiones - Ruteo
C. Sisterna
DSDA
54
Interconexiones - Ruteo
C. Sisterna
DSDA
55
Interconexiones - Ruteo
C. Sisterna
DSDA
56
Interconexiones - Ruteo
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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
C. Sisterna
DSDA
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
C. Sisterna
DSDA
60
Ruteo de Reloj Dedicado
H G F E
DCM
4
8
8
8
4
DCM
8
8
8
8
H
G
F
E
D
C
B
A
DCM
8
H
G
F
E
D
C
B
A
DCM
D C B A
C. Sisterna
DSDA
61
Ruteo de Reloj Dedicado
Ejemplo de
Ruteo de
reloj
dedicado
Applicacion
real
C. Sisterna
DSDA
62
Aplicaciones con DCM–Correción de Skew
D
Other Device
on the board
C. Sisterna
DSDA
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
C. Sisterna
DSDA
64
Configuración del FPGA – Master Mode
C. Sisterna
DSDA
65
Configuración del FPGA – Slave Mode
C. Sisterna
DSDA
66
Vista
interna de
un FPGA
(Spartan 3)
C. Sisterna
DSDA
67
Xilinx Virtex-5 Applications
Xilinx XUP-V5
(UNSJ)
C. Sisterna
DSDA
68
ALICE Experiment
Time Projection
Chamber
Optical splitters
Inner Tracking System
Silicon Strip detector
Silicon Drift detector
Silicon Pixel Detector
Pixel Trigger crate
PrintedC.with
permission - A. Kluge, G. Aglieri Rinella
Sisterna
DSDA
69
ALICE – Pixel Trigger Crate
C. Sisterna
DSDA
70
Descargar