Dispositivos de lógica programable
SISTEMAS ELECTRÓNICOS DIGITALES
2
oCurso Ingeniería Técnica Industrial
Especialidad en Electrónica Industrial
Dr. José Luis Rosselló
Logica Programable 2
Índice
T
Conceptos generales
T
Dispositivos programables
T
Tipos de dispositivos programables
T
PROMs
T
FPLAs
T
PALs
Logica Programable 3 Especificación Idioma Programa de alto nivel (Algoritmo) Maquinas secuenciales Puertas lógicas Transistores Rectángulos
FLUJO
DE DISEÑO
SÍNTESIS LÓGICA AUTOMÁTICA IMPLEMENTACIÓN LÓGICA Especificación Comportamiento Transferencia entre registros (RTL) Lógica Dispositivo programable Circuitos Layout PLDsConceptos generales
T
Cada circuito integrado contiene un
determinado número de elementos lógicos
T
Para cada tipo de aplicación el esquema de
interconexiones es fija
T
Posibles implementaciones de una aplicación
T
En un circuito específico (ASIC)
T
En un circuito de propósito general
Logica Programable 5
Fundamento
T
Cualquier función lógica puede expresarse
como suma de productos
F=m
1+m
2+m
3+ …=xyz+ zyz+xyz
T
La función se realiza en dos niveles
1
ernivel
Producto
2
onivel
Suma
Logica Programable 6
Esquema de conexiones
T
Conexión entre líneas mediante un
dispositivo programable
A s s = 1 s = 0 B A B A BEste elemento conector puede ser un fusible (si la programación de cada interconexión es permanente) o un transistor MOS de doble puerta si queremos que además de programable sea reconfigurable
Logica Programable 7 x1 x2 x3 xn-1 xn x1 xn-1 xn x3 x2 s s s s x1 x2 xn-1 xn 1 1 ~ Pull - up
Modelo de estructura AND
x1 x2 x3 xn-1 xn x1 xn-1 xn x3 x2 s s s s x1 x2 xn-1 xn 0 ~0 Pull - down
Modelo de estructura OR
Logica Programable 9
X Y Z f1 f2 f3 f4
Matriz programamable AND-OR
Permite realizar
cuatro funciones
logicas de n
entradas.
Logica Programable 10Ejemplo de programación
Ejemplo
sencillo:
Full adder
s=xyz+xyz
+xyz+xyz
c=xyz+xyz
+xyz+xyz
X Y Z c sLogica Programable 11
Dispositivos programables
T
Tecnología basada en fusibles
T Programable una sola vez T No-Volátil
T
Tecnología basada en SRAM
T Reconfigurable T Volátil
T
Tecnología EPROM y EEPROM
T Reconfigurable T No-Volátil VDD f(A,B,C)=ABC A B C A B C VDD f(A,B,C) Fusible A B C ABC
Tecnología basada
en fusibles
Logica Programable 13
Tecnología EPROM y EEPROM
Transistor MOS n+ n+ Substrato tipo P Óxido de campo (SiO2) p+ stopper Óxido de puerta Drenador Fuente Puerta Transistor n-MOS Logica Programable 14
Tecnología CMOS
Logica Programable 15
Concepto de Tensión umbral (V
TH)
n+ n+ Substrat tipus p Drenador Puerta Fuente VGS
p-Lineas de Campo Eléctrico
Canal de conducción (electrones acumulados) Zona de vaciamiento (ausencia de agujeros) VDS 0.0 1.0 2.0 3.0 4.0 5.0 VDS(V) 1 2 I(mD A) 0.0 1.0 2.0 3.0 VGS(V) 0.010 0.020 √ ID VT Corriente sub-umbral Lineal Saturación VGS= 5V VGS= 3V VGS= 4V VGS= 2V VGS= 1V
(a) IDen función de VDS (b)√IDen función de VGS (para VDS= 5V).
VDS= VGS-VT
Transistor n-MOS W = 100µm, L = 20µm
Logica Programable 17 Fuente Drenador Puerta Puerta flotante Substrato n+ n+ p S D G Símbolo
Transistor MOS de doble puerta
Logica Programable 18 D S 20 V 20 V D S 0 V 0 V 10 V→5 V D S 5 V 5 V Programación por avalancha
Programación del transistor
de doble puerta
Los electrones quedan atrapados en la puerta flotante El valor efectivo de la tensión umbral aumenta debido al apantallamiento de los electrones atrapados en la puerta flotanteLogica Programable 19
Desplazamiento de V
TH
0.0 5 10 0.010 0.020 ÷ √ ID VGS (V) n+Drenador n+Fuente Substrato P Puerta de control Puerta flotante ProgramaciónBorrado Óxido de tunneling
Logica Programable 21
EPROM
Flash
Courtesy IntelCross-sections of NVM cells
Logica Programable 22Puertas distribuidas (esquema físico)
x1 x2 xn-1 xn 1 0 Pull - up out = out = x1 x2 xn-1 xn 1 0 Pull - up
Logica Programable 23
Tipos de dispositivos programables
T
PROM
: Matriz OR programable y AND no
programable
T
FPLA
: Matriz AND y OR programables
T
PAL
: Matriz AND programable y OR no
programable
PROM
Matriz OR programable y AND no programable
T
Más rápidas si se comparan con otros tipos de
lógica
T
Ideales si hemos de implementar funciones que
usan todos los mintérminos
Codificadores, Look-up tables
T
Para n entradas tenemos 2n puertas AND
Logica Programable 25
PROMs
Io I1 I2 mo m1 m2 m3 m4 m5 m6 m7 Ok O2 O1 Logica Programable 26Esquema básico de una PROM
A0 A1 AN-1 P0 P1 P2N-1 AND ARRAY OR ARRAY O0 O1 OM CE (CHIP ENABLE)
Logica Programable 27
Problema 1:
T
Implementar en las siguientes funciones:
f1=AB+BC f2=(A+B+C)(A+B) f3=A+BC A B C f3 f2 f1Problema 2:
T
Implementar un conversor de binario a
código gray
A B C f3 f2 f1Logica Programable 29
FPLA
Matriz OR y AND programables
T
Más pequeñas y flexibles que las PROM
T
Cualquier término producto puede ser
programado (no sólo mintérminos)
T
Más lentas al tener una etapa más para ser
programada
Logica Programable 30
Problema: Voto mayoritario
T Programa la PLA de forma que proporcione el sentido del voto mayoritario de un total de cinco electores (cada voto consiste en un sí o un no).
Logica Programable 31
Polaridad de salida programable
Salidas complementarias Polaridad de salida baja Polaridad de salida alta Polaridad programable (P) VDD P1 Pn I1 Ik Fusible
Extensión de la PLAs
T
Circuitos basados en la estructura
AND-OR modificada de forma que:
T
Permiten terminales bidireccionales
T
Permiten la utilitzación de variables
Logica Programable 33
Pines bidireccionales y líneas de
realimentación
Tree-state driver P1 Pn Pn+1 I1 Ik IOm Logica Programable 34Logica Programable 35
Ejemplo: Función paridad de 9 bits
T F = x0⊕x1⊕x2⊕x3⊕x4⊕x5⊕x6⊕x7⊕ x8
T Implementación a 2 niveles : 256 mintérminos
T Implementación multinivel y0= x0⊕x1⊕x2 y1= x3⊕x4⊕x5 y2= x6⊕x7⊕x8 F = y0⊕y1⊕y2 x0 x1 x2 x3 x4 x5 x6 x7 y2 y1 y0 F x8
Logica Programable 37
PAL
Matriz AND programable y OR no programable
T
Compromiso entre las FPLA y PROMs (más
rápidas que las FPLA y no tan grandes como
las PROMs)
T
Los términos productos comunes a varias
funciones tienen que ser implementados por
duplicado
Logica Programable 38
Logica Programable 39
Problema: Programación de un
comparador de 4 bits
T Programar una PAL16L8 de forma que compare dos números de cuatro bits. El sistema ha de producir tres salidas (X,Y,Z), donde X=1 sólo cuando A=B, Y=1 sólo cuando A>B y Z=1 sólo cuando A<B.
Solución: X=E3E2E1E0
Y=a3b3+E3a2b2+E3E2a1b1+E3E2E1a0b0 Z= a3b3+E3a2b2+E3E2a1b1+E3E2E1a0b0
Donde Eievalua si los bits ai y bison iguales o no. Ei= aibi+ aibi
Implementación del comparador
a3 b3 a2 b2 a1 b1 a0 b0 E3 E2 E1 E0 E3 E2E1E0 X(A=B) Y(A>B) Z(A<B) (sin usar)
Logica Programable 41
PAL16R8. Salida con resgistros
Logica Programable 42
Logica Programable 43
Estructura de las macro celdas
T
Introducción de módulos secuenciales en
las macro-celdas
Logica Programable 45
Programación registro universal de 8 bits en EP224
I/O (Q0) Macrocell 1 I/O (Q1) Macrocell 2 I/O (Q2) Macrocell 3 I/O (Q3) Macrocell 4 I/O (Q4) Macrocell 5 I/O (Q5) Macrocell 6 I/O (Q6) Macrocell 7 I/O (Q7) Macrocell 8 Input (Clk) Input (P0) Input (P1) Input (P2) Input (P3) Input (P4) Input (P5) Input (P6) Input (P7) Input (S0) Input (S1) G lobal B u s Input (SR) Input (NC) Input (SL) SR SL Po P1 P2 P3 P4 P5 P6 P7 Qo Q1 Q2 Q3 Q4 Q5 Q6 Q7 So S1 Logica Programable 46
Load SL SR Mem S1 S0 out P3 Q2 Q4 Q3 Q3’ 0 x x x 0 0 0 1 x x x 0 0 1 x 0 x x 0 1 0 x 1 x x 0 1 1 x x 0 x 1 0 0 x x 1 x 1 0 1 x x x 0 1 1 0 x x x 1 1 1 1 D C Q Q3 S0S1 P0- P7 Q0- Q7
Logica Programable 47
Programación salida Q3
D C Q Q3 S0S1 P0- P7 Q0- Q7 S0S1P3 S0S1Q2 S0S1Q4 S0S1Q3 P3 Q2 Q4Logica Programable 49
Configuraciones
Modo 0:
Registro controlado por el reloj global. La salida se controla por la lógica del término producto Modo 1: La salida se encuentra permanentemente habilitada. El reloj se controla por la lógica del término producto
Logica Programable 50
Integrados “Classic” de Altera
EP610 EPLD 300 puertas equiv. 2 Clks indep 16 macro-celdas tpd = 10ns freq = 100 MHz EP910 EPLD 450 puertas equiv. 2 Clks indep 24 macro-celdas tpd = 12ns freq = 76.9 MHz
Logica Programable 51 EP1810 EPLD 900 puertas equiv. 4 Clks indep 48 macro-celdas tpd = 20ns freq = 50 MHz
Evolución de las PLAs: Las FPGAs
T
Contenido de las FPGAs:
T Matriz de celdas regularmente dispuestas sobre silicio cuya funcionalidad es progamable (las llamamos CLB)
T Colección de celdas programables de entrada-salida dispuestas perimetralmente y que deonomnamos IOB
T Colección de bloques de interconexión que, bajo programación permiten conectar CLBs e IOBs entre sí
Logica Programable 53 (CLBs) (IOBs) Logica Programable 54 Líneas de interconexión IOBs CLBs
Logica Programable 55
Tipos de tecnología usada
Sí
Sí
No
Sí
Re-Prog
No
EEPROM
No
EPROM
No
PLICE
(Fusibles)
Sí
SRAM
Volátil
Tecnología
Logica Programable 57
FPGAs comerciales
T Altera (MAX, FLEX, ACEX, Cyclone, APEX,….)
T Xilinx (XC2000, XC8100, …)
T Actel (ACT 1-4, 3200DX, 1200XL,…)
T Cross Point (CP20)
T Concurrent Logic (CLi6000)
T Quick Logic (pASIC)
T Intel (iFX780)
T AMD (MACH1,2,3,4,5)
T ATMEL (ATV)
T Pilkingston (Serie TS)
T Zycad Gatefield (Serie GF)
Logica Programable 58
Ejemplo de FPGA comercial, Família
Logica Programable 59
Arquitectura del los bloques básicos (LAB)
Logica Programable 61
Componentes de expansión y control I/O
Logica Programable 62
Logica Programable 63
Arquitectura
Logica Programable 65
Estructura de expansión
Shareable expanders Parallel expanders
Logica Programable 66