Sistemas secuenciales básicos
Registros de Desplazamiento
R i
d D l
i
Registro básico
Modificaciones
M difi i
Aplicaciones
Contadores
Contador creciente y decreciente
Contador reversible
Contadores de módulo cualquiera
Contadores asíncronos
Elemento central: el biestable D (Delay)
A cada flanco de reloj, el biestable Qi toma como valor el del biestable
l
ld lb
bl anterior, Qi‐1 :
Di=Qi‐1
U1
D
U2
Q
CLK
D
CLK
Q
DTFF
Q
Q
DTFF
Encadenando n celdas como la anterior:
U1
IN
D
U2
Q
CLK
D
CLK
Q
DTFF
U3
Q
D
CLK
Q
DTFF
U4
Q
D
CLK
Q
DTFF
U5
Q
D
CLK
Q
DTFF
Q
Q
DTFF
La salida copiará a la entrada n ciclos de reloj más tarde
á
d
OUT
Con marcha / paro:
Reversible
bl
Con precarga paralela:
Con todas las modificaciones:
Multiplicación por 2:
ó
División entre 2:
ó
an-1 an-2 an-3
a0
an-1 an-1 an-2
a1
Conversión Serie‐Paralelo
ó
Precarga serie (desplazamiento)
Lectura paralelo (Q)
n-1
Conversión Paralelo‐Serie
Precarga paralelo Desplazamiento serie
p
n-2
n-3
0
Generador de Secuencia:
Se repite cada n pasos
Generador de números pseudo‐aleatorios:
Se repite cada 2n‐1
Contador: sistema secuencial que recorre de forma lineal sus estados
Elemento central: el biestable
l
l lb
bl T
Es muy fácil saber cuándo debe cambiar un bit, pero muy complicado saber cuál debe ser su valor
El bit i de un contador cambia cuando todos los menos significativos valen 1:
Ti=Q0∙Q1∙…∙Qi‐1
Para hacerlo de forma iterativa:
Si conecto n celdas como la anterior:
Problema: el retraso se acumula.
Sustituyo las puertas AND por puertas de i
entradas para cada bit:
Problema: crece el tamaño de las puertas.
Para que cambie un bit, los de menor rango deben estar a cero (haber decrecido):
Ti=/Q0∙/Q1∙…/Qi‐1
De forma análoga a lo anterior:
f
á
Basta tomar las salidas negadas en vez de las l
ld
d
d l
naturales.
Usar las dos posibilidades, y elegir con un Multiplexor:
Un contador de n bits tiene 2n estados:
Módulo: número de estados diferentes
Contador de módulo M: aquél que tras el d d
ód l
él
l
estado M‐1 va al estado inicial
Se puede hacer:
d h
Usando un Reset (Síncrono)
Usando un Clear (asíncrono)
Ejemplo: contador de 4 bits y módulo 12:
ó
Síncronamente: generar reset en el estado 11 para que se active y vaya al 0:
l
Q3
Q2
Q1
Q0
/RES
Asíncronamente: generar un Clear en el estado 12, para que inmediatamente pase a 0
d
d
Peligro: glitch.
Q3
Q2
Q1
Q0
/CLR
Recordando el cronograma:
Podría usar los flancos de bajada de cada bit dí
l fl
d b d d
d b
como reloj del siguiente
Usando biestables activos por flanco de bajada:
f
Para contador descendente, usar flanco contrario.
Usando biestables activos por flanco de bajada:
f
No se deben usar, salvo que se pida expresamente.