Lógica Programable Electrónica Digital

26
Lógica Programable Electrónica Digital Electrónica Básica José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC

description

Electrónica Básica. Lógica Programable Electrónica Digital. José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC. Matrices lógicas Programables (PLAs). Bloques funcionales prefabricados de muchas puertas AND/OR (o NOR, o NAND) - PowerPoint PPT Presentation

Transcript of Lógica Programable Electrónica Digital

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

I0

I0

I0

I0

VCC

I0

A ( )

B(Gnd )

C ( )

D ( )

R pull-up

VCC

F V VCC

VCC

VCC

I0

I0

I0

I0

I0

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.8V2.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

PA

L16

L8

PAL16L8

Polaridad 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.

PAL16L8

Polaridad 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

GA

L16

V8C