Circuitos lógicos combinacionales Tema 6 ¿Qué sabrás al final del capítulo? ■ Implementar funciones con dos niveles de puertas lógicas – – – – ■ ■ AND/OR OR/AND NAND NOR Analizar sistemas combinacionales, obteniendo la función lógica de salida Implementar sistemas combinacionales a partir de su especificación en forma de enunciado con distintos tipos de puertas Resumen puertas lógicas Implementación de funciones booleanas ■ Todas las expresiones booleanas pueden expresarse en forma de: – – ■ suma de productos producto de sumas En ambos casos la implementación puede realizarse con puertas lógicas AND y OR en dos niveles. Implementación de funciones booleanas ■ Funciones expresadas como suma de productos (AND/OR) F(a,b,c) = ab'c + a'c' + a'b Nivel 1 Nivel 2 Implementación con puertas AND / OR ■ x Ejemplo: f(x,y,z) =∑(1,3,6,7) X Y Z 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 F 0 1 0 1 0 0 1 1 yz 00 01 11 10 0 0 1 1 0 1 0 0 1 1 ■Esta notación significa la suma de los minitérminos 1, 3 6 y 7 f(x,y,z) = x'z + xy Implementación de Funciones Booleanas ■ Funciones expresadas como producto de sumas (OR/AND) g(a,b,c) = (a'+b+c) * (a'+b') * (b'+c) Nivel 1 Nivel 2 Implementación con puertas OR / AND ■ Ejemplo f(x,y,z) =∑(1,3,6,7) x y z F 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 ■ Implementación x y z 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 F F 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 yz 00 01 11 10 0 0 1 1 0 1 0 0 1 1 00 01 11 10 0 1 0 0 1 1 1 1 0 0 x F x F yz F = x·z + x· y ■ Negación de la negada yz F = x·z + x· y F = F = x· z + x· y F = x· z· x· y F = ( x + z )·( x + y ) 00 01 11 10 0 0 1 1 0 1 0 0 1 1 x ■ ■ ■ ■ También se habría llegado a esa expresión agrupando directamente los ceros con los mismos criterios que los unos Escribiendo una suma con paréntesis por cada agrupación de ceros Las variables que siempre valen 1 aparecen NEGADAS, las que varían desaparecen, y las que siempre valen 0 aparecen AFIRMADAS Finalmente se hace el producto de todas las sumas F = ( x + z )·( x + y ) x yz 00 01 11 10 0 0 1 1 0 1 0 0 1 1 Implementación con puertas sólo NAND. Implementación con puertas sólo NOR Implementación con puertas NAND y NOR ■ Las puertas NAND y NOR son universales – INVERSORES con NANDs y NORs Implementación con puertas NAND y NOR ■ Las puertas NAND y NOR son universales – AND con NANDs Implementación con puertas NAND y NOR ■ Las puertas NAND y NOR son universales – OR con NANDs Implementación con puertas NAND y NOR ■ Las puertas NAND y NOR son universales – AND con NORs Implementación con puertas NAND y NOR ■ Las puertas NAND y NOR son universales – OR con NORs Implementación con puertas NAND ■ A partir de suma de productos, y aplicando De Morgan Implementación con puertas NOR ■ A partir de producto de sumas, y aplicando De Morgan Análisis e implementación de sistemas combinacionales ¿Qué es un Circuito Combinacional? ■ Dos tipos de circuitos digitales – – Combinacionales: la salida depende sólo de la entrada Secuenciales: la salida depende de la entrada y el estado anterior del circuito (entrada + memoria) ¿Qué es un Circuito Combinacional? ■ ■ Las salidas tienen que estar completamente determinadas a partir de las entradas en cualquier instante No puede haber bucles de realimentación NO es combinacional SÍ es combinacional Análisis de circuitos combinacionales ■ Consiste en determinar la expresión algebraica de la función implementada por el circuito Se evalúan las expresiones generadas por cada puerta desde su entradas hasta su salida Síntesis o Diseño de Circuitos Combinacionales Síntesis Especificación F(A, B, C ) = ... A B C F 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 Simplificación e implementación Síntesis o Diseño de Circuitos Combinacionales ■ Ejemplo Una máquina expendedora automática proporciona productos con diversos precios: botella de agua 0,50 €, lata de refresco 1,00 €, paquete de galletas 1,50 € y caja de bombones 2,00 €. Sólo admite una moneda de 0,50 €, 1,00 € ó 2,00 € para adquirir el producto y sólo devuelve cambio de 1 moneda, caso de que tuviera que devolver cambio. Habrá casos en los que, al no poder proporcionar el cambio correcto, devolverá la moneda introducida, sin proporcionar el producto. ENTRADAS SALIDAS Moneda Producto ¿Suministra? Cambio 0,00 € Agua No 0,00 € 0,00 € Lata No 0,00 € 0,00 € Galletas No 0,00 € 0,00 € Bombones No 0,00 € 0,50 € Agua Sí 0,00 € 0,50 € Lata No 0,50 € 0,50 € Galletas No 0,50 € 0,50 € Bombones No 0,50 € 1,00 € Agua Sí 0,50 € 1,00 € Lata Sí 0,00 € 1,00 € Galletas No 1,00 € 1,00 € Bombones No 1,00 € 2,00 € Agua No 2,00 € 2,00 € Lata Sí 1,00 € 2,00 € Galletas Sí 0,50 € 2,00 € Bombones Sí 0,00 € Síntesis o Diseño de Circuitos Combinacionales Tabla de verdad Entradas me1 me2 t1 t2 S 00 0 0 0 0 0 Monedas entradas (me1, me2) 00: moneda de 0 € (ninguna moneda) 01: moneda de 0,50 € 10: moneda de 1,00 € 11: moneda de 2,00 € 00 0 1 0 0 0 00 1 0 0 0 0 00 1 1 0 0 0 01 0 0 1 0 0 Codificación del producto (t1, t2) 00: botella de agua 01: lata de refresco 10: paquete de galletas 11: caja de bombones 01 0 1 0 0 1 01 1 0 0 0 1 01 1 1 0 0 1 10 0 0 1 0 1 Monedas retornadas (ms1, ms2) 00: moneda de 0 € (ninguna moneda) 01: moneda de 0,50 € 10: moneda de 1,00 € 11: moneda de 2,00 € 10 0 1 1 0 0 10 1 0 0 1 0 10 1 1 0 1 0 11 0 0 0 1 1 Suministro (S) 0: NO proporciona producto 1: SÍ proporciona producto 11 0 1 1 1 0 11 1 0 1 0 1 11 1 1 1 0 0 Entradas Codificación Salidas Salidas ms1 ms2 Síntesis o Diseño de Circuitos Combinacionales Simplificación e implementación de algunas funciones t1 t2 me1 me2 00 01 11 10 00 0 0 0 0 01 1 0 0 0 11 0 1 1 1 10 1 1 0 0 t1 t2 me1 me2 S = me1 ·me2 ·t1 ·t 2 + me1 ·me2 ·t 2 + me1 ·me2 ·t1 + + me1 ·me2 ·t1 00 01 11 10 00 0 0 0 0 01 0 0 0 0 11 1 1 0 0 10 0 0 1 1 ms1 = me1 ·me2 ·t1 + me1 ·me2 ·t1 Condiciones “no importa” ■ ■ ■ En ocasiones ciertas combinaciones de entradas no tienen sentido en el sistema que estamos implementado En la tabla de verdad se marcan como casos “no importa” (X) A la hora de simplificar, a estos casos “no importa” se les darán los valores que nos convengan para conseguir las simplificaciones más sencillas Condiciones “no importa” ■ Ejemplo: conversor BCD natural a BCD exceso 3 Conclusiones ■ Es posible implementar una función lógica con cualquiera de estos conjuntos de puertas AND / OR / NOT ■ NAND ■ NOR ■ ■ ■ Analizar un circuito combinacional consiste en obtener la función de salida a partir de las entradas y las puertas a las que se encuentran conectadas Implementar un circuito combinacional especificación en forma de enunciado ■ síntesis del enunciado en una tabla de verdad ■ simplificación e implementación con un tipo de puertas (p.e. NAND) ■ Final del Tema 6