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