Download Dispositivos FPGA - Grupo de Procesamiento de Señales

Document related concepts
no text concepts found
Transcript
Dispositivos FPGA
- Introducción a su arquitectura -
Sebastián E. Garcı́a
correo electrónico: sgarcia en fiubaar y sebastian en slabscomar
Grupo de Procesamiento de Señales, Identificación y Control
http://psic.fi.uba.ar
Departamento de Electrónica
Facultad de Ingenierı́a - Universidad de Buenos Aires
versión 24 de septiembre de 2013
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
1 / 32
Hoja de ruta
1
Cronologı́a de dispositivos de lógica programable
2
Caracterı́sticas básicas de los dispositivos FPGA
3
Flujo (ciclo) de diseño
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
2 / 32
Cronologı́a de dispositivos de lógica programable
Orı́genes
Resumen cronológico de dispositivos programables
Aparecen desde el comienzo de la era del circuito integrado.
(ca. 1960) Cellular arrays.
I
I
Celdas lógicas con interconexiones (fijas) entre ellas.
Lógica interna a la celda configurable en capas de metal (máscaras. . . )
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
3 / 32
Cronologı́a de dispositivos de lógica programable
Orı́genes
Resumen cronológico de dispositivos programables
Aparecen desde el comienzo de la era del circuito integrado.
(ca. 1960) Cellular arrays.
I
I
Celdas lógicas con interconexiones (fijas) entre ellas.
Lógica interna a la celda configurable en capas de metal (máscaras. . . )
(ca. 1965) Se logra “field programmability”
I
I
I
O sea, chip configurable fuera de la foundry.
Fusibles programables (“cut-points”),
activados por corriente o exposición foto-conductiva.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
3 / 32
Cronologı́a de dispositivos de lógica programable
Orı́genes
Resumen cronológico de dispositivos programables
Aparecen desde el comienzo de la era del circuito integrado.
(ca. 1960) Cellular arrays.
I
I
Celdas lógicas con interconexiones (fijas) entre ellas.
Lógica interna a la celda configurable en capas de metal (máscaras. . . )
(ca. 1965) Se logra “field programmability”
I
I
I
O sea, chip configurable fuera de la foundry.
Fusibles programables (“cut-points”),
activados por corriente o exposición foto-conductiva.
(ca. 1970) Dispositivos basados en ROM (Read-Only Memory).
I
I
I
N lı́neas de address implementan funciones lógicas de N entradas.
Versiones ROM (máscaras; foundry) o PROM (fusibles; field).
Problema: área de silicio cuando N es grande (decoders. . . ).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
3 / 32
Cronologı́a de dispositivos de lógica programable
Orı́genes
Resumen cronológico de dispositivos programables
Aparecen desde el comienzo de la era del circuito integrado.
(ca. 1960) Cellular arrays.
I
I
Celdas lógicas con interconexiones (fijas) entre ellas.
Lógica interna a la celda configurable en capas de metal (máscaras. . . )
(ca. 1965) Se logra “field programmability”
I
I
I
O sea, chip configurable fuera de la foundry.
Fusibles programables (“cut-points”),
activados por corriente o exposición foto-conductiva.
(ca. 1970) Dispositivos basados en ROM (Read-Only Memory).
I
I
I
N lı́neas de address implementan funciones lógicas de N entradas.
Versiones ROM (máscaras; foundry) o PROM (fusibles; field).
Problema: área de silicio cuando N es grande (decoders. . . ).
PLD: Programmable Logic Device; término genérico para estos
dispositivos.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
3 / 32
Cronologı́a de dispositivos de lógica programable
Orı́genes
Resumen cronológico de dispositivos programables
Aparecen desde el comienzo de la era del circuito integrado.
(ca. 1960) Cellular arrays.
I
I
Celdas lógicas con interconexiones (fijas) entre ellas.
Lógica interna a la celda configurable en capas de metal (máscaras. . . )
(ca. 1965) Se logra “field programmability”
I
I
I
O sea, chip configurable fuera de la foundry.
Fusibles programables (“cut-points”),
activados por corriente o exposición foto-conductiva.
(ca. 1970) Dispositivos basados en ROM (Read-Only Memory).
I
I
I
N lı́neas de address implementan funciones lógicas de N entradas.
Versiones ROM (máscaras; foundry) o PROM (fusibles; field).
Problema: área de silicio cuando N es grande (decoders. . . ).
PLD: Programmable Logic Device; término genérico para estos
dispositivos.
SPLD: Simple Programmable Logic Device.
I
I
Engloba lógica PLA, PAL, derivados de PAL.
Bajo costo, rápidos.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
3 / 32
Cronologı́a de dispositivos de lógica programable
Orı́genes
Resumen cronológico de dispositivos programables
Aparecen desde el comienzo de la era del circuito integrado.
(ca. 1960) Cellular arrays.
I
I
Celdas lógicas con interconexiones (fijas) entre ellas.
Lógica interna a la celda configurable en capas de metal (máscaras. . . )
(ca. 1965) Se logra “field programmability”
I
I
I
O sea, chip configurable fuera de la foundry.
Fusibles programables (“cut-points”),
activados por corriente o exposición foto-conductiva.
(ca. 1970) Dispositivos basados en ROM (Read-Only Memory).
I
I
I
N lı́neas de address implementan funciones lógicas de N entradas.
Versiones ROM (máscaras; foundry) o PROM (fusibles; field).
Problema: área de silicio cuando N es grande (decoders. . . ).
PLD: Programmable Logic Device; término genérico para estos
dispositivos.
SPLD: Simple Programmable Logic Device.
I
I
Engloba lógica PLA, PAL, derivados de PAL.
Bajo costo, rápidos.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
3 / 32
Cronologı́a de dispositivos de lógica programable
Programmable Logic Array (PLA)
(ca. 1970) PLA: Programmable Logic Array.
I
2 niveles AND/OR (ambos programables).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
4 / 32
Cronologı́a de dispositivos de lógica programable
Programmable Array Logic (PAL)
(ca. 1977) PAL: Programmable Array Logic.
I
I
2 niveles AND/OR (solo programable nivel AND).
Salidas registradas (F/Fs D); realimentación.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
5 / 32
Cronologı́a de dispositivos de lógica programable
Complex Programmable Logic Device (CPLD)
(ca. 1980) CPLD: Complex Programmable Logic Device.
I
I
I
Múltiples (∼50) SPLD (“macrocells”), conectados a través de
cross-bars programables.
Configurables con memoria on-chip no volátil (e.g. EEPROM, flash.).
Aplicaciones: glue logic, FSMs, lógica de baja/media complejidad.
Arquitectura de CPLD Altera MAX7000 (ca. 1995, no discontinuada aún)
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
6 / 32
Cronologı́a de dispositivos de lógica programable
Complex Programmable Logic Device (CPLD)
Detalle de Logic Array Block de CPLD MAX7000
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
7 / 32
Cronologı́a de dispositivos de lógica programable
Complex Programmable Logic Device (CPLD)
Detalle de macrocell de CPLD MAX7000
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
8 / 32
Cronologı́a de dispositivos de lógica programable
Field-Programmable Gate Array (FPGA)
FPGA: Field-Programmable Gate Array.
I
I
I
Idea general planteada en 1967 (Wahlstrom).
Ross Freeman (Xilinx) propone en 1984 un diseño basado en SRAM.
(celdas SRAM almacenan configuración de lógica e interconexiones).
Primer dispo. FPGA: 64 CLBs y 58 I/O (2010: +500000 y +1000).
Vista global de dispositivo FPGA homogéneo
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
9 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Generalidades y bloques básicos
FPGA: Comentarios generales
Bloques lógicos relativamente simples, conectados entre sı́ por una
infraestructura de cableado y matrices de interconexión.
Universo de diseños implementados en FPGA: 99 % sincrónicos
(metodologı́a, herramientas disponibles).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
10 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Generalidades y bloques básicos
FPGA: Comentarios generales
Bloques lógicos relativamente simples, conectados entre sı́ por una
infraestructura de cableado y matrices de interconexión.
Universo de diseños implementados en FPGA: 99 % sincrónicos
(metodologı́a, herramientas disponibles).
Tecnologı́as de configuración (“programación”) on-chip:
I
I
I
SRAM. Proceso CMOS ⇒ alta integración (e.g.: Xilinx @40nm,
Altera @45nm). Achronix @22nm, Intel 3D tri-gate. . . .
Flash,
Antifuse (procesos especiales).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
10 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Generalidades y bloques básicos
FPGA: Comentarios generales
Bloques lógicos relativamente simples, conectados entre sı́ por una
infraestructura de cableado y matrices de interconexión.
Universo de diseños implementados en FPGA: 99 % sincrónicos
(metodologı́a, herramientas disponibles).
Tecnologı́as de configuración (“programación”) on-chip:
I
I
I
SRAM. Proceso CMOS ⇒ alta integración (e.g.: Xilinx @40nm,
Altera @45nm). Achronix @22nm, Intel 3D tri-gate. . . .
Flash,
Antifuse (procesos especiales).
Mercado dominado por Xilinx y Altera.
“Nichos” cubiertos por Lattice, Microsemi (ex- Actel), Atmel,
Achronix (¿Intel?), Aeroflex (ex- Quicklogic), etc.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
10 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Generalidades y bloques básicos
FPGA: Comentarios generales
Bloques lógicos relativamente simples, conectados entre sı́ por una
infraestructura de cableado y matrices de interconexión.
Universo de diseños implementados en FPGA: 99 % sincrónicos
(metodologı́a, herramientas disponibles).
Tecnologı́as de configuración (“programación”) on-chip:
I
I
I
SRAM. Proceso CMOS ⇒ alta integración (e.g.: Xilinx @40nm,
Altera @45nm). Achronix @22nm, Intel 3D tri-gate. . . .
Flash,
Antifuse (procesos especiales).
Mercado dominado por Xilinx y Altera.
“Nichos” cubiertos por Lattice, Microsemi (ex- Actel), Atmel,
Achronix (¿Intel?), Aeroflex (ex- Quicklogic), etc.
Disponibilidad de dispositivos heterogéneos, con bloques predefinidos
en silicio (e.g. memoria, multiplicadores, µP, ADC.).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
10 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Generalidades y bloques básicos
FPGA: Comentarios generales
Bloques lógicos relativamente simples, conectados entre sı́ por una
infraestructura de cableado y matrices de interconexión.
Universo de diseños implementados en FPGA: 99 % sincrónicos
(metodologı́a, herramientas disponibles).
Tecnologı́as de configuración (“programación”) on-chip:
I
I
I
SRAM. Proceso CMOS ⇒ alta integración (e.g.: Xilinx @40nm,
Altera @45nm). Achronix @22nm, Intel 3D tri-gate. . . .
Flash,
Antifuse (procesos especiales).
Mercado dominado por Xilinx y Altera.
“Nichos” cubiertos por Lattice, Microsemi (ex- Actel), Atmel,
Achronix (¿Intel?), Aeroflex (ex- Quicklogic), etc.
Disponibilidad de dispositivos heterogéneos, con bloques predefinidos
en silicio (e.g. memoria, multiplicadores, µP, ADC.).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
10 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Generalidades y bloques básicos
FPGA: Componentes básicos
Bloques lógicos,
Bloques I/O,
Infraestructura de ruteo programable,
Red de distribución de clock,
Red de alimentación.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
11 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
Bloques lógicos
Bosquejo de elemento lógico básico
Look-up Table de K entradas, implementando función lógica.
Salida directa (combinacional) o a través de F/F (secuencial).
Multiplexor implementando el módulo LUT.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
12 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
Bosquejo de agrupamiento de elementos básicos
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
13 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
CLB de Xilinx XC4000 (ca. 1990)
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
14 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
Evolución de los bloques lógicos
Bloque lógico de FPGA consta de agrupamiento de elementos lógicos
básicos (LUT/s + F/F).
LUTs configurables como memoria distribuı́da.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
15 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
Evolución de los bloques lógicos
Bloque lógico de FPGA consta de agrupamiento de elementos lógicos
básicos (LUT/s + F/F).
LUTs configurables como memoria distribuı́da.
LUTs “subdividibles” en LUTs independientes con menos entradas.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
15 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
Evolución de los bloques lógicos
Bloque lógico de FPGA consta de agrupamiento de elementos lógicos
básicos (LUT/s + F/F).
LUTs configurables como memoria distribuı́da.
LUTs “subdividibles” en LUTs independientes con menos entradas.
Agregado de lógica adicional para mejorar operaciones aritméticas
(e.g.: acarreo rápido).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
15 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos
Evolución de los bloques lógicos
Bloque lógico de FPGA consta de agrupamiento de elementos lógicos
básicos (LUT/s + F/F).
LUTs configurables como memoria distribuı́da.
LUTs “subdividibles” en LUTs independientes con menos entradas.
Agregado de lógica adicional para mejorar operaciones aritméticas
(e.g.: acarreo rápido).
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
15 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: CLBs de Xilinx Spartan-6
Xilinx Spartan-6 (ca. 2009)
Spartan-6: Slices dentro del Configurable Logic Block (CLB)
Spartan-6: Vista simplificada de CLBs y slices
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
16 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: CLBs de Xilinx Spartan-6
CLB conectado a matriz de ruteo local.
Slices organizados en columnas.
CLB contiene 2 slices, sin conexión directa entre ellos,
I
I
“SliceX”,
“SliceL” o “SliceM”.
Spartan-6: Caracterı́sticas de los 3 tipos de slices
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
17 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: CLBs de Xilinx Spartan-6
Spartan-6: Mitad superior de un módulo SliceX
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
18 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: CLBs de Xilinx Spartan-6
Spartan-6: Mitad superior de un módulo SliceL
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
19 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: CLBs de Xilinx Spartan-6
Spartan-6: Mitad superior de un módulo SliceM
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
20 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: CLBs de Xilinx Spartan-6
LUT6 (6 entradas)
Spartan-6: Diagrama simplificado de LUT6 y F/Fs
Salida de 1 LUT6: O6.
Salidas de 2 LUT5: O6 y O5.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
21 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Bloques lógicos: Detalle a nivel de transistor
A nivel de transistor. . .
Detalle de LUT de 4 entradas
Detalle de celda mı́nima de memoria SRAM
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
22 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Recursos lógicos disponibles en Spartan-6
Recursos lógicos disponibles en dispositivos de la familia Spartan-6
Nota: “logic cells” ≡ “la definición mas conveniente” (marketing. . . )
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
23 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Infraestructura de ruteo
Infraestructura de ruteo
Topologı́a de ruteo tipo “isla” (estado del arte)
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
24 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Infraestructura de ruteo
Canales entre CLBs. 1 canal = W pistas. 1 pista = N segmentos de ruteo.
Fc,in , Fc,out : cant. de pistas del canal que se pueden conectarse al CLB.
Bloque de conmutación: interconecta segmentos.
Fs : nro. de segmentos al que puede conectarse un segmento dado.
Los segmentos abarcan distinto nro. de CLBs.
Segmentos de ruteo (horizontales) de distinta longitud
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
25 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Infraestructura de ruteo
Ruteo tipo “single-driver”
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
26 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Infraestructura de ruteo
Multiplexor funcionando como router programable
Implementación a nivel de transistor: MUX + buffer
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
27 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Distribución de clock
Red de distribución de clock
Estructura de clock global
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
28 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Distribución de clock
Estructura de clock buffers horizontales
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
29 / 32
Caracterı́sticas básicas de los dispositivos FPGA
Distribución de clock
Bloques DCM
Diagrama funcional de un DCM
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
30 / 32
Flujo (ciclo) de diseño
Diseño CAE: Diagrama básico
Flujo de diseño
Figura tomada de [Güichal]
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
31 / 32
Referencias
Referencias
I Brown, S., Rose, J.,
“FPGA and CPLD architectures: A tutorial,” IEEE Design & Test of Computers, vol.
13, issue 2, pp. 42-57, IEEE 1996.
I Kuon, I., Tessier, R., Rose, J.,
“FPGA architecture: Survey and challenges,” Foundations and Trends in EDA, vol. 2,
no. 2, pp. 135-253, Now Publishers 2008.
I Xilinx,
“Spartan-6 FPGA Configurable Logic Block User Guide,” UG384, v1.1 2010.02.23.
I Xilinx,
“Spartan-6 FPGA Clocking Resources User Guide,” UG382, v1.1 2012.07.20.
I Güichal, G.,
“Dispositivos lógicos programables,” (slides) 2009.
Sebastián E. Garcı́a (GPSIC-FIUBA)
Arquitectura de dispositivos FPGA
24 de septiembre de 2013
32 / 32