CIRCUITOS LÓGICOS
1. ALGEBRA DE BOOLE 1.1 Introducción Tanto la teoría de conjuntos como la lógica de enunciados tienen propiedades similares. Tales propiedades se utilizan para definir una estructura matemática denominada álgebra de Boole, en honor al matemático George Boole (1813-1864). 1.2 Definición de álgebra de Boole Sea B un conjunto en el cual se definen dos operaciones binarias, + y *, y una operación unitaria denotada ; sean 0 y 1 dos elementos diferentes de B. Entonces la sextupla: 〈B, +, *, , 0, 1〉 se denomina álgebra de Boole si se cumplen los siguientes axiomas para cualesquiera elementos a, b, c del conjunto B: [B1]
Conmutatividad: (1a) a + b = b + a
(1b)
a*b=b*a
[B2]
Distributividad: (2a) a + (b * c) = (a + b) * (a + c)
(2b)
a * (b + c) = (a * b) + (a * c)
[B3]
Identidad: (3a) a + 0 = a
(3b)
a*1=a
[B4]
Complemento: (4a) a + a = 1
(4b)
a* a =0
1.3 Terminología y convenciones • Las operaciones + y * se denominan suma y producto, respectivamente. • La operación a se denomina complemento de a. • El elemento 0 se denomina elemento cero (neutro respecto de la suma).
1
• El elemento 1 se denomina elemento unidad (neutro respecto del producto). • Por convención, omitimos el símbolo *, usándose en su lugar la yuxtaposición; de este modo, (2a) y (2b) se escriben: (2a) a + bc = (a + b) (a + c)
(2b) a (b + c) = ab + ac
• Por convención, establecemos que + es más fuerte que * y * es más fuerte que ejemplo:
a + b * c significa a + (b * c) y no a* b significa a * ( b ) y no
; por
(a + b) * c ( a * b)
1.4 Dualidad En un álgebra de Boole B, el dual de cualquier enunciado es el enunciado obtenido de intercambiar las operaciones + y *, e intercambiar los elementos neutros 0 y 1 en el enunciado original. Por ejemplo: el dual de
(1 + a) * (b + 0) = b
es
(0 * a) + (b * 1) = b
Con esta definición de dualidad puede observarse que, en la definición de álgebra de Boole, los axiomas del grupo (1) son duales de los axiomas del grupo (2) y viceversa. En otras palabras, el dual de cualquier axioma de B también es un axioma. En consecuencia, se cumple el siguiente teorema: Teorema 1.1 (Principio de dualidad): En un álgebra de Boole, el dual de cualquier teorema es también un teorema. Esto significa que, si cualquier teorema es una consecuencia de los axiomas de un álgebra de Boole, entonces el dual también es una consecuencia de estos axiomas ya que se puede probar usando el dual en cada paso de la demostración original. 1.5 Teoremas básicos Utilizando los axiomas de la definición de un álgebra de Boole, pueden demostrarse los siguientes teoremas: Teorema 1.2: Sean a, b, c elementos cualesquiera de un álgebra de Boole B, se cumple: (i) (ii) (iii)
Idempotencia: (5a) a + a = a
(5b)
a*a=a
Acotamiento: (6a) a + 1 = 1
(6b)
a*0=0
Absorción: (7a) a + (a * b) = a
(7b)
a * ( a + b) = a
2
(iv)
Asociatividad: (8a) (a + b) + c = a + (b + c)
(8b)
(a * b) * c = a * (b * c)
Teorema 1.3: Sea a un elemento cualquiera de un álgebra de Boole B, se cumple: (i)
Unicidad del complemento: Si a + x = 1 y a * x = 0, entonces x = a
(ii)
Involución: a =a
(iii)
(9a)
0 =1
(9b)
1 =0
Teorema 1.4: Leyes de De Morgan
(10a) a + b = a * b
(10b) a * b = a + b
Es importante insistir que el álgebra de Boole es la estructura algebraica de la lógica de enunciados. En efecto, si se reemplazan las variables a, b, c, … por variables proposicionales, la suma y el producto por la disyunción y la conjunción respectivamente, el complemento por la negación, la igualdad por el bicondicional, y 1 y 0 por V y F respectivamente, todos los axiomas y teoremas del álgebra de Boole se transforman en axiomas o teoremas de la lógica de enunciados. Por ejemplo: (2b) a * (b + c) = (a * b) + (a * c)
p ∧ (q ∨ r) ↔ (p ∧ q) ∨ (p ∧ r)
(5a) a + a = a
p∨p↔p
(7a) a + (a * b) = a
p ∨ (p ∧ q) ↔ p
(10b) a * b = a + b
¬(p ∧ q) ↔ ¬p ∨ ¬q
1.6 Forma de suma de productos
Considérese un conjunto de variables a, b, c, d, … . • Una expresión booleana E en estas variables es o una variable o una expresión construida con estas variables y usando las operaciones booleanas +, * o . Por ejemplo, las siguientes son expresiones booleanas: (a + bc ) + (abc + ab)
(( abc + b) + ac)
• Un literal es una variable o una variable complementada. Por ejemplo, a, a , b, b son literales. • Un producto fundamental es un literal o un producto de dos o más literales en el cual no hay dos literales con la misma variable. Por ejemplo, ac , abc , a, b , bc , abc son
3
productos fundamentales. En cambio, abac y abcb no son productos fundamentales: el primero contiene a y a , mientras que el segundo contiene b dos veces. • Una expresión booleana E está en forma de suma de productos si E es un producto fundamental o una suma de dos o más productos fundamentales. Por ejemplo, la siguiente expresión está en suma de productos:
ac + abc + abc Pero la siguiente expresión no está en forma de suma de productos: ac + aba + abc ya que el segundo término no es un producto fundamental. 2. CIRCUITOS LÓGICOS 2.1 Introducción
Un circuito lógico es un dispositivo que tienen una o más entradas y exactamente una salida. En cada instante cada entrada tiene un valor, 0 o 1; estos datos son procesados por el circuito para dar un valor en su salida, 0 o 1. Los valores 0 y 1 pueden representar ciertas situaciones físicas como, por ejemplo, un voltaje nulo y no nulo en un conductor. V
1
1 0
1
0
1 0
0 t
Los circuitos lógicos se construyen a partir de ciertos circuitos elementales denominados compuertas lógicas, entre las cuales diferenciaremos: • Compuertas lógicas básicas: OR, AND, NOT. • Compuertas lógicas derivadas: NOR, NAND. 2.2 Compuerta OR
En una compuerta OR con entradas A y B, la salida Y resulta: Y = A+ B
donde la suma se define por la siguiente tabla:
4
A 0 0 1 1
B 0 1 0 1
Y=A+B 0 1 1 1
La compuerta OR se representa del siguiente modo: A Y B
La compuerta OR también puede tener más de dos entradas: A B
Y
C D
donde la salida Y=A+B+C+D puede obtenerse asociando los sumandos: Y = A + B + C + D = ( A + B ) + (C + D ) = (( A + B ) + C ) + D
2.3 Compuerta AND
En una compuerta AND con entradas A y B, la salida Y resulta: Y = A∗ B
donde el producto se define por la siguiente tabla:
A 0 0 1 1
B 0 1 0 1
Y=A*B 0 0 0 1
La compuerta AND se representa del siguiente modo: A Y B
5
La compuerta AND también puede tener más de dos entradas: A B C D
Y
donde la salida Y=A*B*C*D puede obtenerse asociando los factores: Y = A ∗ B ∗ C ∗ D = ( A ∗ B ) ∗ (C ∗ D ) = (( A ∗ B ) ∗ C ) ∗ D
2.4 Compuerta NOT
En una compuerta NOT con entrada A, la salida Y resulta: Y=A
donde el complemento se define por la siguiente tabla:
A 1 0
Y 0 1
La compuerta NOT se representa del siguiente modo:
A
Y
2.5 Compuertas NOR y NAND
Las compuertas NOR y NAND no son básicas. Una compuerta NOR equivale a una compuerta OR seguida de una compuerta NOT. Una compuerta NAND equivale a una compuerta AND seguida de una compuerta NOT.
NOR
NAND
6
Por lo tanto, cuando las entradas son A y B, las salidas de estas compuertas resultan: • NOR:
Y = A+ B
• NAND:
Y = A∗ B
2.6 Circuitos lógicos
Los circuitos lógicos se forman combinando compuertas lógicas. La salida de un circuito lógico se obtiene combinando las tablas correspondientes a sus compuertas componentes. Por ejemplo: Y = ( A + B) ∗ C A B
Y
C
Es fácil notar que las tablas correspondientes a las compuertas OR, AND y NOT son respectivamente idénticas a las tablas de verdad de la disyunción, la conjunción y la negación en la lógica de enunciados, donde sólo se ha cambiado V y F por 0 y 1. Por lo tanto, los circuitos lógicos, de los cuales tales compuertas son elementos, forman un álgebra de Boole al igual que los enunciados de la lógica de enunciados. Adoptaremos, entonces, aquí las mismas convenciones adoptadas en el caso del álgebra de Boole: • Omitimos el símbolo *, usándose en su lugar la yuxtaposición de variables. • Establecemos que + es más fuerte que * y * es más fuerte que . Puesto que tanto el álgebra de Boole es la estructura algebraica tanto de los circuitos como de la lógica de enunciados, la salida de un circuito lógico también puede expresarse en el lenguaje de la lógica de enunciados. Por ejemplo, la salida del circuito anterior resulta: ( A + B) ∗ C
(¬p ∨ q) ∧ ¬r
7
Ejemplo: Y = (( A + B + C ) + DE ) DE E
A B C
D E
Y
La salida de este circuito, expresada en el lenguaje de la lógica de enunciados, resulta: (( A + B + C ) + DE ) DE E
¬((¬(p ∨ q ∨ r) ∨ (s ∧ t)) ∧ s ∧ t ∧ ¬t)
3. SIMPLIFICACIÓN DE CIRCUITOS 3.1 Expresiones booleanas minimales
Considérese una expresión E en un álgebra de Boole B. Como E puede representar un circuito lógico, es posible que pretendamos obtener una expresión F que, siendo equivalente a la expresión original, sea en algún sentido mínima; de esta forma, lograríamos minimizar la cantidad de compuertas lógicas utilizadas para implementar la operación buscada, con la consiguiente economía de recursos. Aquí nos concentraremos en la forma minimal de las expresiones booleanas que están en forma de suma de productos. Si E es una expresión booleana en forma de suma de productos, EL denota el número de literales en E (contados con sus repeticiones) y ES denota el número de sumandos en E. Por ejemplo, si E es la siguiente expresión: abc + abd + abcd + abcd entonces EL=14 y ES=4. Sea ahora F una expresión booleana de suma de productos equivalente a E. Decimos que E es más simple que F si se cumple que: EL ≤ F L
y
ES ≤ FS
y por lo menos una de las relaciones es una desigualdad estricta.
8
Definición: Una expresión booleana E está en forma minimal de suma de productos si está en forma de suma de productos y no hay ninguna otra expresión equivalente en forma de suma de productos que sea más simple que E. 3.2 Mapas de Karnaugh
El método de los mapas de Karnaugh es un método gráfico para encontrar las formas minimales de sumas de productos para expresiones booleanas que involucran un máximo de seis variables. Aquí sólo trataremos los casos de dos, tres y cuatro variables. Dado un conjunto de variables {A1, A2, …, AN}, pueden con ellas formarse los productos fundamentales Pi que contienen todas las variables, o bien en su forma complementada o bien en su forma no complementada. De tales productos fundamentales, se dice que P1 y P2 son adyacentes si difieren exactamente en un literal, el cual tiene que ser una variable complementada en uno de los productos y no complementada en el otro. Por ejemplo, si el conjunto de variables es {A, B, C, D}: • Entre los productos fundamentales ABC , ABC , ACD no puede predicarse la relación de adyacencia, porque tales productos no contienen todas las variables. • Los pares de productos ABCD y ABC D , o ABCD y ABC D , o ABCD y ABCD no son adyacentes porque difieren en más de un literal. • Los pares de productos ABCD y ABCD , o ABCD y ABCD , o ABCD y ABCD son adyacentes, porque difieren exactamente en un literal, que es una variable complementada en uno de los productos y no complementada en el otro. En un mapa de Karnaugh, cada uno de los productos fundamentales Pi que contienen todas las variables es representado gráficamente por un cuadrado, y la relación de adyacencia entre tales productos es representada por la adyacencia geométrica. 3.3 Mapas de Karnaugh de dos variables
Sean las variables A y B. Con ellas pueden formarse cuatro productos fundamentales Pi que contienen todas las variables: AB
AB
AB
AB
Cada uno de estos productos será representado por un cuadrado en la siguiente gráfica, respetando la relación de adyacencia:
A
A
B B
9
En esta gráfica, todos los productos fundamentales se representan mediante grupos de 2n (20 o 21) cuadrados adyacentes: A
B
A
P = AB (20=1 cuadrado)
X
B
A
A
P = AB (20=1 cuadrado)
B B
X
A
B
A X
P = AB (20=1 cuadrado)
B
A
A
P = AB (20=1 cuadrado)
B X
B
A
B
X
B
X
A
P = A (21=2 cuadrados)
10
A
A
B
X
B
X
B
A
A
X
X
A
A
P = A (21=2 cuadrados)
P = B (21=2 cuadrados)
B
P = B (21=2 cuadrados)
B B
X
X
3.4 Mapas de Karnaugh de tres variables
Sean las variables A, B y C. Con ellas pueden formarse ocho productos fundamentales Pi que contienen todas las variables: ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC
Cada uno de estos productos será representado por un cuadrado en la siguiente gráfica, respetando la relación de adyacencia: AB
AB
AB
AB
C
C
11
Nótese que, en este caso, los cuadrados de los extremos izquierdo y derecho también se consideran adyacentes entre sí, como si la gráfica fuera un cilindro unido por ambos extremos. AB
AB
AB
AB
En esta gráfica, todos los productos fundamentales se representan mediante grupos de 2n (20 o 21 o 22) cuadrados adyacentes. AB C
AB
AB
AB
P = ABC (20=1 cuadrado)
X
C
AB
AB
AB
AB
X
C
P = ABC (20=1 cuadrado)
C
AB C
AB
AB X
AB
P = ABC (20=1 cuadrado)
C
12
AB
AB
AB
AB X
C
P = ABC (20=1 cuadrado)
C
AB
AB
AB
AB
P = ABC (20=1 cuadrado)
C
C
X
AB
AB
AB
AB
P = ABC (20=1 cuadrado)
C X
C
AB
AB
AB
AB
P = ABC (20=1 cuadrado)
C X
C
AB
AB
AB
AB
P = ABC (20=1 cuadrado)
C
C
X
13
AB C
X
C
X
AB
AB
AB
P = AB (21=2 cuadrados)
AB
C
X
C
X
AB
AB
AB
AB
AB
P = AB (21=2 cuadrados)
AB
AB
X
C
P = AB (21=2 cuadrados)
X
C
AB
AB
AB
AB
C
X
C
X
C
AB
AB
X
X
AB
P = AB (21=2 cuadrados)
AB
P = AC (21=2 cuadrados)
C
14
AB
AB
AB
AB
P = AC (21=2 cuadrados)
C
C
X
X
AB
AB
AB
X
X
AB
AB
C
AB
P = BC (21=2 cuadrados)
C
AB
AB
P = BC (21=2 cuadrados)
C
C
AB
X
X
AB
AB
AB
X
X
AB
AB
C
P = AC (21=2 cuadrados)
C
AB
AB
P = AC (21=2 cuadrados)
C
C
X
X
15
AB C
AB
AB
X
AB X
P = BC (21=2 cuadrados)
C
AB
AB
AB
AB
P = BC (21=2 cuadrados)
C
C
X
X
AB
AB
C
X
X
C
X
X
AB
AB
AB
C
X
X
C
X
X
AB
AB
AB
C
X
X
C
X
X
AB
AB
AB
P = A (22=4 cuadrados)
AB
P = B (22=4 cuadrados)
P = A (22=4 cuadrados)
16
AB C
C
C
AB
AB
AB
X
X
X
X
AB
AB
AB
AB
X
X
X
X
AB
AB
AB
AB
P = B (22=4 cuadrados)
P = C (22=4 cuadrados)
C
P = C (22=4 cuadrados)
C
C
X
X
X
X
3.5 Mapas de Karnaugh de cuatro variables
Sean las variables A, B, C y D. Con ellas pueden formarse dieciséis productos fundamentales Pi que contienen todas las variables: ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
ABC D
ABC D
ABC D
ABC D
ABC D
ABC D
ABC D
ABC D
Cada uno de estos productos será representado por un cuadrado en la siguiente gráfica, respetando la relación de adyacencia:
17
AB
AB
AB
AB
CD
CD CD CD
Análogamente al caso de tres variables, en este caso los cuadrados de los extremos izquierdo y derecho también se consideran adyacentes entre sí, y los cuadrados de los extremos superior e inferior también se consideran adyacentes entre sí. En esta gráfica, todos los productos fundamentales se representan mediante grupos de 2n (20 o 21 o 22 o 23) cuadrados adyacentes. Dada la cantidad de productos fundamentales, sólo presentaremos algunos casos.
AB
AB
AB
AB
CD
CD
X
P = ABC D (20=1 cuadrado)
CD CD
18
AB
AB
AB
AB
CD
P = ABCD (20=1 cuadrado)
CD CD CD
X
AB
AB
AB
AB
CD
CD CD
X
P = ABD (21=2 cuadrados)
X
CD
AB CD
CD
X
AB
AB
AB X
P = BCD (21=2 cuadrados)
CD CD
19
AB
AB
AB
AB
X
CD
P = ABD (21=2 cuadrados)
CD CD X
CD
AB
AB
AB
AB
CD
P = BC D (21=2 cuadrados)
CD CD
X
X
CD
AB
AB
X
X
X
X
AB
AB
CD
CD CD
P = AD (22=4 cuadrados)
CD
20
AB CD
AB
AB
X
X
AB
P = BD (22=4 cuadrados)
CD CD CD
AB
X
X
AB
AB
AB
CD
CD CD
X
X
X
X
P = BD (22=4 cuadrados)
CD
AB CD
X
AB
AB
AB X
P = BD (22=4 cuadrados)
CD CD CD
X
X
21
AB
AB
CD
X
X
CD
X
X
X
X
X
X
AB
AB
AB
AB
CD
X
X
X
X
CD
X
X
X
X
AB
AB
AB
AB
CD
X
X
CD
X
X
X
X
X
X
AB
CD CD
AB
P = B (23=8 cuadrados)
P = C (23=8 cuadrados)
CD CD
CD CD
P = A (23=8 cuadrados)
22
AB
AB
AB
AB
X
X
X
X
X
X
X
X
CD
CD CD
P = D (23=8 cuadrados)
CD
3.6 Minimización de circuitos mediante mapas de Karnaugh
Considérese una expresión booleana E en forma de suma de productos. A fin de encontrar la expresión booleana F equivalente a E en forma minimal de suma de productos, se siguen los siguientes pasos: • Se construye la gráfica de Karnaugh, de acuerdo con el número de variables de E. • En dicha gráfica se representan todos los productos fundamentales de E mediante cruces. • Se encierran todas las cruces mediante óvalos que contengan 2n cruces adyacentes. Cada óvalo debe encerrar la mayor cantidad posible de cruces. • Se escribe la expresión F como suma de los productos fundamentales representados por los óvalos resultantes. Veamos cómo funciona este método mediante ejemplos. Ejemplos Nº1: Sea la siguiente expresión E, encuentre su forma minimal de suma de productos F y dibuje el circuito correspondiente.
1.a) E = AB + AB + B A
B
X
B
X
A
F = A+ B X
23
A F B
1.b) E = ABC + ABC + AB + AB
C
C
AB
AB
X
X
AB
AB X
X
F = AC + B
X
A C
F
B
1.c) E = ABC + ABC + AB + ABC + AC
C
C
AB
AB
X
X X
AB
AB
F1 = AC + AB + AC
X
X
F1 = AC + BC + AC
En este caso, puede elegirse cualquiera de los dos óvalos punteados, obteniéndose F1 si se elige el óvalo vertical y F2 si se elige el óvalo horizontal. Dibujamos el circuito correspondiente a F1.
24
A C
F1
B
Ejemplos Nº2: Sea la siguiente expresión E, encuentre su forma minimal de suma de productos F.
2.a) E = ABCD + ABD + ABC D + ABCD + ABCD + ABCD AB
AB
CD
CD
CD CD
X
X
X
X
AB
AB
X
X
F = AD + ACD + ABD
X
25
2.b) E = ABC + ABD + AD + BD + ABD AB
CD
AB
AB
X
CD
CD
AB
X
X
X
X
X
X
X
X
F = D + ABC
CD
2.c) E = ABCD + ABD + BC D + ABD + AC D + ABC AB CD
AB
X
AB X
X
CD CD
AB
X X
X
F = ABD + C D + BD X
X X
CD
26