Métodos de diseño de circuitos digitales Sistemas combinacionales En un circuito combinacional los valores de las salidas dependen únicamente de los valores que tienen las entradas en el presente. Se construen a partir de compuertas lógicas: AND, OR, u otras. AND OR Ejemplo: Circuito C Para especificar la función de un circuito se usan:. Tablas de verdad: Para cada combinación de entradas se especifican las salidas. 2. Formulas Algebraicas: Se usa notación algebraica que se deriva directamente del circuito. =. + Formula de C Tabla de verdad de C Observe que la tabla de verdad de C es idéntica a la tabla de NAND. Entonces C es equivalente a = (.) Dado que un NAND produce las mismas salidas que C que un NAND necesita menos transistores que C, entonces un NAND resulta más conveniente. Se necesita una metodología que permita transformar circuitos costosos en circuitos más simples. La teoría del Algebra de Boole nos permitirá comprender esta metodología.
Tabla de Compuertas Lógicas Símbolo Significado Tabla de Verdad Formula Algebraica AND OR -lógico o-lógico negación = = + = ~ XOR NAND NOR o-eclusivo -negado o-negado =! = ~() = ~(+) 2
Algebra de Boole Un álgebra de Boole es una estructura algebraica denotada por < A, +,.,, >, en donde: A es un conjunto +. son operadores binarios {, } A La estructura verifica los siguientes aiomas: A asociatividad de + a, b, c : (a+b) + c = a + (b+c) = a+b+c A' asociatividad de. a, b, c : (a.b). c = a. (b.c) = a.b.c = abc A2 conmutatividad de + a, b: a+b = b+a A2' conmutatividad de. a, b: a.b = b.a A3 neutro para + a+ = a A3' neutro para. a. = a A4 distrib de. c/r a + a. (b+c) = ab + ac A4' distrib de + c/r a. a + (bc) = (a+b). (a+c) A5 eistencia de complemento a! a tq a + a = a. a = Teoremas básicos de un álgebra de Boole: T a + a = a T' a. a = a T2 a + = T2' a. = T3 a + ab = a T3' a (a+b) = a T4 a = a T5 (ab) = a + b T5' (a+b) = a b T6 a + ab = a + b T6' a ( a+b) = ab Otras maneras de escribir OR: + AND:. & && : ā ʼ ~! 3
Propuesto: La estructura < {, }, OR, AND,, > correspondiente a las compuertas lógicas es un álgebra de Boole, con = = Demostración: usando tablas de verdad para verificar que se cumple cada uno de los aiomas. Ejemplo: (completar esta tabla) a b c ab (ab)c bc a(bc) Nota: 3 variables implican 2^3 filas. Columnas 3 5 resultan ser iguales. Propuesto: Verifique la distributividad de + c/r. : a+(bc) = (a+b)(a+c) Demostración: (ejercicio...) Demostración de teoremas del álgebra de Boole: T: a + a = (a + a). = (a + a). (a + ~a) = a + (a. ~a) = a + = a [A3ʼ, A5, A4ʼ, A5, A3] Tʼ: Basta reemplaar en la demostración anterior los + por., por, A por Aʼ, viceversa. T4: Sea b = ~a, entonces: b + a = a que b + a = ~a + a = a + ~a = [A2, A5] b. a = a que b. a = ~a. a = a. ~a = [A2ʼ, A5] luego a = ~b por la unicidad de A5 a = ~~a Propuesto: Mostrar que ~((~(a.~b)).~b) = a+b usando algebra de Boole Demostración: (ejercicio...) 4
Metodología de diseño de circuitos combinacionales a partir de una tabla de verdad. Por etapas:. Dada una tabla de verdad, obtener una formula algebraica. 2. Dada una formula algebraica obtener el diagrama circuital. Etapa 2 es la mas sencilla: Se construe el árbol de operaciones de la epresión se reemplaan los operadores por las respectivas compuertas. +. ~ ~ OR ~+ AND (~+)~ ~ + ~. AND ~ ~() OR f(,,) Ejemplo: Circuito C2: f(,, ) = (~+)~+~()+ Etapa es mas complejo. Por ejemplo considerando la tabla de verdad a la derecha: Por simple inspección : f(,) = ~ + ~ por que f(,) vale cuando es e es f(,) vale cuando es e es Esta forma de determinar intuitivamente una formula está respaldada teóricamente por el siguiente teorema. f(,) Teorema de Shannon: Sea f:{,} n {,} f(... i...n) = i. f(...... n) + ~i. f(...... n) Demostración: Basta probar la igualdad para i = i = Caso i = : f(...... n) =. f(...... n)+ ~ f(...... n) = + f(...... n) = f(...... n) Caso i = : f(...... n) =. f(...... n) + ~ f(...... n) = f(...... n) + = f(...... n) 5
Aplicando recursivamente el teorema: f(... n) = ~..... ~n-. ~n. f(... ) + ~..... ~n-. n. f(... ) + ~..... n-. ~n. f(... ) + ~..... n-. n. f(... ) +........ n-. n. f(... ) En el ejemplo: f(,) f(,) = ~~. f(,) + ~. f(,) + ~. f(,) +. f(,) = ~~. + ~. + ~. +. = ~ + ~ Observe que el teorema de Shannon es sólo válido para la lógica con {,}, no para cualquier álgebra de Boole. Metodo general. Dada la tabla de verdad para f, para cada fila se crea un sumando del tipo: [~] [~]2... [~]n f(fila), en donde i aparece negado si en esa fila i = 2. Se eliminan todos los sumandos que se multiplican por (porque. =. = ) Ejemplo: g(,) ~ + ~+ g(,) = ~ + ~ + Pero claramente (!) g(,) = + Demostración:. Tabla de + igual a tabla de g 2. Usando álgebra de Boole: ( = + ) ~ + + ~ = ~ + + + ~ = (~ + ) + ( + ~) = + = + Con las siguientes dos reglas se puede llegar a simplificar cualquier fórmula del tipo suma de productos:. ~ + ~~ = ~ (no importa el número de variables) 2. ~ + + ~ = + (porque = ~ + + + ~) 6
Mapas de Karnaugh Para visualiar mejor los productos que se pueden reducir se usan tablas de verdad reordenadas, llamadas mapas de Karnaugh. Ejemplo: f(,,) ~~~ + ~~ + ~ + ~~ Mapa de Karnaugh:! Fijense en el orden de! \ ~~~ ~~ ~ ~~ f(,,) = ~~ + ~ Principio fundamental: en una mapa de Karnaugh los términos que se originan de dos celdas adacentes siempre difieren en una sola variable (Gra code). \ Los mapas son circulares: f(,,) = ~ ~~ ~ Un se puede usar más de una v e e n u n a s i m p l i fi c a c i ó n, aprovechando que ~~~ = ~~~ + ~~~ f(,,) = ~~ + ~~ \ ~~~ ~~ ~~ 7
Se pueden agrupar bloques adacentes: Agrupando 2 n se eliminan n variables. Cada debe ser cubierto al menos una ve. f(,,) = ~ + = \ ~~ ~ ~ Por 4 variables:! Fijense en el orden de! f(,,,w) = ~~~ + ~w+ ~~w \ w Observe que la función sin simplificar require 8 AND 5 OR, mientras que al simplificarla queda en 6 AND 2 OR. Mapas de Karnaugh de cualquier tamaño El problema se reduce a encontrar secuencias de los valores binarios en que los elementos adacentes difieren en un solo bit (n-bit Gra codes). S =, S2 =,,,, S3 =,,,,,,,... informalmente: Sn+ =.Sn +.invertir(sn) 8
Problema: Construir un circuito que calcule la suma de 3 números binarios de bit,,, dando como resultado un número de 2 bits c, r (acarreo resultado). Tabla de verdad mapas de Karnaugh: c r \ r = ~~ + ~~ + +~~ \ c = + + Diagrama circuital: X Y Z R C 9
Propuesto: usando álgebra de Boole, muestre que si se remplaan tanto AND como OR por NAND en este circuito, el circuito sigue calculando la misma función. Problema: Construir un sumador de 2 números binarios de 4 bits cada uno. Solución : usando la metodología recién vista.! Con 8 entradas, la tabla de verdad tiene 256 filas! Demasiado largo. c Solución 2: usando el circuito sumador de 3 bits. Diagrama circuital: X3 X2 X X Se suma cada columna con un sumador de 3 bits. Y3 Y2 Y Y Z3 Z2 Z Z Funciones incompletamente especificadas Es frecuente que el valor de una función ante ciertas entradas pueda ser o. Eso se anota con X en la posición correspondiente de la mapa de Karnaugh: f(,,,w) = + + w + ~~w \ w X X X X X X Las X se hacen valer si esto es conveniente para obtener una fórmula más pequeña.