Tema 1 Dispositivos Lógicos Programablesmermaja.act.uji.es/docencia/ii36/data/tema1.pdf · Bloques...
Transcript of Tema 1 Dispositivos Lógicos Programablesmermaja.act.uji.es/docencia/ii36/data/tema1.pdf · Bloques...
1
Tema 1Dispositivos Ló gicos Programables (PLD)
Introducció n a los sistemas digitales
Creació n de un sistema digital
Partes de los sistemas digitales
Opciones de diseñ o Dispositivos ló gicos programables
Criterios de clasificació n
Tipos de dispostivos Field Programmable Gate Arrays (FPGA)
Características fundamentales
Estructura y ejemplo
Ventajas e inconvenientes
2
Creación de un sistema digital
Idea, necesidad, oportunidad... Análisis de requisitos y especificación. Diseño (Captura de Esquemáticos, HDLs y otros). Simulación (verificación del circuito). Implementación (PCB, programación, prototipado...) Depuración, ampliación, corrección de errores. Fabricación.
3
Partes de los sistemas digitales
Ló gicacomportamiento
del sistema
Reset
Entrada/SalidaInterfaz
CIs Basados en celdasCIsFull Custom
IC
RelojAlimentació n
4
Opciones de diseño
Microcontrolador: Ventajas, inconvenientes...
Lógica programable: Ventajas, inconvenientes...
5
Diseñ o de ló gica no programableLó gica
Ló gicadiscreta
ASIC
Circuitos Ló gicos Programables
Matrices de puertas
CIs Basados en celdas
CIsFull Custom
CPLDsSPLDs(PALs) FPGAs
Acró nimosSPLD = PLDs Simples. PAL = Matr. de Lógica Prog.CPLD = PLDs Complejos.FPGA = Circuito Prog. Usuario.
Recursos ComunesBloques Lógicos Configurables (CLB).
Memoria por Tabla de búsqueda. Planos AND OR Puertas Simples.
Bloques Entrada / Salida (IOB). Bidireccional, latches, inversores, pullup/
pulldowns.Interconexión o Cableado.
Realimentación interna local y global.
6
Dispositivos lógicos programables
Funciones lógicas configurables.
Más versátiles que la lógica discreta.
Mismo encapsulado, más...
Estandarización, mejora con la integración.
Nuevas formas de diseño lógico: HDL
8
Clasificación según tecnología de grabación
Programables una vez. Fusibles. Antifusibles.
Reprogramables no volátiles. Transistores MOS de puerta flotante.
Reprogramables volátiles. Celdas SRAM.
10
AntifusiblesAntifusible: Circuito abierto que mediante programación genera un corto circuito
Tipos
Basados en aSi
Basados en O
NO
➤ Tipos OTP (One Time Programming).➤ Alta densidad de integracción.➤Basada en Multiplexor.
12
Clasificación según funciones Matrices AND OR.
Matrices AND OR + registros.
Matrices + bloques E/S.
PLD simples interconectados.
Estructuras jerárquicas complejas. Interconexión. Bloques lógicos (LUT). Bloques E/S.
13
Dispositivos Programables
C.I. Fabricante Añ o Características
PLA Philips 1970 Planos AND y OR Programables.PAL MMI (AMD) 1978 Plano AND programable y plano OR Fijo.EPLD Altera 1980 Borrables UV. Tipo PAL con registros. Salida versátil (VPAL).FPGA Xilinx 1984 Matrices de lógica programable por conexiones controladas
por SRAM en el propio circuito.Grano fino: Puertas y/o multiplexores + registros.Grano grueso: Funciones complejas de varias variables y registros.
CPLD Xilinx, Altera, etc 1995 Tipo VPAL, Borrable FlashEEPROM y programable en circuito, conexiones programables (PIA).
14
SPLD (Simple PLD)
MATRIZ
AND
MATRIZ
OR xi
n
n r m
m fi
Tipos de PLD:
(P)ROM AND fija OR prog. PAL(GAL)
AND prog. OR fija
PLA AND prog. OR prog.
15
Programable ROM (PROM)
2 N x M ROM
N entradas M salidas
Direcciones: N bits; Palabra de salida: M bits.
ROM contiene 2 N palabras de M bits.
Los bits de entrada deciden la palabra particular que estará disponible en las lineas de salida.
17
Circuito combinacional implementado usando PROM
010111001011100101010001001110110010010100001000
I0 I1 I2 F0 F1 F2
F0 F1 F2
18
PLA:Programmable Logic Array
k puertasAND
m puertas ORk x m conexiones m salidas
n entradas
n x k conexiones
n x k x m PLA tiene 2n x k + k x m conexiones.
Suma de productos.
Matriz programable de ANDs y de ORs.
n x k conexiones
20
Implementación lógica con PLA
Número finito de puertas AND => simplificar la function al mínimo número de terminos productos.
El número de variables en términos productos no es importante dado que tenemos todas las variables de entrada.
Compartir términos entre diferentes OR => minimización de múltiples funciones.
22
PAL:Programmable Array Logic
Matriz de ANDs programable. Matriz de ORs fija. Cada línea salida está permanentemete conecta a un conjunto especifico
de términos productos.
El número de funciones que pueden implementarse con PAL es mucho menor que con PROM y PLA.Mayor densidad y menores retardos que las PLAs.
24
Implicaciones PAL
Número de términos productos por salida ha de ser mayor que el número de términos productos por cada suma de productos.
No se pueden compartir términos productos entre diferentes salidas.
26
Diagrama de bloques de una GAL: 22V10
Es el SPLD más popular
22V10
entradaso salidas
salidas
tipo de salida
27
Macrocelda de salida
C1 C0 Modo de salida
0 0 Registro (activo 0)0 1 Registro (activo 1)1 0 Comb. (activo 0)1 1 Comb. (activ1 1)
28
Retardos en una 22V10
tPD: tiempo que tarda en cambiar una salida a partir de una entrada valida.
tCO:tiempo que tarda en cambiar una salida a partir de un flanco de la señal de reloj.
tSU: tiempo mínimo que los datos deben estar estables antes del flanco de la señal de reloj.
tH:tiempo mínimo que los datos deben estar estables después del flanco de la señal de reloj.
tSCS: periodo mínimo de reloj en operacions registro/registro.
fmax = 1/tSCS
30
De los SPLDs a los CPLDsAnte el avance de la tecnología,
•¿ Por qué los fabricantes no escalaron las arquitecturas de la 16V8 y 22V10?
•¿Por qué no pasar del 16V8 al 128V64?
Características del hipotético 128V64:
•64 entradas primarias/64 pines bidireccionasles.
•128 variables por término productos (fan–in de puertas AND).
Algunas limitaciones del hipotético 128V64
•Puertas AND al menos 8 veces más lentas que las del 16V8.
•El área de silicio se múltiplica por 64.
•El número de E/S sólo se múltiplica por 8.
31
CPLD
BloqueLógico
E/SE/S
Inte
rcon
exio
nes
Prog
ram
able
sBloqueLógico
BloqueLógico
BloqueLógico
Matriz de Conmutación
32
Bloques lógico CPLD
PLD simple Entradas. Matriz de términos productos. Colocador de términos productos. Macroceldas (registros).
Bloques lógicos ejecutan expresiones de suma de productos, almacenan los resultados en microceldas.Interconexión programable establece la ruta de las señales de y desde los bloques lógicos.
33
Principales recursos CPLD
Número de macroceldas por bloque lógico.
Número de entradas de las interconexiones programables a los bloques lógicos.
Número de términos producto en los bloques lógicos.
34
CPLDs XC9500
CPLDs Programables en circuito impreso (ISP).Retardos de 5 ns. 36 a 576 macroceldas.La mejor arquitectura del mercado para asignació n de pines.10,000 ciclos programació n/borrado.Soporta JTAG: IEEE 1149.1.
FunctionBlock 1
Controlador
JTAG
FunctionBlock 2
I/O
FunctionBlock 4
3
Global Tri
States2 or 4
FunctionBlock 3
I/O
Controlador enSistema
Programable
FastCONNECTSwitch Matrix
Puerto JTAG3
I/O
I/O
Global Set/Reset
Global Clocks
I/OBlocks
1
35
Bloque de Funció n XC9500
AFastCONNECT
DeFastCONNECT
2 ó 43Triestado
GlobalClksGlobales
E/S
E/S
36
Colocador Términos Producto
Macroceldilla 1
Matriz AND
Macroceldilla 18
¡ Cada bloque de funció n es como una 36V18 !
39
Y otras soluciones?
Para construir una PLD “mejorada” se distribuyen bloques lógicos más pequeños y se dispone de más recursos de interconexión menores y más repartidos.
40
¿Qué es una FPGA?
Las FPGA (Field Programmable Gate Array) son matrices deceldas lógicas comunicadas entresi y/o con bloques de E/S mediante “canales de
comunicación”.Las conexiones entre los diferentes elementos son programables. Tecnologias: SRAM (Altera, Lucent Technol.,
Atmel, Xilinx) ANTIFUSIBLE (Actel, Cypress,
QuickLogic, Xilinx) EPROM
Bloques lógicos son LUT o MUX.
41
CPLDs y FPGAs CPLD FPGA
Arquitectura: tipoPAL Tipo Matrices de puertas (GAL)Más Combinacional Más Registros
Densidad: Bajaamedia Medioaalta Muchas 22V10s 1K250K puertas ló gicas
Prestaciones: Retardos Predecibles Dependiente de aplicació n Hasta 200 MHz hasta 100MHz
Interconexió n: “Crossbar” Incremental
Complex Programmable Logic Devices FieldProgrammable Gate Array (Circuitos Lógicos Prog. Complejos Circuitos Progr. por el usuario en la aplicació n)
42
Arquitectura XC4000/Spartan
CLB
CLB
CLB
CLB
SwitchMatrix
InterconexiónProgramable
Bloques E/S (IOBs)
D Q
SlewRate
Control
PassivePullUp,
PullDown
Delay
Vcc
OutputBuffer
InputBuffer
Q D
Pad
D QSD
RDEC
S /RC ontrol
D QSD
RDEC
S /RC ontro l
1
1
F'G '
H '
D IN
F'G '
H '
D IN
F'
G 'H '
H '
HFunc.Gen.
GFunc.Gen.
FFunc.Gen.
G4G3G2G1
F4F3F2F1
C4C1 C2 C3
K
Y
X
H1 DIN S/R EC
• Alta Densidad > 250K Puertas Ló gicas
• LUT tipo SRAM para RAM Sincrona de Doble Puerto o Ló gica
• Estructura tipo matriz de ASIC
• Salidas Triestados
• Reconfiguraciones infinitas, cargadas desde PC o estaciones de trabajo en ~1 s
Bloques Lógicos Configurables (CLBs)
43
Configurable Logic Blocks
D QSD
RDEC
S/RControl
D QSD
RDEC
S/RControl
1
1
F'G'H'
DIN
F'G'H'
DIN
F'
G'H'
H'
HFunc.Gen.
GFunc.Gen.
FFunc.Gen.
G4G3G2G1
F4F3F2F1
C4C1 C2 C3
K
YQ
Y
XQ
X
H1 DIN S/R EC
2 generadores de funciones de 4 entradas(Look Up Tables) 16x1 RAM o funciones lógicas.2 Biestables Cada uno puedes ser configurando independientemente como un biestable o como latch. Independiente polaridad de reloj. Set/Reset síncronos y asíncronos
44
Look Up Tables
Elección para usar cada LUT como una generador de función de 4 entradas o como una RAM síncrona de doble puerto.
Lógica Combinacional almacenada en una SRAM de 16x1 Look Up Tables (LUTs) en una CLB
Ejemplo:A B C D Z
0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 10 1 0 0 10 1 0 1 1 . . .1 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 1
Look Up Table
Lógica CombinacionalAB
CD
Z
4bit dirección
GFunc.Gen.
G4G3G2G1
WE
2 (2 )4
= 64K !
46
Rutado de Xilinx FPGA
1) Conexión directa y rápida CLB to CLB2) Conexión de próposito general –Uso matriz de conmutación (switch matrix)
CLB
CLB
CLB
CLB
Switch
Matrix
Switch
Matrix
3) Líneas largas. Cruzan segmentos chip. Relojes Globales, el menor
desfase (skew) 2 Tristates por CLB para
buses
47
Jerarquía de interconexión
Tipos de interconexiones líneas simples líneas dobles líneas cuadruples líneas octales línies largas
49
Otros recursos de las FPGABuffers Tristate for buses (BUFT’s)Buffers de reloj global & alta velocidad (BUFG’s)Decodificadores extensos(DECODEx) Osciladores internos (OSC4)Reset global para todos los FlipFlops, Latches (STARTUP)Recursos especial CLB especial Ló gica de Acarreo rápido RAM de doble puerto síncrono. Boundary Scan
50
What’s Really In that Chip?
CLB(Red)
Switch Matrix
Long Lines(Purple)
Direct Interconnect (Green)
Routed Wires (Blue)
Programmable Interconnect Points, PIPs (White)
51
Características adicionales FPGA avanzadas
Memorias de gran tamaño empotrada
Lógica dedicada para funciones aritméticas.
Phase locked loops para síncronización de reloj.Circuitos de división y multiplicacion.Reconfiguración parcial.
52
CPLD o FPGA?CPLDNo volatil.Verificación JTAG Alto faninRápido contadores, maquinas de estado.Lógica CombinacionalLógica de Control
FPGAReconfiguración con SRAMExcelente para arquiitectura de computadores, DSP, Flujo de diseño similar ASICNecesita PROM para operaciones no volatiles
53
Ventajas PLD
Corto tiempo de diseño Mucho más barato para un volumen bajo de producción.
Volume
Cost
Nonrecurring engineering cost
PLD
ASIC
54
R1In Combinational
LogicD Q
tCLK1CLK
delay
tCLK2
R2D Q Combinational
Logic
tCLK3
R3• • •D Q
delay
CLK1
CLK2
TCLK
δ
TCLK + δ
+ thδ
2
1
4
Skew
55
Translate
Map
Place & Route
Flujo de Diseño
Planificació n Simulació nHDL RTL
Síntesispara crer netlist
Simulació nFuncional
Crear File Bit
Definició n exacta temporal
Simulació ntemporal
Implementació n
Escribir HDL/Esquematicos
56
Flujo diseño CPLD
Schematic HDL
Compile
Logic Equations
Minimize
Reduced Logic Equations
(Netlist)
Test vectors
Simulation
57
Implementatión del Diseño
Entrada: Netlist Salida: bitstreamMapear el diseño con los recursos de la FPGA Descomponer el circuito en bloques que tenga
máximo n entradas. Problema NPhard Sin embargo, una solución óptima no se necesita.
Translate Map Place & Route Configure
58
Implementatión del Diseño (Cont.)
Place: Colocar los bloques lógicos generados durante el mapeo a posiciones específicas dentro de la FPGA. Objetivo: minimizar la longitud de los cables. NPhard
Route: Establecer una ruta de interconexiones entre los bloques lógicos. NPhard
59
Aplicaciones PLD
Lógica de pegamento (Glue Logic ) remplazar SSI con SPLD y MSI CPLD)
Rápido desarrollo. (Todos)Prototipo de diseño (FPGAS/CPLD)EmulaciónComputación de próposito especifíco.Reconfiguración dinámica (Codiseño)SoC (System on Chip)
60
Diseño de Interfaces de alta velocidad
Redimiento de E/S de 840 Mbps
Soporta la siguientes interfaces. PCIX 133 MHz RapidI/O™ POS PHY Level 4 (16 bits/clk @ 832 Mbps), SPI4 Lightening Data Transport (LDT)
61
Double data rate Input, output and 3state control registers
Up to 554 differential I/O pairs: Highspeed LVDS,Bus LVDS, and LVPECL on all I/O pairs
Singleended I/O: 19 standards supported PCI @ 33 MHz & 66 MHz compliant PCIX @ 133 MHz compliant LVTTL, LVCMOS, SSTL, HSTL, GTL, AGP
Up to 1108 User I/Os
62
VirtexII Architecture
18Kb BRA
M
CAM
Multiplier BLVDS
Backplane
PCI-X
DDR
DDR
DDR
CAM
QDR SRAM
DDRSDRAM
Distri
RAM
LVDS
Shift Regist
ers
DCM
FIFOPCI
SONET / SDH
63
175,000 celdas Ló gicas = 2.0 millones puertas Ló gicas en 2001 1 celdilla ló gica = LUT 4E + FF
Year
Celdillas Ló gicas Puertas Ló gicas
1,000
10,000
100,000
1,000,000
1994 1996 1998 2000 2002
12M
1.2M
120K
12K
2 Millones Puertas Ló gicas
D Q
FFLUT
Crecimiento Exponencial en Densidad
64
CLB Contains Four Slices
CIN
SwitchMatrix
TBUFTBUF
COUTCOUT
Slice S0X0Y0
Slice S1X0Y1
Fast Connects
Slice S2X1Y0
Slice S3X1Y1
CIN
SHIFT
Each CLB is connected to one switch matrix Providing access to general routing resources
High level of logic integration Wide-input functions:—16:1 multiplexer in 1 CLB or any function—32:1 multiplixer in 2 CLBs (1 level of LUT) Fast arithmetic functions—2 look-ahead carry chains per CLB column Addressable shift registers in LUT—16-b shift register in 1 LUT—128-b shift register in 1 CLB (dedicated shift chain)
65
SelectI/OUltraTM TechnologyHigh Bandwidth and XCITETM onchip termination Support 19 singleended standards and 6 differential standards
Digitally controlled impedance (XCITE)Up to 840 Mbps per I/O pair (LVDS)Built-in DDR registersLVDS current source driversLDT & ULVDS differential signalingHSTL-II standard supportUp to 1,108 user I/Os