José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC
CIRCUITOS SECUENCIALES Combinacional: las salidas dependen de las entradas Secuencial: las salidas dependen de las entradas y de valores anteriores de determinadas salidas ( e.d. depende de la vida pasada del circuito)
Entradas
Sistema combinacional
Circuito de realimentación
Salidas
CIRCUITOS SECUENCIALES Los circuitos secuenciales pueden ser: •Asíncronos: no dependen de ninguna señal de reloj •Síncronos: dependen de un reloj
Entradas
Sistema combinacional
Salidas
Entradas
Sistema combinacional
Salidas que actúan como entradas Elementos de memoria
Generador de impulsos de reloj
Salidas
CIRCUITOS SECUENCIALES Las células básicas de los circuitos secuenciales son los biestables los cuales pueden ser: •Asíncronos: no dependen de ninguna señal de reloj •Síncronos: dependen de un reloj •Activos por nivel •Activos por flanco Þ Flip-Flops Los más utilizados son: •RS •JK •D •T •etc
BIESTABLES ASÍNCRONOS BIESTABLE RS NOR
R
Q
S
Q
Tabla de Verdad S
R Q(t+1) Q(t+1)
0 0 1 1
0 1 0 1
S 0 0 0 0 1 1 1 1
R Q(t) Q(t+1) 0 0 0 No cambia 1 0 1 0 1 0 Cuando R≠ ≠S la salida 0 1 1 sigue a la S 1 0 0 1 0 1 1 0 Indeseable 1 1
Q(t) 0 1 -
Q(t) 1 0 -
No cambia Reset Set Indeseable
BIESTABLES ASÍNCRONOS BIESTABLE RS NOR
Tabla de Transición Q(t) Q(t+1) 0 0 1 1 R
Q
S
Q
0 1 0 1
S
R
0 1 0 X
X 0 1 0
BIESTABLES ASÍNCRONOS BIESTABLE RS NAND
R
Q
S
Q
Tabla de Verdad S
R Q(t+1) Q(t+1)
0 0 1 1
0 1 0 1
S 0 0 0 0 1 1 1 1
R Q(t) Q(t+1) 0 0 Indeseable 0 1 1 1 0 Cuando R≠ ≠S la salida 1 1 1 sigue a la R 0 0 0 0 0 1 0 1 0 No cambia 1 1 1
1 0 Q(t)
0 1 Q(t)
Indeseable Set Reset No cambia
BIESTABLES ASÍNCRONOS BIESTABLE RS NAND
Tabla de Transición Q(t) Q(t+1) 0 0 1 1 R
Q
S
Q
0 1 0 1
S
R
1 0 1 X
X 1 0 1
BIESTABLES ASÍNCRONOS BIESTABLE JK
J
Q
K
Q
Oscilación para J=K=1 → Carreras → No se suelen usar → Sol: Biestable JK M/S
Tabla de Verdad J
K Q(t+1) Q(t+1)
0 0 1 1
0 1 0 1
J 0 0 0 0 1 1 1 1
K Q(t) Q(t+1) 0 0 0 No cambia 1 0 1 0 1 0 Cuando J≠ ≠K la salida 0 1 1 sigue a la J 1 0 0 1 0 1 1 1 0 Cambia 0 1 1
Q(t) Q(t) 0 1 1 0 Q(t) Q(t)
No cambia Reset Set Cambia
BIESTABLES ASÍNCRONOS BIESTABLE JK
Tabla de Transición J
K
Q
Q
Q(t) Q(t+1) 0 0 1 1
0 1 0 1
J
K
0 1 X X
X X 1 0
BIESTABLES ASÍNCRONOS BIESTABLE TIPO T ( = JK cortocircuitando J=K)
Tabla de Verdad T
Q
Q
T
Q(t)
0 0 1 1
0 1 0 1
Q(t+1) 0 1 1 0
No cambia Cambia (TOGGLE)
BIESTABLES ASÍNCRONOS BIESTABLE TIPO D ( No hace nada, sirve de memoria)
D
Q(t) Q(t)
NECESIDAD DE SISTEMAS SÍNCRONOS Generación de un GLITCH
NECESIDAD DE SISTEMAS SÍNCRONOS Efecto de un GLITCH sobre un biestable
BIESTABLES SÍNCRONOS Entradas asíncronas → no dependen de reloj → PRESET (poner a 1 la salida) y CLEAR (poner a 0 la salida) Activas a nivel alto
Activas a nivel bajo
PR
PR
CLR
CLR
No pueden estar activas a la vez
BIESTABLES SÍNCRONOS Entradas de reloj → CK, CLK, CLOCK ... nivel alto CLK
Disparo por nivel nivel bajo CLK
flanco de subida
CLK
Disparo por flanco flanco de bajada
CLK
BIESTABLES SÍNCRONOS Entradas síncronas → dependen del reloj → R, S, J, K, T, D
R
J
S
K
T
BIESTABLES SÍNCRONOS Orden de prioridad: 1.- Entradas Asíncronas 2.- Entrada de Reloj 3.- Entradas Síncronas PR
R
PR
Q
S
R
Q
S
Q
CLK Q
CLK
CLR
CLR
BIESTABLES SÍNCRONOS BIESTABLE RS SÍNCRONO ACTIVADO POR NIVEL
R
Q
S Q
C
C 0 1 1 1 1
S X 0 0 1 1
R X 0 1 0 1
Q Q Q 0 1 1
Q Q Q 1 0 1
BIESTABLES SÍNCRONOS BIESTABLE RS SÍNCRONO CON ENTRADAS ASÍNCRONAS
PR
R
Q
S PR CLR 0 1 1 0 0 0 1 1 1 1 1 1 1 1
C X X X
S X X X 0 1 0 1
R X X X 0 0 1 1
Q(t+1) 1 0 Indeseado 1* Q(t) 1 0 Indeterminado
Q
CLK
CLR
BIESTABLES SÍNCRONOS BIESTABLE RS SÍNCRONO ACTIVADO POR FLANCO (FLIP-FLOP)
C
S X 0 0 1 1
R X 0 1 0 1
Q Q Q 0 1 1
Q Q Q 1 0 1
R
Q
S CLK
Q
BIESTABLES SÍNCRONOS BIESTABLE JK MAESTRO ESCLAVO (MASTER-SLAVE)
BIESTABLES SÍNCRONOS FLIP-FLOP JK SÍNCRONO ACTIVADO POR FLANCO
J
Q
J
K
K Q
CLK
C
S X 0 0 1 1
Q
R X 0 1 0 1
Q
CLK
Q Q Q 0 1 Q
Q Q Q 1 0 Q
C
S X 0 0 1 1
R X 0 1 0 1
Q Q Q 0 1 Q
Q Q Q 1 0 Q
BIESTABLES SÍNCRONOS BIESTABLE TIPO D
C 0 0 0 0 1 1 1 1
D 0 0 1 1 0 0 1 1
Q(t) 0 1 0 1 0 1 0 1
Q(t+1) 0 1 Modo memoria 0 1 0 0 Modo transparente 1 1
D
CLK
Q
Q
BIESTABLES SÍNCRONOS FLIP-FLOP TIPO D
BIESTABLES SÍNCRONOS FLIP-FLOP TIPO T
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA SERIE SALIDA SERIE
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA SERIE SALIDA SERIE
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA SERIE SALIDA PARALELA
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA SERIE SALIDA PARALELA
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA PARALELA SALIDA SERIE
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA PARALELA SALIDA SERIE
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA PARALELA SALIDA PARALELA
REGISTROS DE DESPLAZAMIENTO REGISTRO DE DESPLAZAMIENTO ENTRADA PARALELA SALIDA PARALELA
CONTADORES Definición: Circuito secuencial cuyas salidas representan en un determinado código el número de impulsos que se aplican a la entrada Estructura: Biestables activados por flanco (FF) conectados entre sí Módulo (M): número de valores por los que pasa (divisor por M) Tipos: •Ascendentes •Descendentes Tipos: •Asíncronos → Los FF no comparten la misma señal de reloj •Síncronos → Los FF comparten la misma señal de reloj: •Síncronos propiamente dichos •Contadores basados en registros de desplazamiento
CONTADORES CONTADORES ASÍNCRONOS
Secuencia de cuenta
Condiciones de funcionamiento
A2 A1 A0 0
0
0
0
0
1
A0 cambia de 0 a 1
0
1
0
A0 cambia de 1 a 0; A1 cambia de 0 a 1.
0
1
1
A0 cambia de 0 a 1
1
0
0
A0 cambia de 1 a 0; A1 cambia de 1 a 0; A2 cambia
1
0
1
A0 cambia de 0 a 1
1
1
0
A0 cambia de 1 a 0; A1 cambia de 0 a 1.
1
1
1
A0 cambia de 0 a 1
CONTADORES CONTADORES ASÍNCRONOS → Utiliza FF tipo T o tipo JK QA
J
Entrada de impulsos a contar
J
Q
K
QC
J
Q
Q
l
l
K
Q
CLK
CLK
CLK l
“1”
QB
Q
l
K
Q
l
Problema → lento ya que cada FF debe esperar a que el anterior bascule Módulo = M = 2n = 23 = 8 impulsos
CONTADORES CONTADORES ASÍNCRONOS → Módulo ≠ 2n Se parte de un contador de M = 2n y se conecta la primera combinación no deseada mediante una NAND a las entradas CLEAR de los FF JK o T. Ej: contador M = 12 J
Entrada de impulsos a contar
l
K C
J
Q
l
KC
l
Q
l
K C
l l
J
l
CLK
CLK
CLK l
“1”
J
Q
l
Q
CLK l
K C
CONTADORES CONTADORES SÍNCRONOS → Ej: Contador M = 16 con biestables JK M/S TABLA DE TRANSICIONES
SEÑALES DE CONTROL
ESTADO
ESTADO ACTUAL
ENTRADAS SÍNCRONAS
SIGUIENTE
QD
QC
QB
QA
QD
QC
QB
QA
JD
KD
JC
KC
JB
KB
JA
KA
0
0
0
0
0
0
0
1
0
X
0
X
0
X
1
X
0
0
0
1
0
0
1
0
0
X
0
X
1
X
X
1
0
0
1
0
0
0
1
1
0
X
0
X
X
0
1
X
0
0
1
1
0
1
0
0
0
X
1
X
X
1
X
1
0
1
0
0
0
1
0
1
0
X
X
0
0
X
1
X
0
1
0
1
0
1
1
0
0
X
X
0
1
X
X
1
0
1
1
0
0
1
1
1
0
X
X
0
X
0
1
X
0
1
1
1
1
0
0
0
1
X
X
1
X
1
X
1
1
0
0
0
1
0
0
1
X
0
0
X
0
X
1
X
1
0
0
1
1
0
1
0
X
0
0
X
1
X
X
1
1
0
1
0
1
0
1
1
X
0
0
X
X
0
1
X
1
0
1
1
1
1
0
0
X
0
1
X
X
1
X
1
1
1
0
0
1
1
0
1
X
0
X
0
0
X
1
X
1
1
0
1
1
1
1
0
X
0
X
0
1
X
X
1
1
1
1
0
1
1
1
1
X
0
X
0
X
0
1
X
1
1
1
1
0
0
0
0
X
1
X
1
X
1
X
1
CONTADORES CONTADORES SÍNCRONOS → Ej: Contador M = 16 con biestables JK M/S Simplificamos por Karnaugh: JD=KD=QAQBQC JC=KC=QAQB JB=KB=QA JA=KA=“1”
CONTADORES CONTADORES SÍNCRONOS → Ej: Contador M = 16 con biestables JK M/S QA Entrada de impulsos a contar
l
QB
Q
J
l
K
Q
J
l
K
l
“1”
l
l
Q
J
l
CLK
CLK
CLK
l
QD
l
l
J
QC
l
K
Q CLK
l
K
CONTADORES CONTADORES SÍNCRONOS → Ej: Contador M = 16 con biestables JK M/S Podemos ahorrar puertas lógicas si nos damos cuenta que: JA=KA=“1” JB=KB=QA JC=KC=JBQB JD=KD=JCQC
CONTADORES CONTADORES SÍNCRONOS → Ej: Contador M = 16 con biestables JK M/S
QA C
l
QB
Q
l
l
K
J
Q
J
l
l
K
Q
J
l
CLK
CLK
CLK
QD
l
l
J
QC
l
“1”
l
K
Q CLK
l
K
CONTADORES CONTADORES SÍNCRONOS → Ej: UP/DOWN Counter M = 5
CONTADORES CONTADORES SÍNCRONOS → Ej: UP/DOWN Counter M = 5
CONTADORES CONTADORES SÍNCRONOS DE CUALQUIER SECUENCIA → Ej: Contador de la secuencia “2, 3, 5, 1, 7, 2, 3,...”
CONTADORES CONTADORES SÍNCRONOS DE CUALQUIER SECUENCIA → Ej: Contador de la secuencia “2, 3, 5, 1, 7, 2, 3,...”
CONTADORES CONTADORES SÍNCRONOS BASADOS EN REGISTROS DE DESPLAZAMIENTO → CONTADOR EN ANILLO
CONTADORES CONTADORES SÍNCRONOS BASADOS EN REGISTROS DE DESPLAZAMIENTO → CONTADOR JOHNSON O ANILLO INVERTIDO