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.
Sistemas Digitales II / Electrónica Digital II 2
Altera Inc. Actel Corp.
Lucent Technology Philips Semiconductors
Intel Corp. Motorola Semiconductors
QuickLogic Cypress
Lattice Semiconductors AMD
Vantis Xilinx
FPGA2010
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).
4Sistemas Digitales II / Electrónica Digital II
Flujo de Trabajo con FPGA
Sistemas Digitales II / Electrónica Digital II 5
Specifications
VHDL Code / Sch
Compilation
Simulation & Verification
Synthesis & Optimization
Place & Route
Timing Verification
Back-end Tools (FPGA specific tools)
Front-end Tools (general purpose tools)
FPGA
Configuration
Estructura General de un FPGA
Sistemas Digitales II / Electrónica Digital II 6
Estructura y componentes de un FPGA de Xilinx
Estructura General de un FPGA
Sistemas Digitales II / Electrónica Digital II 7
Estructura y componentes de un FPGA de Altera
Celda de Configuración del FPGA
Elemento básico no-lógico
11Sistemas Digitales II / Electrónica Digital II
Determina la configuración de los elementos de ruteo e interconexiones
Determina la configuración de cada elemento lógico
Celdas de Configuración del FPGA
Tipos de Celdas
SRAM
Anti-Fuse
Flash
Flash y SRAM
12Sistemas Digitales II / Electrónica Digital II
Celda de Configuración Tipo SRAM
13Sistemas Digitales II / Electrónica Digital II
La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en
celdas SRAMs
Ventajas:
Rápida y fácil actualización
Infinitamente reprogramableProgramable en circuito (In System Programable)
Proceso de fabricación estándarCostos muy bajosProceso súper-comprobadoAlto rendimiento
Celda de Configuración tipo SRAM
14Sistemas Digitales II / Electrónica Digital II
Desventajas:
Necesidad de una memoria de configuración externa
Retardos en ruteo largos debido al retardo de la celda SRAM
Celda volátilSimple glitch en Vcc desconfigura el FPGA
Tiempo de configuración lento ~500ms
Inseguridad debido a la conexión FPGA-Memoria de configuración que puede ser ‘leída’
Celda de Configuración Tipo Anti-Fuse
15Sistemas Digitales II / Electrónica Digital II
La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en
celdas Anti-Fuse (ACTEL)
Celda de Configuración Tipo Anti-Fuse
16Sistemas Digitales II / Electrónica Digital II
Ventajas:
Retardos de conexiones de ruteo son pequeños
No es volátil
No sensibles a bombardeo de partículas iónicasMuy usados en sistemas espaciales
Celda de Configuración Tipo Anti-Fuse
17Sistemas Digitales II / Electrónica Digital II
Desventajas:
One-Time-Programmable (OTP)Proceso de verificacion muy largo y riguroso
Proceso muy caro
Proceso de fabricación específicoCostos elevados
No sensibles a bombardeo de partículas iónicasMuy usados en sistemas espaciales
Celda de Configuración Tipo Flash
18Sistemas Digitales II / Electrónica Digital II
La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en
celdas Flash
Celda de Configuración Tipo Flash-SRAM
19Sistemas Digitales II / Electrónica Digital II
Ventajas:
Tiempo de configuración es bastante bajo (~<1ms)
Prácticamente ‘no es volátil’
Se pueden configurar solo las celdas SRAMDurante el proceso de debug o prototipo
No se necesita una memoria de configuración externaMenos espacio en el PCBSistema no vulnerable – Sistema seguro
Celda de Configuración Tipo Flash-SRAM
20Sistemas Digitales II / Electrónica Digital II
Desventajas:
FPGA es caroProceso se esta haciendo mas común últimamente
Celda de Configuración Tipo Flash-SRAM
21Sistemas Digitales II / Electrónica Digital II
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 celdasSRAM se configuran en forma casiinstantanea desde las celdas Flash.
Celda de Configuración Tipo Flash
22Sistemas Digitales II / Electrónica Digital II
Ventajas:
Retardos de conexiones de ruteo son pequeños
No es volátil
Sensibilidad baja a bombardeo de partículas iónicasUsados en sistemas espaciales
Celda de Configuración Tipo Flash
23Sistemas Digitales II / Electrónica Digital II
Desventajas:
FPGA es bastante caroProceso se esta haciendo mas común últimamente
Proceso de reconfiguración bastante largo (~3-5 seg)
Comparación Tipos de Celdas
Sistemas Digitales II / Electrónica Digital II 24
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
Transicion FPGA a ASIC
Sistemas Digitales II / Electrónica Digital II 25
HardCopy – Altera
Producciones de grandes volumenes, +500.000/Y
EasyPath - Xilinx
Arquitectura similar al FPGA pero no programable !
Bajo Costo
Baja Potencia(*)
(*) Igloo
Arquitectura de los FPGAs
Sistemas Digitales II / Electrónica Digital II 26
El mas beneficiado:
Arquitectura en general es similar para FPGAs de diferentes fabricantes. Aunque cada fabricante diga
que su arquitectura es la mejor. .. .
El usuario final
Para diferenciarse cada fabricante ofrece …..
Arquitectura de los FPGAs
Sistemas Digitales II / Electrónica Digital II 27
Se verá en detalla la arquitectura de los FPGAs de Xilinx
Spartan 2-3-6 Virtex 2-2P-4-5-6
Alto rendimientoCaro
Medio rendimientoBarato
Bloque Lógico Configurable - SLICEL
Sistemas Digitales II / Electrónica Digital II 31
Dos LUTsDos flip-flopsCuatro salidas
Dos combinacionalesDos registradas
Entradas de control para f-fsEntradas para la LUTsE/S para la cadena de acarreo
Tabla de Búsqueda–Look-up Table (LUT)
Sistemas Digitales II / Electrónica Digital II 32
A B C D Z
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
Generador de Funciones=LUT
Proceso transparente para el disenador
Tabla de Búsqueda–Look-up Table (LUT)
Sistemas Digitales II / Electrónica Digital II 33
F5Mux
FiMux
F6Mux
F7Mux
F8Mux
Estandares de E/S Soportados (Spartan 3)
Sistemas Digitales II / Electrónica Digital II 42
Estandard Descripción UsoBuffer
Entrada
Buffer
Salida
LVTTL Low-Voltage TTL Propósito general 3.3V LVTTL Push-pull
LVCMOS Low-Voltage CMOSPropósito general 3.3V, 2.5V, 1.8V,
1.5VCMOS 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 TransportBidireccional 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
Bloques de Memoria (BRAM)
Sistemas Digitales II / Electrónica Digital II 46
16Kx1
8Kx2
4Kx4
2Kx8
0
8.191
4.095
2047
1023
0 0
0
0
1 2 4
8
16+2
16.383
Diferentes configuraciones de relación datos/direcciones que se pueden implementar en
los BRAMs
Bloques de Memoria (BRAM)
Sistemas Digitales II / Electrónica Digital II 47
Principales aplicaciones de los BRAM:
Líneas de retardo
Registros de desplazamiento o muy largos o muy anchos
Buffers circulares
Rd/Wr variables durante cálculos matemáticos, por ej. Coeficientes para filtros FIR
Almacenamiento de programas para procesadores embebidos en el FPGA
Bloques de Memoria (BRAM)- Cont.
Sistemas Digitales II / Electrónica Digital II 48
Principales aplicaciones de los BRAM:
Almacenamiento de formas de onda o tablas de funciones trigonométricas para generar salidas tipo Direct Digital Synthesis (DDS) (Síntesis Digital Directa)
Memorias Direccionables por Contenido (CAM) de alto rendimiento de Rd/Wr
Contadores muy largos y rápidos
Realización de MEF usando técnicas de microprogramación
Bloques DSP
Sistemas Digitales II / Electrónica Digital II 49
P = A x B
36 = 18 x 18
Pipelining (opcional)
Interconexiones - Ruteo
Sistemas Digitales II / Electrónica Digital II 52
Transistor de Paso
M
Y0
Y
PIP
Generacion de Reloj–Digital Clock Manager
Sistemas Digitales II / Electrónica Digital II 58
CLK0
CLK2X
CLK2X180
CLKDIV
CLKFX
CLKFX180
CLKIN
CLKFB
DCM
Bloque dedicado exclusivamente a funciones de control y generación de señal de reloj para la lógica interna del FPGA
Generación de Reloj
Sistemas Digitales II / Electrónica Digital II 59
Las principales funciones del DCM se pueden resumir en:
Multiplicar o dividir la frecuencia de entrada del reloj, generando una frecuencia completamente nueva
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
Eliminar el sesgo del reloj (clock skew), ya sea dentro del FPGA o con componentes externos
Generación de Reloj
Sistemas Digitales II / Electrónica Digital II 60
Las principales funciones del DCM se pueden resumir en:
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
Acondicionar la señal de entrada del reloj, asegurando un reloj limpio, con un ciclo de trabajo del 50%
Ruteo de Reloj Dedicado
Sistemas Digitales II / Electrónica Digital II 61
DCM
DCM
DCM
DCM
8 8
4
4
8 8
8 8
88
H
G
F
E
D
C
B
A
H
G
F
E
D
C
B
A
C ABD
G EFH
Ruteo de Reloj Dedicado
Sistemas Digitales II / Electrónica Digital II 62
Ejemplo de Ruteo de
relojdedicado
-Applicacion
real
Aplicaciones con DCM–Correción de Skew
Sistemas Digitales II / Electrónica Digital II 63
Other Device
on the board
D
Aplicaciones con DCM–Correción de Skew
Sistemas Digitales II / Electrónica Digital II 64
Other Device
on the board
D
C) Retardando el reloj, parece un adelantamiento
B) Alineamiento ideal del reloj
A) Esquema de configuración de los DCMs
Sistemas Digitales II / Electrónica Digital II 69
Inner Tracking SystemSilicon Strip detectorSilicon Drift detectorSilicon Pixel Detector
Time Projection Chamber
Pixel Trigger crate
Optical splitters
Printed with permission - A. Kluge, G. Aglieri Rinella
ALICE Experiment