Está en la página 1de 75

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 Circuitos Secuenciales

La salida esta determinada La salida esta determinada por la


únicamente por la entrada del entrada y el estado del circuito
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.
1
Recordemos Frecuencia = 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 R Qt+1
0 0 Qt
0 1 0
1 0 1
1 1 Indefinido
Asincrónicos: Flip-Flop RS

S
Q

Q
R
Asincrónicos: Flip-Flop RS

S
Q

Q
R
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 S R Qt+1
0 X X Qt
1 0 0 Qt
1 0 1 0
1 1 0 1
1 1 1 Indefinido
Sincrónicos: Flip-Flop RS

S
Q
Clk
Q
R
Sincrónicos: Flip-Flop RS

GRB
S Q

R CLR 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 D Qt+1
0 X Qt
1 0 0
1 1 1
Sincrónicos: Flip-Flop D (Delay)

D S Q Q
Clk Clk

R Q Q
Sincrónicos: Flip-Flop D (Delay)

GRB
D Q

CLR 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 T Qt+1
0 X Qt
1 0 Qt
1 1 Q̄t
Sincrónicos: Flip-Flop T

GRB
T Q

CLR 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 J K Q(t + 1)
0 X X Qt
1 0 0 Qt
1 0 1 0
1 1 0 1
1 1 1 Q̄t
Flip-Flop JK

J S Q Q
Clk Clk

K R Q Q
Flip-Flop JK

GRB
J Q

K CLR Q
Registros

Ent0 D Q Sal0

Un registro es un
conjunto de n Ent1 D Q Sal1
flip-flops asociados,
que permiten
almacenar Ent2 D Q Sal2
temporariamente una
palabra o grupo de n
bits. Ent3 D Q Sal3

Clock
Componentes de tres estados

A B C
0 1 0
1 1 1
x 0 Hi-Z

Noción eléctrica: Sı́mbolo:

B=0 B
B=1 A C
A C A 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

SET
e3 D Q s3

CLR Q

SET
e2 D Q s2

CLR Q

SET
e1 D Q s1

CLR Q

SET
e0 D Q s0

WriteEnable CLR Q

Reset
Solución

SET
HAB.
e3 D Q s3

CLR Q

SET
HAB.
e2 D Q s2

CLR Q

SET
HAB.
e1 D Q s1

CLR Q

SET
HAB.
e0 D Q s0

WriteEnable CLR Q

Reset Enable out


Ejercicio 2

Configurar dos flip-flops JK para que se comporten como la


siguiente tabla caracterı́stica.

Q1 Q2 Q10 Q20
0 0 1 1
0 1 1 0
1 0 0 0
1 1 0 1
Solución

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 Q1 Q00 Q10 D0 D1
0 0 0 1 0 1
0 1 1 0 1 0
1 0 1 1 1 1
1 1 0 0 0 0

D0 = Q̄0 .Q1 + Q0 .Q̄1


D1 = Q̄1
Solución

D Q D Q

Q Q
FF1 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 0

n/2 3n+1

salida
Ejercicio 4: Pensando un poco. . .

entrada
4 3 2 1 0

n/2 3n+1

seleccionar

salida
Ejercicio 4: Pensando un poco. . .

entrada
4 3 2 1 0

n/2 3n+1

Control
seleccionar

salida
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 3 2 1 0
n/2

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

4 3 2 1 0
3n+1

sc sc sc sc sc
Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1

4 3 2 1 0
3n+1

sc sc sc sc sc
Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1

4 3 2 1 0
3n+1

sc sc sc sc sc
Ejercicio 4: Pensando un poco. . . 3n + 1 = 2n + n + 1

4 3 2 1 0
3n+1

sc sc sc sc sc
1
Ejercicio 4: Pensando un poco. . .

n/2 3n+1

0
0 sc sc sc sc sc
1

Control

salida

Resta considerar como resolvemos el selector.


Ejercicio 4: Pensando un poco. . .

n/2 3n+1

0
0 sc sc sc sc sc
1

0 0 0 0 0 Control
mux mux mux mux mux

salida

Para eso utilizamos un conjunto de 5 multiplexores.


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 entrada


nos piden aplicar la 4 3 2 1 0

función reiteradas
veces a un número n/2 3n+1
dado
Control
mux
Para esto necesitamos
un registro donde salida
almacenar el
resultado registro
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 entrada


4 3 2 1 0
el resultado en un
registro
n/2 3n+1
Se puede realimentar
el circuito de forma mux Control

que el resultado sea


la próxima entrada a salida
nuestra función registro
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 3 2 1 0

Para el tercer punto,


se debe considerar si n/2 3n+1
la entrada es 1
Control
mux
En ese caso, debemos
fijar la salida a 1

registro
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.

También podría gustarte