diseño digital 3

Download diseño digital 3

If you can't read please download the document

Upload: luimasther

Post on 23-Jun-2015

718 views

Category:

Documents


4 download

DESCRIPTION

buen libro para el estudio de diseño digital

TRANSCRIPT

Fundamentos abstractos del diseo digital

3 _________________________________________________________________________________3

Captulo 2 Fundamentos abstractos del diseo digital

En este captulo se presentan los fundamentos formales, o si se prefiere matemticos, del diseo digital. El hecho de que las seales procesadas por los sistemas lgicos slo puedan tomar dos valores permite interpretar los sistemas combinacionales como un conjunto de funciones donde las entradas y las salidas son variables que toman nicamente dos valores. Una consecuencia de esto es la posibilidad de utilizar superestructuras matemticas especficamente creadas para tratar con este tipo de variables. El lgebra de Boole, desarrollada el siglo pasado como herramienta para tratar el clculo de predicados en lgica matemtica, se revela extremadamente til en el campo del diseo digital. A pesar del marcado tono matemtico de este captulo, es conveniente que el lector tenga en cuenta que su inclusin no obedece a un deseo de completitud formal sino, por el contrario, a una necesidad de orden prctico. Como comprobar el lector, los conceptos introducidos en este captulo son de uso continuado en el resto de este texto.

2.1 Funciones lgicasUna funcin lgica o de conmutacin de n variables asigna un valor lgico ("0" o "1") a cada combinacin de n valores lgicos de entrada y = f (x n1 , x n2 ,......, x1 , x 0 ) {0,1} donde y, xi {0,1} De acuerdo con esto, un sistema lgico combinacional de n entradas y m salidas como el representado en la figura 2.1 puede interpretarse como un conjunto de m funciones lgicas de las mismas n variables.

x x x

0 1

Sistema .... Combinacional ....

y0 y1 y m-1

Y = F( X) X = (xn1 ,...,x1 ,x0 ) Y = (ym1 ,...,y1 ,y0 ) yi = f i (xn1 ,...,x1 ,x0 ) 0 i m 1

n-1

Figura 2.1 Sistema combinacional visto como un conjunto de funciones lgicas

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su distribucin y venta fuera del mbito de la Unin Europea.

34

Diseo digital _________________________________________________________________________________

Existen distintas maneras de especificar y/o representar una funcin lgica; entre ellas podemos destacar las siguientes: a) tabla de verdad, b) tabla de Karnaugh, c) expresiones algebraicas, d) logigramas. Veamos de momento las dos primeras, dejando para ms adelante dentro de este mismo captulo las dos restantes.

2.1.1 Representacin mediante tabla de verdad Una tabla de verdad especifica el valor que toma la funcin para cada posible combinacin de valores de sus variables. Es evidente que cualquier funcin lgica puede representarse mediante una tabla de verdad. La tabla de verdad de una funcin lgica de tres variables (formalmente equivalente a un sistema combinacional de tres entradas y una salida) se muestra a continuacin. Los valores de la funcin f(x2,x1,x0) slo pueden ser o bien "0" o bien "1".

x2 0 0 0 0 1 1 1 1

x1 0 0 1 1 0 0 1 1

x0 0 1 0 1 0 1 0 1

f(x2,x1,x0) f(0,0,0) f(0,0,1) f(0,1,0) f(0,1,1) f(1,0,0) f(1,0,1) f(1,1,0) f(1,1,1)

La extensin de este tipo de representacin a funciones de cualquier nmero de variables es inmediata, aunque resulta poco prctica cuando este nmero es elevado.

2.1.2 Representacin mediante tabla de Karnaugh La tabla de Karnaugh, tambin llamada mapa de Karnaugh, da una informacin equivalente a la de una tabla de verdad. La diferencia estriba en la disposicin topolgica de la informacin. Se disponen los valores de la funcin en una tabla de doble entrada donde unas variables estn en el eje horizontal y otras en el eje vertical. Las combinaciones de las variables de entrada en cada eje se ordenan siguiendo un cdigo de Gray. Vemoslo para el caso concreto de una funcin de tres variables f(x2,x1,x0). En el eje vertical situamos x2 y en el eje horizontal x1 y x0.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

3 _________________________________________________________________________________5

x2\x1x0 0 1

00 f(0,0,0) f(1,0,0)

01

11

10 f(0,1,0) f(1,1,0)

f(0,0,1) f(0,1,1) f(1,0,1) f(1,1,1)

Como es natural, en una funcin de 3 variables tenemos 8 combinaciones de entrada y por tanto una tabla de 8 casillas. Para el caso de 4 variables el procedimiento es el mismo, situando dos de las variables en el eje horizontal y las dos restantes en el eje vertical. Como antes, las combinaciones de las variables en cada eje se ordenan siguiendo un cdigo de Gray. Vemoslo para una funcin genrica de 4 variables f(x3,x2,x1,x0).

x3x2\x1x0 00 01 11 10

00

01

11 f(0,0,1,1) f(0,1,1,1) f(1,1,1,1)

10 f(0,0,1,0) f(0,1,1,0) f(1,1,1,0) f(1,0,1,0)

f(0,0,0,0) f(0,0,0,1) f(0,1,0,0) f(0,1,0,1) f(1,1,0,0) f(1,1,0,1)

f(1,0,0,0) f(1,0,0,1) f(1,0,1,1)

El hecho de ordenar las variables segn un cdigo de Gray hace que en casillas vecinas se siten los valores de la funcin correspondientes a combinaciones de las variables de entrada que difieren entre s en un slo bit. Si definimos como casillas lgicamente adyacentes las correspondientes a combinaciones de entrada que difieren entre s en el valor de un solo bit, la fila superior resulta adyacente a la inferior y del mismo modo la columna de la derecha es adyacente a la columna de la izquierda. Por ejemplo, si observamos en la tabla anterior la casilla correspondiente a f(1,0,0,1) (sombreada de forma ms intensa) vemos que las casillas adyacentes segn la definicin anterior (marcadas en punteado claro) corresponden a f(1,0,0,0) donde slo vara el valor de x0, f(1,0,1,1) donde es x1 la variable que cambia de valor, f(1,1,0,1) donde es x2 la variable que cambia de valor, y por ltimo en f(0,0,0,1) x3 cambia de valor. Generalizando, podemos decir que cada casilla de una tabla de Karnaugh de n variables tiene n casillas lgicamente adyacentes, es decir, correspondientes a combinaciones de entrada que difieren nicamente en el valor de una variable. Para funciones de 5 variables el procedimiento es el siguiente: consideremos una funcin genrica f(x4,x3,x2,x1,x0); se forman dos tablas de Karnaugh iguales (con la misma disposicin de variables) de 4 variables, por ejemplo x3,x2,x1,x0, una referida a las combinaciones de entrada con x4=0 y otra con las combinaciones correspondientes a x4=1. La definicin de adyacencia incluye las casillas vistas para la tabla de 4 variables ms la casilla que est situada en el mismo lugar en la otra tabla, tal como se muestra en la figura que sigue.

los autores, 1998; Edicions UPC, 1998.

36

Diseo digital ________________________________________________________________________________

x4=0 x3x2\x1x0 00 01 11 10 00 01 11 10 x3x2\x1x0 00 01 11 10

x4=1 00 01 11 10

La representacin mediante tabla de Karnaugh para funciones lgicas de 6 variables puede realizarse extendiendo la idea aplicada para 5 variables (cuatro tablas de 4 variables situadas una encima de la otra y ordenadas mediante combinaciones cclicas de las 2 variables restantes), aunque se pierde la facilidad de identificacin de las casillas adyacentes. Por ello en la prctica la tabla de Karnaugh no suele utilizarse para funciones de ms de 5 variables.

Ejemplo 2.1 Supongamos un cdigo de 4 bits con todas las combinaciones asignadas. Se desea generar un bit adicional de forma que el cdigo de 5 bits resultante tenga una paridad par. Especificar la funcin lgica correspondiente mediante su tabla de verdad y su mapa de Karnaugh.

a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Y 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0

ab\cd 00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 1

10 1 0 1 0

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

3 _________________________________________________________________________________7

Se trata de un sistema combinacional con 4 entradas y una salida, cuyo valor ser "1" cuando en las entradas tengamos un nmero impar de valores "1", y "0" en caso contrario (nmero par de "1"). Por tanto la tabla de verdad y mapa de Karnaugh sern los dados en la figura. Obsrvese que el mapa de Karnaugh de una funcin de paridad, dado que las variables de entrada estn ordenadas segn el cdigo de Gray, tiene el aspecto de un tablero de ajedrez. Esto es, si en una casilla determinada hay un "1", en todas sus adyacentes hay un "0" y viceversa. __________________________________________________________________________________

Ejercicio 2.1 Describa, a travs de sus tablas de verdad y de Karnaugh, un sistema combinacional que compare 2 nmeros enteros A y B codificados en binario. La salida valdr "1" si A>B. A, B Cdigo 0 00 1 01 si A > B 1 Salida Y = 2 10 en otro caso 0 3 11 __________________________________________________________________________________ Entradas A, B {0,1,2,3}

2.1.3 Funciones lgicas de una y dos variables Al estar limitado a dos el nmero de valores que pueden tomar tanto las distintas variables de entrada como la salida de una funcin lgica, resulta que el nmero de funciones lgicas distintas de n variables est acotado. Por tanto, es posible realizar un inventario de todas las funciones lgicas de un nmero dado de variables. Funciones lgicas de una variable: Existen 4 y slo 4 funciones lgicas de una variable, que presentamos en la tabla siguiente

x0 0 1

f0(x0) 0 0

f1(x0) 0 1

f2(x0) 1 0

f3(x0) 0 0

f0(x0). Como se observa en la tabla, esta funcin asigna el valor cero independientemente del valor de la variable. Se la denomina funcin constante cero. Podemos asignar a esta funcin la siguiente representacin en forma de expresin algebraica

los autores, 1998; Edicions UPC, 1998.

38

Diseo digital _________________________________________________________________________________

f 0 (x 0 ) = 0 f1(x0). El valor de la funcin coincide con el de la variable de entrada. Por este motivo se la denomina funcin identidad. La expresin algebraica de esta funcin es f 1 (x 0 ) = x 0 f2(x0). En este caso el valor de la funcin siempre es el contrario o complementario del que tiene la variable de entrada. Se la conoce como funcin complemento, negacin o funcin NOT. La expresin algebraica correspondiente es f 2 (x 0 ) = x 0 f3(x0). Por ltimo, esta funcin siempre devuelve el valor "1" independientemente del valor de la variable de entrada y por eso recibe el nombre de funcin constante 1. Su expresin algebraica ser f 3 (x 0 ) =1 Algunas funciones lgicas cuentan con un smbolo propio para su representacin grfica. Estos smblos graficos se denominan logigramas o puertas y suponen una primera aproximacin a la estructura del circuito o elemento fsico que las implementa. Las cuatro funciones de una variable pueden representarse mediante los logigramas que se muestran en la figura 2.2.

a) 0 x x

b) x 1 x

Figura 2.2 Logigramas para las funciones lgicas de una variable. a) funcin constante 0, b) funcin identidad, c) funcin constante 1, d) funcin complemento

Funciones lgicas de dos variables: Es posible obtener hasta 16 funciones lgicas diferentes de 2 variables, que se muestran en la tabla siguiente

x1 0 0 1 1

x0 0 1 0 1

f0 0 0 0 0

f1 0 0 0 1

f2 0 0 1 0

f3 0 0 1 1

f4 0 1 0 0

f5 0 1 0 1

f6 0 1 1 0

f7 0 1 1 1

f8 1 0 0 0

f9 1 0 0 1

f10 f11 f12 f13 f14 f15 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

3 _________________________________________________________________________________9

Algunas de estas 16 funciones se utilizan con mayor frecuencia y las presentamos a continuacin como funciones destacables. f 1 . La funcin f 1 se denomina AND o producto lgico y slo toma el valor "1" cuando las dos variables de entrada toman el valor "1". La definicin dada puede independizarse del nmero de variables; por tanto, denominaremos funcin AND de n variables a la funcin lgica que slo valdr "1" cuando todas las variables de entrada valgan "1". La expresin algebraica y el logigrama para la funcin AND de dos variables son los siguientes f AND (x1 , x 0 ) = x1 x 0 x1 x0

x1 x0

f7. Esta funcin toma el valor "1" cuando alguna de las entradas toma el valor "1" (eventualmente pueden ser las dos) o, de forma equivalente, slo toma el valor "0" cuando todas las variables de entrada toman el valor "0". Recibe el nombre de funcin OR o suma lgica. Como antes la definicin es independiente del nmero de variables y por tanto denominaremos funcin OR de n variables a aquella que vale "1" cuando alguna (una o ms) de las entradas toma el valor "1". La expresin algebraica y el logigrama para esta funcin son f OR (x1 , x 0 ) = x1 + x 0 x1 x0

x1 + x 0

f6. A partir de los valores que toma para dos variables esta funcin puede ser interpretada de diversas maneras: 1- La funcin toma el valor "1" cuando las entradas son distintas y "0" cuando son iguales. 2- El valor de la funcin es la suma mdulo 2 de las entradas. 3- La funcin vale "1" cuando el nmero de "1" a su entrada es impar y "0" cuando no lo es. Las dos ltimas interpretaciones son directamente generalizables a n entradas. Esta funcin recibe el nombre de XOR o tambin OR exclusiva. La expresin algebraica y el logigrama para la funcin XOR de dos variables son f XOR (x1 , x 0 ) = x1 x 0 x1 x0

x1 + x 0

Las complementarias de estas tres funciones tambin son destacables. Entendemos por funciones complementarias aqullas que para los mismos valores de las variables toman valores opuestos: f14. Recibe el nombre de NOT-AND, o abreviadamente, NAND. f NAND (x1 , x 0 ) = x1 x 0 x1 x0

x1x0

los autores, 1998; Edicions UPC, 1998.

40

Diseo digital _________________________________________________________________________________

f8. Recibe el nombre de NOR (NOT-OR). f NOR (x1 , x 0 ) = x1 + x 0 x1 x0

x1 + x 0

f9. Recibe el nombre de XNOR (NOR-exclusiva). f XNOR (x1 , x 0 ) = x1 x 0 x1 x0

x1 + x0

2.1.4 Funciones incompletamente especificadas Son funciones lgicas cuyo valor no est definido, especificado, para alguna combinacin de variables de entrada. En lenguaje formal, podramos decir que su dominio es un subconjunto de las 2n posibles combinaciones de las variables de entrada.

Ejemplo 2.2 Supongamos un sistema combinacional tal que su entrada es una cifra codificada en BCD y su salida es "1" en caso de que la entrada sea mltiplo de 3 y "0" en caso contrario. La tabla de verdad de este sistema sera

x3 0 0 0 0 0 0 0 0

x2 0 0 0 0 1 1 1 1

x1 0 0 1 1 0 0 1 1

x0 0 1 0 1 0 1 0 1

Y 1 0 0 1 0 0 1 0

x3 1 1 1 1 1 1 1 1

x2 0 0 0 0 1 1 1 1

x1 0 0 1 1 0 0 1 1

x0 0 1 0 1 0 1 0 1

Y 0 1 X X X X X X

Ntese que las combinaciones de entrada comprendidas entre 1010 y 1111 no pertenecen al cdigo BCD y por tanto no se van a presentar nunca; en consecuencia, es irrelevante el valor que tome la funcin para dichas combinaciones de entrada. Usaremos la notacin "X" (salida indiferente) para el valor de la funcin en dichos casos. __________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

4 _________________________________________________________________________________1

Ejercicio 2.2 Demustrese que hay 2 (2 ) funciones lgicas diferentes de n variables. __________________________________________________________________________________n

2.1.5 Composicin de funciones lgicas Los nicos valores que puede tomar una funcin lgica son "0" o "1", es decir, valores que pueden corresponder a variables de una nueva funcin lgica. En consecuencia las funciones lgicas se pueden componer entre s, con lo que se generan otras funciones lgicas ms complejas.

Ejemplo 2.3 La funcin z es el resultado de aplicar la funcin OR a la variable c y al resultado obtenido de aplicar la funcin AND a las variables a, b y al complementario de d: z = f OR (c, f AND (a,b, f NOT (d))) La expresin algebraica correspondiente a esta composicin es z = c + abd Tambin es posible obtener el logigrama de la composicin de funciones combinando adecuadamente los logigramas de cada una de las funciones involucradas, tal como se muestra en la figura 2.3. Este logigrama supone una primera aproximacin a un posible circuito electrnico que realice la funcin.

d a b c

d

abd c + abd

Figura 2.3 Logigrama resultante de la composicin de funciones

__________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

42

Diseo digital _________________________________________________________________________________

Ejercicio 2.3 Obtener la tabla de verdad y el logigrama de la composicin de funciones siguiente z = f NOR ( f 1 (a,b,c,d), f NOT ( f AND (b,d))) donde f1 es la funcin descrita en el ejemplo 2.3 __________________________________________________________________________________ Hasta ahora hemos visto cuatro formas equivalentes, aunque formalmente distintas, de representar una funcin lgica: 1-Tabla de verdad. 2-Tabla de Karnaugh. 3-Expresin algebraica. 4-Logigrama. Segn las circunstancias, unas formas de representacin sern ms convenientes que otras, pero no debe perderse de vista que la informacin aportada es la misma.

2.2 Algebra de BooleRecordemos que las variables lgicas solamente pueden tomar dos valores. En el siglo XIX George Boole (1815-1864), trabajando en el clculo de predicados en lgica matemtica, cre una superestructura matemtica particularmente til en los casos en que los valores posibles de las variables son solamente dos. El diseo digital utiliza de forma extensiva estos resultados obtenidos hace ms de un siglo.

2.2.1 Postulados del Algebra de Boole Se denomina lgebra de Boole a la estructura matemtica formada por un conjunto B de elementos y dos operaciones, denominadas genricamente " +" (suma) y "." (producto), que cumple las siguientes propiedades 1- B es un conjunto cerrado respecto a las operaciones definidas, es decir a b B a,b B a + b B 2- Las dos operaciones son conmutativas a + b = b + a a,b B a b = b a 3- Existe distributividad de una operacin respecto a la otra y viceversa

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

4 _________________________________________________________________________________3

a (b + c) = a b + a c a,b,c B a + (b c) = (a + b)(a + c) 4- Existe un elemento neutro para cada operacin. Es decir, si a B, entonces existen dos elementos del conjunto B, llamados arbitrariamente "0" y "1", tales que a+0=a a 1= a 5- Existencia de elemento opuesto. Si a es un elemento del conjunto B entonces existe un nico elemento a B tal que a + a =1 aa = 0 6- El conjunto B tiene al menos dos elementos distintos. En el tratamiento de variables lgicas podemos tomar el conjunto B = {0,1} y escoger las operaciones siguientes "+" o suma: Funcin lgica OR "." o producto: Funcin lgica AND _ " " u opuesto: Funcin lgica complemento o negacin (NOT) Es inmediato comprobar que el conjunto definido ms las operaciones suma y producto escogidas cumplen los postulados anteriores. Por tanto, constituyen un lgebra de Boole de dos elementos (o valores).

2.2.2 Teoremas del Algebra de Boole Un lgebra de Boole, en virtud de las propiedades que por definicin se le exigen, cumple una serie de teoremas. Estos teoremas son de gran utilidad a la hora de transformar expresiones algebraicas de funciones lgicas en otras equivalentes. Sean a,b,c B -Asociatividad: a + (b + c) = (a + b) + c a (b c) = (a b)c a+a=a aa = a

-Idempotencia:

los autores, 1998; Edicions UPC, 1998.

44

Diseo digital _________________________________________________________________________________

-Absorcin:

a + a b = a + b a + a b = a a (a + b) = a b a(a + b) = a (a) = a x +1=1 x 0 = 0

-Involucin: -Incgnita:

-Leyes de De Morgan: a + b = a b a b = a + b - Dualidad: Cualquier expresin vlida en un lgebra de Boole contina siendo vlida si se intercambian entre s los elementos neutros ( 0 1) y las operaciones ( + ). La permutacin del teorema de dualidad conlleva cambiar cada variable por su complementaria. Obsrvese que todas las propiedades exigidas a un lgebra de Boole cumplen esta condicin, por tanto, cualquier expresin que se derive de ellas tambin la cumplir. Adems, algunos de estos teoremas son directamente generalizables a n variables, por ejemplo, las leyes de De Morgan: el complementario de una suma de variables es igual al producto de los complementarios de las variables, y el complementario de un producto de variables es igual a la suma de los complementarios de las variables.

ai = aii i

ai = aii i

Ejemplo 2.4 Vamos a aplicar dualidad a la expresin algebraica obtenida en el ejemplo 2.3. La expresin de partida es z = c + abd y la que aplicando dualidad se deriva de ella es z =c a +b +d

(

)

Esto nos permite escribir una expresin algebraica equivalente para la funcin z, aplicando el teorema de involucin z=c a +b +d

(

)

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

4 _________________________________________________________________________________5

Ejercicio 2.4 Demustrese la identidad del ejemplo 2.4 usando las leyes de De Morgan. __________________________________________________________________________________ Las demostraciones de los teoremas presentados tambin quedan como ejercicio para el lector. En cualquier caso, cuando se intenta demostrar cualquier igualdad entre dos expresiones algebraicas en un lgebra de Boole, siempre se puede evaluar cada una de las expresiones en todos los casos posibles a travs de su tabla de verdad y realizar la comprobacin del resultado.

Ejemplo 2.5 Vamos a demostrar la primera igualdad del teorema de absorcin. a + ab = a + b Aplicando sucesivamente la distributividad de la suma con respecto al producto y las definiciones de elemento inverso y elemento neutro, nos queda a + ab = (a + a)(a + b) =1(a + b) = a + b __________________________________________________________________________________

Ejercicio 2.5 Utilizando nicamente los postulados del lgebra de Boole, demustrese la segunda igualdad del teorema de absorcin: a + ab = a . __________________________________________________________________________________

2.2.3 Simplificacin algebraica Los postulados y teoremas del lgebra de Boole traen como consecuencia que la expresin algebraica de una funcin lgica no es nica. Por tanto es posible utilizar las propiedades anteriores para simplificar las expresiones algebraicas de funciones lgicas. Vemoslo mediante algunos ejemplos.

Ejemplo 2.6 a) cd(a + ab) + bd(ac + c) = cd(a(1+ b)) + bd(c(1+ a)) = cda + cbd = cd(a + b) Donde se ha aplicado el postulado de distributividad, el teorema de incgnita, el postulado del elemento neutro y otra vez distributividad.

los autores, 1998; Edicions UPC, 1998.

46

Diseo digital _________________________________________________________________________________

b) a + b + c + d + abcd = (a + b + c + d) + (a + b + c + d) =1 c) a + b + c + d + abcd = a(1+ bcd) + b + c + d = a + b + c + d __________________________________________________________________________________

Ejercicio 2.6 Simplificar las expresiones siguientes: a) xyz + xy + xyz b) a + b + c + abc

c) x(z + xy) + z y + xy x d) cad + b + c + abc __________________________________________________________________________________ Al final del apartado 2.1 resumamos las cuatro formas vistas de representar una funcin lgica: tabla de verdad, tabla de Karnaugh, expresin algebraica y logigrama. Ahora se ha presentado un procedimiento para transformar unas expresiones algebraicas en otras. Vamos a analizar estas cuatro posibles representaciones de una funcin lgica a travs de un ejemplo.

Ejemplo 2.7 A partir del logigrama de la figura 2.4, obtener la tabla de verdad, la tabla de Karnaugh, y una expresin algebraica de la funcin Y(a,b,c).

a

b

c

A

B

C Y D F

E

Figura 2.4 Logigrama del ejemplo 2.7

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

4 _________________________________________________________________________________7

Es laborioso encontrar directamente la expresin algebraica de la funcin completa, por lo que el procedimiento ms aconsejable es hallar primero las expresiones algebraicas de las variables intermedias A, B, C, D, E, y F sealadas en la figura 2.4. A = a + b = ab D = abc B = Ac = abc C = abc E = abc F = DE = abc + abc

Por tanto, la expresin algebraica final para Y es Y = B + C + F = abc + abc + abc + abc La tabla de verdad puede obtenerse evaluando las variables intermedias y las expresiones anteriores para cada combinacin de valores de las variables de entrada. a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 A 1 1 0 0 0 0 0 0 B 0 1 0 0 0 0 0 0 C 0 0 1 0 0 0 0 0 D 1 1 1 1 0 1 1 1 E 1 1 1 1 1 1 1 0 F 0 0 0 0 1 0 0 1 Y 0 1 1 0 1 0 0 1

La tabla de Karnaugh quedara de la forma siguiente

a\bc 0 1

00 0 1

01 1 0

11 0 1

10 1 0

Un anlisis detallado de la tabla de verdad nos lleva a concluir que la funcin lgica Y vale "1" cuando el nmero de entradas que toman el valor "1" es impar y asigna el valor "0" en caso contrario; por tanto, una expresin algebraica y un logigrama alternativos son

Y = abc

a b c

Y

__________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

48

Diseo digital _________________________________________________________________________________

2.3 Formas cannicas de una funcin lgicaA partir de lo visto en el apartado anterior, es claro que una misma funcin lgica admite una infinidad de expresiones algebraicas. Como consecuencia admitir tambin una infinidad de logigramas. Por el contrario, la tabla de verdad y la tabla de Karnaugh son nicas para una funcin lgica dada. De entre esta infinidad de expresiones algebraicas equivalentes se puede encontrar formatos que sean de particular inters por ser aplicables a cualquier funcin lgica. Estos formatos o expresiones generalizables de las funciones lgicas se denominan formas cannicas. Sin embargo, antes de presentar las formas cannicas de una funcin lgica es conveniente formalizar el concepto de minterm, el de maxterm y presentar el teorema de Shannon.

2.3.1 Minterms y Maxterms Sea f una funcin lgica de n variables; denominamos producto mnimo o minterm de dicha funcin al monomio formado por el producto lgico de todas sus variables complementadas o no. Con n variables se pueden construir 2n minterms diferentes. Usaremos la notacin mi (con 0 i 2 n - 1 ) para referirnos al minterm i-simo de una funcin. Identificamos cada minterm mediante un subndice nmerico que corresponde a la combinacin binaria resultante de sustituir por "0" las variables complementadas y por "1" las que no lo estn. Otra forma de expresar lo mismo es diciendo que un minterm se identifica mediante un subndice correspondiente al valor decimal de la combinacin de entradas que hace que el minterm en cuestin tome el valor "1". Veamos esto en detalle para una funcin lgica de tres variables. La generalizacin a n variables es inmediata.

M int erm

Sub. binario

Sub. decimal

x2 x1 x0 x2 x1 x0 x2 x1 x0 x2 x1 x0 x2 x1 x0 x2 x1 x0 x2 x1 x0 x2 x1 x0

m000 m001 m010 m011 m100 m101 m110 m111

m0 m1 m2 m3 m4 m5 m6 m7

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

4 _________________________________________________________________________________9

Sea f una funcin lgica de n variables; denominamos suma mxima o maxterm de dicha funcin al polinomio formado por la suma lgica de todas sus variables complementadas o no. Con n variables se pueden construir 2n maxterms diferentes. Usaremos la notacin Mi para referirnos al maxterm isimo de una funcin. Cada maxterm se identifica mediante un subndice correspondiente a la combinacin binaria resultante de sustituir por unos las variables que estn complementadas y por ceros las que no lo estn. Otra forma de expresar lo mismo es diciendo que un maxterm se identifica mediante un dgito correspondiente al valor decimal de la combinacin binaria de entradas que hace que el maxterm en cuestin tome el valor "0". Vamos a verlo en detalle para una funcin lgica de tres variables. La generalizacin a n variables es, otra vez, inmediata.

Maxterm

Sub. binario

Sub. decimal

x2 + x1 + x0 x2 + x1 + x0 x2 + x1 + x0 x2 + x1 + x0 x2 + x1 + x0 x2 + x1 + x0 x2 + x1 + x0 x2 + x1 + x0

M111 M110 M101 M100 M011 M010 M001 M000

M7 M6 M5 M4 M3 M2 M1 M0

2.3.2 Teorema de Shannon Si f es una funcin lgica de n variables, entonces es posible realizar la extraccin de una de las variables, con lo que se generan dos funciones residuales de n-1 variables de acuerdo con la siguiente expresin f (x n-1 , x n-2 ,..., x1 , x 0 ) = x n-1 f (0, x n-2 ,..., x1 , x 0 ) + x n-1 f (1, x n-2 ,..., x1 , x 0 ) Una formulacin dual del teorema puede hacerse mediante esta otra expresin f (x n-1 , x n-2 ,..., x1 , x 0 ) = [ x n-1 + f (1, x n-2 ,..., x1 , x 0 )] [ x n-1 + f (0, x n-2 ,..., x1 , x 0 )]

los autores, 1998; Edicions UPC, 1998.

50

Diseo digital _________________________________________________________________________________

La demostracin del teorema es inmediata a travs de la tabla de verdad. Para ello slo es necesario evaluar los trminos a derecha e izquierda de la igualdad para cada uno de los dos valores posibles de la variable extrada: xn-1=0 y xn-1=1.

Ejemplo 2.8 Extraer la variable c de la funcin lgica f (a,b,c,d) = (a c) + ac + bcd + ab cd . De acuerdo con el teorema de Shannon es necesario obtener las funciones resultantes de particularizar c a los valores "1" y "0" en la funcin f(a,b,c,d) inicial. f (a,b,0,d) = (a 0) + a + bd = a + a + bd = a + bd f (a,b,1,d) = (a 1) + ab d = a + ab d = a Luego, recurriendo a la primera expresin del teorema f (a,b,c,d) = cf (a,b,0,d) + cf (a,b,1,d) = c (a + bd) + c(a ) O bien, recurriendo a la segunda expresin f (a,b,c,d) = [ c + f (a,b,1,d)] [ c + f (a,b,0,d)] = [ c + ( a )] [ c + ( a + bd )] __________________________________________________________________________________

2.3.3 Formas cannicas Cualquier funcin lgica puede expresarse como suma lgica de minterms. Asimismo, cualquier funcin lgica puede tambin expresarse como producto lgico de maxterms. Estas expresiones algebraicas se denominan formas cannicas disyuntiva y conjuntiva respectivamente. La demostracin de la existencia de estas dos formas cannicas es sencilla si bien un tanto farragosa en lo que respecta a la notacin. Se basa en la aplicacin reiterada del teorema de Shannon: partiendo de la primera de las expresiones propuestas por el teorema para una funcin f de n variables y aplicndola de nuevo a cada uno de los sumandos del trmino de la derecha nos queda f (0, x n-2 ,..., x 0 ) = x n-2 f (0,0, x n-3 ,..., x 0 ) + x n-2 f (0,1, x n-3 ,..., x 0 ) f (1, x n-2 ,..., x 0 ) = x n-2 f (1,0, x n-3 ,..., x 0 ) + x n-2 f (1,1, x n-3 ,..., x 0 ) Y por tanto extraemos 2 de las n variables de la funcin. f (x n-1 , x n-2 ,..., x 0 ) = x n-1 x n-2 f (0,0, x n-3 ,..., x 0 ) + x n-1 x n-2 f (0,1, x n-3 ,..., x 0 ) + + x n-1 x n-2 f (1,0, x n-3 ,..., x 0 ) + x n-1 x n-2 f (1,1, x n-3 ,..., x 0 )

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

5 _________________________________________________________________________________1

Iterando la aplicacin del teorema de Shannon a las funciones residuales hasta extraer todas las variables, nos queda finalmente f (x n-1 , x n-2 ,.., x1 , x 0 ) = x n-1 x n-2 .. x1 x 0 f (0,0,..,0,0) + x n-1 x n-2 .. x1 x 0 f (0,0,..,0,1) + + x n-1 x n-2 .. x1 x 0 f (0,0,...,1,0)+...+ x n-1 x n-2 ... x1 x 0 f (1,1,..,1,1) =2n -1 i=0

mi f (i)

Expresin que identificamos como la forma cannica disyuntiva, es decir, en suma de minterms, donde las f(i) son las funciones residuales tras la extraccin de todas las variables, es decir, funciones constantes, que solo pueden tomar dos valores "0" o "1". La existencia de la forma cannica conjuntiva puede demostrarse a partir de la segunda expresin del teorema de Shannon. Su expresin compacta es f (x n-1 , x n-2 ,.., x1 , x 0 ) =2n -1 i=0

(Mi + f (i))

Veamos a travs de un ejemplo cmo obtener las formas cannicas de una funcin lgica.

Ejemplo 2.9 Pretendemos obtener las formas cannicas de la funcin y = a + bc. Siguiendo paso a paso la demostracin anterior se llega a la siguiente expresin y = f (a,b,c) = abc f (0,0,0) + abcf (0,0,1) + abc f (0,1,0) + abcf (0,1,1) + +abc f (1,0,0) + abcf (1,0,1) + abc f (1,1,0) + abcf (1,1,1) A partir de la tabla de verdad podemos evaluar el valor de la funcin para cada combinacin de las variables de entrada

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

y 0 1 0 0 1 1 1 1

los autores, 1998; Edicions UPC, 1998.

52

Diseo digital _________________________________________________________________________________

Sustituyendo los valores de la funcin en la expresin anterior nos queda y = abc + abc + abc + abc + abc = m1 + m4 + m5 + m6 + m7 Una notacin alternativa ms compacta es y = m(1,4,5,6,7)3

donde el subndice del sumatorio indica el nmero de variables de la funcin. Si nos fijamos en la expresin de la funcin como suma de minterms (en ocasiones la denominaremos SoP) y, simultneamente en la tabla de verdad, vemos que aparecen en la expresin los minterms cuyo subndice corresponde a combinaciones de las variables de entrada para las cuales la funcin vale "1" (que hemos destacado sombrendolas en la tabla de verdad). Para obtener la expresin de la funcin como producto de maxterms el procedimiento es el siguiente: Si la funcin y se escribe como y = m(1,4,5,6,7)3

Entonces la expresin como suma de minterms de la funcin complementada es y = m(0,2,3)3

Si negamos ambos lados de esta ltima igualdad y operamos y = y = m(0,2,3) = m0 + m2 + m3 = ab c + abc + abc =3

= (a + b + c)(a + b + c)(a + b + c ) = M0 M2 M3 = M(0,2,3)3

Es decir, los trminos presentes en la expresin de la funcin como producto de maxterms (en ocasiones denominada PoS) son M0, M2, y M3, cuyos subndices son precisamente los que no aparecan en la forma cannica en suma de minterms: a partir de la tabla de verdad se observa que los maxterms que aparecen en la forma cannica conjuntiva son aquellos cuyo subndice corresponde a las combinaciones de entrada que hacen "0" la funcin. Esto es as en virtud de las distintas notaciones utilizadas para minterms y maxterms. Esta notacin, sin embargo, no es universal: en algunos textos se utilizan otros procedimientos para asignar subndices a los minterms y a los maxterms, en cuyo caso el mtodo de paso de una a otra forma cannica es menos inmediato que el aqu descrito. __________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

5 _________________________________________________________________________________3

Ejercicio 2.7 Obtener la forma cannica alternativa de las funciones siguientes a) F(x, y,z) = m(1,3,7)3

b) F(x, y,z) = M(0,3,6,7)3

__________________________________________________________________________________

2.3.4 Grupo completo de funciones Un conjunto de funciones lgicas es completo cuando cualquier funcin lgica se puede expresar utilizando nicamente las funciones del grupo. De lo visto en el apartado anterior se deduce que el conjunto formado por las funciones NOT, AND y OR es un grupo completo de funciones. En realidad las formas cannicas son formas de escribir cualquier funcin utilizando slo funciones AND, OR y NOT. Es de destacar el hecho que las funciones NAND y NOR constituyen, cada una de ellas por separado, un grupo completo de funciones. Esto se traduce en que cualquier funcin lgica puede expresarse utilizando nicamente o bien funciones NAND o bien funciones NOR.

Ejemplo 2.10 Vamos a demostrar que la funcin NAND constituye un grupo completo. Una forma de comprobarlo es viendo que utilizando nicamente funciones NAND podemos realizar las funciones NOT, AND y OR. Al ser el grupo formado por estas tres funciones un grupo completo, quedar demostrada la completitud de la funcin NAND. Comencemos viendo que es posible obtener la funcin NOT utilizando slo funciones NAND

x = xx

Una vez vista la realizacin de la funcin NOT mediante funciones NAND, resulta inmediato realizar una funcin AND utilizando funciones NAND x1 x2 = x1 x2 = x1 x2 x1 x2

Por ltimo, para realizar la funcin OR podemos aplicar las leyes de De Morgan

los autores, 1998; Edicions UPC, 1998.

54

Diseo digital _________________________________________________________________________________

x1 + x2 = x1 x2 = x1 x1 x2 x2

__________________________________________________________________________________

Ejercicio 2.8 Demostrar que la funcin NOR consituye, por s sola, un grupo completo. __________________________________________________________________________________

2.3.5 Realizacin de logigramas Mediante algunos ejemplos vamos a presentar cmo son los logigramas asociados a las expresiones algebraicas cannicas de una funcin lgica.

Ejemplo 2.11 Dibujar el logigrama de la funcin del ejemplo 2.7 partiendo de su expresin como SoP. A continuacin, realizar el logigrama slo mediante funciones NAND. De forma dual, proponer el logigrama correspondiente al producto de maxterms, y una realizacin solo con funciones NOR. La expresin de la funcin en SoP es y = m1 + m4 + m5 + m6 + m7 = abc + abc + abc + abc + abc , por lo que su implementacin utilizando funciones AND, OR y NOT es inmediata

a

b

c

m1 m4 m5 m6 m7

y

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

5 _________________________________________________________________________________5

Para realizar una implementacin usando slo funciones NAND el procedimiento es el siguiente: supongamos que sustituimos las puertas AND directamente por puertas NAND; para que el resultado global permanezca inalterado habr que negar cada entrada de la puerta OR. Recordando las leyes de De Morgan, una puerta OR de variables negadas es equivalente a una puerta NAND de las mismas variables sin negar, es decir

ai = aii i

Luego la implementacin mediante puertas NAND se obtiene simplemente sustituyendo cada puerta OR y cada puerta AND por una NAND, sin que sea necesario alterar la topologa o las conexiones del logigrama original.

a

b

c

m1 m4 m5 m6 m7

y

Partamos ahora de la expresin algebraica en producto de maxterms y = M0 M2 M3 = (a + b + c)(a + b + c)(a + b + c) La implementacin con puertas OR, AND y NOT requerida es, otra vez, inmediata a partir de la expresin algebraica

los autores, 1998; Edicions UPC, 1998.

56

Diseo digital _________________________________________________________________________________

a

b

c

M0 M

2

y

M3

Para pasar a una implementacin slo con NOR el procedimiento es dual al anterior. Si sustituimos las puertas OR directamente por NOR, es evidente que hay que negar cada entrada de la puerta AND. En consecuencia, la puerta AND final tendr todas sus entradas negadas. Recordando las leyes de De Morgan, una funcin AND de variables negadas es equivalente a la funcin NOR de las mismas variables sin negar. Luego el resultado ser

a

b

c

M0 M

2

y

M3

__________________________________________________________________________________

La primera conclusin que podemos extraer del ejemplo 2.11 es que las formas cannicas conducen de una forma inmediata a logigramas con una estructura regular. As la forma cannica en suma de minterms conduce a logigramas constituidos por dos etapas de puertas (una etapa de puertas AND y otra de puertas OR en el sentido entrada-salida), siendo las entradas de las puertas AND de la primera etapa las variables de la funcin, directas o negadas (mediante puertas NOT). Este resultado es dual para la forma cannica en producto de sumas.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

5 _________________________________________________________________________________7

Adems, un resultado complementario es que las formas cannicas conducen tambin de forma natural a la realizacin de cualquier funcin lgica mediante logigramas hechos nicamente con dos etapas de puertas NAND (caso de partir de la forma cannica SoP) o con dos etapas de puertas NOR (caso de partir de la forma cannica PoS).

Ejercicio 2.9 Obtenga las formas cannicas en SoP y PoS de la funcin y(a,b,c) = abc + bc + abc . Obtener tambin los logigramas de la funcin en forma de redes de dos niveles de puertas AND-OR, ORAND, NAND y NOR. __________________________________________________________________________________

2.4 Minimizacin de funciones lgicasMinimizar una funcin lgica es encontrar una expresin algebraica que la describa y que incluya el mnimo nmero de variables y/o operaciones. Existe un inters evidente en poder minimizar funciones puesto que, en principio, una funcin lgica especificada mediante una expresin algebraica sencilla podr implementarse mediante un logigrama (cicuito) ms sencillo, y por tanto de menor coste. Hemos visto en el apartado 2.3 que es posible simplificar la expresin algebraica de una funcin lgica mediante la aplicacin "adecuada" de las propiedades del lgebra de Boole. Sin embargo dicho procedimiento tiene algunos inconvenientes: 1- No es sistemtico, dependiendo el resultado de la habilidad de quien lo utiliza. 2- No siempre es fcil determinar si se ha obtenido la expresin ms simplificada posible. 3- A diferencia de las formas cannicas, la solucin no suele tener un formato regular, por lo que conduce a logigramas de estructura impredecible a priori. En este apartado se presenta un mtodo sistemtico, denominado mtodo de Karnaugh, que permite obtener la expresin mnima de una funcin lgica manteniendo el formato de suma de productos y/o de producto de sumas.

2.4.1 Consideraciones previas Recordemos que, al representar una funcin mediante tabla de Karnaugh, en cada casilla se consigna el valor de la funcin para una cierta combinacin de valores de las variables de entrada. La propiedad fundamental de la tabla de Karnaugh es que dos casillas adyacentes corresponden a combinaciones de las variables de entrada que difieren en un solo bit. Por otra parte, recordar el lector que las combinaciones de entrada que dan lugar a "1" en la tabla de verdad indican los minterms presentes en la expresin cannica de la funcin.

los autores, 1998; Edicions UPC, 1998.

58

Diseo digital ________________________________________________________________________________

Consideremos a efectos de referencia la funcin y(a,b,c,d) siguiente y = m(0 ,2,4, 6,9,13)4

Cuya tabla de Karnaugh ser

ab\cd 00 01 11 10

00 1 1 0 0

01 0 0 1 1

11 0 0 0 0

10 1 1 0 0

Cada "1" de la tabla corresponde a un minterm presente en la expresin cannica de la funcin como suma de minterms. As por ejemplo el "1" correspondiente a la combinacin de entrada (a,b,c,d)=(0,0,0,0) revela la presencia del minterm a bcd en la expresin cannica de la funcin. Dos "1" en celdas adyacentes de la tabla de Karnaugh corresponden a dos minterms en la expresin cannica de la funcin que difieren entre s en una nica variable; as en la columna de la izquierda los dos "1" adyacentes corresponden a los minterms m 0 = abc d y m 4 = abcd respectivamente, que difieren en el valor de la variable b. En general, si en la expresin como suma de minterms de una funcin lgica aparecen dos minterms que slo difieren en una variable xi, es claro que aplicando distributividad nos quedarn expresiones del tipo siguiente

x1x 2 x 3.... x i1x i+1 .....x n (x i + xi )El contenido del parntesis es igual a la unidad y por tanto puede eliminarse. Es decir, la presencia de dos "1" adyacentes en la tabla de Karnaugh conduce a la eliminacin de una variable. Este resultado es generalizable para 4, 8 y en general 2n casillas adyacentes. Vamos a clarificar esto mediante el anlisis completo y detallado de la funcin anterior.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

5 _________________________________________________________________________________9

Ejemplo 2.12 En la funcin y(a,b,c,d) referida en el apartado 2.4.1 tenemos dos grupos de casillas adyacentes, uno formado por los "1" correspondientes a los minterms m9 y m13 y otro formado por los correspondientes a los minterms m0 , m2 , m4 , y m6 (recordemos que las casillas de la columna de la derecha se definan como lgicamente adyacentes a las casillas de la columna de la izquierda, y que las casillas de la fila superior estaban definidas como lgicamente adyacentes a las casillas de la fila inferior). Si observamos el grupo formado por m9 y m13 tenemos m9 = abcd m13 = abcd m9 + m13 = abcd + abcd = acd(b + b) = acd

De la agrupacin de los dos minterms hemos eliminado una variable. Si analizamos ahora la agrupacin restante tenemos

m0 = abcd m2 = abcd m4 = abcd m6 = abcdLos dos trminos resultantes tambin difieren entre s en una sola variable (b) y, por tanto, al sumarlos tambin se eliminar esa variable m0 + m2 + m4 + m6 = ad Podemos concluir diciendo que una expresin simplificada en forma (no cannica) de suma de productos de la funcin y(a,b,c,d) es y = ad + acd . __________________________________________________________________________________

m0 + m2 = abd m4 + m6 = abd

2.4.2 Mtodo de Karnaugh A continuacin, como recapitulacin y sistematizacin de lo visto hasta ahora, se ofrece, esquematizado, el procedimiento de minimizacin 1- Cada celda en un mapa de Karnaugh correspondiente a una funcin de n variables tiene n celdas lgicamente adyacentes, con las cuales difiere en el valor de una variable.

los autores, 1998; Edicions UPC, 1998.

60

Diseo digital ________________________________________________________________________________

2- La reunin (suma) de 2p celdas lgicamente adyacentes entre s que contienen "1" elimina p variables en la expresin de la funcin. 3- Al reunir celdas en un mapa de Karnaugh es aconsejable comenzar por las que presentan menor nmero de "1" en celdas adyacentes. 4- Hay que formar el menor nmero de grupos que recubra todos los "1" de la funcin. Cuantos menos grupos tengamos menos trminos quedarn en la expresin final. 5- Es necesario agrupar tantos "1" como sea posible en cada grupo; recurdese que grupos mayores eliminan mayor nmero de variables.

Ejemplo 2.13

Simplificar, utilizando el mtodo de Karnaugh, la funcin siguiente f ( a, b, c , d ) = m (0 ,1,3,8,9,11,13,14 )4

Construyamos la tabla de Karnaugh y hagamos las reuniones de todos los "1" de la funcin

cd\ab 00 01 11 10

00 1 1 1 0

01 0 0 0 0

11 0 1 0 1

10 1 1 1 0 bd acd bc

abcd

Para identificar las variables que aparecen en el producto asociado a cada grupo de "1", debemos fijarnos en cules de ellas no cambian su valor en todas las celdas del grupo. La expresin mnima como suma de productos nos queda

f = abcd + acd + bc + bd _________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

6 _________________________________________________________________________________1

Ejercicio 2.10 Obtener la expresin mnima en suma de productos de las funciones siguientes a) F(x, y,z,w) = M(0,1,2,3,4,10,11)4

b) F(a,b,c,d) = m(1,2,3,4,6,7,10,15)4

__________________________________________________________________________________

2.4.3 Minimizacin en forma de producto de sumas Tambin es posible obtener la expresin simplificada de una funcin lgica como producto de sumas. Podriamos usar un mtodo de Karnaugh dual, pero el procedimiento ms cmodo es el siguiente: Si los "1" de la tabla de Karnaugh representan los minterms de la funcin, entonces los "0" representan los minterms de la funcin negada. Aplicando el mtodo de minimizacin a los "0" en lugar de a los "1", se obtendr la expresin mnima en suma de productos de la funcin negada. Complementando el resultado y aplicando las leyes de De Morgan, obtendremos la expresin mnima como producto de sumas.

Ejemplo 2.14 Vamos a minimizar la funcin del ejemplo 2.13 en forma de producto de sumas. Para ello comencemos construyendo la tabla de Karnaugh y hagamos las reuniones de todos los "0" de la funcin en grupos de 2p

cd\ab 00 01 11 10

00 1 1 1 0

01 0 0 0 0 bcd

11 0 1 0 1 ab

10 1 bcd 1 1 0 bcd

Luego la expresin mnima de la funcin complementaria como suma de productos es

los autores, 1998; Edicions UPC, 1998.

62

Diseo digital _________________________________________________________________________________

f = bcd + bcd + b cd + ab Complementando ambos lados de la igualdad y aplicando las leyes de De Morgan, nos queda la expresin mnima requerida f = f = (b + c + d )(b + c + d)(b + c + d)(a + b ) __________________________________________________________________________________

Ejercicio 2.11 Obtener la expresin mnima como producto de sumas de las funciones propuestas en el ejercicio 2.10 __________________________________________________________________________________

2.4.4 Minimizacin de funciones incompletamente especificadas El mtodo de Karnaugh tambin se puede aplicar en el caso de funciones incompletamente especificadas. En esencia se trata de que, para las combinaciones de entrada para las cuales la funcin no est especificada, supondremos que la funcin toma el valor, "0" o "1", que sea ms conveniente para obtener la mxima simplificacin.

Ejemplo 2.15 Sea la funcin f (a,b,c,d) = m(2,7,8,10,12,13,15) + m(5,11,14)4 x

Esta notacin expresa que para las combinaciones de las variables de entrada asociadas a los minterms 5,11, y 14 la funcin no est especificada. La minimizacin de esta funcin en forma de suma de productos sera la correspondiente a la tabla de Karnaugh de la figura 2.5.a, con lo que resulta la expresin f = acd + b cd + bd . Ntese que para obtener esta simplificacin se ha asignado el valor "1" a uno de los trminos no especificados (concretamente el correpondiente a m5) y el valor "0" a los otros dos. Si quisiramos obtener la expresin mnima como producto de sumas habra que agrupar los ceros de la funcin tomando otra vez para las combinaciones no especificadas el valor ms conveniente para obtener la mxima simplificacin.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

6 _________________________________________________________________________________3

a) ab\cd 00 00 01 11 10 0 0 1 1 01 0 X 1 0 1 1 X 11 0

b)

ab\cd 00 10 1 00 0 01 11 X 10 1 0 0 1 1

01 0 X 1 0

11 0 1 1 X

Figura 2.5 Mapas de Karnaugh del ejemplo 2.15

De acuerdo con la figura 2.5.b, la expresin mnima como suma de productos de la funcin negada y la expresin final como producto de sumas sern f = abd + ac + b d f = f = (a + b + d)(a + c)(b + d ) Ntese que en este ltimo caso se ha efectuado una asignacin de valores para los trminos inespecificados diferente de la realizada para obtener una suma de productos mnima, concretamente "1" para el correspondiente a m14 y "0" para los otros dos.

Ejercicio 2.12 Obtener las expresiones mnimas como suma de productos y como producto de sumas de la funcin incompletamente especificada siguiente: F = m(0,2,3,6,7) + m(5,8,10,11,15)4 x

__________________________________________________________________________________

2.4.5 Limitaciones del mtodo de Karnaugh En este texto no hemos intentado presentar soluciones universales al problema de la minimizacin de funciones lgicas. En concreto, el mtodo presentado deja dos lagunas importantes: 1- qu hacer con funciones de muchas variables? 2- qu hacer cuando se presentan varias funciones lgicas de las mismas variables (multifunciones) y lo que interesa minimizar es el nmero global de trminos presentes en sus expresiones algebraicas?

los autores, 1998; Edicions UPC, 1998.

64

Diseo digital _________________________________________________________________________________

Respecto al primer problema hay que indicar que existen herramientas informticas de ayuda al diseo digital que permiten resolverlo con comodidad: es evidente que el mtodo de simplificacin de Karnaugh pierde su manejabilidad cuando el nmero de variables de la funcin es igual o superior a seis, pero tambin es evidente que el algoritmo que se aplica no depende de este nmero, siendo posible implementarlo informticamente. Admitiendo como entrada la tabla de verdad, una expresin algebraica, e incluso en algunos casos un logigrama de la funcin, estas herramientas informticas proporcionan una expresin simplificada de la funcin. Esta expresin suele ser mnima cuando el nmero de variables es inferior a una cierta cota, y muy simplificada (pero no mnima) cuando el nmero de variables supera esta, caso en el que suelen emplearse algoritmos no estrictamente de minimizacin. En cuanto a la simplificacin de multifunciones, no es evidente que se obtenga un resultado ptimo (con el menor nmero global de trminos) a base de minimizar cada funcin por separado. Veamos esto mediante un ejemplo.

Ejemplo 2.16 Implementar las funciones F1 (a,b,c) y F2 (a,b,c) mediante una red AND-OR de dos niveles mnima, es decir con el menor nmero total posible de puertas. F1 (a,b,c) = m(0,1,2,3,7)3

F2 (a,b,c) = m(0,2,7)3

Una opcin es minimizar cada funcin por separado, con lo que se obtienen los mapas y el logigrama de la figura 2.6.

a\bc 0 1

00 1 0

01 1 0

11 1 1

10 1 0 0 1

00 1 0

01 0 0

11 0 1

10 1 0

F 1 = a + bc

F2 = abc + ac

a b c a b c a c

F1

F2

Figura 2.6 Primera solucin del ejemplo 2.16

Observando el resultado obtenido vemos que es posible realizar las funciones utilizando una puerta menos si se aprovecha el trmino comn m7, tal como indica la figura 2.7, con lo que se llega al resultado, esta vez s, mnimo.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

6 _________________________________________________________________________________5

a\bc 0 1

00 1 0

01 1 0

11 1 1

10 1 0 0 1

00 1 0

01 0 0

11 0 1

10 1 0

a a b c a c

F1 F2

F 1 = a + abc

F2 = abc + ac

Figura 2.7 Segunda solucin del ejemplo 2.16

__________________________________________________________________________________ A la luz de lo mostrado en el ejemplo 2.16, el mtodo de simplificacin de multifunciones debera considerar el reutilizar puertas en ms de una funcin o, lo que es lo mismo, buscar trminos o grupos comunes a diversas funciones. El mtodo de Quine-McCluskey, que no presentaremos en este texto, es un mtodo tabular basado en la misma idea que el de Karnaugh, es decir, en simplificar expresiones del tipo suma de productos o producto de sumas, aplicando la equivalencia booleana a(b + b ) = a o su dual, a + (bb ) = a , que permite minimizar multifunciones. Ahora bien, incluso para pocas variables, en este mtodo se pierden las "facilidades visuales" que posee el de Karnaugh, ya que es engorroso de usar, pero su implementacin informtica es directa y sencilla.

2.5 Cuestiones y problemas

Cuestiones C2.1 Cuntas funciones incompletamente especificadas distintas de n variables pueden encontrarse? C2.2 Plantee las diferencias entre suma lgica y suma aritmtica. Con qu funciones lgicas puede identificarse cada una de ellas? C2.3 Escriba las definiciones de minterm y maxterm. C.2.4 Qu importancia tiene el orden de las variables en la notacin de minterms y maxterms? Explquelo con un ejemplo. C2.5 Explore en detalle las consecuencias de utilizar la misma notacin, referente a los subndices, para los minterms que para los maxterms, y no la dual, tal como se comenta en el apartado 2.3.1.

los autores, 1998; Edicions UPC, 1998.

66

Diseo digital _________________________________________________________________________________

C2.6 Qu ventajas de orden prctico se derivan de la existencia de grupos completos de funciones? C2.7 Tiene alguna importancia el orden de las variables en un mapa de Karnaugh al aplicar el mtodo de minimizacin? C2.8 Considrese la posibilidad de usar distintos cdigos de Gray para ordenar las variables en un mapa de Karnaugh. Afectara al mtodo de simplificacin y/o al resultado? C2.9 Escriba la expresin algebraica como suma de minterms y como producto de maxterms de las funciones XOR de dos y tres variables. Escriba a continuacin la expresin obtenida al aplicar el mtodo de simplificacin de Karnaugh, y compare los resultados. C2.10 Por qu, al simplificar una funcin mediante el mtodo de Karnaugh, los "1" del mapa de Karnaugh deben reunirse en grupos de 2p? C2.11 Es nica la expresin mnima como suma de productos asociada a una funcin lgica? Ilustre su respuesta con la funcin: f (x, y,z,w) = m(3,5,6,7,9,11,13)4

C2.12 Enuncie de forma sistemtica el mtodo dual de minimizacin de Karnaugh para obtener directamente expresiones en forma de producto de sumas. C2.13 Piense en cmo debe aplicarse el mtodo de simplificacin de Karnaugh para funciones de 5 variables. Aplquelo a la funcin siguiente f (a,b,c,d,e) = m(1,2,4,6,10,11,12,18,20,21,22,28,29,30,31)5

Problemas P2.1 Realice las funciones lgicas NOR y NAND de dos variables utilizando nicamente un mdulo como el indicado a continuacin. Sera posible realizar tambin la funcin XOR de dos variables solamente con este mdulo?

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

6 _________________________________________________________________________________7

P2.2 La composicin de funciones lgicas es otra funcin lgica. Si consideramos el caso de funciones lgicas incompletamente especificadas, determine cmo ser la funcin f tal que f (x n-1 ,..., x1 , x 0 ) = g[ h(x n-1 ,..., x1 , x 0 )] considerando los siguientes casos: a) h est especificada incompletamente y g completamente. b) h est especificada completamente y g incompletamente. c) h y g estn especificadas incompletamente. Se sugiere analizar primero algn caso con funciones concretas y despus generalizar el resultado. P2.3 Hllense las expresiones algebraicas de las funciones y1 e y2. Escribnse tambin sus tablas de verdad y sus mapas de Karnaugh. a) a b c d b y1

b)

a b c d b y2

P2.4 Demostrar que si a, b, c {0,1}, entonces a) ab = ac b = c / ab = ac b) b =c a + b = a + c c) a b = c a c = b b c = a

los autores, 1998; Edicions UPC, 1998.

68

Diseo digital _________________________________________________________________________________

P2.5 Obtenga una expresin algebraica y una tabla de verdad de cada una de las funciones realizadas por el logigrama siguiente

a f1 b f2

P2.6 Demuestre las igualdades siguientes: ab= a b a(b c) = ab ac P2.7 Cualquier funcin lgica de dos variables f(x,y) puede expresarse en funcin de una combinacin de cuatro parmetros ai {0,1}, de la siguiente manera f (x, y) = a0 xy + a1 xy + a2 xy + a3 xy que corresponde a la forma cannica en suma de productos. Demuestre que tambin es posible escribir f(x,y) en funcin de otros cuatro parmetros bi {0,1}, as f (x, y) = b0 b1 y b2 x b3 xy P2.8 Una funcin lgica f es completa si cualquier otra funcin lgica g puede ser expresada nicamente en trminos de f. Suponiendo que es posible utilizar como entradas dos variables lgicas y los valores constantes "0" y "1", cules de las 16 funciones diferentes de dos variables son por s mismas completas? Justificar la respuesta. Utilzese como dato conocido (que no hace falta demostrar) que las funciones NOR y NAND son completas. P2.13 Considere el logigrama de la figura, respecto del cual se pide: a) Obtener la tabla de verdad de la funcin f(a,b,c,d). b) Expresar f mediante las formas cannicas SoP y PoS.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

6 _________________________________________________________________________________9

c) Realizar f utilizando el menor nmero posible de puertas NOR de tres entradas. d) Repetir el apartado anterior utilitzando puertas NAND de tres entradas.

a c a d f c d b d

P2.9 Dada la funcin lgica f (x, y,z) = x y + x y + y z , se pide implementarla a) Mediante puertas AND, OR y NOT. b) Mediante puertas OR y NOT. c) Mediante puertas AND y NOT. d) Mediante puertas AND y XOR. P2.10 Simplifique la funcin f = f1 f2 + f3 utilizando el mtodo de Karnaugh. f 1 = m(1,2,3,5,7)3

f 2 = m(0,1,5)3

f 3 = M(2,3,5,7)3

P2.11 Disee un logigrama que corresponda a un conversor de cdigo binario de 3 bits a Gray de 3 bits. Es posible hacerlo utilizando solamente puertas XOR de 2 entradas? P2.12 Disee un sistema combinacional como el especificado utilizando una red de puertas {AND, OR, NOT} de dos etapas. (Nota): en este caso el smbolo S indica suma aritmtica.

3

X

SISTEMA A DISE AR

2

Z

X {0,1} Z {0,1}

3

2

Z = Xii=0

2

los autores, 1998; Edicions UPC, 1998.

70

Diseo digital _________________________________________________________________________________

P2.13 El objetivo es disear un comparador y detector de igualdad que opere con nmeros codificados en binario de dos bits, segn la siguiente especificacin:

a b

2 2

SISTEMA A DISEAR

3

z

1 si a = b z0 = 0 si a b

1 si a > b z1 = 0 si a b

1 si a < b z2 = 0 si a b

Se pide realizar una implementacin mnima del comparador utilizando nicamente puertas NOR. Nota: Obsrvese que las funciones son mutuamente excluyentes y que es posible obtener cualquiera de ellas a partir de las otras dos. P2.14 Considere la funcin F(h8,h4,h2,h1) realizada mediante el logigrama siguiente

h2 h1 h8 h4

F

donde las entradas corresponden a las horas de un reloj codificadas en binario: F vale "1" para ciertas combinaciones de entrada (horas). Se pide realizar un logigrama mnimo que d el valor lgico "1" para las mismas combinaciones de entrada vlidas que el anterior. P2.15 Simplifique la funcin f = f1 + f2 f3 utilizando el mtodo de Karnaugh. f 1 = m(1,7) + m(6)3 x

f 2 = m(3,5,6)3

f 3 = M(5,6,7)3

P2.16 Implemente la funcin f(a,b,c) especificada por la siguiente evolucin temporal de los valores de la salida en funcin de los valores de las variables de entrada, donde el nivel alto corresponde al valor lgico "1" y el bajo al valor "0". a) Utilizando solamente puertas NAND.

los autores, 1998; Edicions UPC, 1998.

Fundamentos abstractos del diseo digital

71 ________________________________________________________________________________

b) Utilizando solamente puertas XOR de dos entradas.

a b c f

P2.17 Se quiere disear un subsistema que forma parte un calendario. El objetivo es obtener una salida que nos indique los dias que tiene cada mes (30, 31 o bien