Etc
Etc
Etc
1.1 INTRODUCCIÓN
R Q R Q
Q S Q
S
(a) (b)
Los biestables asíncronos (también llamados cerrojos, o latches en inglés) son cir-
cuitos asíncronos básicos capaces de almacenar un bit. El valor de un latch en la señal
de salida es función del valor de la señal de entrada y del valor de la señal de salida
actual, que llamaremos «estado actual» (retroalimentación). Estos biestables asíncronos
serán utilizados como bloques básicos en la construcción de biestables síncronos, como
veremos en la siguiente sección.
2
1.2. BIESTABLES ASÍNCRONOS (LATCHES)
R
Q
C
Q
S
latch. La columna rotulada Q es el estado del latch S-R antes de aplicar una combinación
de entradas a S y R. La columna rotulada como Q∗ es el estado del latch después de
aplicar las entradas al latch. Por tanto, la columna Q es el estado actual y la columna Q∗
es el estado siguiente. La información de esta tabla puede expresarse también mediante
una ecuación lógica, denominada ecuación característica o función de transición del
latch S-R:
Q∗ = S + R · Q
que se obtiene simplificando la salida Q∗ en función de las entradas S, R y Q.
Resulta interesante ver cómo es posible incluir una señal de control C, que determi-
nará en qué momentos el latch hará caso de sus entradas. Para ello basta emplear dos
puertas AND, como se muestra en la figura 1.2. Sólo cuando la señal de control C esté
a 1, será posible cambiar el estado del latch mediante S y R.
3
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Para ello se emplean los cronogramas, que no son más que diagramas donde, en el eje
horizontal se representa el tiempo, mientras que en el eje vertical se muestra el valor
lógico de determinadas señales (y que, por tanto, pueden tomar los valores cero o uno).
En el cronograma de la figura 1.4, se muestra un ejemplo del funcionamiento de un
latch D si suponemos que la salida inicialmente tiene el valor cero. Obsérvese cómo el
estado almacenado, Q, toma el valor de la entrada D (justo tras un pequeño retardo) en
el momento en que la señal C vale 1. Sólo si C vale 1 el latch es sensible a dicha entrada
D. A menudo, no obstante, en la representación temporal de las señales se desprecia el
valor de dichos retardos, y se muestran los cambios de modo instantáneo en el valor de
las mismas.
En la tabla 1.2 se observa la tabla de excitación del latch D en forma resumida que
da lugar a la ecuación característica:
Q∗ = D ·C +C · Q
4
1.3. BIESTABLES SÍNCRONOS (FLIP-FLOPS)
5
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
(cuando la señal W valga 1). Esta señal, como veremos, será de gran importancia cuando
construyamos el camino de datos de la CPU en un tema posterior.
La tabla de excitación de un flip-flop D (sin señal de permiso de escritura) es similar
a la de un latch D, la diferencia radica en la temporización. Mientras que en un latch el
estado cambia siempre que las entradas adecuadas cambien y la señal de control tenga
valor 1, en un flip-flop el estado cambia únicamente en un flanco de reloj (ascendente o
descendente), o sea, un flip-flop está gobernado por una señal de reloj (ver tabla 1.3 para
el caso de un flip-flop tipo D disparado por flanco descendente). La ecuación caracterís-
tica queda muy sencilla, puesto que el estado simplemente se actualiza con el valor de
la entrada D en el flanco correspondiente: Q∗ = D.
Tabla 1.3: Tabla de excitación del flip-flop tipo D disparado por flanco descendente.
6
1.3. BIESTABLES SÍNCRONOS (FLIP-FLOPS)
Tabla 1.4: Tabla de excitación del flip-flop tipo D disparado por flanco descendente con
señal de permiso de escritura.
Sin embargo, no son la única alternativa. Pueden construirse también otros tipos de flip-
flops, con comportamientos ligeramente distintos, que pueden resultar útiles en algunos
casos. Vamos a ver algunos en las siguientes secciones.
Figura 1.7: Flip-flop S-R (izquierda) y símbolo lógico del flip-flop S-R (derecha).
7
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Tabla 1.5: Tabla de excitación del flip-flop tipo S-R disparado por flanco ascendente.
J Q
K Q
Otro tipo de flip-flop es el J-K. Puede considerarse como una extensión de un flip-
flop tipo S-R, a cuyas entradas se asigna J = S y K = R. Sin embargo, mientras que
en aquel la combinación S = R = 1 no está permitida, el flip-flop J-K utiliza este caso
particular para agregar un modo de operación muy útil. La característica adicional del
dispositivo J-K es que su estado se alterna, es decir, cambia del 0 al 1 ó 1 al 0 cuando
J = K = 1. La ecuación característica de este flip-flop es Q∗ = K · Q + J · Q, obtenida a
partir de la tabla de excitación 1.6. En la figura 1.8 se puede ver el símbolo lógico que
representa a este flip-flop y su implementación.
Tabla 1.6: Tabla de excitación del flip-flop J-K disparado por flanco descendente.
Por último, el flip-flop tipo T se utiliza con frecuencia para la construcción de mó-
dulos contadores. Tiene una única entrada de excitación llamada T. La función de este
dispositivo consiste en invertir su estado cada vez que la señal de entrada T valga 1 du-
rante el flanco de activación. La tabla 1.7 resume el comportamiento de un flip-flop T
activado por flanco descendente cuya ecuación característica es Q∗ = Q · T + Q · T . El
símbolo lógico que representa a este flip-flop se puede ver en la figura 1.9.
8
1.4. DISEÑO/SÍNTESIS DE UN CIRCUITO SECUENCIAL
Tabla 1.7: Tabla de excitación del flip-flop T disparado por flanco descendente.
Estado actual: es la parte genuinamente secuencial del circuito, puesto que está en-
cargada de codificar el estado en el que se encuentra éste. Está compuesta por
k circuitos elementales de memoria, biestables, capaces de almacenar hasta 2k
estados diferentes (puesto que cada uno puede almacenar un 0 o un 1).
Función de transición: se trata de una función combinacional (en realidad es una mul-
tifunción formada por k funciones elementales, puesto que tiene k bits de salida)
que determina, a partir del estado y la entrada actuales cuál es el estado siguiente
al que debe pasar el circuito. Es, por tanto, la parte encargada de determinar la
evolución en el estado del mismo.
9
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
10
1.4. DISEÑO/SÍNTESIS DE UN CIRCUITO SECUENCIAL
7. Implementación del circuito: finalmente, sólo nos queda utilizar los n biestables
(que estarán todos conectados a una misma señal de reloj) y las expresiones obte-
nidas en el último paso para dibujar el circuito final, siguiendo la estructura de la
figura 1.10.
11
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
comenzar a contar unos en la entrada, y no volver a mostrar otro uno en la salida hasta
que cuente otros tres unos en la entrada. Realizar el diseño utilizando flip-flops tipo D
disparados por flanco ascendente.»
Figura 1.11: Autómata finito determinista del circuito detector de secuencias de tres
unos.
Tabla 1.8: Tabla de transición entre estados y función de salida para el ejemplo explica-
do.
12
1.4. DISEÑO/SÍNTESIS DE UN CIRCUITO SECUENCIAL
Q1 Q0 X Q∗1 Q∗0
0 0 0 0 0
Q1 Q0 S
0 0 1 0 1
0 1 0 0 0 0 0 0
0 1 1 1 0 0 1 0
1 0 0 0 0 1 0 0
1 0 1 1 1 1 1 1
1 1 0 0 0
1 1 1 0 1
Tabla 1.9: Tabla de transición entre estados y función de salida con los estados ya codi-
ficados para el ejemplo explicado.
Una vez que se ha decidido cómo codificar los estados, debemos de determinar cuá-
les deben ser las entradas de los biestables en cada momento para conseguir que se
produzcan los cambios de estado que deseamos. Para ello, es necesario recordar cómo
funciona el tipo de biestable que estemos utilizando.
En el caso de utilizar flip-flops tipo D, este paso es trivial, ya que estos biestables
almacenan directamente el valor que reciben a su entrada (cuando se produce el flanco
de reloj). El resultado para nuestro ejemplo, si llamamos D1 y D0 a las entradas de
los flip-flops Q1 y Q0 respectivamente, se muestra en la tabla 1.10. Obsérvese que no
es necesario realizar una nueva tabla, sino que se pueden añadir nuevas columnas a la
tabla 1.9.
Q1 Q0 X Q∗1 Q∗0 D1 D0
0 0 0 0 0 0 0
0 0 1 0 1 0 1
0 1 0 0 0 0 0
0 1 1 1 0 1 0
1 0 0 0 0 0 0
1 0 1 1 1 1 1
1 1 0 0 0 0 0
1 1 1 0 1 0 1
Tabla 1.10: Cálculo de los valores de las entradas de excitación de los dos flip-flops tipo
D.
13
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Q1 Q0 Q1 Q0 Q1
00 01 11 10 00 01 11 10 0 1
0
0
0 2
0 6
0 4
0 0
0
0 2
0 6
0 4
0 0
0
0 2
0
X X Q0
1
1
0 3
1 7
0 5
1 1
1
1 3
0 7
1 5
1 1
1
0 3
1
(a) Simplificación de D1 (b) Simplificación de D0 (c) Simplificación de S
D1 = Q1 · Q0 · X + Q1 · Q0 · X
D0 = Q1 · X + Q0 · X
S = Q1 · Q0
14
1.4. DISEÑO/SÍNTESIS DE UN CIRCUITO SECUENCIAL
15
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Q → Q∗ J K
0→0 0 —
0→1 1 —
1→0 — 1
1→1 — 0
Tabla 1.11: Determinación del valor de la entrada de un flip-flop tipo J-K en función del
estado actual y del estado deseado.
Con esta información, podemos construir una nueva tabla a partir de la tabla 1.9,
añadiéndole una columna por cada entrada de los flip-flops (J1 , K1 , J0 y K0 ) en las
que mostraremos los valores de las entradas de excitación de los flip-flops a usar en la
síntesis del circuito.
Para calcular el valor de cada una de las nuevas celdas, es suficiente con mirar el
estado actual y el estado siguiente de la misma fila. Por ejemplo, si el estado actual
es Q1 Q0 = 10 y la entrada X = 0, el estado siguiente debe ser Q∗1 Q∗0 = 00. Eso quiere
decir que el flip-flop Q1 debe de pasar de almacenar un 1 a un 0, lo cual lo podemos
conseguir de dos maneras: asignando J1 = 0 y K1 = 1, o bien J1 = 1 y K1 = 1. O lo que
es lo mismo, como se puede ver en la tabla 1.11, no nos importa el valor de J1 y el valor
de K1 debe de ser 1. Con un razonamiento análogo se determina que, para esta fila, el
valor de J0 debe de ser 0 y el de K0 es irrelevante.
Q1 Q0 X Q∗1 Q∗0 J1 K1 J0 K0
0 0 0 0 0 0 – 0 –
0 0 1 0 1 0 – 1 –
0 1 0 0 0 0 – – 1
0 1 1 1 0 1 – – 1
1 0 0 0 0 – 1 0 –
1 0 1 1 1 – 0 1 –
1 1 0 0 0 – 1 – 1
1 1 1 0 1 – 1 – 0
Tabla 1.12: Cálculo de los valores de las entradas de excitación de los dos flip-flops tipo
J-K.
16
1.5. CÁLCULO DE LA FRECUENCIA MÁXIMA DE OPERACIÓN DE UN
CIRCUITO SECUENCIAL
Q1 Q0 Q1 Q0 Q1 Q0
00 01 11 10 00 01 11 10 00 01 11 10
0 0 0 - - 0 - - 1 1 0 0 - - 0
0 2 6 4 0 2 6 4 0 2 6 4
X X X
1 0 1 - - 1 - - 1 0 1 1 - - 1
1 3 7 5 1 3 7 5 1 3 7 5
Q1 Q0 Q1
00 01 11 10 0 1
0 - 1 1 - 0 0 0
0 2 6 4 0 2
X Q0
1 - 1 0 - 1 0 1
1 3 7 5 1 3
J1 = Q0 · X
K1 = X + Q0
J0 = X
K0 = X + Q1
S = Q1 · Q0
17
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
J Q S
Q0
K Q
J Q
Q1
K Q
CLK
flip-flops, un nivel de puertas AND y otro de puertas OR antes de que las entradas de
los flip-flops queden de nuevo estables (nuevo estado siguiente). Las distintas puertas
y flip-flops de cada tipo operan en paralelo entre sí. La salida, al calcularse en paralelo
con los anteriores, no introduce retardo adicional. Así, el retardo total para actualizarse
el estado será: 20 ns (flip-flop) + 10 ns (AND) + 10 ns (OR) = 40 ns.
Por tanto, 40 ns es el tiempo mínimo que debemos dejar transcurrir desde que co-
mienza el ciclo hasta que se produzca el próximo flanco activo de la señal de reloj, pues-
to que si no, la actualización del estado no se realizará de forma correcta. Por tanto, la
frecuencia máxima de operación sería de: 401ns = 40×10 1 9
−9 s = 0,025×10 Hz = 25 MHz.
18
1.6. EJERCICIOS: CIRCUITOS SECUENCIALES
E Q0 Q0'
D0 Q0
Q0
Clk
Clk
D0
Q0
CLK
D Q Y
A A
X
B Q B
C C
J Q Z X
Y
K Q
Z
CLK
19
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
QA QB QC
D Q D Q D Q
Q Q Q
CLK
5. Obtener la tabla de estados y salidas del circuito de la figura (es decir, obtener el
autómata que lo describe).
E D Q S
CLK
20
1.6. EJERCICIOS: CIRCUITOS SECUENCIALES
8. (*) Diseñe un circuito secuencial síncrono con tres entradas (E2 , E1 y E0 ) y una
salida (S), y en el que la salida se activará (valdrá 1) si el valor de las tres entradas
ha coincidido durante los tres últimos ciclos. Es decir, si Ei (t) es el valor de la
entrada Ei al comienzo del ciclo t, S valdrá 1 en el ciclo t si y sólo si E0 (t) =
E1 (t) = E2 (t), E0 (t − 1) = E1 (t − 1) = E2 (t − 1) y E0 (t − 2) = E1 (t − 2) = E2 (t −
2).
10. (*) Implementar un flip-flop tipo D activo por flanco ascendente a partir de uno
tipo T activo por flanco descendente y el mínimo número de puertas NOR (no hay
disponibles puertas NOT).
21
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Q1 Q2 Q3 Q4
1 1
J Q J Q J Q J Q
K Q 1 K Q K Q 1 K Q
CLK
22
1.6. EJERCICIOS: CIRCUITOS SECUENCIALES
Reloj
D0
D1
Q1
Q0
14. Obtener los estados del registro de 5 bits mostrado (inicialmente 00000), para las
señales de reloj (CLK) y entrada de datos (IN) indicadas.
23
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
D0 = Ē + E × Q̄0
.
Para rellenar D0 , aplicamos la ecuación que nos dice que cuando E sea igual a 0,
D0 será siempre 1 y cuando E sea igual a 1 habrá que mirar el valor de Q̄0 .
Q0 E Q∗0 = D0 S
0 0 1 0
0 1 1 0
1 0 1 0
1 1 0 1
1,0 0
Q0 / 1 1 Q1 / 0
El cronograma queda:
24
1.7. SOLUCIÓN A EJERCICIOS SELECCIONADOS
Clk
D0
Q0
Para ser más correctos, todas las señales deberían reflejar un cierto retardo debido
al tiempo de respuesta de los componentes, pero no lo pide el enunciado.
Reloj
QA
QB
QC
Se trata, por tanto, de un contador binario de 3 bits cuya cuenta es: 0-1-2-3-4-5-
6-7.
La frecuencia máxima de funcionamiento viene determinada por el camino más
largo desde que se produce el flanco activo del reloj (flanco ascendente) hasta
que las salidas de los biestables y las entradas de excitación de los mismos están
estables. En nuestro caso, el camino más largo es la entrada D del biestable cuya
salida es QC .
1 1000
fmax = = × 106 Hz = 11,76MHz
Tmin 85
6. Dado que tenemos 4 estados, necesitaremos dos flip-flops para codificarlos (Q0 y
Q1 ). Utilizaremos la siguiente codificación para los estados:
Estado Q0 Q1
q0 0 0
q1 0 1
q2 1 0
q3 1 1
25
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Tendremos tres funciones de salida (o una función de 3 bits) cuya tabla de verdad
será:
Q0 Q1 L1 L2 L3
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
1 1 0 1 0
Y la tabla de la función de transición (Q∗0 y Q∗1 ) y las entradas de los dos biestables
(J0 , K0 , J1 y K1 ) será:
Q0 Q1 E Q∗0 Q∗1 J0 K0 J1 K1
0 0 0 0 1 0 — 1 —
0 0 1 0 0 0 — 0 —
0 1 0 1 0 1 — — 1
0 1 1 0 0 0 — — 1
1 0 0 1 1 — 0 1 —
1 0 1 0 0 — 1 0 —
1 1 0 0 0 — 1 — 1
1 1 1 0 0 — 1 — 1
L1 = Q0 Q1
L2 = Q0 Q1 + Q0 Q1 = Q1
L3 = Q0 Q1
J0 = Q1 E K0 = Q1 + E J1 = E K1 = 1
26
1.7. SOLUCIÓN A EJERCICIOS SELECCIONADOS
Q0 Q1 Q0 Q1
00 01 11 10 00 01 11 10
0
0
0 2
1 6
X 4X 0
0
X 2X 6
1 4
0
E E
1
1
0 3
0 7
X 5X 1
1
X 3X 7
1 5
1
Q0 Q1 Q0 Q1
00 01 11 10 00 01 11 10
0
0
1 2
X 6X 4
1 0
0
X 2
1 6
1 4
X
E E
1
1
0 3
X 7X 5
0 1
1
X 3
1 7
1 5
X
Figura 1.17: Simplificación de las entradas de los biestables J-K para el autómata de
control del sistema de tres luces.
J Q
Q0
K Q L1
L2
J Q
L3
Q1
1 K Q
CLK
27
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
Q1 Q0 E2 E1 E0 Q∗1 = D1 Q∗0 = D0
0 0 0 0 0 0 1
0 0 1 1 1 0 1
0 0 X X X 0 0
Q1 Q0 S
0 1 0 0 0 1 0
0 1 1 1 1 1 0 0 0 0
0 1 X X X 0 0 0 1 0
1 0 0 0 0 1 1 1 0 0
1 0 1 1 1 1 1 1 1 1
1 0 X X X 0 0
1 1 0 0 0 1 1
1 1 1 1 1 1 1
1 1 X X X 0 0
S = Q1 Q0
El mapa de Karnaugh para D1 es:
E1 E0 (E2 = 0) E1 E0 (E2 = 1)
00 01 11 10 00 01 11 10
00
0
0 4
0 12
0 8
0 00
16
0 0
20 28
0 24
0
01
1
1 5
0 13
0 9
0 01
17
0 0
21 29
1 25
0
Q1 Q0 Q1 Q0
11
3
1 7
0 15
0 11
0 11
19
0 0
23 31
1 27
0
10
2
1 6
0 14
0 10
0 10
18
0 0
22 30
1 26
0
D1 = Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 + Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0
El mapa de Karnaugh para D0 es:
28
1.7. SOLUCIÓN A EJERCICIOS SELECCIONADOS
E1 E0 (E2 = 0) E1 E0 (E2 = 1)
00 01 11 10 00 01 11 10
00
0
1 4
0 0
12 8
0 00
16
0 0
20
1
28 24
0
01
1
0 5
0 0
13 9
0 01
17
0 0
21
0
29 25
0
Q1 Q0 Q1 Q0
11
3
1 7
0 0
15 11
0 11
19
0 0
23
1
31 27
0
10
2
1 6
0 0
14 10
0 10
18
0 0
22
1
30 26
0
D0 = Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 + Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0
c) Transformamos las expresiones de las funciones de salida y transición usan-
do las leyes de De Morgan:
S = Q1 Q0 = Q1 Q0
D1 = Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 + Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 =
= Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 + Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 =
= (Q1 · E2 · E1 · E0 ) · (Q0 · E2 · E1 · E0 ) · (Q1 · E2 · E1 · E0 ) · (Q0 · E2 · E1 · E0 )
D0 = Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 + Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 =
= Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 + Q1 · E2 · E1 · E0 + Q0 · E2 · E1 · E0 =
= (Q1 · E2 · E1 · E0 ) · (Q0 · E2 · E1 · E0 ) · (Q1 · E2 · E1 · E0 ) · (Q0 · E2 · E1 · E0 )
29
CAPÍTULO 1. SISTEMAS DIGITALES SECUENCIALES
d) El retardo máximo viene dado por el tiempo de respuesta del biestable más
el tiempo necesario para propagar los nuevos valores a través de los dos
niveles de puertas NAND, el tiempo mínimo de ciclo será:
tmin = 50 + 15 + 15 = 80 ns
Por tanto, la frecuencia máxima será de 12.5 MHz. Nótese, en cualquier ca-
so, que para alcanzar esta frecuencia máxima de funcionamiento las entradas
Ei tendrán que estar disponibles al menos 15+15+15 = 45 ns antes del flan-
co activo de la señal de reloj (debido a la tres etapas de puertas NAND situa-
das a la entrada) y la salida no estará disponible hasta 50 + 15 + 15 = 80 ns
después del mismo (debido al biestable y a las dos etapas de puertas NAND
situadas justo a la salida).
10. Escribimos en primer lugar la tabla de excitación del flip-flop D y vemos las
entradas que habría que dar al flip-flop T para emular ese comportamiento:
D Q Q∗ T
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0
30