Upload
others
View
17
Download
0
Embed Size (px)
Citation preview
Tema II Circuitos Integrados Programables;
CPLDs y FPGAs Roberto Gutiérrez Mazón
1
The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN 0750676043 Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
3.a Full Custom y Semi-Custom. 3.b Mask-Programmable Gate Arrays (MPGA). 3.c PLDs
i. SPLDs (PLD simples) ii. CPLDs (PLD complejos) iii. FPGAs
2
Familias Lógicas
ASIC Lógica Standard
PLDs
SPLDs (PALs)
Arrays Puertas Semi Custom Full Custom
CPLDs FPGAs Standard Cell
3
¨ Nos surge una pregunta
¿Qué plataforma es la mejor?
¨ Y la respuesta
Depende de los requerimientos de la aplicación
4
¨ Consideraciones a tener en cuenta para la elección de una familia u otra:
Ø Retardo Propagación. Ø Cantidad de Lógica empleada. Ø Volatibilidad. Ø Tiempo de Diseño Ø Tiempo empleado en modificaciones. Ø Posibilidades de I/O.
5
Full Custom y Semi-Custom
¨ ICs construidos completamente por el diseñador: transistores, conexiones, etc.
¨ Emplea máscaras personales para definir cada una de las capas en el proceso de fabricación. El usuario controla la densidad del chip con lo que se puede conseguir una alta utilización del mismo.
¨ Ventajas: ¤ Máxima flexibilidad en el diseño. ¤ Alto rendimiento: Es posible optimizar las partes criticas del diseño
consiguiendo un diseño más pequeño y más rápido que el obtenido con herramientas CAD.
¨ Inconvenientes: ¤ Diseño complejo y altamente especializado (mucho cuidado con los errores). ¤ Tiempo de desarrollo muy alto. ¤ Coste de desarrollo alto.
¨ Esta alternativa es interesante para producciones de elevado volumen, donde se consiguen amortizar los costes de desarrollo y test.
6
7
Materiales de silicato forman el 90% de la corteza terrestre.
Sílice (Dióxido de Silicio), se extrae sobre todo para su utilización e n e l h o r m i g ó n . Refinado al 95% de pureza es utilizado para la fabr icac ión de l aluminio.
El silicio para uso electrónico requiere el 9 9 . 9 9 9 9 9 9 9 % d e pureza.
Full Custom y Semi-Custom
8
Full Custom y Semi-Custom 9
10
Full Custom y Semi-Custom
Full Custom y Semi-Custom (MEMS)
Caja Cambios
11
¨ Cuando se utiliza una metodología de diseño de tipo Semi-custom, los diseños se realizan a partir de un conjunto de módulos, Standard Cells, ya diseñados y caracterizados, que se utilizaran como elementos mínimos del diseño.
Memoria SRAM 0.25 um
Intel Itanium 2 (Montezito)
12
Full Custom y Semi-Custom
v Matrices de puertas ¨ Utiliza patrones predefinidos de
transistores y contactos de transistores. La plantilla con los transistores puede fabricarse antes de tener el diseño. El circuito se personaliza con el proceso de metalización.
¨ Los transistores y sus contactos se agrupan en células y estas células se ordenan en filas separadas por canales fijos.
¨ Características: ¤ Mas fácil que el Full Custom. ¤ Tiempos de desarrollo mas cortos. ¤ Costes de Desarrollo mas bajos. ¤ Solo es necesaria una mascara de
rutado.
Mask-Programmable Gate Arrays (MPGA): Matrices de puertas y mar de puertas
13
¨ Una clase especial de las matrices de puertas son los Sea-of-Gates. Estos, al contrario que las matrices de puertas no tienen contactos prefabricados, por ello no son necesarios los canales y los transistores pueden llenar todo el chip. El rutado se realiza sobre los transistores no usados.
¨ El diseño de Sea-of-Gates solo necesita máscaras para contactos y rutado.
¨ Inconvenientes: ¤ Utilizan más silicio y tienen peor
velocidad que los diseños Full Custom y Standard Cell.
Mask-Programmable Gate Arrays (MPGA): Matrices de puertas y mar de puertas
14
Array de Puertas Array de Puertas (conectado)
Mask-Programmable Gate Arrays (MPGA): Matrices de puertas y mar de puertas
15
Array de Puertas Rutado Sea of Gate
2.4 Mask-Programmable Gate Arrays (MPGA): Matrices de puertas y mar de puertas
16
Dispositivos Logicos Programables (PLDs).
¨ Son circuitos integrados programables por el usuario y empleados para implementar hardware digital.
¨ Igual que los Arrays de Puertas son elementos prefabricados. Las funciones lógicas se implementan programando eléctricamente las interconexiones y personalizando las células básicas.
¨ Ventajas: ¤ Rápida programación y borrado (excepto OTP). ¤ Tiempo de desarrollo más corto. ¤ Facilidad para realizar cambios. ¤ Costes de desarrollo mas bajos.
¨ Inconvenientes: ¤ Limita la flexibilidad del diseño. ¤ No aprovecha área de silicio. ¤ Más lento.
¨ El sector de los CPLDs y FPGAs representa uno de los segmentos con crecimiento más rápido en la industria de semiconductores.
17
PLD Simples
¨ Las PLDs sencillas ó SPLDs : ¤ Tienen una estructuras lógicas de planos AND/OR. ¤ Se dispone de un numero de macrocélulas inferior o igual a 16. ¤ La mayoría son PAL, también hay PLA y PLE. ¤ Son dispositivos de baja densidad.
¨ Los diseñadores tienden a dejar los SPLDs que venían usando para trabajar con CPLDs que aportan más velocidad, más densidad, son más fáciles de usar y cuentan con mejores herramientas CAD de diseño electrónico.
PLDs
SPLDs CPLDs
PLAsPROMs PALs GALs etc.
18
PLD Simples
aFat
Logic 1
y = 0 (N/A)&
Faf
bFbt
Fbf
Pull-up resistors
NOT
NOT
AND
Fuses
Dispositivo sin programar
aFat
Logic 1
y = a & !b&b
Fbf
Pull-up resistors
NOT
NOT
AND
Dispositivo programado
19
PLD Simples
PLA: Programmable Logic Array ¨ Estos dispositivos fueron los primeros
chips desarrollados específicamente para implementar circuitos lógicos (Philips 1975).
¨ Su estructura dispone de un plano AND programable seguido de un plano OR también programable.
¨ Esta estructura es ideal para implementar funciones lógicas como sumas de productos.
¨ El hecho de tener ambas matrices programables hace que el dispositivo tenga mayor tamaño y menos velocidad.
¨ Existen variantes de la estructura PLA: ¤ Sólo plano AND u OR ¤ Plano AND con realimentación ¤ Plano AND+OR con realimentación ¤ Con registros o registros programables.
20
PLD Simples
a b c
&
&
&
a !a b !b c !c
a cb& &
a c&
!b !c&
Predefined AND array
Prog
ram
mab
leOR
arra
y
Predefined linkProgrammable link
l l l
w x y
w = (a & c) | (!b & !c)x = (a & b & c) | (!b & !c)y = (a & b & c)
a b c
&
&
&
a !a b !b c !c
N/A
Predefined AND arrayPr
ogra
mm
able
OR
arra
y
Predefined linkProgrammable link
l l l
w x y
N/A
N/A
PLA sin programar PLA programada
21
22
PAL: Programmable Array Logic
¨ Son los dispositivos SPLDs mas extendidos y variados del mercado. Los primeros dispositivos PAL fueron fabricados por MMI (actual AMD).
¨ Solo el plano AND es programable, por lo que son circuitos con mayor velocidad de operación a menor coste. Hay versiones OTP (Programables una vez) y RP (Reprogramables EEPROM).
¨ Se dispone de series de 20,24 y 28 pines, con versiones combinacionales y secuénciales.
PLD Simples
a b c
l l l
&
&
&
&
&
&
a !a b !b c !c
ProgrammableAND array
Pred
efin
ed O
R a
rray
w x y
Predefined linkProgrammable link
PLD Simples
PAL Genericas o universales ¨ Son las PAL con registros mas flexibles que las vistas anteriormente puesto que
disponen de una circutería especial conocida con el nombre de Macrocélula.
23
PLD Simples
PAL 22VP10
24
25
PLD Simples
¨ GAL: Generic Array Logic (Lattice, 1984) ¨ Son dispositivos borrables eléctricamente
diseñados para sustituir a la mayoría de las PALs de la serie general manteniendo la compatibilidad pin a pin.
¨ Todos los pines de I/O tienen una macrocélula. Los fusibles de las macrocélulas permiten configurar la GAL en tres modos distintos: ¤ En modo registro puede emular a la PAL16R8, PAL
16R6, etc. ¤ En modo complejo puede sustituir a la PAL16L8,
PAL16H8, etc. ¤ En modo simple puede funcionar como PAL10L8,
PAL16L2, PAL14H4, etc. ¨ Reducción del numero de productos del
inventario de una empresa. ¨ Normalmente es el compilador el que selecciona
el modo de funcionamiento elegido en cada diseño.
25
26
PLD Simples
¨ Todos los pines son bidireccionales. ¨ Versiones RP y OTP dependiendo del
encapsulado. ¨ Flip flops programables como tipo D,
T, JK y RS con control individual de reloj y clear
¨ Los FF pueden puentearse y se resetean automáticamente cuando se alimenta el circuito.
¨ Bit de seguridad programable. ¨ El clear de cada FF puede controlarse
independientemente y de forma asíncrona con un producto.
¨ Como reloj se puede tomar el reloj global del sistema o una señal proveniente de la matriz AND.
Familia EPLD de Altera
26
PLD Simples - Programación
¨ Lenguajes Programación ¤ PALASM ¤ ABEL ¤ CUPL
Host computer Device programmer
Unprogrammeddevice
Programmeddevice
27
Complex PLDs - CPLDs
¨ Un CPLD extiende el concepto de un PLD a un mayor nivel de integración ya que permite implementar sistemas más eficientes porque utiliza menos espacio, mejoran la confiabilidad en el circuito y reducen costos.
¨ Un CPLD se forma de múltiples Bloques lógicos, cada uno similar a un SPLD. Los Bloques lógicos se comunican entre sí utilizando una Matriz Programable de Interconexiones lo cual hace más eficiente el uso del silicio y conduce a un mejor desempeño.
¨ En los CPLDs el retardo de propagación es predecible debido a la regularidad de su estructura de interconexiones.
¨ Podemos encontrar dispositivos basados en EPROM,E2PROM,SRAM o FLASH.
28
Complex PLDs - CPLDs
Matriz de interconexiones Programables (PIM)
¨ Permite unir los pines de I/O a las entradas de los Bloques lógicos, o las salidas del Bloque lógico a las entradas de otro Bloque lógico o inclusive a las entradas del mismo bloque.
Bloques Lógicos ¨ Un bloque lógico es muy similar a un SPLD, cada uno
de ellos poseen generalmente una matriz de puertas AND, una matriz de puertas OR y una configuración para la distribución de los productos en las diferentes macroceldas del bloque.
¨ El tamaño del bloque lógico es una medida de la capacidad del CPLD, ya que de esto depende el tamaño de la función booleana que pueda ser implementada dentro del bloque.
¨ Los bloques lógicos usualmente tienen de cuatro a veinte macroceldas.
29
Complex PLDs - CPLDs
Macroceldas ¨ Las macroceldas son similares a las
de un SPLD. Estas también están provistas con registros, control de polaridad y buffers para utilizar salidas Triestado.
Celdas I/O ¨ La función de una celda de entrada/
salida es permitir el paso de la señal hacia dentro o hacia el exterior del dispositivo.
¨ Cada celda I/O dispone de un registro con estada de habilitación de reloj. Puede ser empleado como registro de entrada o salida.
30
31
FPGAs - Field Programmable Gate Array
¨ Combina la Arquitectura de los Gate-Arrays con la programabilidad de los PLDs.
¨ Están constituidas por tres elementos configurables: Bloques Lógicos (CLBs) que se comunican mediante Recursos de Interconexión entre si y con el exterior a través de los Bloques de I/O (IOBs)
¨ Gran parte del área ocupada en el dado contiene los recursos que permiten el rutado programable.
¨ Ventajas: ¤ Alta densidad de puertas. ¤ Ciclo de diseño corto. ¤ Bajo coste.
Programmableinterconnect
Programmablelogic blocks
31
FPGAs - Field Programmable Gate Array
¨ Bloques lógicos Las FPGAs son dispositivos basados en el concepto de Bloques Lógicos Programables, los cuales están compuestos por una LUT de n-entradas, un F.F. , multiplexores y pequeños elementos adicionales. El diseñador configurara el comportamiento de cada Bloque para realizar diferentes funciones.
|
&ab
cy
y = (a & b) | !c
Required function Truth table
1011101
0000010100111001011101111
y
a b c y00001111
00110011
01010101
10111011
SRAM cells
Programmed LUT
8:1
Mul
tiple
xer
a b c
3-inputLUT
abc
flip-flop
clock
muxy
qd
Bloque Lógico
32
FPGAs - Field Programmable Gate Array
¨ Criterios de clasificación: ¤ Técnica de Programación, tenemos,
FPGAs configurables por: n SRAM, las mas extendidas. Se
caracterizan por ser Volátiles y Reconfigurables.
n Antifusible. Son No-Volátiles y No-Reprogramables.
n Flash o EEPROM, de reciente aparición, las ProASIC de Actel y las ispXPGA de Lattice, emplean estas memorias como fuente única o alternativa de configuración, respectivamente. Son No-Volátiles y Reprogramables.
33
FPGAs - Field Programmable Gate Array
State-of-the-art
Feature
Technology node
SRAM Antifuse E2PROM /FLASH
One or moregenerations behind
One or moregenerations behind
FastReprogramming
speed (inc.erasing)
---- 3x slowerthan SRAM
YesVolatile (must
be programmedon power-up)
No No(but can be if required)
MediumPowerconsumption Low Medium
Acceptable(especially when usingbitstream encryption)
IP Security Very Good Very Good
Large(six transistors)
Size ofconfiguration cell Very small Medium-small
(two transistors)
NoRad Hard Yes Not really
NoInstant-on Yes Yes
YesRequires externalconfiguration file No No
Yes(very good)
Good forprototyping No Yes
(reasonable)
Yes(in system)Reprogrammable No Yes (in-system
or offline)
34
The Design Warrior’s Guide to FPGAs Devices, Tools, and Flows. ISBN 0750676043 Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
Spartan III 35
Spartan III - Estructura 36
Spartan III – Bloque Lógico
16-bit SRA16x1 RAM4-input
LUT
LUT MUX REG
Bloque Lógico (LC)
16-bit SRA16x1 RAM4-input
LUT
LUT MUX REG
Bloque Lógico (LC)
Slice
37
Spartan III – Bloque Lógico
¨ Bloque Lógico
16-bit SRA
16 x 1 RAM
4-input LUT
16-bit SRA
flip-flop
clock
muxy
qe
abcd
16x1 RAM4-input
LUT
clock enable
set/reset
Diagrama Bloque Lógico Simplificado Distintos modos de funcionamiento LUT
38
Spartan III – Bloque Lógico
LUT4 configurado para implementar lógica combinacional.
LUT4 configurado para implementar un registro de desplazamiento direccionable (SRA).
39
Spartan III - Bloque I/O
¨ Bloque I/O
Bloque retardo dinámico
Registro DDR
40
Spartan III - Bloque I/O
¨ Standard I/O soportados
41
Spartan III – Bloque DSP48
Spartan 3A DSP
------------
Resto dispositivos únicamente multiplicador
42
x
+
x
+
A[n:0]
B[n:0] Y[(2n - 1):0]
Multiplicador
Sumador
Acumulador
MAC
Unidad MAC utilizada para DSP
Spartan III – Gestión Reloj
¨ Gestión Reloj: ¤ Se han diseñado arboles de
distribución de reloj que nos permiten que el reloj llegue a todos los F.F. de la FPGA en el mismo instante.
¤ Se han añadido Bloques de Gestión de Reloj (DCM), el cual nos permite eliminar jitter, síntesis de frecuencias, desplazamientos de fase, correcciones automáticas de skew, etc.
43
Clock signal (jitter)
clock pad
ClockManager
etc.
1.0 x original clk
2.0 x original clk
.5 x original clk
0o Phase shifted
90o Phase shifted
180o Phase shifted
270o Phase shifted
Main (mother) clock
Untreated daughter clock
De-skewed daughter clock
1 2 3 4
1 2 3 4
1 2 3
Clock signal fromoutside world
Special clockpin and pad
De-skewed daughterclocks used to driveinternal clock trees
or output pins
Daughter clock (monitoreddownstream of the clock manager)
fed back to special input
Spartan III – Gestión Reloj 44
45
Spartan III – Block RAM
Modos Configuración BLOCK RAM
45
¨ Proceso por el cual definimos la funcionalidad de la FPGA (SRAM) a partir de un fichero llamado configuration bitstream.
¨ Algunos dispositivos permiten la compresión, detección de errores (CRC) y encriptación (AES 256 bits) del archivo de configuración. Además se incluyen numerosas medidas de protección (autentificación, Identificador único (device DNA)).
¨ Las FPGAs pueden trabajar en diferentes modos de configuración, dependiendo de las necesidades del diseñador. Además permiten reconfiguraciones parciales, múltiples ficheros de configuración en una única memoria ROM, etc.
46
FPGAs - Programación
Configuration data in
Configuration data out
= I/O pin/pad
= SRAM cell
Celdas SRAM de configuración.
47
Modos Configuración Virtex 5 Modos Configuración Spartan 3
FPGAs - Programación
Secuencias proceso Configuración.
48
Modo Maestro Serie utilizando Platform FLASH.
Modo Serie Daisy-Chain multi-FPGAs.
Modo Ganged Serie multi-FPGAs.
FPGAs - Programación
¨ Modo Maestro Serie
¨ Modo Esclavo Serie 49
FPGAs - Programación
50
¨ Modo Maestro SPI ¤ Modo por el cual podemos
utilizar memorias SPI Flash PROM.
¤ La FPGA puede tener acceso una vez configurada a la memoria FLASH para leer/escribir datos.
¤ Puede trabajar con distintos fabricantes de memorias FLASH (VS[2:0]). Actualmente solo funciona con memorias de STMicro y Atmel (Impact).
Modo Master SPI
Acceso Memoria FLASH sistema Embebido FPGA
FPGAs - Programación
¨ Modo Maestro SPI interno ¤ Solo únicamente disponible en la
familia de dispositivos Spartan 3AN (disponen de hasta 16 Mbits de memoria FLASH interna).
FPGAs - Programación 51
¨ JTAG ¤ Estándar basado en la especificación
IEEE 1149.1 para implementar técnicas de boundary scan para testear IC y PCBs.
¤ Dispone de 4 o 5 pines: n TDI: Pin entrada serie para todas las
instrucciones y datos. n TDO: Pin de salida para todas las
instrucciones y datos. n TMS: Pin para selección del modo de
funcionamiento del controlador JTAG. n TCK : Pin entrada de reloj JTAG n TRST: Pin Reset (opcional).
¤ Podemos encadenar múltiples dispositivos.
¤ Nos permite acceder a los nodos internos de la FPGA además de poder testear el dispositivo.
FPGAs - Programación
Modo JTAG
52
FPGAs - Programación
Controlador JTAG Lógica Boundary-Scan incluida en los I/O.
53