A-1 Appendix A - Digital Logic Unidad 3: Circuitos digitales. Diapositivas traducidas del libro Principles of Computer Architecture Miles Murdocca and Vincent Heuring Appendix A: Digital Logic
A-2 Appendix A - Digital Logic Indice general Lógica Combinatoria: Definiciones Algebra de Boole Componentes digitales Lógica Secuencial: Maquina de Estados Finitos FLIP_FLOPS: Circuito S-R sincrónico Circuito D Flip-Flop Circuito J-K Flip-Flop Circuito Master-Slave Flip-Flop Registros Contadores
A-3 Appendix A - Digital Logic Objetivos generales El objetivo de este tema es abordar los principios básicos de la lógica digital, que pueden aplicarse en el diseño de una computadora digital. Lograr el entendimiento de los principios de la Lógica combinatoria y de la Lógica Secuencial, utilizadas en el diseño de circuitos lógicos digitales, a partir de los cuales es posible construir integramente una computadora. Estos circuitos implementan las operaciones básicas de mas bajo nivel, de las cuales depende el funcionamiento de una computadora.
A-4 Appendix A - Digital Logic Algunas definiciones Unidad lógica Combinatoria: un circuito lógico digital en el cual las decisiones lógicas se toman exclusivamente en base a las combinaciones de las entradas. Ejemplo: un sumador. Máquina de estado finito (lógica secuencial): Un circuito que posee un estado interno y cuya salida es función de las entradas corrientes y de la historia previa de sus entradas.
A-5 Appendix A - Digital Logic Logica Secuencial: Modelo clásico de una Máquina de Estados Finitos Una MEF está compuesta de una unidad lógica combinacional y elementos de memoria (llamados flip-flops). i i : líneas externas de entrada D i : entradas de los elementos de memoria, conectadas a las salidas internas Q i : bits de estado, entradas internas Señal de sincronismo: D i ->S i ->Q i
A-6 Appendix A - Digital Logic Máquinas de Estado Finito (I) Las máquinas de estado finito basan su funcionamiento en los AUTÓMATAS FINITOS, son entes matemáticos que permiten dar un soporte teórico a numerosos desarrollos relacionados con la informática (para nuestra asignatura, los circuitos secuenciales). Inicialmente se puede ver al autómata como una "caja negra" con entradas y salidas, cuyo comportamiento se observan en instantes sucesivos discretos: t ; t1 ; t2 ;... Un estímulo o entrada E(t) en el instante t produce una respuesta S(t+1) en el instante (t+1), respuesta que dependerá del estímulo o entrada E(t) y de una función del tiempo H(t): S(t+1) = F( H(t), E(t) )
A-7 Appendix A - Digital Logic Máquinas de Estado Finito (II) H(t) está completamente definida por la historia previa del autómata. Existe un número finito de elementos de memoria, por lo tanto H(t) no puede tomar más que un número finito de valores distintos llamados ESTADOS INTERNOS DEL AUTÓMATA. S(t+1) = F( H(t), E(t) )
A-8 Appendix A - Digital Logic Máquinas de Estado Finito (III) Funciones de transición Si al estado del autómata en el instante t se lo denomina Q(t) entonces: 1) S(t+1) = F( Q(t), E(t) ) Lo cual indica que la salida depende del estado en el instante t y de las entradas E(t). El estado posterior a los estímulos o entradas, Q(t+1) dependerá también de E(t) y de Q(t); o sea: 2) Q(t+1) = G( Q(t), E(t) ) Las ec. 1) y 2) permiten calcular paso a paso el comportamiento del autómata, cualquiera sea la sucesión de estímulos que pueda recibir en un instante t. Las funciones F y G o FUNCIONES DE TRANSICIÓN pueden representarse en forma de tablas o de diagramas:
A-9 Appendix A - Digital Logic Máquinas de Estado Finito (IV) Si al estado del autómata en el instante t se lo denomina Q(t) entonces: Ejemplo 1: autómata cuyo comportamiento es el siguiente: Q(t+1) = E(t) E Q (t) S Q(t+1) E/S 1/0 0 0 0 0 1 0 0 1 0 1 1 0 0/0 0 0/1 1 1/1 Q(t+1) 1 1 1 1
A-10 Appendix A - Digital Logic Máquinas de Estado Finito (V) Ejemplo 2: Autómata para suma binaria en serie. Las entradas indican las parejas de números a sumar, la salida S presenta la suma de los números binarios introducidos, los estados posibles (0 o 1) indican, en cada caso) el arrastre producido. Entradas Estado Actual Salida Estado Siguiente A B Q(t) S Q(t+1) 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
A-11 Appendix A - Digital Logic FLIP-FLOPS Los elementos de memoria en un circuito secuencial se denominan flip-flops. Un flip-flop posee una o dos entradas, (p. ej., set y reset, en el Flip-Flop SR). Un flip flop posee dos salidas (Q y Q ), una para el valor sin complementar y otra para el valor complementado almacenado en él. Un flip-flop se construye a partir de compuertas combinacionales (NAND, NOR) cuyas salidas realimentan las entradas
A-12 Appendix A - Digital Logic Representación de Flip-Flop SR o SC Tabla de verdad: muestra el comportamiento del estado futuro en función de las entradas y el estado presente. Se utiliza para obtener la ecuación característica. Tabla característica: también muestra el comportamiento del estado futuro pero de una manera mas compacta que la tabla de verdad. Ecuación característica: es otra forma de describir el comportamiento del estado futuro, pero a menudo mas útil durante el análisis de circuito porque puede ser utilizada como parte de una expresión booleana. Tabla de excitación: se obtiene de la ecuación característica. Muestra las entradas que se necesitan para pasar de un estado a otro. Se utilizan en la síntesis de circuitos secuenciales.
A-13 Appendix A - Digital Logic Compuerta NOR con tiempo de retardo El tiempo requerido para que una señal se propague desde las entradas de una compuerta lógica hasta sus salidas no es nulo. El retardo entre la E/S es la base de funcionamiento de un elemento importante de la memoria, el flip-flop. Este no se indica en los circuitos, pero su presencia está implícita
A-14 Appendix A - Digital Logic Circuito biestable Flip-Flop S-R (I) Es un conjunto de compuertas lógicas que mantiene estable el estado de la salida aun luego de que las entradas pasen a un estado inactivo. Salida de un flip-flop queda determinada tanto por las entradas actuales, y por la historia de las mismas. Se puede utilizar para almacenar un bit de información, sirve como bloque constructivo para memorias de computadoras. Es necesario un nuevo circuito combinacional en el que se pueda lograr este comportamiento. Un flip flop se puede utilizar para almacenar un bit de información.
A-15 Appendix A - Digital Logic Circuito biestable Flip-Flop S-R(II) El flip-flop tiene dos estados útiles. Cuando Q =1 y Q = 0, se encuentra en el estado set (o estado 1). Cuando Q = 0 y Q = 1, se encuentra en el estado clear (o estado 0). Las salidas Q ( salida normal) y Q (salida negada) El estado binario del flip-flop se toma con el valor de la salida normal (Q). Compuerta 2 Compuerta 1
A-16 Appendix A - Digital Logic Flip-Flop SR o SC (I) A continuación se presenta la tabla de funcionamiento (tabla de estados) de este biestable: S C Q t Q t+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0? 1 1 1?
A-17 Appendix A - Digital Logic Representaciones de Flip-Flop SR o SC Tabla de estado
Flip-Flop SR: Tabla de excitación Consiste en definir qué valor debe ingresarse por las entradas A-18 Appendix A - Digital Logic del biestable para que un cierto cambio de estados sea posible, Se utilizan en la síntesis de circuitos secuenciales. : Q t Q t+1 R S Explicación 0 0 x 0 Observando la tabla de funcionamiento hay dos situaciones en que se verifica este cambio de estado: en ambos casos por S ingresa un 0 y por R puede ingresar 1 o 0. Esto implica que independientemente del valor de R (x) por S debe ingresar un 0 0 1 0 1 Observando la tabla de funcionamiento se verifica que hay una sola situación en que se verifica este cambio de estado: Cuando por R ingresa un 0 y por S ingresa un 1 1 0 1 0 Observando la tabla de funcionamiento se verifica que hay una sola situación en que se verifica este cambio de estado: Cuando por R ingresa un 1 y por S ingresa un 0 1 1 0 x Observando la tabla de funcionamiento se verifica que hay dos situaciones en que se verifica este cambio de estado: en ambos casos por R ingresa un 0 y por S puede ingresar 1 o 0. Esto implica que independientemente del valor de S (x) por R debe ingresar un 0
A-19 Appendix A - Digital Logic Forma de onda de una señal de reloj En general, se necesita una forma de ordenar los diferentes eventos que producen cambios de estados. Para esto se usan relojes: Un reloj (clock) es un circuito capaz de producir señales eléctricas de oscilantes, con una frecuencia uniforme. Esta señal es una serie de pulsos rectangulares o cuadrados y se distribuye a todas las partes del sistema. Algunas de sus salidas cambian de estado sólo cuando la señal de reloj hace una transición. Cuando la señal de reloj cambia de 0 a 1, se le denomina Flanco de Subida o Positivo, cuando pasa de 1 a 0 se le conoce como Flanco de Bajada o Negativo.
A-20 Appendix A - Digital Logic Forma de onda de una señal de reloj Señal de sincronismo de reloj: para lograr una sincronizacion controlada de los circuitos de logica secuencial. Cada flip-flop se sincroniza a si mismo al aceptar cambios de sus entradas solo en instantes determinados
A-23 Appendix A - Digital Logic Circuito S-R sincrónico R y S ya no pueden cambiar el estado del circuito hasta que no reciba un nivel alto en CLK. Si los cambios en R y S se producen mientras la señal de reloj está en su estado 0 (bajo) el estado del flip flop no se modifica. Sólo cuando la señal de reloj pase a 1 los nuevos estados de R y S, estables, se almacenarán en el flip flop.
A-24 Appendix A - Digital Logic Circuito D-FLIP-FLOP Desventaja del flip_flop R-S : para almacenar un 1 o un 0, hace falta aplicar un 1 a una de dos entradas diferentes y un 0 a la otra (según el valor que se desea almacenar). Alternativa: aplicar un 1 o un 0 a una única entrada, lleva a a un flip flop D. Se obtiene conectando las entradas R y S entre ellas a través de un circuito inversor. Cuando se activa la señal de reloj, el valor de D queda almacenado en el flip flop. Desventaja: En situaciones en que existen realimentaciones desde las salidas hacia la entrada, a través de otros circuitos, el flip-flop puede cambiar de estado mas de 1 vez en un ciclo de reloj.
A-25 Appendix A - Digital Logic Clocked D Flip-Flop C: representa la señal de sincronismo El flip-flop D, sincronizado, llamado latch, presenta un problema potencial. Como solución: se suele cortar el lazo de realimentación a través de otra estructura. El flip-flop Master-Slave soluciona este problema.
A-26 Appendix A - Digital Logic Master-Slave Flip-Flop Cuando se utiliza un biestable en situaciones en las que existe realimentación desde la salida hacia la entrada a través de otros circuitos, esta realimentación puede provocar que el flip flop cambie sus estado más de una vez en un ciclo de reloj.
A-27 Appendix A - Digital Logic Master-Slave Flip-Flop Un flip flop maestro-esclavo se construye con dos FF. Durante la subida del pulso de reloj se habilita el maestro y se deshabilita el esclavo. La información de entrada es transmitida hacia el FF maestro. Cuando el pulso baja nuevamente a cero se deshabilita el maestro lo que evita que lo afecten las entradas externas y se habilita el esclavo que pasa al mismo estado del maestro. El comportamiento del flip-flop maestro- esclavo hace que los cambios de estado coincidan con la transición del flanco negativo del pulso.
A-28 Appendix A - Digital Logic Flip-Flop J-K- Además de los anteriores son muy comunes los flip-flops J-K El flip-flop J-K se comporta en forma similar al flip-flop S-R excepto porque cuando las dos entradas valen simultáneamente 1, el circuito conmuta el estado anterior de su salida.
A-29 Appendix A - Digital Logic Resumen de Flip-Flop
A-30 Appendix A - Digital Logic Registros Un flip-flop D almacena un único bit de información. Un grupo de N bits, que forman una palabra puede almacenarse en N flip-flops D organizados. Esta disposición se conoce como registro. Representación abstracta de un registro de 4 bits.
A-31 Appendix A - Digital Logic Registro de cuatro bits La información de las entradas Di se carga en el registro cuando las señales de Escritura y Habilitación están en su estado alto, en forma sincronizada con la señal de reloj. Los contenidos del registro pueden leerse en las salidas Q i solo si la línea de habilitación esta en su estado alto. Si la línea esta en su estado bajo los buffers de tres estados ubicados a la salida se encuentran eléctricamente desconectados. Algunos registros típicos son: Contadores, Decontadores, de desplazamiento.
A-32 Appendix A - Digital Logic Contador de Modulo-8 Un contador es un tipo distinto de registro, en el que los patrones binarios de salida recorren en secuencia un cierto rango de números binarios
A-33 Appendix A - Digital Logic Contador de Modulo-8 El ej. recorre la secuencia binaria 000,001,010,011,100,101,110 y 111, repitiendo luego la operación. Se utilizan 3 flip-flop J-K en modo T, y cada entrada de reloj se conecta a través de una compuerta Y con la salida Q de la etapa anterior, lo que divide la frecuencia de reloj a la mitad en cada caso. Como resultado se tiene una cadena de flip flop operando a velocidades que difieren en potencias de 2, correspondientes a la secuencia de patrones binarios que va de 000 a 111. El agregado de la línea asincrónica RESET, de funcionamiento activo en estado bajo, que lleva el contador 000 en forma independiente de los estados del reloj o de la línea de habilitación. Este diseño se puede extender a tamaños mayores debido a que no se lo trata como una maquina de estados con propósitos de diseño en las que se enumeran todos los estados. Es una maquina de estados finitos.