Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Dispositivos Lógicos Programables
2
Clasificación
PROM (“Programmable Read-Only Memory”)
Almacenamiento de datos
Implementación de lógica combinacional
4
Matriz AND
A A B B A A B B
X1 X1 = A • B
X2 X2 = A • B
X3 X3 = A • B
X4 X4 = A • B
Fusible
5
Matriz OR
A A B B A A B B
X1 X1 = A + B
X2 X2 = A + B
X3 X3 = A + B
X4 X4 = A + B
Fusible
6
PLDs: PROM
Clasificación por su arquitectura
(ordenación funcional de sus elementos internos)
I1 O1
I2 Matriz Matriz
O2
AND OR
FIJA PROGRAMABLE
In Om
7
PLDs: FPLA
Clasificación por su arquitectura
(ordenación funcional de sus elementos internos)
I1 O1
I2 Matriz Matriz
O2
AND OR
PROGRAMABLE PROGRAMABLE
In Om
I1 O1
I2 Matriz Matriz
O2
AND OR
PROGRAMABLE FIJA
(con lógica de salida)
In Om
I1 O1
I2 Matriz Matriz
O2
AND OR
PROGRAMABLE FIJA
(con lógica de salida
programable)
In Om
A A B B A A B B
X X=A•B+A•B=
=A+B
11
Representación simbólica
Sin programar
Fusible
12
Representación simbólica
Programada
Fusible
13
PAL
A B A B
OR fija OR fija
X=A•B+A•B=
=A+B
14
PROM simbólica
AND fija
Todos los 2n “minterms” que pueden
formarse con las variables de entrada
OR programable
Todos los “minterms” pueden ser
compartidos por todas las funciones de
salida
15
PAL
x3 x2 x1 x0
Red OR-lógica
AND programable
Hasta 2n términos producto que pueden
formarse con las variables de entrada
OR fija
Los términos producto no pueden ser
compartidos por las funciones de salida
z3 z2 z1 z0 16
PLA (FPLA)
x3 x2 x1 x0
Red OR-lógica
AND programable
Hasta 2n términos producto que pueden
formarse con las variables de entrada
OR programable
Todos los términos producto pueden ser
compartidos por todas las funciones de
salida
Red AND-lógica
z3 z2 z1 z0
17
Síntesis de funciones lógicas con PAL
Ejemplo
F1
=
/A • /C • /D + /A • C • D +
+ A • /C • D + A • C • /D
F2
= A • /C • D + /A • B • C +
+ A • C • /D + /A • C • D +
+ /A • /B • /C • /D
18
Síntesis de funciones lógicas con PAL (2)
Ejemplo
Notaciones
equivalentes
Dos funciones no
pueden compartir
términos producto
en una PAL
19
Notación simbólica y tecnología
X X
X X
20
Síntesis lógica con PROM, PAL y PLA
Ejercicio
F1
=
/A • B
F2
=
/A + B
F3
=
A EXOR B
F4
=
B
21
Síntesis lógica con PROM, PAL y PLA (2)
Ejercicio
A B A B A B
/A•/B B B
0 /A•B
/A•B
/A•B A•/B
A•/B
A•/B /A
A•B
/A
Red AND-lógica Red AND-lógica
B
/A•B
F4 F3 F F1
0 2
F4 F3 F F1
2
Red AND-lógica
F4 F3 F2 F1
22
Diagrama de bloques de una PAL
I1 Lógica O1
de Salida
PROGRAMABLE FIJA
In Lógica
de Salida Om
PAL10L8
PAL16R8
#Entradas (máx)
#Salidas (máx)
Salidas vía Flip-Flop y
Salidas activas a nivel L (L, H, P, X, …)
realimentación interna
23
Diagrama Lógico de una PAL
PAL16L8
•
8 bloques
•
64 términos producto (7 utilizables
como entradas de la OR por bloque)
•
/OE programable (término producto)
Individual para cada bloque
•
Realimentación Salida-Zona de fusibles
24
Diagrama Lógico de una PAL (2)
PAL16R6
Reprogramable
26
GAL (2)
A A B B
Estructura básica
EECMOS EECMOS
EECMOS EECMOS EECMOS EECMOS
ON OFF
EECMOS EECMOS EECMOS EECMOS
I1 OLMC O1
PROGRAMABLE FIJA
In OLMC Om
GAL16V8
#Entradas (máx)
#Salidas (máx)
28
Diagrama de bloques funcional de las GAL
GAL22V10
OLMC: “Output Logic Macrocell”
en una GAL22V10.
indiferente
X
#Entradas (máx)
A
1 S0 = 1
B C D E F S1 = 1
B C D E F
31
Diagrama de bloques funcional de las GAL
GAL16V8
Destinada a emular a gran parte de las PAL
de igual o menor número de macroceldas
8 macroceldas
ANDs 32 entradas
ORs 7 u 8 entradas
3 MODOS de operación:
•
Simple
•
Complejo
•
Registrado
AC0
AC1 (n)
A la entrada
0 P
correspondiente
T
M del FMUX de la
U OLMC
1 X
adyacente
0 O
M
U
X
D Q 1
XOR Q
F 10
M 11
U
X 00
01
De la I/O de
AC0 AC1(n) la OLMC
o adyacente
CLK OE
SYN (OLMCs 12 y 19)
34
Diagrama de bloques de una GAL 16V8
Modo Simple
GAL10V8
SYN, AC0 = ʻ1, 0ʼ
AC1 = ʻ0ʼ
Excepto patillas 15 y 16
AC1 = ʻ0ʼ
Excepto patillas 15 y 16
Excepto patillas 12 y 19
AC1 = ʻ1ʼ
patillas 12 y 19
#Salidas (máx)
Hasta 2 Salidas y hasta 6 I/Os
Con SYN = ʻ1ʼ y AC0 = ʻ1ʼ todos los FMUXs seleccionan la señal que proviene
de la propia OLMC; excepto en en el caso de las patillas 12 y 19 en que
seleccionan la señal que proviene de la “OLMC” (entrada) adyacente
36
Diagrama de bloques de una GAL 16V8
Modo Registrado
GAL10V8
SYN, AC0 = ʻ0, 1ʼ
AC1 = ʻ0ʼ
38
GAL 16V8: Síntesis expresiones lógicas
Ejercicio
(*) Aún cuando la selección de modo y la programación de los fusibles SYN, AC0 y AC1 (n), la realiza
el compilador software / hardware de forma “transparente” para el diseñador, mostrar como podrían
programarse estos fusibles. Considérese la implementación en una macrocelda con entradas de
selección del FMUX: S1 S0 = /SYN AC1 (OLMC 12 o 19).
39
GAL 16V8: Síntesis expresiones lógicas (2)
Ejercicio
Términos producto de F1.H
11 T
10 S
M
1
01 U
X
VDD 00
AC0 0 1
1
AC1 (n)
0 A la entrada
0 P F1.L = F1.H correspondiente
T
M del FMUX de la
U OLMC
x1• x 2 1 X F1.L = F1.H 0 adyacente
F1 .H 1 F1.H
x1• x 3 0 O
M
00 U
I/O (n)
00 D Q 1
X
0
x2• x 3 1
XOR Q
F 10
M 11
U
X 00
01
De la I/O de
SYN, AC0 = 1, 0 => Modo Simple SYN AC1(n) la OLMC
AC1 (n) = 0 CLK
adyacente
1 0 OE
11 T
10 S
M
1
01 U
X
VDD 00
AC0 0 1
1
AC1 (n)
0 A la entrada
0 P
T
F2.H = F2.L correspondiente
M del FMUX de la
U OLMC
x1• x 2 1 X F2.H = F2.L 0 adyacente
F2 .H 1 F2.L
x1• x 3 0 O
M
00 U
00 D Q 1
X
0
x2• x 3 0
XOR Q
F 10
M 11
U
X 00
01
De la I/O de
SYN, AC0 = 1, 0 => Modo Simple SYN AC1(n) la OLMC
AC1 (n) = 0 CLK
adyacente
1 0 OE
42
GAL 16V8: Síntesis expresiones lógicas (5)
Ejercicio
Términos producto de /F3.H
11 T
10 S
M
1
01 U
X
VDD 00
AC0 0 1
1
AC1 (n)
0 A la entrada
0 P F3.H = F3.L correspondiente
T
M del FMUX de la
U OLMC
x1• x 2 1 X F3.H = F3.L 0 adyacente
F3 .H 1 F3.L
x1• x 3 0 O
M
00 U
00 D Q 1
X
0
x2• x 3 1
XOR Q
F 10
M 11
U
X 00
01
De la I/O de
SYN, AC0 = 1, 0 => Modo Simple SYN AC1(n) la OLMC
AC1 (n) = 0 CLK
adyacente
1 0 OE
44
GAL 16V8: Síntesis expresiones lógicas (7)
Ejercicio
Términos producto de /F4.L
11 T
10 S
M
1
01 U
X
VDD 00
AC0 0 1
1
AC1 (n)
0 A la entrada
0 P F4.L = F4.H correspondiente
T
M del FMUX de la
U OLMC
x1• x 2 1 X F4.L = F4.H 0 adyacente
F4.H = F4.L 1 F4.H
x1• x 3 0 O
M
00 U
I/O (n)
00 D Q 1
X
0
x2• x 3 0
XOR Q
F 10
M 11
U
X 00
01
De la I/O de
SYN, AC0 = 1, 0 => Modo Simple SYN AC1(n) la OLMC
AC1 (n) = 0 CLK
adyacente
1 0 OE
◊
Macroceldas configurables
•
Polaridad de salida
•
Combinacional o registro (D-FF, JK-FF, SR-FF, T-FF)
•
Triestado
•
Realimentación de la señal a la matriz de interconexión
•
Expansores
◊
Arquitectura
PIN de Entrada --> buffer/inversor --> Matriz de interconexión -->
--> Lógica AND-OR --> Macrocelda de Salida
46
EP1830
Macroceldas locales
Macroceldas globales
EP1830
ALTERA
48 Macroceldas
1 BUS global
12
Entradas dedicadas
globales
4
Cuadrantes de 12
Macroceldas
4 BUSES locales
Cuadrante:
•
Reloj independiente
• 8 Macroceldas locales
• 4 Macroceldas globales
UV EPROM-OTPROM
47
EPM5192
EPM5192
192
Macroceldas
ALTERA MAX 5000
12
LABs
(“Logic Array Block”)
de 16 Macroceldas y 32
términos producto para
expansión
12 PIA
“Programmable Interconect Array”
48
EPM5192 (2)
EPM5192
ALTERA
UV EPROM - OTPROM
49
EPM5192 (3)
EP5192
Arquitectura
LAB: “Logic Array Block”
Macrocelda
Expansor
Control I/O
50
CPLDs Eléctricamente borrables
Familia MAX 7000
16 Macroceldas
Estructura de conexionado
jerárquica
Retardo predecible
~ 5 ns ʻpinʼ a ʻpinʼ
Ej.:
EPM7128
8 LABs (128 macroceldas)
100 (hasta) I/O pins utilizables
6 (hasta) OE
EEPROM
ALTERA
51
CPLDs Eléctricamente borrables (2)
Familia MAX 7000
Macrocelda
Macrocelda
•
Matriz Lógica
EEPROM
ALTERA
52
CPLDs Eléctricamente borrables (3)
Familia MAX 7000
Macrocelda
PIA
•
Entradas dedicadas
•
I/Os
•
Salidas de macroceldas
Salidas de PIA:
•
Disponibles por todos los LABs
•
Sólo se conectan a cada LAB las
señales
requeridas por este.
•
Controlado por una celda EEPROM
EEPROM
ALTERA
53
Programación de PLDs
Requerimientos
◊
Software de programación (compilador lógico, compilador del diseño)
Interpreta entrada del diseño
Diagrama esquemático
HDL (“Hardware Description Language”)
Expresiones Booleanas
Tablas Características, Tablas de Estados, …
Genera el fichero de salida para programación
Formato JEDEC (“Joint Electronic Device Engineering Council”)
Paquetes: ABEL, CUPL, OrCAD-PLD, LOG/iC, Max+PLUSII, …
◊
Computador
Ejecuta el programa software de programación
Controla el hardware de programación
*
Algunos paquetes generan las señales de programación y las aplican al circuito “in situ”, a
través del puerto de salida paralelo o serie, mediante un simple dispositivo conector. Requiere
que los PLDs dispongan de la facilidad de acceso “scan” (CPLDs)
ispGAL (“In-System Programmable GAL”), MAX+PLUSII (Puerto paralelo-ByteBlaster MV)
54
Programación de PLDs
Programanción
55
Programación de PLDs
Inicio
Concepción
Diseño Circuito
si ¿Errores Descripción?
Modificar descripción
(análisis lógico, reglas)
no
Compilar el Diseño
(software de compilación)
MAX+PLUSII
Simular el Diseño
(software de simulación) Depurar Diseño
Cargar en el Programador
(software de programación)
ALL-11
Programar el PLD
(soft/hardware de programación)
Fin
56
Formato JEDEC
EXORʼs
AC1 (n)
SYN, AC0
Mapa de Fusibles
57
Programación de PLDs
ByteBlaster MV
58