Escolar Documentos
Profissional Documentos
Cultura Documentos
LGICA PROGRAMABLE
Nivel de integracin
SSI (Short Scale of Integration)
Nmero de
compuertas
1-99
100-999
1000-10K
>10K
38
39
43
44
B0
0
1
0
1
Acarreo
0
0
0
1
Suma
0
1
1
0
Suma = B0 B1 + B0B1
Acarreo = B 0 B1
Las funciones programadas en el PLA sern de la siguiente forma:
45
46
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
S = B3 + B 2 B1B0
47
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
49
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
53
Ejemplo. Realice un programa en OPAL para que una GAL 16V8 sume
dos nmeros de un bit.
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.
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