circuitos digitales

50
Área Electricidad MEL Página 1 de 50 CIRCUITOS DIGITALES Alex Fuentes Flores

Upload: alex-paul-fuentes-flores

Post on 05-Aug-2015

63 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Circuitos Digitales

Área Electricidad MEL

Página 1 de 50

CIRCUITOS DIGITALES

Alex Fuentes Flores

Page 2: Circuitos Digitales

Área Electricidad MEL

Página 2 de 50

Módulo III / SISTEMAS DE NUMERACIÓN

Introducción Variables y Funciones.

Estamos familiarizados con los conceptos de variable y de función de una variable. El campo de una variable define el rango de valores que puede tomar una variable x, que puede ser especificado de distintas formas. Por ejemplo x puede tener un rango en los números reales de menos infinito a más infinito, o puede estar restringida entre -17 y +8, o limitada a los números esteros positivos de 1 a 10, etc. Una función es una regla por la que determinamos el valor de una segunda variable (dependiente) y, a partir de los valores que toma la variable (independiente) x. Esta dependencia suele ser referenciada como y = f(x), y es función de x.

Supongamos que pretendemos determinar y mediante la regla que consiste en multiplicar x por si mismo, el resultado multiplicarlo por 5 y posteriormente sumarle 3. La relación funcional entre x e y se podría expresar mediante la ecuación:

Y = 5x2 + 3 En este ejemplo la relación funcional está expresada en términos de los procesos matemáticos de productos y suma. Asimilándolo a la teoría de conjuntos esta ecuación nos entrega una relación por comprensión. De la misma forma si quisiéramos representar esta relación en un sistema de ejes cartesianos o si el campo que de la variable dependiente es finito y pequeño es posible especificar la función en forma más práctica mediante una tabla:

X Y = F(X) 0 3 1 8 2 23 3 48

Así entonces la relación funcional puede ser representada en forma tabular. Por una fácil extensión de estas ideas elementales, es claro que las variables, dependiente e independiente, no tienen que ser necesariamente numéricas.

Page 3: Circuitos Digitales

Área Electricidad MEL

Página 3 de 50

Supóngase que el campo de la variable dependiente sea los colores de las luces de un semáforo, y que la variable dependiente sea el comportamiento que debe asumir un conductor de un móvil. Podríamos representar la relación funcional en el siguiente esquema tabular:

X Y = F(X) Verde Seguir

Amarillo Frenar Rojo Detenerse

Variables Lógicas Una variable lógica es una variable que tiene propiedades distintivas:

1. La VL puede adoptar uno u otro de solo 2 valores posibles 2. Los valores se expresan por sentencias declarativas, como en el ejemplo anterior 3. Los dos posibles valores expresados por las sentencias declarativas deben ser tales que,

sobre la base del racionamiento humano, es decir, basado en la lógica, sean mutuamente excluyentes.

Con las consideraciones anteriores repostulemos el ejemplo anterior de la forma que se tabula a continuación:

X Y = F(X) Verde Seguir Rojo Detenerse

De la que se puede deducir que el semáforo puede estar o en rojo o en verde y que ambos son mutuamente excluyentes. En este caso la variable x en la tabla es una variable lógica y tendremos que: “la luz es verde” que podemos representar como x = verde O “la luz es rojo” que podemos representar como x = rojo. Debido a la exclusión mutua, si queremos indicar que x = rojo podemos indicarlo además escribiendo x = no verde. En una notación más simple, esta negación se representa colocando una barra sobre el valor, de este modo: x = no verde es lo mismo que x = verde = rojo Valores de una variable lógica En el caso general de un tipo arbitrario de variable, por ejemplo, el tipo de variable que adopta valores numéricos que se vio previamente, estas pueden representar cualquier cosa. Así, x e y pueden representar temperatura, presión, distancia, tiempo, etc. Considerando las relaciones funcionales entre variables desde un punto de vista matemático, no tenemos interés en lo que representen. Así en y = 5x2 + 3, y = 8 cuando x = 1, resultado independiente de lo que x e y representen. Asimilando este concepto asignemos a los 2 posibles valores de nuestra variable lógica 2 nombres, para que podamos considerar una variable independientemente de lo que pueda representar. Estos deberían ser fácilmente distinguibles y excluyentes, por ejemplo alto, bajo o dentro, fuera, pero en forma más general podríamos decir verdadero o falso, y lo representamos con los valores T y F (del inglés True, verdadero y False, falso). Tomamos el ejemplo del semáforo y optamos por representar lo comúnmente aceptado para las variables independiente y dependiente, por A y Z en vez de x e y. Arbitrariamente asignamos el

Page 4: Circuitos Digitales

Área Electricidad MEL

Página 4 de 50

valor A = T a la sentencia “la luz esta en rojo”. Entonces automáticamente A = F representa la sentencia “la luz está en verde”. Análogamente asociamos arbitrariamente Z = T con la sentencia “el móvil continúa” y obviamente Z = F “el móvil se detiene”. Esto nos lleva a representar lo siguiente:

a) A Z = F(A)

Verde Seguir Rojo Detenerse

b)

A Z = F(A) F V V F

y la relación funcional de a) se nos convierte en una tabla de VERDAD. Funciones de una variable lógica Todas las funciones posibles de Z = f(A) de una variable lógica están representadas en las siguientes tablas: A Z=f(A) A Z=f(A) A Z=f(A) A Z=f(A) F F F T F F F T T T T F T F T T (a) (b) (c) (d)

de estas tables se puede concluir que:

• en (a) tenemos Z = A • en (b) tenemos Z = A

• en (c) tenemos Z = F

• en (d) tenemos Z = T

Podemos darnos cuenta que (c) y (d) no representan funciones por cuanto la salida es independiente de la variable de la entrada. En tanto (a) representa una función “identidad” y (b) una función de “negación”.

Page 5: Circuitos Digitales

Área Electricidad MEL

Página 5 de 50

Funciones de dos variables lógicas Consideremos ahora las funciones Z = f(A,B) de dos variables lógicas, como en el caso anterior las combinaciones que se pueden obtener serían 16 pero de igual modo se obtienen combinaciones que no representan funciones. De momento cosideraremos algunas funciones de interés especial. La funcion AND Una función lógica se define por una tabla de verdad. La función Z = f(A,B), definida por la siguente tabla de verdad, es la función AND A B Z= A and B F F F F T F y la representamos por Z = A and B T F F T T T

Como se puede deducir de la tabla de verdad la salida Z será verdadera cuando A sea verdadera Y (and) B sea verdadera. Cuando se vea más adelante la notación 0 y 1, la función asemeja a la multiplicación, pero sobreentendiendo que se refiere a una operación lógica. Si invertimos la posición de las variables en la anterior tabla tendremos: B A Z= A and B F F F T F F F T F T T T Dado que se obtiene los mismos resultados podemos decir que para esta operación lógica se cumple la propiedad de conmutatividad que se han visto en matemáticas. Esto es A and B = B and A. ¿ será Asociativa?. Sea la siguiente tabla para 3 variables A, B, C:

A B C AB (AB)C BC A(BC ) ------------------------------------------------------------------------------------------ F F F F F F F F F T F F F F F T F F F F F F T T F F T F T F F F F F F T F T F F F F T T F T F F F T T T T T T T Por lo tanto tambien se comprueba que (AB)C = A(BC), esto es la función and es asociativa.

Page 6: Circuitos Digitales

Área Electricidad MEL

Página 6 de 50

La función OR La siguiente tabla de verdad describe la función lógica or A B Z= A or B F F F F T T y la representamos por Z = A or B T F T T T T Aquí vemos que la salida Z = f(A,B) es verdadera cuando A es verdadera o (or) B es verdadera o Ambas. Esta operación se asimila a la suma, por tanto se le conoce como suma lógica y se representa con Z = A + B. Como ejercicio puede probar si se cumple la conmutatividad y asociatividad respecto a esta operación. Esto es:

• A + B = B + A • A + (B + C) = (A + B) + C

Como también si se cumple la distributividad del and respecto al or. A(B + C) = AB + AC Implementación de un sistema lógico. El concepto de variable lógica fue introducido en 1850 por el matemático George Boole en relación con sus estudios de los procesos de pensamiento. El álgebra de variables lógicas, que veremos un poco más adelante, se le conoce como álgebra booleana . La adaptación del álgebra booleana a los sistemas digitales, objeto de nuestro interes actual, fue presentada en 1938 por Claude Shannon. Para dar un significado más concreto al concepto de función lógica, que hemos estado absorviendo, como la relevancia del término lógico consideremos la siguiente situación referida a la función and . Supongamos que se va en un avión conducido por 2 pilotos, si vieramos salir de la cabina a uno de los piloto y al rato al otro, antes que volviese el primero, lógicamente deduciríamos que el avión está sin pilotos, y por tanto en una situación de peligro y deberíamos tomar medidas de emergencia. Podemos construir una sencilla máquina que realice la operación lógica que deduzca la situación de peligro. Esta se ilustra a continuación:

En los asientos de los pilotos ponemos conmutadores que hacen contacto cuando el piloto se levanta de su asiento. Supongamos que A representa la variable lógica que es verdad puando Pa (piloto a) no está en su asiento y falsa cuando lo está, y que B representa la variable para el piloto Pb y Z una variable que es verdad cuando el aeroplano está sin pilotos. Así cuando Z es verdad la

Page 7: Circuitos Digitales

Área Electricidad MEL

Página 7 de 50

maquina de la figura lo indicará haciendo sonar la alarma. Se tendrá por tanto que la salida será verdadera cuando ambos pilotos han abandonado sus respectivos asientos, es decir Z = A and B. Con una sencilla modificación se puede alterar el funcionamiento de la máquina a fin de que nunca un piloto pueda abandonar su puesto (operación or ). Representación de variables lógicas por tensiones e léctricas . En el caso visto anteriormente el valor de las variables lógicas era indicado por el contacto de un conmutador, análogamente hay muchas propiedades en la naturaleza a la que podríamos asimilar valores de variables lógicas, pensemos en temperatura, presión, etc. Actualmente lo más normal en los sistemas digitales rápidos es representar los valores lógicos de una variable por tensiones eléctricas mantenidas entre un par de conductores. Por ejemplo, podríamos convenir que cuando una variable lógica A se represente mediante una tensión V, la variable A = F cuando V = 3 Volt y A = T cuando V = 7 volt. En la práctica, como mantener una tensión precisa es bastante difícil, se adopta generalmente un rango de valores, por ejemplo F entre 2 volts y 3,5 volts y T entre 5,5 Volts y 8 volts, y por supuesto no se permiten valores distintos a los comprendidos en ambos rangos. En este ejemplo vemos que tanto el valor F como T son voltajes positivos y esto se conoce como lógica positiva., Puede también tenerse la situación de que ambos valores sean negativos e incluso una mezcla de valores positivos y negativos teniendo así lógicas negativas o mixtas. El símbolo del dispositivo que puede realizar el producto lógico Z = AB está representado en la figura a) y para más de 2 variables en la b), de igual modo en las figuras c) y d) se representa el dispositivo para la función suma lógica para una y más variables En general, cualquier estructura de una función lógica se conoce como puerta lógica . Así en las figuras anteriores tenemos las puertas AND y OR. Las variables A, B, etc., representan las entradas de la puerta y Z la salida. Inversión Un inversor es una puerta lógica que tiene solo una entrada y una sola salida y esta es el complemento lógico de la entrada, así cuando la entrada es verdadera, la salida es falsa y viceversa; es decir, cuando la entrada es A la salida es Z = A. Su representación es mediante el símbolo que se indica: Lo esencial en el símbolo corresponde al pequeño círculo, que indica la inversión por cuanto se utiliza en varias situaciones como se ilustra: La notación 0,1 Los posibles valores de una variable lógica lo hemos representado por T (verdadero) o F (falso). Ahora introducimos una notación alternativa, que como veremos tiene muchas características útiles. Emplearemos la notación A = 0 como alternativa a A = F y A = 1 como alternativa a A = T. Debe recordarse en esencia que tanto el 0 o 1 son referidos a valores y no números. Si rehacemos las tablas de verdad de las funciones AND y OR utilizando esta nueva notación tendremos: A B Z = A and B A B Z = A or B 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1

Page 8: Circuitos Digitales

Área Electricidad MEL

Página 8 de 50

A * B = Z A + B = Z 0 * 0 = 0 0 + 0 = 0 0 * 1 = 0 0 + 1 = 1 1 * 0 = 0 1 + 0 = 1 1 * 1 = 1 1 + 1 = 1 Se aprecia el porque se asimila la función and con la multiplicación, puesto que es equivalente a la multiplicación algebraica,, de igual modo la función or , salvo el último termino es correspondiente a la suma algebraica. En todo caso el 1 + 1 = 1, nos recuerda que estamos con lógica y no con aritmética y por tanto los 0 y 1 que se están usando no son números. EL SISTEMA DE NUMERACIÓN BINARIO En el sistema de numeración cotidiano, el sistema decimal, empleamos diez dígitos (y de ahí su nombre), 0, 1, 2, 3, 4, 5, 6, 7, 8, y 9 para representar cualquier cantidad. Así un valor superior a 9 se representa asignando un significado a la posición o lugar en que se encuentra cualquiera de los dígitos que componen la cifra. En nuestros primeros años de escuela se nos enseñó que la posición menos significativa de una cifra (entera) correspondía a las unidades, la siguiente a las decenas, y luego centenas, unidad de miles, decena de miles etc. Por ejemplo el número 64532 podríamos decir que es la suma de: 60000 + 4000 + 500 + 30 + 2 o dicho de una forma más científica 6 * 104 + 4 * 103 + 5 * 102 + 3 * 101 + 2 * 100 Y tenemos que podemos expresar cualquier cifra como sumas de potencias de 10 (base del sistema decimal) multiplicadas por coeficientes apropiados o dígitos que componen el sistema de numeración. En resumen en el sistema decimal, 10 es la base o raíz del sistema, tiene 10 dígitos siendo el mayor 9. En general un sistema de numeración de base n, tiene n dígitos siendo el mayor de este n – 1. En relación con sistemas descritos por variables lógicas resulta muy conveniente utilizar el sistema de numeración de base 2 (n = 2), que tendrá 2 dígitos siendo el mayor el 1 (n – 1). Este sistema es conocido como el sistema binario y utiliza solamente los dígitos 0 y 1. Una ventaja de utilizar el sistema binario es que podemos establecer una correspondencia uno-a-uno entre los dígitos (números) 0 y 1 y los valores lógicos (no números) 0 y 1. Ordinariamente, la asociación llega a ser tan “íntima” y conveniente que a veces se pierde de vista la distinción. Cuando un número se representa en el sistema binario, los dígitos individuales representan los coeficientes de las potencia de 2, y ya que son solo 0’s o 1’s solo contribuirán a la suma las potencias de 2 que solo tienen 1 en la posición respectiva. Por ejemplo la representación binaria del número 19 en el sistema binario será: (10011)2 = 1 * 24 + 0 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 16 + 0 + 0 + 2 + 1 = (19)10 Para cifras de 5 posiciones binarias el numero mayor que se puede representar es 1 * 24 + 1 * 23 + 1 * 22 + 1 * 21 + 1 * 20 = 16 + 8 + 4 + 2 + 1 = 31

Page 9: Circuitos Digitales

Área Electricidad MEL

Página 9 de 50

En la siguiente tabla se muestran los equivalentes decimal y binario de números del 0 31:

Decimal Binario 16-8-4-2-1

Decimal Binario 16-8-4-2-1

Decimal Binario 16-8-4-2-1

Decimal Binario 16-8-4-2-1

0 00000 8 01000 16 10000 24 11000 1 00001 9 01001 17 10001 25 11001 2 00010 10 01010 18 10010 26 11010 3 00011 11 01011 19 10011 27 11011 4 00100 12 01100 20 10100 28 11100 5 00101 13 01101 21 10101 29 11101 6 00110 14 01110 22 10110 30 11110 7 00111 15 01111 23 10111 31 11111

Conversiones entre números binarios y decimales La conversión de un binario a decimal es tal como lo vimos anteriormente, siguiendo las operaciones aritméticas. De digital a binario se puede evaluar a la vista cuando es un número de pocas posiciones, pero en general el método que se sigue es dividir sistemáticamente el número por 2 hasta llegar a 0, como se ilustra a continuación:

19 : 2 Resto

9 1 dígito menos significativo LSB 4 1 2 0 se lee en esa dirección 1 0 0 1 dígito más significativo MSB

O sea (19)10 = (10011)2 Para el caso de números menor a la unidad el procedimiento es el de multiplicar por 2 el número decimal, y las partes decimales de los resultados. La cantidad de veces que se repite la operación es hasta que se haga cero la parte decimal o hasta obtener una cantidad necesaria, de acuerdo a la exactitud que se desee. Ejemplo. Convertir (0,69)10 al sistema binario. 0 69 * 2

MSB 1 38 * 2

0 76 * 2

1 52 * 2

1 04 * 2

0 08 * 2

LSB 0 16 * 2

........

Finalmente la conversión de un número que contenga partes entera y decimal se realiza convirtiendo separadamente las partes con los métodos vistos y luego se combinan.

El equivalente binario de (0,69)10 es el binario ( .101100 )2

Page 10: Circuitos Digitales

Área Electricidad MEL

Página 10 de 50

Otros sistemas numéricos de interés. Los sistemas octal (base 8) y hexadecimal (base 16) resultan interesantes ya que tienen una relación especial con el sistema binario (ambos son potencias de 2). El sistema octal emplea los dígitos 0, 1, 2, 3, 4, 5, 6 y 7, el hexadecimal los 10 dígitos habituales del sistema decimal (0 al 9) y los otros seis requeridos se representan con las letras A, B, C, D, E y F. Los métodos vistos para conversión de binario a decimal y viceversa son válidos también para estos sistemas numéricos. Las relaciones especiales de los sistemas octal y hexadecimal con el binario surgen de que tres dígitos binarios pueden representar exactamente 8 (28) números diferentes (del 0 al 7 que son los dígitos del sistema octal) y con 4 dígitos binarios se puede representar exactamente 16 (24) números diferentes. En general la conversión de binario a octal o hexadecimal y viceversa se hace por agrupación de dígitos binarios como se comprobó en clases. A continuación se presenta la conversión de un número binario con partes enteras y decimal a los sistemas numéricos mencionados:

Números Binarios y Variables Lógicas La utilidad especial del sistema de numeración binario en relación con el álgebra de las variables lógicas proviene del hecho que estas tienen solo 2 valores y el sistema binario solo 2 dígitos. Esta utilidad se realza, como veremos ahora, con la notación 0 y 1 enunciada anteriormente. Por ejemplo supongamos una función de 3 variables Z = f(A, B, C) y construyamos su tabla de verdad. Las combinaciones que se pueden presentar, por el hecho de que cada variable tiene solo dos posibles valores es de 8, ahora bien si pensamos en el sistema binario con 3 dígitos podemos igualmente representar 8 valores, por tanto ordenamos las entradas en función de la combinación de 1’s y 0’s que se tiene en el sistema binario

Fila nº A B C Z 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1

La salida en este instante no es de importancia, en este momento, aunque Ud. podría verificar que corresponde a Z = A + BC. Se a agregado a la tabla de verdad la columna Fila nº que en realidad se asimila al equivalente decimal de la combinación de 0’s y 1’s que presentan las variables de

Page 11: Circuitos Digitales

Área Electricidad MEL

Página 11 de 50

entradas A, B y C considerando cada combinación de estas como un número binario de 3 posiciones. Si bien el orden en que se presente una tabla de verdad es irrelevante, por propósitos metodológicos se ordena en la secuencia del equivalente binario que presentan las variables de entrada. Lo importante que se obtiene de esta asignación es que entrega una forma alternativa de definir una función. De hecho podríamos decir:

1) Z = A + BC 2) La función se define por la tabla de verdad de la figura anterior 3) La función se define en una tabla de verdad de 3 variables en las que la salida Z = 1 en

las filas 3, 4, 5, 6 y 7. 4) La función se define en una tabla de verdad de 3 variables en las que la salida Z = 0 en

las filas 0, 1 y 2. Nótese que en las 2 últimas se ha definido la función sin dar explícitamente la tabla de verdad. TEOREMAS DEL ÁLGEBRA BOOLEANA Ahora vamos a desarrollar una serie de teoremas en los que aparecen las funciones AND, OR y NOT, útiles para simplificar expresiones de variables lógicas. Emplearemos los símbolos de la adición y multiplicación para representar esas operaciones y la notación de 0 y 1 para indicar que una variable lógica es falsa o verdadera respectivamente. Existe un principio especial denominado de dualidad que al aplicarlo permite relacionar las operaciones AND y OR. Por ejemplo 0 * 0 = 0, primera fila de la tabla de verdad de la función AND, si primeros reemplazamos la operación AND por OR y reemplazamos 1 x 0 tendremos 1 + 1 = 1 que es una ecuación valida (última fila de la tabla de verdad de la función OR). Procediendo de la misma forma puede verificarse que haciendo estos cambios a todas las ecuaciones de las tablas de verdad AND se llega a una correspondencia uno a uno con las ecuaciones de la tabla de verdad OR, y viceversa. Consideremos inicialmente un teorema muy importante y, sin embargo, trivial. Partiendo de que una variable lógica tiene solo 2 valores posibles, y estos son mutuamente excluyentes, llegamos a que el resultado del complemento del complemento de una variable A es la misma variable, es decir: A = A o consecuentemente 0 = 1 y 1 = 0 Continuando tenemos (utilizando ‘para representar la negación):

A + 0 = A (1.a) A * 1 = A (1.b) A + 1 = 1 (2.a) A * 0 = 0 (2.b) A + A = A (3.a) A * A = A (3.b) A + A’ = 1 (4.a) A * A’ = 0 (4.b)

Estos ocho teoremas manejan una sola variable y se han tabulado en parejas duales, es decir aplicando el principio de dualidad de (1.a) se llega a (1.b). En lo que sigue se tabulan teoremas que manejan 2 y 3 variables: A + AB = A (5.a) A(A + B) = A (5.b) AB + AB’ = A (6.a) (A + B)(A + B’) = A (6.b) A + A’B = A + B (7.a) A(A’ + B) = AB (7.b) A + BC = (A + B)(A + C) (8.a) A(B + C) = AB + AC (8.b) AB + A’C = (A + C)(A’ + B) (9.a) (A + B)(A’ + C) = AC + A’B (9.b) AB + A’C + BC = AB + A’C (10.a) (A + B)(A’ + C)(B + C) =(A + B)(A’ + C) (10.b) La mayoría de estos teoremas se demostraron en clases a través de tablas de verdad y con álgebra booleana.

Page 12: Circuitos Digitales

Área Electricidad MEL

Página 12 de 50

TEOREMA DE MORGAN El último teorema de la suficiente importancia como para merecer tratado aparte, se conoce como teorema de Morgan. Este teorema y su dual se expresan: A B C ... = A + B + C + ....... A + B + C + ..... = A B C ......

FUNCIONES LOGICAS Formas estándar para funciones lógicas Suma de Productos estándar Con el fin de desarrollar un procedimiento para simplificar funciones, que como se vio en clases a través del álgebra de Boole depende mucho de la capacidad del alumno, se presenta a continuación 2 formas estándar para expresar funciones lógicas, la primera consiste en expresar la función mediante suma de productos y la segunda en que la función se expresa en producto de sumas. La primera forma se ilustra a través de los siguientes ejemplos: Ejemplo . Dada la función de cuatro variables f(A,B,C,D) = (A’ + BC)(B + C’D) expresarla como suma de productos (nuevamente usamos ‘ para indicar el complemento). Solución . Aplicamos la ley distributiva: f(A,B,C,D) = A’B + A’C’D + BBC + BCC’D y dado que BB = B y CC’ = 0 f(A,B,C,D) = A’B + A’C’D + BC y entonces tenemos expresada la función en suma de productos en que las variables aparecen complementadas o no, en forma individual. Ejemplo . Dada la función lógica de 5 variables f(A,B,C,D) = (A + BC)(D + BE) Expresarla como suma de productos. Solución . Aquí aplicamos primero el teorema de Morgan y luego la distributividad: f(A,B,C,D) = (A + B’ + C’)[D’(BE)] = (A + B’ + C’)(D’(B’ + E’) = (A + B’ + C’)(B’D’ + D’E’) = AB’D’ + AD’E’ + B’B’D’ + B’D’E’ + B’C’D’ + C’D’E’ = AB’D’ + AD’E’ + B’D’ + B’D’E’ + B’C’D’ + C’D’E’ Nuevamente tenemos expresada la función como suma de productos al igual que el ejemplo anterior. Estos ejemplos indican como cualquier expresión lógica puede representarse como suma de producto, aplicando los teoremas de Morgan y distributividad. En este desarrollo no nos preocupamos en reducir a la expresión minima solo eliminamos terminos que se repitan o que hacen 0 algún termino.

Page 13: Circuitos Digitales

Área Electricidad MEL

Página 13 de 50

Ahora en el siguiente ejemplo se aplicará una estandarización adicional que permitirá que además de tener solo suma de productos cada termino incluirá todas las variables de la función. Ejemplo . Dada la funcion de 3 variables f(A,B,C) = A + BC , que ya está expresada en términos de suma de productos la transformamos a fin de tener todas las variables (A;B;C) en cada uno de los términos. Para esto multiplicamos cada termino por elementos neutros que tomen las variables que no aparecen en el término (ej. (B + B’) ) f(A,B,C) = A(B + B’) (C + C’) + BC (A +A’)

= ABC + ABC’ + AB’C + AB’C’ + ABC + A’BC eliminando el término repetido ABC la expresión final es: f(A,B,C) = ABC + ABC’ + AB’C + AB’C’ + A’BC Esta última expresión en que aparecen suma de productos y que cada termino contiene todas las variables de la función, se conoce como la forma estandar de suma de productos , y si bien es bastante más complicada que la expresión de que partimos tiene una importancia para la minimización gráfica que estudiaremos más adelante. Cada uno de los términos que aparece en la forma estandar es conocido como minterm . Productos de Suma Estandar Partiendo del principio de dualidad, podemos imaginar que una expresión logica puede tambien expresarse por un producto de sumas estandar. Repitamos el primer ejemplo anterior. Ejemplo . Dada la funcion de cuatro variables f(A,B,C,D) = (A’ + BC)(B + C’D) expresarla como productos de sumas. Solución . Previamente aplicamos la distributividad para generar la suma de productos, ahora lo hacemos aplicando la expresión dual referenciada como (8.a) en los teoremas (pag 18):

f(A,B,C,D) = (A’ + BC)(B + C’D) = (A’ + B) (A’ + C) (B + C’) (B + D) y así tenemos expresada la función en términos de producto de sumas. Ejemplo . Dada la función lógica de 5 variables f(A,B,C,D) = (A + BC)(D + BE) Expresarla como producto de sumas. Solución . Como en el caso de suma de productos, primero aplicamos el teorema de Morgan hasta tener solo complementos a nivel de variable individual y luego aplicamos la distributividad. f(A,B,C,D) = (A + B’ + C’)[D’(BE)] = (A + B’ + C’)(D’(B’ + E’) = (A + B’ + C’)(B’D’ + D’E’) hasta aquí es similar al desarrollo anterior, pero como debemos expresar como producto de sumas, nos avocamos al segundo paréntesis ya que el primero esta como suma: = (A + B’ + C’)(B’D’ + D’) (B’D’ + E’) = (A + B’ + C’)(B’ +D’) (D’ + D’) (B’ + E’)( D’ + E’) = (A + B’ + C’)(B’ +D’) (D’) (B’ + E’)( D’ + E’)

Page 14: Circuitos Digitales

Área Electricidad MEL

Página 14 de 50

Se pudo haber simplificado en la primera de las últimas 3 expresiones el término B’D’ + D’ = D’, pero no se hizo porque lo que se quiere ahora es simplemente poner de manifiesto una forma particular de expresión y no la forma más simple. En cualquiera de los casos hemos podido expresar una función lógica como producto de sumas. Sin embargo como en el caso de la suma de productos, no hemos llegado a la expresión estándar, que en este caso cada suma entre paréntesis debe contener todas las variables participantes. Hagámoslo a traves del siguiente ejemplo: Ejemplo . Considerar la función logica de 3 variables f(A, B, C) = A (B’ + C). Solución . Esta expresión ya está como productos de suma por lo tanto aplicaremos términos neutros a fin de tener todas las variables participando en las suma. En el paréntesis no participa la variable A o su complemento, como en el termino A no está B ni C o sus complementos, por tanto aplicamos términos neutros del tipo AA’: f(A, B, C) = A (B’ + C). = (A + BB’ + CC’) ( AA’ + B’ + C) = (A + BB’ + C) (A + BB’ + C’) (A + B’ + C) (A’ + B’ + C) = (A + B + C) (A + B’ + C) (A + B + C’) (A + B’ + C’) (A + B’ + C) (A’ + B’ + C) y eliminando el término duplicado (A + B’ + C)

tendremos finalmente f(A, B, C) = (A + B + C) (A + B’ + C) (A + B + C’) (A + B’ + C’) (A’+ B’ + C) Correspondiente a la forma estandar de producto de sumas. Aquí cada uno de los términos suma se le denomina maxterm . Numeración de Minterm y Maxterm Una vez introducida la organización y sitematizacion de expresiones para funciones lógicas trataremos de encontrar un método para numerar los minterms(productos completos) y maxterms (sumas completas). Comencemos por los minterms, a titulo de ejemplo y para ser específico, supongamos una función lógica de 3 variables A,B y C. Un minterm contendrá exactamente una vez cada variable (complementada o no), asignemos en los minterm el número binario 0 a las variables complementadas y el número 1 a las variables no complementadas, de esta forma el minterm de las variables A, B y C’ se le asignanlos números binarios 1,1 y 0 respectivamente; con estos 3 dígitos formamos el número binario que es el número del minterm. El valor de este número de 3 dígitos dependerá, por supuesto, de las posiciones que ocupen estos digitos. Supongamos por ejemplo que A es el MSB, B el siguiente y C el LSB, entonces para el caso que estamos viendo el minterm correspondiente a ABC’ = 110 se referirá como m6, por supuesto todo depende del orden que se les de a las variables, pero una vez que se le da un orden cada minterm debe ser expresado en el mismo orden, para nuestro caso todos los minterm deben ser referenciado como ABC y no como ACB o CBA, esten las variables complementadas o no. Aceptada esta convención, para el caso de los maxterms la regla para asignar los dígitos 0 y 1 se invierte (dualidad), esto es se le asigna 1 a las variables complementadas y 0 a las no complementadas. Así el maxterm A’ + B + C se le asigna el número binario 1 0 0 = 4 y se representa como M4, Análogamente el maxterm A’ + B’ + C’ es M7. ESPECIFICACIONES DE FUNCIONES MEDIANTE MINTERMS Y M AXTERMS. La forma más conveniente para expresar una función lógica es a travez de minterms y maxterms, así por ejemplo la función de suma de productos standard obtenida anteriormente ordenada de menor a mayor:

Page 15: Circuitos Digitales

Área Electricidad MEL

Página 15 de 50

f(A,B,C) = A’BC + AB’C’ + AB’C + ABC’ + ABC equivaldrá a 011 100 101 110 111 3 4 5 6 7 f(A,B,C) = m3 + m4 + m5 + m6 + m7 o alternativamente como f(A, B, C) = ΣΣΣΣ m(3,4,5,6,7) o simplemente como ΣΣΣΣ (3,4,5,6,7) Consideremos ahora el caso de producto de sumas y tomemos la expresión obtenida f(A, B, C) = (A + B + C) (A + B + C’) (A + B’ + C) (A + B’ + C’) (A’+ B’ + C) 000 001 010 011 110 0 1 2 3 6 f(A, B, C) = M0 + M1 + M2 + M3 + M6 o alternativamente como f(A, B, C) = ΠΠΠΠM(0,1,2,3,6) o simplemente como ΠΠΠΠ (0,1,2,3,6) Relaciones entre Minterms, Maxterms y Tablas de Ver dad Está claro que una función lógica podemos expresarla en una tabla de verdad, por suma de minterms o producto de maxterms, las relacines entre estas se representan en la siguiente figura:

Fila nº A B C f(A,B,C) 0 0 0 0 1 1 0 0 1 0 2 0 1 0 1 3 0 1 1 1 4 1 0 0 0 5 1 0 1 0 6 1 1 0 1 7 1 1 1 1

f(A, B, C) = A’ B’ C’ + A’ B C’ + A’ B C + A B C’ + A B C = ΣΣΣΣ (0, 2, 3, 6, 7) = (A + B + C’) (A’ + B + C) (A’ + B + C’) = ΠΠΠΠ (1, 4, 5) De la tabla se observa que los minterms corresponden a la combinación de entradas que producen un 1 como salida, y los maxterms las combinaciones que producen como salida un 0.

DIAGRAMAS DE KARNAUGH El diagrama o mapa de Karnaugh es un dispositivo extremadamente útil para la simplifacación y minimización de expresiones algebraicas booleanas. Un diagrama K es una figura geométrica, que asocia una región (compartimiento o casillero) a cada fila de una tabla de verdad o dicho de otro modo cada casillero corresponde a algún minterm o maxterm, por tanto existe una correspondencia 1 a 1 entre compartimientos y filas de tabla de verdad y minterms o maxterms. En general este método gráfico está orientado a solucionar la simplificación de expresiones de más de 2 variables, por lo que veremos como se grafica el mapa K para 3 y 4 variables. Supongamos una función f(A,B,C) y según lo visto en la asignación de minterms A es msb y C lsb, la correspondencia entre el número de minterm en un diagrama K para 3 variables es el que se indica:

Page 16: Circuitos Digitales

Área Electricidad MEL

Página 16 de 50

AB

C 0 0 0 1 1 1 1 0

0 0 2 6 4

1 1 3 7 5

Debe notar que entre casilleros adyacentes (al lado o abajo) siempre hay solo un cambio en alguna de las variables. Por ejemplo entre 3 y 7 (011 y 111) solo cambia la variable A. También debe considerar que las orillas del mapa son adyacentes. Ej entre 0 y 4 (000 y 100) solo cambia A como también entre 1 y 5 (001 y 101). Para representar f(A, B, C) = ΣΣΣΣ (0, 2, 3, 6, 7) en un mapa K se procede en este caso poniendo un 1 en los casilleros correspondiente de cada minterm:

AB

C 0 0 0 1 1 1 1 0

0 1 1 1

1 1 1

Una vez representado el mapa vemos como se obtiene una expresión mínima de la función. El método consiste en agrupar los ‘1’ adyacentes en la mayor cantidad posible y que la cantidad represente potencias de 2 (2, 4, 8 ...). Conviene empezar por los casilleros más aislados. En el diagrama anterior el minterm 0, es el más aislado y lo podemos asociar solamente con el minterm 2 como se ilustra:

AB

C

0 0 0 1 1 1 1 0

0 1 1 1

1 1 1

Luego se asocia el resto de los 1 en el grupo central de 4, si bien se está reconsiderando el minterm 010, esto no introduce error:

AB

C 0 0

0 1 1 1 1 0

0 1 1 1

1 1 1

Una vez que todos los 1 estan agrupados, estas agrupaciones se representan como productos entre las variables que no cambian en la zona agrupada. En la primera agrupación de los minterms 0 y 2 se tiene que la variables que no cambian son A’ y C’ (ambas mantienen el valor 0 y por eso

Page 17: Circuitos Digitales

Área Electricidad MEL

Página 17 de 50

se las pone complementadas); en la segunda agrupación solo no cambia la variable B (permanece en 1), por tanto la expresión mínima para esta función sería: f(A, B, C) = A’C’ + B Esto lo podría probar aplicando álgebra Booleana. Para diagramar 4 variables se tiene el siguiente mapa K, donde se indica la numeración de cada casillero:

AB

CD 0 0 0 1 1 1 1 0

0 0 0 4 12 8

0 1 1 5 13 9

1 1 3 7 15 11

1 0 2 6 14 10

A continuación se indican posibles asociaciones que se pueden realizar:

AB

CD 0 0 0 1 1 1 1 0

0 0

0 1

1 1

1 0

AB

CD 0 0

0 1

1 1

1 0

0 0

0 1

1 1

1 0

Page 18: Circuitos Digitales

Área Electricidad MEL

Página 18 de 50

AB

CD 0 0 0 1 1 1 1 0

0 0

0 1

1 1

1 0

AB

CD

0 0 0 1 1 1 1 0

0 0

0 1

1 1

1 0

Cuando una función lógica se ha expresado en forma estandar por medio de minterms, el diagrama K puede utilizarse para simplificar la función aplicando lops siguientes principios:

1. La agrupación de compartimientos (minterms) debe hacerse de forma tal que cada uno esté incluido como mínimo una vez. Como se señalo previamente un compartimiento puede aparecer en distintas agrupaciones.

2. Las agrupaciones individuales deben seleccionarse de forma de comprender el mayor número de compartimientos con el fin de incluirlos en el mínimo de agrupaciones posibles

EJERCICIOS. Emplear mapas de Karnaugh para reducir las siguientes funciones:

1. f(A, B, C, D) = A’ B’ C + AD + BD’ + CD’ + AC’ + A’B’ 2. f(A, B, C, D) = (A + B + C’) (B’ + D’) (A’ + C) (B + C) 3. f(A, B, C, D) = ΣΣΣΣ (0, 1, 4, 5, 9, 11, 14,. 15) 4. f(A, B, C, D) = ΣΣΣΣ (0, 1, 2, 3, 9, 10, 11, 13, 14, 15) 5. f(A, B, C, D) = ΠΠΠΠ (0, 5, 7, 13, 14, 15) 6. f(A, B, C, D) = ΠΠΠΠ (1, 4, 6, 8, 11, 13, 14) 7. f(A, B, C, D) = ΠΠΠΠ (0, 5, 7, 8, 9, 10, 11, 13)

Page 19: Circuitos Digitales

Área Electricidad MEL

Página 19 de 50

COMPUERTAS LÓGICAS La puerta lógica es el bloque de construcción básico de los sistemas digitales. Las puertas lógicas operan con números binarios. Por tanto las puertas lógicas se denominan puertas lógicas binarias. En los circuitos digitales todos los voltajes, a excepción de los voltajes de las fuentes de potencia, se agrupan en dos posibles categorías: voltaje altos y voltajes bajos. No quiere decir esto que solo se encuentren dos voltajes, si no que cierto rango de voltajes se define como alto y otro cierto rango como bajos. Entre estos dos rangos de voltajes existen existe una denominada zona prohibida o de incertidumbre que los separa. Una tensión alta significa un 1 binario y una tensión baja significa un cero binario. Todos los sistemas digitales se construyen utilizando tres puertas lógicas básicas. Estas son las puertas AND, la puerta OR y la puerta NOT. LA PUERTA AND.

Figura 1: Circuito equivalente de una puerta AND

La puerta AND es denominada la puerta de << Todo o Nada >>. Observar el esquema de la figura 1, la cual muestra la idea de la puerta AND. Examinando de cerca el circuito, notamos que la lampara encenderá solo si ambos interruptores se cierran o se activan simultáneamente. Si uno de los de los interruptores esta abierto, el circuito se interrumpe y la lampara no se enciende. Todas las posibles combinaciones para los interruptores A y B se muestran en la tabla 1. La tabla de esta figura que la salida (y) esta habilitada (encendida ) solamente cuando ambas entradas están cerradas.

Interruptores de entrada

Luz de salida

A B Y

Abierto

Abierto

Cerrado

Cerrado

Abierto

Cerrado

Abierto

Cerrado

Apagado

Apagado

Apagado

Encendido

Tabla 1: Combinaciones posibles de la compuerta AND

Con el ánimo de presentar en forma más compacta la tabla, anterior, convengamos en que la condición de interruptor cerrado la representamos con un 1, y la de interruptor abierto con un 0. De manera similar, el encendido de la lampara la representamos con un 1. Y su apagado con un 0 (cero). Con estas convenciones, la tabla 1 nos quedaría como en la tabla 2.

Page 20: Circuitos Digitales

Área Electricidad MEL

Página 20 de 50

A B Y

0

0

1

1

0

1

0

1

0

0

0

1

Tabla 2: Tabla 1 simplificada LOS SÍMBOLOS DE LAS COMPUERTAS Son una representación gráfica de la función que ayuda a visualizar las relaciones lógicas existente en un diseño o circuito. En la figura 2 se muestra el símbolo de la compuerta AND con lo que se quiere significar que esta compuerta AND es un dispositivo que posee dos entradas A y B y una salida Y.

Figura 2: Símbolo de una compuerta AND

El álgebra booleana es una forma de lógica simbólica que muestra como operan las compuertas lógicas. Una expresión booleana es un método << taquígrafo >> de mostrar que ocurre en un circuito lógico. La expresión booleana para el circuito de la figura 3 es.

A · B = Y Figura 3: Expresión booleana de la compuerta AND

La expresión booleana se lee A AND B igual a la salida Y. El punto (·) significa la función lógica AND en álgebra booleana, y no la operación de multiplicar como en el álgebra regular. Con frecuencia un circuito lógico tiene tres variables. La fig. 4 muestra una expresión booleana para una puerta AND de tres entradas. El símbolo lógico para esta expresión AND de tres entradas esta dibujada en la fig. 5. La tabla de verdad 3 muestra las 8 posibles combinaciones de la variables a, b y c observar que solo cuando todas las entradas están en 1 y la salida de la puerta AND se habilita a 1.

A · B · C = Y Figura 4: Expresión booleana para una compuerta AND de tres entradas

Figura 5: Compuerta AND de tres entradas

Page 21: Circuitos Digitales

Área Electricidad MEL

Página 21 de 50

A B C Y

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 1

Tabla 3: Tabla de verdad de una compuerta AND de tres entradas LA PUERTA OR

Figura 6: CIrcuito equivalente de una compuerta OR

La puerta OR se denomina y la puerta de << cualquiera o todo >>. El esquema de la figura 6 nos muestra la idea de la puerta OR, en el cual los interruptores han sido conectados en paralelo. El encendido de la lampara se producirá si se cierra cualquiera de los dos interruptores o ambos. Todas las posibles combinaciones de los interruptores se muestran en la tabla 4. La tabla de verdad detalla la función OR del circuito de interruptores y lampara.

Interruptores de entrada

Luz de salida

A B Y

Abierto

Abierto

Cerrado

Cerrado

Abierto

Cerrado

Abierto

Cerrado

Apagado

Encendido

Encendido

Encendido

Tabla 4: Combinaciones posibles de la compuerta OR

Page 22: Circuitos Digitales

Área Electricidad MEL

Página 22 de 50

La tabla de la 4 describe el funcionamiento del circuito. Observamos, que de las 4 posibles combinaciones de cierre y apertura de los interruptores, 3 de ellas producen el encendido de la lampara , y de nuevo utilizando la convención de representar la condición cerrado o encendido por un 1 y la de abierto o apagado por un 0, se obtiene la tabla de verdad de la tabla 5.

A B Y

0 0 1 1

0 1 0 1

0 1 1 1

Tabla 5: Tabla de verdad de una compuerta OR de dos entradas

El símbolo lógico estándar para la puerta OR esta dibujado en la fig. 7. observar la forma diferente de la puerta OR. La expresión booleana abreviada para esta función OR es A + B = Y observar que símbolo + significa OR en álgebra booleana. la expresión ( A+ B = Y ) se lee A OR B igual a salida Y .

Figura 7: Símbolo de una compuerta OR

La expresión booleana, símbolo y tabla de verdad de una puerta OR de tres entradas o variables están dibujadas en las figuras 8, 9, y en tabla 6.

A + B + C = Y Figura 8: Expresión booleana para una compuerta OR de tres entradas

Figura 9: Compuerta OR de tres entradas

A B C Y

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

Tabla 6: Tabla de verdad de una compuerta OR de tres entradas

Page 23: Circuitos Digitales

Área Electricidad MEL

Página 23 de 50

LA PUERTA NOT Las dos compuertas descritas anteriormente poseen cada una dos entradas y una salida. La compuerta NOT o inversora, posee una entrada y una salida como se muestra en la Fig. 10. Su función es producir una salida inversa o contraria a su entrada es decir convertir unos a ceros y ceros a unos. La tabla de verdad 7 resume el funcionamiento de esta compuerta.

Figura 10: Símbolo de una compuerta NOT

A Y

0 1

1 0 Tabla 7: Tabla de verdad de una compuerta NOT

La expresión booleana para la inversión es Å = A. La expresión Å = A indica que A es igual a la salida no A. Un símbolo alternativo para la puerta NOT o inversor, se muestra a continuación.

Figura 11: Símbolo alternativo de una compuerta NOT

El círculo inversor puede estar en la parte de entrada o de salida del símbolo triangular. Cuando el circulo inversor aparece en la parte de la entrada del símbolo NOT, el diseñador habitualmente intenta sugerir que esta una es una señal activa en baja. Una señal activa en baja requiere que una tensión baja active alguna función en circuito lógico. LA PUERTA NAND Una compuerta NAND es un dispositivo lógico que opera en forma exactamente contraria a, una compuerta, AND, entregando una salida baja cuando todas sus entradas son altas y una salida alta mientras exista por lo menos un bajo a cualquiera de ellas . Considerar el diagrama de los símbolos lógicos de la fig. 12, una puerta AND esta conectada a un inversor. Las entradas A y B realizan la función AND y forma la expresión booleana A · B la puerta NOT invierte A · B a la derecha del inversor se añade la barra de complementaron a la expresión booleana obteniéndose A · B = Y a este circuito se denomina NOT-AND o NAND.

Figura 12: Circuito equivalente de una compuerta NAND

El símbolo lógico convencional para la puerta se muestra en el diagrama de la fig. 13 observar que el símbolo NAND es símbolo AND con un pequeño circulo a la salida. El círculo a veces se denomina círculo inversor. Esta es una forma simplificada de representar la puerta NOT. La tabla de verdad describe la operación exacta de la puerta lógica. La tabla de la verdad para la puerta

Page 24: Circuitos Digitales

Área Electricidad MEL

Página 24 de 50

NAND se ilustra en la tabla 8, observe como sus salida son las inversas de las salidas de la puerta AND.

Figura 13: Símbolo lógico de una compuerta NAND

A B NAND AND

0 0 1 1

0 1 0 1

1 1 1 0

0 0 0 1

Tabla 8: Tabla de verdad de una compuerta NAND de dos entradas

La operación de una puerta NAND es análoga a la del circuito eléctrico mostrado en la fig. 14 los interruptores A y B representan las entradas de la puerta y la lampara ( Y ) su salida .

Figura 14: Circuito eléctrico equivalente de una compuerta NAND

Debido a que los interruptores A y B están en serie entre si y en paralelo con la lampara (Y) , esta ultima solo se apaga cuando ambos interruptores están cerrados y permanece encendida mientras cualquiera de ellos este abierto.

LA PUERTA NOR Considerar el diagrama lógico de la fig. 15. Se ha conectado un inversor a la salida de una puerta OR . la expresión booleana en la entrada de un inversor es A + B . el inversor complementa la salida de la puerta OR , lo que se indica colocando una barra encima de la expresión booleana. Obteniénose A+B = Y. Esta es una función NOT-OR. La función NOT-OR puede representarse por un símbolo lógico llamado puerta NOR que se ilustra en el diagrama de la fig. 16. Observar que se ha añadido un pequeño círculo inversor al símbolo OR para formar el símbolo NOR.

Figura 15: Circuito equivalente de una compuerta NOR

Page 25: Circuitos Digitales

Área Electricidad MEL

Página 25 de 50

Figura 16: Símbolo lógico de una compuerta NOR

Podemos decir que este dispositivo lógico opera en forma exactamente opuesta a una puerta OR , entregando una salida alta cuando todas sus entradas son bajas y una salida baja cuando existe por lo menos un alto en cualquiera de ellas . La operación de una puerta NOR es análoga a la del circuito eléctrico mostrado en la fig. 17 los interruptores A y B representan las entradas de la puerta y la lampara (Y) su salida.

Figura 17: Circuito eléctrico equivalente a una compuerta NOR

Debido a que los interruptores A y B están en paralelo entre si y con la lampara (Y) esta ultima solo enciende cuando ambos interruptores están abiertos y permanece apagada mientras cualquiera de ellos , o ambos , estén cerrados. La tabla de verdad 9 detalla la operación de la puerta NOR. Es complemento ( ha sido invertida ) de la columna OR en otras palabras , la puerta NOR pone un 0 donde la puerta OR produce un 1

A B NOR OR

0 0 1 1

0 1 0 1

1 0 0 0

0 1 1 1

Tabla 9: Tabla de verdad de una compuerta NOR de dos entradas

LA PUERTA OR EXCLUSIVA O XOR La OR - exclusiva se denomina la puerta de << algunos pero no todos >>. El término OR - exclusiva con frecuencia se sustituye por XOR. La tabla de verdad para la función XOR se muestra en la tabla 10 . un cuidadoso examen muestra que esta tabla de verdad es similar a la tabla de verdad OR, excepto que cuando ambas entradas son 1 la puerta XOR genera un 0.

A B OR XOR

0 0 1 1

0 1 0 1

0 1 1 1

0 1 1 0

Tabla 10: Tabla de verdad de una compuerta XOR de dos entradas

La operación de una puerta XOR es análoga a la del circuito eléctrico mostrado en la fig. 18. los interruptores A y B simulan las entradas y la lampara (Y) la salida.

Page 26: Circuitos Digitales

Área Electricidad MEL

Página 26 de 50

Figura 18: Circuito eléctrico equivalente de una compuerta XOR

Los interruptores A y B están acoplados mecánicamente a los interruptores A y B de modo que cuando A se cierra entonces A se abre y viceversa. Lo mismo puede decirse del interruptor B con respecto al B. Cuando los interruptores A y B están ambos cerrados o ambos abiertos la lampara no enciende. En cambio, cuando uno de ellos, por ejemplo el A , esta abierto y el otro, B, esta cerrado, entonces la lampara se enciende. Una booleana para la puerta XOR puede obtenerse de la tabla de verdad la fig. 19 la expresión es A ·B + Å · B = Y a partir de esta expresión booleana puede construirse un circuito lógico utilizando puertas AND, puertas OR e inversores dicho circuito aparece en la fig. 19 a este circuito lógico realiza la función lógica XOR.

Figura 19: Circuito lógico que realiza la función XOR

El símbolo lógico convencional para la puerta XOR se muestra en la fig. 20 la expresión booleana A ⊕ B, es una expresión XOR simplificada. el símbolo ⊕ significa la función XOR en álgebra booleana. Se dice que las entradas A y B de la fig. 20 realiza la función OR - exclusiva.

Figura 20: Símbolo lógico de una compuerta XOR

LA PUERTA NOR EXCLUSIVA O XNOR Una compuerta NOR - exclusiva o XNOR opera en forma exactamente opuesta a una compuerta XOR, entregando una salida baja cuando una de sus entradas es baja y la otra es alta y una salida alta cuando sus entradas son ambas altas o ambas bajas. Es decir que una compuerta XNOR indica, mediante un lógico que su salida, cuando las dos entradas tienen el mismo estado. Esta característica la hace ideal para su utilización como verificador de igual en comparadores y otros circuitos aritméticos. En la figura 21 se muestra el símbolo lógico, y en la tabla 11 el funcionamiento de una compuerta XNOR. La expresión Y = A ⊕ B pude leerse como Y = A o B exclusivamente negada.

Figura 21: Símbolo lógico de una compuerta XNOR

Page 27: Circuitos Digitales

Área Electricidad MEL

Página 27 de 50

A B Y

0 0 1 1

0 1 0 1

1 0 0 1

Tabla 11: Tabla de verdad de una compuerta XNOR de dos entradas

Para efectos prácticos una compuerta XNOR es igual una compuerta XOR seguida de un inversor. En la fig. 22 se indica esta equivalencia y se muestra un circuito lógico de compuertas AND , OR y NOT que opera exactamente como una compuerta X NOR.

Figura 22: Circuito lógico que realiza la función XNOR

La operación de una compuerta XNOR es análoga a la del circuito eléctrico mostrado en la figura 23 los interruptores A y B están acoplados de la misma forma que el circuito XOR. Cuando los interruptores A y B están ambos cerrados o ambos abiertos, la lampara se enciende. En cambio cuando uno de ellos por ejemplo el A esta abierto y el B esta cerrado , entonces la lámpara no se enciende.

Figura 23: Circuito eléctrico equivalente de una compuerta XNOR

DECODIFICADORES Y CODIFICADORES . Se estudian en esta unidad 2 circuitos combinacionales típicos muy utilizados en los sistemas digitales. Decodificadores . El decodificador se define como un circuito combinacional que toma como entradas códigos binarios y los representa en la salida de una forma directa, como por ejemplo salida en 7 segmentos o simplemente con un orden posicional. Un decodificador básico es el decodificador binario. Se define una decodificador binario n a 2n como una red lógica combinacional con n líneas de entrada y 2n señales de salida, como se ilustra a continuación:

Page 28: Circuitos Digitales

Área Electricidad MEL

Página 28 de 50

ESTRUCTURA DE CIRCUITOS DECODIFICADORES Un decodificador binario de 2 a 4 se ilustra en la siguiente figura:

1

23

4

56

9

108

12

1311

21

43

B

A

m0

m1

m2

m3

Se han representado las salidas como mí ya que como podrá deducirse del diagrama lógico cada salida corresponde a un mintermino de las entradas A y B. Dado esto también el decodificador binario se conoce como “generador de minterminos”, y obviamente se puede utilizar como generador de funciones lógicas. Adicionalmente a este tipo de circuito de tipo modular (integrado en un chip) se le agrega una entrada extra que es de habilitación (enable), esto es el circuito cumplirá su función en cuanto este habilitado, de lo contrario sus salidas estarán todas inactivas. En la siguiente figura se muestra un decodificador de 2 a 4 con entrada de habilitación:

Page 29: Circuitos Digitales

Área Electricidad MEL

Página 29 de 50

Nótese que el decodificador se implementó con puertas NAND, por lo que se obtiene en las salidas los min-términos complementados (esto es común en los circuitos comerciales). Si la entrada ENABLE está en 1 el circuito estará habilitado por lo que una de las salidas estará activa (como las salidas son complementos se entenderá como activa que una de las salidas está en 0 y el resto en 1), si ENABLE es 0 todas las salidas estarán en 1 (desactivadas). El diagrama simplificado y la tabla de verdad que se obtiene para el circuito anterior se muestran a continuación:

Decodificadores Comerciales o MSI Standard Se producen varios módulos decodificadores MSI Standard para diversos valores de n y diversas configuraciones de entradas para control de activación. En este punto mostraremos decodificadores de 2 a 4 y 3 a 8 fabricados por la Texas Instruments.

Ambos módulos están encapsulados en chips de 16 pines. El SN74LS139 incluye 2 decodificadores de 2 a 4 independientes. Nótese que en el SN74LS139 existe una entrada de habilitación para cada decodificador (G) que está complementada, por lo que un decodificador estará activo o habilitado cuando esta entrada sea 0 e inactivo cuando sea 1. En el SN74LS138 existen 3 entradas para habilitar el chip (G1, G2A, G2B) que deberán estar en la combinación 1,0, 0 para habilitarlo. (en anexos se entregan hojas de especificaciones de MSI estándar que se estudiarán en esta unidad y la siguiente).

Page 30: Circuitos Digitales

Área Electricidad MEL

Página 30 de 50

APLICACIONES DE DECODIFICADORES

Implementación de Funciones Lógicas Como se explico previamente, el decodificador es conocido como generador de mintérminos por lo que es dable utilizarlo en la generación de funciones lógicas. Una función lógica la podemos representar como suma de mintérminos o producto de maxtérminos y dado que un mintérmino es el complemento de un maxtérmino (ej el mintérmino A’BC’ corresponde a m2, si lo complementamos y aplicamos Morgan obtendremos A + B’ + C que corresponde a M2) existen varia combinaciones que permiten generar una función a través de un decodificador. Esto lo vemos con el siguiente ejemplo:

• Se tiene la función lógica de 3 variables f(X, Y, Z) = Σ m(0, 1, 4, 6, 7) que también la podemos expresar como Π M(2, 3, 5), esta se puede implementar de las siguientes formas:

a) Mediante un decodificador con salidas activas altas (mintérminos) y con una

compuerta OR que se representaría como f(X, Y, Z) = m0 + m1 + m4 + m6 + m7. b) Usando un decodificador con salidas activas bajas (mintérmino complementado o

maxtérmino) y una compuerta NAND; f(X, Y, Z) = (m0’ * m1’ * m4’ * m6’ * m7’ )’ Nota : la negación se está representando con la cremilla simple ‘.

c) Usando un decodificador con salidas activas altas con una compuerta NOR de la forma de obtener f(X, Y, Z) = (m2 + m3 + m5)’ = M2 * M3 * M5.

d) Usando un decodificador con salidas activas baja con una compuerta AND que en este caso se obtendrá f(X, Y, Z) = m2’ * m3’ * m5’ = M2 * M3 * M5.

Si utilizamos un decodificador SN74LS138N para obtener las funciones, dado que las señales son activas bajas, implementamos b) y d) de la forma que se ilustra:

Y015

Y114

Y213

Y312

Y411

Y510

Y69

Y77

A1

B2

C3

G16

~G2A4

~G2B5

U3

74LS138N

Y015

Y114

Y213

Y312

Y411

Y510

Y69

Y77

A1

B2

C3

G16

~G2A4

~G2B5

U4

74LS138N

U5

NAND5

U6

AND3

Expansión de Decodificadores Los decodificadores standard generalmente se tienen de la forma 2 a 4, 3 a 8 o 4 a 16 (24 pines), sin embargo muchas aplicaciones en el computador utilizan información de mas bits (32, 64, etc.)

Page 31: Circuitos Digitales

Área Electricidad MEL

Página 31 de 50

por lo que para utilizar decodificadores para palabras de gran cantidad de bits se combinan decodificadores para obtener decodificadores expandidos de 5 a 32, 6 a 64, etc. Como ejemplo consideremos el MSI SN74LS139N, que como se ilustró anteriormente corresponde a 2 decodificadores de 2 a 4, y convirtámoslo a un decodificador de 3 a 8. En general para provocar la expansión se conectan en paralelo las entradas de cada decodificador, y a ellas las variables de entradas menos significativas y con las variables de entrada más significativas se crea un circuito lógico que controle las los terminales ENABLE de forma de ir activando o desactivando cada uno de los decodificadores que participan. En el circuito que se muestra a continuación las entradas I01 e I02, que corresponden a los LSB, se conectan a las entradas del ambos decodificadores, y la entrada I03 (MSB) la conectamos a través de un inversor al pin de habilitación del decodificador superior y en forma directa al decodificador superior:

1Y04

1Y15

1Y26

1Y37

1A2

1B3

~1G1

U1A

74LS139N

2Y012

2Y111

2Y210

2Y39

2A14

2B13

~2G15

U1B

74LS139N

IO1

IO2

IO3

21

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Cuando las combinaciones de entradas van desde I03, I02, I01 = 000 hasta 011, estará habilitado el decodificador U1A, por lo que se irán activando sucesivamente Y0, Y1, Y2, Y3. Luego a partir de I03, I02, I01 = 100 hasta 111dado que I03 = 1 se desactivará U1A y se activará U1B. Una expansión un poco más compleja de 4 a 16 utilizando el SN74LS139N se muestra a continuación:

Page 32: Circuitos Digitales

Área Electricidad MEL

Página 32 de 50

A diferencia del caso anterior aquí se necesitaba utilizar las 2 entradas MSB para habilitar cada uno de los 4 decodificadores y se utilizó un quinto decodificador para generar las señales de habilitación y deshabilitación. Los decodificadores tienen muchas aplicaciones en la síntesis de redes digitales de conmutación, sin embargo su uso como decodificadores de direcciones en las memorias de los computadores y los dispositivos de entrada y salida es tal vez uno de los más importantes. En esta aplicación cada uno de los 2n dispositivos (celdas de memoria o puertos de entrada salida) tiene asignado un único número binario de n bits, o dirección, que permite distinguirlo de los demás dispositivos. Un computador designa un dispositivo especifico para que intervenga en una operación transmitiendo su dirección por n líneas de señal. Como se muestra en la figura:

Un decodificador n a 2n decodifica la dirección de n bits enviada por el procesador y procede a activar una de las 2n líneas de salida para tener acceso a uno de los dispositivos. Codificadores Realiza la función inversa a los decodificadores es decir toma señales de entradas no codificadas y entrega una salida codificada, generalmente del tipo de código binario. Un codificador podríamos definirlo como aquel módulo lógico combinacional que asigna un código de salida único (nº binario) a cada combinación de entrada aplicada. Codificador con entradas mutuamente excluyente Como en el caso de los decodificadores que solo permite solo una salida activa cuando el módulo está habilitado, consideremos un codificador que permita solo una de sus entradas activa; si se tienen 4 líneas de entrada la tabla de verdad resultante sería la siguiente:

Nótese que la salida corresponde al equivalente binario del subíndice de la entrada. Además visualmente puede deducirse cuando serán 1 las variables de salida A1 y A0, esto es:

A1 = X2 + X3 y A0 = X1 + X3 Por lo que para este codificador básico de 4 entradas y 2 salidas, con la condición de exclusión mutua en las entradas se tendrá el siguiente circuito:

.

Page 33: Circuitos Digitales

Área Electricidad MEL

Página 33 de 50

1

23

4

56

X1

X3

X2

A0

A1

Codificador con Prioridad En los módulos que se producen comercialmente, se encuentran los codificadores con prioridad, que a diferencia del codificador básico visto, permite que más de una entrada este activa entregando como salida el equivalente binario de la entrada con mayor prioridad que generalmente se asigna al subíndice mayor. Esto es si consideramos el codificador básico, y tenemos activas las entradas X1 y X2, en la salida se tendrá A1 = 1 y A0 = 0, que es el equivalente binario de 2 que corresponde al subíndice mayor de las entradas que están activas. Además se incluyen en este tipo de codificador 2 salidas extras Gs y Eo, la primera indica si hay de una o más entradas activas y la segunda cuando ninguna señal esta activa, obviamente estas salidas son complementarias, es decir Gs = Eo’ y viceversa. Con estas nuevas condiciones rediseñemos nuestro codificador básico agregando la resolución de prioridad, estructurado en la siguiente tabla de verdad: Tabla de verdad para un codificador 4 a 2 con prioridad

ENTRADAS SALIDAS X3 X2 X1 X0 A1 A0 Gs Eo 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0

Reduciendo por Karnaugh se obtienen las siguientes ecuaciones: A1 = X2 + X3 A0 = X3 + X1X2’ Eo = Gs’ Eo = (X1 + X2 + X3 + X4)’ Finalmente su diagrama lógico se muestra a continuación:

Page 34: Circuitos Digitales

Área Electricidad MEL

Página 34 de 50

1

23

4

56

21

43

1

23

Gs

Eo2

31

9

108

12

1311

X0

X1

X2

X3

A1

A0

El alumno podrá ejercitarse generando un codificador con prioridad inversa, esto es que cuando exista más de una entrada activa genere como salida el código binario de la entrada de subíndice menor. Codificadores Comerciales o MSI Standard Los codificadores más utilizados de la familia TTL corresponden a los que se ilustra, y cuyas hojas de trabajo se entrega en anexo:

A9

B7

C6

D14

313

41

52

212 111

85 74 63

910

74LS147N

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

74LS148N

E0

El SN74LS147 es un codificador con prioridad del tipo 10 a 4 utilizado principalmente para codificar a BCD, por lo que no trae entradas o salidas extras, ya que en estas aplicaciones no se requiere expandir, recuerde que para obtener código BCD se requieren 4 salidas solamente. Ud. podrá darse cuenta además que no requiere la entrada ‘0’ ya que si no hay entradas presentes (una entrada presente significa un ´0´ en alguna de las entradas, esto debido al inversor presente), la salida será 0 (en realidad como esta complementada se tendrá 1111) Por su parte el SN74LS148 sigue el esquema del codificador diseñado previamente agregándosele además la entrada de habilitación similar a los decodificadores, por lo que en forma análoga a los decodificadores, también se puede expandir este tipo de codificador. Para aclarar lo de las entradas y salidas complementadas planteemos el siguiente ejemplo utilizando el SN74LS148: Cual es el código de salida ( Eo, Gs, A2, A1, A0) en las condiciones de entrada siguiente: (EI, 7, 6, 5, 4, 3, 2, 1, 0) = (0, 1, 0, 1, 0, 1, 0, 1, 1) Solución: Puede chequear tabla de verdad en la hoja de trabajo del decodificador. La entrada así expresada significa que EI = 0 (señal de habilitación), por lo que el chip está habilitado, además están activas todas las entradas con un ‘0’, es decir entradas 6, 4, 2, lo que implica que Gs es verdadero ya que

Page 35: Circuitos Digitales

Área Electricidad MEL

Página 35 de 50

hay más de una entrada activa y dada la negación que tiene esta salida presentará un ‘0’ por consecuencia Eo será falsa y como también está negada presentará un ‘1’. La entrada activa de mayor índice es la 6, por lo que a la salida A2, A1, A0 representarán al código 6 en binario pero negado, en definitiva la respuesta a la condición enunciada será: (Eo, Gs, A2, A1, A0) = (1, 0, 0, 0, 1) Si el problema hubiese sido planteado en forma inversa por ejemplo bajo que condiciones de entrada se obtendrá la salida (Eo, Gs, A2, A1, A0) = (1, 0, 0, 0, 1) la respuesta debería ser: Dada estas condiciones A2, A1, A0 = 0, 0, 1 y como las salidas están complementadas el subíndice de la entrada activa más prioritaria es 110 que corresponde a la entrada 6, el resto de las entradas puede ser 0 o 1 y las represento con una condición “no importa”, de este modo la respuesta es: (EI, 7, 6, 5, 4, 3, 2, 1, 0) = (0, 1, 0, X, X, X, X, X, X) Expansión de Codificadores Así como en el caso de un procesador que controla varios periféricos a través de una dirección binaria puede entregar una señal de selección a uno de estos a través de una salida de un decodificador, igualmente los periféricos pueden enviar al procesador una señal de solicitud de atención a través de un codificador a fin de que el procesador traduzca la señal y determine la dirección del periférico que debe atender. El esquema sería el siguiente:

Cuando se requiere tener mayor cantidad de líneas de las que provee un codificador estándar se recurre a expandirlos conectando codificadores en cascada. Se describe a continuación el uso de 2 SN74LS148 para formar un codificador 16 a 4.

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

74LS148N

E0

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

74LS148N

E0

74LS08N

4

56

74LS08N

9

108

74LS08N

12

1311

S2

S1

S0

S3

I08'I09'I10'I11'I12'I13'I14'I15'

I00'I01'I02'I03'I04'I05'I06'I07'

El decodificador superior tiene las entradas MSB con respecto al inferior.

Page 36: Circuitos Digitales

Área Electricidad MEL

Página 36 de 50

Aquí al contrario del decodificador se unen las salidas correspondientes de cada codificador a través de una puerta AND (si las salidas no estuvieran complementadas debiera usarse una puerta OR) generando las 3 posiciones menos significativas de la salida, la posición MSB de la salida (S3) se obtiene directamente de Gs del codificador superior. Note que el codificador inferior solo se habilita cuando Eo del superior está en 0, y esto ocurre cuando ninguna entrada del codificador superior esta activada. En cambio el superior siempre está activado. Por ejemplo supongamos que se activa la entrada I13 (en realidad entrada 5 del codificador superior), al tener una entrada presente la señal Eo de este codificador es 1, lo que deshabilita el codificador inferior ( todas sus salidas quedan en 1) en tanto Gs del superior estará en 0 porque tiene entradas presente, por lo que S3 = 0. La entrada 5 activa del codificador superior producirá la salida A3A2A1 = 010 ( que corresponde al código 5 negado) que pasadas por las puertas AND se operarán con las correspondientes salidas del codificador inferior que están en 1, por lo que S2, S1, S0, tendrá los valores de A2, A1, y A0 del codificador superior. En definitiva el código de salida S3 S2 S1 S0 = 0010, que si lo complementamos corresponde a 13 (1101). Una expansión un poco mas complicada utilizando 4 SN74LS148 se muestra en la figura:

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

E0

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

E0

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

E0

9

7

6

14

13

1

2

12

11

10

4

3

5

15

0

2

3

4

5

6

7

~EI

A0

A1

A2

1

GS

E0

9

10

12

13

8

1

2

4

5

6

9

10

12

13

8

1

23

4

56

S0

S1

S2

S3

S4

El único cambio que tiene con el anterior reside en la generación de S3 y S4 en que se hace el producto del Gs MSB con los correspondientes de los inmediatamente siguientes.

Page 37: Circuitos Digitales

Área Electricidad MEL

Página 37 de 50

Biestables y Flip Flop Lo estudiado en las unidades previas e implementaciones de circuitos lógicos realizados han correspondido a lógica combinacional, esto es, las salidas se caracterizaban por ser función solamente de las variables de entrada. En este y el siguiente capítulo nos referiremos a los circuitos secuenciales que ha diferencia de lo anterior las salidas son función tanto de las entradas como del estado del circuito. Tanto los circuitos combinacionales como los secuenciales están constituidos por puertas lógicas. El esquema básico de un circuito secuencial es como el que se muestra en la figura:

Se aprecia que las entradas al circuito corresponden a entradas externas y el estado de este, (Estado Presente), que a su vez es una salida realimentada. Por cierto las salidas corresponden a las salidas externas y el estado siguiente del circuito (Estado Futuro). El concepto de estado presente y futuro conlleva necesariamente a que el circuito deba contar con la capacidad de “recordar” su estado, es por lo cual la realimentación del estado se ha graficado como un bloque de memoria. En esta primera parte no referiremos a los elementos que constituyen este bloque de memoria y que corresponden a dispositivos electrónicos conocidos como biestables y se evolución hasta llegar a los más conocidos como Flip-Flops. Biestables Como se deduce del nombre este circuito electrónico presenta 2 estados estables. Véase la siguiente figura en que se han conectado 2 inversores y una forma alternativa de graficarlos:

21

4 3

65

89

QQN

IO3

IO1

Q y QN corresponden a salidas. Se puede apreciar que si el inversor superior tiene salida 0 el inferior tendrá salida 1 y como la salida de este último es la entrada al inversor superior el circuito permanecerá indefinidamente en ese estado. Ahora si por algún momento conectamos brevemente una señal correspondiente a un 1 lógico a la entrada del inversor inferior este reaccionara entregando un 0 a la salida y por consecuencia el inversor superior tomará el estado 1 y permanecerá en ese estado indefinidamente. Por tanto el circuito mostrado muestra 2 estados estables en el tiempo, y además las 2 salidas que graficamos Q y QN son complementarias entre sí.

CIRCUITOSECUENCIAL

Memoria

Entradas Salidas

EstadoPresente

EstadoFuturo

Page 38: Circuitos Digitales

Área Electricidad MEL

Página 38 de 50

El circuito al que hicimos referencia se conoce como cerrojo básico (latch ) y es pese a su sencillez uno de los circuitos más importantes de la electrónica digital pues constituye el elemento básico de memoria . Los biestables que estudiaremos, que en si son circuitos secuenciales constituidos por puertas lógicas capaces de almacenar un bit, que dicho de paso es la información binaria más elemental, los clasificaremos según el siguiente cuadro:

Biestables Asíncronos. Como asíncronos se conocen los biestables que reaccionan al cambio de las entradas en cualquier momento, a diferencia de los síncronos que reaccionan a las entradas en momentos determinados por una señal de reloj, como veremos más adelante. Biestable RS Un cerrojo como el que se mostró previamente no es de tanta utilidad si no cuenta con entradas, por lo tanto los cerrojos prácticos se realizan con puertas inversoras del tipo NOR o NAND. El cerrojo implementado en la figura con puertas NOR corresponde al cerrojo tipo R-S

El que puede también ser representado por puertas NAND, solo que en este caso se toman las entradas negadas:

2

31

5

64

R

S

Q

QN

IO3

IO1

1

23

4

56

IO2

IO4

Page 39: Circuitos Digitales

Área Electricidad MEL

Página 39 de 50

La tabla de verdad que caracteriza a un biestable RS es la siguiente:

R S Qn Qn+1 0 0 0 0 (Qn) 0 0 1 1 (Qn) 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 NOR NAND 1 1 0 X 0 1 1 1 1 X 0 1

Donde Qn y Qn+1 representan los estados presente y futuro respectivamente. El estado futuro en la combinación RS = 11 se ha representado por una X que corresponde a 0 si la implementación es con puertas NOR y 1 si es con compuertas NAND. Además, como se explicó en clases la combinación RS = 11 no está permitida en el cerrojo RS por cuanto pese a estabilizarse las salidas no quedan complementadas. Las letras para denominar este biestable vienen de Set, que es cuando el biestable asume el valor 1, y Reset que asume valor 0.

Biestable J-K Un biestable mejorado al RS, que no tiene el problema de estados no permitidos es el JK que está implementado en base a un RS de la forma que muestra la figura siguiente:

Que presenta la siguiente tabla de verdad:

J K Qn Qn+1 0 0 0 0 (Qn) 0 0 1 1 (Qn) 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 (Qn’) Niega estado 1 1 1 0 (Qn’) Niega estado

1

23

4

56

9

108

12

1311

IO1

IO2IO3

IO4

S

R

J

K

Q

Q

Q

Page 40: Circuitos Digitales

Área Electricidad MEL

Página 40 de 50

Biestable T Este biestable como tal no se fabrica y generalmente se convierte alguno de los biestables producidos y se los configura a que respondan a la siguiente tabla de verdad:

T Qn Qn+1 0 0 0 0 1 1 1 0 1 1 1 0

Por ejemplo un biestable JK configurado como se muestra se obtiene un T:

Biestables Síncronos Una dificultad que presentan los biestables asíncronos es que reaccionan al más leve cambio que se produzca en sus entradas, considerando que estas provienen de circuitos combinacionales que debido al retardo asociado a las compuertas lógicas pueden producir cambios u oscilaciones en sus salidas previo a alcanzar el valor estable deseado, es que surgen los biestables síncronos o sincrónicos, que a diferencia de los anteriores solo reaccionarán cuando se tenga presente una señal de sincronismo conocida comúnmente como reloj o clock . La señal de reloj es análoga a una señal de habilitación, como las que se vieron en el estudio de circuitos msi . Entre los primeros biestables síncronos que veremos están los conocidos como activados por nivel y que surgen a partir de un biestable asíncrono en que se agrega un nivel adicional de puertas, comandadas estas últimas por la señal de sincronismo. Biestable RS activado por nivel Su esquema es el mostrado en la figura:

Su comportamiento es similar al RS asíncrono, es decir la tabla de verdad es la misma, y solo se diferencia porque reaccionará si la señal de clock es 1 lógico. Si la señal de reloj está en cero cualquier cambio que se produzca en las señales de entrada no afectarán el estado del biestable ya que las señales de entrada a las puertas NOR están en 00, y de acuerdo a la tabla de verdad del RS con 00 el estado futuro es el mismo que el presente.

J

K

Q

Q

T

1

23

4

56

IO5

IO6

IO7

Clock

S

R R

S

2

31

5

64 Q

QIO8

IO9

Page 41: Circuitos Digitales

Área Electricidad MEL

Página 41 de 50

Biestable JK activado por nivel Se obtiene de la misma forma que el RS agregando las consiguientes puertas a las entradas J y K, comandadas por la señal de reloj. Por supuesto su tabla de verdad es la misma que la del JK asíncrono. Biestable D activado por nivel Este nuevo biestables que se está introduciendo obedece a la siguiente tabla de verdad, y dado que es síncrono se incluye en dicha tabla la señal de reloj C:

D C Qn Qn+1 0 0 0 0 (Qn) 0 0 1 1 (Qn) 0 1 0 0 0 1 1 0 1 0 0 0 (Qn) 1 0 1 1 (Qn) 1 1 0 1 1 1 1 1

Nótese que para este biestable la salida es siempre igual a la entrada, estando la señal de reloj presente. Generalmente la entrada D se asocia a dato ,.dada la característica descrita. Si bien estos biestables síncronos mejoran el desempeño de los asíncronos también tienen sus limitaciones. Una de las más importantes es que son dependientes del ancho del pulso de reloj, esto es, si se tienen biestables síncronos en cascada y se tiene un pulso de reloj ancho es posible que en un pulso de reloj se produzcan transiciones en más de uno de los biestables de la cascada, cuando lo que se requiere es que cambie solo un biestable en cada pulso de reloj. Ahora si para solucionar lo anterior se restringe a un pulso de ancho muy bajo puede que el biestable no reconozca las entradas y por tanto no asuma el estado correcto. Para independizar al biestable ancho del pulso de reloj surgen los biestables sincrónicos activados por flanco o Flip-Flops.

El Flip-Flop Maestro Esclavo ( Master Slave ) Un primer paso para solucionar las limitaciones de los biestables sincrónicos activados por nivel es la aparición de los Flip Flop maestro esclavo, que en verdad están constituidos por 2 biestables activados por nivel como se muestra en la figura:

El ejemplo ilustrado es extensivo para los tipos JK, D y T. El funcionamiento es sencillo, note que el primer biestable se habilita con la señal del reloj y el segundo con el complemento de este. Así cuando el reloj esté presente (1) las señales de entrada

S

R

Q

Q

Clock

Maestro Esclavo

Page 42: Circuitos Digitales

Área Electricidad MEL

Página 42 de 50

son captadas por el biestable maestro y este asumirá su nuevo estado, en el intertanto el biestable esclavo está deshabilitado (su señal de reloj está en 0). Cuando la señal de reloj baja a 0, el segundo biestable se habilita recibiendo como entradas las señales que adoptó el maestro las que transferirá a sus salidas, que en definitiva son las salidas del maestro esclavo. La transición de los Flip Flop maestro esclavo se produce en los cantos de bajada de las señal de reloj. Una de las limitaciones que tiene el flip flop maestro esclavo es que las entradas deben permanecer fijas durante el ciclo de reloj ya que este tiene la propiedad de captar 1, esto es si durante un ciclo de reloj una de las entradas tiene una breve transición de 0 a 1 está transición es captada por el biestable maestro y la asume a su salida aunque al término del ciclo de reloj esta entrada haya bajado a cero, llevándolo a un estado no esperado. Esta limitación es solucionado por los flip flops activados por flanco que es lo que veremos en seguida y que en lo sucesivo serán usados en el resto del curso. Flip Flops Activados por flanco Estos están diseñados para efectuar la transición de estados en los momentos que la señal de reloj sube a 1 o baja a cero, así tendremos flip flop activados por canto de subida o canto de bajada. Además se considera las entradas que estén presentes en ese momento. Como ya se ha repetido, las tablas de verdad de cada tipo de biestable es la misma En la figura se muestra el circuito de un FF JK activado por flanco de bajada:

Existen muchos circuitos alternativo implementados por los distintos fabricantes y para los distintos tipos de flip flop. En la figura siguiente se muestra 2 flip flop comerciales, del tipo activado por flancos:

2

31

5

64

1

23

4

56

9

108

12

1311

1

2

13

12

3

4

5

6

IO1

IO2

Reloj

J

K

Q

Q

74LS107N

1J1

~1Q2

12

1K4

~1CLR13

1Q3

1D2

1Q5

~1Q6

~1CLR1

3

~1PR4

74LS74N

Reloj

Reloj

Page 43: Circuitos Digitales

Área Electricidad MEL

Página 43 de 50

Ambos forman parte de un chip que contiene 2 flip flop del mismo tipo, por lo cual le precede un 1 al tipo de flip flop. De la figura se deben hacer los siguientes alcances:

• El símbolo “>” en la señal de reloj indica que el FF es disparado por flanco • La señal negada en la entrada del reloj en el primer FF indica que la transición se

produce en el canto de bajada, por lo tanto el FF tipo D es disparado en el canto de subida.

• Las entradas adicionales que se muestran como CLR (clear) y PR(preset) son agregadas por el fabricante para poder inicializar los FF y son independientes de la señal de reloj, es decir en cualquier momento si se pone un 0 (nótese que están negadas) en la entrada CLR, el FF asume el estado de reset (Q = 0). Si la entrada PR se activa con 0, el FF adoptará el estado de set (Q = 1).

El resumen de los biestables vistos se presentan en la siguiente tabla, la que se utilizará en el diseño y análisis de sistemas secuenciales, aquí se entrega la tabla característica de cada biestable como su tabla de excitación. La primera de ellas muestra que estado asumirá el biestable con la combinación de entrada y la segunda se muestra las entradas requeridas para pasar de un estado a otro:

FLIP – FLOP

S Q

R Q

cp

Tabla Característica

S R Qn+1

0 0 Qn 0 1 0 1 0 1 1 1 NP

Tabla de Excitación

Q Qn+1 S R 0 0 0 X 0 1 1 0 1 0 0 1 1 1 X 0

D Q

Q cp

Tabla Característica

D Qn+1

0 0

1 1

Tabla de Excitación

Q Qn+1 D 0 0 0 0 1 1 1 0 0 1 1 1

J Q

K Q

cp

Tabla Característica

J K Q n+1

0 0 Qn 0 1 0 1 0 1 1 1 Qn

Tabla de Excitación

Q Qn+1 J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0

T Q

Q

Tabla Característica

T Qn+1

0 Qn

1 Qn

Tabla de Excitación

Q Qn+1 T 0 0 0 0 1 1 1 0 1 1 1 0

Page 44: Circuitos Digitales

Área Electricidad MEL

Página 44 de 50

HERRAMIENTAS PARA CIRCUITOS SECUENCIALES Se enuncian en este apartado elementos que permitan diseñar y/o analizar circuitos secuenciales. Diagramas de Estados Esta es una herramienta gráfica bastante simple para efectos de diseño y análisis de circuitos secuenciales. En este se representan los estados del circuito secuencial mediante círculos y los eventos mediante flechas, un evento representa un cambio en la entrada del sistema, un evento en si puede o no generar transición de un estado a otro. A cada evento se acompaña la entrada y salida asociada, de la forma X/Z. Donde X representa la o las entradas y Z la o las salidas.

Tabla de Estados

Es una tabulación generada a partir de un diseño en diagrama de estado, o bien es la fuente para generar un diagrama de estado a partir del análisis de un circuito secuencial. En este se muestra el estado presente del circuito, y el estado futuro dependiendo de las entradas. Para acompañar más didácticamente el estudio, se plantea el siguiente ejemplo para desarrollar un circuito secuencial. EJEMPLO . Se quiere implementar un circuito secuencial sincrónico que permita detectar la secuencia de una entrada X, tal que la salida Z sea 1 cuando la entrada sea 101. Esto es, se tiene una señal X que va a estar cambiando en el tiempo, la que se va a muestrear en 3 ciclos de reloj, de tal modo que si en un determinado ciclo está en 1, en el siguiente está en 0, y en el siguiente en 1, el circuito debe entregar un 1 en la salida Z, en cualquier otro caso Z = 0.

Esto se puede representar por el siguiente diagrama: Diagrama de Bloques

Diagrama de Estados A partir del planteamiento se puede estructurar el siguiente diagrama de estados cuya explicación se detalla a continuación:

A

B

Entradas/Salidas

Entradas/salidas

Evento que no genera transición

Evento que genera transición

CIRCUITOSECUENCIAL

Memoria

X ZEntrada Salida

EstadoPresente

EstadoFuturo

Page 45: Circuitos Digitales

Área Electricidad MEL

Página 45 de 50

A representa el estado inicial, en este estado aún no se reconoce el primer dígito de la secuencia, y deberá permanecer en este estado mientras no aparezca un 1. Si estando en A aparece un 1, el circuito debe pasar a un nuevo estado, puesto que ya se ha reconocido el primer dígito de la secuencia. Este nuevo estado está representado en el estado B. Si estando en el estado B, aparece un 0, necesariamente se requiere pasar a un nuevo estado, C, en nuestro caso, que representa el estado en que el circuito ya ha reconocido 2 de los 3 dígitos de la secuencia. Nótese que si estando en B, y el siguiente valor de la entrada es un 1, podría pensarse que ya no se cumplió la secuencia e ir al estado inicial, pero este nuevo 1 podría ser el primer dígito de una nueva secuencia, así por tanto, estando en B y un 1 en la entrada, se debe permanecer en B. La salida Z para todos los casos vistos es 0 dado que aún no se ha detectado la secuencia requerida. Ahora si el circuito está en el estado C, y se recibe un 0 definitivamente no se cumple la secuencia y se vuelve al estado inicial A, entregando Z = 0. Por el contrario si la entrada es 1, se cumpliría la secuencia y Z = 1, volviendo al estado inicial para seguir analizando las siguientes entradas. A partir del diagrama obtenido se procede a estructurar la tabla de estados Tabla de Estados

Estado Futuro , Z ESTADO PRESENTE X = 0 X = 1

A A, 0 B, 0 B C, 0 B, 0 C A, 0 A, 1

En esta se tabulan todos los estados del diagrama como estado presente, y se procede a completar los estados futuros de acuerdo a los eventos generados en la entrada. Así si tomamos la segunda línea (estado presente B), de acuerdo al diagrama se tiene que si la entrada X = 0 se pasa al estado C con salida 0, y si X = 1 se permanece en este estado con salida 0. El siguiente paso del desarrollo consiste en la Asignación de Estados , que consiste en asignarle un código binario al estado. De acuerdo al conocimiento del álgebra binaria, sabemos que para representar 3 códigos se requieren 2 variables lógicas, con 2 variables lógicas se pueden tener 4 estados correspondientes al 00, 01, 10 y 11. Para nuestro problema en particular ocuparemos solo 3 de estos. El número de variables lógicas requeridas para designar los estados determina el número de biestables necesarios para implementar el circuito, por lo tanto se ocuparán 2 flip flops.

A

B

C

1/00/0

1/1

0/0

1/0

0/0

Page 46: Circuitos Digitales

Área Electricidad MEL

Página 46 de 50

Una vez determinado el número de flip flops, se debe proceder a elegir el tipo, por simplicidad, en este primer ejemplo utilizaremos flip flops tipo D, aunque se puede implementar con cualquiera de los FF sincrónicos vistos. Una vez determinado el tipo de flip flop se procede a estructurar la Tabla de Transición, que presenta la siguiente estructura:

Tabla de Transición En esta se tabulan los estados codificados separando las variables que componen el código de los estados presentes y futuros. En nuestro caso Qn

1 y Qn0 representan las variables de los estados

presentes y Qn+11 y Qn+1

0 la de los estados futuros. Al final de la tablas se agregan las columnas de las entradas requeridas para los Flips Flops que almacenarán dichas variables. Estado Presente Estado Futuro

X = 0 X = 1 Entradas Flip - Flops X = 0 X = 1

Qn1 Qn

0 Qn+11 Qn+1

0 Qn+11 Qn+1

0 D1 D0 D1 D0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 El llenado de la tabla, en lo que respecta a los estados presentes y futuros, es similar a la tabla de estado donde cada estado es representado por su código. La columna de las entrada a los flip flops se obtiene desde la tabla de excitación del flip flop utilizado para implementar el circuito secuencial del siguiente modo:

• En el estado A donde Qn1 = 0 y Qn

0 = 0, si la entrada X = 0, el estado futuro será Qn+11 = 0

y Qn+10 = 0, lo que significa, a partir de la tabla de excitación del FF – D, que para pasar del

estado presente 0 a estado futuro 0 D = 0, de esta forma la columna D1 y D0 para cuando X = 0 deben ser 0.

• Estando en el mismo estado A, si la entrada X = 1 el estado futuro es B que corresponde a Qn+1

1 = 0 y Qn+10 = 1, esto es Qn

1 debe pasar de 0 a Qn+11 = 0 lo que implica que D1 = 0,

Qn0 debe pasar a Qn+1

0 = 1 lo que de acuerdo a la tabla de excitación se logra con D0 = 1. De este modo las columnas D1 y D0 deben ser 0 y 1 respectivamente para la combinación de entrada Qn

1 = 0, Qn0 = 1 y X = 0.

Una vez se a completado las columnas de entradas a los flip flops para cada una de las combinaciones de entrada, estas se vacían a mapas K, para obtener las funciones de entrada a los FF. Las variables de entrada para el mapa K la constituyen la entrada externa X, y las variables del estado presente Qn

1 y Qn0.

Page 47: Circuitos Digitales

Área Electricidad MEL

Página 47 de 50

Finalmente se Mapea la salida Z, que toma el valor 1 cuando se está en el estado C y la entrada es 1, esto es Qn

1 = 1, Qn0 = 0 y X = 1.

Con lo obtenido se implementa el circuito que se muestra:

Ejemplo . Implementar un circuito secuencial sincrónico correspondiente a un contador módulo 4. Solución . Un contador es un circuito secuencial que no tiene entradas aparte del reloj, y sus salidas corresponden a la de los FF que componen el contador. En realidad lo que cuenta son los pulsos de reloj, esto es cambia de estado por cada pulso. Un diagrama de estado para un contador módulo 4 es el que se ilustra a continuación;

A B

D C

Page 48: Circuitos Digitales

Área Electricidad MEL

Página 48 de 50

La tabla de estados sería: ESTADO PRESENTE ESTADO FUTURO

A B B C C D D A

Asignamos estados de manera de tener la secuencia binaria 00, 01, 10, 11. Nuevamente se requieren 2 FF para representar los 4 estados posibles. Usaremos esta vez FF tipo JK. Procedemos con el siguiente paso generando la tabla de transición:

Estado Presente Estado Futuro Entradas FF Qn

1 Qn0 Qn+1

1 Qn+10 J1 K1 J0 K0

0 0 0 1 0 ·# 1 # 0 1 1 0 1 # # 1 1 0 1 1 # 0 1 # 1 1 0 0 # 1 # 1

# = don`t care En este caso solo se tiene como entradas a los mapas K, las variables del estado presente, eso si se debe obtener 4 mapas debido a que cada FF –JK tiene 2 entradas.

Obteniéndose por minimización: J1 = Qn

0 , K1 = Qn

0 , J0 = 1 y K0 = 1 que llevado a un diagrama lógico se tendrá: El circuito inferior es una implementación alternativa utilizando FF tipo D, la que el alumno podrá comprobar.

1J1

~1Q2

12

1K4

~1CLR13

1Q3

2J8

~2Q6

9

2K11

~2CLR10

2Q5

1_Logico

Reloj

1D2

1Q5

~1Q6

~1CLR1

3

~1PR4

2D12

2Q9

~2Q8

~2CLR13

11

~2PR10

1

23

Clock

Page 49: Circuitos Digitales

Área Electricidad MEL

Página 49 de 50

Otro . Se quiere implementar un contador sincrónico módulo 4 bidireccional, dependiendo de una variable de entrada M. Solución. Un contador de este tipo es conocido comercialmente como up/down counter, su funcionamiento es similar a lo diseñado previamente con la salvedad que dependiendo de la entrada M, en vez de ir avanzando en los estados retrocede. Supondremos en este caso que con M = 0 la cuenta es ascendente y con M = 1 es descendente. El diagrama de estado sería el que se muestra:

Su tabla de estado sería: Estado Futuro , Z

ESTADO PRESENTE M = 0 M = 1 A B D B C A C D B D A C

Asignamos los estados por el código binario natural, A = 00, B = 01, C = 10 y D = 11, y utilizaremos FF tipo T, disparados por canto de bajada. La tabla de transición sería: Estado Presente Estado Futuro

M = 0 M = 1

Entradas Flip - Flops M = 0 M = 1

Qn1 Qn

0 Qn+11 Qn+1

0 Qn+11 Qn+1

0 T1 T0 T1 T0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1

A B

D C

M = 1M = 0

M = 0

M = 0

M = 0

M = 1

M = 1

M = 1

Page 50: Circuitos Digitales

Área Electricidad MEL

Página 50 de 50