Вы находитесь на странице: 1из 87

PLDs

DISPOSITIVOS
LGICOS
PROGRAMABLES

Informacin obtenida del libro:


Fundamentos de Sistemas digitales 7a Edicin
Autor: Thomas L. Floyd
CAPITULO 7
ITTG Diseo D

Dispositivos lgicos programables


Tipos
Caractersticas
Funcionamiento
Programacin HDL (utilizar el software especfico para el programador
universal)
Lenguaje de descripcin de hardware (HDL)
Fundamentos de lenguaje HDL
Elementos del lenguaje
Declaraciones bsicas
Implementacin de circuitos combinacionales con PLDs

ITTG Diseo D

DISPOSITIVOS LGICOS PROGRAMABLES (PLD )


Los dispositivos lgicos programables (PLD) se utilizan para
reemplazar a los circuitos de tecnologa SSI y MSI, ya que
ahorran espacio y reducen el nmero y el costo de los
dispositivos en un determinado diseo.
SSI: Pequea escala de integracin: todos los circuitos de
compuertas AND, NAND, OR, NOR, XOR, ETC
MSI: Mediana escala de integracin: Los CI ms complejos
como sumadores, comparadores, decodificadores,
multiplexores, etc.

ITTG Diseo D

Un PLD est formado por una matriz arreglo de puertas


AND y puertas OR, que se puede programar para conseguir
funciones lgicas especficas.
Todos los PLDs estn formados por matrices arreglos
programables.
Se dice que son programables porque se puede programar la
salida o resultado que se necesite.
Una matriz programable es una red de conductores
distribuidos en filas y columnas con un fusible en cada
punto de interseccin.
Loa arreglos matrices son ya sea de compuertas OR
NAND
ITTG Diseo D

Matriz integrada OR.


La matriz integrada OR, est formada por una serie de
puertas OR conectadas a una matriz programable con
fusibles en cada punto de interseccin de una columna y una
fila, como se muestra en la Figura 7.1(a).
En la figura se observa la
disposicin de las variables de
entrada A y B, con y sin
negacin. Inicialmente todas
las variables estn conectadas
a las compuertas OR por
medio de fusibles sin fundir,
para programar las salidas X1,
X2 y X3 de acuerdo lo que se
necesite
ITTG Diseo D

Fig. 7.1 a)
5

La matriz se programa fundiendo los fusibles de las variables


que no se requieren a la salida. Se define primeramente lo
que se desea en la salida de cada compuerta OR.
Para cada una de las entradas de una puerta OR, slo queda
intacto el fusible que conecta la variable deseada a la entrada
de la puerta. Una vez que el fusible est fundido, no se puede
volver a conectar restablecer.

Fig. 7.1 b)
ITTG Diseo D

Matriz integrada AND


Esta matriz est formado por puertas AND conectadas a
una matriz programable con fusibles en cada punto de
interseccin, como muestra la Figura 7.2(a).
Este dibujo ilustra
una matriz intacta,
con todos sus
fusibles para
programar las
salidas X1, X2 y
X3 de acuerdo lo
que se necesite.
ITTG Diseo D

Al igual que la matriz OR, la matriz AND se programa


fundiendo los fusibles para eliminar las variables que no se
requieren a la salida de cada compuerta.
Para cada entrada de una puerta AND, slo queda intacto un
fusible que conecta la variable deseada a la entrada de la
puerta. Al igual que la matriz OR, la matriz AND solo se puede
programar una nica vez
Matriz AND
programada

ITTG Diseo D

Clasificacin de los PLD


Los PLD se clasifican de acuerdo con su arquitectura, la cual es
bsicamente la ordenacin funcional de los elementos internos
que proporciona al dispositivo sus caractersticas de operacin
especficas.
Existen cuatro tipos de dispositivos que se clasifican como PLD:
PROM ( Programmable Read-Only Memory) Memoria
programable de slo lectura
PLA (Programmable Logic Array) Matriz lgica programable
PAL (Programmable Array Logic) Matriz lgica programable y
GAL ( Generic Array Logic) Matriz lgica genrica
ITTG Diseo D

Memoria programable de slo lectura (PROM, Programmable


Read-Only Memory).
La PROM est formada por un conjunto fijo (no programable)
de puertas AND conectadas como decodificador y una matriz
programable OR, como muestra el diagrama a bloques general
de la Figura 7.3.

ITTG Diseo D

10

Matriz lgica programable PLA (Programmable logic


Array).
La PLA es un PLD formado por una matriz AND
programable y una matriz OR programable, como
muestra la Figura 7.4.
La PLA ha sido desarrollada para superar algunas de las
limitaciones de las memorias PROM. La PLA tambin se
denomina FPLA (Field Programmable Logic Array,
Matriz Lgica Programable en Campo) debido a que es el
usuario y no el fabricante el que la programa.

ITTG Diseo D

11

Matriz, lgica programable PAL (Programmable Array


Logic).
La PAL es un PLD que se ha desarrollado para superar
ciertas desventajas de la PLA, tales como los largos
retardos debidos a los fusibles adicionales que resultan de
la utilizacin de dos matrices programables y la mayor
complejidad del circuito.
La PAL bsica est formada por una matriz AND
programable y una matriz OR fija con la lgica de salida,
como se muestra en la Figura 7.5.
Se implementa con tecnologa bipolar (TTL o ECL).
ITTG Diseo D

12

ITTG Diseo D

13

Matriz lgica genrica (GAL, Generic Array Logic).


El desarrollo ms reciente de los PLD es la GAL. La GAL, al
igual que la PAL, se forma con una matriz AND programable
y una matriz OR fija, con una salida lgica programable. Las
dos principales diferencias entre los dispositivos GAL y PAL
son:

La GAL es reprogramable y tiene configuraciones de salida


programables.

La GAL se puede programar una y otra vez, ya que usa la


tecnologa E2CMOS (Electrically Erasable CMOS, CMOS
borrable elctricamente), en lugar de tecnologa bipolar y
fusibles.
En la Figura 7.6 se muestra el diagrama de bloques de una GAL.
ITTG Diseo D

14

ITTG Diseo D

15

MATRIZ LGICA PROGRAMABLE (PAL,


PROGRAMMABLE ARRAY LOGICO)
Los dispositivos lgicos programables que se usan ms
comnmente para la implementacin lgica son la PAL y la
GAL.
PAL es una denominacin que, originalmente, utilizaba la
compaa Monolithic Memories, Inc. (ahora forma parte de
Advanced Micro Devices, AMD) y, ms tarde, otros fabricantes
obtuvieron tambin la licencia.
La PAL, en su forma bsica, es un PLD formado por una matriz
AND programable una nica vez y una matriz OR fija.

ITTG Diseo D

16

Funcionamiento de la PAL
Como ya se menciono, una matriz programable es bsicamente una
red de conductores ordenados en filas y columnas, con un fusible en
cada punto de interseccin.
Como se puede ver en la
figura, cada fila se conecta a
la entrada de una puerta
AND y cada columna a una
variable de entrada o a su
complemento. Cada punto
de interseccin entre una
fila y una columna se
denomina celda y es el
elemento programable de la
PAL..
ITTG Diseo D

17

Funcionamiento de la PAL
Una PAL est formada por una matriz de puertas AND programable
conectada a una matriz de puertas OR fija. Esta estructura permite
implementar cualquier suma de productos lgica con un nmero de
variables definido.
En la Figura 7.7 se ilustra la estructura bsica de una PAL para dos
variables de entrada y una salida, aunque la mayora de las PAL
tienen muchas entradas y muchas salidas.

ITTG Diseo D

18

Implementacin de una suma de productos.


En su forma ms sencilla, cada celda de una matriz AND bsica
est formada por un fusible que conecta una fila y una columna,
como se representa en la Figura 7.7. Cuando se requiere la
conexin entre una fila y una columna, el fusible queda intacto.
Cuando dicha conexin no se requiere, el fusible se abre en el
proceso de programacin.

Figura 7.7.
ITTG Diseo D

19

En la Figura 7.8 se muestra un ejemplo de una matriz programada


para generar la suma de productos:

El producto AB en la salida de la puerta AND superior


El producto AB` en la puerta AND del centro
y el producto A`B`en la puerta AND inferior.

ITTG Diseo D

20

Los fusibles quedan intactos para conectar las variables deseadas, o


sus complementos, a las entradas apropiadas de las puertas AND.
Los fusibles se funden en los casos en que las variables o sus
complementos no se utilizan. La salida de la puerta OR proporciona
la suma de productos.

ITTG Diseo D

21

Smbolos simplificados
Las PAL reales tienen muchas puertas AND y muchas puertas
OR, adems de otra circuitera, y son capaces de manejar
muchas variables de entrada y sus complementos.
Puesto que las PAL son circuitos integrados muy complejos, los
fabricantes han adoptado una notacin simplificada para
eliminar los diagramas lgicos arrolladoramente complicados.
Buffers de entrada. Para evitar cargar con la gran cantidad de
entradas de puertas AND a las que se pueden conectar una
variable o su complemento, se aade un buffer a las variables de
entrada de la PAL. Un buffer inversor genera el complemento de
una variable de entrada. El smbolo que representa el circuito
buffer, el cual genera la variable y su complemento en sus
salidas, se muestra en la Figura 7.9, donde la salida con el
crculo corresponde a la variable complementada.
ITTG Diseo D

22

ITTG Diseo D

23

Una matriz AND de una PAL tpica tiene una cantidad


extremadamente grande de lneas de interconexin, y cada
puerta AND tiene entradas mltiples. El diagrama lgico de una
PAL muestra cada puerta AND, que realmente tiene varias
entradas, utilizando una sola lnea para representar a todas las
lneas de entrada, como se indica en la Figura 7.9.
Algunas veces, las lneas
mltiples tambin se
indican mediante una
barra inclinada y el
nmero de lneas, tal
como se muestra en la
puerta AND superior
para el caso de cuatro
lineas

Figura 7.9.
ITTG Diseo D

24

Para obtener un diagrama lgico lo ms sencillo posible, los


fusibles de una matriz AND programable se indican mediante una
X en el punto de interseccin si el fusible queda intacto, y no se
indica nada si el fusible est fundido, como se indica en la Figura
7.9. Las conexiones fijas emplean el punto estndar, tal y como
se muestra.

ITTG Diseo D

25

EJEMPLO 7.1
Indicar cmo se programa una PAL para obtener la siguiente
funcin lgica de tres variables:

Solucin. En la Figura 7.10 se muestra la matriz programada.


Los fusibles intactos se indican con una X. La ausencia de X
significa que los fusibles estn fundidos.

ITTG Diseo D

26

Indicar cmo se programa una PAL


para obtener la siguiente funcin
lgica de tres variables:

Tarea. Escribir la expresin de salida si los fusibles que conectan


la entrada A con la fila superior e inferior de la Figura 7.10 estn
fundidos.
ITTG Diseo D

27

Diagrama de bloques de una PAL

En la Figura 7.11 se muestra el diagrama de bloques de una


PAL. Las salidas de la matriz AND son las entradas de la matriz
OR, y la salida de cada puerta OR se asocia a una lgica de
salida. Una PAL tpica tiene ocho o ms entradas en la matriz
AND y hasta ocho bloques lgicos de salida como se indica en
la figura, siendo n 8 y m 8.
Algunas PAL disponen de pines de entrada/salida (E/S)
combinados, que se pueden programar como salida o como
entrada. El smbolo significa que un pin puede utilizarse como
entrada o como salida.

ITTG Diseo D

28

ITTG Diseo D

29

Numeracin comercial referencias estndar de las PAL


Existe una gran variedad de configuraciones de PAL estndar, cada
una se identifica mediante una nica referencia, la cual comienza
con el prefijo PAL.
Los dos primeros dgitos que siguen al prefijo indican el nmero de
entradas, en el que se incluye el nmero de salidas que se pueden
configurar como entradas.
La letra que sigue al nmero de entradas designa el tipo de salida:
L = active- LOW (activa a nivel BAJO),
H = active-HIGH (activa a nivel ALTO) y
P = polaridad programable.
El dgito o los dos dgitos que siguen a la letra que designa el tipo
de salida indican el nmero de salidas.
ITTG Diseo D

30

Ejemplo de referencia o numeracin de


identificacin de una PAL.

Adems, una referencia de una PAL puede


llevar sufijos que especifican la velocidad, el
tipo de encapsulado y el rango de temperatura.

ITTG Diseo D

31

La Figura muestra el
diagrama a bloques del
dispositivo PAL16L8.
Este dispositivo tiene
10 entradas dedicadas,
dos salidas dedicadas y
6 salidas que se pueden
utilizar como entradas
o como salidas. Las
salidas son activas a
nivel BAJO.

ITTG Diseo D

32

EJ EMPIO 7.2
Determinar el nmero de entradas, el nmero de salidas y el tipo
de salida de cada una de las siguientes referencias de
dispositivos PAL:
(a) PAL12H6, (b) PAL16L2 y (c) PAL20P8
Solucin
(a) 12 entradas, 6 salidas, salidas activas a nivel ALTO.
(b) 16 entradas, 2 salidas, salidas activas a nivel BAJO.
(c) 20 entradas, 8 salidas, salidas programables.
Tarea: Describir la PAL cuya referencia es PAL14H4.
ITTG Diseo D

33

MATRIZ LGICA GENRICA


(GAL, GENERIC ARRAY LOGIC)
GAL es una denominacin que utilizaba originalmente Lattice
Semiconductor y que ms tarde se licenci a otros fabricantes.
La GAL en su forma bsica es un PLD con una matriz AND
reprogramable, una matriz OR fija y una salida lgica
programable.
Funcionamiento de una GAL
Bsicamente, una GAL est formada por una matriz de puertas
AND reprogramable conectada a una matriz de puertas OR fija.
Al igual que una PAL, esta estructura permite implementar
cualquier expresin lgica suma de productos con un nmero de
variables definido.
ITTG Diseo D

34

En la Figura 7.14 se ilustra la estructura bsica de una GAL


con dos variables de entrada y una salida, aunque la
mayora de las GAL puede tener muchas entradas y
muchas salidas.
La matriz reprogramable es esencialmente una red de
conductores ordenados en filas y columnas, con una celda
CMOS elctricamente borrable (E2 CMOS) en cada punto
de interseccin, en lugar de un fusible como en el caso de
las PAL. En la figura, estas celdas se indican como
bloques.

ITTG Diseo D

35

Cada fila est conectada a la entrada de una puerta AND, y


cada columna a una variable de entrada o a su complemento.
Mediante la programacin se activa o desactiva cada celda
ECMOS, y se puede aplicar cualquier combinacin de
variables de entrada, o sus complementos, a una puerta AND
para generar cualquier trmino producto que se desee. Una
celda activada conecta de forma efectiva su correspondiente
fila y columna, y una celda desactivada desconecta la fila y la
columna.
Las celdas se pueden borrar y reprogramar elctricamente.
Una celda ECMOS tpica puede mantener el estado en que se
ha programado durante 20 aos o ms.

ITTG Diseo D

36

Implementacin de una suma de productos.


En la Figura 7.15 se muestra un ejemplo de una sencilla matriz
GAL, programada para obtener:
el producto A`B en la puerta AND superior,
AB en la puerta del centro y
A`B`en la puerta AND inferior.
Como se indica, las celdas ECMOS activadas conectan las
variables deseadas o sus complementos con las apropiadas
entradas de las puertas AND. Las celdas ECMOS estn
desactivadas cuando una variable o su complemento no se
utilizan en un determinado producto. La salida final de la puerta
OR es una suma de productos.
ITTG Diseo D

37

ITTG Diseo D

38

ITTG Diseo D

39

EJEMPLO 7.3
Indicar cmo se programa una GAL para obtener la
siguiente expresin de 3 variables:

Solucin En la Figura 7.16 se muestra la matriz


programada en flotacin simplificada. Las celdas que
estn activadas se marcan con una X. La ausencia de
X significa que la celda est desactivada.

ITTG Diseo D

40

ITTG Diseo D

41

Diagrama de bloques de una GAL


En la Figura 7.17 se presenta el diagrama de bloques de
una GAL.
Las salidas de la matriz AND se introducen en las
macroceldas lgicas de salida (OLMC, output logic
macrocells), que contienen puertas OR y lgica
programable.
Una GAL tpica puede tener ocho o ms entradas a su
matriz AND, y ocho o ms entradas/salidas de las OLMC
como se indica en la figura, siendo n 8 y m 8. Las
macroceldas lgicas de salida (OLMC) estn formadas por
circuitos lgicos que se pueden programar como lgica
combinacional o como lgica secuencial. Las OLMC
proporcionan mucha ms flexibilidad que la lgica de
salida fija de una PAL.
ITTG Diseo D

42

ITTG Diseo D

43

Referencia estndar de una GAL


Las GAL existen en una gran variedad de configuraciones, cada
una de las cuales se identifica por una nica referencia. Esta
referencia siempre comienza por el prefijo GAL. Los dos
primeros dgitos que siguen al prefijo indican el nmero de
entradas, incluyendo las salidas que se pueden configurar como
entradas. La letra V que sigue al nmero de entradas designa
una configuracin de salida variable. El nmero o los dos
nmeros siguientes al tipo de salida especifican el nmero de
salidas. La siguiente referencia es un ejemplo.

ITTG Diseo D

44

EJ EMPLO 7.4
Determinar el nmero de entradas y el nmero de salidas
de cada una de las siguientes referencias.
(a) GAL20V8 (b) GAL22V10
Solucin
(a) 20 entradas, 8 salidas.
(b) 22 entradas, 10 salidas.
Tarea: Describir una GAL cuya referencia es
GAL18V10.

ITTG Diseo D

45

LA GAL22V10
Las diversas GAL tienen el mismo tipo de matriz programable. Se
diferencian en el tamao de la matriz, en el tipo de OLMC
(macroceldas lgicas de salida (OLMC, output logic macrocells)),
y en los parmetros de funcionamiento, tales como velocidad y
disipacin de potencia. Esta seccin se ocupa de la popular matriz
lgica genrica GAL22 V10, con el fin de ilustrar los principios
comunes a todos los tipos de GAL. En la siguiente seccin
veremos la GAL16V8.

ITTG Diseo D

46

Diagrama de bloques de la GAL22V10


Como muestra el diagrama de bloques de la Figura 7.18, la
GAL22V10 tiene doce entradas dedicadas y diez entradas/salidas
(E/S). Este dispositivo se puede encontrar en encapsulado DIP
(dual in- line) de 24 pines o PLCC (plastic chip carrier) de 28
pines, como muestra la Figura 7.19. Este dispositivo tambin est
disponible en una versin de baja tensin: GAL22LV10.
Macroceldas lgicas de salida (OLMC)
Una OLMC ( output logic macrocells) contiene circuitos lgicos
programables que se pueden configurar como entrada o salida
combinacional, como salida secuencial. En el modo secuencial
la salida procede de un flip-flop. Las configuraciones
combinacionales de estas macroceldas lgicas se establecen
automticamente mediante programacin.
ITTG Diseo D

47

Como se indica en el diagrama de bloques de la Figura 7.18,


de las diez OLMC ( output logic macrocells) disponibles de
la GAL22V10, dos tienen ocho trminos producto (nmero
de lneas de la matriz AND a la puerta OR), dos tienen diez
trminos producto, otras dos doce, otras dos catorce y, por
ltimo, otras dos tienen diecisis trminos producto. Cada
OLMC puede programarse para que el nivel activo de salida
sea ALTO o BAJO y tambin, pueden programarse como
entradas.
Diagrama lgico. En la Figura 7.20 se muestra un diagrama
lgico bsico de la OLMC de la GAL22V10. Las entradas de
las puertas AND a la puerta OR varan desde diez hasta
diecisis, como se indica. La lgica de la zona sombreada
est formada por un flip-flop y dos multiplexores.
ITTG Diseo D

48

ITTG Diseo D

49

ITTG Diseo D

50

ITTG Diseo D

51

El multiplexor 1 de 4 conecta una de sus cuatro lneas de


entrada al buffer de salida triestado en funcin del estado de
las dos entradas de seleccin, S0 y S1. Las entradas del
multiplexor 1 de 4 son la salida de la puerta OR, su
complemento, la salida del flip-flop y su complemento. El
multiplexor 1 de 2 conecta a travs de un buffer a la matriz
AND la salida del buffer de tres estados o del flip- flop, en
funcin del estado de la entrada S. Los bits de seleccin S0 y
S1 de cada OLMC ( output logic macrocells) se programa
mediante un grupo dedicado de celdas de la matriz. Las
cuatro configuraciones de las macroceldas lgicas
programables son:
Modo combinacional con salida activa a nivel BAJO.
Modo combinacional con salida activa a nivel ALTO.
Modo secuencial con salida activa a nivel BAJO.
Modo secuencial con salidaITTG
activa
a Dnivel ALTO.
Diseo

52

Buffer de salida triestado.


El buffer de salida triestado, mostrado en la Figura 7.22(a) es
un inversor de dos estados lgicos, con una lnea de control
que permite desconectar la salida de la entrada.
Los tres estados de salida son: nivel BAJO (cuando la entrada
est a nivel ALTO), nivel ALTO (cuando la entrada est a
nivel BAJO) y alta impedancia (cuando la salida est
desconectada de la entrada). Cuando la lnea de control est a
nivel ALTO, el buffer est activo; y cuando la lnea de control
est a nivel BAJO, el buffer est en estado de alta impedancia.
En la Figura 7.22(b) se ilustran estos tres estados. Obsrvese
que, en el estado de alta impedancia, el buffer acta como un
interruptor abierto.
ITTG Diseo D

53

ITTG Diseo D

54

EJ EMPLO 7.5
Determinar la expresin de salida de una OLMC ( output logic
macrocells ) de la GAL22V10, para los productos indicados en la
matriz AND y los bits de seleccin de la Figura 7.24.

ITTG Diseo D

55

Solucin. La OLMC ( output logic macrocells) est


configurada para una salida combinacional activa a nivel
ALTO; por tanto, la suma de productos es:

Problema relacionado. Escribir la suma de productos de


salida si S0 = 0 y S1 = 1

ITTG Diseo D

56

LA GAL16V8
En esta seccin se va a tratar otro tipo de matriz lgica genrica,
la GAL16V8. La principal caracterstica de la GAL16V8 es que
se puede programar para emular muchos tipos de PAL.
Diagrama de bloques de la GAL16V8
La GAL16V8 tiene ocho entradas dedicadas y ocho
entradas/salidas (E/S), como muestra el diagrama de bloques de
la Figura 7.28(a), en el que se indica la numeracin de los pines
del encapsulado. Este dispositivo est disponible en
encapsulado DIP (dual in- line) de 20 pines o en PLCC (plastic
chip carrier) tambin de 20 pines, como muestra la parte (b) de
la misma figura. Este dispositivo tambin est disponible en
una versin de baja tensin, la GAL16LV8.
ITTG Diseo D

57

ITTG Diseo D

58

La OLMC
La OLMC ( output logic macrocells ) de la GAL16V8 es algo
diferente de la que incorpora la GAL22V10. La GAL16V8 est
diseada para programarse en uno de los tres modos disponibles
para emular a la mayora de las PAL existentes y, por tanto,
puede reemplazar a la PAL para la que se programe.
Emulacin de una PAL. Todas las posibles configuraciones de
la OLMC de la GAL16V8 se clasifican en tres modos bsicos:
simple, complejo y secuencial. Cada uno de estos modos
permite programar a la GAL16V8 para emular a una serie de
dispositivos PAL, que se especifican en la Tabla 7.1.
Los modos simple y complejo se asocian nicamente con
salidas combinacionales y se explican a continuacin.
ITTG Diseo D

59

Modo simple. En este modo, las OLMC ( output logic


macrocells) se configuran como salidas combinacionales
dedicadas o como entradas dedicadas (como mucho seis). Las
tres posibles configuraciones en este modo son.
Salida combinacional.
Salida combinacional con realimentacin a la matriz AND.
Entrada dedicada.

ITTG Diseo D

60

ITTG Diseo D

61

Cada una de estas configuraciones se ilustra en la Figura


7.29.
Obsrvese que la lnea de control triestado est a nivel
ALTO (V) activando el buffer para las configuraciones de
salida combinacional, y a nivel BAJO (a masa) dejando en
abierto (alta impedancia) al buffer para la configuracin de
entrada dedicada.
La realimentacin permite conectar la salida combinacional
a la matriz AND. La entrada XOR de la puerta OR-exclusiva
determina el estado activo de salida. Cuando XOR = 0, la
salida es activa a nivel BAJO, ya que la entrada procedente
de la puerta OR no resulta invertida. Cuando XOR = 1, la
salida es activa a nivel ALTO, ya que la entrada procedente
de la puerta OR resulta invertida.
ITTG Diseo D

62

ITTG Diseo D

63

Las ocho entradas de la puerta OR proceden de la matriz AND,


e indican que la OLMC ( output logic macrocells) puede
generar hasta ocho trminos producto de una suma de
productos.
Modo complejo. En este modo, la OLMC se puede configurar
de dos formas:
Salida combinacional.
Entrada/salida combinacional.
Estas dos configuraciones se ilustran en la Figura 7.30. En este
modo, las entradas/salidas (E/S) estn limitadas a seis.
Obsrvese que slo existen siete entradas a la puerta OR
procedentes de la matriz AND, ya que la octava entrada se
utiliza para el control del buffer de tres estados. Esto significa
que una OLMC puede producir hasta siete trminos producto de
ITTG Diseo D
64
una suma de productos.

ITTG Diseo D

65

CPLD y FPGA
Adems de los dispositivos PLD tan sencillos como la GAL, hay
disponibles otros dispositivos lgicos programables mucho ms
sofisticados. Los dos tipos bsicos son los dispositivos PLD
complejos (CPLD) y las FPGA (Field Programmable gate array
matrices de puertas programables por campo).
Los CPLD son esencialmente versiones ms grandes de los
sencillos PLD, con una matriz de interconexin interna
centralizada que se utiliza para conectar las macroceldas del
dispositivo. Al igual que los sencillos PLD que hemos visto, la
matriz de interconexin se programa para conectar de forma
selectiva seales de entrada a un nivel de puertas AND
programables conectadas a su vez a un nivel de puertas OR fijo.
ITTG Diseo D

66

Las salidas de las puertas OR se conectan a su vez a macroceldas


configurables, que permiten al usuario especificar la polaridad de
salida, seleccionar operaciones combinacionales o de registro,
proporcionar la funcionalidad triestado y, opcionalmente,
realimentar la seal a la matriz de interconexin. Sin embargo,
independientemente de la expresin lgica implementada, el camino
a travs del CPLD es esencialmente el mismo para cada seal:
desde un pin de entrada a travs de un buffer o inversor hasta la
matriz de interconexin, y de sta a la lgica AND-OR y de aqu a
la macrocelda de salida. Adems, las seales de entrada, salida y de
reloj se encuentran normalmente en pines especficos del CPLD,
por lo que dichos pines son funcionalmente idnticos entre s. Esta
arquitectura limita la flexibilidad del diseo en cierto grado, pero
tambin simplifica el anlisis de diseo al ofrecer una
temporizacin de seales desde la entrada hasta la salida muy
predecible.
ITTG Diseo D

67

Por otro lado, las FPGA constan de una matriz de gran tamao de
celdas lgicas simples (ms simples que las macroceldas de los
CPLD) con canales de rutado horizontal y vertical para
interconexin. Las FPGA no tienen una estructura de
implementacin predefinida, como los CPLD, y a travs de la cual
debe pasar cada seal del CPLD. En lugar de ello, las FPGA
permiten que los canales de rutado conecten entre s las celdas
lgicas de mltiples maneras distintas, para implementar las
funciones lgicas deseadas.
De hecho, y dependiendo de las restricciones de diseo y de los
recursos disponibles, se pueden implementar dos funciones lgicas
idnticas de maneras completamente distintas dentro del mismo
dispositivo. Este tipo de diseo hace a las FPGA extremadamente
flexibles y permite a los diseadores implementar circuitos lgicos
combinatorios y secuenciales muy complejos. Algunas FPGA de gran
tamao pueden incluso ser programadas para operar como
ITTG Diseo D
68
microprocesadores.

PROGRAMACIN DE LOS DISPOSITIVOS LGICOS


PROGRAMABLES (PLD)
Como se ha visto, las PAL se programan dejando intactos los
fusibles especificados y fundiendo los restantes. Las GAL se
programan deforma similar, pero son las celdas E2 CMOS las que
se activan o desactivan.
Las funciones lgicas que se implementan determinan las celdas
que hay que activar.
Para programar una o una GAL se requieren los siguientes
elementos:
Una computadora, un software de programacin y un
programador de PLD.
ITTG Diseo D

69

Software
Los paquetes de software para la programacin de dispositivos
PLD se denominan compiladores lgicos. Existen diversos
paquetes de software disponibles, entre los que se incluyen los
siguientes (existen otros adems de estos): ABEL, CUPL,
OrCADPLD y LOG/iC.
Todos estos paquetes de software realizan funciones similares:
Procesan y sintetizan el diseo lgico introducido mediante un
mtodo especfico, convierten los datos introducidos en un archivo
intermedio y luego generan un archivo de salida que se denomina
archivo JEDEC (conocido tambin como mapa de celdas o mapa
de fusibles) para el programador del dispositivo. Tambin, con este
software, se puede simular y depurar de forma completa un diseo
lgico antes de proceder a fabricar el hardware.
ITTG Diseo D

70

ITTG Diseo D

71

Una caracterstica fundamental del software para PLD es el mtodo


para introducir el diseo lgico. Existen tres mtodos bsicos de
introducir el diseo, que son: ecuacin booleana, tabla de verdad y
mquina de estados. Existen otros mtodos de tipo esquemtico que
son los diagramas de tiempos y la descripcin hardware. Todos los
paquetes de software disponibles incluyen varios o todos los
posibles mtodos de introduccin del diseo.
El programador: El dispositivo PLD se inserta en el zcalo del
programador, que usualmente es un zcalo ZIF (zero insertion force,
fuerza de insercin nula). El programador contiene un programa
controlador de software que lee el archivo JEDEC generado por el
compilador lgico y lo convierte en instrucciones que aplican las
tensiones requeridas en pines especficos del PLD, para alterar as
las celdas especificadas de la matriz de la forma que indique el mapa
de fusibles.
ITTG Diseo D

72

Todos los paquetes de software y programadores de PLD,


independientemente de los fabricantes, son conformes a un
estndar para la generacin del archivo JEDEC establecido por el
Joint Electronic Device Engineering Council (JEDEC).
Introduccin del diseo.
El diseo lgico se introduce en la computadora a travs de un
archivo fuente o de entrada. Normalmente, se introduce alguna
informacin preliminar, tal como el nombre del usuario, la
empresa, la fecha y la descripcin del diseo. Luego, se introduce
el tipo de dispositivo PLD, la numeracin de los pines de entrada
y salida, y las variables. Por ltimo, se introduce la funcin o
funciones lgicas en forma de ecuacin booleana, tabla de verdad,
esquema o cualquier otro formato. Cualquier error de sintaxis, u
otro tipo de error cometido durante la introduccin de datos en el
archivo de entrada, ser indicado y deber corregirse.
ITTG Diseo D

73

Ejecucin del software. El compilador de software procesa y


traduce el archivo de entrada y minimiza la lgica. Entonces, el
diseo lgico se simula utilizando un conjunto de entradas
hipotticas conocidas como vectores de prueba. Este proceso
ejercita, de forma efectiva, el diseo por software para
determinar si trabaja correctamente, antes de programar
realmente el PLD. Si se descubre cualquier defecto de diseo
durante la simulacin software, el diseo debe depurarse y
modificarse para corregir dicho defecto.
Una vez terminado el diseo, el compilador genera un archivo de
documentacin, que incluye las ecuaciones lgicas finales, el
archivo JEDEC y, si se desea, un diagrama del patillaje del PLD.
El archivo de documentacin, esencialmente, facilita una copia
en papel del diseo final.
ITTG Diseo D

74

Programacin del dispositivo.


Cuando se ha terminado el diseo, el compilador crea un mapa de
fusibles (archivo JEDEC) que se carga en el programador. Este
archivo dice al programador qu fusibles hay que fundir y qu
fusibles quedan intactos o, en el caso de una GAL, qu celdas E2
CMOS se activan y cules se desactivan. Luego, el programador
utiliza su propio programa controlador de software para modelar
el dispositivo PLD de acuerdo con el mapa de fusibles.
SOFTWARE DE LOS DISPOSITIVOS PLD
ABEL y CUPL son dos de los lenguajes de descripcin hardware
(HDL, Hardware Description Language) ms comnmente
utilizados. Puesto que ambos lenguajes son similares y producen
el mismo resultado en trminos de programacin de un PLD, a
menudo, su utilizacin es una cuestin de preferencias y
disponibilidad.
ITTG Diseo D

75

ABEL
Es el acrnimo de Advanced Boolean Expression Language,
permite implementar diseos lgicos en dispositivos lgicos
programables. ABEL se puede utilizar para programar cualquier
tipo de PLD y, por tanto, es un lenguaje independiente del
dispositivo. El lenguaje ABEL se ejecuta en una computadora
conectada a un programador de dispositivos, independiente del
lenguaje, en el que se inserta el PLD.
Introduccin del diseo lgico.
ABEL proporciona tres diferentes formatos para describir e
introducir un diseo lgico desde el teclado de una computadora:
ecuaciones, tablas de verdad y diagramas de estado. Las
ecuaciones y las tablas de verdad se usan en los diseos lgicos
combinacionales.
ITTG Diseo D

76

Simulacin del diseo. Una vez que se ha introducido el diseo


lgico, se puede simular su funcionamiento utilizando vectores de
prueba, para asegurarse de que no existen errores en el diseo.
Bsicamente, una seccin de vectores de prueba enumera todos los
posibles valores de entrada y los correspondientes valores de
salida. El software, esencialmente, ejercita el diseo lgico para
asegurarse de que trabaja como se esperaba, tomando todas las
posibles combinaciones de entrada y comprobando los resultados
de salida.
Sntesis lgica. El proceso software que convierte una descripcin
del circuito en formato de ecuaciones, tablas de verdad o diagrama
de estados, en el archivo JEDEC estndar requerido para
implementar realmente el diseo en un PLD se denomina sntesis
lgica. Usualmente, la sntesis lgica incluye la optimizacin y
minimizacin del diseo.
ITTG Diseo D

77

Operaciones booleanas
Como muestra la Tabla 7.2, por orden de prioridad, las
operaciones NOT (inversin), AND, OR y OR-exclusiva utilizan
smbolos especiales en el lenguaje ABEL. Como en el lgebra de
Boole, se pueden utilizar parntesis para alterar el orden de
prioridad.

ITTG Diseo D

78

ejemplos de las operaciones lgicas en notacin estndar booleana y


en lenguaje ABEL:

Ecuaciones
Uno de los mtodos de entrada de ABEL son las ecuaciones
lgicas. El signo igual (=) es el mismo que en las ecuaciones
estndar y, cualquier letra o combinacin de letras y nmeros,
puede emplearse como identificadores de variables. ABEL
diferencia entre maysculas y minsculas. La letra mayscula A y
la minscula a son dos variables diferentes.Todas las ecuaciones en
ABEL deben terminarse con un punto y coma (;).
ITTG Diseo D

79

Por ejemplo, la suma de productos


se escribe en lenguaje ABEL del siguiente modo:

ITTG Diseo D

80

Tablas de verdad
Otro mtodo de entrada de ABEL utiliza las tablas de verdad.
Una funcin lgica especfica puede pasarse a ecuacin, como
hemos visto, o a tabla de verdad. En cuanto al resultado, ambos
mtodos son equivalentes. Usualmente, las tablas de verdad
son ms adecuadas que las ecuaciones para describir ciertos
tipos de circuitos, tales como decodificadores.
La tabla de verdad en ABEL se define mediante una cabecera y
las entradas de la tabla.
El formato de la cabecera se especifica como se indica en la
siguiente expresin:
TRUTH_TABLE ([A, B, C, D] > [Xl, X2])
ITTG Diseo D

81

donde A, B, C y D son las entradas y Xl y X2 son las salidas; el


smbolo > es un operador que indica las entradas que
producen las salidas combinacionales. Para ilustrar cmo se
elabora una tabla de verdad en lenguaje ABEL, vamos a dar un
sencillo ejemplo de una puerta OR-exclusiva con entradas A y B
y salida X:

ITTG Diseo D

82

EJ EMPLO 7.9
Desarrollar una tabla de verdad ABEL para un decodificador
BCD-7 segmentos.
Utilizar la tabla de verdad mostrada en la Tabla 4.10. El
diagrama de bloques y el formato de 7 segmentos se muestran
en la Figura 7.34. Las salidas son activas a nivel ALTO.
Solucin. La entrada ms significativa es D y la entrada menos
significativa es A.
Las salidas de los segmentos son de a hasta g. Una salida a 1
significa que el segmento est encendido y un O significa que
el segmento est apagado.

ITTG Diseo D

83

La tabla de verdad en lenguaje ABEL se escribe:

ITTG Diseo D

84

ITTG Diseo D

85

ITTG Diseo D

86

ITTG Diseo D

87

Вам также может понравиться