C8 - Departamento de Electrónica

Anuncio
1
Capítulo 8
Descomposición
La descomposición de un problema complejo en un número de subproblemas más simples de
resolver es una actividad usual en ingeniería.
En síntesis lógica es una actividad fundamental, ya que separa un sistema lógico de un número
elevado de entradas en un conjunto de subsistemas interconectados con un número menor de
variables de entrada.
En la actualidad los dispositivos programables están basados en unidades que pueden
implementar funciones con un número reducido de entradas y salidas. Por ejemplo en FPGAs
basadas en tablas de búsquedas 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 más de k entradas en subredes funcionalmente equivalentes que estén
formadas solamente por nodos con k o menos entradas.
Figura 8.1. Descomposición paralela y serial.
La Figura 8.1, a la izquierda, muestra la descomposición paralela, que separa la red en varias
redes con menor número de entradas y salidas. La ubicada a la derecha ilustra la
descomposición en serie.
La descomposición funcional de los circuitos combinacionales influye poderosamente en la
disminución de costos de implementación de los sistemas digitales. Y tiene su fundamento en
que las tablas de verdad de funciones combinacionales, de un número elevado de variables,
pueden contener redundancias, las que pueden ser eliminadas por la descomposición de la
función en varias funciones independientes con menos variables de entrada.
Profesor Leopoldo Silva Bijit
19-01-2010
2
Sistemas Digitales
Esta descomposición no sólo reduce la complejidad sino que aumenta la escalabilidad y la
realizabilidad de los sistemas.
Desde un punto de vista matemático la descomposición es el proceso de expresar una función de
n variables como una función de funciones con variables menores que n.
Se exponen los principales resultados de la teoría de descomposición, ilustrando los diferentes
ejemplos mediante mapas, lo cual es posible para un número reducido de variables. Sin embargo
en problemas reales con un número elevado de variables, para resolver cada uno de los
subproblemas asociados a la descomposición existen heurísticas, que han permitido desarrollar
aplicaciones computacionales que resuelven el problema. Su exposición tiene mayor relación
con cursos de estructuras de datos y algoritmos.
8.1. Descomposición trivial. Teorema de Shannon.
8.1.1. Extracción de una variable.
Una función de n variables puede ser descompuesta, aplicando el teorema de expansión de
Shanonn, según:
f ( x1 , x2 ,.., xn 1 , xn )
xn ' f ( x1 , x2 ,.., xn 1 , 0) xn f ( x1 , x2 ,.., xn 1 ,1)
f
Xn
f(Xn)
Figura 8.2 Función 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, según:
g 0 ( x1 , x2 ,.., xn 1 )
f ( x1 , x2 ,.., xn 1 , 0)
g1 ( x1 , x2 ,.., xn 1 )
f ( x1 , x2 ,.., xn 1 ,1)
Podremos expresar:
f ( x1 , x2 ,.., xn 1 , xn )
F ( g 0 , g1 , xn )
Con:
F ( g0 , g1 , xn )
Profesor Leopoldo Silva Bijit
xn ' g 0
xn g1
19-01-2010
Capítulo 8. Descomposición
3
g0
Xn-1
F(g0, g1, xn)
g1
f(Xn)
xn
Figura 8.3 Descomposición trivial.
Donde: X n
1
x1 , x2 ,.., xn
1
La descomposición consiste en encontrar las funciones: g0, g1 y F. Las funciones gi se
denominan funciones predecesoras o auxiliares; y la descomposición se denomina serial o en
red lógica de tipo árbol.
La función F, puede ser implementada usando un multiplexor.
g0
0
g1
1
Xn-1
f(Xn)
xn
Figura 8.4 Implementación 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
función 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 función de 4 variables.
Entonces el primer renglón es la tabla de verdad de la función g0; el segundo corresponde al
mapa de g1.
La función g0, puede minimizarse empleando el siguiente mapa de tres variables:
Profesor Leopoldo Silva Bijit
19-01-2010
4
Sistemas Digitales
x3/x1x2 00 01 11 10
0
1 1
1
1
1
1
g0=x2’+x1’x3’
Figura 8.6 Mapa de g0.
La función 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. Extracción de dos variables.
Del mismo modo pueden disminuirse las entradas a las funciones auxiliares, generando
funciones con un número menor de variables de entrada. La Figura 8.8 muestra las funciones
cofactores cuando se han extraído las variables xn y xn-1.
g0
g1
Xn-2
g2
F(g0, g1, g2, g3, xn-1, xn)
f(Xn)
g3
xn-1, xn
Figura 8.8. Descomposición en 4 subfunciones.
Las funciones de (n-2) variables se obtienen a partir de la función f, según:
Profesor Leopoldo Silva Bijit
g 0 ( x1 , x2 ,.., xn 2 )
f ( x1 , x2 ,.., xn 2 , 0, 0)
g1 ( x1 , x2 ,.., xn 2 )
f ( x1 , x2 ,.., xn 2 , 0,1)
g 2 ( x1 , x2 ,.., xn 2 )
f ( x1 , x2 ,.., xn 2 ,1, 0)
g3 ( x1 , x2 ,.., xn 2 )
f ( x1 , x2 ,.., xn 2 ,1,1)
19-01-2010
Capítulo 8. Descomposición
5
La función 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 vías a una, según se muestra en la
Figura 8.9.
g0
0
g1
1
Xn-2
f(Xn)
g2
2
g3
3
xn-1, xn
Figura 8.9. Multiplexor de 4 vías.
La identificación 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 podríamos llamar variables
libres. La Figura 8.10, ilustra el caso de una función 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 función de 5 variables.
Donde las funciones gi, se pueden minimizar empleando mapas de tres variables.
8.2. Descomposición de Ashenhurst.
En 1952 Ashenhurst demuestra las condiciones en que una función 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, según: X l
acotado según: X a
x1 , x2 ,.., xk , y el conjunto de variables
xk 1 , xk 2 ,.., xn . Debe notarse que el número de variables de entrada
Profesor Leopoldo Silva Bijit
19-01-2010
6
Sistemas Digitales
que tiene la subfunción g es (n-k), y que el número de variables de entrada del bloque h es de
(k+1) variables, ambos menores que n.
El módulo g debe poder ser implementado en un dispositivo en el cual se pueda programar una
función de (n-k) variables de entrada y una salida.
Si la función h tiene más 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 múltiples salidas de este bloque; en este caso la
estructura deja de ser de tipo árbol para convertirse en un grafo dirigido acíclico.
Se dice que la descomposición es disjunta ya que el conjunto de variables de entrada es partido
en dos subconjuntos con intersección vacía.
Xa
g
h(g, Xl)
f(Xn)
Xl
Figura 8.11. Descomposición 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 descomposición.
La condición para que pueda aplicarse la descomposición de Ashenhurst, es que las columnas
de este arreglo tengan a lo más 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 descomposición con dos columnas con valores diferentes.
Se tienen dos posibles elecciones para la función 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
Capítulo 8. Descomposición
7
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 función de igual costo, salvo
que aparece g’ en la expresión. Nótese que se efectúa una minimización o reducción de
columnas equivalentes.
Las cuatro columnas asociadas a g=1, permiten determinar la función g ( x3 , x4 , x5 ) .
Corresponden a los valores equivalentes decimales del conjunto x3 , x4 , x5
3,5, 6, 7 .
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 número de
entradas acotado a 3. Si se efectúa el diseño con compuertas tradicionales, se obtiene un diseño
en cuatro niveles con 17 entradas.
Un diseño mínimo en dos niveles permite obtener la expresión con 27 entradas:
f
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:
f
x1 x2 ( x1 x2 )( x3 x4
x3 x5
x4 x5 )
Expresión en la cual pueden reconocerse las funciones g y h, obtenidas mediante
descomposición.
Esta descomposición 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
Sistemas Digitales
8.2.2. Redundancia de renglones.
Otra forma de encontrar las condiciones suficientes y necesarias para que exista la
descomposición 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 extracción de k
variables, notando que la función f puede descomponerse en 2 k funciones gi ( X l ) , una por cada
renglón. Con m
2k el número de funciones auxiliares, se tiene:
g0
0
g1
1
Xa
…
gm-1
f(Xn)
…
2k-1
Xl
Figura 8.15. Multiplexor de m entradas, controlado por variables libres.
Pero como la descomposición de Ashenhurst sólo tiene una función g, las diferentes funciones
cofactores deben ser constantes (formadas por solamente ceros o unos), o poder ser expresadas
en términos de una sola función 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, sólo puede existir un y solo un renglón
diferente, el cual estará asociado a la función g de la Figura 8.11.
La Figura 8.16, muestra la estructura interna de la función h: un bloque C, que solamente
interconecta sus cuatro posibles entradas con las 2 k entradas del mux; observando el diagrama
en bloques la función combinacional h depende de g y X l , que es la forma deseada de
descomposición.
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
9
0
Xa
g
C
1
f(Xn)
0
…
1
2k-1
Xl
h(g,Xl)
Figura 8.16. La función h es el multiplexor más red combinacional.
En el caso del ejemplo de la Figura 8.12, esto se cumple, ya que existe un solo renglón diferente
en la matriz, además de las constantes. En este ejemplo no existe un renglón que sea
complemento de otro. Observando la tabla de la Figura 8.12, la función h puede escribirse:
h
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:
h
x1 x2 ( x1
x2 ) g
La función g, se determina obteniendo la tabla de verdad del segundo o tercer renglón, en
términos de las variables acotadas, lo que se muestra en la Figura 8.14.
Esta descomposición disjunta se basa en la extracción 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 descomposición.
La dificultad computacional de la descomposición está en la revisión 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 número de
formas de escoger a elementos de un total de n, donde C(n, a) es el coeficiente binomial; se
tendrá ese número de particiones posibles. Además cada tabla tendrá 2 n valores. Esto implica
que el método 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 número total de particiones igual a 2 n ,
ya que se tiene que:
Profesor Leopoldo Silva Bijit
19-01-2010
10
Sistemas Digitales
n
n
0
1
...
n
n
n 1
n
2n
Para el caso del ejemplo descrito en la tabla de la Figura 8.11, se tienen 10 particiones,
considerando que el número de variables del conjunto acotado es 3. Se enumeran a continuación
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 sólo se
analizó el último conjunto.
Pero no todas las particiones permiten obtener una descomposición disjunta de Ashenhurst.
La partición, 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 descomposición 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. Partición {2, 3, 4}.
La tabla se construyó con el mapa de la expresión mínima en dos niveles de f.
f
x1 x2
x1 x3 x4
x2 x3 x4
x1 x3 x5
x2 x3 x5
x1 x4 x5
x2 x4 x5
Entonces la descomposición es de complejidad no polinomial y para su implementación
práctica, deben resolverse los subproblemas: la generación de particiones, la determinación de
cuales columnas o renglones son equivalentes y los métodos para determinar las subfunciones.
Existen numerosas contribuciones para resolver estos problemas: Algunas basadas en grafos
coloreados, otras en cálculo con cubos, otras en diagramas de decisión binarios. Todas ellas
escapan a un curso introductorio de sistemas digitales.
8.3. Descomposición de Curtis.
Lo primero que debe explorarse es si existe la descomposición de Ashenhurst, ya que ésta
descompone de manera significativa el problema. Sin embargo en muchos casos esta
descomposición no existe, en esta situación puede continuarse aplicando la descomposición 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 implementarán con bloques que tienen
también un número 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
Capítulo 8. Descomposición
11
Para el caso tratado antes de extracción 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 descomposición simple o trivial.
8.3.1. Descomposición de Curtis, con dos funciones auxiliares.
Interesa la situación en que los bloques gi tienen acotado el número de variables de entrada. El
esquema general de las funciones, con la notación introducida, se muestra en la Figura 8.18,
para el caso de dos funciones seriales.
g0
Xa
g1
F(g0, g1, Xl)
f(Xn)
Xl
Figura 8.18. Descomposición disjunta de Curtis.
Si los dos conjuntos de variables tienen intersección vacía, se denomina disjunta a la
descomposición. Una vez encontradas las funciones g0, g1, y F, puede volver a aplicarse
descomposición a la función F, hasta que todos los bloques seriales gi tengan no más de (n-k)
entradas.
Demostraremos las condiciones necesarias y suficientes para que pueda encontrarse la
descomposición 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
condición para que pueda aplicarse la descomposición de Curtis, con dos funciones auxiliares,
es que las columnas de este arreglo tengan a lo más cuatro valores diferentes. Las cuatro
columnas no redundantes quedarán asociadas a los siguientes valores:
g1 , g 0
00, 01,10,11
El mapa formado por 4 columnas y 2 k renglones, define la función F, en términos de Xl, g1 y
g0.
Las mezclas de las columnas equivalentes, permiten determinar las funciones auxiliares en
términos de las variables del conjunto acotado.
Nótese que en este caso el número de columnas equivalentes debe ser mayor que 2; ya que si
sólo fueran dos podría aplicarse la descomposición de Ashenhurst. Puede decirse que la
descomposición simple de Curtis, cuando sólo se tienen dos columnas diferentes, es la
descomposición de Ashenhurst.
Profesor Leopoldo Silva Bijit
19-01-2010
12
Sistemas Digitales
Si las columnas equivalentes fueran solamente 3, la determinación de la función F, se ve
simplificada por la introducción de una columna con valores superfluos.
El análisis de los renglones permite establecer que existe la descomposición 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. Descomposición de Curtis, con m funciones auxiliares.
El resultado anterior puede generalizarse cuando se tienen a lo más 2m columnas diferentes. En
este caso se tendrán m funciones auxiliares. Si a es el número de variables que forman el
conjunto acotado, la descomposición se aplica si m < a; notar que si m=a, el número de entradas
a la función F, no disminuye.
Alternativamente se tiene una descomposición 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
…
F(g0, g1, …, gm-1, Xl)
f(Xn)
gm-1
Xl
Figura 8.19. Descomposición 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 descomposición de Curtis, si y solamente si:
1 k
2 m n k
Nótese que los bloques g, representan una codificación de las variables del conjunto acotado, y
existe compactación si: m < n-k.
Algunas funciones pueden descomponerse por compactación de renglones y no por mezcla de
columnas y también ocurre lo opuesto. Debido a esto pueden considerarse métodos de
descomposición diferentes.
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
13
8.3.3. Fundamentos.
Si se escribe la tabla de verdad de la función 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 descomposición de r 2k renglones y c 2a columnas. Esta matriz es
similar a un mapa de Karnaugh, pero sin emplear codificación Gray para enumerar renglones y
columnas.
Por ejemplo para la función 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
L
x1 , x2 , x3
y el conjunto de variables libres:
x4 , x5
La matriz de descomposición 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 descomposición.
Si descomponemos las variables en términos de los subconjuntos A y L, podemos escribir:
f ( x1 , x2 , x3 , x4 , x5 )
f ( A, L)
La cual puede escribirse en términos de los renglones, en lugar de los mintérminos:
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 renglón de f, es una función de tres variables, que representa los mintérminos de ese
renglón, 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 además definimos el producto de las variables de L, con el subíndice decimal equivalente del
mintérmino 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)
f ( A, 2) p2 ( L)
f ( A,3) p3 ( L)
Y empleando notación con sumatorias, resulta:
i 3
f ( A, L)
f ( A, i ) pi ( L)
i 0
De manera similar la expansión por columnas, puede anotarse:
i 7
f ( A, L)
f (i, L) pi ( A)
i 0
En un caso general de n variables, la expansión por columnas, resulta con c igual al número de
columnas de la matriz:
i c
f ( x1 , x2 ,..., xn )
f ( A, L)
f (i, L) pi ( A)
i 0
En la Figura 8.21, se muestra una implementación con multiplexor, controlado por las variables
acotadas de la expansión. Notar que las entradas al mux son funciones de las variables libres,
que representan los unos presentes de la función en cada columna. Existe simplificación en la
descomposición si varias de estas funciones son iguales entre sí, o bien si unas son el
complemento de otras, o si son constantes. La generación de una entrada lógica uno o cero, no
requiere electrónica para ser implementada; si una función es el complemento de otra, basta un
inversor para generarla.
f(0,L)
L
f(1,L)
…..
.
f(i,L)
…..
.
f(c,L)
0
1
f(A,L)
i
c
A
Figura 8.21. Expansión por columnas.
La expansión por renglones, para un caso general con r igual al número de renglones, resulta:
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
15
i r
f ( x1 , x2 ,..., xn )
f ( A, L)
f ( A, i) pi ( L)
i 0
En la Figura 8.22, se muestra una implementación con multiplexor, controlado por las variables
libres, de la expansión. Notar que las entradas al mux son funciones de las variables acotadas,
que representan los unos presentes de la función en cada renglón. Existe simplificación en la
descomposición 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)
A
0
1
f(A,L)
i
r
L
Figura 8.22. Expansión por renglones.
Estas representaciones son únicas, ya que en ambos casos se están representando los
mintérminos de la función f. En un caso se expande por columnas, en el otro por renglones.
i c
f ( x1 , x2 ,..., xn )
i r
f (i, L) pi ( A)
i 0
f ( A, i ) pi ( L)
i 0
Una vez introducida la notación, nos interesa descomponer f en las funciones g y h, según:
f ( A, L)
h( g ( A), L)
Lo cual representa analíticamente a la descomposición 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)
f(A,L)
L
Figura 8.23. Descomposición serial disjunta.
Si cg es el número de columnas de la matriz que representa a la función h, se tiene la siguiente
representación por columnas:
Profesor Leopoldo Silva Bijit
19-01-2010
16
Sistemas Digitales
i cg
h( g , L )
h( g
i, L) pi ( g )
i 0
El mínimo número 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 descomposición de Ashenhurst.
El número 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 serían las variables, cuyos mintérminos
identificarían a las columnas.
Si cg=2m, entonces g tiene m salidas. Que podemos denominar: g0, g1, …, gm. Este es el caso
general de la descomposición disjunta de Curtis.
Si c=cg, es decir si A y g tienen el mismo número de columnas, no se reduce el número de
entradas a la función h, será el mismo número de entradas de la función f. Entonces para que la
descomposición sea de interés debe tenerse: c > cg.
Entonces la función f, puede descomponerse en las funciones g y h:
f ( x1 , x2 ,..., xn )
f ( A, L)
h( g ( A), L)
si y solamente si se cumple la igualdad de:
i cg
i c
f (i, L) pi ( A)
i 0
h( g
i, L) pi ( g )
i 0
Para el caso de cg=4, se tiene que cumplir:
i c
f (i, L) pi ( A)
h(0, L) g1 ' g 0 ' h(1, L) g1 ' g 0 h(2, L) g1 g 0 ' h(3, L) g1g 0
i 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, existirán 8
columnas en f y 4 columnas en h. Esto implica tres variables acotadas.
Entonces se requiere que a lo más f tenga 4 columnas diferentes, incluidas los valores de
columnas con puros ceros o puros unos; los valores de esas columnas serán 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
Capítulo 8. Descomposición
17
Si f tiene sólo dos columnas diferentes, entonces debe escogerse una función h que tenga dos
columnas, y sólo basta una función g, es el caso de la descomposición Ashenhurst.
Si f tiene 5 columnas diferentes, no es posible satisfacer la igualdad, en este caso es preciso que
h tenga también 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 número de
entradas que la función f. Razón por la cual este caso no es de interés en descomposición.
Una vez seleccionadas las columnas de f que representarán a las de h, esta función puede
determinarse. Además la determinación de las funciones g puede realizarse con las siguientes
cuatro ecuaciones:
pi ( A)
p0 ( g )
g1 ' g 0 '
pi ( A)
p1 ( g )
g1 ' g 0
pi ( A)
p2 ( g )
g1 g 0 '
pi ( A)
p3 ( g )
g1 g 0
i f ( i , L ) h (0, L )
i f ( i , L ) h (1, L )
i f ( i , L ) h (2, L )
i f ( i , L ) h (3, L )
Las cuales permiten escribir las tablas de verdad de las funciones g1 y g0, en términos de las
variables acotadas, ya que los pi ( A) sólo dependen de las variables acotadas.
En la tabla de la Figura 8.20, se han agregado dos renglones que identifican la selección
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. Descomposición serial disjunta.
La selección realizada para las columnas de h puede anotarse:
h(0, L)
f (0, L)
h(1, L)
f (1, L)
h(2, L)
f (3, L)
f (2, L)
f (5, L)
f (4, L)
Profesor Leopoldo Silva Bijit
f (7, L)
x4 ' x5 '
x4 x5 ' x4 x5
x4
x4 ' x5
x4 x5
x5
19-01-2010
18
Sistemas Digitales
h(3, L)
f (6, L)
x4 ' x5 ' x4 ' x5
x4 x5
x4 ' x5
Las que reemplazadas en la siguiente ecuación, nos permiten obtener h.
i cg
h( g , L )
h( g
i, L) pi ( g )
i 0
h( g , L )
x4 ' x5 ' g1 ' g 0 ' x4 g1 ' g 0
x5 g1 g 0 ' ( x4 ' x5 ) g1 g 0
Para determinar las funciones g1 y g0, realizamos las sumatorias:
g1 ' g 0 '
pi ( A) p0 ( A)
p2 ( A)
p7 ( A)
x1 ' x2 ' x3 ' x1 ' x2 x3 ' x1 x2 x3
i 0,2,7
g1 ' g 0
pi ( A) p1 ( A)
p5 ( A)
x1 ' x2 ' x3
x1 x2 ' x3
pi ( A) p3 ( A)
p4 ( A)
x1 ' x2 x3
x1 x2 ' x3 '
i 1,5
g1 g 0 '
i 3,4
g1 g 0
pi ( A) p6 ( A)
x1 x2 x3 '
i 6
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 determinación de las funciones también puede obtenerse empleando la información de la
matriz de descomposición. 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 función 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. Función h(g,L).
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
19
Si en la Figura 8.24, se eliminan los renglones asociados a las variables libres, y sólo 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 )
g1 x5
g1 g 0 x4 ' g1 ' g 0 x4
g1 ' g 0 ' x4 ' x5 '
Para las funciones antecesoras:
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 )
x1 x3 ' x1 ' x2 x3
g0 ( x1 , x2 , x3 )
x2 ' x3
x1 x2 x3 '
8.4. Descomposición 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 renglón i, para el
cual los correspondientes elementos Cir y Cis sean diferentes, cuando ambos están
especificados.
Profesor Leopoldo Silva Bijit
19-01-2010
20
Sistemas Digitales
La descomposición 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 solución 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 máxima.
Finalmente se selecciona un subconjunto de mínima cardinalidad de las clases máximas, tal que
cada columna esté al menos en una de clases de compatibilidad máxima que se empleen.
8.4.1. Ejemplo.
Veremos a través de un ejemplo la forma de compactar las columnas de la tabla de la función 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. Descomposición de función 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 tríos de columnas
compatibles entre sí. Por ejemplo se tienen los pares: (0,3), (0,4) y (3,4), entonces se forma el
trío de columnas compatibles entre sí: (0, 3, 4). En la Figura 8.30, no se muestran todos los
vínculos que permiten construir la segunda columna. Como se usan todos los pares al formar la
columna de tríos, no se tiene una clase máxima formada por dos columnas.
Luego de la columna de tríos 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 número mayor de
columnas compatibles entre sí.
Nótese 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 máxima.
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
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. Formación de clases de compatibilidad máxima.
Ahora debe efectuarse una selección 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 múltiples 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. Nótese que se agrega una columna con valores
superfluos, lo que permite un nivel adicional de minimización de la función: h(g1, g0, (a,b))
La codificación de las columnas influye en la minimización.
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 determinación de las funciones g, en términos de las variables acotadas, se tienen:
Profesor Leopoldo Silva Bijit
19-01-2010
22
Sistemas Digitales
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 minimización:
h
a ' g1 ' g 0 ' bg 0 ag1
g1
c ' de ' cde
g0
d 'e
c
d
e
a
b
g
h
f
Figura 8.33. Resultado de la descomposición.
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
C son las variables libres y C es no vacío se tiene
una descomposición no disjunta.
A
g
C
F
f
L
Figura 8.34. Descomposición 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 función original sea
completamente especificada. Cada variable repetida crea un mapa de una dimensión mayor en el
cual las nuevas celdas introducidas son condiciones superfluas.
8.5.1. Ejemplo.
La función f, de la Figura 8.35, no tiene descomposición disjunta de Curtis, no hay 4 columnas
diferentes; ni Ashenhurst, ya que no hay sólo 2. Puede verificarse que no existe
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
23
descomposiciones eligiendo los seis conjuntos libres posibles en este caso: ab, cd, ac, bd, ad,
bc.
Diseño en dos niveles: f = bcd+acd+a’c’d’+b’c’d’+a’b’d’ con 20 entradas.
AB
00 01 11 10
CD
0
12
1
01
0
11
0
3
1
7
1
10
1
2
0
6
0
1
1
4
00
0
5
0
13
0
15
14
8
1
9
0
1
0
11
10
f(A, B, C, D)
Figura 8.35. Descomposición 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
1
0
5
13
01
0
0
11
-
3
-
7
-
10
-
2
-
6
-
15
14
0
-
9
11
10
-
-
-
-
0
1
1
1
1
0
0
0
f(A, B, C, D)
Figura 8.36. Mapa con variable C repetida.
a) Diseño 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
renglón 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 descomposición de
Ashenhurst no disjunta.
Profesor Leopoldo Silva Bijit
19-01-2010
24
Sistemas Digitales
cd\g
00
01
11
10
0
1
1
0
0
0
0
1
1
0
h=d’g’+cdg
Figura 8.37. Ashenhurst no disjunta.
La determinación de la función 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. Función predecesora g.
Evaluando el costo con compuertas elementales, resulta de 17 entradas y 5 niveles. Sin embargo
este cálculo no es relevante si las funciones g y h pueden implementarse en un bloque básico.
b) Diseño compactando renglones.
Eligiendo valores para las condiciones superfluas, pueden formarse dos renglones
complementarios
C1AB
C2D 000 001 011 010 100 101 111 110
00
1
01
0
11
10
0
1
0
1
3
2
1
0
0
1
4
5
7
6
12
0
13
0
15
1
14
0
1
0
0
1
8
9
11
10
1
0
0
0
-
-
-
-
0
1
1
1
1
0
0
0
f(A, B, C, D)
Figura 8.39. Formación de renglones compatibles.
La ecuación para la función sucesora, se obtiene con la ecuación del multiplexor gobernado por
las variables libres.
h= gc’d’+0c’d+ g’cd + gcd’
La cual puede ser minimizada:
h= cdg’+d’g
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
25
La función antecesora, resulta del mapa del primer renglón:
c\ab
0
1
00 01 11 10
1
1
1
1
g=a’b’ + a’c’+ b’c’
Figura 8.40. Mapa para obtener función g.
Que para fines de comparación, implementada con compuertas tradicionales, resulta de 17
entradas y 5 niveles
Factorizando con SIS, que emplea cálculo con cubos, se obtiene la red booleana:
g1 = ab, g2=a’+b’ h= d’g1’+cdg1+c’d’g2 con 16 entradas, 4 niveles
8.6. Descomposición paralela.
En caso de tener sistemas con múltiples salidas debe aplicarse la descomposición en paralelo.
En la descomposición paralela el conjunto de variables de salida f, es particionado en dos
subconjuntos fG y fH, y la función 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 función f.
X
XG
XH
f
fG
fH
Figura 8.41. Descomposición paralela.
Si los conjuntos XG y XH son disjuntos, se dice que la descomposición paralela es disjunta; si la
intersección es no vacía se dice que es no disjunta.
Se denomina descomposición balanceada al proceso de partir una función mediante
descomposición paralela o serial en cada fase del proceso de síntesis.
8.7. Síntesis multinivel
8.7.1. Redes lógicas booleanas.
La minimización como suma de productos es un proceso de síntesis lógica realizada en dos
niveles de compuertas. Estos diseños tienen mínimo retardo para la propagación de los cambios
entre las entradas y las salidas, pero a costa de compuertas con gran número 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 integración; por lo cual debido al compromiso área versus tiempo de retardo, los
diseños de sistemas complejos suelen tener más de dos niveles.
La estructura de dispositivos CPLD permite naturalmente la implementación de lógica en dos
niveles. La estructura interna de los dispositivos FPGA, basada en la interconexión de pequeñas
celdas estándares, está más orientada a la implementación de lógica multinivel.
Los sistemas computacionales de ayuda al diseño (CAD) que permiten la optimización de lógica
multinivel, modelan las ecuaciones mediante una red lógica booleana, que es una
generalización de un netlist o un esquemático basado en compuertas.
La Figura 8.42 muestra un esquemático simple, basado en compuertas.
A
B
C
x1
x2
D
Figura 8.42. Esquemático basado en compuertas.
La Figura 8.43 representa una red lógica booleana, en la cual las salidas de los bloques,
denominados vértices 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 acíclico.
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
x1
B
x2
C
D
Figura 8.43. Red lógica booleana.
Los métodos de minimización están basados en transformaciones locales o globales de la red.
Las transformaciones locales apuntan a reducir el área y el tiempo de propagación asociados al
nodo o bien a mapear la función del nodo a determinada interconexión de celdas básicas. Las
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
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 optimización 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 modificación, esto puede repetirse hasta que no se logren nuevas
reducciones del costo.
Se entiende por optimización multinivel al proceso de encontrar factores lógicos que sean
comunes, lo cual reduce el fan in pero aumenta el número de niveles. Luego debe mapearse
estas formas factorizadas en alguna de las formas que estén disponibles en una biblioteca.
8.7.2. Operaciones.
Eliminación de un nodo.
Se elimina un nodo interno mediante el reemplazo de la función que lo describe en todos los
nodos que éste alimenta. Se elimina un nodo de pequeño costo, el cual es absorbido por el
resto. También se denomina colapsamiento del nodo x. Esta operación disminuye el tiempo de
propagación de la red pero aumenta los costos de los nodos.
La Figura 8.44 muestra la eliminación del nodo con salida x.
C
S=x+C
C
A
B
S=A’+B+C
T=xD
A
B
D
T=(A’+B)D
A
x=A’+B
B
D
Figura 8.44. Eliminación nodo x.
Creación de un nodo.
Se agrega un nuevo vértice que contiene una subexpresión que es común a dos o más nodos;
luego la salida del nuevo nodo substituye el término común en los nodos.
Se disminuye el tamaño 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
Sistemas Digitales
C
A
B
A
B
D
C
S=(A+B)C
S=xC
A
T=(A+B)D
x=A+B
B
T=xD
D
Figura 8.45. Creación nodo x.
Esta operación también se denomina extracción, ya que obtiene un factor que es común a varias
funciones. Esta operación aumenta el tiempo de propagación de la red pero disminuye los costos
de los nodos.
Las siguientes son operaciones que se realizan sobre un nodo.
Descomposición.
Una función puede descomponerse en partes.
Por ejemplo la función 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
Factorización.
Una función puede descomponerse en sus factores.
Por ejemplo la función que tiene asociado el nodo: f = ac + ad + bc + bd
Puede factorizarse según:
f = (a+b)(c+d)
Encontrar métodos para obtener factores adecuados ha sido posible gracias al desarrollo de
nuevos conceptos teóricos: Para lograr disponer del operador división no se definen algunos
postulados del algebra de Boole, de este modo una expresión booleana se comporta como un
polinomio de números reales.
Específicamente 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. Nótese
que en este ambiente una variable y su complemento no tienen ninguna relación.
Simplificación.
Puede aplicarse un método de simplificación, del tipo minimización en forma de suma de
productos, a la función asociada a un nodo. Si no se eliminan variables se tiene una
minimización local; sin embargo si se elimina una o más variables, se dice que la simplificación
es global ya que cambia la red.
SIS
La forma de efectuar minimizaciones multinivel es a través de herramientas CAD de ayuda al
diseño. É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 Apéndice 6,
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
29
sobre uso de sis. Más recientemente está en desarrollo el sistema abc, también en la Universidad
de Berkeley, éste último acepta entradas en verilog estructural.
8.7.3. Formas factorizadas.
Una expresión booleana puede representarse mediante una forma factorizada.
Estas formas podían describirse según:
Es un producto de sumas de productos o una suma de producto de sumas.
Las siguientes son formas factorizadas: x, y’, abc’, a+b’c, ((a’+b)cd+e)(a+b’)+e’
Pero: (a+b)’c no es una forma factorizada ya que la complementación de una expresión no
está permitida, salvo sobre literales.
Puede definirse recursivamente según:
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
factorización considerando el costo espacial.
La expresión 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 más compacta que la cobertura
mínima formada por la suma de implicantes primos.
La forma suma de productos de la función de 10 variables, func1 tiene 42 literales, con 54
entradas en total, en dos niveles. El or final de esta implementación 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 diseño 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 través de los ejemplos anteriores se comprueba que las formas factorizadas son útiles en la
reducción del costo de una red multinivel.
En diseños de funciones integradas CMOS, las redes de pull-up y pull down corresponden a la
forma factorizada de la función.
Profesor Leopoldo Silva Bijit
19-01-2010
30
Sistemas Digitales
Problemas resueltos.
P8.1. Descomposición.
Se tiene la siguiente función 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. Función de cuatro variables.
Se efectúa la descomposición, empleando como variables libres: a, b. LO primero que se realiza
es determinar la matriz de descomposición.
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 descomposición.
Luego se buscan columnas equivalentes. Se encuentran dos columnas diferentes, lo que implica
que la red tiene descomposición de Ashenhurst.
Luego se escogen las columnas de h.
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
31
ab\g
00
01
10
11
0
1
0
1
1
0
1
1
0
0
h=ab’+b’g+a’bg’
Figura P8.3. Función sucesora.
Finalmente se determina la función g.
a\b 0 1
0 1 0
1 1 0
g=b’
Figura P8.4. Función predecesora.
La solución alternativa es compactando los renglones. El primer y segundo renglón son
complementarios, los otros dos renglones son constantes, lo cual implica que existe
descomposición de Ashenhurst:
f
g
ga ' b ' g ' a ' b 1ab ' 0ab
c ' d cd '
P8.2. Factorización.
La función de 5 variables: f AC AD BE BF es de la forma suma de productos, y no
puede ser reducida por simplificación. Su implementación 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 factorización puede escribirse: f A(C D) B( E F ) , la cual
requiere 2+2+2+2+2 = 10 entradas, y 6 literales según puede apreciarse en la Figura P8.5. Esta
expresión no es suma de productos pura; pero su implementación es directa, empleando AND y
OR e implica tres niveles.
C
D
A
f
B
E
F
Figura P8.5. Forma factorizada en tres niveles.
Profesor Leopoldo Silva Bijit
19-01-2010
32
Sistemas Digitales
Las formas factorizadas también pueden mapearse con compuertas nand.
El teorema de De Morgan indica que la siguiente compuerta es equivalente a un NAND.
Figura P8.6. Nand según 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. Diseño en base a NANDs
Luego se representan todas las compuertas, usando el símbolo de los NAND. El diseño se logra
empleando 5 compuertas nand y con 10 entradas. Debe notarse que este método asume que se
dispone de las entradas y sus complementos.
Ejercicios propuestos.
E8.1.
Efectuar la descomposición, 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 descomposición.
E8.2.
Dada la forma factorizada: (a + b + c)(d + e) f+g expandirla a suma de productos.
Comparar las formas respecto del: número de niveles, de entradas y de literales.
Efectuar el diseño empleando solamente compuertas nand.
Profesor Leopoldo Silva Bijit
19-01-2010
Capítulo 8. Descomposición
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.
CAPÍTULO 8 ..............................................................................................................................................1
DESCOMPOSICIÓN .................................................................................................................................1
8.1. DESCOMPOSICIÓN TRIVIAL. TEOREMA DE SHANNON..........................................................................2
8.1.1. Extracción de una variable. .......................................................................................................2
8.1.2. Extracción de dos variables. ......................................................................................................4
8.2. DESCOMPOSICIÓN DE ASHENHURST. ..................................................................................................5
8.2.1. Compactando las columnas. ......................................................................................................6
8.2.2. Redundancia de renglones. ........................................................................................................8
8.2.3. Complejidad de la descomposición. ...........................................................................................9
8.3. DESCOMPOSICIÓN DE CURTIS. ..........................................................................................................10
8.3.1. Descomposición de Curtis, con dos funciones auxiliares. .......................................................11
8.3.2. Descomposición de Curtis, con m funciones auxiliares. ..........................................................12
8.3.3. Fundamentos. ...........................................................................................................................13
8.4. DESCOMPOSICIÓN DE FUNCIONES INCOMPLETAMENTE ESPECIFICADAS. ...........................................19
8.4.1. Ejemplo. ...................................................................................................................................20
8.5. DESCOMPOSICIONES NO DISJUNTAS. .................................................................................................22
8.5.1. Ejemplo. ...................................................................................................................................22
a) Diseño mezclando columnas. ..................................................................................................................... 23
b) Diseño compactando renglones. ................................................................................................................ 24
8.6. DESCOMPOSICIÓN PARALELA. ..........................................................................................................25
8.7. SÍNTESIS MULTINIVEL.......................................................................................................................25
8.7.1. Redes lógicas booleanas. .........................................................................................................25
8.7.2. Operaciones. ............................................................................................................................27
Eliminación de un nodo. ................................................................................................................................ 27
Creación de un nodo. ..................................................................................................................................... 27
Descomposición. ............................................................................................................................................ 28
Factorización. ................................................................................................................................................. 28
Simplificación. ............................................................................................................................................... 28
SIS.................................................................................................................................................................. 28
8.7.3. Formas factorizadas. ...............................................................................................................29
PROBLEMAS RESUELTOS. ........................................................................................................................30
P8.1. Descomposición. .......................................................................................................................30
P8.2. Factorización. ...........................................................................................................................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
Capítulo 8. Descomposición
35
Índice de figuras
Figura 8.1. Descomposición paralela y serial. ............................................................................... 1
Figura 8.2 Función de n variables. ................................................................................................ 2
Figura 8.3 Descomposición trivial. ............................................................................................... 3
Figura 8.4 Implementación con multiplexor. ................................................................................ 3
Figura 8.5. Tabla de verdad de una función de 4 variables. .......................................................... 3
Figura 8.6 Mapa de g0. .................................................................................................................. 4
Figura 8.7 Mapa de g1. .................................................................................................................. 4
Figura 8.8. Descomposición en 4 subfunciones. ........................................................................... 4
Figura 8.9. Multiplexor de 4 vías. ................................................................................................. 5
Figura 8.10. Tabla de verdad de una función de 5 variables. ........................................................ 5
Figura 8.11. Descomposición de Ashenhurst. ............................................................................... 6
Figura 8.12. Matriz de descomposición 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 función h es el multiplexor más red combinacional. ........................................... 9
Figura 8.17. Partición {2, 3, 4}. .................................................................................................. 10
Figura 8.18. Descomposición disjunta de Curtis. ........................................................................ 11
Figura 8.19. Descomposición disjunta de Curtis. ........................................................................ 12
Figura 8.20. Matriz de descomposición. ..................................................................................... 13
Figura 8.21. Expansión por columnas. ........................................................................................ 14
Figura 8.22. Expansión por renglones. ........................................................................................ 15
Figura 8.23. Descomposición serial disjunta............................................................................... 15
Figura 8.24. Descomposición serial disjunta. .............................................................................. 17
Figura 8.25. Función 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. Descomposición de función con condiciones superfluas. ....................................... 20
Figura 8.30. Formación de clases de compatibilidad máxima. ................................................... 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 descomposición. ............................................................................ 22
Figura 8.34. Descomposición no disjunta. .................................................................................. 22
Figura 8.35. Descomposición no disjunta. .................................................................................. 23
Figura 8.36. Mapa con variable C repetida. ................................................................................ 23
Figura 8.37. Ashenhurst no disjunta. ........................................................................................... 24
Figura 8.38. Función predecesora g. ........................................................................................... 24
Figura 8.39. Formación de renglones compatibles. ..................................................................... 24
Figura 8.40. Mapa para obtener función g. ................................................................................. 25
Figura 8.41. Descomposición paralela. ....................................................................................... 25
Figura 8.42. Esquemático basado en compuertas. ...................................................................... 26
Figura 8.43. Red lógica booleana. .............................................................................................. 26
Profesor Leopoldo Silva Bijit
19-01-2010
36
Sistemas Digitales
Figura 8.44. Eliminación nodo x. ............................................................................................... 27
Figura 8.45. Creación nodo x. .................................................................................................... 28
Figura P8.1. Función de cuatro variables. .................................................................................. 30
Figura P8.2. Matriz de descomposición. .................................................................................... 30
Figura P8.3. Función sucesora.................................................................................................... 31
Figura P8.4. Función predecesora. ............................................................................................. 31
Figura P8.5. Forma factorizada en tres niveles............................................................................ 31
Figura P8.6. Nand según De Morgan. ......................................................................................... 32
Figura P8.7. Diseño en base a NANDs ....................................................................................... 32
Profesor Leopoldo Silva Bijit
19-01-2010
Descargar