Documentos de Académico
Documentos de Profesional
Documentos de Cultura
c08 PDF
c08 PDF
Capítulo 8
Descomposición
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.
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.
Xn f f(Xn)
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 ) xn ' g 0 xn g1
g0
Xn-1 F(g0, g1, xn) f(Xn)
g1
xn
Donde: X n 1 x1 , x2 ,.., xn 1
g0 0
Xn-1 f(Xn)
g1 1
xn
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:
x3/x1x2 00 01 11 10
0 1 1 1
1 1 1
g0=x2’+x1’x3’
x3/x1x2 00 01 11 10
0 1 1
1 1
g1=x1x2+x2x3’
Resultando:
F ( g0 , g1 , x3 ) x3 ' g 0 x3 g1 x3 '( x2 ' x1 ' x3 ') x3 ( x1 x2 x2 x3 ')
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
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)
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
Donde las funciones gi, se pueden minimizar empleando mapas de tres variables.
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 ))
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.
Xa g
h(g, Xl) f(Xn)
Xl
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 .
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.
x1x2/g(x3,x4,x5) 0 1
00
01 1
10 1
11 1 1
h
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.
x5/x3x4 00 01 11 10
0 1
1 1 1 1
g=x3x4+x3x5+x4x5
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.
f x1 x2 x1 x3 x4 x2 x3 x4 x1 x3 x5 x2 x3 x5 x1 x4 x5 x2 x4 x5
f x1 x2 ( x1 x2 )( x3 x4 x3 x5 x4 x5 )
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.
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 f(Xn)
… …
gm-1 2k-1
Xl
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.
Xa g C 1
f(Xn)
0 …
1 2k-1
Xl
h(g,Xl)
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
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:
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
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.
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.
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 F(g0, g1, Xl) f(Xn)
g1
Xl
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
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.
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.
g1
Xa
… F(g0, g1, …, gm-1, Xl) f(Xn)
gm-1
Xl
Nótese que los bloques g, representan una codificación de las variables del conjunto acotado, y
existe compactación si: m < n-k.
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)
f ( x1 , x2 , x3 , x4 , x5 ) f ( A, L)
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, L) f ( A, 0) p0 ( L) f ( A,1) p1 ( L) f ( A, 2) p2 ( L) f ( A,3) p3 ( L)
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)
0
f(1,L) 1
L ….. f(A,L)
.
f(i,L) i
…..
.
f(c,L) c
La expansión por renglones, para un caso general con r igual al número de renglones, resulta:
f(A,0)
0
f(A,1) 1
A ….. f(A,L)
.
f(A,i) i
…..
.
f(A,r) r
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 i r
f ( x1 , x2 ,..., xn ) f (i, L) pi ( A) f ( A, i ) pi ( L)
i 0 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)
A g
h( g(A), L) f(A,L)
L
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.
f ( x1 , x2 ,..., xn ) f ( A, L) h( g ( A), L)
i c i cg
f (i, L) pi ( A) h( g i, L) pi ( g )
i 0 i 0
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.
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 '
i f ( i , L ) h (0, L )
pi ( A) p1 ( g ) g1 ' g 0
i f ( i , L ) h (1, L )
pi ( A) p2 ( g ) g1 g 0 '
i f ( i , L ) h (2, L )
pi ( A) p3 ( g ) g1 g 0
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 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)
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)=h(g(A),L)
g1 g 0 pi ( A) p6 ( A) x1 x2 x3 '
i 6
g1g0 00 01 00 10 10 01 11 00
x1x2x3 000 001 010 011 100 101 110 111
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)
x3\ x1 x2 00 01 11 10
0 00 00 11 10
1 01 10 00 01
g1g0
Resultan:
g1 ( x1 , x2 , x3 ) x1 x3 ' x1 ' x2 x3
g0 ( x1 , x2 , x3 ) x2 ' x3 x1 x2 x3 '
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.
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.
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)
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.
0,3
0,4
0,6 0,3,4
1,3 0,3,6
1,4 0,4,6
1,5 1,3,4 0,3,4,6
1,6 1,3,6 1,3,4,6
2,5 1,4,5
2,7 1,4,6
3,4 2,5,7
3,6 3,4,6
4,5
4,6
5,7
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))
ab/ g1g0 00 01 10 11
00 1 0 0 -
01 1 1 - -
10 0 0 1 -
11 0 1 - -
C0,C3,C4,C6 C1,C5 C2,C7 -
h
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
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.
f(A, B, C, D)
f(A, B, C, D)
Entonces mezclando las columnas compatibles, puede verse que existe la descomposición de
Ashenhurst no disjunta.
cd\g 0 1
00 1 0
01 0 0
11 0 1
10 1 0
h=d’g’+cdg
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
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
0 4 12 8
00 1 1 0 1 1 0 0 0
1 5 13 9
01 0 0 0 0 - - - -
3 7 15 11
11 0 0 1 0 0 1 1 1
2 6 14 10
10 1 1 0 1 1 0 0 0
f(A, B, C, D)
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
c\ab 00 01 11 10
0 1 1 1
1 1
g=a’b’ + a’c’+ b’c’
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
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
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.
A x1
B
x2
C
D
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.
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
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.
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.
C S=x+C C S=A’+B+C
A
A
B
x=A’+B
B
T=xD A T=(A’+B)D
B
D D
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.
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.
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,
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.
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 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.
Problemas resueltos.
P8.1. Descomposición.
ab\cd 00 01 10 11
00 0 1 1 0
01 1 0 0 1
10 1 1 1 1
11 0 0 0 0
Luego se buscan columnas equivalentes. Se encuentran dos columnas diferentes, lo que implica
que la red tiene descomposición de Ashenhurst.
ab\g 0 1
00 0 1
01 1 0
10 1 1
11 0 0
h=ab’+b’g+a’bg’
P8.2. Factorización.
C’
D A
f
E’ B
F’
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.
H. Allen Curtis, “Generalized Tree Circuit”, Lewis Research Center. NASA. 1961.
Í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
Índice de figuras