13.07.2015 Views

Tema 3. (2ª parte)

Tema 3. (2ª parte)

Tema 3. (2ª parte)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo III – Sistemas Combinacionales 15III.2 Minimización de funciones booleanas.III.2.1 Motivación para la simplificación lógica.Hemos visto como implementar funciones booleanas con puertas lógicas. También se indicó que el coste yretardo de una implementación dada depende de la forma de la expresión booleana y de la biblioteca lógica utilizadaen su realización. Las tres formas de expresión booleana para una función: canónica, normalizada y no estándar,tienen diferentes propiedades cada una. La forma canónica es única pero el número de operadores no es el mínimo.Las formas normalizada y no estándar no son únicas pero pueden tener menor número de operadores. Puesto que noson únicas, se necesita un procedimiento para obtener una forma no estándar que tenga el mínimo número deoperadores, pues su implementación será menos costosa al requerir menos puertas y menos entradas por puerta.Sin embargo, aunque la minimización del número de operadores permite implementaciones menos costosas,también es cierto que suelen presentar retardos mayores, ya que la señal de entrada ha de propagarse a través de máspuertas como consecuencia de expresiones muy factorizadas. Para minimizar este retardo habría que concentrarse enla reducción del número de operadores en cada camino crítico desde la entrada a la salida. Además, los operadoresde esos caminos críticos deben ser los que se implementen con las puertas más rápidas de la biblioteca.Ya hemos visto como simplificar expresiones booleanas por medio de manipulaciones algebraicas. Acontinuación vamos a ver algunas técnicas sistemáticas que permiten minimizar el número de operadores en formasestándar y no estándar, y después implementar la función con puertas de una biblioteca dada.III.2.2 Representación gráfica de las funciones lógicas.III.2.2.1 Cubos booleanos, mapas de Karnaugh, implicantes de orden n.N-cubos y distancia.Una cadena de n bits puede visualizarse geométricamente como el vértice de un objeto llamado n-cubo. En lafigura se muestran los n-cubos para n = 1, 2, 3, 4. Un n-cubo tiene 2 n vertices, cada uno etiquetado con una cadenade n bits. Los lados se dibujan de forma que unan dos vértices cuyas etiquetas difieran en un solo bit. Los n-cuboscon n mayor que 4 son realmente difíciles de dibujar.Para valores razonables de n, los n-cubos hacen que resulte fácil visualizar ciertos problemas de codificación yde minimización lógica. Por ejemplo, el problema de diseñar un código de Gray de n bits equivale a encontrar uncamino a lo largo de los lados de un n-cubo, un camino que visite todos los vértices pero solo una vez cada uno.Los n-cubos también proporcionan una interpretación geométrica del concepto de distancia, también llamadadistancia de Hamming. La distancia entre dos cadenas de n bits es el número de posiciones en que difieren. Entérminos de n-cubos, la distancia es la longitud mínima de un camino entre los dos vértices correspondientes. Dosvértices adyacentes tienen distancia 1; los vértices 001 y 100 en el 3-cubo tienen distancia 2. El concepto dedistancia es crucial en el diseño y comprensión de códigos detectores de errores.


16 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004Un m-subcubo de un n-cubo es un conjunto de 2 m vértices en los que n-m bits tienen el mismo valor en todoslos vértices, y los restantes m bits toman todos las 2 m combinaciones posibles. Por ejemplo,10 11• •• •• •0 1 00 011-cubo110 111• •010 011• •• •100 101• •000 0013-cubo0010•0110• •0011•• •0100 0101• •0000 000101112-cubo4-cubo•10101110 1111• •1100•1011•1000• •1001•1101los vértices (0000, 010, 100, 110) forman un 2-subcubo del 3-cubo. Este subcubo puede tambien nombrarse comoxx0, donde 'x’ indica que un bit en particular es indiferente; cualquier vértice cuyos bits concuerden con lasposiciones no-x pertenecen a este subcubo. El concepto de subcubos es especialmente útil para visualizaralgoritmos que minimizan el coste de una función lógica combinacional.Cada vértice en un n-cubo representa un minterm de una función booleana de n variables . Así, cada funciónpodrá ser representada visualmente en la forma de un n-cubo marcando aquellos vértices en los que el valor de lafunción es 1, y dejando sin marcar los vértices para los que la función es 0.110 111• •c i x i y i c i+1 s i0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1a) Tabla de verdad010 011• •• •100 101• •000 001b) Función de acarreo c i+1110 111• •010 011• •• •100 101• •000 001c) Función de suma s i


Capítulo III – Sistemas Combinacionales 17Para obtener la forma estándar de una función que contenga el número mínimo de operadores, se utiliza elconcepto de subcubo. Si una función booleana de n variables, toma valor 1 en cada vértice de un m-subcubo, los2 m minterms representados en ese subcubo podrían expresarse con un único término de n-m literales querepresenta los valores de las variables que son iguales para cada vértice del subcubo. Sea J el producto de esosliterales, y llamaremos x i a las variables de la función, entonces, el valor de la función del m-subcubo es igual a :J • x’ n-m+1 x’ n-m+2 … x’ n + J • x’ n-m+1 x’ n-m+2 … x n + … + J • x n-m+1 x n-m+2 … x n == J • (x’ n-m+1 x’ n-m+2 … x’ n + x’ n-m+1 x’ n-m+2 … x n + … + x n-m+1 x n-m+2 … x n ) == J • 1 = J1Según esto, cualquier función booleana puede ser descrita en una forma de suma de productos estándar, en laque cada término será un sub-cubo de minterms que hacen 1 la función, y cada uno de estos estará en, al menos,un subcubo. Para minimizar el número de operadores OR hay que elegir el menor número posible de subcubos quecubran los minterms 1, y para minimizar el número de operadores AND hay que elegir los mayores subcubosposibles, estos son los implicantes primos.En general, un implicante primo (PI, Prime Implicant) se define como un subcubo que no está contenido enningún otro subcubo, y un implicante primo esencial (EPI, Esential Prime Implicant) es el subcubo que incluye unminterm 1 que no está incluido en ningún otro subcubo. Estos implicantes primos se pueden determinar yseleccionar visualmente en una representación en cubo, o podemos obtenerlos a partir de una representaciónbidimensional de este cubo, llamada mapa de Karnaugh, o solamente mapa.Un mapa de Karnaugh es similar a una tabla de verdad, ya que muestra todos los posibles valores de lasvariables de entrada, y la salida resultante para cada valor. En vez de estar organizada por filas y columnas comouna tabla de verdad, el mapa de Karnaugh es una secuencia de celdas en la que cada celda representa el valorbinario de las variables de entrada, esto es, cada celda corresponde a un minterm de la función booleana. Si elminterm hace 1 a la función se coloca un 1 en la celda, mientras que si la celda está vacia indicará un minterm devalor 0. Las celdas correspondientes a los minterms indiferentes se marcan con una X para utilizarlos en lasimplificación si conviene.Las celdas se disponen de manera que la simplificación de una determinada expresiónconsiste en agrupar adecuadamente las celdas. Las tablas de Karnaugh se pueden utilizar para funciones de hastaseis variables, pero veremos solo los casos de 3, 4 y 5 variables para ilustrar su funcionamiento.El mapa de Karnaugh de 3 variables es un conjunto de ocho celdas, como se muestra en la figura. En este casolas variables se denominan x, y y z, aunque podrían llamarse de cualquier otra manera. Los valores binarios de y yz se encuentran en la <strong>parte</strong> superior, y los de x se encuentran en la <strong>parte</strong> izquierda. Observe que la secuencia de losvalores de y y z es tal que dos valores consecutivos solo difieren en un bit (no es una cuenta en binario). De formasimilar se construyen los mapas de 4 y 5 entradas.Por la forma en que se ponen los valores de las entradas, dos celdas adyacentes forman un subcubo-1, cuatroceldas adyacentes forman un subcubo-2 y así sucesivamente. En las figuras se muestran primero el mapa con los


18 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004números de minterm a que corresponde cada celda, y después algunos de los ejemplos de subcubos que se puedenformar en cada mapa. Observe que a la hora de elegir celdas adyacentes el mapa se trata como si fuera circular,esto es, las celdas que están más a la derecha son adyacentes a las que están más a la izquierda y las celdas queestán arriba son adyacentes a las que están abajo.Mapa de Karnaughpara tres entradas.Se muestra el mintermcorrespondiente a cadacelda.yzx 00 01 11 100 1 3 20 x’y’z’ x’y’z x’yz x’yz’14xy’z’5xy’z7xyz6xyz’Mapa de Karnaughpara tres entradas.Se muestran ejemplosde subcubos-1.xyz01x’y’yz00 01 11 100 1 3 24 5 7 6xz’Mapa de Karnaughpara tres entradas.Se muestran ejemplosde subcubos-2.xyz0z00 01 11 100 1 3 2z’14 5 7 6x


Capítulo III – Sistemas Combinacionales 19Mapa de Karnaughpara cuatro entradas.Se muestra el mintermcorrespondiente a cadacelda.yzwx 00 01 11 1000010w’x’y’z’4w’xy’z’1w’x’y’z5w’xy’z3w’x’yz7w’xyz2w’x’yz’6w’xyz’1112wxy’z’13wxy’z15wxyz14wxyz’108wx’y’z’9wx’y’z11wx’yz10wx’yz’Mapa de Karnaughpara cuatro entradas.Se muestran ejemplosde subcubos-2.yzwx 00 01 11 100001y’zxy0 1 3 24 5 7 6x’z’111012 13 15 148 9 11 10Mapa de Karnaughpara cuatro entradas.Se muestran ejemplosde subcubos-<strong>3.</strong>yzwx 00 01 11 100001z’ z w’0 1 3 24 5 7 6111012 13 15 148 9 11 10


20 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004v = 0 v = 1yzwx 00 01 11 100001m 0m 13m 3m 22yzwx 00 01 11 100016m 16m 171719m 19m 181801m 44m 55m 77m 6601m 2020m 2121m 2323m 222211m 1212m 1313m 1515m 141411m 2828m 2929m 3131m 303010m 88m 99m 1111m 101010m 2424m 2525m 2727m 2626Mapa de Karnaugh para cinco entradas.Se muestra el minterm correspondiente a cada celda.v = 0 v = 1yzwx 00 01 11 100001m 0m 13m 3m 22yzwx 00 01 11 100016m 16m 171719m 19m 181801m 44m 55m 77m 6601m 2020m 2121m 2323m 222211m 1212m 1313m 1515m 141411m 2828m 2929m 3131m 303010m 88m 99m 1111m 101010m 2424m 2525m 2727m 2626yz w’wy’ vyMapa de Karnaugh para cuatro entradas.Se muestran ejemplos de subcubos-3 y subcubos 4.


Capítulo III – Sistemas Combinacionales 21III.2.3 Métodos de simplificación por mapas de Karnaugh.Consta de cuatro pasos:Generación del mapa:Pasar de cualquier otra representación al mapa, rellenar las celdas con los unos, ceros e indiferentes.Generación de implicantes primos:Cubrir todos los minterms (o maxterms) con los mayores subcubos posibles. Para conseguir que los subcubossean lo mayor posible se usan los términos indiferentes.Selección de implicantes primos esenciales:Se buscan los minterms (o maxterms) que están en un solo implicante primo, estos son los implicantes primosesenciales, se añaden a la cobertura mínima.Creación de la cobertura mínima:Incluir en la cobertura mínima los implicantes primos no esenciales necesarios para cubrir los minterms (omaxterms) que no han quedado cubiertos con los implicantes primos esenciales. Eligiéndolos de forma que quesean los menos posibles.III.2.4 Método de simplificación de Quine-McCluskey.Sirve para cualquier número de entradas. Es tedioso para los humanos pero es el más conveniente para realizaren un computador.Se <strong>parte</strong> de la forma canónica de suma de productos, por ejemplo:f(A,B,C,D) = ∑(0, 2, 3, 6, 7, 8, 9, 10, 13)y consta de dos pasos:Generación de implicantes primos:Se ponen los minterms en forma de la combinación de ceros y unos:mintermsCombinación deNºlas entradas0 00002 00103 00116 01107 01118 10009 100110 101013 1101


22 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004Se reordenan agrupando los que tengan el mismo número de unos:NºdeunosNºminterm minterm0 0 00001 2 00108 10002 3 00116 01109 1001310 10107 011113 1101Se buscan los subcubos-1, es decir, se compara cada minterm de un grupo con cada minterm del grupo siguiente,si difieren sólo en un bit se marcan los minterms y se añade el subcubo-1 a la columna siguiente, agrupando lossubcubos que provienen de los mismos grupos de minterms. El lugar del bit en que difieren se marca, porejemplo, con una x.Se buscan los subcubos-2, esto es, comparar cada subcubo-1 de un grupo con cada subcubo-1 del gruposiguiente, si tienen la x en la misma posición y difieren en un solo bit , se combinan para formar un subcubo-2que se anota en la siguiente columna, con una x en el lugar del bit en que diferían. Se marcan los dos subcubos-1implicados.Este proceso se repite mientras se puedan seguir añadiendo columnas.NºdeunosIncluídominterms Subcubos-1 Subcubos-2IncluídoNºs CombinaciónNºs CombinaciónNº CombinaciónIncluído0 0 0000 0,2 00x0 0,2,8,10 x0x0 ⊗ a1 2 0010 0,8 x000 2,3,6,7 0x1x ⊗ b8 1000 2,3 001x 2 3 0011 2,6 0x10 6 0110 2,10 x010 9 1001 8,9 100x ⊗ c310 1010 8,10 10x0 7 0111 3,7 0x11 13 1101 6,7 011x 9,13 1x01 ⊗ d


Capítulo III – Sistemas Combinacionales 23Generación de la cobertura mínima:Construir una tabla en la que cada fila representa un implicante primo y cada columna un .minterm. Marcar losminterms correspondientes a los minterms representados en los implicantes primos (esenciales o no).Aquellas columnas en las que sólo halla una x corresponde a un implicante primo esencial, estos se incluyen enla cobertura mínima y se marcan todos los minterms que representan.A continuación se seleccionan los imlicantes primos necesarios para cubrir los minterms aún no cubiertos. Elnúmero de Implicantes primos seleccionados ha de ser el menor posible.CoberturamínimamintermSubcubo0 2 3 6 7 8 9 10 13* a * b c * d Minterms cubiertos por los subcubos-2El subcubo-1 d cubre los minterms que faltabanLa función simplificada es:f(A,B,C,D) = “a + b + d” = B’D’ + A’C + AC’DVamos a ver otro ejemplo, la función en este caso es:f(A,B,C,D,E) = ∑(1, 2, 3, 5, 9, 10, 11, 18, 19, 20, 21, 23, 25, 26, 27)


24 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004Empezamos por la generación de implicantes primos, poniendo los minterms como combinación de unos y cerosy agrupando por númeo de unos:mintermsNºCombinación delas entradas1 000012 000103 000115 001019 0100110 0101011 0101118 1001019 1001120 1010021 1010123 1011125 1100126 1101027 11011Nºdeunos1234Nºminterm minterm1 000012 000103 000115 001019 0100110 0101018 1001020 1010011 0101119 1001121 1010125 1100126 1101023 1011127 11011Se van generando los subcubos de los ordenes crecientes mientras se pueda:


Capítulo III – Sistemas Combinacionales 25Acontinuación se genera la cobertura mínima:minterms cubiertos por el subcubo aminterms cubiertos por el subcubo bminterms cubiertos por el subcubo fminterms cubiertos por el subcubo dEl minterm 23 se puede cubrir igual con el subcubo g que con el hY la función simplificada , en este caso, tiene dos formas posibles:f(A,B,C,D,E) = “a + b + d + f + {g, h}” == C’D + BC’E + A’B’D’E + AB’CD’ + AB’CE == C’D + BC’E + A’B’D’E + AB’CD’ + ABC’EIII.2.5 Circuitos de salida múltiple.En la práctica, lo más habitual es que un circuito lógico combinacional requiera más de una salida. Se puedetratar el problema de un circuito de n salidas como el diseño de n circuitos diferentes, pero en este caso se podría perderalguna oportunidad de optimización. Si algunas de las funciones tienen términos comunes no hay porqué replicar laspuertas para producirlos.


26 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004abcy 1 = a’b’ + ab’cy 2 = ab + ab’cay 1 y 2bcc y 1bay 2III.2.6 Síntesis de funciones booleanas (traslación a la tecnología).En las formas estándar sólo hay operadores AND, OR y NOT por lo que la síntesis utilizando puertas AND, ORy NOT es inmediata.Para reducir coste y tiempo se utilizan arrays de puertas, esto es, matrices bidimensionales de celdas, cada celdaes una puerta con un número fijo de entradas, normalmente NAND o NOR. En este caso hay que convertir la expresióncon AND, OR y NOT a todo NAND o todo NOR con el número adecuado de entradas. Sobre la descripción del circuito(en esquema o algún lenguaje de descripción de hardware) esta conversión se hace sustituyendo las puertas según lasreglas (a) o (b) que se muestran en la figura y eliminando los dobles inversores.a)xy = ((xy)’)’x + y = ((x + y)’)’ = (x’ y’)’b)xy = ((xy)’)’ = (x’ + y’)’x + y = ((x + y)’)’


Capítulo III – Sistemas Combinacionales 27Las puertas NAND y NOR también pueden funcionar como inversores por eso, a veces se les denomina puertasuniversales.x x’x x’Sobre la expresión booleana, la conversión de AND, OR y NOT a NAND o NOR se hace negando dos veces laexpresión y manipulando algebraicamente. Por ejemplo para convertir la función F = cx’y’ + c’x’y + cxy a puertasNAND:F = ((cx’y’ + c’x’y + cxy)’)’ = ((cx’y’)’ • (c’x’y)’ • (cxy)’)’Para convertirla a puertas NOR:F = ((cx’y’ + c’x’y + cxy)’)’ = ((cx’y’)’ • (c’x’y)’ • (cxy)’)’ = ((c’+x+y) • (c+x+y’) •(c’+x’+y’))’ == (c’+x+y)’ + (c+x+y’)’ + (c’+x’+y’)’ =( ( (c’+x+y)’ + (c+x+y’)’ + (c’+x’+y’)’ )’ )’Las puertas en una matriz de puertas tienen un número fijo de entradas, como los operadores NAND y NOR noson asociativos, hay que hacer una descomposición de los términos originales a téminos AND, OR del numero deentradas que se requiera antes de convertir a NAND o NOR.Después de descomponer términos y convertir, se estudian los retardos de los distintos caminos, se localiza el (olos) caminos críticos y se hace la retemporización (retiming).Retardo máximo 8,2 nsRetardo máximo 6,4 ns


28 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004III.2.7 Riesgos de temporización.Los diseños se hacen pensando en el comportamiento en regimen estable, se ignoran los transitorios debidos alos distintos retardos en caminos diferentes dentro del circuito.En el transitorio se puede producir un pulso espúreo (glitch), esto es, un cambio en la salida durante un cortoperiodo de tiempo que no debería ocurrir.Riesgo (o hazard) es la posibilidad de que se produzca un pulso espúreo.Se pueden eliminar los riesgos añadiendo puertas pero no es crítico si simplemente se espera el tiempo suficientepara que la salida sea estable.Riesgos estáticos (un solo pulso):• Al 1 (static-1 hazard) es un pulso negativo que se debe a un par de combinaciones de entrada que difieren ensólo una variable de entrada y ambos dan un 1 como salida. Por eso puede haber una transición a 0 mientrasuna ha cambiado y la otra aún no.• Al 0 (static-0 hazard) es un pulso positivo que se debe a un par de combinaciones de entrada que difieren enuna sóla variavle de entrada y ambas dan salida 0. Por eso puede haber un pulso a 1 mientras una hacambiado y la otra aún no.Riesgo dinámico es la posibilidad de que una salida cambie más de una vez como resultado de una únicatransición en las entradas.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!