Download Circuitos digitales configurables Parte3 Tema 1

Document related concepts
no text concepts found
Transcript
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