Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE 2 CIRCUITOS DIGITALES CONFIGURABLES (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción Enrique Mandado Pérez María José Moure Rodríguez Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) Circuito digital configurable en el que los recursos lógicos y las conexiones entre ellos están distribuidos. ELEMENTOS DE UN CIRCUITO FPGA - Bloques lógicos internos - Bloques de entrada/salida - Recursos de interconexión - Recursos de sincronización Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) ELEMENTOS DE UN CIRCUITO FPGA Bloques lógicos internos Recursos lógicos que permiten realizar diferentes funciones lógicas. Su complejidad puede variar desde un simple par de transistores hasta un conjunto de memorias de acceso aleatorio denominadas tablas de consulta (look-up tables), combinadas o no con elementos de memorización, de inversión de variables, etc. Suelen ser configurables y diversos fabricantes los denominan con el acrónimo CLB (Configurable ( Logic Block). ). Según los bloques lógicos los circuitos FPGA pueden ser: - FPGA de granularidad fina (Fine granularity) Posee gran cantidad de bloques lógicos muy sencillos con capacidad para realizar un número muy limitado de funciones lógicas cada uno. - FPGA de granularidad gruesa (Coarse granularity) Posee un menor número de bloques lógicos cada uno de los cuales tiene capacidad para realizar funciones de cierta complejidad. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) ELEMENTOS DE UN CIRCUITO FPGA Bloques de entrada/salida (I/O blocks) Recursos lógicos que establecen el enlace entre los bloques lógicos internos y los terminales de entrada/salida. Suelen ser configurable y pueden tener también diferentes grados de complejidad. Recursos de interconexión Conjunto de líneas e interruptores programables a través de los cuales las señales se transmiten entre los bloques lógicos internos y entre ellos y los bloques de entrada/salida. Se denominan canales de enrutado o de encaminamiento (Routing channels). Recursos de sincronización y distribución del generador de impulsos Disminuyen y eliminan los retrasos en la distribución de la onda cuadrada del generador de impulsos (Clock). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TIPOS DE CIRCUITOS FPGA De acuerdo con la organización de los bloques lógicos y con la forma de realizar los recursos de interconexión pueden ser: - Terraza (Terraced) - Cuadrícula (Manhattan or Island) - Mar de puertas (Sea of gates) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA tipo terraza Se caracteriza por tener los bloques lógicos internos dispuestos en filas separadas por canales en los que se ubican los recursos de interconexión horizontal. Reciben por ello el nombre de terraza (Terraced or Row based organization). Se basa en los circuitos integrados semimedida de tipo matriz de puertas, denominada no canalizada (Channelless) en los que los recursos de interconexión se solapan con los recursos lógicos en diferentes capas. & & & & & & & & & & & & RECURSOS LÓGICOS RECURSOS DE INTERCONEXIÓN RECURSOS LÓGICOS RECURSOS DE INTERCONEXIÓN RECURSOS LÓGICOS Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA tipo terraza E/S La conexión entre los bloques lógicos y entre ellos y los bloques de entrada/salida se realiza fundamentalmente mediante recursos de interconexión horizontal. Existen también recursos de interconexión vertical que facilitan la comunicación entre los canales horizontales y transmiten señales globales como por ejemplo la de reloj. No se agrupan formando canales, al contrario que los recursos de interconexión horizontal, sino que se distribuyen por todo el circuito y se solapan con el resto de los elementos que lo forman. E/S E/S E/S E/S E/S E/S E/S E/S BL BL BL BL BL BL BL BL E/S E/S BL BL BL BL BL BL BL BL E/S E/S E/S BL BL BL BL BL BL BL BL E/S E/S E/S BL BL BL BL BL BL BL BL E/S E/S E/S E/S BL BL BL BL BL BL BL BL E/S E/S E/S E/S E/S E/S E/S E/S BL: Bloque Lógico E/S: Bloque de entrada/salida Recursos de interconexión horizontal Recursos de interconexión vertical E/S Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA tipo cuadrícula (Manhattan or Island) Está constituida por un conjunto de bloques lógicos internos dispuestos en forma de filas y columnas delimitadas por los recursos de interconexión que se extienden de forma vertical y horizontal entre los bloques Se basa en la organización de los circuitos integrados semimedida denominada canalizada (Channelled) en la que los recursos de interconexión se intercalan entre los recursos lógicos & & & BLOQUE BLOQUE BLOQUE LÓGICO LÓGICO LÓGICO BLOQUE BLOQUE BLOQUE LÓGICO LÓGICO LÓGICO BLOQUE BLOQUE BLOQUE LÓGICO LÓGICO LÓGICO & & & & & & & & & Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) E/S E/S E/S E/S E/S E/S E/S E/S FPGA tipo mar de puertas E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S Recursos de interconexión vertical Recursos de interconexión horizontal BL BL BL BL BL BL BL BL BL BL BL BL E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S E/S E/S BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL E/S E/S E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S BL BL BL BL BL BL BL BL BL BL BL BL E/S E/S E/S E/S E/S E/S E/S E/S E/S BL BL BL BL BL BL BL BL BL BL BL BL Bloques lógicos Los recursos de interconexión se sitúan en capas diferentes de las de los bloques lógicos internos (como en los circuitos integrados semimedida del tipo matriz de puertas no canalizada). Las facilidades de conexionado de esta organización permiten disminuir apreciablemente los retardos, por lo que su velocidad de operación es menos sensible a las decisiones de partición (Partitioning) y de ubicación (Placement) de los bloques lógicos. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) COMPARACIÓN ENTRE LOS CIRCUITOS PLD Y LOS FPGA FPGA CUADRÍCULA PLD BLOQUE BLOQUE LÓGICO LÓGICO BLOQUE MATRIZ BLOQUE LÓGICO DE LÓGICO INTERCONEXIÓN BLOQUE BLOQUE LÓGICO LÓGICO BLOQUE BLOQUE BLOQUE LÓGICO LÓGICO LÓGICO BLOQUE BLOQUE BLOQUE LÓGICO LÓGICO LÓGICO BLOQUE BLOQUE BLOQUE LÓGICO LÓGICO LÓGICO Los circuitos FPGA superan en general a los circuitos PLD: - Alcanzan mayor densidad de integración y por tanto con ellos se pueden implementar sistemas digitales más complejos. - Facilitan la implementación de sistemas digitales de arquitecturas muy diferentes: criptografía, procesado de señal, control industrial, etc. - Facilitan la implementación de unidades aritméticas con generación de acarreos en paralelo y con ellos se pueden implementar procesadores digitales más rápidos. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) Esquema de bloques conceptual de una FPGA de organización cuadrícula Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES BASADOS EN PUERTAS LÓGICAS Están constituidos por un circuito combinacional que realiza diversas funciones lógicas sencillas según el estado de unas variables de configuración CCC Variables de Configuración Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES BASADOS EN MULTIPLEXORES Están constituidos por uno o más multiplexores que, mediante la conexión adecuada de sus entradas a una variable o a un nivel constante, permiten realizar funciones lógicas de diferentes números de variables. Si poseen varias entradas y salidas se puede realizar mediante ellos una función lógica compleja o varias funciones sencillas. G1 A A Y1 B Y B Y2 C C Símbolo lógico de un multiplexor de dos canales Y3 D D G3 G G2 Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES BASADOS EN TABLAS DE CONSULTA TABLA DE CONSULTA (LOOK UP TABLE) Memoria RAM con la que se puede implementar cualquier función lógica cuyo número de variables sea igual o menor que el número de entradas de la tabla de consulta. Tabla de consulta de tres variables de entrada Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES BASADOS EN TABLAS DE CONSULTA A B Y1 LUT C D LUT Y3 A B C D LUT Y2 Ejemplo de CLB basado en tablas de consulta Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES CON BIESTABLES ENTRADA DIRECTA SALIDA ADICIONAL PUESTA A CERO A B C SALIDA SIN MEMORIZAR R BLOQUE LÓGICO Q D D E CLK S PUESTA A UNO SALIDA MEMORIZADA Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES CON BIESTABLES REALIMENTADOS D D A A B B C C Q Q BLOQUE LÓGICO UNIVERSAL BLOQUE LÓGICO UNIVERSAL CLK CLK Facilitan la implementación de sistemas secuenciales Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES LÓGICOS CONFIGURABLES CON GENERACIÓN ANTICIPADA DEL ACARREO ENTRADA DE ACARREO Facilitan la realización de circuitos sumadores, contadores y multiplicadores capaces de funcionar a elevada frecuencia. A BLOQUE LÓGICO S1 B GENERADOR DE ACARREO BL 1 A BLOQUE LÓGICO S2 B GENERADOR DE ACARREO BL 2 SALIDA DE ACARREO Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUE LÓGICO CONFIGURABLE DE LA FPGA SPARTAN-IIE Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA CON BLOQUES LÓGICOS CONFIGURABLES Y BLOQUES FUNCIONALES DE MEMORIA BL BL BL BL Memoria BL BL BL BL BL BL BL BL Memoria BL BL BL BL BL BL BL BL Memoria BL BL BL BL BL BL BL BL Memoria BL BL BL BL BL BL BL BL Memoria BL BL BL BL BL BL BL BL Memoria BL BL BL BL Arquitectura FPGA con bloques RAM adicionales Eleva la velocidad de proceso, aprovecha mejor los terminales de entrada/salida y simplifica el diseño de la placa de circuito impreso en la que se coloca la FPGA Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA CON BLOQUES LÓGICOS CONFIGURABLES Y BLOQUES FUNCIONALES DE MEMORIA - Memoria de acceso aleatoiro (RAM) - Escritura y lectura no simultánea (Single port RAM) Escritura/lectura simultáneas (Simple dual-port RAM) Acceso doble (True dual-port o bidirectional dual-port) ROM - Registros de desplazamiento - Implementadas con BLC (CLB) y RAM - FIFO - CAM Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUE DE MEMORIA DE LA FPGA SPARTAN-IIE Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA CON BLOQUES LÓGICOS CONFIGURABLES, BLOQUES FUNCIONALES DE MEMORIA Y MULTIPLICADORES MEMORIA MULTIPLICADORES 18 Bit 36 Bit 18 Bit Facilitan la realización de cálculos matemáticos complejos Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA CON BLOQUES LÓGICOS CONFIGURABLES Y PROCESADOR EMPOTRADO (EMBEDDED PROCESSOR) FPGA BL BL BL BL BL BL BL BL BL BL CPU FPGA RAM INTERFAZ INTERFAZ CPU RAM BL BL BL BL FPGA con procesador digital definido por hardware: a) Colocado entre los bloques lógicos configurables; b) Separado de los bloques lógicos configurables. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA CON BLOQUES LÓGICOS CONFIGURABLES Y PROCESADOR CONFIGURADO CON ELLOS FPGA FPGA BL BL BL BL BL Proceso de configuración CPU RAM INTERFAZ Proceso de generación de un procesador digital configurable definido mediante un programa (Software). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) FPGA CON BLOQUES LÓGICOS CONFIGURABLES, PROCESADORES Y TRANSCEPTORES Transceptores Transceivers PowerPC Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) RECURSOS LÓGICOS DE LA FPGA SPARTAN-IIE Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES DE ENTRADA/SALIDA CONFIGURABLES • Utilización del terminal externo como salida: – – – – – Elección de la variable directa o inversa. Biestable de memorización. Elección de salida directa o memorizada. Tercer estado. Control de la pendiente de cambio (Slew rate). – Control de la corriente de salida. • Utilización del terminal externo como entrada: – Biestable de memorización. – Elección de entrada directa o memorizada. – Nivel lógico: TTL, CMOS y tecnologías de bajo consumo (3.3V, 1.8V). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES DE ENTRADA/SALIDA CONFIGURABLES Elección de variable directa o inversa Implementado con multiplexores de dos canales que permiten seleccionar la variable directa o inversa. SEÑAL DE CONTROL DEL TERCER ESTADO SEÑAL DE SALIDA SEÑAL DE ENTRADA Memorización de entrada y salida Implementado con biestables que memorizan las señales de entrada o de salida del bloque para facilitar la sincronización de variables externas y elevar los recursos de la FPGA CONTROL DEL TERCER ESTADO SEÑAL DE SALIDA D Q Q D RELOJ SEÑAL DE ENTRADA Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BLOQUES DE ENTRADA/SALIDA DE LA FPGA SPARTAN-IIE Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) RECURSOS DE INTERCONEXIÓN • Canales de interconexión (Routing channels) – – – – Interconectan los CLB entre sí. Interconectan los CLB con los IOB. En una misma FPGA hay canales de diferentes longitudes. Se distribuyen de distintas formas en el interior de las diferentes FPGA. • Conexiones configurables – Conectan los canales de interconexión mediante la programación de unos elementos binarios. – Cada conexión programable añade un retardo a la señal. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) RECURSOS DE INTERCONEXIÓN ENTRE BLOQUES LÓGICOS DE UNA FPGA DE LA FAMILIA XC4000 Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) RECURSOS DE INTERCONEXIÓN DE GRAN LONGITUD DE UNA FPGA DE LA FAMILIA XC4000 Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) RECURSOS DE INTERCONEXIÓN Conectado No conectado CLB 1 CLB 2 CLB 3 CLB 4 CLB 1 CLB 2 CLB 3 CLB 4 • Se enlazan varios segmentos a través de conexiones configurables. • El retardo de interconexión de las señales depende de la longitud de las líneas de interconexión y del número de conexiones configurables que debe atravesar una señal. Dicho retardo influye en la velocidad de operación del sistema digital implementado en la FPGA. • Los retardos no son predecibles Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) RECURSOS DE INTERCONEXIÓN Conexión programable CLB CLB CLB CLB Amplificador (Buffer) global Conexión directa global