Lógica Digital - Circuitos Secuenciales

Anuncio
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.
Descargar