Vous êtes sur la page 1sur 36

1

Captulo 8

Descomposicin
La descomposicin de un problema complejo en un nmero de subproblemas ms simples de resolver es una actividad usual en ingeniera. En sntesis lgica es una actividad fundamental, ya que separa un sistema lgico de un nmero elevado de entradas en un conjunto de subsistemas interconectados con un nmero menor de variables de entrada. En la actualidad los dispositivos programables estn basados en unidades que pueden implementar funciones con un nmero reducido de entradas y salidas. Por ejemplo en FPGAs basadas en tablas de bsquedas de k entradas se pueden representar funciones boolenas con k variables de entrada y una salida. Entonces la tarea es descomponer los nodos de una red boolena que tengan ms de k entradas en subredes funcionalmente equivalentes que estn formadas solamente por nodos con k o menos entradas.

Figura 8.1. Descomposicin paralela y serial. La Figura 8.1, a la izquierda, muestra la descomposicin paralela, que separa la red en varias redes con menor nmero de entradas y salidas. La ubicada a la derecha ilustra la descomposicin en serie. La descomposicin funcional de los circuitos combinacionales influye poderosamente en la disminucin de costos de implementacin de los sistemas digitales. Y tiene su fundamento en que las tablas de verdad de funciones combinacionales, de un nmero elevado de variables, pueden contener redundancias, las que pueden ser eliminadas por la descomposicin de la funcin en varias funciones independientes con menos variables de entrada.

Profesor Leopoldo Silva Bijit

19-01-2010

Sistemas Digitales

Esta descomposicin no slo reduce la complejidad sino que aumenta la escalabilidad y la realizabilidad de los sistemas. Desde un punto de vista matemtico la descomposicin es el proceso de expresar una funcin de n variables como una funcin de funciones con variables menores que n. Se exponen los principales resultados de la teora de descomposicin, ilustrando los diferentes ejemplos mediante mapas, lo cual es posible para un nmero reducido de variables. Sin embargo en problemas reales con un nmero elevado de variables, para resolver cada uno de los subproblemas asociados a la descomposicin existen heursticas, que han permitido desarrollar aplicaciones computacionales que resuelven el problema. Su exposicin tiene mayor relacin con cursos de estructuras de datos y algoritmos.

8.1. Descomposicin trivial. Teorema de Shannon.


8.1.1. Extraccin de una variable. Una funcin de n variables puede ser descompuesta, aplicando el teorema de expansin de Shanonn, segn:

f ( x1 , x2 ,.., xn 1 , xn )

xn ' f ( x1 , x2 ,.., xn 1 , 0) xn f ( x1 , x2 ,.., xn 1 ,1)

Xn

f(Xn)

Figura 8.2 Funcin de n variables. En la Figura 8.1. se ha definido: X n

x1 , x2 ,.., xn 1 , xn

Si definimos las funciones de (n-1) variables, segn:

g 0 ( x1 , x2 ,.., xn 1 ) g1 ( x1 , x2 ,.., xn 1 )
Podremos expresar:

f ( x1 , x2 ,.., xn 1 , 0) f ( x1 , x2 ,.., xn 1 ,1)

f ( x1 , x2 ,.., xn 1 , xn )
Con:

F ( g 0 , g1 , xn ) xn g1

F ( g0 , g1 , xn )

xn ' g 0

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin
g0 Xn-1 g1 xn F(g0, g1, xn) f(Xn)

Figura 8.3 Descomposicin trivial.

Donde: X n

x1 , x2 ,.., xn

La descomposicin consiste en encontrar las funciones: g0, g1 y F. Las funciones gi se denominan funciones predecesoras o auxiliares; y la descomposicin se denomina serial o en red lgica de tipo rbol. La funcin F, puede ser implementada usando un multiplexor.
g0 Xn-1 g1 xn 1 0 f(Xn)

Figura 8.4 Implementacin con multiplexor. Si se escribe la tabla de verdad de f como una matriz, similar a un mapa de Karnaugh, donde los renglones representan los valores de xn, y las columnas asociadas a los valores de las combinaciones del resto de las (n-1) variables, se tiene la Figura 8.5, la que representa una funcin de 4 variables: x4/x1x2x3 000 001 011 010 110 111 101 100 0 1 1 1 1 1 1 1 1 1 Figura 8.5. Tabla de verdad de una funcin de 4 variables. Entonces el primer rengln es la tabla de verdad de la funcin g0; el segundo corresponde al mapa de g1. La funcin g0, puede minimizarse empleando el siguiente mapa de tres variables:

Profesor Leopoldo Silva Bijit

19-01-2010

4 x3/x1x2 00 01 11 10 0 1 1 1 1 1 1 g0=x2+x1x3 Figura 8.6 Mapa de g0.

Sistemas Digitales

La funcin g1, puede minimizarse empleando el siguiente mapa de tres variables: x3/x1x2 00 01 11 10 0 1 1 1 1 g1=x1x2+x2x3 Figura 8.7 Mapa de g1.

Resultando:
F ( g0 , g1 , x3 ) x3 ' g 0 x3 g1 x3 '( x2 ' x1 ' x3 ') x3 ( x1 x2 x2 x3 ')

8.1.2. Extraccin de dos variables. Del mismo modo pueden disminuirse las entradas a las funciones auxiliares, generando funciones con un nmero menor de variables de entrada. La Figura 8.8 muestra las funciones cofactores cuando se han extrado las variables xn y xn-1.
g0 g1 Xn-2 g2 g3 xn-1, xn F(g0, g1, g2, g3, xn-1, xn) f(Xn)

Figura 8.8. Descomposicin en 4 subfunciones. Las funciones de (n-2) variables se obtienen a partir de la funcin f, segn:

g 0 ( x1 , x2 ,.., xn 2 ) g1 ( x1 , x2 ,.., xn 2 ) g 2 ( x1 , x2 ,.., xn 2 ) g3 ( x1 , x2 ,.., xn 2 )


Profesor Leopoldo Silva Bijit

f ( x1 , x2 ,.., xn 2 , 0, 0) f ( x1 , x2 ,.., xn 2 , 0,1) f ( x1 , x2 ,.., xn 2 ,1, 0) f ( x1 , x2 ,.., xn 2 ,1,1)


19-01-2010

Captulo 8. Descomposicin La funcin F, queda dada por:

F ( g0 , g1 , g 2 , g3 , xn 1 , xn )

xn 1 ' xn ' g0

xn 1 ' xn g1 xn 1 xn ' g 2

xn 1 xn g3

La cual puede ser implementada mediante un mux de 4 vas a una, segn se muestra en la Figura 8.9.
g0 g1 Xn-2 g2 g3 xn-1, xn 0 1 f(Xn) 2 3

Figura 8.9. Multiplexor de 4 vas. La identificacin de las funciones auxiliares o cofactores pueden visualizarse como los renglones del mapa de Karnaugh, cuando en los renglones se ubican los valores de las combinaciones de las variables que controlan el multiplexor, que podramos llamar variables libres. La Figura 8.10, ilustra el caso de una funcin de 5 variables. x4x5/x1x2x3 000 001 011 010 110 111 101 100 00 1 1 1 1 1 01 1 1 1 11 1 1 1 10 1 1 1 1 Figura 8.10. Tabla de verdad de una funcin de 5 variables. Donde las funciones gi, se pueden minimizar empleando mapas de tres variables.

8.2. Descomposicin de Ashenhurst.


En 1952 Ashenhurst demuestra las condiciones en que una funcin f puede ser descompuesta en la forma:

f ( x1 , x2 ,.., xn 1 , xn )

h( x1 , x2 ,..xk , g ( xk 1 , xk 2 ,.., xn ))

Se define el conjunto de k variables libres, segn: X l acotado segn: X a

x1 , x2 ,.., xk , y el conjunto de variables

xk 1 , xk 2 ,.., xn . Debe notarse que el nmero de variables de entrada

Profesor Leopoldo Silva Bijit

19-01-2010

Sistemas Digitales

que tiene la subfuncin g es (n-k), y que el nmero de variables de entrada del bloque h es de (k+1) variables, ambos menores que n. El mdulo g debe poder ser implementado en un dispositivo en el cual se pueda programar una funcin de (n-k) variables de entrada y una salida. Si la funcin h tiene ms de (n-k) entradas puede ser descompuesta de manera similar. Generando una red multinivel con estructura de rbol. Si resultan en el proceso dos funciones iguales, basta utilizar una instancia, y generar mltiples salidas de este bloque; en este caso la estructura deja de ser de tipo rbol para convertirse en un grafo dirigido acclico. Se dice que la descomposicin es disjunta ya que el conjunto de variables de entrada es partido en dos subconjuntos con interseccin vaca.
Xa g h(g, Xl) Xl f(Xn)

Figura 8.11. Descomposicin de Ashenhurst. 8.2.1. Compactando las columnas. Si se dibuja la tabla de verdad, colocando en los renglones las combinaciones de los valores de las variables libres, y en las columnas los valores de las combinaciones del conjunto acotado, se tiene una matriz denominada de descomposicin. La condicin para que pueda aplicarse la descomposicin de Ashenhurst, es que las columnas de este arreglo tengan a lo ms dos valores diferentes. Uno de los valores de las columnas estar asociado a g ( xk 1 , xk 2 ,.., xn ) 0 ; el otro a g ( xk 1 , xk 2 ,.., xn ) 1 . Consideremos el siguiente ejemplo de 5 variables. x1x2/x3x4x5 000 001 010 011 100 101 110 111 00 01 1 1 1 1 10 1 1 1 1 11 1 1 1 1 1 1 1 1 Figura 8.12. Matriz de descomposicin con dos columnas con valores diferentes. Se tienen dos posibles elecciones para la funcin h, dependiendo de la columna que se asocie al valor de g=0. La Figura 8.13 ilustra una de las elecciones posibles.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin x1x2/g(x3,x4,x5) 0 1 00 01 1 10 1 11 1 1 h Figura 8.13. Tabla de verdad de h(g,Xa). Resulta, minimizando: h

x1 x2 ( x1

x2 ) g

Si se elige la otra columna asociada al valor de g=0, resulta una funcin de igual costo, salvo que aparece g en la expresin. Ntese que se efecta una minimizacin o reduccin de columnas equivalentes. Las cuatro columnas asociadas a g=1, permiten determinar la funcin g ( x3 , x4 , x5 ) . Corresponden a los valores equivalentes decimales del conjunto x3 , x4 , x5 x5/x3x4 00 01 11 10 0 1 1 1 1 1 g=x3x4+x3x5+x4x5 Figura 8.14. Tabla de verdad de g(Xa). Debe notarse que tanto h como g pueden implementarse con bloques que tengan un nmero de entradas acotado a 3. Si se efecta el diseo con compuertas tradicionales, se obtiene un diseo en cuatro niveles con 17 entradas. Un diseo mnimo en dos niveles permite obtener la expresin con 27 entradas:

3,5, 6, 7 .

x1 x2

x1 x3 x4

x2 x3 x4

x1 x3 x5

x2 x3 x5

x1 x4 x5

x2 x4 x5

La cual al ser factorizada, permite obtener:

x1 x2 ( x1 x2 )( x3 x4

x3 x5

x4 x5 )

Expresin en la cual pueden reconocerse las funciones g y h, obtenidas mediante descomposicin. Esta descomposicin disjunta se basa en la mezcla de las columnas equivalentes con el objetivo de remover las redundancias de la tabla de verdad de n variables.

Profesor Leopoldo Silva Bijit

19-01-2010

8 8.2.2. Redundancia de renglones.

Sistemas Digitales

Otra forma de encontrar las condiciones suficientes y necesarias para que exista la descomposicin de Ashenhurst es observar los renglones de la matriz, que representan las combinaciones de valores que puede tomar el conjunto libre de variables de entrada. Observando las Figuras 8.3 y 8.8, se puede generalizar el resultado para la extraccin de k variables, notando que la funcin f puede descomponerse en 2 k funciones gi ( X l ) , una por cada rengln. Con m

2k el nmero de funciones auxiliares, se tiene:


g0 g1 Xa gm-1 Xl 0 1 f(Xn) 2k-1

Figura 8.15. Multiplexor de m entradas, controlado por variables libres. Pero como la descomposicin de Ashenhurst slo tiene una funcin g, las diferentes funciones cofactores deben ser constantes (formadas por solamente ceros o unos), o poder ser expresadas en trminos de una sola funcin o su complemento. Dicho de otro modo: no considerando los renglones formados por solamente ceros o unos, o aquellos que son complementos de otros renglones, slo puede existir un y solo un rengln diferente, el cual estar asociado a la funcin g de la Figura 8.11. La Figura 8.16, muestra la estructura interna de la funcin h: un bloque C, que solamente interconecta sus cuatro posibles entradas con las 2 k entradas del mux; observando el diagrama en bloques la funcin combinacional h depende de g y X l , que es la forma deseada de descomposicin.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

0 Xa g 0 1 Xl h(g,Xl)

1 f(Xn) 2k-1

Figura 8.16. La funcin h es el multiplexor ms red combinacional. En el caso del ejemplo de la Figura 8.12, esto se cumple, ya que existe un solo rengln diferente en la matriz, adems de las constantes. En este ejemplo no existe un rengln que sea complemento de otro. Observando la tabla de la Figura 8.12, la funcin h puede escribirse:

x1 x2 ( x1 ' x2

x1 x2 ') g

La que minimizada en el espacio de las variables libres y g, tres variables en este caso, permite obtener:

x1 x2 ( x1

x2 ) g

La funcin g, se determina obteniendo la tabla de verdad del segundo o tercer rengln, en trminos de las variables acotadas, lo que se muestra en la Figura 8.14. Esta descomposicin disjunta se basa en la extraccin de los renglones equivalentes con el objetivo de remover las redundancias de la tabla de verdad de n variables. 8.2.3. Complejidad de la descomposicin. La dificultad computacional de la descomposicin est en la revisin de las diferentes particiones de la tabla de verdad que pueden realizarse. Como existen C(n, a) combinaciones de a variables de un conjunto de n, que es el nmero de formas de escoger a elementos de un total de n, donde C(n, a) es el coeficiente binomial; se tendr ese nmero de particiones posibles. Adems cada tabla tendr 2 n valores. Esto implica que el mtodo descrito es no polinomial, debido al crecimiento exponencial. Si lo que interesa es obtener todas las particiones posibles, aceptando que tanto las variables acotadas como las libres puedan ser cero, se tendr un nmero total de particiones igual a 2 n , ya que se tiene que:

Profesor Leopoldo Silva Bijit

19-01-2010

10

Sistemas Digitales

n 0

n 1

...

n n 1

n n

2n

Para el caso del ejemplo descrito en la tabla de la Figura 8.11, se tienen 10 particiones, considerando que el nmero de variables del conjunto acotado es 3. Se enumeran a continuacin los conjuntos de los ndices de las variables acotadas: {1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 4}, {1, 3, 5}, {1, 4, 5}, {2, 3, 4}, {2, 3, 5}, {2, 4, 5}, {3, 4, 5}. En el ejemplo visto antes slo se analiz el ltimo conjunto. Pero no todas las particiones permiten obtener una descomposicin disjunta de Ashenhurst. La particin, en la cual las variables acotadas son x2x3x4, se muestra en la Figura 8.17, en la cual hay 5 columnas diferentes, lo cual implica que no existe la descomposicin de Ashenhurst. Lo mismo puede concluirse al observar que existen cuatro renglones diferentes. x1x5/ x2x3x4 000 001 010 011 100 101 110 111 00 1 01 1 1 1 10 1 1 1 1 1 11 1 1 1 1 1 1 Figura 8.17. Particin {2, 3, 4}. La tabla se construy con el mapa de la expresin mnima en dos niveles de f.

x1 x2

x1 x3 x4

x2 x3 x4

x1 x3 x5

x2 x3 x5

x1 x4 x5

x2 x4 x5

Entonces la descomposicin es de complejidad no polinomial y para su implementacin prctica, deben resolverse los subproblemas: la generacin de particiones, la determinacin de cuales columnas o renglones son equivalentes y los mtodos para determinar las subfunciones. Existen numerosas contribuciones para resolver estos problemas: Algunas basadas en grafos coloreados, otras en clculo con cubos, otras en diagramas de decisin binarios. Todas ellas escapan a un curso introductorio de sistemas digitales.

8.3. Descomposicin de Curtis.


Lo primero que debe explorarse es si existe la descomposicin de Ashenhurst, ya que sta descompone de manera significativa el problema. Sin embargo en muchos casos esta descomposicin no existe, en esta situacin puede continuarse aplicando la descomposicin de Curtis. Si en la Figura 8.3, consideramos un conjunto limitado de (n-k) variables de entrada, en las funciones auxiliares, asumiendo que las funciones gi, se implementarn con bloques que tienen tambin un nmero acotado de entradas y una salida, podemos considerar el resto de las variables como un conjunto de k variables que denominaremos libre.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

11

Para el caso tratado antes de extraccin de una variable, que se muestra en la Figura 8.3, se tiene que k=1 y por lo tanto: (n-k)=n-1, este caso se denomina descomposicin simple o trivial. 8.3.1. Descomposicin de Curtis, con dos funciones auxiliares. Interesa la situacin en que los bloques gi tienen acotado el nmero de variables de entrada. El esquema general de las funciones, con la notacin introducida, se muestra en la Figura 8.18, para el caso de dos funciones seriales.
g0 Xa g1 Xl F(g0, g1, Xl) f(Xn)

Figura 8.18. Descomposicin disjunta de Curtis. Si los dos conjuntos de variables tienen interseccin vaca, se denomina disjunta a la descomposicin. Una vez encontradas las funciones g0, g1, y F, puede volver a aplicarse descomposicin a la funcin F, hasta que todos los bloques seriales gi tengan no ms de (n-k) entradas. Demostraremos las condiciones necesarias y suficientes para que pueda encontrarse la descomposicin anterior. Si se dibuja la tabla de verdad, colocando en los renglones las combinaciones de los valores de las variables libres, y en las columnas los valores de las combinaciones del conjunto acotado, la condicin para que pueda aplicarse la descomposicin de Curtis, con dos funciones auxiliares, es que las columnas de este arreglo tengan a lo ms cuatro valores diferentes. Las cuatro columnas no redundantes quedarn asociadas a los siguientes valores:

g1 , g 0

00, 01,10,11

El mapa formado por 4 columnas y 2 k renglones, define la funcin F, en trminos de Xl, g1 y g0. Las mezclas de las columnas equivalentes, permiten determinar las funciones auxiliares en trminos de las variables del conjunto acotado. Ntese que en este caso el nmero de columnas equivalentes debe ser mayor que 2; ya que si slo fueran dos podra aplicarse la descomposicin de Ashenhurst. Puede decirse que la descomposicin simple de Curtis, cuando slo se tienen dos columnas diferentes, es la descomposicin de Ashenhurst.

Profesor Leopoldo Silva Bijit

19-01-2010

12

Sistemas Digitales

Si las columnas equivalentes fueran solamente 3, la determinacin de la funcin F, se ve simplificada por la introduccin de una columna con valores superfluos. El anlisis de los renglones permite establecer que existe la descomposicin de Curtis, con dos funciones seriales, si se tienen dos renglones diferentes, una vez eliminados los renglones constantes y los renglones que son el complemento de otros. 8.3.2. Descomposicin de Curtis, con m funciones auxiliares. El resultado anterior puede generalizarse cuando se tienen a lo ms 2m columnas diferentes. En este caso se tendrn m funciones auxiliares. Si a es el nmero de variables que forman el conjunto acotado, la descomposicin se aplica si m < a; notar que si m=a, el nmero de entradas a la funcin F, no disminuye. Alternativamente se tiene una descomposicin general de Curtis: si se tienen m renglones diferentes, una vez eliminados los renglones constantes y los renglones que son el complemento de otros.
g0 g1 Xa gm-1 Xl F(g0, g1, , gm-1, Xl) f(Xn)

Figura 8.19. Descomposicin disjunta de Curtis. Entonces para n variables, con k variables libres, y m columnas equivalentes en la tabla de verdad de 2k 2n k se tiene la descomposicin de Curtis, si y solamente si:

1 k 2 m n k
Ntese que los bloques g, representan una codificacin de las variables del conjunto acotado, y existe compactacin si: m < n-k. Algunas funciones pueden descomponerse por compactacin de renglones y no por mezcla de columnas y tambin ocurre lo opuesto. Debido a esto pueden considerarse mtodos de descomposicin diferentes.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin 8.3.3. Fundamentos.

13

Si se escribe la tabla de verdad de la funcin f de n variables, pero en la cual se colocan en los renglones las combinaciones de las k variables libres y en las columnas las combinaciones de las a variables acotadas; y se rotulan las columnas de acuerdo al valor decimal equivalente se obtiene la matriz de descomposicin de r 2k renglones y c 2a columnas. Esta matriz es similar a un mapa de Karnaugh, pero sin emplear codificacin Gray para enumerar renglones y columnas. Por ejemplo para la funcin completamente especificada, de cinco variables:

f ( x1 , x2 , x3 , x4 , x5 )

m(0, 6, 7,8,13,15,17,19, 22, 23, 24, 25, 27, 28)

Con el conjunto de variables acotado A

x1 , x2 , x3

y el conjunto de variables libres:

x4 , x5

La matriz de descomposicin resulta: A 0 1 2 3 4 5 6 7 L x4x5\x1x2x3 000 001 010 011 100 101 110 111 0 00 1 1 1 1 1 01 1 1 1 2 10 1 1 3 11 1 1 1 1 1 f(A, L)=f(x1,x2,x3,x4,x5) Figura 8.20. Matriz de descomposicin. Si descomponemos las variables en trminos de los subconjuntos A y L, podemos escribir:

f ( x1 , x2 , x3 , x4 , x5 )

f ( A, L)

La cual puede escribirse en trminos de los renglones, en lugar de los mintrminos:

f ( A, L)

f ( A, 0) x4 ' x5 ' f ( A,1) x4 ' x5

f ( A, 2) x4 x5 ' f ( A,3) x4 x5

El primer rengln de f, es una funcin de tres variables, que representa los mintrminos de ese rengln, lo cual puede anotarse:

f ( A, 0)

f ( x1 , x2 , x3 , 0, 0)

x1 ' x2 ' x3 ' x1 ' x2 x3 ' x1 x2 x3 ' x1 x2 x3

Existiendo definiciones similares para el resto de los renglones.

Profesor Leopoldo Silva Bijit

19-01-2010

14

Sistemas Digitales

Si adems definimos el producto de las variables de L, con el subndice decimal equivalente del mintrmino asociado a esas dos variables, como pi ( L) . Se tienen:

p0 ( L)

x4 ' x5 ' , p1 ( L)

x4 ' x5 y as sucesivamente.

Empleando estas definiciones, puede escribirse:

f ( A, L)

f ( A, 0) p0 ( L)

f ( A,1) p1 ( L)
i 3

f ( A, 2) p2 ( L)

f ( A,3) p3 ( L)

Y empleando notacin con sumatorias, resulta:

f ( A, L)
i 0

f ( A, i ) pi ( L)

De manera similar la expansin por columnas, puede anotarse:


i 7

f ( A, L)
i 0

f (i, L) pi ( A)

En un caso general de n variables, la expansin por columnas, resulta con c igual al nmero de columnas de la matriz:
i c

f ( x1 , x2 ,..., xn )

f ( A, L)
i 0

f (i, L) pi ( A)

En la Figura 8.21, se muestra una implementacin con multiplexor, controlado por las variables acotadas de la expansin. Notar que las entradas al mux son funciones de las variables libres, que representan los unos presentes de la funcin en cada columna. Existe simplificacin en la descomposicin si varias de estas funciones son iguales entre s, o bien si unas son el complemento de otras, o si son constantes. La generacin de una entrada lgica uno o cero, no requiere electrnica para ser implementada; si una funcin es el complemento de otra, basta un inversor para generarla.
f(0,L) f(1,L) .. . f(i,L) .. . f(c,L) 0 1 f(A,L) i c

Figura 8.21. Expansin por columnas. La expansin por renglones, para un caso general con r igual al nmero de renglones, resulta:

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin
i r

15

f ( x1 , x2 ,..., xn )

f ( A, L)
i 0

f ( A, i) pi ( L)

En la Figura 8.22, se muestra una implementacin con multiplexor, controlado por las variables libres, de la expansin. Notar que las entradas al mux son funciones de las variables acotadas, que representan los unos presentes de la funcin en cada rengln. Existe simplificacin en la descomposicin si varias de estas funciones son iguales entre s, o bien si unas son el complemento de otras, o si son constantes.
f(A,0) f(A,1) .. . f(A,i) .. . f(A,r) 0 1 f(A,L) i r

Figura 8.22. Expansin por renglones. Estas representaciones son nicas, ya que en ambos casos se estn representando los mintrminos de la funcin f. En un caso se expande por columnas, en el otro por renglones.
i c i r

f ( x1 , x2 ,..., xn )
i 0

f (i, L) pi ( A)
i 0

f ( A, i ) pi ( L)

Una vez introducida la notacin, nos interesa descomponer f en las funciones g y h, segn:

f ( A, L)

h( g ( A), L)

Lo cual representa analticamente a la descomposicin serial, que se muestra en la Figura 8.23. En la cual interesa determinar las funciones h y g.
A g h( g(A), L) L f(A,L)

Figura 8.23. Descomposicin serial disjunta. Si cg es el nmero de columnas de la matriz que representa a la funcin h, se tiene la siguiente representacin por columnas:

Profesor Leopoldo Silva Bijit

19-01-2010

16
i cg

Sistemas Digitales

h( g , L )
i 0

h( g

i, L) pi ( g )

El mnimo nmero de columnas es dos, es decir cg=2. Lo cual implica que la salida del bloque g, est formado por una variable. Una de las columnas de la matriz de h est asociada a g=0, la otra a g=1. Corresponde a la descomposicin de Ashenhurst. El nmero de columnas debe ser una potencia de dos, si cg=4, entonces el bloque g tiene dos salidas, que podemos denominar g1 y g0, las que seran las variables, cuyos mintrminos identificaran a las columnas. Si cg=2m, entonces g tiene m salidas. Que podemos denominar: g0, g1, , gm. Este es el caso general de la descomposicin disjunta de Curtis. Si c=cg, es decir si A y g tienen el mismo nmero de columnas, no se reduce el nmero de entradas a la funcin h, ser el mismo nmero de entradas de la funcin f. Entonces para que la descomposicin sea de inters debe tenerse: c > cg. Entonces la funcin f, puede descomponerse en las funciones g y h:

f ( x1 , x2 ,..., xn )
si y solamente si se cumple la igualdad de:
i c

f ( A, L)

h( g ( A), L)

i cg

f (i, L) pi ( A)
i 0 i 0

h( g

i, L) pi ( g )

Para el caso de cg=4, se tiene que cumplir:


i c

f (i, L) pi ( A)
i 0

h(0, L) g1 ' g 0 ' h(1, L) g1 ' g 0 h(2, L) g1 g 0 ' h(3, L) g1g 0

Donde el lado izquierdo es conocido, y el objetivo es determinar las subfunciones: h, g1 y g0. Debe notarse que h(i,L) y f(i,L) son solamente funciones de las variables libres. Si c es mayor que cg, por ejemplo 8, ya que tiene que ser una potencia de dos, existirn 8 columnas en f y 4 columnas en h. Esto implica tres variables acotadas. Entonces se requiere que a lo ms f tenga 4 columnas diferentes, incluidas los valores de columnas con puros ceros o puros unos; los valores de esas columnas sern los valores de las columnas de h. Existen 4! formas de escoger las columnas de h, a partir de las columnas diferentes de f. Si f tiene 3 columnas diferentes, una de las columnas de h puede escogerse con solamente valores superfluos.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

17

Si f tiene slo dos columnas diferentes, entonces debe escogerse una funcin h que tenga dos columnas, y slo basta una funcin g, es el caso de la descomposicin Ashenhurst. Si f tiene 5 columnas diferentes, no es posible satisfacer la igualdad, en este caso es preciso que h tenga tambin 8 columnas, de las cuales 3 pueden ser fijadas en condiciones superfluas. Sin embargo en este caso se requieren 3 funciones g, lo cual implica que h tendr igual nmero de entradas que la funcin f. Razn por la cual este caso no es de inters en descomposicin. Una vez seleccionadas las columnas de f que representarn a las de h, esta funcin puede determinarse. Adems la determinacin de las funciones g puede realizarse con las siguientes cuatro ecuaciones:

pi ( A)
i f ( i , L ) h (0, L )

p0 ( g ) p1 ( g ) p2 ( g ) p3 ( g )

g1 ' g 0 ' g1 ' g 0 g1 g 0 ' g1 g 0

pi ( A)
i f ( i , L ) h (1, L )

pi ( A)
i f ( i , L ) h (2, L )

pi ( A)
i f ( i , L ) h (3, L )

Las cuales permiten escribir las tablas de verdad de las funciones g1 y g0, en trminos de las variables acotadas, ya que los pi ( A) slo dependen de las variables acotadas. En la tabla de la Figura 8.20, se han agregado dos renglones que identifican la seleccin realizada de las columnas de h, y los valores binarios correspondientes de las salidas g1 y g0. g1g0 A L x4x5\x1x2x3 0 00 1 01 2 10 3 11 00 01 00 10 10 01 11 00 h(0,L) h(1,L) h(0,L) h(2,L) h(2,L) h(1,L) h(3,L) h(0,L) 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 f(A, L)=h(g(A),L) Figura 8.24. Descomposicin serial disjunta. La seleccin realizada para las columnas de h puede anotarse:

h(0, L) h(1, L) h(2, L)

f (0, L) f (1, L) f (3, L)

f (2, L) f (5, L) f (4, L)

f (7, L) x4 x5 ' x4 x5 x4 ' x5

x4 ' x5 ' x4 x5
19-01-2010

x4 x5

Profesor Leopoldo Silva Bijit

18

Sistemas Digitales

h(3, L)

f (6, L)

x4 ' x5 ' x4 ' x5

x4 x5

x4 ' x5
i cg

Las que reemplazadas en la siguiente ecuacin, nos permiten obtener h.

h( g , L )
i 0

h( g

i, L) pi ( g )
x5 g1 g 0 ' ( x4 ' x5 ) g1 g 0

h( g , L )

x4 ' x5 ' g1 ' g 0 ' x4 g1 ' g 0

Para determinar las funciones g1 y g0, realizamos las sumatorias:

g1 ' g 0 '
i 0,2,7

pi ( A) p0 ( A)
pi ( A) p1 ( A)
i 1,5

p2 ( A)
p5 ( A)

p7 ( A)
x1 ' x2 ' x3

x1 ' x2 ' x3 ' x1 ' x2 x3 ' x1 x2 x3


x1 x2 ' x3

g1 ' g 0

g1 g 0 '
i 3,4

pi ( A) p3 ( A)
pi ( A) p6 ( A)
i 6

p4 ( A)
x1 x2 x3 '

x1 ' x2 x3

x1 x2 ' x3 '

g1 g 0

Si se suman las dos ltimas ecuaciones, se tiene:

g1

x1 ' x2 x3

x1 x2 ' x3 ' x1 x2 x3 '

x1 ' x2 x3

x1 x3 '

Si se suman la segunda y la cuarta, se obtiene:

g0

x1 ' x2 ' x3

x1 x2 ' x3

x1 x2 x3 '

x2 ' x3

x1 x2 x3 '

La determinacin de las funciones tambin puede obtenerse empleando la informacin de la matriz de descomposicin. Eliminando las columnas duplicadas de la Figura 8.24. y los renglones asociados a las variables acotadas, resulta la Figura 8.25; donde se puede determinar la funcin sucesora h. h(0,L) h(1,L) h(2,L) h(3,L) L x4x5\ g1g0 00 01 10 11 0 00 1 1 1 01 1 1 2 10 1 3 11 1 1 1 h(g,L) Figura 8.25. Funcin h(g,L).

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

19

Si en la Figura 8.24, se eliminan los renglones asociados a las variables libres, y slo se dejan los renglones asociados a las tablas de verdad de las funciones g1 y g0, se obtiene la Figura 8.26. g1g0 00 01 00 10 10 01 11 00 x1x2x3 000 001 010 011 100 101 110 111 Figura 8.26. Tablas de verdad de las funciones g1 y g0. Funciones que pueden ser minimizadas, redibujando las tablas de verdad como mapas de Karnaugh. x4x5\ g1g0 00 01 11 10 00 1 1 01 1 1 11 1 1 1 10 1 h(g, x4, x5) Figura 8.27. Mapa de Karnaugh de h.

h( g1 , g0 , x4 , x5 )
Para las funciones antecesoras:

g1 x5

g1 g 0 x4 ' g1 ' g 0 x4

g1 ' g 0 ' x4 ' x5 '

x3\ x1 x2 00 01 11 10 0 00 00 11 10 1 01 10 00 01 g1g0 Figura 8.28. Mapa de Karnaugh de g1 y g0. Resultan:

g1 ( x1 , x2 , x3 ) g0 ( x1 , x2 , x3 )

x1 x3 ' x1 ' x2 x3 x2 ' x3 x1 x2 x3 '

8.4. Descomposicin de funciones incompletamente especificadas.


Cuando la tabla de verdad tiene condiciones superfluas se dice que dos columnas i, j son compatibles si cada elemento en la columna i es igual al correspondiente elemento de j, o si el elemento en i o en j no est especificado. Dicho de otra forma: Dos columnas, Cr y Cs, son compatibles, si no existe un rengln i, para el cual los correspondientes elementos Cir y Cis sean diferentes, cuando ambos estn especificados.

Profesor Leopoldo Silva Bijit

19-01-2010

20

Sistemas Digitales

La descomposicin de estas funciones est gobernada por las mismas reglas anteriores, excepto que existen varias combinaciones alternativas para mezclar las columnas compatibles. En estos casos la solucin puede no ser nica. Un conjunto de columnas para el cual cada par de columnas son compatibles se denomina clase compatible. Las clases compatibles que no son subconjuntos de otras clases compatibles se denominan clases de compatibilidad mxima. Finalmente se selecciona un subconjunto de mnima cardinalidad de las clases mximas, tal que cada columna est al menos en una de clases de compatibilidad mxima que se empleen. 8.4.1. Ejemplo. Veremos a travs de un ejemplo la forma de compactar las columnas de la tabla de la funcin f incompletamente especificada. Variables libres: (a,b), variables acotadas: (c,d,e). ab/ cde 000 001 010 011 100 101 110 111 00 1 0 1 0 1 0 01 1 1 10 0 1 0 0 0 1 11 0 1 C0 C1 C2 C3 C4 C5 C6 C7 f(a,b,c,d,e) Figura 8.29. Descomposicin de funcin con condiciones superfluas. Como ejemplo, los siguientes pares son incompatibles: (C0, C1), (C0, C2), (C0, C5), (C0, C7). Para formar las clases, es preciso disponer de los pares de columnas compatibles. En la siguiente tabla de la Figura 8.30, en la primera columna se anotan los pares indicando los ndices de las columnas. Para formar la segunda columna, se recorren los pares para detectar los tros de columnas compatibles entre s. Por ejemplo se tienen los pares: (0,3), (0,4) y (3,4), entonces se forma el tro de columnas compatibles entre s: (0, 3, 4). En la Figura 8.30, no se muestran todos los vnculos que permiten construir la segunda columna. Como se usan todos los pares al formar la columna de tros, no se tiene una clase mxima formada por dos columnas. Luego de la columna de tros se forma una clase compatible de cuatro columnas entre s. De este modo puede formarse la clase (0,3,4,6) ya que se tienen: (0,3,4), (0,3,6), (0,4,6) y (3,4,6). Se procede de igual forma hasta que no se puedan generar clases con un nmero mayor de columnas compatibles entre s. Ntese que en la tercera columna quedan dos clases con cuatro columnas compatibles entre s, y en la segunda quedan dos con tres columnas compatibles entre s. stas son las clases de compatibilidad mxima.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin
0,3 0,4 0,6 1,3 1,4 1,5 1,6 2,5 2,7 3,4 3,6 4,5 4,6 5,7

21

0,3,4 0,3,6 0,4,6 1,3,4 1,3,6 1,4,5 1,4,6 2,5,7 3,4,6

0,3,4,6 1,3,4,6

Figura 8.30. Formacin de clases de compatibilidad mxima. Ahora debe efectuarse una seleccin de las clases, de tal modo que cada una de las columnas est incluida en alguna de las clases seleccionadas. Por ejemplo, pueden escogerse las clases: (0,3,4,6), (1,4,5), (2,5,7). Finalmente los elementos mltiples deben eliminarse, resultando las siguientes clases: (0,3,4,6), (1,5), (2,7). La mezcla de las columnas de cada clase, que en el caso del ejemplo son tres, se asocian a los valores de las funciones seriales g1 y g0. Ntese que se agrega una columna con valores superfluos, lo que permite un nivel adicional de minimizacin de la funcin: h(g1, g0, (a,b)) La codificacin de las columnas influye en la minimizacin. ab/ g1g0 00 01 10 11 00 01 10 11 1 0 0 1 1 0 0 1 0 1 C0,C3,C4,C6 C1,C5 C2,C7 h

Figura 8.31. Mezcla de columnas de clases compatibles. Para la determinacin de las funciones g, en trminos de las variables acotadas, se tienen:

Profesor Leopoldo Silva Bijit

19-01-2010

22 cde 000 001 010 011 100 101 110 111 g1g0 00 01 10 00 00 01 00 10 C0 C1 C2 C3 C4 C5 C6 C7 Figura 8.32. Tablas de las funciones predecesoras. Resultan, luego de la minimizacin:
c d e a b g h f

Sistemas Digitales

h g1 g0

a ' g1 ' g 0 ' bg 0 ag1 c ' de ' cde d 'e

Figura 8.33. Resultado de la descomposicin.

8.5. Descomposiciones no disjuntas.


Cuando no se cumplen las condiciones para descomposiciones disjuntas, puede encontrarse descomposiciones no disjuntas, agregando al conjunto acotado una de las variables libres.

Si A C son las variables acotadas y L


una descomposicin no disjunta.
A C g

C son las variables libres y C es no vaco se tiene

F L

Figura 8.34. Descomposicin no disjunta. El uso de mapas con variables repetidas, permite generalizar el caso de las descomposiciones disjuntas al tratamiento de las no disjuntas. El mapa con variables repetidas es incompletamente especificado aunque la funcin original sea completamente especificada. Cada variable repetida crea un mapa de una dimensin mayor en el cual las nuevas celdas introducidas son condiciones superfluas. 8.5.1. Ejemplo. La funcin f, de la Figura 8.35, no tiene descomposicin disjunta de Curtis, no hay 4 columnas diferentes; ni Ashenhurst, ya que no hay slo 2. Puede verificarse que no existe

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

23

descomposiciones eligiendo los seis conjuntos libres posibles en este caso: ab, cd, ac, bd, ad, bc. Diseo en dos niveles: f = bcd+acd+acd+bcd+abd con 20 entradas. AB 00 01 11 10 CD
00 01 11 10 1 0 0 1
0 1 3 2

1 0 1 0

4 5 7 6

0 0 1 0

12 13 15 14

1 0 1 0

8 9 11 10

f(A, B, C, D)

Figura 8.35. Descomposicin no disjunta. Si se introducen las variables C1 = C2 = C, aparecen numerosas condiciones superfluas, ya que si C es la misma variable, no se pueden producir los casos en que C1 y C2 sean diferentes. C1AB C2D 000 001 011 010 100 101 111 110 8 12 0 4 00 1 1 0 1
01 11 10 0 1 3 2

0 -

5 7 6

0 -

13 15 14

0 -

9 11 10

0 1

1 0

1 0

1 0

f(A, B, C, D)

Figura 8.36. Mapa con variable C repetida. a) Diseo mezclando columnas. Eligiendo valores para las casillas superfluas, pueden tenerse los siguientes conjuntos de columnas compatibles: (0,1,2,4) (3,5,6,7), se ha empleado el decimal equivalente para identificar la columna. Puede notarse que las columnas 1 y 2 no son compatibles, ya que para el rengln 0, una tiene valor uno y la otra valor cero. Existen otras elecciones posibles de las condiciones superfluas, que permiten seleccionar otros conjuntos de columnas compatibles. Entonces mezclando las columnas compatibles, puede verse que existe la descomposicin de Ashenhurst no disjunta.

Profesor Leopoldo Silva Bijit

19-01-2010

24 cd\g 00 01 11 10 0 1 1 0 0 0 0 1 1 0 h=dg+cdg

Sistemas Digitales

Figura 8.37. Ashenhurst no disjunta. La determinacin de la funcin g, puede obtenerse considerando que g ser uno cuando las variables acotadas CAB toman las combinaciones: 011, 101, 111, 110, con el mapa: c\ab 00 01 11 10 0 1 1 1 1 1 g=ab + ac+ bc Figura 8.38. Funcin predecesora g. Evaluando el costo con compuertas elementales, resulta de 17 entradas y 5 niveles. Sin embargo este clculo no es relevante si las funciones g y h pueden implementarse en un bloque bsico. b) Diseo compactando renglones. Eligiendo valores para las condiciones superfluas, pueden formarse dos renglones complementarios C1AB C2D 000 001 011 010 100 101 111 110
00 01 11 10 1 0 0 1
0 1 3 2

1 0 0 1

4 5 7 6

0 0 1 0

12 13 15 14

1 0 0 1

8 9 11 10

1 0 1

0 1 0

0 1 0

0 1 0

f(A, B, C, D)

Figura 8.39. Formacin de renglones compatibles. La ecuacin para la funcin sucesora, se obtiene con la ecuacin del multiplexor gobernado por las variables libres. h= gcd+0cd+ gcd + gcd La cual puede ser minimizada: h= cdg+dg

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin La funcin antecesora, resulta del mapa del primer rengln: c\ab 0 1 00 01 11 10 1 1 1 1 g=ab + ac+ bc

25

Figura 8.40. Mapa para obtener funcin g. Que para fines de comparacin, implementada con compuertas tradicionales, resulta de 17 entradas y 5 niveles Factorizando con SIS, que emplea clculo con cubos, se obtiene la red booleana: g1 = ab, g2=a+b h= dg1+cdg1+cdg2 con 16 entradas, 4 niveles

8.6. Descomposicin paralela.


En caso de tener sistemas con mltiples salidas debe aplicarse la descomposicin en paralelo. En la descomposicin paralela el conjunto de variables de salida f, es particionado en dos subconjuntos fG y fH, y la funcin f en las funciones G y H correspondientes. De tal modo que los conjuntos XG y XH, de variables de entrada a los bloques G y H respectivamente, contengan menos variables que el conjunto X de variables de entrada a la funcin f.
X XG XH

fG

fH

Figura 8.41. Descomposicin paralela. Si los conjuntos XG y XH son disjuntos, se dice que la descomposicin paralela es disjunta; si la interseccin es no vaca se dice que es no disjunta. Se denomina descomposicin balanceada al proceso de partir una funcin mediante descomposicin paralela o serial en cada fase del proceso de sntesis.

8.7. Sntesis multinivel


8.7.1. Redes lgicas booleanas. La minimizacin como suma de productos es un proceso de sntesis lgica realizada en dos niveles de compuertas. Estos diseos tienen mnimo retardo para la propagacin de los cambios entre las entradas y las salidas, pero a costa de compuertas con gran nmero de entradas.

Profesor Leopoldo Silva Bijit

19-01-2010

26

Sistemas Digitales

Compuertas con muchas entradas requieren mayor superficie para ubicar los transistores dentro del proceso de integracin; por lo cual debido al compromiso rea versus tiempo de retardo, los diseos de sistemas complejos suelen tener ms de dos niveles. La estructura de dispositivos CPLD permite naturalmente la implementacin de lgica en dos niveles. La estructura interna de los dispositivos FPGA, basada en la interconexin de pequeas celdas estndares, est ms orientada a la implementacin de lgica multinivel. Los sistemas computacionales de ayuda al diseo (CAD) que permiten la optimizacin de lgica multinivel, modelan las ecuaciones mediante una red lgica booleana, que es una generalizacin de un netlist o un esquemtico basado en compuertas. La Figura 8.42 muestra un esquemtico simple, basado en compuertas.
A B C D x1 x2

Figura 8.42. Esquemtico basado en compuertas. La Figura 8.43 representa una red lgica booleana, en la cual las salidas de los bloques, denominados vrtices internos o nodos, son funciones booleanas. Es decir un netlist de componentes conectadas, pero stas pueden ser ahora funciones booleanas arbitrarias. La estructura resultante es un grafo dirigido acclico. En un caso general puede suponerse que las entradas a la red, provienen de salidas de latchs o flip-flops, que almacenan los valores de las variables; y que las salidas de la red son almacenadas en registros.
A B C D x1 x2

Figura 8.43. Red lgica booleana. Los mtodos de minimizacin estn basados en transformaciones locales o globales de la red. Las transformaciones locales apuntan a reducir el rea y el tiempo de propagacin asociados al nodo o bien a mapear la funcin del nodo a determinada interconexin de celdas bsicas. Las

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

27

transformaciones globales reestructuran la red, por ejemplo: uniendo nodos, o separando un nodo en dos, o cambiando las conexiones entre nodos. Si las funciones de cada nodo se representan en forma suma de productos, el costo de la red puede calcularse como la suma de los literales de cada nodo. No se dispone, por el momento, de herramientas que logren la optimizacin de sistemas complejos multinivel; a cambio se dispone de operaciones que se realizan sobre la red, intentando un cambio; en caso de disminuir el costo de la red, se acepta el cambio, en caso contrario se intenta otra modificacin, esto puede repetirse hasta que no se logren nuevas reducciones del costo. Se entiende por optimizacin multinivel al proceso de encontrar factores lgicos que sean comunes, lo cual reduce el fan in pero aumenta el nmero de niveles. Luego debe mapearse estas formas factorizadas en alguna de las formas que estn disponibles en una biblioteca. 8.7.2. Operaciones. Eliminacin de un nodo. Se elimina un nodo interno mediante el reemplazo de la funcin que lo describe en todos los nodos que ste alimenta. Se elimina un nodo de pequeo costo, el cual es absorbido por el resto. Tambin se denomina colapsamiento del nodo x. Esta operacin disminuye el tiempo de propagacin de la red pero aumenta los costos de los nodos. La Figura 8.44 muestra la eliminacin del nodo con salida x.
C A B x=A+B

S=x+C

C A B A B D

S=A+B+C

T=xD
D

T=(A+B)D

Figura 8.44. Eliminacin nodo x. Creacin de un nodo. Se agrega un nuevo vrtice que contiene una subexpresin que es comn a dos o ms nodos; luego la salida del nuevo nodo substituye el trmino comn en los nodos. Se disminuye el tamao de algunos nodos, agregando un nodo factor; de este modo los nodos resultantes son de costos menores.

Profesor Leopoldo Silva Bijit

19-01-2010

28
C A B A B D

Sistemas Digitales
S=(A+B)C
A B x=A+B C

S=xC

T=(A+B)D

T=xD
D

Figura 8.45. Creacin nodo x. Esta operacin tambin se denomina extraccin, ya que obtiene un factor que es comn a varias funciones. Esta operacin aumenta el tiempo de propagacin de la red pero disminuye los costos de los nodos. Las siguientes son operaciones que se realizan sobre un nodo. Descomposicin. Una funcin puede descomponerse en partes. Por ejemplo la funcin que tiene asociado el nodo: f = abc+abd Puede descomponerse en tres nodos: f, x e y, con las siguientes funciones para cada nodo: f = xy x = ab y = c+d Factorizacin. Una funcin puede descomponerse en sus factores. Por ejemplo la funcin que tiene asociado el nodo: f = ac + ad + bc + bd Puede factorizarse segn: f = (a+b)(c+d) Encontrar mtodos para obtener factores adecuados ha sido posible gracias al desarrollo de nuevos conceptos tericos: Para lograr disponer del operador divisin no se definen algunos postulados del algebra de Boole, de este modo una expresin booleana se comporta como un polinomio de nmeros reales. Especficamente no se definen: a+a=1, aa=0, aa=a, a+a=a, a+1=1, a+(b+c) =(a+b)(a+c). Con esto podemos usar para expresiones las reglas algebraicas empleadas con reales. Ntese que en este ambiente una variable y su complemento no tienen ninguna relacin. Simplificacin. Puede aplicarse un mtodo de simplificacin, del tipo minimizacin en forma de suma de productos, a la funcin asociada a un nodo. Si no se eliminan variables se tiene una minimizacin local; sin embargo si se elimina una o ms variables, se dice que la simplificacin es global ya que cambia la red. SIS La forma de efectuar minimizaciones multinivel es a travs de herramientas CAD de ayuda al diseo. stas suelen venir incorporadas en el software provisto por los fabricantes de dispositivos programables, o bien se producen en forma comercial. Por otra parte se puede usar software libre como sis, que fue desarrollado por la Universidad de Berkeley. Ver Apndice 6,

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

29

sobre uso de sis. Ms recientemente est en desarrollo el sistema abc, tambin en la Universidad de Berkeley, ste ltimo acepta entradas en verilog estructural. 8.7.3. Formas factorizadas. Una expresin booleana puede representarse mediante una forma factorizada. Estas formas podan describirse segn: Es un producto de sumas de productos o una suma de producto de sumas. Las siguientes son formas factorizadas: x, y, abc, a+bc, ((a+b)cd+e)(a+b)+e Pero: (a+b)c no es una forma factorizada ya que la complementacin de una expresin no est permitida, salvo sobre literales. Puede definirse recursivamente segn: Una forma factorizada es un producto o una suma, donde: El producto es un literal simple o un producto de formas factorizadas. La suma es un literal simple o una suma de formas factorizadas. Las formas factorizadas no son nicas. La siguientes tres formas son equivalentes: ab+c(a+b) bc+a(b+c) ac+b(a+c) Una forma suma de productos es una forma factorizada pero seguramente no es una buena factorizacin considerando el costo espacial. La expresin en forma de suma de productos: f = ae+af+bce+bcf+bde+bdf tiene un costo de 16 literales. La forma factorizada equivalente f = (a+b(c+d))(e+f), tiene un costo de 6 literales. Esto implica que una forma bien factorizada es bastante ms compacta que la cobertura mnima formada por la suma de implicantes primos. La forma suma de productos de la funcin de 10 variables, func1 tiene 42 literales, con 54 entradas en total, en dos niveles. El or final de esta implementacin tiene 12 entradas. func1=ac+ade+adfg+adfh+adfi+adfj+bc+bde+bdfg+ bdfh+bdfi+bdfj Esto considerando que func1 est minimizada. La forma factorizada equivalente func2, tiene 10 literales y 6 niveles. Con 16 entradas en total. En este diseo todas las compuertas son de dos entradas, salvo una que es de 4. func2=(a+b)(c+d(e+f(g+h+i+j))) A travs de los ejemplos anteriores se comprueba que las formas factorizadas son tiles en la reduccin del costo de una red multinivel. En diseos de funciones integradas CMOS, las redes de pull-up y pull down corresponden a la forma factorizada de la funcin.

Profesor Leopoldo Silva Bijit

19-01-2010

30

Sistemas Digitales

Problemas resueltos.
P8.1. Descomposicin. Se tiene la siguiente funcin de cuatro variables.
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 f 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0

Figura P8.1. Funcin de cuatro variables. Se efecta la descomposicin, empleando como variables libres: a, b. LO primero que se realiza es determinar la matriz de descomposicin. ab\cd 00 01 10 11 00 0 1 1 0 01 1 0 1 0 10 1 0 1 0 11 0 1 1 0

Figura P8.2. Matriz de descomposicin. Luego se buscan columnas equivalentes. Se encuentran dos columnas diferentes, lo que implica que la red tiene descomposicin de Ashenhurst. Luego se escogen las columnas de h.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin ab\g 00 01 10 11 0 1 0 1 1 0 1 1 0 0 h=ab+bg+abg

31

Figura P8.3. Funcin sucesora. Finalmente se determina la funcin g. a\b 0 1 0 1 0 1 1 0 g=b Figura P8.4. Funcin predecesora. La solucin alternativa es compactando los renglones. El primer y segundo rengln son complementarios, los otros dos renglones son constantes, lo cual implica que existe descomposicin de Ashenhurst:

f g
P8.2. Factorizacin.

ga ' b ' g ' a ' b 1ab ' 0ab c ' d cd '

La funcin de 5 variables: f AC AD BE BF es de la forma suma de productos, y no puede ser reducida por simplificacin. Su implementacin tiene un costo total de: 2+2+2+2+4 = 12 entradas, y 8 literales. Se desea obtener una forma factorizada implementada mediante NANDs, Sin embargo, mediante factorizacin puede escribirse: f A(C D) B( E F ) , la cual requiere 2+2+2+2+2 = 10 entradas, y 6 literales segn puede apreciarse en la Figura P8.5. Esta expresin no es suma de productos pura; pero su implementacin es directa, empleando AND y OR e implica tres niveles.
C D A f E F B

Figura P8.5. Forma factorizada en tres niveles.


Profesor Leopoldo Silva Bijit 19-01-2010

32 Las formas factorizadas tambin pueden mapearse con compuertas nand.

Sistemas Digitales

El teorema de De Morgan indica que la siguiente compuerta es equivalente a un NAND.

Figura P8.6. Nand segn De Morgan. Se complementan las variables de entrada y se insertan burbujas inversoras en las entradas de las compuertas or de primer nivel. Luego se insertan dobles burbujas inversoras a la salida de los ands del segundo nivel, formando un nand y desplazando la burbuja hacia las entradas de los or del tercer nivel. Resulta la red de la Figura P8.7.
C D

A f B

E F

Figura P8.7. Diseo en base a NANDs Luego se representan todas las compuertas, usando el smbolo de los NAND. El diseo se logra empleando 5 compuertas nand y con 10 entradas. Debe notarse que este mtodo asume que se dispone de las entradas y sus complementos.

Ejercicios propuestos.
E8.1. Efectuar la descomposicin, si es posible, del problema P8.1, para los siguientes juegos de variables libres: (a,c), (a,d), (b,c), (b,d) y (c,d). Comparando los resultados, y seleccionando la mejor descomposicin. E8.2. Dada la forma factorizada: (a + b + c)(d + e) f+g expandirla a suma de productos. Comparar las formas respecto del: nmero de niveles, de entradas y de literales. Efectuar el diseo empleando solamente compuertas nand.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

33

Referencias.
R. L. Ashenhurst, The decomposition of switching functions, Bell Laboratories, Tech. Rep. BL-1(11), 1952. H. Allen Curtis, Generalized Tree Circuit, Lewis Research Center. NASA. 1961. Marek A. Perkowski, Tadeusz Luba, et al, Unified approach to functional decompositions of switching functions, Portland State University, 1995.

Profesor Leopoldo Silva Bijit

19-01-2010

34

Sistemas Digitales

ndice general.
CAPTULO 8 ..............................................................................................................................................1 DESCOMPOSICIN .................................................................................................................................1 8.1. DESCOMPOSICIN TRIVIAL. TEOREMA DE SHANNON..........................................................................2 8.1.1. Extraccin de una variable. .......................................................................................................2 8.1.2. Extraccin de dos variables. ......................................................................................................4 8.2. DESCOMPOSICIN DE ASHENHURST. ..................................................................................................5 8.2.1. Compactando las columnas. ......................................................................................................6 8.2.2. Redundancia de renglones. ........................................................................................................8 8.2.3. Complejidad de la descomposicin. ...........................................................................................9 8.3. DESCOMPOSICIN DE CURTIS. ..........................................................................................................10 8.3.1. Descomposicin de Curtis, con dos funciones auxiliares. .......................................................11 8.3.2. Descomposicin de Curtis, con m funciones auxiliares. ..........................................................12 8.3.3. Fundamentos. ...........................................................................................................................13 8.4. DESCOMPOSICIN DE FUNCIONES INCOMPLETAMENTE ESPECIFICADAS. ...........................................19 8.4.1. Ejemplo. ...................................................................................................................................20 8.5. DESCOMPOSICIONES NO DISJUNTAS. .................................................................................................22 8.5.1. Ejemplo. ...................................................................................................................................22
a) Diseo mezclando columnas. ..................................................................................................................... 23 b) Diseo compactando renglones. ................................................................................................................ 24

8.6. DESCOMPOSICIN PARALELA. ..........................................................................................................25 8.7. SNTESIS MULTINIVEL.......................................................................................................................25 8.7.1. Redes lgicas booleanas. .........................................................................................................25 8.7.2. Operaciones. ............................................................................................................................27
Eliminacin de un nodo. ................................................................................................................................ 27 Creacin de un nodo. ..................................................................................................................................... 27 Descomposicin. ............................................................................................................................................ 28 Factorizacin. ................................................................................................................................................. 28 Simplificacin. ............................................................................................................................................... 28 SIS.................................................................................................................................................................. 28

8.7.3. Formas factorizadas. ...............................................................................................................29 PROBLEMAS RESUELTOS. ........................................................................................................................30 P8.1. Descomposicin. .......................................................................................................................30 P8.2. Factorizacin. ...........................................................................................................................31 EJERCICIOS PROPUESTOS. ........................................................................................................................32 E8.1. ...................................................................................................................................................32 E8.2. ...................................................................................................................................................32 REFERENCIAS. .........................................................................................................................................33 NDICE GENERAL. ....................................................................................................................................34 NDICE DE FIGURAS .................................................................................................................................35

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 8. Descomposicin

35

ndice de figuras
Figura 8.1. Descomposicin paralela y serial. ............................................................................... 1 Figura 8.2 Funcin de n variables. ................................................................................................ 2 Figura 8.3 Descomposicin trivial. ............................................................................................... 3 Figura 8.4 Implementacin con multiplexor. ................................................................................ 3 Figura 8.5. Tabla de verdad de una funcin de 4 variables. .......................................................... 3 Figura 8.6 Mapa de g0. .................................................................................................................. 4 Figura 8.7 Mapa de g1. .................................................................................................................. 4 Figura 8.8. Descomposicin en 4 subfunciones. ........................................................................... 4 Figura 8.9. Multiplexor de 4 vas. ................................................................................................. 5 Figura 8.10. Tabla de verdad de una funcin de 5 variables. ........................................................ 5 Figura 8.11. Descomposicin de Ashenhurst. ............................................................................... 6 Figura 8.12. Matriz de descomposicin con dos columnas con valores diferentes. ...................... 6 Figura 8.13. Tabla de verdad de h(g,Xa). ...................................................................................... 7 Figura 8.14. Tabla de verdad de g(Xa). ......................................................................................... 7 Figura 8.15. Multiplexor de m entradas, controlado por variables libres. ..................................... 8 Figura 8.16. La funcin h es el multiplexor ms red combinacional. ........................................... 9 Figura 8.17. Particin {2, 3, 4}. .................................................................................................. 10 Figura 8.18. Descomposicin disjunta de Curtis. ........................................................................ 11 Figura 8.19. Descomposicin disjunta de Curtis. ........................................................................ 12 Figura 8.20. Matriz de descomposicin. ..................................................................................... 13 Figura 8.21. Expansin por columnas. ........................................................................................ 14 Figura 8.22. Expansin por renglones. ........................................................................................ 15 Figura 8.23. Descomposicin serial disjunta............................................................................... 15 Figura 8.24. Descomposicin serial disjunta. .............................................................................. 17 Figura 8.25. Funcin h(g,L)......................................................................................................... 18 Figura 8.26. Tablas de verdad de las funciones g1 y g0.............................................................. 19 Figura 8.27. Mapa de Karnaugh de h. ......................................................................................... 19 Figura 8.28. Mapa de Karnaugh de g1 y g0. ............................................................................... 19 Figura 8.29. Descomposicin de funcin con condiciones superfluas. ....................................... 20 Figura 8.30. Formacin de clases de compatibilidad mxima. ................................................... 21 Figura 8.31. Mezcla de columnas de clases compatibles. ........................................................... 21 Figura 8.32. Tablas de las funciones predecesoras...................................................................... 22 Figura 8.33. Resultado de la descomposicin. ............................................................................ 22 Figura 8.34. Descomposicin no disjunta. .................................................................................. 22 Figura 8.35. Descomposicin no disjunta. .................................................................................. 23 Figura 8.36. Mapa con variable C repetida. ................................................................................ 23 Figura 8.37. Ashenhurst no disjunta. ........................................................................................... 24 Figura 8.38. Funcin predecesora g. ........................................................................................... 24 Figura 8.39. Formacin de renglones compatibles. ..................................................................... 24 Figura 8.40. Mapa para obtener funcin g. ................................................................................. 25 Figura 8.41. Descomposicin paralela. ....................................................................................... 25 Figura 8.42. Esquemtico basado en compuertas. ...................................................................... 26 Figura 8.43. Red lgica booleana. .............................................................................................. 26
Profesor Leopoldo Silva Bijit 19-01-2010

36

Sistemas Digitales

Figura 8.44. Eliminacin nodo x. ............................................................................................... 27 Figura 8.45. Creacin nodo x. .................................................................................................... 28 Figura P8.1. Funcin de cuatro variables. .................................................................................. 30 Figura P8.2. Matriz de descomposicin. .................................................................................... 30 Figura P8.3. Funcin sucesora.................................................................................................... 31 Figura P8.4. Funcin predecesora. ............................................................................................. 31 Figura P8.5. Forma factorizada en tres niveles............................................................................ 31 Figura P8.6. Nand segn De Morgan. ......................................................................................... 32 Figura P8.7. Diseo en base a NANDs ....................................................................................... 32

Profesor Leopoldo Silva Bijit

19-01-2010

Vous aimerez peut-être aussi