Você está na página 1de 22

UNIDAD

LGICA PROGRAMABLE

3.1 Introduccin a los dispositivos lgicos programables (PLD).


En las aplicaciones de los sistemas digitales el diseador puede hacer
uso de una gran cantidad de CIs comerciales con numerosas funciones
1gicas y arreglos de circuitos sobre el mismo CI. La tabla 3-1 muestra la
clasificacin de los CIs segn el nmero de compuertas que integran.

Nivel de integracin
SSI (Short Scale of Integration)

Nmero de
compuertas
1-99

MSI (Medium Scale of Integration)

100-999

LSI (Large Scale of Integration)

1000-10K

VLSI (Very Large Scale of Integration)

>10K

Tabla 3-1. Densidad de integracin.


Los CIs son construidos en grandes cantidades por diversos fabricantes
reduciendo el costo, los diseadores han interconectado CIs estndares
para construir una variedad casi sin fin de circuitos y sistemas diferentes.
Sin embargo, para diseos complejos pueden requerirse cientos o miles
de estos CIs. En la construccin del circuito hay que interconectar esta gran
cantidad de CIs en una tarjeta de circuito impreso. Al utilizar algunos CIs
con funciones lgicas ya integradas se reduce el tamao y la cantidad de
conexiones a realizar en la tarjeta de circuito impreso.
La reduccin de los CIs empleados en un diseo puede tener varias
ventajas como tarjetas de circuito impreso y gabinetes ms pequeos;
menores requerimentos de potencia (fuentes de alimentacin ms
pequeas); procesos de ensamble ms rpidos y menos costosos; mayor
confiabilidad, dado que se tiene menos CIs, as como menos conexiones de
37

circuito donde puedan ocurrir fallas y, por ltimo, procedimientos de


deteccin de fallas ms sencillos.
En muchas situaciones de diseo no existe comercialmente un CI que
implemente las funciones requeridas, en estas situaciones los diseadores
interconectan varios CIs LSI o MSI para obtener las funciones 1gicas
necesarias. Una alternativa es utilizar cierto tipo de CIs llamados
Dispositivos Lgicos Programables (PLDs).
Un PLD es un CI formado por cierto nmero de puertas lgicas y/o
mdulos bsicos y/o biestables cuyas conexiones pueden ser
personalizadas o programadas, bien sea por el fabricante o por el usuario.
Las ventajas de utilizar PLDs en los diseos son:
a) Circuitos de tamao pequeo.
b) Bajo costo.
c) Consumos medios, aunque hay familias especializadas en bajo
consumo.
d) Velocidad intermedia
e) Fiabilidad alta
f) Tiempo de desarrollo muy bajo, diseo a travs de software.
g) Diseos flexibles y confiables.
La clasificacin de los PLD se realiza con base en la tecnologa de
fabricacin empleada y la arquitectura. Debe tenerse en cuenta en la
clasificacin de los dispositivos programables la complejidad aadida de
cada fabricante patenta.
La clasificacin de los PLDs es:
a) Bsicos.
PAL, PLA y PROM programable por fusible slo contienen
compuertas por lo que se pueden implementar sistemas
combinacionales.
PAL con biestables o PLS (Programmable Logic Sequence).
Contiene biestables, por lo que se pueden implementar
sistemas secuenciales y combinacionales.
b) Avanzados.
EPLD o dispositivos lgicos
programbles y borrables
(Erasable Programmable Logic Device). PAL y GAL utilizan

38

las tecnologas para la fabricacin de interconexiones


programables (EPROM, EEPROM y FLASH.)
c) Complejos.
PLD Complejos o CPLDs. Estas estructuras extienden el
concepto de PLD a un nivel de integracin superior; con lo
que se disminuye el tamao del diseo, el consumo y el
precio. Cada CPLD contiene bloques lgicos, cada uno de
ellos similar a una estructura PAL o GAL. El FPGA (Field
Programmable Gate Array) consiste, bsicamente, en una
distribucin matricial de bloques lgicos comunicados
entre s y con celdas de entrada/salida por medio de unos
canales o rutas. La tecnologa de programacin es de
antifusible y RAM esttica (SRAM)
La arquitectura de los PLDs bsicos se ilustra en la figura 3-1. Esta
muestra un arreglo de compuertas AND y otro de compuertas OR que se
pueden conectar entre s para generar salidas, cada una de las cuales
puede ser cualquier funcin 1gica de las dos variables de entrada.

Figura 3-1Arquitectura de los PLDs bsicos.

39

3.2 Arquitectura de la PROM.


Una PROM (Programmable Read Only Memory) se ilustra en la figura 3-2.
La arquitectura de la PROM se compone internamente de dos grupos de
compuertas; un grupo de compuertas AND (en realidad incluye tambin un
conjunto de inversores) y un grupo de compuertas OR. Estn disponibles
todas las combinaciones de las seales de entrada en su estado natural o
complementado permitiendo que se puedan implementar cualquier circuito
combinacional, su uso ms comn es el almacenamiento de datos.

Figura 3-2. Arquitectura de la PROM


40

El grupo de compuertas AND estn programadas de antemano y


conectadas de forma inalterable, mientras que el grupo de puertas OR son
programables por el usuario. Una PROM puede implementar funciones
combinacionales directamente como suma de minterms ya que el grupo de
puertas AND est prefijado. Cuando una funcin combinacional slo utiliza
unos pocos minterms o admite una fuerte simplificacin utilizar una PROM
puede ser un despilfarro.
3.3 Arquitectura de la PAL.
En pocas aplicaciones se requiere todas las combinaciones de las
entradas, por lo que se ha desarrollado la PAL (Programmable Array Logic).
En la Lgica de Arreglo Programable o PAL la matriz AND es programable y
la OR es fija. Esto significa que se puede programar cualquier compuerta
AND para generar cualquier producto deseado de las variables de entrada
con sus respectivos complementos. La figura 3-3 ilustra la arquitectura de
una PAL de cuatro entradas y tres salidas.

Figura 3-3. Arquitectura de la PAL


41

En la figura 3-3 se observa que cada compuerta OR alambrada solo con


tres salidas de las compuertas AND. Esto limita cada funcin de salida a
tres trminos del tipo producto. Si se requiere una compuerta que
contenga ms de tres trminos de esta clase no es posible implementarla
en este PLD.
3.4 Arquitectura de la PLA.
El primer PLD fue el Programmable Logic Arrays (PLAs) o Arreglo Lgico
Programable. Una PLA es una combinacin de dos arreglos AND y OR
programables para realizar cualquier suma de productos de una expression
lgica, limitada solamente por el tamao del dispositivo. La PLA
probablemente tiene la mayor flexibilidad frente a otros dispositivos con
respecto a la lgica funcional. Las limitaciones son el numero de entradas,
el nmero de salidas y el nmero de productos de terminos.

Figura 3-4. Arquitectura de la PLA


42

La figura 3-4 muestra un pequeo PLA de cuatro entradas, seis


compuertas AND y tres compuertas OR en las salidas. Cada entrada se
conecta a un buffer que produce una seal invertida y no invertida de las
entradas al arreglo, las posibles conexiones se representa por una X, la
programacin del dispositivo se realize al establecer solo las conecciones
necesarias. Asi, cada compuerta AND puede conectarse al subconjunto de
seales de los buffers y las compuertas OR pueden conectarse al
subconjunto de seales de las compuertas AND.
3.5 Aplicaciones.
Un PLD es finalmente programado por un patrn especfico de
conexiones. En la programacin de los PLDs se traduce el diseo de
entrada a un archivo llamado mapa de fusibles mediante un lenguaje de
programacin para PLD en donde los diseadores especifican las funciones
lgicas. Este archivo se traduce a un formato de salida adecuado para que
el circuito programador programe el PLD. Los pasos para programar los
PLD se pueden identificar en el diagrama de flujo de la figura 3-5.

Figura 3-5. Pasos para programar un PLD

43

Un PLD se programa a travs de un lenguaje de programacin llamado


compilador. La funcin del compilador es traducir las funciones lgicas y
los diagramas de estado escritos en un archivo de texto a un patrn de
fusibles. Aunque la mayora de PLDs se programan fsicamente con las
expresiones de suma de productos, lenguajes como ABEL (Advanced
Boolean Expression Language) permiten que las ecuaciones puedan
escribirse en cualquier formato. El compilador manipula algebraicamente y
minimiza las ecuaciones y determina si es posible implementarlas en el
PLD. Algunos compiladores para PLDs secunciales permiten definir con
lenguajes de alto nivel (Verilog or VHDL) los diagramas de estado y
automticamente seleccionan el PLD que desarrolle los estados y
ecuaciones lgicas.
Tipos de lenguajes de programacin para PLDs:
a) VHDL es el acrnimo que representa la combinacin de VHSIC y HDL,
donde VHSIC es el acrnimo de Very High Speed Integrated Circuit y
HDL es a su vez el acrnimo de Hardware Description Language. Es
un lenguaje usado por ingenieros definido por el IEEE (Institute of
Electrical and Electronics Engineers) (ANSI/IEEE 1076-1993) que se
usa para disear circuitos digitales. Otros mtodos para disear
circuitos son la captura de esquemas (con herramientas CAD) y los
diagramas de bloques, pero stos no son prcticos en diseos
complejos. Otros lenguajes para el mismo propsito son Verilog y
ABEL. Aunque puede ser usado de forma general para describir
cualquier circuito se usa principalmente para programar PLD
(Programable Logic Device - Dispositivo Lgico Programable), FPGA
(Field Programmable Gate Array), ASIC y similares.
b) ABEL es acrnimo de Advanced Boolean Expression Language. Es un
lenguaje de descripcin de hardware y un conjunto de herramientas
de diseo para programar dispositivos lgicos programables (PLDs).
c) CUPL es el acrnimo de Compiler Universal Programmable Logia. Es
un lenguaje que pueden programar gran variedad de dispositivos
PLDs.
d) Algunos otros son el PALASM y el OPAL.

44

Ejemplo. Dibuje la arquitectura y el mapa de fusibles para que un PLA,


PAL y una PROM funcione como un medio sumador de dos bits.

Solucin. La tabla de verdad que describe el funcionamiento del medio


sumador es:
B1
0
0
1
1

B0
0
1
0
1

Acarreo
0
0
0
1

Suma
0
1
1
0

Las funciones simplificadas que se obtiene de la tabla de verdad son:

Suma = B0 B1 + B0B1
Acarreo = B 0 B1
Las funciones programadas en el PLA sern de la siguiente forma:

45

Las funciones programadas en el PAL sern de la siguiente forma:

Las funciones programadas en la PROM sern de la siguiente forma:

46

Ejemplo. Dibuje la arquitectura y el mapa de fusibles para que un PLA


active la salida a estado alto cuando se detecte un numero de cuatro bits
mayor que (0110)2 = (6)10.
Solucin. La tabla de verdad que describe el funcionamiento del detector
de numeros es:
B3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

B2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

B1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

B0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

S
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1

La funcin simplificada que se obtiene de la tabla de verdad es:

S = B3 + B 2 B1B0

47

Ejemplo. Dibuje la arquitectura y el mapa de fusibles para que un PAL


funcione como un detector de paridad par de tres bits activando la salida a
estado alto cuando se detecte un error.

Solucin. El detector verifica que en el conjunto del numero de tres bits y


el bit de paridad, la cantidad de unos existentes sea par para que la seal
de error no se active. La tabla de verdad que describe el funcionamiento
del detector de paridad es:

48

bitP
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

B2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

B1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

B0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

E
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0

La funcin simplificada que se obtiene de la tabla de verdad es:

49

Aplicaciones de circuitos combinacionales.


Los PLDs combinacionales fcilmente pueden duplicar las funciones de
los dispositivos estndar MSI, tales como descodificadores, codificadores,
multiplexores, etctera.
50

Aplicaciones de circuitos secunciales.


Los PLDs secuenciales son aquellos que tienen flip-flops provistos en las
salidas de todas las compuertas OR. Estos dispositivos pueden
programarse para desempear una variedad de funciones utilesen circuitos
secuenciales. Un tipo de PLD secuencial, originalmente desarrolladom por
Lattice Semiconductor es el Generic Array Logic (GAL) o Lgica de matriz
genrica. En suma la GAL es bsicamente una estructura CMOS PAL
programable y borrable elctricamente.
Las caractersticas de la GAL son:
a) Ofrece una tecnologa que permite velocidades de trabajo
comparables a las PAL bipolares.
b) Consumo mucho ms reducido que las PAL bipolares de complejidad
equivalente.
c) Mayor flexibilidad de configuracin de entradas/salidas que las PAL
bipolares. La flexibilidad de la GAL radica en su macrocelda de lgica
de salida programable.
La figura 3-6 muestra los modos de operacin de la macrocelda (OLMC)
y la figura 3-7 muestra la arquitectura de la GAL.

a)

51

b)

c)
Figura 3-6. a) Arquitectura de la macrocelda. b) Modo
combinacional de la macrocelda. c) Modo secuencial de la
macrocelda.

52

Figura 3-7. Arquitectura de la GAL.

53

Ejemplo. Realice un programa en OPAL para que una GAL 16V8 sume
dos nmeros de un bit.

Solucin. Las ecuaciones que se utilizan para el circuito sumador son:

s = a b + ab
x = ab
S es la salida de la suma y x es el acarreo. El listado del programa se
muestra a continuacin.
{Solucin.}
begin header
Programa de suma
end header
begin definition
device gal16v8;
inputs a,b;
outputs (com) s, x;
end definition
begin equation
s=/a*b+a*/b;
x=a*b;
end equation
begin vector
a,b;
00
01
10
54

11
end vector
Ejemplo. Realice un programa en OPAL para que una GAL 22V10
funcione como un decodificador binario a siete segmentos.

Solucin. En el listado del programa como se realiza la descripcin del


circuito con la tabla de verdad ya no es necesario obtener las ecuaciones
lgicas.
BEGIN HEADER
Circuito decodificador de display
END HEADER
BEGIN DEFINITION
DEVICE GAL22V10;
INPUTS b3,b2,b1,b0;
OUTPUTS (COM) a,b,c,d,e,f,g;
END DEFINITION
BEGIN TRUTH_TABLE
TTIN b3,b2,b1,b0;
TTOUT a,b,c,d,e,f,g;
0000 1111110 {0}
0001 0110000 {1}
0010 1101101 {2}
0011 1111001 {3}
0100 0110011 {4}
0101 1011011 {5}
0110 1011111 {6}
55

0111 1110000 {7}


1000 1111111 {8}
1001 1111011 {9}
1010 1110111 {10}
1011 0011111 {11}
1100 1001110 {12}
1101 0111101 {13}
1110 1001111 {14}
1111 1000111 {15}
END TRUTH_TABLE
BEGIN VECTOR
b3,b2,b1,b0;
0000
0001
0100
0110
END VECTOR

Ejemplo. Realice un programa en OPAL para que un GAL 22V10 muestre


en un display de siete segmentos la secuencia de nmeros del 0 al 7.

Solucin. En el listado del programa se describe el diagrama de estado


para implementar el contador.
begin header
Contador de tres bits con decodificador de salida.
end header
56

begin definition
device g22v10;
inputs
reloj, reset;
outputs (com) G, F, E, D, C, B, A;
statebits
sb2, sb1, sb0;
state_names cero, uno, dos, tres;
state_names cuatro, cinco, seis, siete;
set
count = [sb2,sb1,sb0];
end definition
begin equation
count.c = reloj;
end equation
begin state_diagram count (sb2,sb1,sb0)
state all:
if reset then cero;
state cero:
G=0; F=1; E=1; D=1; C=1; B=1; A=1;
if reset then cero else uno;
state uno:
G=0; F=0; E=0; D=0; C=1; B=1; A=0;
if reset then cero else dos;
state dos:
G=1; F=0; E=1; D=1; C=0; B=1; A=1;
if reset then cero else tres;
state tres:
G=1; F=0; E=0; D=1; C=1; B=1; A=1;
if reset then cero else cuatro;
state cuatro:
G=1; F=1; E=0; D=0; C=1; B=1; A=0;
if reset then cero else cinco;
state cinco:
G=1; F=1; E=0; D=1; C=1; B=0; A=1;
if reset then cero else seis;
state seis:
G=1; F=1; E=1; D=1; C=1; B=0; A=1;
if reset then cero else siete;
state siete:
G=0; F=0; E=0; D=0; C=1; B=1; A=1;
if reset then cero else cero;
57

end state_diagram
begin vector
reloj, count(hex);
CX
CX
CX
CX
CX
CX
CX
CX
CX
end vector

58

Você também pode gostar