Sistemas Digitales IIRegistros y circuitos secuenciales
Felipe Andrs Delgado Ramrez
Circuitos combinatorios Funciones Booleanas El resultado depende slo de las entradas
Para hacer aplicaciones mas interesantes, necesitamos circuitos que puedan recordar su estado y que acten segn su estado y las entradas.
Para que? Para construir memorias, registros, contadores, etc.
Un circuito lgico de estas caractersticas se denomina flip-flop. La razn porque memoriza un estado hasta que se le grabe otro estado diferente.
Flip-flops
Para utilizar sus valores previos, los circuitos secuenciales recurren a la realimentacin.
La realimentacin se produce cuando una salida se conecta a una entrada.
Ejemplo simple:. Si Q es 0 siempre ser 0, si es 1, siempre ser 1,
porqu?
Realimentacin
Uno de los circuitos secuenciales ms bsicos es el flip-flop SR. SR por set/reset.
Circuito lgico y diagrama en bloque
Flip-flop SR
La tabla caracterstica describe el comportamiento del flip-flop SR.
Q(t) es el valor de la salida al tiempo t. Q(t+1) es el valor de Q en el prximo ciclo de clock.
Flip-flop SR
A los efectos del anlisis de los estados, podemos considerar que el flip-flop SR tiene en realidad 3 entradas: S, R, y su salida actual Q(t).
Note los dos valores indefinidos, cuando las entradas S y R son 1, el flip-flop es inestable Por qu?
Flip-flop SR
Flip-flop RS Para uniformar el tipo de compuerta a
utilizar puede demostrarse fcilmente que todos los circuitos lgicos se pueden construir utilizando compuertas NOR o Compuertas NAND solamente.
Esto ayuda a trabajar con los elementos reales ya que minimiza la cantidad de componentes fsicos que incluimos en nuestro diseo lgico
Flip-flop RS NANDQ
Q
S
R
Q
Q
S
R
Q
Q
S
R
Aplicando De Morgan
S + Qt = S . Qt
Habilitacin de datos (Enable)
Generalmente es necesario determinar cuando grabar informacin en un latch, a pesar de tener datos en la entrada
Para habilitar (enable) es ideal la compuerta AND.
A
Enable
Q Si Enable = 0, Q = 0Si Enable = 1, Q = A
Flip-flop SR con EnableQ
Q
S
R
S
R
Enable
Q
Q
S
R
S
R
EnableIntegramente con compuertas NAND
Circuitos sincrnicos Los circuitos sincrnicos funcionan sobre
lo que denominaremos base de tiempo.
Es decir, las salidas dependen no slo de las entradas, sino del estado en que estaban las salidas y del ritmo que impone la base de tiempo.
En general, necesitamos una forma de ordenar los diferentes eventos que producen cambios de estados
Para esto usamos relojes Un reloj (clock) es un circuito capaz de producir
seales elctricas oscilantes, con una frecuencia uniforme
Bases de tiempo = Relojes
Los cambios de estado se producen en cada tick de reloj
Estos cambios pueden producirse cuando se produce un cambio de flanco (ascendente o descendente) o por un cambio nivel (alto o bajo)
Cambios de estado
S Q
QR
CK
Flip-flop RS sincrnico
CK S R Q
0 0 Q
0 1 0
1 0 1
1 1 -
Flip-flop RS sincrnico
CK S R Q
0 0 Q
0 1 0
1 0 1
1 1 -
CK
S Q
QR
set
reset
clock
SQ
R
Encontrar Q para las seales R, Sdadas usando RS sncrono
t
CK S R Q
0 0 Q
0 1 0
1 0 1
1 1 -
CK
S Q
QR
CK
Ejercicio
SQ
R
t
CK
Encontrar Q para las seales R, Sdadas usando RS sncrono CK S R Q
0 0 Q
0 1 0
1 0 1
1 1 -
Ejercicio
CK
S Q
QR
Otra modificacin al flip-flop SR es el denominado flip-flop D.
Elimina el estado inestable asegurando que siempre S y R son mutuamente inversas
Note que retiene el valor de la entrada al pulso de clock, hasta que cambia dicha entrada, pero al prximo pulso de clock.
Flip-flop D
El flip-flop D es el circuito fundamental en: una celda de 1 bit de memoria RAM, de tecnologa
esttica (de las que nos ocuparemos en breve). un bit de un registro de un controlador Entrada
Salida. un bit de un registro que compone la arquitectura de
la CPU
Flip-flop D
CK
D Q
Q
data
clock
PR
CLR
PR CLR CK D Q
0 1 X X 1
1 0 X X 0
1 1 1 1
1 1 0 0
1 1 0 X Q
Latch D con Preset y Clear
Registro de 4 bits compuesto por 4 flip-flop D.
Registros
CK
D Qdata
CK
D Q
CK
D Q
CK
D Q
Registro de desplazamiento basado en flip-flop D
Limitaciones de los flip-flop
CK
D Q
Q
data
clock CK
D Q
Q
Ciclo de reloj
tpd
tpd
Cuando se conectan en cascada para construir circuitos secuenciales, el tiempo de propagacin tpd, que es el que tarda la entrada del latch en grabarse a su salida, puede hacer que una entrada tome el nuevo estado en tpd en lugar de en el ciclo siguiente de clock.
Se trata de dispositivos transparentes. La entrada se propaga a la salida luego de tpd.
Cmo se arregla esto?
Flip-flops Master Slave Son dispositivos de almacenamiento no
transparentes
CK
S2 Q2
Q2R2
CK
S1 Q1
Q1R1
S
R
Q
QCiclo de reloj
tpd
tpd
Q1
Q2
La idea es convertir el flip-flop SR en un flip-flop estable. Es posible realizar esta modificacin.
El flip-flop modificado se denomina JK. JK en honor de Jack Kilby (inventor del circuito
integrado).
Flip-flop JK
Flip-Flop JK A la derecha podemos
ver el circuito lgico de flip-flop SR modificado.
La tabla caracterstica indica que es estable para cualquier combinacin de sus entradas.
CK
J Q
QK
clock
CK J K Q
0 0 Q
0 1 0
1 0 1
1 1 Q
0 X X Q
Latch JK
Los circuitos digitales se pueden ver desde dos puntos de vista: anlisis digital y sntesis digital. El Anlisis Digital explora la relacin entre las
entradas a un circuito y sus salidas. La Sntesis Digital crea diagramas lgicos utilizando
los valores expresados en una tabla de verdad. Los diseadores de circuitos digitales deben tener
en cuenta el comportamiento fsico de los circuitos electrnicos, es decir existen retardos de propagacin, los cuales pueden incidir cuando las seales toman distintos caminos, en la tabla de verdad de todo el sistema.
Diseo de circuitos
Un contador binario es otro ejemplo de circuito secuencial.
El bit de menor orden se complementa a cada pulso de clock.
Cualquier cambio de 0 a 1 , produce el prximo bit complementado, y as siguiendo a los otros flip-flop.
Contadores
CK
J Q
K
1
1
CK
J Q
K
1
1
CK
J Q
K
1
1
CK
J Q
K
1
1
LSB MSB
Contador de 4 bits basado en Flip Flop JK
Diseo de un circuito secuencial
Disear un circuito secuencial que genere una secuencia de estados binarios: 00, 01, 10, 11 a partir de una seal de control x, que cada vez que est en 1 y venga una seal de clock cambie de estado.
Ejemplo
Diseo de un circuito secuencial
Diagrama de estado 00
01 11
10
EjemploDisear un circuito secuencial que genere una secuencia de estados binarios: 00, 01, 10, 11 a partir de una seal de control x, que cada vez que est en 1 y venga una seal de clock cambie de estado.
Diseo de un circuito secuencial
x = 1
x = 1
x = 1
x = 1
x = 0x = 0
x = 0
x = 0 x : seal de control
Diagrama de estado
00
01 11
10
00
01 11
10
x = 1
x = 1
x = 1
x = 1
x = 0x = 0
x = 0
x = 0 x : seal de reloj
A B x A B0 0 0 ? ?0 0 1 ? ?0 1 0 ? ?0 1 1 ? ?1 0 0 ? ?1 0 1 ? ?1 1 0 ? ?1 1 1 ? ?
t t +1
control
Como el contador tiene dos bits, seusarn dos flip-flops (A y B), uno para cada bit.
AB
00
01 11
10
x = 1
x = 1
x = 1
x = 1
x = 0x = 0
x = 0
x = 0 x : seal de reloj
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
control
Tabla de estado
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
CK J K Q
0 0 Q
0 1 0
1 0 1
1 1 Q
CK
J Q
QK
FF
JA KA? ?? ?? ?? ?? ?? ?? ?? ?
Usando flip-flops JK cmo deben ser sus entradas para que A cambie de su estado t a su estado t+1?
control
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
CK J K Q
0 0 Q
0 1 0
1 0 1
1 1 Q
CK
J Q
QK
FF
JA KA0 X0 X0 X1 XX 0X 0X 0X 1
controlTabla de excitacin
Tabla de verdad Flip Flop JK
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
JA KA0 X0 X0 X1 XX 0X 0X 0X 1
A
B
x
JA
Mapas de Karnough
A
B
x
KA
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
JA KA0 X0 X0 X1 XX 0X 0X 0X 1
X X X X
0 1 0 0
A
B
x
JA
Mapas de Karnough
0 1 0 0
X X X X
A
B
x
KA
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
JA KA0 X0 X0 X1 XX 0X 0X 0X 1
X X X X
0 1 0 0
A
B
x
JA
Mapas de Karnough
0 1 0 0
X X X X
A
B
x
KA
JA = B.x
KA = B.x
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
CK J K Q
0 0 Q
0 1 0
1 0 1
1 1 Q
CK
J Q
QK
FF
JB KB? ?? ?? ?? ?? ?? ?? ?? ?
Usando flip-flops JK cmo deben ser sus entradas para que B cambie de su estado t a su estado t+1?
control
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
CK J K Q
0 0 Q
0 1 0
1 0 1
1 1 Q
CK
J Q
QK
FFUsando flip-flops JK cmo deben ser sus entradas para que B cambie de su estado t a su estado t+1?
JB KB0 X1 XX 0X 10 X1 XX 0X 1
control
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
A
B
x
JB
Mapas de Karnough
A
B
x
KB
JB KB0 X1 XX 0X 10 X1 XX 0X 1
Tabla de verdad Flip Flop JK
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
X X 1 0
X X 1 0
A
B
x
JB
Mapas de Karnough
0 1 X X
0 1 X X
A
B
x
KB
JB KB0 X1 XX 0X 10 X1 XX 0X 1
A B x A B0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 01 0 1 1 11 1 0 1 11 1 1 0 0
t t +1
X X 1 0
X X 1 0
A
B
x
JB
Mapas de Karnough
0 1 X X
0 1 X X
A
B
x
KB
JB = x
KB = x
JB KB0 X1 XX 0X 10 X1 XX 0X 1
JB = x
KB = x
JA = B.x
KA = B.x
CK
JA Q
QKA
FFA
CK
JB Q
QKB
FFB
A
B
JB = x
KB = x
JA = B.x
KA = B.x
CK
JA Q
QKA
FFA
CK
JB Q
QKB
FFB
A
B
x
clock
Consideraciones de diseo:
1. Hacer un diagrama de estado identificando las variables entrada (control) y salida. En el diagrama: un estado es un crculo, un flecha es una transicin de un estado a otro.
2. El nmero de flip-flops necesarios para el circuito es el nmero de bits que tienen los estados.
3. Se realiza la tabla de estados y la tabla de excitacin para cada flip-flop.
4. Se disea el circuito combinacional para cada entrada de cada flip-flop usando mapas de Karnough.
5. Se implementa el circuito secuencial.
Circuitos secuenciales
Celda de memoria
entrada
salida
leer/escribir (1/0)
seleccionar
S
R
Q
entrada
salida
leer/escribir (1/0)
seleccionar
S
R
Q
Celda de memoria
BCentradaseleccionar
salida
leer/escribir (1/0)
Celda de memoria
BC BC BC
BC BC BC
BC BC BC
BC BC BC
Dato de entrada (3 bits)
Dato de salidaleer/escribir
Entrada de seleccin de memoria
Decoder24
D0
D1
D2
D3
A0A1
Unidad de memoria de 4 3 bitsUnidad de memoria de 4 x 3
bits
Unidad de memoria RAM
Unidad de memoria RAM
Celda de memoria RAM
IN OUT
EN = 0
IN OUT
EN = 1
Esquema elctricoEN: enableIN: inputOUT: output
Buffer de 3 estados
EN: enableIN: inputOUT: output
Diagrama Tabla de verdad
Buffer de 3 estados
Diagrama
Tabla de verdad
Buffer de 3 estados
Ejemplo: RAM de 16 x 1 bit
Ejemplo: RAM de 16 x 1 bit usando celdas de 4 x 4
Chip 64 x 8 RAM
Diagrama en bloqueRAM de 64K x 8 bits
Ejemplo: RAM de 256K con 4 chips de 64K x 8
Ejemplo: RAM de 64K x 16 utilizando 2 chips de 64K x 8
Memoria ROM (read only memory)
Lgica interna de una ROM
Tabla de verdad ROM 32 x 8
Programacin de ROM 32 x 8
Flip-Flops Tablas de Excitacin
67
Flip-Flop SRQ(t) Q(t+1) S R
0 0 0 x
0 1 1 0
1 0 0 1
1 1 x 0
Flip-Flop DQ(t) Q(t+1) D
0 0 0
0 1 1
1 0 0
1 1 1
Flip-Flop JKQ(t) Q(t+1) J K
0 0 0 x
0 1 1 x
1 0 x 1
1 1 x 0
Flip-Flop TQ(t) Q(t+1) T
0 0 0
0 1 1
1 0 1
1 1 0
Comunicacin y Redes de Datos
Felipe Andrs Delgado Ramrez
Gracias por su atencin