Upload
lamdung
View
217
Download
0
Embed Size (px)
Citation preview
Lógica Programable
Electrónica Digital
Electrónica Básica
José Ramón Sendra SendraDpto. de Ingeniería Electrónica y AutomáticaULPGC
Matrices lógicas Programables (PLAs)Bloques funcionales prefabricados de muchas puertas AND/OR (o NOR, o NAND)"personalizados" al crear o destruir conexiones entre las puertas
Diagrama de bloques de una matriz programable para generación de unasuma de productos
Entradas
Matriz de puertasAnd Lista de Minterms
Matriz de puertasOr
Salidas
Ejemplo: PLA 3x4 con 5 términos producto
Todas las conexiones están intactasantes de la programación
Matrices lógicas Programables (PLAs)
Datos:F0 = A + B' C'F1 = A C' + A BF2 = B' C' + A BF3 = B' C + A
Ecuaciones lógicas
Matriz de conexiones
Implantación de cuatro funciones lógicas en nuestra PLA ejemplo
1 = término activo0 = término negado- = No participa
1 = producto conectado0 = producto no conectado
Variables en los productos:
Términos en las sumas:
Matrices lógicas Programables (PLAs)
Salidas Entradas Productos
Conexionesa
eliminar
A 1 - 1 - 1
B 1 0 - 0 -
C - 1 0 0 -
F 0 0 0 0 1 1
F 1 1 0 1 0 0
F 2 1 0 0 1 0
F 3 0 1 0 0 1
A B B C A C B C A
Las conexiones no deseadas se eliminan
Implantación de cuatro funciones lógicas en nuestra PLA ejemplo
Matrices lógicas Programables (PLAs)
Representación alternativa que simplifica las estructuras con fan-in alto
Notación abreviadade modo que no tenemos
que dibujar todas las líneas
Además esta notación separece más a la implantación
real del dispositivo.
Notación para implantarF0 = A B + A' B'F1 = C D' + C' D
Matrices lógicas Programables (PLAs)
ABC
A
B
C
A
B
C
ABC
ABC
ABC
ABC
ABC
ABC
ABC
F1 F2 F3 F4 F5 F6
Ejemplo de diseño
F1 = A B C
F2 = A + B + C
F3 = A B C
F4 = A + B + C
F5 = A xor B xor C
F6 = A xnor B xnor C
Múltiples funciones de A, B, C
Matrices lógicas Programables (PLAs)
Inciso: lógica de diodos.
Función de transferencia de un diodo
Símbolo de un diodo
V =(V - V )Anodo CátodoD
I
Anodo Cátodo
Corriente positiva
Tensión umbral (≈0.6V)
Inciso: lógica de diodos.
A ( )
B ( )
C ( )
D ( )
R pull-up
VCC
F ≈
VCC
VCC
VCC
VCC
I≈0
I≈0
I≈0
I≈0
VCC
I≈0
A ( )
B(Gnd )
C ( )
D ( )
R pull-up
VCC
F ≈ 0.6V VCC
VCC
VCC
I≈0
I>0
I≈0
I≈0
I>0
Puerta And de diodos
Inciso: lógica de diodos.
Inconvenientes: Degradación gradual de la señal cuando incrementamos los niveles de la lógica.
Puerta Or: Igual que la And pero con resistencia de pull-down
0V5V
5V5V
0.6V1.2V
5V
1.8V 2.4V
Dispositivos Lógicos Programables (PLDs)VCC
VCC
I31I 2I 4I
O1 O2
Fusible
Fusible
Tecnología bipolar
NAND-NAND
Inciso: inversor bipolar.
VCC
Gnd
R1
R2
IN
OUT
IN OUT ⇔
V =V -β·R2·(V -0.6)/R1OUT INCC Si V >0.2VOUT
β es el factor de ganancia de corriente del transistor bipolar
Dispositivos Lógicos Programables (PLDs)VTecnología CMOS CC
VCC
I31I 2I 4I
O1 O2
Fusible
Fusible/I1' /I1 /I2' /I2 /I3' /I3 /I4' /I4
AND-OR
Dispositivos Lógicos Programables (PLDs)Tecnología CMOS
Las PLDs vistas hasta ahora sólo pueden grabarse una vez
Veamos ahora tipos de PLDs regrabables, conocidas como EPLDs(erasable programmable logic device)
Puertano
flotante
Puertaflotante
GRABADO:Los dieléctricos entre la puerta flotantey el semiconductor se cargan negativamentecuando aplicamos una tensión positiva alta, de forma que el dieléctrico entre la puertaflotante y el semiconductor queda permanentemente cargado inutilizando el transistor
GRABADO:Los dieléctricos entre la puerta flotantey el semiconductor se cargan negativamentecuando aplicamos una tensión positiva alta, de forma que el dieléctrico entre la puertaflotante y el semiconductor queda permanentemente cargado inutilizando el transistor
BORRADO: Para eliminar esta carga se puede permitir la descarga mediante luz ultravioleta o mediante una tensión negativa (depende del tipo de aislante )BORRADO: Para eliminar esta carga se puede permitir la descarga mediante luz ultravioleta o mediante una tensión negativa (depende del tipo de aislante )
Dispositivos Lógicos Programables (PLDs)Tipos de dispositivos comerciales
PAL son una modificación de las PLAs consisten en eliminar elplano OR de forma que quedamos limitados y no podemos usar un minterm en varias salidas. Una mejoría sobre lasPLAs es que tiene entradas bidireccionales, con lo que podemosusar según nos convenga algunos pines como entrada o como salida y también podemos diseñar lógica con más de dos niveles.
GAL admiten las variaciones de las PAL pero a su vez disponende una puerta XOR a la salida, con lo que podemos escoger entre la salida o la salida negada, esto permitirá una gran versatilidad.
PALs y PLAs
¿Cuál es la diferencia entre Programmable Array Logic (PAL) y Programmable Logic Array (PLA)?
PAL — construida por Monolithic Memories, la topología del plano OR está limitada
Cada columna del plano OR tiene acceso sólo a un subconjunto
de los minterms
PLA — topologías generalizadas en los planos AND y OR
PALs y PLAsEjemplo de diseño: conversor de código BCD a código Gray
Tabla de verdad Mapas de Karnaugh
W = A + B D + B CX = B C'Y = B + CZ = A'B'C'D + B C D + A D' + B' C D'
Funciones minimizadas:
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
W 0 0 0 0 0 1 1 1 1 1 X X X X X X
X 0 0 0 0 1 1 0 0 0 0 X X X X X X
Y 0 0 1 1 1 1 1 1 0 0 X X X X X X
Z 0 1 1 0 0 0 0 1 1 0 X X X X X X
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 0 X 1
0 1 X 1
0 1 X X
0 1 X X
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 1 X 0
0 1 X 0
0 0 X X
0 0 X X
mapa-K para X
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 1 X 0
0 1 X 0
1 1 X X
1 1 X X
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 0 X 1
1 0 X 0
0 1 X X
1 0 X X
mapa-K para W
mapa-K para Y mapa-K para Z
PALs y PLAs
PAL programada:
Hay 4 minterms por puerta OR
A B C D
0
0
0
0
0
0
PALs y PLAsImplantación del código en puertas de circuitos SSI
5 circuitos SSI vs. 1 circuito PLA/PAL
B
\ B C
C
A
D
\ D
D W
X
Y B
B
B
B
C
C
A
D
\ A
\ C
\ B
\B \C
\A
\ D
2
2
1 1: 7404 inversores2,5: 7400 NAND dos entradas 3: 7410 NAND tres entradas 4: 7420 NAND cuatro entradas
4
4
3
3
5
Z
1
3
2 1
2
D 1
1
4
2
Otro ejemplo: Comparador de magnitud
EQ NE LT GT
ABCD
ABCD
ABCD
ABCD
AC
AC
BD
BD
ABD
BCD
ABC
BCD
PALs y PLAs
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Mapa K para EQ
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
Mapa K para NE
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 0 0 0
1 0 0 0
1 1 0 1
1 1 0 0
Mapa K para L T
AB CD 00 01 11 10
00
01
11
10
D
B
C
A
0 1 1 1
0 0 1 1
0 0 0 0
0 0 1 0
Mapa K para GT
PLA
I1
I2
I3
I4
I5
I6
I7
I8
I9
O1
IO2
IO3
IO4
IO5
IO6
IO7
O8
I10
PAL16L8
PAL16L8Polaridad de las señales
No importa la polaridad de las señales de entrada ya que tenemosun buffer inversor y no inversor y por tanto ambas señales estánpresentes, la única diferencia será que línea lleve la señal y quelínea lleve su negada
En cuanto a las salidas es diferente, veamos que hay un inversor ala salida de cada puerta OR, y entonces la función realizada es la AND-OR-Invert.
Normalmente uno no calcula cual va a ser el mapa de contactos eliminados a mano, esto se deja a un ordenador y por tanto hay que fijarse en las funciones de salida.
PAL16L8Polaridad de las señales
Ejemplo de salida.
/salir= /(A1·A2·A3·A4·A5·A6·A7·A8) Correcto
salir = A1·A2·A3·A4·A5·A6·A7·A8 Incorrecto
/salir=/A1+ /A2 + /A3 + /A4 + /A5 + /A6 + /A7 + /A8
salir = (A1·A2·A3·A4·A5·A6·A7·A8)
Antes del inversor de salida queda un sólo sumando
Antes del inversor de salida quedan ocho sumandos
Ejemplo: Diseñar un multiplexor de ocho entradas de un bit.
Entradas Salidas de controlEN C B A Y0 0 x x x 0 1 0 0 0 D0 1 0 0 1 D1 1 0 1 0 D2 1 0 1 1 D3 1 1 0 0 D4 1 1 0 1 D5 1 1 1 0 D6 1 1 1 1 D7
Tabla de verdad
Y0 = EN·C·B·A·D0 +EN·C·B·A·D1 +EN·C·B·A·D2 +EN·C·B·A·D3 +EN·C·B·A·D4 +EN·C·B·A·D5 +EN·C·B·A·D6 +EN·C·B·A·D7)
PAL16L8
Atención : la función lógica implantada es AND-OR-Invert y por tanto la salida será activa a nivel bajo
Cuidado: tenemos una OR de ocho entradas y por lo tanto deberemos utilizar lógica de cuatro niveles
Ejemplo: Diseñar un multiplexor de ocho entradas de un bit.
PAL16L8
/(EN·C·B·A·D0 + EN·C·B·A·D1 + EN·C·B·A·D2 + EN·C·B·A·D3)
/Y01=
/(EN·C·B·A·D4 + EN·C·B·A·D5 + EN·C·B·A·D6 + EN·C·B·A·D7)
/Y02=
Y0 = /(/Y01 · /Y02)=Y01+Y02
O1
IO2
IO3
IO4
IO5
IO6
IO7
O8
I10
I1
I2
I3
I4
I5
I6
I7
I8
I9
GAL16V8C