Lógica Digital Circuitos Secuenciales Francisco Garcı́a Eijó Organización del Computador I Departamento de Computación - FCEyN UBA 10 de Abril del 2012 Agenda 1 Repaso 2 Introducción 3 Flip-Flops 4 Ejercicios ¿Qué deberı́amos saber hasta ahora? ¿Qué deberı́amos saber hasta ahora? Operadores y funciones booleanas. ¿Qué deberı́amos saber hasta ahora? Operadores y funciones booleanas. Reducciones utilizando identidades. ¿Qué deberı́amos saber hasta ahora? Operadores y funciones booleanas. Reducciones utilizando identidades. Dada una tabla de verdad poder escribir su función booleana. ¿Qué deberı́amos saber hasta ahora? Operadores y funciones booleanas. Reducciones utilizando identidades. Dada una tabla de verdad poder escribir su función booleana. Graficar circuitos lógicos. ¿Qué deberı́amos saber hasta ahora? Operadores y funciones booleanas. Reducciones utilizando identidades. Dada una tabla de verdad poder escribir su función booleana. Graficar circuitos lógicos. Circuitos combinatorios. Introducción Circuitos Combinacionales La salida esta determinada únicamente por la entrada del circuito Introducción Circuitos Combinacionales La salida esta determinada únicamente por la entrada del circuito Circuitos Secuenciales La salida esta determinada por la entrada y el estado del circuito Circuitos Secuenciales Cualquier circuito secuencial, se puede separar en dos partes: 1 un bloque combinacional 2 un bloque con memoria Circuitos Secuenciales Cualquier circuito secuencial, se puede separar en dos partes: 1 un bloque combinacional 2 un bloque con memoria La memoria almacena bits que determinan el estado del circuito Circuitos Secuenciales Cualquier circuito secuencial, se puede separar en dos partes: 1 un bloque combinacional 2 un bloque con memoria La memoria almacena bits que determinan el estado del circuito Las entradas del circuito combinacional son las entradas (E ) junto con las salidas de la memoria (Qn ) Circuitos Secuenciales Cualquier circuito secuencial, se puede separar en dos partes: 1 un bloque combinacional 2 un bloque con memoria La memoria almacena bits que determinan el estado del circuito Las entradas del circuito combinacional son las entradas (E ) junto con las salidas de la memoria (Qn ) El bloque combinacional genera la salida del circuito (S) y el nuevo estado del mismo (Qn+1 ) Flip-Flops Introducción Un FF es un dispositivo capaz de almacenar un bit. Utilizan el principio de la retroalimentación. Esta caracterı́stica es utilizada en Electrónica Digital para memorizar resultados. El paso de un estado a otro se realiza variando las entradas. Según el tipo de entradas pueden dividirse en: Flip-Flops Introducción Un FF es un dispositivo capaz de almacenar un bit. Utilizan el principio de la retroalimentación. Esta caracterı́stica es utilizada en Electrónica Digital para memorizar resultados. El paso de un estado a otro se realiza variando las entradas. Según el tipo de entradas pueden dividirse en: Asincrónicos: Solo tienen entradas de control y pueden cambiar de estado en cualquier momento. Flip-Flops Introducción Un FF es un dispositivo capaz de almacenar un bit. Utilizan el principio de la retroalimentación. Esta caracterı́stica es utilizada en Electrónica Digital para memorizar resultados. El paso de un estado a otro se realiza variando las entradas. Según el tipo de entradas pueden dividirse en: Asincrónicos: Solo tienen entradas de control y pueden cambiar de estado en cualquier momento. Sincrónicos: Además de las entradas de control posee una entrada de sincronismo o de reloj. El sistema solo puede cambiar en los instantes de sincronismo. Relojes (Clocks) Introducción Un reloj es un circuito que emite una serie de pulsaciones consecutivas con una frecuencia definida. Se denomina Flanco a la transición del nivel bajo al alto o del nivel alto al bajo. El periodo entre dos flancos ascendentes o descendentes se denomina tiempo de ciclo del reloj. Recordemos Frecuencia = 1 T Tipos de Sincronismo Sincronismo por nivel (alto o bajo) El sistema lee sus entradas cuando el reloj esta en estado alto o bajo. Tipos de Sincronismo Sincronismo por nivel (alto o bajo) El sistema lee sus entradas cuando el reloj esta en estado alto o bajo. Sincronismo por flanco (de subida o de bajada) El sistema lee sus entradas justo cuando se produce el flanco activo. Asincrónicos: Flip-Flop RS Caracterı́sticas Dispositivo de almacenamiento temporal de dos estados alto y bajo. Sus entradas principales son Set y Reset. S o Set: Cuando esta en 1 la salida esta en 1. R o Reset: Cuando esta en 1 la salida esta en 0. S 0 0 1 1 R 0 1 0 1 Qt+1 Qt 0 1 Indefinido Asincrónicos: Flip-Flop RS S R Q Q Asincrónicos: Flip-Flop RS S R Q Q Sincrónicos: Flip-Flop RS Caracterı́sticas Además de las entradas R y S posee una entrada C de sincronismo. Esta entrada lo que haces es permitir o no el cambio de estado del FF. C 0 1 1 1 1 S X 0 0 1 1 R X 0 1 0 1 Qt+1 Qt Qt 0 1 Indefinido Sincrónicos: Flip-Flop RS S Q Clk Q R Sincrónicos: Flip-Flop RS S R GRB CLR Q Q Sincrónicos: Flip-Flop D (Delay) Caracterı́sticas Posee solo una entrada D. La salida Q obtiene el valor de la entrada D cuando la señal del Clock se encuentra activada. C 0 1 1 D X 0 1 Qt+1 Qt 0 1 Sincrónicos: Flip-Flop D (Delay) D Clk S Q Q Q Q Clk R Sincrónicos: Flip-Flop D (Delay) D GRB CLR Q Q Sincrónicos: Flip-Flop T Caracterı́sticas Posee solo una entrada T. Si hay un 0 en la entrada T, cuando se aplica un pulso de reloj la salida mantiene el valor del estado presente. Si hay un 1 se complementa. C 0 1 1 T X 0 1 Qt+1 Qt Qt Q̄t Sincrónicos: Flip-Flop T T GRB CLR Q Q Sincrónicos: Flip-Flop JK Caracterı́sticas Sus entradas son J y K en honor a Jack Kilby. Comportamiento similar al RS salvo que permite el estado 1 1 en sus entradas. Se considera como el FF universal ya que puede configurarse para obtener los demás FF. C 0 1 1 1 1 J X 0 0 1 1 K X 0 1 0 1 Q(t + 1) Qt Qt 0 1 Q̄t Flip-Flop JK J Clk K S Q Q Q Q Clk R Flip-Flop JK J K GRB CLR Q Q Registros Un registro es un conjunto de n flip-flops asociados, que permiten almacenar temporariamente una palabra o grupo de n bits. Ent0 D Q Sal0 Ent1 D Q Sal1 Ent2 D Q Sal2 Ent3 D Q Sal3 Clock Componentes de tres estados A 0 1 x B 1 1 0 Noción eléctrica: Sı́mbolo: B=0 A B=1 C C 0 1 Hi-Z A A B C C Hi-Z significa “alta impedancia”, es decir, que tiene una resistencia alta al pasaje de corriente. Como consecuencia de esto, podemos considerar al pin C como desconectado del circuito. Ejercicio 1 a) Diseñar un registro de 4 bits. El mismo debe contar con 4 entradas e0 , . . . , e3 para ingresar el dato a almacenar, 4 salidas s0 , . . . , s3 para ver el dato almacenado y las señales de control reset y WriteEnable. b) Modificar el diseño anterior agregándole componentes de 3 estados para que sólo cuando se active la señal de control mostrar muestre el dato almacenado. Solución e3 D SET CLR e2 D SET CLR e1 D SET CLR e0 D WriteEnable SET CLR Reset Q s3 Q Q s2 Q Q s1 Q Q Q s0 Solución HAB. e3 D SET CLR s3 Q Q HAB. e2 D SET CLR s2 Q Q HAB. e1 D SET CLR s1 Q Q HAB. e0 D WriteEnable SET CLR Reset Q Q Enable out s0 Ejercicio 2 Configurar dos flip-flops JK para que se comporten como la siguiente tabla caracterı́stica. Q1 0 0 1 1 Q2 0 1 0 1 Q10 1 1 0 0 Q20 1 0 0 1 Solución 1 J1 Q1 J2 Q2 K1 Q1 K2 Q2 Ejercicio 3 Implementar un registro contador de dos bits que cumpla con los siguientes estados y que cada cambio se produzca al apretar un pulsador. Nos piden además que el componente a desarrollar cuente con una entrada de Reset. 00 11 01 10 Solución Q0 0 0 1 1 D0 = Q̄0 .Q1 + Q0 .Q̄1 D1 = Q̄1 Q1 0 1 0 1 Q00 0 1 1 0 Q10 1 0 1 0 D0 0 1 1 0 D1 1 0 1 0 Solución D Q D Q Q FF1 Q FF2 Ejercicio 4: Construcción de circuitos secuenciales por bloques La conjetura de Collatz, es un famoso problema matemático aún no resuelto. Esta conjetura enuncia la siguiente función f : N 7→ N, aplicable a cualquier ( número entero positivo: n si n es par f (n) = 2 3n + 1 si n es impar Se dice que si se toma cualquier número y se aplica esta función reiteradas veces, el resultado siempre converge a 1. 1 Construir un circuito combinatorio que realice la función f (n) para una entrada de 5 bits. 2 Construir un circuito secuencial, que aplique reiteradas veces la función anterior por cada ciclo de reloj. 3 Modificar el circuito anterior de forma que si el valor de entrada es 1, entonces la salida también sea 1. Ejercicio 4: Primer intento. . . Debemos construir una tabla de verdad de 5 entradas y 5 salidas Esto corresponde a 32 posiciones y 5 funciones, una para cada salida Resolver una tabla de verdad de estas dimensiones resulta muy complejo y puede llevar a errores Ejercicio 4: Primer intento. . . Debemos construir una tabla de verdad de 5 entradas y 5 salidas Esto corresponde a 32 posiciones y 5 funciones, una para cada salida Resolver una tabla de verdad de estas dimensiones resulta muy complejo y puede llevar a errores Otra opción, pensar en bloques y reutilizar circuitos conocidos Ejercicio 4: Pensando un poco. . . entrada salida Ejercicio 4: Pensando un poco. . . entrada n/2 3n+1 salida Ejercicio 4: Pensando un poco. . . entrada 4 3 2 1 n/2 0 3n+1 salida Ejercicio 4: Pensando un poco. . . entrada 4 3 2 1 n/2 0 3n+1 seleccionar salida Ejercicio 4: Pensando un poco. . . entrada 4 3 2 1 n/2 0 3n+1 seleccionar salida Control Ejercicio 4: Pensando un poco. . . n/2 Resolver la operación de división por dos es simple, ya que se trata de un desplazamiento a derecha Ejercicio 4: Pensando un poco. . . n/2 Resolver la operación de división por dos es simple, ya que se trata de un desplazamiento a derecha 4 n/2 0 3 2 1 0 Ejercicio 4: Pensando un poco. . . 3n + 1 La operación 3n + 1 se puede escribir como: 1 n+n+n+1 2 2n + n + 1 Para el primer caso, utilizarı́amos dos circuitos sumadores En la segunda opción, tan solo se utiliza un circuito sumador, ya que la multiplicación por dos se realiza mediante un desplazamiento Ejercicio 4: Pensando un poco. . . 3n + 1 La operación 3n + 1 se puede escribir como: 1 n+n+n+1 2 2n + n + 1 Para el primer caso, utilizarı́amos dos circuitos sumadores En la segunda opción, tan solo se utiliza un circuito sumador, ya que la multiplicación por dos se realiza mediante un desplazamiento Elegimos la segunda opción . . . 2n + n + 1 Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1 3n+1 4 sc 3 sc 2 sc 1 sc 0 sc Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1 3n+1 4 sc 3 sc 2 sc 1 sc 0 sc Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1 3n+1 4 3 2 1 0 0 sc sc sc sc sc Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1 3n+1 4 3 2 1 0 0 sc sc sc sc sc 1 Ejercicio 4: Pensando un poco. . . n/2 3n+1 0 0 sc sc sc sc Control salida Resta considerar como resolvemos el selector. sc 1 Ejercicio 4: Pensando un poco. . . n/2 3n+1 0 0 sc sc 0 0 0 0 0 mux mux mux mux mux sc sc Control salida Para eso utilizamos un conjunto de 5 multiplexores. sc 1 Ejercicio 4: Segundo punto. . . 2 Construir un circuito secuencial, que aplique reiteradas veces la función anterior por cada ciclo de reloj. Ejercicio 4: Segundo punto. . . 2 Construir un circuito secuencial, que aplique reiteradas veces la función anterior por cada ciclo de reloj. En el segundo punto nos piden aplicar la función reiteradas veces a un número dado Para esto necesitamos un registro donde almacenar el resultado Ejercicio 4: Segundo punto. . . 2 Construir un circuito secuencial, que aplique reiteradas veces la función anterior por cada ciclo de reloj. En el segundo punto nos piden aplicar la función reiteradas veces a un número dado Para esto necesitamos un registro donde almacenar el resultado entrada 4 3 2 1 0 n/2 3n+1 mux salida registro Control Ejercicio 4: Segundo punto. . . 2 Construir un circuito secuencial, que aplique reiteradas veces la función anterior por cada ciclo de reloj. Una vez almacenado el resultado en un registro Se puede realimentar el circuito de forma que el resultado sea la próxima entrada a nuestra función Ejercicio 4: Segundo punto. . . 2 Construir un circuito secuencial, que aplique reiteradas veces la función anterior por cada ciclo de reloj. Una vez almacenado el resultado en un registro Se puede realimentar el circuito de forma que el resultado sea la próxima entrada a nuestra función entrada 4 3 2 1 0 n/2 3n+1 mux salida registro Control Ejercicio 4: Tercer punto. . . 3 Modificar el circuito anterior de forma que si el valor de entrada es 1, entonces la salida también sea 1. Ejercicio 4: Tercer punto. . . 3 Modificar el circuito anterior de forma que si el valor de entrada es 1, entonces la salida también sea 1. Para el tercer punto, se debe considerar si la entrada es 1 En ese caso, debemos fijar la salida a 1 Ejercicio 4: Tercer punto. . . 3 Modificar el circuito anterior de forma que si el valor de entrada es 1, entonces la salida también sea 1. 4 Para el tercer punto, se debe considerar si la entrada es 1 En ese caso, debemos fijar la salida a 1 3 2 1 0 n/2 3n+1 mux registro Control Resumen Resumen ¿Qué son los circuitos secuenciales? Resumen Resumen ¿Qué son los circuitos secuenciales? Tipos de Flip-Flops. Resumen Resumen ¿Qué son los circuitos secuenciales? Tipos de Flip-Flops. Registros. Resumen Resumen ¿Qué son los circuitos secuenciales? Tipos de Flip-Flops. Registros. Como configurar los Flip-Flops para un determinado comportamiento. Resumen Resumen ¿Qué son los circuitos secuenciales? Tipos de Flip-Flops. Registros. Como configurar los Flip-Flops para un determinado comportamiento. Contadores.