SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
1
Tema 3: Representación y minimización de
funciones lógicas
3.1. Teoremas y postulados del álgebra de Boole
Definiciones
El álgebra de Boole se utiliza para la resolución de problemas de tipo
lógico-resolutivo, desarrollado en 1947 por George Boole.
Actualmente es muy utilizada en electrónica digital (en computadoras), y
sobre todo en síntesis de circuitos digitales.
El álgebra de Boole son las matemáticas de los sistemas digitales.
Variable lógica:
Sea el conjunto B = { 0, 1 }. Con este conjunto podemos codificar la
información en un computador.
Decimos que una variable x es lógica si su dominio es el conjunto B, es
decir, si x solo puede tomar los valores 0 y 1.
Complemento:
El complemento de una variable es su inverso, y se indica con una barra
encima, ó con un apóstrofe.
Lo más utilizado siempre es la barra, pero en estos apuntes utilizamos
un apóstrofe por comodidad en la escritura.
Por ejemplo, el complemento de A es A'.
Si A = 0, entonces A' = 1
Si A = 1, entonces A' = 0
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
2
Postulados del algebra de Boole
Un conjunto B = { 0, 1 }, dotado de dos operaciones denotadas por + y ·,
es un álgebra de Boole si y sólo si se verifican los siguientes postulados o
leyes. En todos los casos consideramos ∀ a,b,c ∈ B.
1. Las operaciones + y · son conmutativas:
a + b = b + a (conmutativa de la suma)
a · b = b · a (conmutativa del producto)
2. Las operaciones + y · son asociativas:
a + (b + c) = (a + b) + c (asociativa de la suma)
a · (b · c) = (a · b) · c (asociativa del producto)
3. Cada operación es distributiva respecto a la otra:
+ respecto ·: a + (b · c) = (a + b) · (a + c)
· respecto +: a · (b + c) = (a · b) + (a · c) ∀ a,b,c ∈ B
Un álgebra de Boole es simétrica con respecto a las operaciones + y ·, y a
los elementos identidad 0 y 1. Tal característica es el principio de dualidad,
es decir, si tenemos un teorema, podemos obtener otro dual, cambiando las
operaciones.
Reglas
Un álgebra de Boole B tiene las siguientes propiedades o reglas:
1. Identidad (+): a + 0 = a ∀ a ∈ B
2. Elementos dominantes (+): a + 1 = 1 ∀ a ∈ B
3. Elementos dominantes (·): a · 0 = 0 ∀ a ∈ B
4. Identidad (·): a · 1 = a ∀ a ∈ B
5. Idempotencia (+): a + a = a
6. Complemento (+): a + a' = 1
7. Idempotencia (·): a · a = a
8. Complemento (·): a · a' = 0
9. Involutiva: a'' = a
10.Ley de absorción (dual): a + (a · b) = a y a · (a+b) = a
11.Ley del consenso (dual): a + (a' · b) = a + b y a · (a’+b) = a · b
Las 2 últimas reglas se pueden obtener a partir de las leyes y de las otras
reglas más sencillas.
a' = Complementario de a
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
3
3.2. Teoremas de De Morgan
De Morgan propuso dos teoremas que constituyen una parte muy
importante del álgebra de Boole.
Teoremas de De Morgan:
1. El complemento de una suma de variables es igual al producto de los
complementos de las variables:
(a + b)' = a' · b' ∀ a,b ∈ B
2. El complemento de un producto de variables es igual a la suma de los
complementos de las variables:
(a · b)' = a' + b' ∀ a,b ∈ B
Estos teoremas son válidos para cualquier número de variables.
Ejemplos:
• a · b · c = a' + b' + c'
• (a + b + c)' = a' · b' · c'
• (a' + b' + c') ' = a · b · c
• ((a + b + c) · d) ' = (a + b + c)' + d' = (a + b + c)' + d' = (a' · b' · c') + d'
• ((a·b·c) + (d·e·f)) ' = (a·b·c)' · (d·e·f)' = (a'+b'+c') · (d'+e'+f')
• ((a+b)·c'·d' + e + f') ' = ((a+b)·c'·d')' · e' · f = ((a+b)'+c+d) · e' · f =
= ((a' · b') + c + d) · e' · f
Funciones lógicas
Función lógica:
Dadas n variables lógicas x1, x2, ... xn, decimos que F es una función
lógica de las citadas variables si:
F(x1, x2, ... xn) ∈ B
es decir, si F sólo toma los valores 0 y 1. Al número de variables también se le
llama dominio.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
4
Una función lógica puede definirse de dos formas:
a) Mediante una expresión algebraica, en la que intervengan las
variables x1, x2, ... xn (y sus complementarias: x1', x2', ... xn')
relacionadas entre sí mediante las operaciones + y ·.
b) Mediante una tabla de verdad, que consiste en expresar en una
tabla todas las posibles combinaciones de las variables de entrada
x1, x2, ... xn, asociando un valor a la salida. El número de
combinaciones es 2n
. Es posible tener más de una salida en la
misma tabla: multifunciones.
Ejemplos:
Sean x1 y x2 dos variables lógicas. Ejemplos de expresiones algebraicas
y sus correspondientes tablas de verdad serían:
F1 = x1'
x1 F1
0 1
1 0
F2 = x1 + x2
x1 x2 F2
0 0 0
0 1 1
1 0 1
1 1 1
F3 = x1 · x2'
x1 x2' F3
0 1 0
0 0 0
1 1 1
1 0 0
Como podemos observar, para construir la tabla de verdad de una
función lógica, escribimos en las columnas de la izquierda todas las
combinaciones posibles de las variables independientes, y en la columna de la
derecha, los valores de la función correspondientes a cada combinación de las
variables independientes.
Las tablas de verdad permiten una representación compacta, pudiendo
además definir dos o más funciones en una sola tabla, siempre y cuando
dependan de las mismas variables independientes.
Una suma de productos es igual a 1 si y sólo si al menos uno de los
productos es igual a 1.
Un producto de sumas es igual a 0 solamente si al menos uno de los
términos es igual a 0.
Por otro lado, dadas dos expresiones algebraicas F1 y F2 diferentes, sus
valores en la tabla pueden coincidir. En ese caso diremos que ambas
funciones son equivalentes (F1 = F2).
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
5
Ejemplos:
• Suma de productos:
F1 = (a' · b' · c) + (a · b' · c' ) + (a · b · c) (3 variables)
Los valores binarios que hacen que los productos de la expresión sean 1
son: 001 (a'·b'·c), 100 (a·b'·c'), 111 (a·b·c).
Para estas combinaciones, en la columna de salida de la tabla de verdad
pondremos un 1; en el resto pondremos 0.
a b c F1
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
• Producto de sumas:
F2 = (a+b+c) · (a+b'+c) · (a+b'+c') · (a'+b+c') · (a'+b'+c)
Los valores binarios que hacen que los términos suma sean 0 son: 000
(a+b+c), 010 (a+b'+c), 011 (a+b'+c'), 010 (a'+b+c'), 110 (a'+b'+c).
Para estas combinaciones, en la columna de salida de la tabla de verdad
pondremos un 0; en el resto pondremos 1.
a b c F2
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Podemos comprobar que ambas funciones son equivalentes (F1=F2).
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
6
Ejemplo:
Sean las dos funciones lógicas siguientes, que dependen ambas de las
mismas variables lógicas: a, b y c.
F1 = (a + b + c) · (a + b + c') · (a' + b + c) · (a' + b + c')
F2 = (a' · b · c') + (a' · b · c) + (a · b · c') + (a · b · c)
Podemos representarlas en una única tabla de verdad (multifunciones):
a b c F1 F2
0 0 0 0 0
0 0 1 0 0
0 1 0 1 1
0 1 1 1 1
1 0 0 0 0
1 0 1 0 0
1 1 0 1 1
1 1 1 1 1
Podemos comprobar que ambas funciones son equivalentes (F1 = F2).
Obtención de la expresión algebraica a partir de la tabla
Podemos obtener la expresión algebraica a partir de la tabla de verdad.
Dada una función lógica F, ésta solo puede tomar los valores 0 y 1.
Podemos definir F indicando para qué combinaciones de las variables
independientes, toma el valor 1 (implementación por "1"), o bien, para qué
combinaciones toma el valor 0 (implementación por "0").
Implementación por "1":
Obtendremos una suma de productos. La función F será cierta para
alguna de las combinaciones (suma lógica) que sean ciertas (vale "1"). Cada
combinación será cierta cuando sean ciertas todas las variables que la
componen (producto lógico). Si alguna de las variables en la combinación
elegida es falsa (vale "0"), su negación será cierta (valdrá "1").
Implementación por "0":
Obtendremos un producto de sumas. La función F será cierta cuando no
se da ninguna de las combinaciones para las cuales es falsa (producto lógico).
Una de estas combinaciones no ocurre cuando es falsa (negación) alguna de
las variables (suma lógica) que componen la combinación.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
7
Ejemplo:
Sea la tabla de verdad del ejemplo anterior (F1 = F2 = F).
Recordamos que:
ó (OR Lógica) = + (Suma lógica)
y (AND Lógica) = · (Producto lógico)
Implementación por "1":
La función F es cierta (vale 1) para las siguientes combinaciones:
a b c F Condiciones para que F=1
0 1 0 1 a' y b y c' ⇒ a' · b · c'
0 1 1 1 a' y b y c ⇒ a' · b · c
1 1 0 1 a y b y c' ⇒ a · b · c'
1 1 1 1 a y b y c ⇒ a · b · c
La función F será cierta cuando se cumpla la primera combinación, ó la
segunda, ó la tercera ó la cuarta, es decir, cuando se cumpla cualquiera de
esas cuatro combinaciones. Una combinación es cierta si y solo si son ciertos
todos los valores:
F = (a' · b · c') + (a' · b · c) + (a · b · c') + (a · b · c)
Podemos comprobar como hemos obtenido la misma función que la
función F1 del ejemplo anterior (suma de productos).
Implementación por "0":
La función es cierta (vale 1) para las siguientes combinaciones:
a b c F Condiciones para que F=1
0 0 0 0 a ó b ó c ⇒ a + b + c
0 0 1 0 a ó b ó c' ⇒ a + b + c'
1 0 0 0 a' ó b ó c ⇒ a' + b + c
1 0 1 0 a' ó b ó c' ⇒ a' + b + c'
La función F será cierta (vale 1) si y solo si no se cumple la primera
combinación, y no se cumple la segunda, y no se cumple la tercera y no se
cumple la cuarta, es decir, cuando no se cumpla ninguna de esas cuatro
combinaciones. Una combinación no es cierta si y solo si no es cierto el primer
valor ó no es cierto el segundo ó no es cierto el tercero.
Un valor no es cierto si su complemento es cierto (vale "1").
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
8
Sustituyendo las "y" por productos lógicos, las "ó" por sumas lógicas e
incluyendo las complementaciones, tenemos como expresión de la función:
F = (a + b + c) · (a + b + c') · (a' + b + c) · (a' + b + c')
Podemos comprobar como hemos obtenido la misma función que la
función F2 del ejemplo anterior (producto de sumas).
Hemos comprobado así mismo, que las funciones F1 y F2 son
equivalentes, y que cualquier función puede expresarse mediante las variables
independientes, relacionadas mediante las operaciones suma, producto y
negación.
Por tanto, tenemos dos formas de obtener la expresión algebraica de
una función a partir de la tabla de verdad.
Siguiendo el proceso inverso, ya hemos visto cómo fácilmente podemos, a
partir de la expresión algebraica, obtener:
q las combinaciones de la tabla de verdad para las cuales la función vale 1
desde una suma de productos
q las combinaciones de la tabla de verdad para las cuales la función vale 0
desde un producto de sumas.
Forma canónica de una función lógica
Se llama término canónico de una función lógica a todo producto o
suma en el cual aparecen todas las variables (o sus complementos) de esa
función. A los términos producto se les llama productos canónicos
(mintermus) y a los términos suma, sumas canónicas (maxtermus).
Cuando una función se expresa como una suma de productos canónicos
(mintermus) o como producto de sumas canónicas (maxtermus) se dice que se
encuentra en su forma canónica o estándar.
• La implementación por "1" nos lleva a la forma canónica de suma de
productos.
• La implementación por "0" nos lleva a un producto de sumas.
Aplicando los teoremas de De Morgan, podemos convertir una función
expresada en sumas de productos (mintermus) a producto de sumas
(maxtermus) y viceversa.
Aplicando las leyes distributivas, podemos convertir cualquier función
que no esté en forma canónica a suma de productos o productos de sumas
(forma canónica):
F = a·b + c·(d+e) = a·b + c·d + c·e
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
9
Ejemplo:
• Producto de sumas è Suma de productos (maxtermusèmintermus)
F = ((a + b + c') · (a + b' + c)) ' =
= (a + b + c') ' + (a + b' + c) ' =
= (a' · b' · c) + (a' · b · c')
• Suma de productos è Producto de sumas (MintermusèMaxtermus)
F = (a · b · c) + (a · b' · c') =
= ( (a · b · c) + (a · b' · c') ) '' =
= ( (a · b · c)' · (a · b' · c')' ) ' =
= ( (a' + b' + c') · (a' + b + c) ) '
Conversión de una suma de productos a su forma canónica
Utilizando lo siguiente podemos convertir un término producto que no
contenga todas las variables a otro que si las tenga:
• Regla 6 del álgebra de Boole: (a + a' = 1)
• Propiedad distributiva: a·(b+c) = (a·b) + (a·c)
Tenemos que multiplicar cada término producto que no esté en forma
canónica por un término formado por la suma de la variable que le falta y su
complemento. Multiplicar por 1 no altera el valor de un término. El número de
productos se duplica por cada variable que falta.
Ejemplo:
Convertir la siguiente expresión booleana al formato suma de productos
canónicos:
F = (a·b'·c) + (a'·b') + (a·b·c'·d)
Tenemos 4 variables: a,b,c,d. Consideramos cada término por separado.
a·b'·c = (a·b'·c) · (d+d') = (a·b'·c·d) + (a·b'·c·d')
a'·b' = (a'·b') · (c+c') = (a'·b'·c) + (a'·b'·c') =
= [ (a'·b'·c) · (d+d') ] + [ (a'·b'·c') · (d+d') ] =
= [ (a'·b'·c·d) + (a'·b'·c·d') ] + [ (a'·b'·c'·d) + (a'·b'·c'·d') ]
a·b·c'·d => Ya lo tenemos en forma canónica
Sustituyendo cada término por su equivalente término canónico:
F = (a·b'·c·d) + (a·b'·c·d') + (a'·b'·c·d) + (a'·b'·c·d') +
+ (a'·b'·c'·d) + (a'·b'·c'·d') + (a·b·c'·d)
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
10
Conversión de un producto de sumas a su forma canónica
Utilizando lo siguiente podemos convertir un término suma que no
contenga todas las variables a otro que si las tenga:
• Regla 8 del álgebra de Boole: (a · a' = 0)
• Propiedad distributiva: a+(b·c) = (a+b) · (a+c)
Tenemos que sumar a cada término suma que no esté en forma
canónica un término formado por el producto de la variable que le falta y su
complemento. Sumar 0 no altera el valor de una suma. El número de sumas se
duplica por cada variable que falta.
Ejemplo:
Convertir la siguiente expresión booleana al formato de producto de
sumas canónico.
F = (a+b'+c) · (b'+c+d') · (a+b'+c'+d)
Tenemos 4 variables: a,b,c,d. Consideramos cada término por separado.
(a+b'+c) = (a+b'+c) + (d · d') = (a+b'+c+d) · (a+b'+c+d')
(b'+c+d') = (b'+c+d') + (a · a') = (a+b'+c+d') · (a'+b'+c+d')
(a+b'+c'+d) ⇒ Ya lo tenemos en forma canónica
Sustituyendo cada término por su equivalente término canónico:
F = (a+b'+c+d) · (a+b'+c+d') · (a+b'+c+d') · (a'+b'+c+d') · (a+b'+c'+d)
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
11
Forma compacta de una función en forma canónica
Una expresión en forma canónica puede expresarse de una forma
compacta. La forma compacta de representar esta tabla o las expresiones
lógicas sería indicando las combinaciones que hacen cierta (suma de
productos) o falsa (producto de sumas) la función F de la siguiente forma:
Forma de la expresión Forma compacta
suma de productos F = Suma de mi = ∑ (Combinaciones ciertas)
producto de sumas F = Producto de Mi = Π (Combinaciones falsas)
Sea la función F definida por la tabla de verdad siguiente:
a b c F Mintermus (m) Maxtermus (M) Valor
0 0 0 0 M0 = a+b+c 0 = 000
0 0 1 0 M1 = a+b+c' 1 = 001
0 1 0 0 M2 = a+b'+c 2 = 010
0 1 1 1 m3 = a'·b·c 3 = 011
1 0 0 0 M4 = a'+b+c 4 = 100
1 0 1 1 m5 = a·b'·c 5 = 101
1 1 0 1 m6 = a·b·c' 6 = 110
1 1 1 0 M7 = a'+b'+c' 7 = 111
Por tanto, las expresiones lógicas equivalentes "suma de productos" y
"producto de sumas" son:
F = m3+m5+m6 = (a'·b·c) + (a·b'·c) + (a·b·c')
F = M0·M1·M2·M4·M7 = (a+b+c) · (a+b+c') · (a+b'+c) · (a'+b+c) · (a'+b'+c')
Si expresamos en binario las combinaciones:
Suma de productos (directo): 011+101+110
Producto de sumas (complementados): 000·001·010·100·111
Las expresiones compactas son:
Suma de productos: F = ∑ (3,5,6)
Producto de sumas: F = Π (0,1,2,4,7)
Ambas expresiones compactas son equivalentes, como se demuestra aquí:
q Sabemos que: Mi = mi' (DeMorgan)
q Tenemos que: F = ∑ (3,5,6) = m3 + m5 + m6
q Obtenemos la función complementada F', que valdrá 1 para aquellas
combinaciones que F=0 (y no estará definida para las mismas
combinaciones que F).
F' = ∑ (0,1,2,4,7) = m0+m1+m2+m4+m7
q Complementamos en ambas partes de la igualdad:
F'' = F = (m0+m1+m2+m4+m7)' = m0'·m1'·m2'·m4'·m7' ⇒
⇒ F = M0·M1·M2·M4·M7 =
⇒ F = Π(M0,M1,M2,M4,M7) = Π(0,1,2,4,7)
F = ∑ (3,5,6) = Π (0,1,2,4,7)
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
12
3.3. Puertas lógicas
Introducción
Los computadores actuales utilizan como soporte tecnológico los
circuitos electrónicos, por lo que se consiguen grandes velocidades. Pero estos
circuitos electrónicos no pueden manejar directamente cifras ni caracteres. La
información se representa casi siempre mediante tensiones eléctricas.
Ahora bien, pueden utilizarse tensiones eléctricas de dos tipos:
• Señales analógicas: las tensiones toman cualquier valor dentro de un
intervalo determinado. Permiten representar una magnitud y asignarle un
valor cualquiera.
• Señales discretas: las tensiones sólo toman unos valores concretos.
Permiten representar un número limitado de valores diferentes. En el caso
de que el número de valores diferentes que pueda representar la tensión
sean solo dos, la señal se denomina lógica o digital.
En los computadores se utilizan señales lógicas para representar la
información. A los dos valores que puede tomar dicha señal, se les asigna
habitualmente como 0 y 1.
La razón de la utilización de este tipo de señales es, fundamentalmente
tecnológica. Existe un tipo de circuitos electrónicos, denominados circuitos
digitales, que trabajan solo con dos niveles de tensión, y que pueden realizar
una transición de un nivel a otro.
Las ventajas que presentan estos circuitos respecto a los analógicos
son:
• Gran simplicidad de diseño
• Velocidad de trabajo más elevada
• Consumo más reducido
• Inmunidad al ruido muy elevada (margen de error)
• Posibilidad de diseño descendente, al poder confeccionar cualquier
circuito, por complejo que sea, con unidades más simples diseñadas
previamente.
• Posibilidad de aumentar hasta el nivel que se desee, la precisión en
la representación de una información numérica.
• Menor coste de fabricación, para las mismas prestaciones, ya que al
poder construir cualquier circuito con unidades básicas, permite
fabricar éstas en grandes cantidades.
El único inconveniente es una complejidad superior de los circuitos, que
no es tal inconveniente, gracias a la posibilidad de diseño y análisis
descendente.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
13
Las únidades básicas más simples que componen los circuitos digitales
se denominan puertas lógicas, y son circuitos que implementan las funciones
lógicas elementales. Son bloques de construcción básicos de funciones más
complejas. Se representan por unos símbolos de acuerdo al estándard ANSI /
IEEE 91-1984.
Los valores lógicos "0" y "1" se representan por niveles de tensión
diferentes en las líneas de entrada y salida de estos circuitos.
Realmente estos dos niveles de tensión son bastante diferentes entre si.
Los circuitos digitales se diseñan de tal forma, que reconocen un valor lógico,
aunque la tensión no tome exactamente el nivel definido, siempre y cuando
esté dentro de una franja alrededor de dicho nivel, permitiendo una cierta
inmunidad ante variaciones en la señal de entrada (ruido).
Se dice que una lógica es positiva si la tensión correspondiente al "1"
lógico es mayor que la tensión del "0" lógico. En caso contrario, se trata de una
lógica negativa. La mayoría de las veces, el "0" lógico es la masa o tensión de
0 voltios. Los niveles de tensión utilizados vienen determinados por la
tecnología empleada en la fabricación de circuitos.
Puertas básicas
De la definición de álgebra de Boole, las puertas básicas son:
Puerta AND
La salida es 1 si y sólo si todas y cada una de las variables de entrada
toman el valor 1. La puerta AND realiza la función producto lógico de las
variables de entrada:
y = x1 · x2 · ... · xn
Representación gráfica: Tabla de verdad:
a b AND
0 0 0
0 1 0
1 0 0
1 1 1
Ejemplo de aplicación:
Habilitar / impedir el paso de alguna señal. Si el cinturón de seguridad no
está abrochado, se activa una de las entradas, pero mientras el coche no esté
en marcha no nos avisará. Al arrancar, activamos la otra entrada, y una alarma
o mensaje nos advertirá de que debemos colocarnos el cinturón.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
14
Puerta OR
La salida es 1 si y sólo si al menos una de las entradas toma el valor 1.
La puerta OR realiza la función de suma lógica:
y = x1 + x2 + ... + xn
Representación gráfica: Tabla de verdad:
a b OR
0 0 0
0 1 1
1 0 1
1 1 1
Ejemplo de aplicación:
Un sistema de alarma, en el que tenemos varios sensores en puertas y
ventanas. En el momento en que cualquiera de los sensores detecte la
presencia de un intruso, el valor de la función OR será "1", y podría activar un
circuito de alarma (sirena, etc.).
Puerta NOT (inversor)
y = x'
Representación gráfica: Tabla de verdad:
a NOT
0 1
1 0
Ejemplo de aplicación:
Realizar el complemento a 1 de un número binario, con una serie de
inversores en paralelo, tantos como bits utilizados en el número binario.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
15
Puerta NAND
La salida es 0 si y sólo si todas y cada una de las entradas toman el
valor 1. En el resto de caos, la salida es 1. Equivale a una puerta AND seguida
de una puerta NOT. Realiza la función:
y = (x1 · x2 · ... · xn)' = x1' + x2' + ... + xn'
Representación gráfica: Tabla de verdad:
a b NAND / Neg-Or
0 0 1
0 1 1
1 0 1
1 1 0
La puerta NAND (AND+NOT) es equivalente a la puerta llamada
negativa-OR (NOT+OR). El uso de una u otra puerta depende de si nos
interesa detectar todas las entradas a nivel alto (NAND) o alguna a nivel bajo
(Negativa-OR). Recordar los teoremas de De Morgan.
Ejemplo de aplicación:
En un proceso de fabricación tenemos dos tanques A y B de líquido, con
sensores de nivel que se activan por nivel alto ("1"), es decir, cuando el nivel es
igual o supera al del sensor. Tenemos dos posibilidades:
Queremos que se nos encienda un testigo de color verde (LED
conectado a +V) en un panel de control en el caso de que el nivel de los dos
tanques esté por encima de unos valores correctos: NAND.
Queremos que se nos encienda un testigo de color rojo (LED conectado
a GND) en un panel de control en el caso de que el nivel de cualquiera de ellos
descienda por debajo de un determinado nivel: Negativa-OR.
Es decir, cuando la salida de estas puertas es 1 (3 casos) se enciende el
LED rojo, y cuando es 0, se enciende el LED verde.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
16
Puerta NOR
La salida es 0 si y sólo si al menos una de las entradas toma el valor 1.
Equivale a una puerta OR seguida de una puerta NOT. Realiza la función:
y = (x1 + x2 + ... + xn)' = x1' · x2' · ... · xn'
Representación gráfica: Tabla de verdad:
a b NOR / Neg-AND
0 0 1
0 1 0
1 0 0
1 1 0
La puerta NOR (OR+NOT) es equivalente a la puerta llamada negativa-
AND (NOT+AND). El uso de una u otra puerta depende de si nos interesa
detectar alguna de las entradas a nivel alto (NOR) o todas a nivel bajo
(Negativa-AND). Recordar los teoremas de De Morgan.
Ejemplo de aplicación:
Monitorizar el tren de aterrizaje de un avión. Este dispone de tres
mecanismos: rueda delantera y ruedas en las dos alas. Queremos que se
encienda una luz verde si, tras pulsar el interruptor de "bajar el tren de
aterrizaje", los tres mecanismos está correctamente extendidos, y una luz roja
si alguno de ellos ha fallado. Cuando uno de los mecanismos se extiende, el
sensor genera una corriente a nivel bajo; cuando se retrae, genera una
corriente a nivel alto.
El circuito sólo se alimentará al pulsar el botón de "bajar el tren de
aterrizaje". Las tres señales serán las entradas de dos puertas lógicas, una
NOR, que encenderá el LED Rojo, y una Negativa-AND que encenderá el LED
Verde
Realmente son dos puertas NOR, sólo que una de ellas funciona como
una puerta Negativa-AND, para detectar un nivel bajo de los sensores
(extendidos).
Cuando los tres sensores están a nivel bajo (extendidos), la puerta
Negativa-AND tiene como salida un nivel alto, que enciende el LED verde
(conectado a GND).
Si alguno de los tres sensores está nivel alto (retraidos), la puerta NOR
tiene salida a nivel bajo, que enciende el LED rojo (conectado a +V).
Es decir, cuando la salida de estas puertas es 0 (3 casos) se enciende el
LED rojo, y cuando es 1, se enciende el LED verde.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
17
Puerta XOR (OR-Exclusiva)
Una puerta XOR de 2 variables de entrada es tal que la salida toma el
valor 1 cuando las dos entradas son diferentes, y toma el valor 0 cuando son
iguales. Sólo tiene 2 entradas.
Se representa por el símbolo ⊕.
Representación gráfica: Tabla de verdad:
a b XOR
0 0 0
0 1 1
1 0 1
1 1 0
La función se expresa en forma canónica como:
y = (x1' · x2) + (x1 · x2') = (x1 + x2) · (x1' + x2')
La definición para más de 2 entradas es compleja, pero puede obtenerse
la expresión de la función en forma canónica fácilmente, sabiendo que la
función OR-exclusiva tiene la propiedad asociativa:
y = x1 ⊕ x2 ⊕ ... ⊕ xn = (((x1 ⊕ x2) ⊕ x3) ⊕ ... ⊕ xn)
Esta puerta se utiliza bastante en muchos circuitos, como los
generadores de paridad.
Ejemplo de aplicación: Suma de dos bits sin acarreo (semisuma).
Puerta XNOR (NOR-exclusiva)
Equivale a una puerta OR-exclusiva seguida de una puerta NOT, por
tanto, también tiene sólo 2 entradas.
Representación gráfica: Tabla de verdad:
a b XNOR
0 0 1
0 1 0
1 0 0
1 1 1
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
18
Implementación de funciones con puertas NAND o NOR
Hasta ahora hemos visto que cualquier función lógica podía definirse
utilizando solamente las operaciones de complementación, suma y producto
(puertas NOT, AND y OR).
Vamos a ver ahora que cualquier función lógica (sistema digital) puede
implementarse solamente con puertas NAND, o bien con puertas NOR. Por
ello, a las puertas NAND y NOR se las conoce como puertas universales. Para
ello, es suficiente obtener las puertas básicas, implementándolas con puertas
NAND o NOR, es decir, debemos demostrar que es posible derivar las puertas
NOT, AND y OR utilizando únicamente puertas NAND, y luego, puertas NOR.
Las puertas básicas (NOT, AND y OR) pueden obtenerse con puertas
NAND de la siguiente forma:
Puerta
básica
Función Esquema
NOT f = x’ = (x · x) ' ó también
f = x’ = (x · 1) '
(el símbolo de una puerta NAND con
una sola sola entrada no es válido)
AND f = x1 · x2 = (x1 · x2) ''
(complementando dos veces)
OR f = x1 + x2 = (x1 + x2) '' = (x1' · x2') '
(complementando dos veces y
aplicando el teorema de De Morgan)
Este procedimiento nos lleva a un número excesivo de puertas,
pudiéndose simplificar a continuación el circuito. De todas formas, si se quiere
implementar una función con puertas NAND o NOR, lo más inmediato es
modificar la expresión algebraica de la función mediante los teoremas de De
Morgan.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
19
Ejemplo:
Como ejemplo, vamos a implementar con puertas NAND y NOR una
función expresada en forma de suma de productos (F1) y otra expresada en
forma de productos de sumas (F2):
F1 = (a · b · c) + (a' · b · c') + (a' · b' · c')
F2 = (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' '
Puertas NAND
(I) Sumas de productos
F1 = (a · b · c) + (a' · b · c') + (a' · b' · c') =
= ( (a · b · c) + (a' · b · c') + (a' · b' · c') ) ' ' =
= ( (a · b · c)' · (a' · b · c')' · (a' · b' · c')' ) '
Lo que hemos hecho es complementar dos veces las función entera, con
lo cual la función sigue siendo equivalente. A continuación, aplicamos el
teorema de De Morgan, que convierte el complemento de una suma en el
producto de los complementos. Así obtenemos una expresión en la que sólo
tenemos productos seguidos de negaciones (NAND).
(II) Productos de sumas
F2 = (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' =
= (a' · b' · c')' · (a · b' · c')' · (a · b' · c')'
En este caso simplemente hemos aplicado el teorema de De Morgan a
cada uno de los términos.
Puertas NOR
(I) Sumas de productos
F1 = (a · b · c) + (a' · b · c') + (a' · b' · c') =
= (a · b · c)' ' + (a' · b · c')' ' + (a' · b' · c')' ' =
= (a' + b' + c') ' + (a + b' + c) ' + (a + b + c) '
Hemos complementado dos veces cada uno de los sumandos, y luego
aplicamos De Morgan para transformar los productos en suma de negaciones.
(II) Productos de sumas
F2 = (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' =
= ( (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' )' ' =
= ( (a + b + c)' ' ' + (a' + b + c)' ' ' + (a + b' + c')' ' ') ' =
= ( (a + b + c)' + (a' + b + c)' + (a + b' + c')' ) '
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
20
3.4. Métodos de simplificación de funciones
Hemos visto como dos funciones con expresiones algebraicas diferentes
eran equivalentes. Sin embargo, existen numerosas funciones con expresiones
diferentes equivalentes a dichas funciones. De entre ellas, habrá algunas que
poseerán un número menor de productos y sumas. Debemos buscar la más
sencilla, para simplificar procesos posteriores como el de diseñar un circuito
lógico para dicha función.
El proceso de simplificación de funciones lógicas consiste en pasar de
una expresión algebraica a otra equivalente con el menor número posible de
sumas y productos.
3.4.1 Simplificación mediante propiedades del álgebra de
Boole.
Este método requiere un profundo conocimiento del álgebra booleana y
una considerable experiencia en su aplicación.
Las propiedades más utilizadas para la simplificación de funciones son:
• Distributiva:
+ respecto ·: a + (b·c) = (a + b) · (a + c)
· respecto +: a · (b+c) = (a · b) + (a · c) ∀ a,b,c ∈ B
• ∀ a ∈ B, ∃ ! a' ∈ B tal que:
a + a’ = 1
a · a’ = 0
• Ley de absorción:
a + (a·b) = a
a · (a+b) = a
• Teoremas de De Morgan
Ejemplos
1. F = (a·b'·c'·d) + (a·b'·c'·d')
Aplicamos la propiedad distributiva:
(a·b'·c'·d) + (a·b'·c'·d') = a·b'·c' · (d+d') = a·b'·c' · 1 = a·b'·c'
De esta forma hemos reducido dos sumandos de 4 variables a uno solo
de tres variables.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
21
2. F = (a+b'+c'+d) · (a+b'+c'+d')
Podemos aplicar las mismas propiedades que antes, en su versión dual.
(a+b'+c'+d) · (a+b'+c'+d') = (a+b'+c') + (d · d') =
= (a+b'+c') + 0 = (a+b'+c')
3. F = a·b + a·(b+c) + b·(b+c)
Comenzamos aplicando la propiedad distributiva.
a·b + a·(b+c) + b·(b+c) = a·b + (a·b + a·c) + (b·b + b·c) =
= a·b + a·c + b + b·c = a·b + a·c + b = a·c + b
Hemos terminado aplicando dos veces la propiedad 10.
4. Función F1 del ejemplo anterior
F1 = (a' · b · c') + (a' · b · c) + (a · b · c') + (a · b · c) =
= (a' · b) · (c' + c) + (a · b) · (c' + c) =
= (a' · b) · 1 + (a · b) · 1 = (a' · b) + (a · b) =
= (a' + a) · b = 1 · b = b
5. Función F2 del ejemplo anterior
F2 = (a + b + c) · (a + b + c') · (a' + b + c) · (a' + b + c') =
= (a + b + (c' · c)) · (a' + b + (c · c')) =
= (a + b + 0) · (a' + b + 0) = (a + b) · (a' + b) =
= (a · a') + b = 0 + b = b
Podemos comprobar que en los dos últimos ejemplos hemos llegado a la
misma expresión simplificada. Anteriormente habíamos visto que ambas
expresiones eran equivalentes. De este ejemplo no debe sacarse la
conclusión de que una expresión en suma de productos y otra equivalente
como producto de sumas, tras simplificar, conducen a la misma expresión.
Esto, en general, no es cierto.
El método de simplificación algebraica se utiliza poco, pues tiene varios
inconvenientes:
• No es sistemático (requiere ingenio y destreza).
• En una expresión compleja, es difícil detectar todas las posibles
simplificaciones.
• En la mayoría de los diseños, una función se define por su tabla de
verdad, debiendo obtener la expresión algebraica para poder
simplificarla.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
22
3.4.2 Mediante tablas de Karnaugh
Un mapa de Karnaugh es una forma de presentar la tabla de verdad de
tal manera que la disposición de las combinaciones de valores es
particularmente útil, de tal forma que la simplificación de una determinada
expresión consiste en agrupar adecuadamente las celdas.
La forma de la tabla dependerá del número de variables independientes
con las que estemos trabajando. Los mapas de de Karnaugh pueden utilizarse
para expresiones de hasta 5 variables. En el caso de tener más de 5 variables,
tendríamos que recurrir a otro método que no vamos a ver, llamado método de
Quine-McClusky.
El número de celdas de un mapa de Karnaugh es igual al número total
de posibles combinaciones de las variables de entrada, al igual que el número
de filas de una tabla de verdad: 2n
.
Una sola variable (a):
Sólo habrá dos símbolos de entrada: 1 y 0. La tabla de Karnaugh tendrá
dos casillas, en donde el 0 indica el valor de 0 de entrada y el 1 indica el valor 1
de entrada. Para el proceso de simplificación que veremos a continuación,
conviene numerar las casillas según un criterio, aunque no es obligatorio. Para
ello pondremos un índice en la esquina superior derecha, comenzando desde
el 0.
a
0
0
a'
1
1
a
Puesto que esta tabla contiene todos los posibles valores de entrada,
cualquier función de una variable puede representarse en este diagrama,
asignando a cada casilla el valor que toma la función para el valor de la
variable de entrada indicada.
Por ejemplo, si la función es F(a) = a' tendremos la tabla:
a
0 1
1 0
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
23
Dos variables (a,b):
Ahora la tabla de Karnaugh debe contemplar las cuatro posibles
combinaciones de las variables: (0,0), (0,1), (1,0), (1,1).
a  b 0 1
0
0
a'·b'
1
a'·b
1
2
a·b'
3
a·b
El valor de una determinada celda es el valor binario de las dos variables
a y b, comenzando por la parte izquierda y luego la parte superior.
Sea la función F(a,b) = a + b. La representaremos del siguiente modo.
a  b 0 1
0 0 1
1 1 1
Tres variables (a,b,c):
Se puede representar de forma horizontal o vertical. En este caso y en
los restantes (con más variables), la forma de numerar las casillas depende de
la combinación que represente una determinada columna o fila, y para etiquetar
una determinada columna o fila hay que realizarlo de tal forma que el cambio
de una combinación a la siguiente sólo varíe un bit.
a  bc 00 01 11 10
0
0
a'·b'·c'
1
a'·b'·c
3
a'·b·c
2
a'·b·c'
1
4
a·b'·c'
5
a·b'·c
7
a·b·c
6
a·b·c'
El código cíclico empleado para las combinaciones de filas y columnas
es algo importante. Como resultado de este código, las casillas que tienen en
común un lado corresponden a combinaciones que difieren en el valor de una
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
24
variable y se dice que son adyacentes; las casillas que tocan diagonalmente
alguna de sus esquinas no son adyacentes. Las casillas adyacentes son
clave en el proceso de simplificación.
La adyacencia se define por un cambio de una única variable. Las
celdas que difieren en una única variable son adyacentes. Las celdas cuyo
valor difiere en más de una variable no son adyacentes.
En la determinación de casillas adyacentes es necesario, para el caso
de tres variables, considerar el diagrama de Karnaugh como una superficie
cilíndrica en que los lados izquierdo y derecho están unidos. Siendo así, la
celda 0 es contigüa a 2, y la celda 4 es contigua a 6.
Cuatro variables (a,b,c,d):
La tabla será, de nuevo, cíclica, donde los lados izquierdo y derecho
están unidos, y de la misma forma, el superior e inferior.
Las variables a y b se encuentran en la parte izquierda, mientras que las
variables c y d en la parte superior.
El valor de una determinada celda es el valor binario de a y b en la parte
izquierda de la misma fila, combinado con los valores binarios de c y d en la
parte superior de la misma columna.
ab  cd 00 01 11 10
00
0
a'·b'·c'·d'
1 3
2
01
4 5 7
6
11
12 13 15
14
10
8 9 11 10
a·b'·c·d'
Dos celdas son adyacentes si sólo cambia un dígito, aunque no lo sean
físicamente. Son adyacentes de extremo a extremo. Por ejemplo, son
adyacentes los siguientes pares de celdas:
0-8, 0-2, 1-9, 3-11, 2-10, 12-14, 8-10, 4-6
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
25
Cinco variables (a,b,c,d,e):
Al igual que en el caso de 4 variables, se pueden solapar las partes
laterales. Aquí se pueden solapar las partes extremas: laterales izquierda y
derecha, y superior e inferior.
Además, en este caso tenemos un eje central que actúa de espejo, de
tal forma que la celda 3 es adyacente con la celda 7. Para comprobarlo, se ven
las combinaciones y se observa que sólo cambia un bit.
ab  cde 000 001 011 010 110 111 101 100
00
0 1 3 2 6 7 5 4
01
8 9 11 10 14 15 13 12
11
24 25 27 26 30 31 29 28
10
16 17 19 18 22 23 21 20
En definitiva, podemos sacar las siguientes conclusiones:
• Las tablas consideradas establecen una correspondencia biunívoca entre
los valores de las variables de la función y el conjunto de casillas del
diagrama de Karnaugh.
• Cada combinación de valores de las variables representa un término
canónico (producto o suma), es decir, existe también una correspondencia
entre el conjunto de los términos canónicos y el conjunto de las casillas de
la tabla de Karnaugh. Por ejemplo, para cuatro variables, la combinación
(0,0,0,0) representa:
Ø el producto canónico: a' · b' · c' · d' (de forma directa)
Ø la suma canónica: a + b + c + d (de forma complementada)
• Las celdas que tienen un lado común son adyacentes, y corresponden a
términos canónicos que difieren en sólo el valor de una de las variables.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
26
Construcción de una tabla de Karnaugh
Podemos construir una tabla de Karnaugh desde la expresión lógica
(suma de productos o producto de sumas), o bien, desde una tabla de verdad.
Vamos a explicar todos estos casos basándonos en el siguiente ejemplo
que ya vimos anteriormente.
Sea la función F definida por la tabla de verdad siguiente:
a b c F Mintermus (m) Maxtermus (M) Valor
0 0 0 0 M0 = a+b+c 0 = 000
0 0 1 0 M1 = a+b+c' 1 = 001
0 1 0 0 M2 = a+b'+c 2 = 010
0 1 1 1 m3 = a'·b·c 3 = 011
1 0 0 0 M4 = a'+b+c 4 = 100
1 0 1 1 m5 = a·b'·c 5 = 101
1 1 0 1 m6 = a·b·c' 6 = 110
1 1 1 0 M7 = a'+b'+c' 7 = 111
Por tanto, las expresiones lógicas equivalentes "suma de productos" y
"producto de sumas" y compactas serían:
F = ∑ (3,5,6) = (a'·b·c) + (a·b'·c) + (a·b·c')
F = Π (0,1,2,4,7) = (a+b+c) · (a+b+c') · (a+b'+c) · (a'+b+c) · (a'+b'+c')
q Desde la expresión lógica
La forma de construcción de la tabla de Karnaugh depende de la forma
de la expresión que tengamos (suma de productos o producto de sumas).
En ambos casos, la expresión debe estar expresada en forma canónica,
es decir, todos sus términos son canónicos (contienen todas las variables).
Podemos ver también la forma compacta que representa cada caso, poniendo
entre paréntesis los números de las combinaciones de que hacen cierta la
expresión lógica. Veremos algún ejemplo en el siguiente punto.
Dada una función con "n" variables, la construcción de la tabla de
Karnaugh correspondiente se efectúa indicando mediante un "1" o un "0" las
celdas que corresponden a términos canónicos que forman parte de la función,
y dejando en blanco las casillas correspondientes a los términos que no forman
parte de la función.
Partiendo de la expresión en su forma canónica, procedemos como
sigue.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
27
q Desde la expresión "suma de productos":
Introduciremos un "1" en el mapa de Karnaugh por cada término
producto (mintermus) de la expresión. Consideramos los valores binarios de las
variables del término de forma directa (sin complementar).
En las casillas correspondientes a dichas combinaciones colocaremos
1's, pues consideramos los casos en los que la función es cierta; y para que
esto ocurra, por lo menos uno de los términos debe ser cierto (es una suma), y
para que un término (producto) sea cierto, todas sus variables deben ser
ciertas.
Siguiendo con el ejemplo, la expresión "suma de productos" es:
F = ∑ (3,5,6) ó también
F = (a'·b·c) + (a·b'·c) + (a·b·c') ==> 011 + 101 + 110 (directos)
Vamos a construir la tabla de Karnaugh:
a  b c 00 01 11 10
0
0 1 3
1
2
1
4 5
1
7 6
1
Podemos comprobar que hemos colocado un "1" en las casillas
correspondientes a las combinaciones indicadas por los términos canónicos de
la función compacta. El resto de casillas podemos poner "0" ó dejarlas en
blanco.
Otro ejemplo: F = a'·b'·c' + a'·b'·c + a·b·c' + a·b'·c'
000 001 110 100
a  bc 00 01 11 10
0 1 1
1 1 1
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
28
q Desde la expresión "producto de sumas":
En este caso introduciremos un "0" en el mapa de Karnaugh por cada
término suma (maxtermus) de la expresión.
Aquí, los valores binarios de las variables de los términos van
complementados, ya que estamos considerando los valores que hacen que la
función sea falsa (0); y para que esto ocurra, basta con que uno de los términos
sea falso (es un producto), y para que un término (suma) sea falso, basta con
que una de sus variables sea falsa. Consideramos los valores binarios que
hacen falso cada término.
Siguiendo con el ejemplo, la expresión "producto de sumas" es:
F = Π (0,1,2,4,7) ó también
F = (a+b+c) · (a+b+c') · (a+b'+c) · (a'+b+c) · (a'+b'+c') ==>
==> 000 · 001 · 010 · 100 · 111 (complementados)
La tabla de Karnaugh del ejemplo ahora será:
a  bc 00 01 11 10
0
0
0
1
0
3 2
0
1
4
0
5 7
0
6
Podemos comprobar que hemos colocado un "0" en las casillas
correspondientes a las combinaciones indicadas por los términos canónicos de
la función compacta: F = Π (0,1,2,4,7). El resto de casillas podemos poner "1" ó
dejarlas en blanco.
Otro ejemplo: F = (a+b+c) · (a+b'+c) · (a'+b'+c) · (a'+b+c')
000 010 110 101
a  bc 00 01 11 10
0 0 0
1 0 0
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
29
q Desde la tabla de verdad:
Recordemos que una tabla de verdad proporciona la salida de una
expresión lógica para todas las posibles combinaciones de las variables de
entrada. Lo único que tenemos que hacer es trasladar los "1" o los "0" de la
columna de salida (F) de la tabla de verdad directamente al mapa de Karnaugh,
a las celdas correspondientes a los valores asociados de las combinaciones de
variables de entrada.
Es el caso más sencillo, pues trabajamos de forma directa. Podemos
implementar por "1" (considerando los 1's) o por "0" (considerando los 0's). Lo
más rápido es considerar aquel que tenga menos ocurrencias, rellenar la tabla
de Karnaugh para dicho valor y finalmente rellenar el resto de casillas con el
otro valor o dejarlas en blanco.
Para el ejemplo tenemos aquí los dos casos:
a  b c 00 01 11 10 a  b c 00 01 11 10
0
0 1 3
1
2
0
0
0
1
0
3 2
0
1
4 5
1
7 6
1 1
4
0
5 7
0
6
Implementando por “1”: considerando los valores que hacen que la
función sea cierta (1). El resto de casillas podemos dejarlas en blanco o poner
"0".
Implementando por “0”, considerando los valores que hacen que la
función sea falsa (0). El resto de casillas podemos dejarlas en blanco o poner
"1".
NOTA: Independientemente de como hayamos construido la tabla de
Karnaugh (implementando por "1" o por "0"), después, para el proceso de
simplificación, podremos obtener la función simplificada como suma de
productos (implementando por "1") o como producto de sumas
(implementando por "0").
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
30
Mecanismo de simplificación
Si dos celdas adyacentes están marcadas con 1, tenemos dos términos
canónicos que difieren sólo en una variable, que además, dicha variable
aparecerá como directa (valor 1) en un término canónico y como
complementada (valor 0) en el otro término. Podemos agrupar las dos celdas
adyacentes produciendo un único término canónico en que falta justo esa
variable en que diferían. Vamos a ver el mecanismo de simplificación:
1. Construir la tabla de Karnaugh adecuada según el número de variables,
indicando con un "1" y con "0" las celdas que correspondan.
2. Seleccionar la forma final que tendrá la función simplificada: suma de
productos (implementando por "1" ) o producto de sumas (implementando
por "0"). En los siguientes pasos suponemos que implementamos por "1".
3. Agrupar celdas adyacentes marcadas con "1". Primero, grupos de 2 unos
que no pueden formar grupos de 4. Luego formar grupos de 4 unos que no
pueden formar un grupo de 8, etc. Interesa buscar los grupos más
numerosos, para obtener el menor número de grupos posible. Cada celda
de un grupo tiene que ser adyacente a una o más celdas del mismo grupo,
pero no todas las celdas del grupo tienen que ser adyacentes entre si.
Además un "1" puede estar en varios grupos a la vez.
4. Tomar todas las celdas con "1" que no se pueden agrupar con ninguna
otra como grupos de un "1" (aislados).
5. Cuando se hayan considerado todos los "1" se ha finalizado el proceso. Los
grupos de "1" conseguidos y los "1" aislados son los términos que
expresarán la función lógica en una forma irreducible.
Este proceso de simplificación no es único, pudiéndose obtener por
tanto varias formas irreducibles de la misma función, dependiendo de las
distintas agrupaciones que podemos realizar.
Una vez realizadas las agrupaciones, para obtener la expresión de la
función lógica irreducible, realmente lo que haremos es utilizar de forma
sistemática las propiedades:
(a · b · c) + (a' · b · c) = (a + a') · b · c = 1 · b · c = b · c
(a + b + c) · (a' + b + c) = (a · a') + b + c = 0 + b + c = b + c
Es decir, las variables que aparecen complementadas y sin
complementar dentro del mismo grupo se eliminan (variables contradictorias).
NOTA: Siempre que un mapa de Karnaugh sea un tablero de ajedrez en
el que la casilla de la esquina inferior derecha sea un 0, la solución es la OR-
Exclusiva (XOR) de las variables (F = a·b' + a'·b = a ⊕ b). Si dicha casilla es un
1, la solución es la OR-Exclusiva negada (XNOR) de las variables (F = a·b +
a'·b' = (a ⊕ b)'.
Estructura de computadores Tema 3: Representación y minimización de funciones lógicas
31
Ejemplo: Sea la función F vista anteriormente. Como es suma de productos
implementamos por “1” (de forma directa) para construir la tabla de Karnaugh:
F = a'·b'·c' + a'·b'·c + a·b·c' + a·b'·c'
000 001 110 100
Hacemos las agrupaciones, sobre su tabla de Karnaugh. Como
queremos obtener una suma de productos, implementamos por “1”:
a  bc 00 01 11 10
0 1 1
1 1 1
La expresión irreducible será:
F = (a’ · b') + (a · c')
Ejemplo: Sea la siguiente tabla de Karnaugh obtenida directamente desde la
tabla de verdad siguiente, implementando por “1” o por "0" (no importa):
a b c F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
F = Σ (3,5,6)
Su tabla de Karnaugh será:
a  bc 00 01 11 10
0
0
0
1
0
3
1
2
0
1
4
0
5
1
7
0
6
1
• Implementando por "1" (suma de productos):
No podemos asociar ningún grupo de "1" que sea de 2, 4 u 8.
Por tanto, la función simplificada será:
F = (a'·b·c) + (a·b'·c) + (a·b·c')
Casilla 6
Casilla 5
Casilla 3
• Implementando por "0" (producto de sumas):
No tenemos grupos de 8 ni de 4 "0".
Grupos de 2 "0": casillas 0-1, 0-4, 0-2
"0" aislados: casilla 7
Estructura de computadores Tema 3
32
La función simplificada será:
F = (a+b) · (b+c) · (a+c) · (a'+b'+c')
Casilla 7
Grupo 0-2
Grupo 0-4
Grupo 0-1
Ejemplo: Sea la función F(a,b,c,d) = ∑ (0,4,5,7,8,9,13,15), construimos su tabla
de Karnaugh (implementando por “1”) y vamos a obtener la función simplificada
en forma de suma de productos (implementando por "1").
ab  cd 00 01 11 10
00
0
1
1 3 2
01
4
1
5
1
7
1
6
11
12 13
1
15
1
14
10
8
1
9
1
11 10
Agrupando y simplificando según el mecanismo obtendríamos:
F = (b·d) + (a'·c'·d') + (a'·b'·c')
Grupo 2: 8,9
Grupo 2: 0,4
Grupo 4: 5,7,13,15
Dependiendo de las agrupaciones que hagamos, podríamos haber
obtenido otras formas irreducibles de la función, pero no todas serán la mínima.
Ejemplo: Sea la función F(a,b,c,d) = ∑ (5,6,9,10), construimos su tabla de
Karnaugh (implementando por “1”) y vamos a obtener la función simplificada
como producto de sumas (implementando por "0").
ab  cd 00 01 11 10
00
0
0
1
0
3
0
2
0
01
4
0
5
1
7
0
6
1
11
12
0
13
0
15
0
14
0
10
8
0
9
1
11
0
10
1
Estructura de computadores Tema 3
33
Si implementásemos por "1" (suma de productos), vemos que no
podemos agrupar, pues no hay celdas con "1" adyacentes. Esto quiere decir
que no se puede reducir, y su forma mínima como suma de productos es:
F = (a'·b·c'·d) + (a'·b·c·d') + (a·b'·c'·d) + (a·b'·c·d')
Agrupando por "0" y simplificando según el mecanismo obtendríamos la
función como producto de sumas:
F = (c+d) · (c'+d') · (a'+b') · (a+b)
Grupo 4: 0,1,3,2
Grupo 4: 12,13,15,14
Grupo 4: 3,7,15,11
Grupo 4: 0,4,12,8
Esta expresión contiene sólo 8 letras, en lugar de las 16 de la forma
suma de productos y es, por tanto, mínima.
Como conclusión, una función lógica o booleana puede representarse y
simplificarse, tanto en su expresión como suma de productos, como en la de
producto de sumas, mediante una tabla de Karnaugh.
Indiferencias en el mapa de Karnaugh
Algunas veces se producen situaciones en las que algunas
combinaciones de las variables de entrada no están permitidas o no están
determinadas para un problema concreto, ó bien, no nos importa la salida para
dichas combinaciones. Estos casos los llamaremos indiferencias, ó términos
indiferentes. Los representaremos por 'x'.
Esto significa que a estos términos les podemos asignar "1" ó "0".
Hemos visto que las funciones lógicas se pueden expresar de forma
compacta como suma de productos canónicos o producto de sumas
canónicas. En el primer caso considerábamos los casos en los que se cumple
la función ("1"), y en el segundo, los casos en los que la función es falsa ("0").
Ahora tenemos un tercer valor que nos puede aparecer en la función de salida.
Para representar una función en forma compacta que tiene indiferencias
en la salida hacemos lo siguiente:
Forma de la expresión Forma compacta
suma de productos F = ∑ ( Combinaciones ciertas ) +
d ( Combinaciones indiferentes )
producto de sumas F = Π ( Combinaciones falsas ) ·
d ( Combinaciones indiferentes )
donde "d(Combinaciones indiferentes)" representa una lista de las
combinaciones indiferentes de la función. En el caso de la "suma de
productos", las combinaciones van de forma directa. En el caso del "producto
de sumas", las combinaciones van complementadas, incluso las indiferentes.
Estructura de computadores Tema 3
34
Ejemplo
Como ejemplo vamos a analizar el código BCD.
Hay muchas formas de representar datos numéricos en forma binaria.
Una puede ser escribir el número en base 2, que se denomina codificación
binaria directa. Otra forma es codificar los números decimales dígito por dígito.
Esta codificación se denomina BCD (Binary-Coded-Decimal). Hay varios tipos
de códigos BCD, pero en general, se trata simplemente de sustituir cada dígito
decimal (0-9) por su equivalente binario.
En BCD, al igual que en la codificación binaria directa, necesitamos 4
bits. Por tanto, el número de combinaciones posibles es 24
= 16. Sin embargo,
para el código BCD sólo utilizamos 10. Las 6 restantes combinaciones binarias
no se pueden dar en esta codificación.
Por ejemplo, para codificar el número decimal 469 en BCD:
4 6 9 10 = 0100 0110 1001 2-BCD
Vamos a diseñar un circuito que teniendo como código de entrada BCD,
encienda un foco de luz cuando tengamos la combinación BCD
correspondiente al 9 decimal.
Para ello, lo primero que hacemos es construir su tabla de verdad.
a b c d F
a
0 0 0 0 0
0 0 0 1 0 b
0 0 1 0 0 F
0 0 1 1 0 c
0 1 0 0 0 d
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
F = Σ(9) + d(10,11,12,13,14,15)
1 0 0 0 0
1 0 0 1 1
1 0 1 0 x
1 0 1 1 x
Su salida nos es indiferente.
1 1 0 0 x No se pueden dar en el
1 1 0 1 x código BCD.
1 1 1 0 x
1 1 1 1 x
9
Estructura de computadores Tema 3
35
Implementando por “1”:
Haciendo uso de las indiferencias vamos a simplificar aun más la
función. Para ello construimos la tabla de Karnaugh, implementando por “1” (es
lo más rápido, pues sólo tenemos una combinación):
Sin utilizar términos indiferentes:
cd
ab
00 01 11 10
00
0 0 0 0
01
0 0 0 0
11
x x x x
10
0 1 x x
Sólo tenemos un "1" aislado (no podemos agrupar nada), por tanto, la
función no se puede simplificar, es decir, obtendríamos que: F = a·b'·c'·d
Utilizando términos indiferentes:
Los términos indiferentes (x) pueden utilizarse para aprovechar mejor el
método del mapa de Karnaugh, por que les podemos dar el valor que nos
interese para formar los grupos tan grandes como sea posible, pues cuanto
más grande sea el grupo, más simple será el término resultante. Utilizando los
términos indiferentes como si fueran "1" obtenemos una función más sencilla.
cd
ab
00 01 11 10
00
0 0 0 0
01
0 0 0 0
11
x x x x
10
0 1 x x
NOTA: debemos agrupar todos los 1's o 0's, utilizando "x", pero todas las
casillas con "x" no tienen por qué incluirse en un grupo.
Podemos realizar un grupo de 4 "1", con lo cual: F = a · d
a · b' · c' · d
a · d
Estructura de computadores Tema 3
36
Implementando por “0”
Construimos la tabla de Karnaugh del mismo modo que antes, es decir,
implementando por "1" ya que sólo tenemos una combinación, pero ahora
implementaremos por "0" a la hora de la simplificación (agruparemos "0").
Pondremos las condiciones indiferentes donde correspondan ("x"), y en el resto
de casillas pondremos "0".
Sin utilizar términos indiferentes:
cd
ab
00 01 11 10
00
0 0 0 0
01
0 0 0 0
11
x x x x
10
0 1 x x
La expresión irreducible que obtenemos es: F = a · (a'+b+c+d)
Utilizando términos indiferentes:
cd
ab
00 01 11 10
00
0 0 0 0
01
0 0 0 0
11
x x x x
10
0 1 x x
Tenemos dos grupos de 8.
Por tanto, la expresión irreducible es: F = a · d
Podemos observar que obtenemos la misma expresión irreducible, al
implementar por “1” y por “0” cuando tenemos en cuenta las indiferencias,
aunque esto, en general, no es así.
Como vemos, las expresiones se simplifican mucho más, y, por tanto, la
construcción del circuito. El inconveniente de estos circuitos es que si estos
estados indiferentes apareciesen, la reacción del circuito sería imprevisible.
d
a
a' + b + c + d
a
Estructura de computadores Tema 3
37
3.5. Funciones incompletas
Funciones incompletas
Las funciones incompletas o incompletamente definidas son aquellas
que no tienen su salida definida para alguna de las combinaciones de entrada.
Suponemos que las salidas para dichas combinaciones de entradas es
"indiferente". Como hemos visto, estas combinaciones se utilizan para
simplificar las funciones mediante mapas de Karnaugh.
Conjuntos completos
Un conjunto de funciones es completo en un álgebra de Boole si y sólo si
cualquier función booleana puede implementarse con dichas funciones.
Ejemplos de conjuntos completos:
• { AND, OR, NOT }
• { OR, NOT } ≡ { NOR }
• { AND, NOT } ≡ { NAND }
Ejemplos de conjuntos no completos:
• { AND, OR }
Nivel de un circuito
Dado un circuito con una serie de puertas lógicas, puesto que por cada
una de estas puertas que la señal eléctrica atraviesa se produce un retraso
(tiempo de propagación), es importante especificar el número de puertas que
atraviesa la información de entrada hasta llegar a la salida.
Una puerta se considera de nivel i, donde i > 1, si y sólo si:
a) no recibe ninguna entrada de puertas de nivel j, con j > i.
b) tiene al menos una entrada procedente de una puerta de nivel i-1.
Un circuito lógico es de nivel i, si al menos contiene una puerta de nivel i,
y no contiene ninguna puerta de nivel j, siendo j > i.
Dicho de otro modo, el nivel de un circuito lógico será el nivel máximo de
las puertas.
El coste económico de un circuito dependerá del número de puertas.
La velocidad de un circuito dependerá del nivel de dicho circuito.
Hemos visto como podemos simplificar el diseño de un circuito,
reduciendo el número de puertas y, por tanto su coste, pero en ocasiones, a
costa de que el circuito tenga un nivel mayor, es decir, sea más lento.
Estructura de computadores Tema 3
38
Ejemplo
Sea la función F = (a' + b + c') · (b + d) · (c' + b · a)
Vamos a implementarla con puertas NAND y NOR. Posteriormente,
vamos a simplificarla, volviendo a expresarla con puertas NAND y NOR. Con
esto podremos averiguar el número de puertas y nivel de los circuitos obtenidos
en cada caso.
Puertas NAND
F = (a' + b + c') · (b + d) · (c' + b · a) =
= (a' + b + c')' ' · (b + d)' ' · (c' + b · a)' ' =
= (a · b' · c)' · (b' · d')' · (c · (b · a)')'
Si dibujamos el circuito, obtendremos un circuito con 8 puertas y
de nivel 4.
Puertas NOR
F = (a' + b + c') · (b + d) · (c' + b · a) =
= ( (a' + b + c') · (b + d) · (c' + b · a) ) ' ' =
= ((a' + b + c')' + (b + d)' + ( c' + (b · a)'' )' ) ' =
= ((a' + b + c')' + (b + d)' + ( c' + (b' + a')' )' ) '
Si dibujamos el circuito, obtendremos un circuito con 8 puertas y
de nivel 4, igual que en el caso anterior (puertas NAND).
Simplificación
Para simplificar la función mediante tablas de Karnaugh debemos
expresar la función en forma canónica, esto es, todos sus términos deben ser
canónicos:
F = (a' + b + c') · (b + d) · (c' + b · a) = x · y · z
x = (a' + b + c') + (d · d’) = (a’+b+c’+d) · (a’+b+c’+d’)
y = (b + d) + (a · a’) = [ (a+b+d) · (a’+b+d) ] + (c · c’) =
(a+b+d+c) · (a+b+d+c’) · (a’+b+c+d) · (a’+b+c’+d)
z = (c' + (b · a)) + (d · d’) = (a · b + c’ + d) · (a · b + c’ + d’)
Como la función F es un producto de sumas, implementamos por “0”, es
decir, las combinaciones de cada uno de los términos que nos indican las
casillas en la tabla de Karnaugh van complementadas, es decir, consideramos
los casos en los que la función F es falsa, que lo será cuando lo sea cualquiera
de sus términos.
Estructura de computadores Tema 3
39
Los términos serán falsos para cualquiera de las combinaciones
siguientes:
x = 1010, 1011
y = 0000, 0010, 1000, 1010
z = (a·b)10, (a·b)11 (Para que (a·b) sea 0 ==> a=0 ó b=0)
abcd 00 01 11 10 abcd 00 01 11 10
00
0
0
1 3
0
2
0 00
0
0
1
1
3
0
2
0
01
4 5 7
0
6
0 01
4
1
5
1
7
0
6
0
11
12 13 15 14
11
12
1
13
1
15
1
14
1
10
8
0
9 11
0
10
0 10
8
0
9
1
11
0
10
0
Implementando por “0”:
F = (b+d) · (a+c’) · (b+c’)
Si ahora transformamos la función irreducible obtenida para
utilizar sólo puertas NAND y NOR y dibujamos el circuito
equivalente obtenemos:
NAND: circuito con 8 puertas y nivel 4
NOR: circuito con 4 puertas y nivel 3
Implementando por “1”:
F = (b·c’) + (c’·d) + (a·b)
Del mismo modo, si ahora transformamos la función irreducible
obtenida para utilizar sólo puertas NAND y NOR y dibujamos el
circuito equivalente, en este caso obtenemos:
NAND: circuito con 5 puertas y nivel 3
NOR: circuito con 8 puertas y nivel 4
Vemos que hemos obtenido varias expresiones irreducibles. De todas
ellas, sólo una será mínima. En este caso, se ha conseguido al implementar
por 0 y luego transformar la expresión para utilizar sólo puertas NOR.
b+d a+c' b+c' b · c' c' · d a · b
Estructura de computadores Tema 3
40
Apéndice A – Circuitos Integrados
Circuito Integrado
Los circuitos digitales se construyen con circuitos integrados (IC). Un
IC es un pequeño cristal semiconductor de silicio, llamado informalmente chip,
que tiene los componentes electrónicos de las puertas digitales. Las puertas se
interconectan en el chip para formar el IC.
El chip se monta en un contenedor de cerámica o plástico y se sueldan
sus conexiones (entradas y salidas) a las patillas externas para formar el IC.
La cantidad de patillas puede variar, dependiendo del tamaño del IC,
desde 14 hasta varios cientos. Cada IC tiene una etiqueta impresa en la
superficie exterior que lo identifica mediante una designación numérica. Con
esta referencia, podremos consultar sus características en los catálogos del
fabricante.
Niveles de integración
A medida que avanza la tecnología de los IC, ha aumentado
considerablemente la cantidad de puertas que pueden colocarse en un único
chip de silicio. Dependiendo de la escala de integración de los IC tendremos
más o menos puertas.
SSI (Small-scale integrated): menos de 10 puertas.
MSI (Medium-scale integrated): de 10 a 100 puertas.
LSI (Large-scale integrated): de 100 a miles de puertas.
VLSI (Very large-scale integrated): varios miles o millones de puertas.
Familias lógicas digitales
Los IC digitales se clasifican no sólo por su operación lógica, sino
también por la tecnología de circuito a la que pertencen. La tecnología se
conoce como familia lógica digital. Cada una de las familias tiene su propio
circuito electrónico básico (NAND, NOR, NOT), sobre el que se desarrollan
circuitos digitales y funciones más complejos. Los componentes electrónicos
utilizados en la construcción del circuito básico suelen dar su nombre a la
tecnología.
Estructura de computadores Tema 3
41
Las familias lógicas de circuitos integrados más importantes son:
• RTL (resistor-transistor logic)
• DTL (diode-transistor logic)
• TTL (transistor-transistor logic)
• ECL (emitter-coupled logic)
• MOS (metal-oxide semiconductor)
• CMOS (complementary metal-oxide semiconductor)
• BiCMOS (bipolar complementary metal-oxide semiconductor)
Parámetros de las familias lógicas
Para analizar las características de las distintas familias lógicas digitales
estudiamos unos parámetros de las puertas básicas de cada familia:
• Márgenes de tensión de entrada y salida: estos valores determinan el
intervalo de cada uno de los niveles lógicos ("1"/H y "0"/L) de la
familia.
• Márgenes de corriente de entrada y salida: los valores de tensión
anteriores están directamente relacionados con la corriente que entre
o salga de las patillas.
• Convergencia de entrada (fan-in): número de entradas de una puerta.
• Divergencia de salida (fan-out): nos indica el número de puertas
(cargas) que podemos conectar a la salida sin que afecte a su buen
funcionamiento. Nos indica el número de “cargas estándar” que
soporta la salida; una “carga estándar” es la cantidad mínima de
corriente que necesita una entrada de otra puerta.
• Margen de ruido: es el voltaje externo de ruido máximo superpuesto
a una entrada normal sin que afecte a la salida del circuito.
• Disipación de potencia: es la potencia consumida por una puerta,
gran parte de la cual de disipa como calor.
• Retardo de propagación: es el tiempo necesario para que el cambio
de valor de una entrada se propague a la salida. La velocidad de
operación está en relación inversa con los retardos de propagación
más grandes.
Márgenes de tensión de entrada y salida
• VIH = mínima tensión que se reconoce en una entrada como nivel alto
(H) o "1" lógico. En el caso de un inversor es el valor mínimo de la
tensión de entrada que produce un "0" a la salida.
• VIL = máxima tensión que se reconoce en una entrada como nivel
bajo (L) o "0" lógico. En el caso de un inversor es el valor máximo de
la tensión de entrada que produce un "1" a la salida.
• VOH = mínima tensión de la salida de una puerta cuando el nivel es
alto (para una corriente de salida especificada).
• VOL = máxima tensión de la salida de una puerta cuando el nivel es
bajo (para una corriente de salida especificada).
Estructura de computadores Tema 3
42
Gráficamente:
La zona rayada representa la zona de incertidumbre entre los dos
estados, es decir, aquellos valores que no se reconocen ni como "0" ni como
"1".
Márgenes de corriente de entrada y salida
• IIH = corriente que fluye por una entrada cuando se aplica un voltaje
de nivel alto. Para Ve = VOH è obtenemos el mínimo valor.
• IIL = corriente que fluye por una entrada cuando se aplica un voltaje
de nivel bajo. Para Ve = VOL è obtenemos el mínimo valor.
• IOH = corriente que fluye por una salida para un voltaje de nivel alto
en dicha salida. El valor máximo garantiza una VS>=VOH, con el
máximo número de cargas conectadas a la salida.
• IOL = corriente que fluye por una salida para un voltaje de nivel bajo
en dicha salida. El valor máximo garantiza una VS<=VOL, con el
máximo número de cargas conectadas a la salida.
Divergencia de salida (Fan-out)
El fan-out lo podemos calcular a partir de los datos del fabricante como
la razón entre la corriente máxima que proporciona la salida de una puerta
(puerta excitadora) y la corriente que consumen las entradas conectadas a ella.
• Fan-outH =
Fan-out = min ( Fan-outH, Fan-outL )
• Fan-outL =
NMH
NML
L
H
L
H
Entrada Salida
VOL
VIL
VIH
VOH
IH
OH
I
I
IL
OL
I
I
Estructura de computadores Tema 3
43
Márgenes de ruido (NM)
En el contexto de circuitos y sistemas digitales significa variaciones
transitorias indeseadas de voltajes o corrientes en los nodos del circuito. Si la
variación adquiere una magnitud considerable más allá de unos límites
(márgenes de ruido), entonces la señal digital queda distorsionada y el circuito
puede interpretar un "1" lógico donde debía interpretar un "0" lógico y
viceversa, pudiendo incluso dejar la señal en la zona de incertidumbre
provocando un mal funcionamiento del sistema.
El ruido puede tener diversas causas:
1. Acoples capacitivos e inductivos entre líneas del mismo circuito.
2. Picos de tensión y corriente generados por los circuitos de
alimentación.
3. Factores externos: relés, interruptores, motores, señales de
radiofrecuencia, etc.
En general, los márgenes de ruido son distintos para los estados H y L,
y se definen de la siguiente manera (siempre son positivos):
• Margen de ruido para el estado alto (NMH): es la máxima cantidad de
ruido que puede afectar a una señal en estado alto para que la señal
se siga reconociendo como tal a la entrada de una puerta lógica.
NMH = | VOH - VIH |
• Margen de ruido para el estado bajo (NML): es la máxima cantidad de
ruido que puede afectar a una señal en estado bajo para que la señal
se siga reconociendo como tal a la entrada de una puerta lógica.
NMH = | VIL - VOL |
• Margen de ruido (NM): si queremos evitar cualquier tipo de mal
funcionamiento por ruido, tanto a nivel alto como a nivel bajo,
debemos evitar señales de ruido mayores de lo que nos indique el
menor de los dos márgenes:
NM = min ( NMH, NML )
Disipación de potencia
Se refiere a la disipación de energía que se produce en una puerta que
está en estado L un 50% del tiempo y en estado H el otro 50%.
Una disipación alta implica, además de un consumo elevado de energía,
un aumento de la temperatura de los circuitos. Por tanto, este parámetro
deberemos minimizarlo, ya que ello evitará costes adicionales en concepto de
refrigeración del circuito.
Para estimar el consumo de energía, se calcula la corriente que entrega
la fuente de alimentación en los dos estados L y H (corriente media):
Pd = ICC · VCC = (ICCH + ICCL / 2) · VCC
Estructura de computadores Tema 3
44
Retardo de propagación
El retardo de propagación es el parámetro más importante desde el
punto de vista del diseño lógico, ya que en los sistemas digitales modernos
resulta de particular interés conocer cual es la velocidad de respuesta de los
circuitos. Se definen tres parámetros de retardo de propagación:
• Tiempo de propagación “high-low” (tpHL): es el tiempo transcurrido
desde que se produce el cambio en la entrada (IN), hasta que la
salida (OUT) cambia de nivel alto (“1”) a bajo (“0”), considerando
siempre el punto del 50% de las señales de voltaje.
• Tiempo de propagación “low-high” (tpLH): es el tiempo transcurrido
desde que se produce el cambio en la entrada (IN), hasta que la
salida (OUT) cambia de nivel bajo (“0”) a alto (“1”), considerando
siempre el punto del 50% de las señales de voltaje.
• Retardo de propagación (tpd): es el valor máximo de estos dos
retardos, ya que nos interesa conocer el retardo de propagación en el
peor caso: tpd = max ( tpHL, tpLH).
El motivo de que se produzcan estos retrasos está en que todo
circuito real lleva asociadas unas capacidades parásitas que es necesario
cargar o descargar en cada transición (capacitancia):
Las fuentes de estas capacidades son:
1. los circuitos de entrada, incluyendo todos sus componentes:
(resistencias, diodos, transistores), cableado interno, etc.
2. las pistas o cables que unen la salida de una puerta con la entrada
de otra puerta.
3. los circuitos de salida, incluyendo transistores de salida, cableado
interno, etc.
Ejemplo – Retardo de propagación de un inversor
IN
50%
OUT
50%
tpHL tpLH
Estructura de computadores Tema 3
45
Interconexión entre familias
Puede que nos interese en alguna ocasión realizar un circuito utilizando
IC de distintas familias. La conexión de puertas de distintas familias no es
inmediata ya que, al trabajar cada una con distinta tecnología, las
características eléctricas varían.
Dos familias se dice que son compatibles cuando es posible la
interconexión directa de circuitos de dichas familias. Si dos familias no son
compatibles, la interconexión no se podrá hacer de forma directa, sino que será
necesario colocar un circuito entre ambas (interfaz) que consiga adaptar los
niveles eléctricos de tensiones e intensidades (corrientes): diodos, resistencias,
adaptadores de nivel, etc.
A) Condición sobre las tensiones:
Las tensiones de salida de las puertas excitadoras deben estar en el
rango de las tensiones de entrada de la puerta de carga.
VOHexc > VIHcarga
VOLexc < VILcarga
B) Condición sobre las intensidades:
La corriente de salida en estado H de la puerta excitadora (IOHexc) debe
ser suficiente para activar a la carga (IIHcarga), mientras que la corriente máxima
que admite la puerta excitadora en estado L a su salida (IOLexc) debe ser mayor
que la corriente de entrada que le suministra la puerta de carga (IILcarga).
IOHexc > IIHcarga
IOLexc < IILcarga
Salida Entrada
Puerta A
(excitadora)
Puerta B
(carga)
IOHexc IIHcarga
IILcargaIOLexc
Salida Entrada
Puerta A
(excitadora)
Puerta B
(carga)
VOHexc
VOLexc
VIHcarga
VILcarga

Más contenido relacionado

La actualidad más candente

Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binarioedwinosuna
 
Trabajo engranajes hiperbolicos
Trabajo engranajes hiperbolicosTrabajo engranajes hiperbolicos
Trabajo engranajes hiperbolicoslucki_57
 
SILABO DE MATEMATICA IV
SILABO DE MATEMATICA IVSILABO DE MATEMATICA IV
SILABO DE MATEMATICA IVandrescollante
 
Aproximaciones sucesivas
Aproximaciones sucesivasAproximaciones sucesivas
Aproximaciones sucesivasRafael Duran
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Conversión de punto flotante binario a decimal
Conversión de punto flotante binario a decimalConversión de punto flotante binario a decimal
Conversión de punto flotante binario a decimalJavier Daniel Rivas Lozano
 
Solenoide y toroide
Solenoide y toroideSolenoide y toroide
Solenoide y toroidePatty-15
 
Conversión de decimal fraccionario a hexadecimal y entre
Conversión de decimal fraccionario a hexadecimal y entreConversión de decimal fraccionario a hexadecimal y entre
Conversión de decimal fraccionario a hexadecimal y entreDieguinmc
 
Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Diego Salazar
 
Factor integrante
Factor integranteFactor integrante
Factor integranteEIYSC
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónDaniela Medina
 
Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Israel Magaña
 
Circuito capacitivo y circuito inductivo
Circuito capacitivo y circuito inductivoCircuito capacitivo y circuito inductivo
Circuito capacitivo y circuito inductivolaesenciadelafisica
 

La actualidad más candente (20)

Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binario
 
Trabajo engranajes hiperbolicos
Trabajo engranajes hiperbolicosTrabajo engranajes hiperbolicos
Trabajo engranajes hiperbolicos
 
SILABO DE MATEMATICA IV
SILABO DE MATEMATICA IVSILABO DE MATEMATICA IV
SILABO DE MATEMATICA IV
 
Aproximaciones sucesivas
Aproximaciones sucesivasAproximaciones sucesivas
Aproximaciones sucesivas
 
Derivadas Parciales
Derivadas ParcialesDerivadas Parciales
Derivadas Parciales
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Conversión de punto flotante binario a decimal
Conversión de punto flotante binario a decimalConversión de punto flotante binario a decimal
Conversión de punto flotante binario a decimal
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Funciones -Variable compleja
Funciones -Variable complejaFunciones -Variable compleja
Funciones -Variable compleja
 
mapas de karnaugh
mapas de karnaughmapas de karnaugh
mapas de karnaugh
 
Solenoide y toroide
Solenoide y toroideSolenoide y toroide
Solenoide y toroide
 
T4
T4T4
T4
 
Conversión de decimal fraccionario a hexadecimal y entre
Conversión de decimal fraccionario a hexadecimal y entreConversión de decimal fraccionario a hexadecimal y entre
Conversión de decimal fraccionario a hexadecimal y entre
 
Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano
 
Wronskiano
WronskianoWronskiano
Wronskiano
 
Factor integrante
Factor integranteFactor integrante
Factor integrante
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa Posición
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555
 
Circuito capacitivo y circuito inductivo
Circuito capacitivo y circuito inductivoCircuito capacitivo y circuito inductivo
Circuito capacitivo y circuito inductivo
 

Similar a Representación y minimización funciones lógicas

Algebra boole
Algebra booleAlgebra boole
Algebra booledivadlfc
 
Funciones booleanas
Funciones booleanasFunciones booleanas
Funciones booleanasAli Salcedo
 
sistemas digitales.pdf
sistemas digitales.pdfsistemas digitales.pdf
sistemas digitales.pdfgina23243
 
Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...
Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...
Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...Betzi Lira
 
álgebra de boole
álgebra de booleálgebra de boole
álgebra de booleBetzi Lira
 
Algebra de boole
Algebra de booleAlgebra de boole
Algebra de booleDiego Tapia
 
Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...
Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...
Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...SANTIAGO PABLO ALBERTO
 
2 - 3 Algebra de Boole (2).pptx
2 - 3 Algebra de Boole (2).pptx2 - 3 Algebra de Boole (2).pptx
2 - 3 Algebra de Boole (2).pptxMauCR2
 
Instituto universitario tengnologico
Instituto universitario tengnologicoInstituto universitario tengnologico
Instituto universitario tengnologicoMaira Montes de Oca
 
Instituto universitario tengnologico
Instituto universitario tengnologicoInstituto universitario tengnologico
Instituto universitario tengnologicoMaira Montes de Oca
 
Funciones y variables logicas
Funciones y variables logicasFunciones y variables logicas
Funciones y variables logicasAli Salcedo
 

Similar a Representación y minimización funciones lógicas (20)

tema 01 sistemas digitales
tema 01 sistemas digitalestema 01 sistemas digitales
tema 01 sistemas digitales
 
Algebra boole
Algebra boole Algebra boole
Algebra boole
 
Algebra boole
Algebra booleAlgebra boole
Algebra boole
 
Funciones booleanas
Funciones booleanasFunciones booleanas
Funciones booleanas
 
sistemas digitales.pdf
sistemas digitales.pdfsistemas digitales.pdf
sistemas digitales.pdf
 
unidad2.pdf
unidad2.pdfunidad2.pdf
unidad2.pdf
 
algebra de BOOLE.pdf
algebra de BOOLE.pdfalgebra de BOOLE.pdf
algebra de BOOLE.pdf
 
Albrebra booleana
Albrebra booleanaAlbrebra booleana
Albrebra booleana
 
Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...
Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...
Taller Virtual Grupo 6. Cordinador. Lira Betzi... Algebra Boole y Compuertas ...
 
álgebra de boole
álgebra de booleálgebra de boole
álgebra de boole
 
Electronica digital
Electronica digitalElectronica digital
Electronica digital
 
Algebra de boole
Algebra de booleAlgebra de boole
Algebra de boole
 
Tema3
Tema3Tema3
Tema3
 
Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...
Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...
Electrónica digital: Tema 2 Representación y tratamiento de los sistemas digi...
 
Tema2 logica combinacional
Tema2 logica combinacionalTema2 logica combinacional
Tema2 logica combinacional
 
2 - 3 Algebra de Boole (2).pptx
2 - 3 Algebra de Boole (2).pptx2 - 3 Algebra de Boole (2).pptx
2 - 3 Algebra de Boole (2).pptx
 
Algebra d boole
Algebra d booleAlgebra d boole
Algebra d boole
 
Instituto universitario tengnologico
Instituto universitario tengnologicoInstituto universitario tengnologico
Instituto universitario tengnologico
 
Instituto universitario tengnologico
Instituto universitario tengnologicoInstituto universitario tengnologico
Instituto universitario tengnologico
 
Funciones y variables logicas
Funciones y variables logicasFunciones y variables logicas
Funciones y variables logicas
 

Más de SANTIAGO PABLO ALBERTO

Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaSANTIAGO PABLO ALBERTO
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez SANTIAGO PABLO ALBERTO
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio PereiraSANTIAGO PABLO ALBERTO
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...SANTIAGO PABLO ALBERTO
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1SANTIAGO PABLO ALBERTO
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTSANTIAGO PABLO ALBERTO
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...SANTIAGO PABLO ALBERTO
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...SANTIAGO PABLO ALBERTO
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...SANTIAGO PABLO ALBERTO
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...SANTIAGO PABLO ALBERTO
 

Más de SANTIAGO PABLO ALBERTO (20)

secuencia electroneumática parte 1
secuencia electroneumática parte 1secuencia electroneumática parte 1
secuencia electroneumática parte 1
 
secuencia electroneumática parte 2
secuencia electroneumática parte 2secuencia electroneumática parte 2
secuencia electroneumática parte 2
 
Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzada
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio Pereira
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
 
Arduino: Arduino de cero a experto
Arduino: Arduino de cero a expertoArduino: Arduino de cero a experto
Arduino: Arduino de cero a experto
 
Fisica I
Fisica IFisica I
Fisica I
 
Quimica.pdf
Quimica.pdfQuimica.pdf
Quimica.pdf
 
Manual básico PLC OMRON
Manual básico PLC OMRON Manual básico PLC OMRON
Manual básico PLC OMRON
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
 
Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART
 
PLC: Automatismos industriales
PLC: Automatismos industrialesPLC: Automatismos industriales
PLC: Automatismos industriales
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
 
PLC: Motor Dahlander
PLC: Motor DahlanderPLC: Motor Dahlander
PLC: Motor Dahlander
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
 

Último

CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfcesar17lavictoria
 
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...wvernetlopez
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 

Último (20)

CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
 
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 

Representación y minimización funciones lógicas

  • 1. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 1 Tema 3: Representación y minimización de funciones lógicas 3.1. Teoremas y postulados del álgebra de Boole Definiciones El álgebra de Boole se utiliza para la resolución de problemas de tipo lógico-resolutivo, desarrollado en 1947 por George Boole. Actualmente es muy utilizada en electrónica digital (en computadoras), y sobre todo en síntesis de circuitos digitales. El álgebra de Boole son las matemáticas de los sistemas digitales. Variable lógica: Sea el conjunto B = { 0, 1 }. Con este conjunto podemos codificar la información en un computador. Decimos que una variable x es lógica si su dominio es el conjunto B, es decir, si x solo puede tomar los valores 0 y 1. Complemento: El complemento de una variable es su inverso, y se indica con una barra encima, ó con un apóstrofe. Lo más utilizado siempre es la barra, pero en estos apuntes utilizamos un apóstrofe por comodidad en la escritura. Por ejemplo, el complemento de A es A'. Si A = 0, entonces A' = 1 Si A = 1, entonces A' = 0
  • 2. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 2 Postulados del algebra de Boole Un conjunto B = { 0, 1 }, dotado de dos operaciones denotadas por + y ·, es un álgebra de Boole si y sólo si se verifican los siguientes postulados o leyes. En todos los casos consideramos ∀ a,b,c ∈ B. 1. Las operaciones + y · son conmutativas: a + b = b + a (conmutativa de la suma) a · b = b · a (conmutativa del producto) 2. Las operaciones + y · son asociativas: a + (b + c) = (a + b) + c (asociativa de la suma) a · (b · c) = (a · b) · c (asociativa del producto) 3. Cada operación es distributiva respecto a la otra: + respecto ·: a + (b · c) = (a + b) · (a + c) · respecto +: a · (b + c) = (a · b) + (a · c) ∀ a,b,c ∈ B Un álgebra de Boole es simétrica con respecto a las operaciones + y ·, y a los elementos identidad 0 y 1. Tal característica es el principio de dualidad, es decir, si tenemos un teorema, podemos obtener otro dual, cambiando las operaciones. Reglas Un álgebra de Boole B tiene las siguientes propiedades o reglas: 1. Identidad (+): a + 0 = a ∀ a ∈ B 2. Elementos dominantes (+): a + 1 = 1 ∀ a ∈ B 3. Elementos dominantes (·): a · 0 = 0 ∀ a ∈ B 4. Identidad (·): a · 1 = a ∀ a ∈ B 5. Idempotencia (+): a + a = a 6. Complemento (+): a + a' = 1 7. Idempotencia (·): a · a = a 8. Complemento (·): a · a' = 0 9. Involutiva: a'' = a 10.Ley de absorción (dual): a + (a · b) = a y a · (a+b) = a 11.Ley del consenso (dual): a + (a' · b) = a + b y a · (a’+b) = a · b Las 2 últimas reglas se pueden obtener a partir de las leyes y de las otras reglas más sencillas. a' = Complementario de a
  • 3. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 3 3.2. Teoremas de De Morgan De Morgan propuso dos teoremas que constituyen una parte muy importante del álgebra de Boole. Teoremas de De Morgan: 1. El complemento de una suma de variables es igual al producto de los complementos de las variables: (a + b)' = a' · b' ∀ a,b ∈ B 2. El complemento de un producto de variables es igual a la suma de los complementos de las variables: (a · b)' = a' + b' ∀ a,b ∈ B Estos teoremas son válidos para cualquier número de variables. Ejemplos: • a · b · c = a' + b' + c' • (a + b + c)' = a' · b' · c' • (a' + b' + c') ' = a · b · c • ((a + b + c) · d) ' = (a + b + c)' + d' = (a + b + c)' + d' = (a' · b' · c') + d' • ((a·b·c) + (d·e·f)) ' = (a·b·c)' · (d·e·f)' = (a'+b'+c') · (d'+e'+f') • ((a+b)·c'·d' + e + f') ' = ((a+b)·c'·d')' · e' · f = ((a+b)'+c+d) · e' · f = = ((a' · b') + c + d) · e' · f Funciones lógicas Función lógica: Dadas n variables lógicas x1, x2, ... xn, decimos que F es una función lógica de las citadas variables si: F(x1, x2, ... xn) ∈ B es decir, si F sólo toma los valores 0 y 1. Al número de variables también se le llama dominio.
  • 4. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 4 Una función lógica puede definirse de dos formas: a) Mediante una expresión algebraica, en la que intervengan las variables x1, x2, ... xn (y sus complementarias: x1', x2', ... xn') relacionadas entre sí mediante las operaciones + y ·. b) Mediante una tabla de verdad, que consiste en expresar en una tabla todas las posibles combinaciones de las variables de entrada x1, x2, ... xn, asociando un valor a la salida. El número de combinaciones es 2n . Es posible tener más de una salida en la misma tabla: multifunciones. Ejemplos: Sean x1 y x2 dos variables lógicas. Ejemplos de expresiones algebraicas y sus correspondientes tablas de verdad serían: F1 = x1' x1 F1 0 1 1 0 F2 = x1 + x2 x1 x2 F2 0 0 0 0 1 1 1 0 1 1 1 1 F3 = x1 · x2' x1 x2' F3 0 1 0 0 0 0 1 1 1 1 0 0 Como podemos observar, para construir la tabla de verdad de una función lógica, escribimos en las columnas de la izquierda todas las combinaciones posibles de las variables independientes, y en la columna de la derecha, los valores de la función correspondientes a cada combinación de las variables independientes. Las tablas de verdad permiten una representación compacta, pudiendo además definir dos o más funciones en una sola tabla, siempre y cuando dependan de las mismas variables independientes. Una suma de productos es igual a 1 si y sólo si al menos uno de los productos es igual a 1. Un producto de sumas es igual a 0 solamente si al menos uno de los términos es igual a 0. Por otro lado, dadas dos expresiones algebraicas F1 y F2 diferentes, sus valores en la tabla pueden coincidir. En ese caso diremos que ambas funciones son equivalentes (F1 = F2).
  • 5. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 5 Ejemplos: • Suma de productos: F1 = (a' · b' · c) + (a · b' · c' ) + (a · b · c) (3 variables) Los valores binarios que hacen que los productos de la expresión sean 1 son: 001 (a'·b'·c), 100 (a·b'·c'), 111 (a·b·c). Para estas combinaciones, en la columna de salida de la tabla de verdad pondremos un 1; en el resto pondremos 0. a b c F1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 • Producto de sumas: F2 = (a+b+c) · (a+b'+c) · (a+b'+c') · (a'+b+c') · (a'+b'+c) Los valores binarios que hacen que los términos suma sean 0 son: 000 (a+b+c), 010 (a+b'+c), 011 (a+b'+c'), 010 (a'+b+c'), 110 (a'+b'+c). Para estas combinaciones, en la columna de salida de la tabla de verdad pondremos un 0; en el resto pondremos 1. a b c F2 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 Podemos comprobar que ambas funciones son equivalentes (F1=F2).
  • 6. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 6 Ejemplo: Sean las dos funciones lógicas siguientes, que dependen ambas de las mismas variables lógicas: a, b y c. F1 = (a + b + c) · (a + b + c') · (a' + b + c) · (a' + b + c') F2 = (a' · b · c') + (a' · b · c) + (a · b · c') + (a · b · c) Podemos representarlas en una única tabla de verdad (multifunciones): a b c F1 F2 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 Podemos comprobar que ambas funciones son equivalentes (F1 = F2). Obtención de la expresión algebraica a partir de la tabla Podemos obtener la expresión algebraica a partir de la tabla de verdad. Dada una función lógica F, ésta solo puede tomar los valores 0 y 1. Podemos definir F indicando para qué combinaciones de las variables independientes, toma el valor 1 (implementación por "1"), o bien, para qué combinaciones toma el valor 0 (implementación por "0"). Implementación por "1": Obtendremos una suma de productos. La función F será cierta para alguna de las combinaciones (suma lógica) que sean ciertas (vale "1"). Cada combinación será cierta cuando sean ciertas todas las variables que la componen (producto lógico). Si alguna de las variables en la combinación elegida es falsa (vale "0"), su negación será cierta (valdrá "1"). Implementación por "0": Obtendremos un producto de sumas. La función F será cierta cuando no se da ninguna de las combinaciones para las cuales es falsa (producto lógico). Una de estas combinaciones no ocurre cuando es falsa (negación) alguna de las variables (suma lógica) que componen la combinación.
  • 7. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 7 Ejemplo: Sea la tabla de verdad del ejemplo anterior (F1 = F2 = F). Recordamos que: ó (OR Lógica) = + (Suma lógica) y (AND Lógica) = · (Producto lógico) Implementación por "1": La función F es cierta (vale 1) para las siguientes combinaciones: a b c F Condiciones para que F=1 0 1 0 1 a' y b y c' ⇒ a' · b · c' 0 1 1 1 a' y b y c ⇒ a' · b · c 1 1 0 1 a y b y c' ⇒ a · b · c' 1 1 1 1 a y b y c ⇒ a · b · c La función F será cierta cuando se cumpla la primera combinación, ó la segunda, ó la tercera ó la cuarta, es decir, cuando se cumpla cualquiera de esas cuatro combinaciones. Una combinación es cierta si y solo si son ciertos todos los valores: F = (a' · b · c') + (a' · b · c) + (a · b · c') + (a · b · c) Podemos comprobar como hemos obtenido la misma función que la función F1 del ejemplo anterior (suma de productos). Implementación por "0": La función es cierta (vale 1) para las siguientes combinaciones: a b c F Condiciones para que F=1 0 0 0 0 a ó b ó c ⇒ a + b + c 0 0 1 0 a ó b ó c' ⇒ a + b + c' 1 0 0 0 a' ó b ó c ⇒ a' + b + c 1 0 1 0 a' ó b ó c' ⇒ a' + b + c' La función F será cierta (vale 1) si y solo si no se cumple la primera combinación, y no se cumple la segunda, y no se cumple la tercera y no se cumple la cuarta, es decir, cuando no se cumpla ninguna de esas cuatro combinaciones. Una combinación no es cierta si y solo si no es cierto el primer valor ó no es cierto el segundo ó no es cierto el tercero. Un valor no es cierto si su complemento es cierto (vale "1").
  • 8. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 8 Sustituyendo las "y" por productos lógicos, las "ó" por sumas lógicas e incluyendo las complementaciones, tenemos como expresión de la función: F = (a + b + c) · (a + b + c') · (a' + b + c) · (a' + b + c') Podemos comprobar como hemos obtenido la misma función que la función F2 del ejemplo anterior (producto de sumas). Hemos comprobado así mismo, que las funciones F1 y F2 son equivalentes, y que cualquier función puede expresarse mediante las variables independientes, relacionadas mediante las operaciones suma, producto y negación. Por tanto, tenemos dos formas de obtener la expresión algebraica de una función a partir de la tabla de verdad. Siguiendo el proceso inverso, ya hemos visto cómo fácilmente podemos, a partir de la expresión algebraica, obtener: q las combinaciones de la tabla de verdad para las cuales la función vale 1 desde una suma de productos q las combinaciones de la tabla de verdad para las cuales la función vale 0 desde un producto de sumas. Forma canónica de una función lógica Se llama término canónico de una función lógica a todo producto o suma en el cual aparecen todas las variables (o sus complementos) de esa función. A los términos producto se les llama productos canónicos (mintermus) y a los términos suma, sumas canónicas (maxtermus). Cuando una función se expresa como una suma de productos canónicos (mintermus) o como producto de sumas canónicas (maxtermus) se dice que se encuentra en su forma canónica o estándar. • La implementación por "1" nos lleva a la forma canónica de suma de productos. • La implementación por "0" nos lleva a un producto de sumas. Aplicando los teoremas de De Morgan, podemos convertir una función expresada en sumas de productos (mintermus) a producto de sumas (maxtermus) y viceversa. Aplicando las leyes distributivas, podemos convertir cualquier función que no esté en forma canónica a suma de productos o productos de sumas (forma canónica): F = a·b + c·(d+e) = a·b + c·d + c·e
  • 9. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 9 Ejemplo: • Producto de sumas è Suma de productos (maxtermusèmintermus) F = ((a + b + c') · (a + b' + c)) ' = = (a + b + c') ' + (a + b' + c) ' = = (a' · b' · c) + (a' · b · c') • Suma de productos è Producto de sumas (MintermusèMaxtermus) F = (a · b · c) + (a · b' · c') = = ( (a · b · c) + (a · b' · c') ) '' = = ( (a · b · c)' · (a · b' · c')' ) ' = = ( (a' + b' + c') · (a' + b + c) ) ' Conversión de una suma de productos a su forma canónica Utilizando lo siguiente podemos convertir un término producto que no contenga todas las variables a otro que si las tenga: • Regla 6 del álgebra de Boole: (a + a' = 1) • Propiedad distributiva: a·(b+c) = (a·b) + (a·c) Tenemos que multiplicar cada término producto que no esté en forma canónica por un término formado por la suma de la variable que le falta y su complemento. Multiplicar por 1 no altera el valor de un término. El número de productos se duplica por cada variable que falta. Ejemplo: Convertir la siguiente expresión booleana al formato suma de productos canónicos: F = (a·b'·c) + (a'·b') + (a·b·c'·d) Tenemos 4 variables: a,b,c,d. Consideramos cada término por separado. a·b'·c = (a·b'·c) · (d+d') = (a·b'·c·d) + (a·b'·c·d') a'·b' = (a'·b') · (c+c') = (a'·b'·c) + (a'·b'·c') = = [ (a'·b'·c) · (d+d') ] + [ (a'·b'·c') · (d+d') ] = = [ (a'·b'·c·d) + (a'·b'·c·d') ] + [ (a'·b'·c'·d) + (a'·b'·c'·d') ] a·b·c'·d => Ya lo tenemos en forma canónica Sustituyendo cada término por su equivalente término canónico: F = (a·b'·c·d) + (a·b'·c·d') + (a'·b'·c·d) + (a'·b'·c·d') + + (a'·b'·c'·d) + (a'·b'·c'·d') + (a·b·c'·d)
  • 10. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 10 Conversión de un producto de sumas a su forma canónica Utilizando lo siguiente podemos convertir un término suma que no contenga todas las variables a otro que si las tenga: • Regla 8 del álgebra de Boole: (a · a' = 0) • Propiedad distributiva: a+(b·c) = (a+b) · (a+c) Tenemos que sumar a cada término suma que no esté en forma canónica un término formado por el producto de la variable que le falta y su complemento. Sumar 0 no altera el valor de una suma. El número de sumas se duplica por cada variable que falta. Ejemplo: Convertir la siguiente expresión booleana al formato de producto de sumas canónico. F = (a+b'+c) · (b'+c+d') · (a+b'+c'+d) Tenemos 4 variables: a,b,c,d. Consideramos cada término por separado. (a+b'+c) = (a+b'+c) + (d · d') = (a+b'+c+d) · (a+b'+c+d') (b'+c+d') = (b'+c+d') + (a · a') = (a+b'+c+d') · (a'+b'+c+d') (a+b'+c'+d) ⇒ Ya lo tenemos en forma canónica Sustituyendo cada término por su equivalente término canónico: F = (a+b'+c+d) · (a+b'+c+d') · (a+b'+c+d') · (a'+b'+c+d') · (a+b'+c'+d)
  • 11. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 11 Forma compacta de una función en forma canónica Una expresión en forma canónica puede expresarse de una forma compacta. La forma compacta de representar esta tabla o las expresiones lógicas sería indicando las combinaciones que hacen cierta (suma de productos) o falsa (producto de sumas) la función F de la siguiente forma: Forma de la expresión Forma compacta suma de productos F = Suma de mi = ∑ (Combinaciones ciertas) producto de sumas F = Producto de Mi = Π (Combinaciones falsas) Sea la función F definida por la tabla de verdad siguiente: a b c F Mintermus (m) Maxtermus (M) Valor 0 0 0 0 M0 = a+b+c 0 = 000 0 0 1 0 M1 = a+b+c' 1 = 001 0 1 0 0 M2 = a+b'+c 2 = 010 0 1 1 1 m3 = a'·b·c 3 = 011 1 0 0 0 M4 = a'+b+c 4 = 100 1 0 1 1 m5 = a·b'·c 5 = 101 1 1 0 1 m6 = a·b·c' 6 = 110 1 1 1 0 M7 = a'+b'+c' 7 = 111 Por tanto, las expresiones lógicas equivalentes "suma de productos" y "producto de sumas" son: F = m3+m5+m6 = (a'·b·c) + (a·b'·c) + (a·b·c') F = M0·M1·M2·M4·M7 = (a+b+c) · (a+b+c') · (a+b'+c) · (a'+b+c) · (a'+b'+c') Si expresamos en binario las combinaciones: Suma de productos (directo): 011+101+110 Producto de sumas (complementados): 000·001·010·100·111 Las expresiones compactas son: Suma de productos: F = ∑ (3,5,6) Producto de sumas: F = Π (0,1,2,4,7) Ambas expresiones compactas son equivalentes, como se demuestra aquí: q Sabemos que: Mi = mi' (DeMorgan) q Tenemos que: F = ∑ (3,5,6) = m3 + m5 + m6 q Obtenemos la función complementada F', que valdrá 1 para aquellas combinaciones que F=0 (y no estará definida para las mismas combinaciones que F). F' = ∑ (0,1,2,4,7) = m0+m1+m2+m4+m7 q Complementamos en ambas partes de la igualdad: F'' = F = (m0+m1+m2+m4+m7)' = m0'·m1'·m2'·m4'·m7' ⇒ ⇒ F = M0·M1·M2·M4·M7 = ⇒ F = Π(M0,M1,M2,M4,M7) = Π(0,1,2,4,7) F = ∑ (3,5,6) = Π (0,1,2,4,7)
  • 12. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 12 3.3. Puertas lógicas Introducción Los computadores actuales utilizan como soporte tecnológico los circuitos electrónicos, por lo que se consiguen grandes velocidades. Pero estos circuitos electrónicos no pueden manejar directamente cifras ni caracteres. La información se representa casi siempre mediante tensiones eléctricas. Ahora bien, pueden utilizarse tensiones eléctricas de dos tipos: • Señales analógicas: las tensiones toman cualquier valor dentro de un intervalo determinado. Permiten representar una magnitud y asignarle un valor cualquiera. • Señales discretas: las tensiones sólo toman unos valores concretos. Permiten representar un número limitado de valores diferentes. En el caso de que el número de valores diferentes que pueda representar la tensión sean solo dos, la señal se denomina lógica o digital. En los computadores se utilizan señales lógicas para representar la información. A los dos valores que puede tomar dicha señal, se les asigna habitualmente como 0 y 1. La razón de la utilización de este tipo de señales es, fundamentalmente tecnológica. Existe un tipo de circuitos electrónicos, denominados circuitos digitales, que trabajan solo con dos niveles de tensión, y que pueden realizar una transición de un nivel a otro. Las ventajas que presentan estos circuitos respecto a los analógicos son: • Gran simplicidad de diseño • Velocidad de trabajo más elevada • Consumo más reducido • Inmunidad al ruido muy elevada (margen de error) • Posibilidad de diseño descendente, al poder confeccionar cualquier circuito, por complejo que sea, con unidades más simples diseñadas previamente. • Posibilidad de aumentar hasta el nivel que se desee, la precisión en la representación de una información numérica. • Menor coste de fabricación, para las mismas prestaciones, ya que al poder construir cualquier circuito con unidades básicas, permite fabricar éstas en grandes cantidades. El único inconveniente es una complejidad superior de los circuitos, que no es tal inconveniente, gracias a la posibilidad de diseño y análisis descendente.
  • 13. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 13 Las únidades básicas más simples que componen los circuitos digitales se denominan puertas lógicas, y son circuitos que implementan las funciones lógicas elementales. Son bloques de construcción básicos de funciones más complejas. Se representan por unos símbolos de acuerdo al estándard ANSI / IEEE 91-1984. Los valores lógicos "0" y "1" se representan por niveles de tensión diferentes en las líneas de entrada y salida de estos circuitos. Realmente estos dos niveles de tensión son bastante diferentes entre si. Los circuitos digitales se diseñan de tal forma, que reconocen un valor lógico, aunque la tensión no tome exactamente el nivel definido, siempre y cuando esté dentro de una franja alrededor de dicho nivel, permitiendo una cierta inmunidad ante variaciones en la señal de entrada (ruido). Se dice que una lógica es positiva si la tensión correspondiente al "1" lógico es mayor que la tensión del "0" lógico. En caso contrario, se trata de una lógica negativa. La mayoría de las veces, el "0" lógico es la masa o tensión de 0 voltios. Los niveles de tensión utilizados vienen determinados por la tecnología empleada en la fabricación de circuitos. Puertas básicas De la definición de álgebra de Boole, las puertas básicas son: Puerta AND La salida es 1 si y sólo si todas y cada una de las variables de entrada toman el valor 1. La puerta AND realiza la función producto lógico de las variables de entrada: y = x1 · x2 · ... · xn Representación gráfica: Tabla de verdad: a b AND 0 0 0 0 1 0 1 0 0 1 1 1 Ejemplo de aplicación: Habilitar / impedir el paso de alguna señal. Si el cinturón de seguridad no está abrochado, se activa una de las entradas, pero mientras el coche no esté en marcha no nos avisará. Al arrancar, activamos la otra entrada, y una alarma o mensaje nos advertirá de que debemos colocarnos el cinturón.
  • 14. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 14 Puerta OR La salida es 1 si y sólo si al menos una de las entradas toma el valor 1. La puerta OR realiza la función de suma lógica: y = x1 + x2 + ... + xn Representación gráfica: Tabla de verdad: a b OR 0 0 0 0 1 1 1 0 1 1 1 1 Ejemplo de aplicación: Un sistema de alarma, en el que tenemos varios sensores en puertas y ventanas. En el momento en que cualquiera de los sensores detecte la presencia de un intruso, el valor de la función OR será "1", y podría activar un circuito de alarma (sirena, etc.). Puerta NOT (inversor) y = x' Representación gráfica: Tabla de verdad: a NOT 0 1 1 0 Ejemplo de aplicación: Realizar el complemento a 1 de un número binario, con una serie de inversores en paralelo, tantos como bits utilizados en el número binario.
  • 15. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 15 Puerta NAND La salida es 0 si y sólo si todas y cada una de las entradas toman el valor 1. En el resto de caos, la salida es 1. Equivale a una puerta AND seguida de una puerta NOT. Realiza la función: y = (x1 · x2 · ... · xn)' = x1' + x2' + ... + xn' Representación gráfica: Tabla de verdad: a b NAND / Neg-Or 0 0 1 0 1 1 1 0 1 1 1 0 La puerta NAND (AND+NOT) es equivalente a la puerta llamada negativa-OR (NOT+OR). El uso de una u otra puerta depende de si nos interesa detectar todas las entradas a nivel alto (NAND) o alguna a nivel bajo (Negativa-OR). Recordar los teoremas de De Morgan. Ejemplo de aplicación: En un proceso de fabricación tenemos dos tanques A y B de líquido, con sensores de nivel que se activan por nivel alto ("1"), es decir, cuando el nivel es igual o supera al del sensor. Tenemos dos posibilidades: Queremos que se nos encienda un testigo de color verde (LED conectado a +V) en un panel de control en el caso de que el nivel de los dos tanques esté por encima de unos valores correctos: NAND. Queremos que se nos encienda un testigo de color rojo (LED conectado a GND) en un panel de control en el caso de que el nivel de cualquiera de ellos descienda por debajo de un determinado nivel: Negativa-OR. Es decir, cuando la salida de estas puertas es 1 (3 casos) se enciende el LED rojo, y cuando es 0, se enciende el LED verde.
  • 16. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 16 Puerta NOR La salida es 0 si y sólo si al menos una de las entradas toma el valor 1. Equivale a una puerta OR seguida de una puerta NOT. Realiza la función: y = (x1 + x2 + ... + xn)' = x1' · x2' · ... · xn' Representación gráfica: Tabla de verdad: a b NOR / Neg-AND 0 0 1 0 1 0 1 0 0 1 1 0 La puerta NOR (OR+NOT) es equivalente a la puerta llamada negativa- AND (NOT+AND). El uso de una u otra puerta depende de si nos interesa detectar alguna de las entradas a nivel alto (NOR) o todas a nivel bajo (Negativa-AND). Recordar los teoremas de De Morgan. Ejemplo de aplicación: Monitorizar el tren de aterrizaje de un avión. Este dispone de tres mecanismos: rueda delantera y ruedas en las dos alas. Queremos que se encienda una luz verde si, tras pulsar el interruptor de "bajar el tren de aterrizaje", los tres mecanismos está correctamente extendidos, y una luz roja si alguno de ellos ha fallado. Cuando uno de los mecanismos se extiende, el sensor genera una corriente a nivel bajo; cuando se retrae, genera una corriente a nivel alto. El circuito sólo se alimentará al pulsar el botón de "bajar el tren de aterrizaje". Las tres señales serán las entradas de dos puertas lógicas, una NOR, que encenderá el LED Rojo, y una Negativa-AND que encenderá el LED Verde Realmente son dos puertas NOR, sólo que una de ellas funciona como una puerta Negativa-AND, para detectar un nivel bajo de los sensores (extendidos). Cuando los tres sensores están a nivel bajo (extendidos), la puerta Negativa-AND tiene como salida un nivel alto, que enciende el LED verde (conectado a GND). Si alguno de los tres sensores está nivel alto (retraidos), la puerta NOR tiene salida a nivel bajo, que enciende el LED rojo (conectado a +V). Es decir, cuando la salida de estas puertas es 0 (3 casos) se enciende el LED rojo, y cuando es 1, se enciende el LED verde.
  • 17. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 17 Puerta XOR (OR-Exclusiva) Una puerta XOR de 2 variables de entrada es tal que la salida toma el valor 1 cuando las dos entradas son diferentes, y toma el valor 0 cuando son iguales. Sólo tiene 2 entradas. Se representa por el símbolo ⊕. Representación gráfica: Tabla de verdad: a b XOR 0 0 0 0 1 1 1 0 1 1 1 0 La función se expresa en forma canónica como: y = (x1' · x2) + (x1 · x2') = (x1 + x2) · (x1' + x2') La definición para más de 2 entradas es compleja, pero puede obtenerse la expresión de la función en forma canónica fácilmente, sabiendo que la función OR-exclusiva tiene la propiedad asociativa: y = x1 ⊕ x2 ⊕ ... ⊕ xn = (((x1 ⊕ x2) ⊕ x3) ⊕ ... ⊕ xn) Esta puerta se utiliza bastante en muchos circuitos, como los generadores de paridad. Ejemplo de aplicación: Suma de dos bits sin acarreo (semisuma). Puerta XNOR (NOR-exclusiva) Equivale a una puerta OR-exclusiva seguida de una puerta NOT, por tanto, también tiene sólo 2 entradas. Representación gráfica: Tabla de verdad: a b XNOR 0 0 1 0 1 0 1 0 0 1 1 1
  • 18. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 18 Implementación de funciones con puertas NAND o NOR Hasta ahora hemos visto que cualquier función lógica podía definirse utilizando solamente las operaciones de complementación, suma y producto (puertas NOT, AND y OR). Vamos a ver ahora que cualquier función lógica (sistema digital) puede implementarse solamente con puertas NAND, o bien con puertas NOR. Por ello, a las puertas NAND y NOR se las conoce como puertas universales. Para ello, es suficiente obtener las puertas básicas, implementándolas con puertas NAND o NOR, es decir, debemos demostrar que es posible derivar las puertas NOT, AND y OR utilizando únicamente puertas NAND, y luego, puertas NOR. Las puertas básicas (NOT, AND y OR) pueden obtenerse con puertas NAND de la siguiente forma: Puerta básica Función Esquema NOT f = x’ = (x · x) ' ó también f = x’ = (x · 1) ' (el símbolo de una puerta NAND con una sola sola entrada no es válido) AND f = x1 · x2 = (x1 · x2) '' (complementando dos veces) OR f = x1 + x2 = (x1 + x2) '' = (x1' · x2') ' (complementando dos veces y aplicando el teorema de De Morgan) Este procedimiento nos lleva a un número excesivo de puertas, pudiéndose simplificar a continuación el circuito. De todas formas, si se quiere implementar una función con puertas NAND o NOR, lo más inmediato es modificar la expresión algebraica de la función mediante los teoremas de De Morgan.
  • 19. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 19 Ejemplo: Como ejemplo, vamos a implementar con puertas NAND y NOR una función expresada en forma de suma de productos (F1) y otra expresada en forma de productos de sumas (F2): F1 = (a · b · c) + (a' · b · c') + (a' · b' · c') F2 = (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' Puertas NAND (I) Sumas de productos F1 = (a · b · c) + (a' · b · c') + (a' · b' · c') = = ( (a · b · c) + (a' · b · c') + (a' · b' · c') ) ' ' = = ( (a · b · c)' · (a' · b · c')' · (a' · b' · c')' ) ' Lo que hemos hecho es complementar dos veces las función entera, con lo cual la función sigue siendo equivalente. A continuación, aplicamos el teorema de De Morgan, que convierte el complemento de una suma en el producto de los complementos. Así obtenemos una expresión en la que sólo tenemos productos seguidos de negaciones (NAND). (II) Productos de sumas F2 = (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' = = (a' · b' · c')' · (a · b' · c')' · (a · b' · c')' En este caso simplemente hemos aplicado el teorema de De Morgan a cada uno de los términos. Puertas NOR (I) Sumas de productos F1 = (a · b · c) + (a' · b · c') + (a' · b' · c') = = (a · b · c)' ' + (a' · b · c')' ' + (a' · b' · c')' ' = = (a' + b' + c') ' + (a + b' + c) ' + (a + b + c) ' Hemos complementado dos veces cada uno de los sumandos, y luego aplicamos De Morgan para transformar los productos en suma de negaciones. (II) Productos de sumas F2 = (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' = = ( (a + b + c)' ' · (a' + b + c)' ' · (a + b' + c')' ' )' ' = = ( (a + b + c)' ' ' + (a' + b + c)' ' ' + (a + b' + c')' ' ') ' = = ( (a + b + c)' + (a' + b + c)' + (a + b' + c')' ) '
  • 20. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 20 3.4. Métodos de simplificación de funciones Hemos visto como dos funciones con expresiones algebraicas diferentes eran equivalentes. Sin embargo, existen numerosas funciones con expresiones diferentes equivalentes a dichas funciones. De entre ellas, habrá algunas que poseerán un número menor de productos y sumas. Debemos buscar la más sencilla, para simplificar procesos posteriores como el de diseñar un circuito lógico para dicha función. El proceso de simplificación de funciones lógicas consiste en pasar de una expresión algebraica a otra equivalente con el menor número posible de sumas y productos. 3.4.1 Simplificación mediante propiedades del álgebra de Boole. Este método requiere un profundo conocimiento del álgebra booleana y una considerable experiencia en su aplicación. Las propiedades más utilizadas para la simplificación de funciones son: • Distributiva: + respecto ·: a + (b·c) = (a + b) · (a + c) · respecto +: a · (b+c) = (a · b) + (a · c) ∀ a,b,c ∈ B • ∀ a ∈ B, ∃ ! a' ∈ B tal que: a + a’ = 1 a · a’ = 0 • Ley de absorción: a + (a·b) = a a · (a+b) = a • Teoremas de De Morgan Ejemplos 1. F = (a·b'·c'·d) + (a·b'·c'·d') Aplicamos la propiedad distributiva: (a·b'·c'·d) + (a·b'·c'·d') = a·b'·c' · (d+d') = a·b'·c' · 1 = a·b'·c' De esta forma hemos reducido dos sumandos de 4 variables a uno solo de tres variables.
  • 21. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 21 2. F = (a+b'+c'+d) · (a+b'+c'+d') Podemos aplicar las mismas propiedades que antes, en su versión dual. (a+b'+c'+d) · (a+b'+c'+d') = (a+b'+c') + (d · d') = = (a+b'+c') + 0 = (a+b'+c') 3. F = a·b + a·(b+c) + b·(b+c) Comenzamos aplicando la propiedad distributiva. a·b + a·(b+c) + b·(b+c) = a·b + (a·b + a·c) + (b·b + b·c) = = a·b + a·c + b + b·c = a·b + a·c + b = a·c + b Hemos terminado aplicando dos veces la propiedad 10. 4. Función F1 del ejemplo anterior F1 = (a' · b · c') + (a' · b · c) + (a · b · c') + (a · b · c) = = (a' · b) · (c' + c) + (a · b) · (c' + c) = = (a' · b) · 1 + (a · b) · 1 = (a' · b) + (a · b) = = (a' + a) · b = 1 · b = b 5. Función F2 del ejemplo anterior F2 = (a + b + c) · (a + b + c') · (a' + b + c) · (a' + b + c') = = (a + b + (c' · c)) · (a' + b + (c · c')) = = (a + b + 0) · (a' + b + 0) = (a + b) · (a' + b) = = (a · a') + b = 0 + b = b Podemos comprobar que en los dos últimos ejemplos hemos llegado a la misma expresión simplificada. Anteriormente habíamos visto que ambas expresiones eran equivalentes. De este ejemplo no debe sacarse la conclusión de que una expresión en suma de productos y otra equivalente como producto de sumas, tras simplificar, conducen a la misma expresión. Esto, en general, no es cierto. El método de simplificación algebraica se utiliza poco, pues tiene varios inconvenientes: • No es sistemático (requiere ingenio y destreza). • En una expresión compleja, es difícil detectar todas las posibles simplificaciones. • En la mayoría de los diseños, una función se define por su tabla de verdad, debiendo obtener la expresión algebraica para poder simplificarla.
  • 22. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 22 3.4.2 Mediante tablas de Karnaugh Un mapa de Karnaugh es una forma de presentar la tabla de verdad de tal manera que la disposición de las combinaciones de valores es particularmente útil, de tal forma que la simplificación de una determinada expresión consiste en agrupar adecuadamente las celdas. La forma de la tabla dependerá del número de variables independientes con las que estemos trabajando. Los mapas de de Karnaugh pueden utilizarse para expresiones de hasta 5 variables. En el caso de tener más de 5 variables, tendríamos que recurrir a otro método que no vamos a ver, llamado método de Quine-McClusky. El número de celdas de un mapa de Karnaugh es igual al número total de posibles combinaciones de las variables de entrada, al igual que el número de filas de una tabla de verdad: 2n . Una sola variable (a): Sólo habrá dos símbolos de entrada: 1 y 0. La tabla de Karnaugh tendrá dos casillas, en donde el 0 indica el valor de 0 de entrada y el 1 indica el valor 1 de entrada. Para el proceso de simplificación que veremos a continuación, conviene numerar las casillas según un criterio, aunque no es obligatorio. Para ello pondremos un índice en la esquina superior derecha, comenzando desde el 0. a 0 0 a' 1 1 a Puesto que esta tabla contiene todos los posibles valores de entrada, cualquier función de una variable puede representarse en este diagrama, asignando a cada casilla el valor que toma la función para el valor de la variable de entrada indicada. Por ejemplo, si la función es F(a) = a' tendremos la tabla: a 0 1 1 0
  • 23. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 23 Dos variables (a,b): Ahora la tabla de Karnaugh debe contemplar las cuatro posibles combinaciones de las variables: (0,0), (0,1), (1,0), (1,1). a b 0 1 0 0 a'·b' 1 a'·b 1 2 a·b' 3 a·b El valor de una determinada celda es el valor binario de las dos variables a y b, comenzando por la parte izquierda y luego la parte superior. Sea la función F(a,b) = a + b. La representaremos del siguiente modo. a b 0 1 0 0 1 1 1 1 Tres variables (a,b,c): Se puede representar de forma horizontal o vertical. En este caso y en los restantes (con más variables), la forma de numerar las casillas depende de la combinación que represente una determinada columna o fila, y para etiquetar una determinada columna o fila hay que realizarlo de tal forma que el cambio de una combinación a la siguiente sólo varíe un bit. a bc 00 01 11 10 0 0 a'·b'·c' 1 a'·b'·c 3 a'·b·c 2 a'·b·c' 1 4 a·b'·c' 5 a·b'·c 7 a·b·c 6 a·b·c' El código cíclico empleado para las combinaciones de filas y columnas es algo importante. Como resultado de este código, las casillas que tienen en común un lado corresponden a combinaciones que difieren en el valor de una
  • 24. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 24 variable y se dice que son adyacentes; las casillas que tocan diagonalmente alguna de sus esquinas no son adyacentes. Las casillas adyacentes son clave en el proceso de simplificación. La adyacencia se define por un cambio de una única variable. Las celdas que difieren en una única variable son adyacentes. Las celdas cuyo valor difiere en más de una variable no son adyacentes. En la determinación de casillas adyacentes es necesario, para el caso de tres variables, considerar el diagrama de Karnaugh como una superficie cilíndrica en que los lados izquierdo y derecho están unidos. Siendo así, la celda 0 es contigüa a 2, y la celda 4 es contigua a 6. Cuatro variables (a,b,c,d): La tabla será, de nuevo, cíclica, donde los lados izquierdo y derecho están unidos, y de la misma forma, el superior e inferior. Las variables a y b se encuentran en la parte izquierda, mientras que las variables c y d en la parte superior. El valor de una determinada celda es el valor binario de a y b en la parte izquierda de la misma fila, combinado con los valores binarios de c y d en la parte superior de la misma columna. ab cd 00 01 11 10 00 0 a'·b'·c'·d' 1 3 2 01 4 5 7 6 11 12 13 15 14 10 8 9 11 10 a·b'·c·d' Dos celdas son adyacentes si sólo cambia un dígito, aunque no lo sean físicamente. Son adyacentes de extremo a extremo. Por ejemplo, son adyacentes los siguientes pares de celdas: 0-8, 0-2, 1-9, 3-11, 2-10, 12-14, 8-10, 4-6
  • 25. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 25 Cinco variables (a,b,c,d,e): Al igual que en el caso de 4 variables, se pueden solapar las partes laterales. Aquí se pueden solapar las partes extremas: laterales izquierda y derecha, y superior e inferior. Además, en este caso tenemos un eje central que actúa de espejo, de tal forma que la celda 3 es adyacente con la celda 7. Para comprobarlo, se ven las combinaciones y se observa que sólo cambia un bit. ab cde 000 001 011 010 110 111 101 100 00 0 1 3 2 6 7 5 4 01 8 9 11 10 14 15 13 12 11 24 25 27 26 30 31 29 28 10 16 17 19 18 22 23 21 20 En definitiva, podemos sacar las siguientes conclusiones: • Las tablas consideradas establecen una correspondencia biunívoca entre los valores de las variables de la función y el conjunto de casillas del diagrama de Karnaugh. • Cada combinación de valores de las variables representa un término canónico (producto o suma), es decir, existe también una correspondencia entre el conjunto de los términos canónicos y el conjunto de las casillas de la tabla de Karnaugh. Por ejemplo, para cuatro variables, la combinación (0,0,0,0) representa: Ø el producto canónico: a' · b' · c' · d' (de forma directa) Ø la suma canónica: a + b + c + d (de forma complementada) • Las celdas que tienen un lado común son adyacentes, y corresponden a términos canónicos que difieren en sólo el valor de una de las variables.
  • 26. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 26 Construcción de una tabla de Karnaugh Podemos construir una tabla de Karnaugh desde la expresión lógica (suma de productos o producto de sumas), o bien, desde una tabla de verdad. Vamos a explicar todos estos casos basándonos en el siguiente ejemplo que ya vimos anteriormente. Sea la función F definida por la tabla de verdad siguiente: a b c F Mintermus (m) Maxtermus (M) Valor 0 0 0 0 M0 = a+b+c 0 = 000 0 0 1 0 M1 = a+b+c' 1 = 001 0 1 0 0 M2 = a+b'+c 2 = 010 0 1 1 1 m3 = a'·b·c 3 = 011 1 0 0 0 M4 = a'+b+c 4 = 100 1 0 1 1 m5 = a·b'·c 5 = 101 1 1 0 1 m6 = a·b·c' 6 = 110 1 1 1 0 M7 = a'+b'+c' 7 = 111 Por tanto, las expresiones lógicas equivalentes "suma de productos" y "producto de sumas" y compactas serían: F = ∑ (3,5,6) = (a'·b·c) + (a·b'·c) + (a·b·c') F = Π (0,1,2,4,7) = (a+b+c) · (a+b+c') · (a+b'+c) · (a'+b+c) · (a'+b'+c') q Desde la expresión lógica La forma de construcción de la tabla de Karnaugh depende de la forma de la expresión que tengamos (suma de productos o producto de sumas). En ambos casos, la expresión debe estar expresada en forma canónica, es decir, todos sus términos son canónicos (contienen todas las variables). Podemos ver también la forma compacta que representa cada caso, poniendo entre paréntesis los números de las combinaciones de que hacen cierta la expresión lógica. Veremos algún ejemplo en el siguiente punto. Dada una función con "n" variables, la construcción de la tabla de Karnaugh correspondiente se efectúa indicando mediante un "1" o un "0" las celdas que corresponden a términos canónicos que forman parte de la función, y dejando en blanco las casillas correspondientes a los términos que no forman parte de la función. Partiendo de la expresión en su forma canónica, procedemos como sigue.
  • 27. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 27 q Desde la expresión "suma de productos": Introduciremos un "1" en el mapa de Karnaugh por cada término producto (mintermus) de la expresión. Consideramos los valores binarios de las variables del término de forma directa (sin complementar). En las casillas correspondientes a dichas combinaciones colocaremos 1's, pues consideramos los casos en los que la función es cierta; y para que esto ocurra, por lo menos uno de los términos debe ser cierto (es una suma), y para que un término (producto) sea cierto, todas sus variables deben ser ciertas. Siguiendo con el ejemplo, la expresión "suma de productos" es: F = ∑ (3,5,6) ó también F = (a'·b·c) + (a·b'·c) + (a·b·c') ==> 011 + 101 + 110 (directos) Vamos a construir la tabla de Karnaugh: a b c 00 01 11 10 0 0 1 3 1 2 1 4 5 1 7 6 1 Podemos comprobar que hemos colocado un "1" en las casillas correspondientes a las combinaciones indicadas por los términos canónicos de la función compacta. El resto de casillas podemos poner "0" ó dejarlas en blanco. Otro ejemplo: F = a'·b'·c' + a'·b'·c + a·b·c' + a·b'·c' 000 001 110 100 a bc 00 01 11 10 0 1 1 1 1 1
  • 28. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 28 q Desde la expresión "producto de sumas": En este caso introduciremos un "0" en el mapa de Karnaugh por cada término suma (maxtermus) de la expresión. Aquí, los valores binarios de las variables de los términos van complementados, ya que estamos considerando los valores que hacen que la función sea falsa (0); y para que esto ocurra, basta con que uno de los términos sea falso (es un producto), y para que un término (suma) sea falso, basta con que una de sus variables sea falsa. Consideramos los valores binarios que hacen falso cada término. Siguiendo con el ejemplo, la expresión "producto de sumas" es: F = Π (0,1,2,4,7) ó también F = (a+b+c) · (a+b+c') · (a+b'+c) · (a'+b+c) · (a'+b'+c') ==> ==> 000 · 001 · 010 · 100 · 111 (complementados) La tabla de Karnaugh del ejemplo ahora será: a bc 00 01 11 10 0 0 0 1 0 3 2 0 1 4 0 5 7 0 6 Podemos comprobar que hemos colocado un "0" en las casillas correspondientes a las combinaciones indicadas por los términos canónicos de la función compacta: F = Π (0,1,2,4,7). El resto de casillas podemos poner "1" ó dejarlas en blanco. Otro ejemplo: F = (a+b+c) · (a+b'+c) · (a'+b'+c) · (a'+b+c') 000 010 110 101 a bc 00 01 11 10 0 0 0 1 0 0
  • 29. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 29 q Desde la tabla de verdad: Recordemos que una tabla de verdad proporciona la salida de una expresión lógica para todas las posibles combinaciones de las variables de entrada. Lo único que tenemos que hacer es trasladar los "1" o los "0" de la columna de salida (F) de la tabla de verdad directamente al mapa de Karnaugh, a las celdas correspondientes a los valores asociados de las combinaciones de variables de entrada. Es el caso más sencillo, pues trabajamos de forma directa. Podemos implementar por "1" (considerando los 1's) o por "0" (considerando los 0's). Lo más rápido es considerar aquel que tenga menos ocurrencias, rellenar la tabla de Karnaugh para dicho valor y finalmente rellenar el resto de casillas con el otro valor o dejarlas en blanco. Para el ejemplo tenemos aquí los dos casos: a b c 00 01 11 10 a b c 00 01 11 10 0 0 1 3 1 2 0 0 0 1 0 3 2 0 1 4 5 1 7 6 1 1 4 0 5 7 0 6 Implementando por “1”: considerando los valores que hacen que la función sea cierta (1). El resto de casillas podemos dejarlas en blanco o poner "0". Implementando por “0”, considerando los valores que hacen que la función sea falsa (0). El resto de casillas podemos dejarlas en blanco o poner "1". NOTA: Independientemente de como hayamos construido la tabla de Karnaugh (implementando por "1" o por "0"), después, para el proceso de simplificación, podremos obtener la función simplificada como suma de productos (implementando por "1") o como producto de sumas (implementando por "0").
  • 30. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 30 Mecanismo de simplificación Si dos celdas adyacentes están marcadas con 1, tenemos dos términos canónicos que difieren sólo en una variable, que además, dicha variable aparecerá como directa (valor 1) en un término canónico y como complementada (valor 0) en el otro término. Podemos agrupar las dos celdas adyacentes produciendo un único término canónico en que falta justo esa variable en que diferían. Vamos a ver el mecanismo de simplificación: 1. Construir la tabla de Karnaugh adecuada según el número de variables, indicando con un "1" y con "0" las celdas que correspondan. 2. Seleccionar la forma final que tendrá la función simplificada: suma de productos (implementando por "1" ) o producto de sumas (implementando por "0"). En los siguientes pasos suponemos que implementamos por "1". 3. Agrupar celdas adyacentes marcadas con "1". Primero, grupos de 2 unos que no pueden formar grupos de 4. Luego formar grupos de 4 unos que no pueden formar un grupo de 8, etc. Interesa buscar los grupos más numerosos, para obtener el menor número de grupos posible. Cada celda de un grupo tiene que ser adyacente a una o más celdas del mismo grupo, pero no todas las celdas del grupo tienen que ser adyacentes entre si. Además un "1" puede estar en varios grupos a la vez. 4. Tomar todas las celdas con "1" que no se pueden agrupar con ninguna otra como grupos de un "1" (aislados). 5. Cuando se hayan considerado todos los "1" se ha finalizado el proceso. Los grupos de "1" conseguidos y los "1" aislados son los términos que expresarán la función lógica en una forma irreducible. Este proceso de simplificación no es único, pudiéndose obtener por tanto varias formas irreducibles de la misma función, dependiendo de las distintas agrupaciones que podemos realizar. Una vez realizadas las agrupaciones, para obtener la expresión de la función lógica irreducible, realmente lo que haremos es utilizar de forma sistemática las propiedades: (a · b · c) + (a' · b · c) = (a + a') · b · c = 1 · b · c = b · c (a + b + c) · (a' + b + c) = (a · a') + b + c = 0 + b + c = b + c Es decir, las variables que aparecen complementadas y sin complementar dentro del mismo grupo se eliminan (variables contradictorias). NOTA: Siempre que un mapa de Karnaugh sea un tablero de ajedrez en el que la casilla de la esquina inferior derecha sea un 0, la solución es la OR- Exclusiva (XOR) de las variables (F = a·b' + a'·b = a ⊕ b). Si dicha casilla es un 1, la solución es la OR-Exclusiva negada (XNOR) de las variables (F = a·b + a'·b' = (a ⊕ b)'.
  • 31. Estructura de computadores Tema 3: Representación y minimización de funciones lógicas 31 Ejemplo: Sea la función F vista anteriormente. Como es suma de productos implementamos por “1” (de forma directa) para construir la tabla de Karnaugh: F = a'·b'·c' + a'·b'·c + a·b·c' + a·b'·c' 000 001 110 100 Hacemos las agrupaciones, sobre su tabla de Karnaugh. Como queremos obtener una suma de productos, implementamos por “1”: a bc 00 01 11 10 0 1 1 1 1 1 La expresión irreducible será: F = (a’ · b') + (a · c') Ejemplo: Sea la siguiente tabla de Karnaugh obtenida directamente desde la tabla de verdad siguiente, implementando por “1” o por "0" (no importa): a b c F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 F = Σ (3,5,6) Su tabla de Karnaugh será: a bc 00 01 11 10 0 0 0 1 0 3 1 2 0 1 4 0 5 1 7 0 6 1 • Implementando por "1" (suma de productos): No podemos asociar ningún grupo de "1" que sea de 2, 4 u 8. Por tanto, la función simplificada será: F = (a'·b·c) + (a·b'·c) + (a·b·c') Casilla 6 Casilla 5 Casilla 3 • Implementando por "0" (producto de sumas): No tenemos grupos de 8 ni de 4 "0". Grupos de 2 "0": casillas 0-1, 0-4, 0-2 "0" aislados: casilla 7
  • 32. Estructura de computadores Tema 3 32 La función simplificada será: F = (a+b) · (b+c) · (a+c) · (a'+b'+c') Casilla 7 Grupo 0-2 Grupo 0-4 Grupo 0-1 Ejemplo: Sea la función F(a,b,c,d) = ∑ (0,4,5,7,8,9,13,15), construimos su tabla de Karnaugh (implementando por “1”) y vamos a obtener la función simplificada en forma de suma de productos (implementando por "1"). ab cd 00 01 11 10 00 0 1 1 3 2 01 4 1 5 1 7 1 6 11 12 13 1 15 1 14 10 8 1 9 1 11 10 Agrupando y simplificando según el mecanismo obtendríamos: F = (b·d) + (a'·c'·d') + (a'·b'·c') Grupo 2: 8,9 Grupo 2: 0,4 Grupo 4: 5,7,13,15 Dependiendo de las agrupaciones que hagamos, podríamos haber obtenido otras formas irreducibles de la función, pero no todas serán la mínima. Ejemplo: Sea la función F(a,b,c,d) = ∑ (5,6,9,10), construimos su tabla de Karnaugh (implementando por “1”) y vamos a obtener la función simplificada como producto de sumas (implementando por "0"). ab cd 00 01 11 10 00 0 0 1 0 3 0 2 0 01 4 0 5 1 7 0 6 1 11 12 0 13 0 15 0 14 0 10 8 0 9 1 11 0 10 1
  • 33. Estructura de computadores Tema 3 33 Si implementásemos por "1" (suma de productos), vemos que no podemos agrupar, pues no hay celdas con "1" adyacentes. Esto quiere decir que no se puede reducir, y su forma mínima como suma de productos es: F = (a'·b·c'·d) + (a'·b·c·d') + (a·b'·c'·d) + (a·b'·c·d') Agrupando por "0" y simplificando según el mecanismo obtendríamos la función como producto de sumas: F = (c+d) · (c'+d') · (a'+b') · (a+b) Grupo 4: 0,1,3,2 Grupo 4: 12,13,15,14 Grupo 4: 3,7,15,11 Grupo 4: 0,4,12,8 Esta expresión contiene sólo 8 letras, en lugar de las 16 de la forma suma de productos y es, por tanto, mínima. Como conclusión, una función lógica o booleana puede representarse y simplificarse, tanto en su expresión como suma de productos, como en la de producto de sumas, mediante una tabla de Karnaugh. Indiferencias en el mapa de Karnaugh Algunas veces se producen situaciones en las que algunas combinaciones de las variables de entrada no están permitidas o no están determinadas para un problema concreto, ó bien, no nos importa la salida para dichas combinaciones. Estos casos los llamaremos indiferencias, ó términos indiferentes. Los representaremos por 'x'. Esto significa que a estos términos les podemos asignar "1" ó "0". Hemos visto que las funciones lógicas se pueden expresar de forma compacta como suma de productos canónicos o producto de sumas canónicas. En el primer caso considerábamos los casos en los que se cumple la función ("1"), y en el segundo, los casos en los que la función es falsa ("0"). Ahora tenemos un tercer valor que nos puede aparecer en la función de salida. Para representar una función en forma compacta que tiene indiferencias en la salida hacemos lo siguiente: Forma de la expresión Forma compacta suma de productos F = ∑ ( Combinaciones ciertas ) + d ( Combinaciones indiferentes ) producto de sumas F = Π ( Combinaciones falsas ) · d ( Combinaciones indiferentes ) donde "d(Combinaciones indiferentes)" representa una lista de las combinaciones indiferentes de la función. En el caso de la "suma de productos", las combinaciones van de forma directa. En el caso del "producto de sumas", las combinaciones van complementadas, incluso las indiferentes.
  • 34. Estructura de computadores Tema 3 34 Ejemplo Como ejemplo vamos a analizar el código BCD. Hay muchas formas de representar datos numéricos en forma binaria. Una puede ser escribir el número en base 2, que se denomina codificación binaria directa. Otra forma es codificar los números decimales dígito por dígito. Esta codificación se denomina BCD (Binary-Coded-Decimal). Hay varios tipos de códigos BCD, pero en general, se trata simplemente de sustituir cada dígito decimal (0-9) por su equivalente binario. En BCD, al igual que en la codificación binaria directa, necesitamos 4 bits. Por tanto, el número de combinaciones posibles es 24 = 16. Sin embargo, para el código BCD sólo utilizamos 10. Las 6 restantes combinaciones binarias no se pueden dar en esta codificación. Por ejemplo, para codificar el número decimal 469 en BCD: 4 6 9 10 = 0100 0110 1001 2-BCD Vamos a diseñar un circuito que teniendo como código de entrada BCD, encienda un foco de luz cuando tengamos la combinación BCD correspondiente al 9 decimal. Para ello, lo primero que hacemos es construir su tabla de verdad. a b c d F a 0 0 0 0 0 0 0 0 1 0 b 0 0 1 0 0 F 0 0 1 1 0 c 0 1 0 0 0 d 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 F = Σ(9) + d(10,11,12,13,14,15) 1 0 0 0 0 1 0 0 1 1 1 0 1 0 x 1 0 1 1 x Su salida nos es indiferente. 1 1 0 0 x No se pueden dar en el 1 1 0 1 x código BCD. 1 1 1 0 x 1 1 1 1 x 9
  • 35. Estructura de computadores Tema 3 35 Implementando por “1”: Haciendo uso de las indiferencias vamos a simplificar aun más la función. Para ello construimos la tabla de Karnaugh, implementando por “1” (es lo más rápido, pues sólo tenemos una combinación): Sin utilizar términos indiferentes: cd ab 00 01 11 10 00 0 0 0 0 01 0 0 0 0 11 x x x x 10 0 1 x x Sólo tenemos un "1" aislado (no podemos agrupar nada), por tanto, la función no se puede simplificar, es decir, obtendríamos que: F = a·b'·c'·d Utilizando términos indiferentes: Los términos indiferentes (x) pueden utilizarse para aprovechar mejor el método del mapa de Karnaugh, por que les podemos dar el valor que nos interese para formar los grupos tan grandes como sea posible, pues cuanto más grande sea el grupo, más simple será el término resultante. Utilizando los términos indiferentes como si fueran "1" obtenemos una función más sencilla. cd ab 00 01 11 10 00 0 0 0 0 01 0 0 0 0 11 x x x x 10 0 1 x x NOTA: debemos agrupar todos los 1's o 0's, utilizando "x", pero todas las casillas con "x" no tienen por qué incluirse en un grupo. Podemos realizar un grupo de 4 "1", con lo cual: F = a · d a · b' · c' · d a · d
  • 36. Estructura de computadores Tema 3 36 Implementando por “0” Construimos la tabla de Karnaugh del mismo modo que antes, es decir, implementando por "1" ya que sólo tenemos una combinación, pero ahora implementaremos por "0" a la hora de la simplificación (agruparemos "0"). Pondremos las condiciones indiferentes donde correspondan ("x"), y en el resto de casillas pondremos "0". Sin utilizar términos indiferentes: cd ab 00 01 11 10 00 0 0 0 0 01 0 0 0 0 11 x x x x 10 0 1 x x La expresión irreducible que obtenemos es: F = a · (a'+b+c+d) Utilizando términos indiferentes: cd ab 00 01 11 10 00 0 0 0 0 01 0 0 0 0 11 x x x x 10 0 1 x x Tenemos dos grupos de 8. Por tanto, la expresión irreducible es: F = a · d Podemos observar que obtenemos la misma expresión irreducible, al implementar por “1” y por “0” cuando tenemos en cuenta las indiferencias, aunque esto, en general, no es así. Como vemos, las expresiones se simplifican mucho más, y, por tanto, la construcción del circuito. El inconveniente de estos circuitos es que si estos estados indiferentes apareciesen, la reacción del circuito sería imprevisible. d a a' + b + c + d a
  • 37. Estructura de computadores Tema 3 37 3.5. Funciones incompletas Funciones incompletas Las funciones incompletas o incompletamente definidas son aquellas que no tienen su salida definida para alguna de las combinaciones de entrada. Suponemos que las salidas para dichas combinaciones de entradas es "indiferente". Como hemos visto, estas combinaciones se utilizan para simplificar las funciones mediante mapas de Karnaugh. Conjuntos completos Un conjunto de funciones es completo en un álgebra de Boole si y sólo si cualquier función booleana puede implementarse con dichas funciones. Ejemplos de conjuntos completos: • { AND, OR, NOT } • { OR, NOT } ≡ { NOR } • { AND, NOT } ≡ { NAND } Ejemplos de conjuntos no completos: • { AND, OR } Nivel de un circuito Dado un circuito con una serie de puertas lógicas, puesto que por cada una de estas puertas que la señal eléctrica atraviesa se produce un retraso (tiempo de propagación), es importante especificar el número de puertas que atraviesa la información de entrada hasta llegar a la salida. Una puerta se considera de nivel i, donde i > 1, si y sólo si: a) no recibe ninguna entrada de puertas de nivel j, con j > i. b) tiene al menos una entrada procedente de una puerta de nivel i-1. Un circuito lógico es de nivel i, si al menos contiene una puerta de nivel i, y no contiene ninguna puerta de nivel j, siendo j > i. Dicho de otro modo, el nivel de un circuito lógico será el nivel máximo de las puertas. El coste económico de un circuito dependerá del número de puertas. La velocidad de un circuito dependerá del nivel de dicho circuito. Hemos visto como podemos simplificar el diseño de un circuito, reduciendo el número de puertas y, por tanto su coste, pero en ocasiones, a costa de que el circuito tenga un nivel mayor, es decir, sea más lento.
  • 38. Estructura de computadores Tema 3 38 Ejemplo Sea la función F = (a' + b + c') · (b + d) · (c' + b · a) Vamos a implementarla con puertas NAND y NOR. Posteriormente, vamos a simplificarla, volviendo a expresarla con puertas NAND y NOR. Con esto podremos averiguar el número de puertas y nivel de los circuitos obtenidos en cada caso. Puertas NAND F = (a' + b + c') · (b + d) · (c' + b · a) = = (a' + b + c')' ' · (b + d)' ' · (c' + b · a)' ' = = (a · b' · c)' · (b' · d')' · (c · (b · a)')' Si dibujamos el circuito, obtendremos un circuito con 8 puertas y de nivel 4. Puertas NOR F = (a' + b + c') · (b + d) · (c' + b · a) = = ( (a' + b + c') · (b + d) · (c' + b · a) ) ' ' = = ((a' + b + c')' + (b + d)' + ( c' + (b · a)'' )' ) ' = = ((a' + b + c')' + (b + d)' + ( c' + (b' + a')' )' ) ' Si dibujamos el circuito, obtendremos un circuito con 8 puertas y de nivel 4, igual que en el caso anterior (puertas NAND). Simplificación Para simplificar la función mediante tablas de Karnaugh debemos expresar la función en forma canónica, esto es, todos sus términos deben ser canónicos: F = (a' + b + c') · (b + d) · (c' + b · a) = x · y · z x = (a' + b + c') + (d · d’) = (a’+b+c’+d) · (a’+b+c’+d’) y = (b + d) + (a · a’) = [ (a+b+d) · (a’+b+d) ] + (c · c’) = (a+b+d+c) · (a+b+d+c’) · (a’+b+c+d) · (a’+b+c’+d) z = (c' + (b · a)) + (d · d’) = (a · b + c’ + d) · (a · b + c’ + d’) Como la función F es un producto de sumas, implementamos por “0”, es decir, las combinaciones de cada uno de los términos que nos indican las casillas en la tabla de Karnaugh van complementadas, es decir, consideramos los casos en los que la función F es falsa, que lo será cuando lo sea cualquiera de sus términos.
  • 39. Estructura de computadores Tema 3 39 Los términos serán falsos para cualquiera de las combinaciones siguientes: x = 1010, 1011 y = 0000, 0010, 1000, 1010 z = (a·b)10, (a·b)11 (Para que (a·b) sea 0 ==> a=0 ó b=0) abcd 00 01 11 10 abcd 00 01 11 10 00 0 0 1 3 0 2 0 00 0 0 1 1 3 0 2 0 01 4 5 7 0 6 0 01 4 1 5 1 7 0 6 0 11 12 13 15 14 11 12 1 13 1 15 1 14 1 10 8 0 9 11 0 10 0 10 8 0 9 1 11 0 10 0 Implementando por “0”: F = (b+d) · (a+c’) · (b+c’) Si ahora transformamos la función irreducible obtenida para utilizar sólo puertas NAND y NOR y dibujamos el circuito equivalente obtenemos: NAND: circuito con 8 puertas y nivel 4 NOR: circuito con 4 puertas y nivel 3 Implementando por “1”: F = (b·c’) + (c’·d) + (a·b) Del mismo modo, si ahora transformamos la función irreducible obtenida para utilizar sólo puertas NAND y NOR y dibujamos el circuito equivalente, en este caso obtenemos: NAND: circuito con 5 puertas y nivel 3 NOR: circuito con 8 puertas y nivel 4 Vemos que hemos obtenido varias expresiones irreducibles. De todas ellas, sólo una será mínima. En este caso, se ha conseguido al implementar por 0 y luego transformar la expresión para utilizar sólo puertas NOR. b+d a+c' b+c' b · c' c' · d a · b
  • 40. Estructura de computadores Tema 3 40 Apéndice A – Circuitos Integrados Circuito Integrado Los circuitos digitales se construyen con circuitos integrados (IC). Un IC es un pequeño cristal semiconductor de silicio, llamado informalmente chip, que tiene los componentes electrónicos de las puertas digitales. Las puertas se interconectan en el chip para formar el IC. El chip se monta en un contenedor de cerámica o plástico y se sueldan sus conexiones (entradas y salidas) a las patillas externas para formar el IC. La cantidad de patillas puede variar, dependiendo del tamaño del IC, desde 14 hasta varios cientos. Cada IC tiene una etiqueta impresa en la superficie exterior que lo identifica mediante una designación numérica. Con esta referencia, podremos consultar sus características en los catálogos del fabricante. Niveles de integración A medida que avanza la tecnología de los IC, ha aumentado considerablemente la cantidad de puertas que pueden colocarse en un único chip de silicio. Dependiendo de la escala de integración de los IC tendremos más o menos puertas. SSI (Small-scale integrated): menos de 10 puertas. MSI (Medium-scale integrated): de 10 a 100 puertas. LSI (Large-scale integrated): de 100 a miles de puertas. VLSI (Very large-scale integrated): varios miles o millones de puertas. Familias lógicas digitales Los IC digitales se clasifican no sólo por su operación lógica, sino también por la tecnología de circuito a la que pertencen. La tecnología se conoce como familia lógica digital. Cada una de las familias tiene su propio circuito electrónico básico (NAND, NOR, NOT), sobre el que se desarrollan circuitos digitales y funciones más complejos. Los componentes electrónicos utilizados en la construcción del circuito básico suelen dar su nombre a la tecnología.
  • 41. Estructura de computadores Tema 3 41 Las familias lógicas de circuitos integrados más importantes son: • RTL (resistor-transistor logic) • DTL (diode-transistor logic) • TTL (transistor-transistor logic) • ECL (emitter-coupled logic) • MOS (metal-oxide semiconductor) • CMOS (complementary metal-oxide semiconductor) • BiCMOS (bipolar complementary metal-oxide semiconductor) Parámetros de las familias lógicas Para analizar las características de las distintas familias lógicas digitales estudiamos unos parámetros de las puertas básicas de cada familia: • Márgenes de tensión de entrada y salida: estos valores determinan el intervalo de cada uno de los niveles lógicos ("1"/H y "0"/L) de la familia. • Márgenes de corriente de entrada y salida: los valores de tensión anteriores están directamente relacionados con la corriente que entre o salga de las patillas. • Convergencia de entrada (fan-in): número de entradas de una puerta. • Divergencia de salida (fan-out): nos indica el número de puertas (cargas) que podemos conectar a la salida sin que afecte a su buen funcionamiento. Nos indica el número de “cargas estándar” que soporta la salida; una “carga estándar” es la cantidad mínima de corriente que necesita una entrada de otra puerta. • Margen de ruido: es el voltaje externo de ruido máximo superpuesto a una entrada normal sin que afecte a la salida del circuito. • Disipación de potencia: es la potencia consumida por una puerta, gran parte de la cual de disipa como calor. • Retardo de propagación: es el tiempo necesario para que el cambio de valor de una entrada se propague a la salida. La velocidad de operación está en relación inversa con los retardos de propagación más grandes. Márgenes de tensión de entrada y salida • VIH = mínima tensión que se reconoce en una entrada como nivel alto (H) o "1" lógico. En el caso de un inversor es el valor mínimo de la tensión de entrada que produce un "0" a la salida. • VIL = máxima tensión que se reconoce en una entrada como nivel bajo (L) o "0" lógico. En el caso de un inversor es el valor máximo de la tensión de entrada que produce un "1" a la salida. • VOH = mínima tensión de la salida de una puerta cuando el nivel es alto (para una corriente de salida especificada). • VOL = máxima tensión de la salida de una puerta cuando el nivel es bajo (para una corriente de salida especificada).
  • 42. Estructura de computadores Tema 3 42 Gráficamente: La zona rayada representa la zona de incertidumbre entre los dos estados, es decir, aquellos valores que no se reconocen ni como "0" ni como "1". Márgenes de corriente de entrada y salida • IIH = corriente que fluye por una entrada cuando se aplica un voltaje de nivel alto. Para Ve = VOH è obtenemos el mínimo valor. • IIL = corriente que fluye por una entrada cuando se aplica un voltaje de nivel bajo. Para Ve = VOL è obtenemos el mínimo valor. • IOH = corriente que fluye por una salida para un voltaje de nivel alto en dicha salida. El valor máximo garantiza una VS>=VOH, con el máximo número de cargas conectadas a la salida. • IOL = corriente que fluye por una salida para un voltaje de nivel bajo en dicha salida. El valor máximo garantiza una VS<=VOL, con el máximo número de cargas conectadas a la salida. Divergencia de salida (Fan-out) El fan-out lo podemos calcular a partir de los datos del fabricante como la razón entre la corriente máxima que proporciona la salida de una puerta (puerta excitadora) y la corriente que consumen las entradas conectadas a ella. • Fan-outH = Fan-out = min ( Fan-outH, Fan-outL ) • Fan-outL = NMH NML L H L H Entrada Salida VOL VIL VIH VOH IH OH I I IL OL I I
  • 43. Estructura de computadores Tema 3 43 Márgenes de ruido (NM) En el contexto de circuitos y sistemas digitales significa variaciones transitorias indeseadas de voltajes o corrientes en los nodos del circuito. Si la variación adquiere una magnitud considerable más allá de unos límites (márgenes de ruido), entonces la señal digital queda distorsionada y el circuito puede interpretar un "1" lógico donde debía interpretar un "0" lógico y viceversa, pudiendo incluso dejar la señal en la zona de incertidumbre provocando un mal funcionamiento del sistema. El ruido puede tener diversas causas: 1. Acoples capacitivos e inductivos entre líneas del mismo circuito. 2. Picos de tensión y corriente generados por los circuitos de alimentación. 3. Factores externos: relés, interruptores, motores, señales de radiofrecuencia, etc. En general, los márgenes de ruido son distintos para los estados H y L, y se definen de la siguiente manera (siempre son positivos): • Margen de ruido para el estado alto (NMH): es la máxima cantidad de ruido que puede afectar a una señal en estado alto para que la señal se siga reconociendo como tal a la entrada de una puerta lógica. NMH = | VOH - VIH | • Margen de ruido para el estado bajo (NML): es la máxima cantidad de ruido que puede afectar a una señal en estado bajo para que la señal se siga reconociendo como tal a la entrada de una puerta lógica. NMH = | VIL - VOL | • Margen de ruido (NM): si queremos evitar cualquier tipo de mal funcionamiento por ruido, tanto a nivel alto como a nivel bajo, debemos evitar señales de ruido mayores de lo que nos indique el menor de los dos márgenes: NM = min ( NMH, NML ) Disipación de potencia Se refiere a la disipación de energía que se produce en una puerta que está en estado L un 50% del tiempo y en estado H el otro 50%. Una disipación alta implica, además de un consumo elevado de energía, un aumento de la temperatura de los circuitos. Por tanto, este parámetro deberemos minimizarlo, ya que ello evitará costes adicionales en concepto de refrigeración del circuito. Para estimar el consumo de energía, se calcula la corriente que entrega la fuente de alimentación en los dos estados L y H (corriente media): Pd = ICC · VCC = (ICCH + ICCL / 2) · VCC
  • 44. Estructura de computadores Tema 3 44 Retardo de propagación El retardo de propagación es el parámetro más importante desde el punto de vista del diseño lógico, ya que en los sistemas digitales modernos resulta de particular interés conocer cual es la velocidad de respuesta de los circuitos. Se definen tres parámetros de retardo de propagación: • Tiempo de propagación “high-low” (tpHL): es el tiempo transcurrido desde que se produce el cambio en la entrada (IN), hasta que la salida (OUT) cambia de nivel alto (“1”) a bajo (“0”), considerando siempre el punto del 50% de las señales de voltaje. • Tiempo de propagación “low-high” (tpLH): es el tiempo transcurrido desde que se produce el cambio en la entrada (IN), hasta que la salida (OUT) cambia de nivel bajo (“0”) a alto (“1”), considerando siempre el punto del 50% de las señales de voltaje. • Retardo de propagación (tpd): es el valor máximo de estos dos retardos, ya que nos interesa conocer el retardo de propagación en el peor caso: tpd = max ( tpHL, tpLH). El motivo de que se produzcan estos retrasos está en que todo circuito real lleva asociadas unas capacidades parásitas que es necesario cargar o descargar en cada transición (capacitancia): Las fuentes de estas capacidades son: 1. los circuitos de entrada, incluyendo todos sus componentes: (resistencias, diodos, transistores), cableado interno, etc. 2. las pistas o cables que unen la salida de una puerta con la entrada de otra puerta. 3. los circuitos de salida, incluyendo transistores de salida, cableado interno, etc. Ejemplo – Retardo de propagación de un inversor IN 50% OUT 50% tpHL tpLH
  • 45. Estructura de computadores Tema 3 45 Interconexión entre familias Puede que nos interese en alguna ocasión realizar un circuito utilizando IC de distintas familias. La conexión de puertas de distintas familias no es inmediata ya que, al trabajar cada una con distinta tecnología, las características eléctricas varían. Dos familias se dice que son compatibles cuando es posible la interconexión directa de circuitos de dichas familias. Si dos familias no son compatibles, la interconexión no se podrá hacer de forma directa, sino que será necesario colocar un circuito entre ambas (interfaz) que consiga adaptar los niveles eléctricos de tensiones e intensidades (corrientes): diodos, resistencias, adaptadores de nivel, etc. A) Condición sobre las tensiones: Las tensiones de salida de las puertas excitadoras deben estar en el rango de las tensiones de entrada de la puerta de carga. VOHexc > VIHcarga VOLexc < VILcarga B) Condición sobre las intensidades: La corriente de salida en estado H de la puerta excitadora (IOHexc) debe ser suficiente para activar a la carga (IIHcarga), mientras que la corriente máxima que admite la puerta excitadora en estado L a su salida (IOLexc) debe ser mayor que la corriente de entrada que le suministra la puerta de carga (IILcarga). IOHexc > IIHcarga IOLexc < IILcarga Salida Entrada Puerta A (excitadora) Puerta B (carga) IOHexc IIHcarga IILcargaIOLexc Salida Entrada Puerta A (excitadora) Puerta B (carga) VOHexc VOLexc VIHcarga VILcarga