Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SDIG Problemas Resueltos PDF
SDIG Problemas Resueltos PDF
a) u w w x yz
b) v wx x y yz x z
c) w x( x y ) z zy
d) f A AB ( A B )C ( A B C ) D
e) g AB AC A BC
2.- En una estantería hay 5 libros v, w, x, y, z, que pueden cogerse cumpliendo las
siguientes condiciones (todas las condiciones han de cumplirse a la vez):
a) Se seleccionan v o w o ambos.
b) Se seleccionan x o z, pero no ambos.
c) Se seleccionan o bien v y z juntos, o bien, se hace una selección que no
incluya a ninguno de ellos.
d) Si se selecciona y, z también debe seleccionarse.
e) Si se selecciona w, v e y también deben ser seleccionados.
Construir la función lógica que verifique dichas condiciones.
5.- Una función de 3 variables f(a, b, c) ha de tomar el valor cero cuando la variable b se
encuentre en estado uno y la variable a no esté en estado uno. En los demás casos
posibles ha de adoptar el estado uno.
a) Realizar la tabla de verdad de esta función.
b) Obtener las expresiones canónicas de suma de productos y de producto de
sumas.
c) Dibujar los diagramas de Karnaugh en ambos casos y simplificar.
A
7.- Dada las formas de las señales de entrada de un circuito
lógico (a, b, c) y la señal de salida (z) según el dibujo, B
averiguar el circuito lógico de que se trata.
C
a D
1.- Diseñar un circuito con cuatro entradas (X, Y, Z, V) y dos salidas (F, G), lo más
sencillo posible, cuyo comportamiento quede descrito por las siguientes condiciones:
a) Si XY = 00, entonces F = Z y G = V.
b) Si XY = 01, entonces F = 0 y G = Z + V.
c) Si XY = 10, entonces F = ZV y G = 0.
d) Si XY = 11, entonces F = 1 y G = 1.
3.- Diseñar un circuito digital que sea capaz de detectar temperaturas comprendidas
entre T1 y T2, por un lado, y entre T3 y T4 por otro, verificándose:
T1 < T2 < T3 < T4
Suponer que el sistema toma información a partir de cuatro sensores térmicos capaces
de detectar si la temperatura es mayor que una dada. Implementar el circuito con puertas
NAND. Implementarlo también con puertas NOR.
4.- Diseñar un circuito digital capaz de detectar errores en los sensores del sistema
descrito en el ejercicio anterior. Realizar el diseño con puertas a dos niveles AND-OR.
Implementar la realización mínima de la función y una realización para evitar
fenómenos aleatorios estáticos y dinámicos.
5.- Realizar un circuito lógico que tenga por entradas los 4 bits de un número en código
Gray, y por salidas 4 bits del número correspondiente en binario. Hacer lo mismo para
la situación contraria. Implementar ambos circuitos con puertas XOR.
7.- Se desea transmitir una información codificada en binario natural entre dos lugares
alejados físicamente. Para proteger al sistema frente a posibles errores en la transmisión,
se desea añadir un bit de paridad par. Diseñar el circuito lógico que genere dicha
paridad e implementarlo con puertas XOR. Diseñar igualmente un circuito receptor que
sea capaz de detectar si ha habido errores en la transmisión.
2.- Sea un sistema digital que dispone de 16 líneas de petición de servicio activas en
baja. Diseñar un circuito que nos muestre a través de 2 displays el número de la línea de
petición de servicio de mayor prioridad activa en cada instante. Si no hay ninguna
activa, no mostrará nada. Hacer el diseño con dos codificadores de prioridad ‘148, dos
conversores de código ’48 y dos displays. Utilizar las puertas que sean necesarias.
3.- Se dispone de dos circuitos integrados. El primero de ellos contiene dos sumadores
completos de 2 bits, y el segundo es un multiplexor ‘151.
Utilizando los dos circuitos anteriores y los inversores que se precisen, diseñar un
circuito capaz de detectar la presencia de 3 y sólo 3 bits a “1” en palabras de 6 bits en
paralelo.
5.- Diseñar un circuito que realice la suma de un número C de 4 bits (c3c2c1c0) con el
mayor de los dos números D (d3d2d1d0) y E (e3e2e1e0). Los tres números están
codificados en el sistema binario natural. Si los números D y E son iguales, el resultado
ha de ser igual al número C. Utilizar para el montaje los circuitos combinacionales
integrados que sean necesarios.
6.- Diseñar un sumador aritmético en código BCD para números positivos de una cifra a
partir de dos sumadores integrados ’83 y las puertas lógicas que sean necesarias.
Generalizarlo para sumar números BCD de más de una cifra.
longitud del tren. Diseñar dicho autómata asíncrono suponiendo que los trenes no van a
cambiar la dirección de su marcha, y que no puede haber más de un tren en el cruce al
mismo tiempo.
3.- Diseñar un circuito secuencial asíncrono con 2 entradas D y C, y una salida Q, tal
que la salida se haga igual a D en el instante en que C pase de 0 a 1. En el resto de los
casos Q no debe cambiar. Suponer que las dos entradas D y C no pueden cambiar
simultáneamente. Implementar el circuito con biestables R-S constituidos por puertas
NAND.
X1
Nota: dos impulsos sucesivos en X1 con X2=0 son:
1 2
X2=0
5.- Diseñar un biestable r-s activado por flanco de bajada. Realizar el circuito utilizando
biestables R-S.
Reset
Set
CLK
2.- Complete el diagrama temporal del siguiente circuito. Observe que las entradas de
reloj de los dos biestables son diferentes. La señal de Reset es asíncrona. Q 1 y Q2 valen
inicialmente cero.
Reset
Q1 Q1 Q2 Q2 CLK
Reset Reset
Reset
CLK D1 CLK D2 Q1
Q2
1.- Se dispone de una señal digital periódica C de período T y ancho de impulso T/10. A
partir de dicha señal y en sincronismo con sus flancos de subida se necesita generar otra
señal periódica S cuyo período y ancho de impulso deben ser seleccionables mediante
dos señales de control C0 y C1 tal y como se indica en la tabla adjunta.
2.- Un circuito secuencial tiene dos entradas (X1, X2) y dos salidas (Z1, Z2). Las entradas
representan un número en binario natural N de 2 bits. Si el valor presente de N es mayor
que el valor inmediatamente anterior, entonces la salida Z1 se pone a 1. Si dicho valor es
menor, Z2 se pone a 1. En cualquier otro caso, Z 1 = Z2 = 0. Suponer que el circuito se
inicializó hace tiempo.
a) Describir el diagrama de flujo del sistema como autómata de Mealy.
b) ¿Cuántos estados tendrá el circuito equivalente de Moore?
c) Diseñar el circuito con flip-flops tipo D activos con el flanco negativo de la
señal de reloj.
3.- Los números entre 0 y 3, expresados en binario natural, se transmiten en serie por
una línea de datos Y. Primero se transmite el bit más significativo. La transmisión está
sincronizada con una señal de reloj. Se desea diseñar un circuito secuencial tal que la
salida Z nos entregue un 1 durante el tiempo del segundo bit si la combinación que llegó
a través de Y fue 0 ó 3, permaneciendo el resto del tiempo a 0. Por último, la entrada X
es la única que puede inicializar el sistema: X = 1 provoca el paso al estado inicial, y en
ese estado queda el sistema hasta que X = 0. En el momento que X = 0, de nuevo se
tratará de detectar el 0 o el 3 (X = 1 obliga a Z = 0).
X
Detector
Z
de 0 y 3
Y
4.- Diseñar un divisor de frecuencia por 3 síncrono con flip-flops JK activados por el
flanco negativo.
5.- Diseñar un sistema secuencial capaz de detectar la secuencia 11010 en una línea X
de datos serie sincronizados con una señal de reloj C:
a) Como autómata de Moore.
b) Como autómata de Mealy.
c) Con un registro de desplazamiento.
6.- Diseñar un generador de secuencias que, a partir de una señal de reloj C, produzca
las señales S1 a S8 que aparecen representadas en la figura. Utilizar para ello un contador
integrado ‘161, un decodificador integrado ‘138 y las puertas NAND que sean
necesarias.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reloj
S1
S2
S3
S4
S5
S6
S7
S8
7.- Construir un registro que permita realizar las siguientes operaciones: escritura desde
un bus, lectura a un bus, complemento y puesta a cero. Todas ellas deberán ser
síncronas salvo la de lectura. Implementarlo con flip-flops JK y la lógica que sea
necesaria.
Todas estas operaciones deben efectuarse en sincronismo con la señal de reloj. Efectuar
el diseño utilizando flip-flops tipo D y los circuitos combinacionales integrados que
sean necesarios.
9.- Diseñar un contador binario síncrono de módulo 16 con flip-flops JK activados por
flanco de subida. Generalizar el montaje para cualquier contador de módulo 2n, con n
entero.
f) u w w x yz (Taub 33)
h) w x( x y ) z zy (Taub 32)
w (1) x( x y ) z y ( 2) xx x y z y (3) x y z y ( 4) z y
w z y
f (1)( A B ) ( A B )C ( A B C ) D ( 2)( A B C ) ( A B C ) D
(3)( A B C D )
f A BC D
donde hemos aplicado (1), (2), (3) T5 A+ A B=A+B
j) g AB AC A BC (Floyd 221)
g (1) AB·AC A BC ( 2)( A B )( A C ) A·BC (3)( A·A A·C A·B B·C ) A·BC
( 4) A A·C A B (1 C ) B·C (5) A A·C A·B B·C (6) A A B BC (7) A B·C
f A BC
donde hemos aplicado (1) y (2) T7 De Morgan, (3) PE prop. distributiva, (4) T3
A·A=A y PE A·(B+C)=AB+AC, (5) T2 A+1=1, (6) y (7) T4 ley de absorción A
+ AB=A
2.- En una estantería hay 5 libros v, w, x, y, z, que pueden cogerse cumpliendo las
siguientes condiciones (todas las condiciones han de cumplirse a la vez): (Taub 35)
f) Se seleccionan v o w o ambos.
g) Se seleccionan x o z, pero no ambos.
h) Se seleccionan o bien v y z juntos, o bien, se hace una selección que no
incluya a ninguno de ellos.
i) Si se selecciona y, z también debe seleccionarse.
j) Si se selecciona w, v e y también deben ser seleccionados.
Construir la función lógica que verifique dichas condiciones.
Como todas las proposiciones han de cumplirse a la vez las funciones derivadas de las
distintas condiciones han de enlazarse mediante una operación AND.
f (v w)( x z )(v z )( y z )( w vy )
f (v w)( x z xz )(v·z vz )( y z )( w vy )
(1) (2) ( 3) ( 4) ( 5)
(v w)(v·z vz ) v
v·z vvz
vw z vwz vz vw z
0 vz
con lo que
f (vz vw z )( x z xz )( y z )( w vy )
(1) (2) ( 3) ( 4)
(vz vw z )( w vy ) v wz vvyz
v
w ·z vvwy z v wz vyz
w
vyz 0 0
( x z xz )( y z ) x y z
xz z x yz
xzz x y·z x·yz xz
0 xz
La función vale:
f (v wz vyz )( x y·z x·y z xz )
f v xz ( w y )
d) a(b c) ab ac
f X YZ X ·YZ X ·(Y Z ) X Y X Z
Vemos que la función que se nos dice no es el complemento de la función inicial. Si
además calculamos la tabla de verdad de las tres funciones observaremos que la que
hemos calculado es la única correcta.
X Y Z X Y Z XY XZ YZ X+YZ XY Z XY X Z
0 0 0 1 1 1 1 1 0 0 1 1
0 0 1 1 1 0 1 0 0 0 1 1
0 1 0 1 0 1 0 1 0 0 1 1
0 1 1 1 0 0 0 0 1 1 0 0
1 0 0 0 1 1 0 0 0 1 1 0
1 0 1 0 1 0 0 0 0 1 0 0
1 1 0 0 0 1 0 0 0 1 1 0
1 1 1 0 0 0 0 0 1 1 0 0
5.- Una función de 3 variables f(a, b, c) ha de tomar el valor cero cuando la variable b se
encuentre en estado uno y la variable a no esté en estado uno. En los demás casos
posibles ha de adoptar el estado uno. (Mandado 42, Padilla 37)
d) Realizar la tabla de verdad de esta función.
a b c f
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
Como producto de sumas nos fijamos en las combinaciones para las que la
función da cero. Obtendremos los productos canónicos que faltan en la
expresión anterior.
f ( 2,3) (a b c)·(a b c)
ab ab
c 00 01 11 c10 00 01 11 10
0 1 1 01 4 0
0 2 6 0 2 6 4
1 1 1 11 0
1 3 7 5 1 3 7 5
b a ab
f (a, b, c) a b
IV III
Bloque I:
F = a+b A
a= c d e
b= C ·D B
Bloque II: f
c= A C
d= e· f
D
Bloque III:
e=AB
f=C
Si sustituimos:
F (c d ) (C ·D ) ( A e· f ) (C ·D ) ( A AB·C ) (C ·D )
Simplificamos al máximo:
donde hemos aplicado (1) T7 (leyes de Morgan), (2) T3 (AA=A) y (3) T4 (ley de
aborción).
Finalmente: F CD
7.- Dada las formas de las señales de entrada de un circuito lógico (a, b, c) y la señal de
salida (z) según el dibujo, averiguar el circuito lógico de que se trata.
a 0 0 0 1 1 0 0 1 0 0 1 1
b 1 0 1 0 0 1 0 0 0 0 1 1
c 1 1 0 1 0 0 0 0 1 0 1 0
z 0 1 1 0 1 1 0 1 1 0 1 0
a b c z
0 0 0 0 ab
c 00 01 11 10
0 0 1 1
0 1 0 1
0 0 1 0 1
0 1 1 0 0 2 6 4
1 0 0 1 1 1 0 0
1
1 0 1 0 1 3 7 5
1 1 0 0
1 1 1 1
No se puede realizar ninguna agrupación así que tomamos todos los “1” o todos los “0”.
abc
c
1.- Diseñar un circuito con cuatro entradas (X, Y, Z, V) y dos salidas (F, G), lo más
sencillo posible, cuyo comportamiento quede descrito por las siguientes condiciones:
(Sin referencia)
e) Si XY = 00, entonces F = Z y G = V.
f) Si XY = 01, entonces F = 0 y G = Z + V.
g) Si XY = 10, entonces F = ZV y G = 0.
h) Si XY = 11, entonces F = 1 y G = 1.
X ·Y ·Z X ·Z ·V
F X ·Y X ·Z ·V X ·Y ·Z
Para G:
X ·Y
XY
00 01 11 10
ZV
00 1
0 4 12 8
G X ·Y Y ·Z X ·V
01 1 1 1
1 5 13 9
11 1 1 1
3 7 15 11
10 1 1
2 6 14 10
X ·V Y·Z
Implementado en un circuito AND-OR: X X ·Y ·Z
Y
Z
X
Z
X·Z·V F X ·Y
V
X X ·Y
Y
Y Y·Z G X ·Y
Z
X X ·V
V
Decima A B C D f
l
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0AB 1 1
- 1 0 CD1 000 * 01 11 10
- 1 0 1 1 *
- 1 1 000 0 1 *0 * 12 1
- 1 1 0 1 *
4 8
B·C
- 1 1 011 0 1 *1 5
* 1 9
13
- 1 1 1 1 *
11 * *
3 7 15 11
b) Minimizamos la expresión mediante el
diagrama de Karnaugh expresando la 10 1 * *
función como suma de productos y como 2 6 14 10
producto de sumas.
B·D
f (0,1,2,8,9) (10,11,12,13,14,15)
como suma de productos
B·C B·D
AB
00 01 11 10
CD
00 0
0 * 12
4 8
01
1
0
5
*
13 9
CD
11 0 0 * *
3 7 15 11
10 0 * *
2 6 14 10
B
f (3,4,5,6,7)· (10,11,12,13,14,15) B·(C D ) como producto de sumas
B
C f ( B·C )·( B·D)
B
D
d) Complementando dos veces la función expresada como producto de sumas podemos
representarla con puertas NOR.
f B·(C D ) B (C D )
B
f B (C D )
C
D
Vemos que la representación con puertas NOR requiere una puerta menos.
3.- Diseñar un circuito digital que sea capaz de detectar temperaturas comprendidas
entre T1 y T2, por un lado, y entre T3 y T4 por otro, verificándose:
T1 < T2 < T3 < T4
Suponer que el sistema toma información a partir de cuatro sensores térmicos capaces
de detectar si la temperatura es mayor que una dada. Implementar el circuito con puertas
NAND. Implementarlo también con puertas NOR. (Sin referencia)
(1) T‹T1 A=0 (2) T›T1 A=1 (3) T›T1 A=1 (4) T›T1 A=1 (5) T›T1 A=1
T‹T2 B=0 T‹T2 B=0 T›T2 B=1 T›T2 B=1 T›T2 B=1
T‹T3 C=0 T‹T3 C=0 T‹T3 C=0 T›T3 C=1 T›T3 C=1
T‹T4 D=0 T‹T4 D=0 T‹T4 D=0 T‹T4 D=0 T›T4 D=1
Nunca puede darse el caso de que un sensor asociado a una Ti sea 0 y otro asociado a
una Tj con j>i sea 1, pues significaría que la T es menor que una de referencia pero
mayor que otra de mayor valor que la primera.
A B C D f
0 0 0 0 0
0 0 0 1 *
0 0 1 0 *
0 0 1 1 *
0 1 0 0 *
0 1 0 1 *
0 1 1 0 *
0 1 1 1 *
1 0 0 0 1
1 0 0 1 *
1 0 1 0 *
1 0 1 1 *
1 1 0 0 0
Problemas Tema 7 Página 22
1 1 0 1 *
1 1 1 0 1
1 1 1 1 0
Sistemas Digitales
AB
CD
00 01 11 10 A·B
00 0
* 4
1
12 8
01 * * * *
1 5 13 9
11 * * *
3 7 15 11
10 * * 1 *
2 6 14 10
1
C·D
f (8,14)
(1,2,3,4,5,6,7,9,10,11,13)
A·B C ·D
como suma de productos.
A BC
AB
00 01 11 10
CD
00 0 0
* 0
4 12 8
01 * * * *
1 5 13 9
f (0,12,15)· (1,2,3,4,5,6,7,10,11,13) como
11 * * 0 *
3 7 15 11
( A)·(B C )·D
10 * * *
2 6 14 10
1
producto de sumas.
D
f A·B C ·D ( A ·B )·(C ·D )
A
B
f ( A·B)·(C·D)
C
D
Para implementarlo con puertas NOR complementamos dos veces la función expresada
como producto de sumas.
f ( A)·(B C )·(D ) A ( B C ) D
4.- Diseñar un circuito digital capaz de detectar errores en los sensores del sistema
descrito en el ejercicio anterior. Realizar el diseño con puertas a dos niveles AND-OR.
(Añado yo:) Implementar la realización mínima de la función y una realización para
evitar fenómenos aleatorios estáticos y dinámicos. (Sin referencia).
Ocurrirá un error en el sistema anterior siempre que se de alguna de las situaciones que
marcamos como no realizables. Tenemos pues que definir una función que de uno en las
combinaciones que marcamos antes con un *. La tabla de verdad sería.
A B C D f
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Como tenemos que realizar un circuito AND-OR expresaremos la función como suma
de productos. Si dibujamos el diagrama de de Karnaugh
AB
y simplificamos, 00 01 11 10
CD
00 0
1 4 C·D
12 8
01 1 1 1 1
1 5 13 9
11 1 1 1
3 7 15 11
10 1 1 1
2 6 14 10
1
B·C A·B A·D
f A·B B·C C ·D
A
B
B f A·
C
C
D
Para conseguir una realización segura hemos de cubrir todas las adyacencias, lo que se
consigue solapando todas las agrupaciones del mapa de Karnaugh. Si añadimos el
término en línea discontinua conseguimos el solapamiento de todos los productos.
A
B
B
C
C
D
A
D
5.- Realizar un circuito lógico que tenga por entradas los 4 bits de un número en código
Gray, y por salidas 4 bits del número correspondiente en binario. Hacer lo mismo para
la situación contraria. Implementar ambos circuitos con puertas XOR. (Mandado 128)
00 1 1
0 4 12 8 g 3·g 2
01 1 1
1 5 13 9
11 1 1
3 7 15 11
10 1 1
2 6 14 10
g 3·g 2
g3 g2 g 3·g 2·g1
00 01 11 10
g1 g0
00 1 1
0 4 12 8 g 3·g 2·g1
01 1 1
1 5 13 9
11 1 1
3 7 15 11
10 1 1
2 6 14 10
01 1
1 5
1
13 9
g 3·g 2·g1·g 0
11 1 1
3 7 15 11
g 3·g 2·g1·g 0
10 1 1
2 6 14 10
b3 g 3
b2 b3 g 2
b1 b2 g1
b0 b1 g 0
(msb) g3
00 1 1
0 4 12 8 b3·b 2
01 1 1
1 5 13 9
11 1 1
3 7 15 11
10 1 1
2 6 14 10
b3 b2 b3·b 2
00 01 11 10
Como la tabla de Karnaugh es igual a la que b1 b0
obtuvimos para b2 tendremos:
00 1 1
0 4 12 8
g 2 b3 b 2 b 2·b1
01 1 1
Calculamos la expresión de g1: 1 5 13 9
11 1 1
3 7 15 11
10 1 1
2 6 14 10
b3 b2
00 01 11 10
b1 b0
00 0 4 12 8
b1·b0
Con lo que g 0 b1·b0 b1·b 0 b1 b0 01 1 1 1 1
1 5 13 9
11
3 7 15 11
10 1 1 1 1
2 6 14 10
b1·b0
En resumen:
g 3 b3
g 2 b3 b 2
g1 b2 b1
g 0 b1 b0
(msb) b3 g3 (msb)
g2
b2
g1
b1
g0 (lsb)
(lsb) b0
Dibujamos la tabla de verdad para ambos valores de la señal de control. Con E=0 la
función dará cero si el número decimal es par y para E=1 dará cero si el número decimal
es múltiplo de 3.
E=0 E=1
Problemas Tema 7 Página 31
Sistemas Digitales
7.- Se desea transmitir una información codificada en binario natural entre dos lugares
alejados físicamente. Para proteger al sistema frente a posibles errores en la transmisión,
se desea añadir un bit de paridad par. Diseñar el circuito lógico que genere dicha
paridad e implementarlo con puertas XOR. (Añado yo:) Diseñar igualmente un circuito
receptor que sea capaz de detectar si ha habido errores en la transmisión.(Sin referencia)
Vamos a considerar que se transmiten tres bits y generaremos el 4º bit como bit de
paridad par. La función generará un 1 cuando en el número binario haya un número
impar de unos y un 0 en caso contrario. De esta manera el número de 4 bits que se
transmite siempre tendrá un número par de unos.
a b c P
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
a·b·c a·b·c
ab
c 00 01 11 10
0 1 1 a·b·c
0 2 6 4
1 1
1 3
1
7 5
a·b·c
P a·b·c a·b·c a·b·c a·b·c a·(b·c b·c) a (b·c b·c) a·(b c) a·(b c) a b c
El circuito por tanto comprendería dos puertas XOR, pues no se utilizan normalmente
XOR de más de dos entradas:
P
c
P
(paridad del emisor)
O visto de otra manera, si en una secuencia la paridad es par (número par de “1”s) la
XOR de todos los bits (incluyendo el de paridad) dará siempre cero.
Denominaremos las 6 entradas como I5…I0 y las 64 salidas como O0 … O63 , activas
por nivel bajo. Cada decodificador ‘138 posee 3 entradas y 8 salidas, de manera que con
8 de los decodificadores abarcamos las 64 salidas. El noveno decodificador lo vamos a
utilizar para seleccionar cual de los 8 decodificadores está activo. Cada salida de este
decodificador ( O0 x … O7 x ) habilitará uno solo de los restantes decodificadores. Este
decodificador recibirá como entradas los tres bits más significativos de la entrada (I 5 I4
I3), mientras que los otros 8 decodificadores recibirán como entrada los tres menos
significativos (I2 I1 I0). Creamos una tabla en la que mostramos el decodificador activo y
las posibles salidas según los valores de los tres bits más significativos de la entrada.
I5 I4 I3 Salidas Decodificador
0 0 0 0-7 a
0 0 1 8-15 b
0 1 0 16-23 c
0 1 1 24-31 d
1 0 0 32-39 e
1 0 1 40-47 f
1 1 0 48-55 g
1 1 1 56-63 h
Por ejemplo si los tres bits más significativos valen 011 estará activo el
decodificador d y dependiendo de los tres bits menos significativos de la entrada la
salida podrá valer desde 24 (011 000) hasta 31 (011 111).
El noveno decodificador (x) recibe las entradas más significativas (I5 I4 I3) y genera
una salida que actuará directamente sobre la entrada de habilitación del decodificador
correspondiente. Para habilitar un decodificador es necesario que E 1=E2=0 y E3=1. La
señal E es la entrada de habilitación general de todo el circuito.
I5 I4 I3
E1x E E
2x 3x
O0 xO1 xO 2 O
x 3O O O6O
x 4x 5x x 7x
Cada uno de los otros ocho decodificadores decodifica los tres bits menos
significativos cuando lo habilite el decodificador x.
O0 x O7 x
I2 I1 I0 I2 I1 I0
x x
Ea I2a I1a I0a Eh I2h I1h I0h
DECODIFICADOR `138 DECODIFICADOR `138
(a) (h)
O0a O1a O2a O3a O4a O5a O6a O7a O0h O1h O2h O3h O4h O5h O6h O7h
O0O1O2O3O4O5O6O7 O56O57O58O59O60O61O62O63
Estudiemos el caso en que la entrada vale 011 010. El decodificador x está habilitado
(E=1). Recibe los tres bits más significativos (011) y activa (pone a cero) su salida O3 x
, pues a la entrada en binario le corresponde el decimal 3. Esta salida actúa sobre la
entrada de habilitación del decodificador d, cuyas salidas abarcan del 24 al 31. El
decodificador d decodifica los tres bits menos significativos de la entrada (I 2 I1 I0)
activando su salida número 2 (la correspondiente al código binario de los tres bits
menos significativos de la entrada). Esta salida es la número 26, con lo que hemos
decodificado los 6 bits de entrada.
2.- Sea un sistema digital que dispone de 16 líneas de petición de servicio activas en
baja. Diseñar un circuito que nos muestre a través de 2 displays el número de la línea de
petición de servicio de mayor prioridad activa en cada instante. Si no hay ninguna
activa, no mostrará nada. Hacer el diseño con dos codificadores de prioridad ‘148, dos
conversores de código ’48 y dos displays. Utilizar las puertas que sean necesarias.
I0a I1a I2a I3a I4a I5a I6a I7a EIa I0b I1b I2b I3b I4b I5b I6b I7b EIb
CODIFICADOR `148 CODIFICADOR `148
(a) (b)
O2a O1a O0a EOa GSa EOb GSb O2b O1b O0b
EO GS O 3 O2 O1 O0
Para A0b:
O3 ·O 2
O3O2
00 01 11 10
O1O0
00 1
0 4 12
A0b O3 ·O 2 O3 ·O1
8
01 1
1 5 13 9
11 1 1
3 7 15 11
O3O2
00 01 11 1 10 1
O O 10
1 0 2 6 14 O3 ·O1
10
1 8 O3 ·O 2 ·O1
Para A3a: 00 0 4 12
01 1
1 5 13 9
11
3 7 15 11
10 A3 a O3 ·O 2 ·O1
2 6 14 10
Para A2a:
O3O2 O3 ·O 2
00 01 11 10
O1O0
00 0
1 4 12 8
01 A2 a
1 O3 ·O2 O2 ·O1
1 5 13 9
11 1 1
3 7 15 11
10 1 1
2 6 14 10
O 2 ·O1
Para A1a:
O3 ·O2 ·O1
O3O2
00 01 11 10
O1O0
00 0
1
4 12 8
11 1 1
3 7 15 11
10 1 1
2 6 14 10
O3 ·O1
A3a A2a
GS
“0”
CONVERSOR DE CONVERSOR DE
CÓDIGO `48 CÓDIGO `48
(b) (a)
a b c d e f g a b c d e f g
RBO b RBO a
Dígito más significativo Dígito menos significativo
(Decenas) (Unidades)
3.- Se dispone de dos circuitos integrados. El primero de ellos contiene dos sumadores
completos de 2 bits, y el segundo es un multiplexor ‘151.
Utilizando los dos circuitos anteriores y los inversores que se precisen, diseñar un
circuito capaz de detectar la presencia de 3 y sólo 3 bits a “1” en palabras de 6 bits en
paralelo. (Padilla 74)
Luego:
a b cn Nº “1” cn+1 s
0 0 0 0 0 0 0
1 0 0 1 1 0 1 Nº “1” cn+1 s
2 0 1 0 1 0 1 0 0 0
3 0 1 1 2 1 0 1 0 1
4 1 0 0 1 0 1 2 1 0
5 1 0 1 2 1 0 3 1 1
6 1 1 0 2 1 0
7 1 1 1 3 1 1
Utilizando esta última tabla que relaciona el número de bits a uno en la entrada con la
salida del sumador podemos generar la tabla de verdad de la función que detecta la
presencia de solo 3 bits a uno en la palabra de 6 bits. Basta con estudiar las
combinaciones de la salida de los dos sumadores correspondientes a entradas de 6 bits
que solo tienen 3 bits a uno. En todos estos casos la función debe dar 1 pues se ha
detectado la presencia de tres unos en la entrada.
Nº 1 Sa Nº 1 Sb Ca Sa Cb Sb f
0 3 0 0 1 1 1
1 2 0 1 1 0 1
2 1 1 0 0 1 1
3 0 1 1 0 0 1
Si aplicamos las salidas Ca, Sa, Cb a las entradas de selección (SL) del multiplexor
vemos que las entradas del multiplexor han de tomar los siguientes valores.
SL2 = Ca I1 = S b I0 = I2 = I5 = I7 =0
SL1 = Sa I3 = S b
SL0 = Cb I4 = S b
I6 = S b
A5 A4 A3 A2 A1 A0
A0 B0 CI A0 B0 CI
SUMADOR (a) SUMADOR (b)
CO S0 CO S0
Ca Sa Cb Sb
0
0
MULTIPLEXOR `151
Z=f Z
Veamos un ejemplo. Supongamos que el número es el 110 001, que tiene tres unos. La
salida del sumador a (suma los 3 bits más significativos) es Sa=0 Ca=1. El sumador b
nos da Sb=1 Cb=0. Los bits Ca, Sa, Cb (100) direccional la entrada I 4 del multiplexor
que vale Sb, es decir, uno.
f ( a, b, c, d ) (0,2,4,5,6,11,12,14)
I0 = d , I1 = d , I2 = 1, I3 = d , I4 = 0, I5 = d, I6 = d , I7 = d
El circuito sería:
d
Multiplexor
habilitado
1 0 a bc 0
I0 I1 I2 I3 I4 I5 I6 I7 S2 S1 S0 E
MULTIPLEXOR `151
Z=f Z
5.- Diseñar un circuito que realice la suma de un número C de 4 bits (c3c2c1c0) con el
mayor de los dos números D (d3d2d1d0) y E (e3e2e1e0). Los tres números están
codificados en el sistema binario natural. Si los números D y E son iguales, el resultado
ha de ser igual al número C. Utilizar para el montaje los circuitos combinacionales
integrados que sean necesarios.
Necesitamos hacer una comparación, una selección y una suma por lo que usaremos un
comparador binario `85, un multiplexor `157 y un sumador completo de cuatro bits `83.
El comparador `85 compara dos números de cuatro bits y genera tres bits de salida:
OA>B=1 si A>B, OA<B=1 si A<B y OA=B=1 si A=B y la entrada de conexión IA=B=1.
A3 A2 A1 A0 B3 B2 B1 B0
IA>B
A B
IA=B
COMPARADOR `85
IA<B
Utilizaremos este integrado con la entrada I A=B=1 para comparar los números D y E. Las
salidas las aplicaremos directamente al multiplexor `157. Si la entrada A / B del
multiplexor vale cero tendremos como salida los cuatro bits del número A, si vale uno
tendremos B. En cualquiera de los casos si el multiplexor no está habilitado la salida es
cero. Conectando la salida OA<B del comparador a la entrada A / B del multiplexor y la
salida OA=B a la entrada de habilitación del multiplexor tendremos como salida del
multiplexor el mayor de los números D y E, y si son iguales la salida será cero.
A3 A2 A1 A0 B3 B2 B B A / BE
1 0
A B
MULTIPLEXOR `157
Z =AóB
Z3 Z2 Z1 Z0
Por último solo nos queda sumar esta salida con el número C utilizando para ello un
sumador `83. El circuito sería el siguiente:
d3 d2 d1 d0 e3 e2 e1 e0
A A A A B3 B2 B1 B0
IA>B 3 2 1 0
1 IA=B COMPARADOR `85
IA<B OA<B OA=B OA>B
d3 d2 d1 d0 e3 e2 e1 e0
A3 A2 A1 A0 B3 B2 B B A / B
1 0 E
MULTIPLEXOR `157
Z3 Z2 Z1 Z0
c3 c2 c1 c0 0
A3 A2 A1 A0 B3 B2 B1 B0 CI
SUMADOR `83
S3 S2 S1 S0 CO
6.- Diseñar un sumador aritmético en código BCD para números positivos de una cifra a
partir de dos sumadores integrados ’83 y las puertas lógicas que sean necesarias.
Generalizarlo para sumar números BCD de más de una cifra. (Padilla 55)
Un número en BCD de una cifra se corresponde con un código binario de cuatro bits
en el que hemos representado un número del 0 al 9. Si sumamos dos dígitos en BCD
con un sumador `83 obtendremos una salida de cuatro bits más un posible acarreo. Esta
salida está en binario, no en BCD. Hemos de diseñar un circuito que transforme esa
salida en dos dígitos BCD pues puede que el resultado de la suma sea superior a 9.
S3 S2 S3 S2
Como se puede observar para las
00 10 01 11 10
combinaciones de C, S3, S2, S1 y S0 de la tabla, 00 01S1 S0 11
S1 S0
obtenemos el código BCD correcto si
001 1 16 * 20 S3·S2 * *
sumamos 6 al resultado de la suma en binario 00 28 24
0 4 12 8
Además hemos de poner el dígito BCD más
significativo a uno. Representamos en un 01 011 1 * * *
17 21 29 25
1 5 13 9
diagrama de Karnaugh con un 1 los resultados
de la suma para los que hay que corregir. 11 11 * * * *
7
1 15 191 11 23 31 27
Tenemos 5 variables por lo que hemos de 3
hacer dos tablas, una para C=0 y otra para 10 101 1 1 * S3·S *1 *
18 22 30 26
C=1. Resultados de la suma por encima de 18 2 6 14 10
nunca se van a dar. C=0 C C=1
Vemos que en el caso de C=1 siempre hay
que corregir, como ya sabíamos. Las agrupaciones hechas en la tabla de C=0 se solapan
con las de la tabla C=1 con lo que variable C desaparece. La expresión final de la
función (Cout) que nos indica cuando hay que corregir el resultado es:
Cout C S 3 ·S 2 S 3 ·S1
En el circuito usaremos dos sumadores: uno para sumar los dos números BCD de un
dígito (A0 y B0) y el otro para sumar 6 al resultado en los casos en los que Cout valga uno.
Para generalizar este montaje hemos de considerar que se podría dar también la
situación de tener que sumar dos BCDs de valor 9 más un acarreo de la suma anterior.
Esto nos obliga a añadir otra línea en la tabla anterior.
A3 A2 A1 A0 B3 B2 B1 B0 CI
Resultado
en binario
Cout 0
0
A3 A2 A1 A0 B3 B2 B1 B0 CI
S3 S2 S1 S0 CO
Resultado en Resultado en
BCD: MSD BCD: LSD
Sin embargo en el diagrama de Karnaugh solo tendríamos que sustituir un * que
habíamos considerado como 1 por un uno, con lo que la función Cout no se vería
afectada.
distintos dígitos de la suma BCD se corresponderían con las salidas de los sumadores
(b).
a) Los dos números de 4 bits, A (A 3…A0) y B (B3…B0) pueden ser tanto positivos
como negativos, estando expresados en este último caso en C2. La suma se
realiza directamente, pero para implementar la resta hemos de hacer el C2 de
uno de los números, B. Al hacer el C2 cambiaremos el signo de B, tanto si era
positivo como negativo pues el C2 de un número en C2 es el número positivo.
El C2 implica invertir todos sus bits y sumarle uno. Si observamos la tabla de
verdad de la función XOR de dos bits vemos que el resultado coincide con el
valor del primer bit (a) invertido en los casos en que el segundo bit (b) es uno.
a b XOR
0 0 0
0 1 1
1 0 1
1 1 0
B3 B2 B1 B0
A
R/S
B
A3 A2 A1 A0
CI
A B
SUMADOR `83
S=A+B
S3 S2 S1 S0 CO
DB B3 A3 S 3 B3 A3 S 3
B3 B2 B1 B0
R/S
A3 A2 A1 A0
CI
DB A B
SUMADOR `83
S3 S2 S1 S0 CO
B7 B6 B5 B4 B3 B2 B1 B0
R/S
A7 A6 A5 A4 A3 A2 A1 A0
CI CI
A B A B
SUMADOR `83 (b) SUMADOR `83 (a)
CO
S7 S6 S5 S4 CO S3 S2 S1 S0
DB
x1
x2
t
z
1 2 3 4 1 2 4 1 2 5 6 1
Entr. 00
E.A/Sal.
00 01 4/0 01
3/0
00 10
1/0 2/0 00
01
10 01
11 5/1 6/1 01
11
00
Los estados representan lo siguiente:
Después de los estados 4 y 6 se vuelve al estado inicial para comprobar nuevas barras.
x1 x2 00 01 11 10 z
A 1 -- -- 2 0
B 3 4 5 2 0
C 3 4 -- -- 0
D 1 4 -- -- 0
E - 6 5 -- 1
-
F 1 6 -- -- 1
Los estados estables 1 y 3 son pseudoequivalentes con lo que podemos sustituir las
líneas A y C por A’. Los estados estables 4 y 6 no son equivalentes pues tienen salidas
distintas.
x1 x2 00 01 11 10 z
A-C A’ 1 4 -- 2 0
B’ 1 4 5 2 0
C’ 1 4 -- -- 0
D’ -- 6 5 -- 1
E’ 1 6 -- -- 1
Observando la tabla se deduce que las líneas A’, B’ y C’ son fusionables al igual que
D’ y E’. Dibujamos el diagrama de fusión y la tabla de fases reducida.
D’ A’ B’
x1 x2 00 01 11 10 z
A’-B’-C’ 1 4 5 2 0
D’-E’ 1 6 5 -- 1
E’ C’
Vemos que sólo existen dos líneas y que a
cada una de ellas le corresponde una salida con lo que el autómata resultante será un
autómata de Moore (la salida no depende de las variables de entrada). Dibujamos ahora
la tabla de fases final reducida y el diagrama de flujo, que incluyen las matrices de
excitación y de salida. Para dibujar la tabla de fases se ha de tener en cuenta que los
estados estables de una misma línea representan el mismo estado.
1, 2, 4 1
5, 6 2
11
x1 x2 00 01 11 10
1 1 /0 1 /0 2 /* 1 /0 00 01
01 1/0 2/1 11
2 1 /* 2 /1 2 /1 * /* 10
00
Al haber sólo dos líneas en la tabla de fases únicamente necesitamos una variable de
estado para codificar las líneas. Asignaremos el valor y=0 a la línea 1 e y=1 a la línea
2. Como sólo tenemos una variable de estado nunca se darán transiciones críticas entre
estados internos adyacentes. Realizamos por último las tablas de excitación y de salida e
implementamos el circuito.
x1 x2 x1 x2
y 00 01 11 10 y 00 01 11 10
0 0 0 1 0 0 0 0 * 0
1 0 1 1 * 1 * 1 1 *
Y Z Z=y
x1
x2 Y=Z
Carretera
sentidos se cruza con AUTÓMATA z
una carretera en la x2 ASÍNCRONO
cual se coloca una
barrera gobernada por D Detector M Detector D
la salida z de un
autómata asíncrono.
A 500 metros del
punto de cruce se
colocan dos
detectores x1 y x2, Vía férrea M
respectivamente. A Barreras
partir de un estado
inicial en el que z = 0, la salida deberá pasar al estado 1 cuando se acerque un tren en
cualquier sentido al rebasar su máquina los 500 metros del cruce y deberá volver al
estado 0 cuado el último vagón se aleje más de dicha distancia independientemente de la
longitud del tren. Diseñar dicho autómata asíncrono suponiendo que los trenes no van a
cambiar la dirección de su marcha, y que no puede haber más de un tren en el cruce al
mismo tiempo.
x1 x2 00 01 11 10 z
1 6 -- 2 0
3 -- 5 2 1
3 4 -- -- 1
1 4 -- -- 1
- 4 5 -- 1
-
7 6 9 -- 1
7 -- -- 8 1
1 -- -- 8 1
-- -- 9 8 1
x1 x2 00 01 11 10 z
Nombramos:
A 3, 7 1 3 6 -- 2 0
5, 9 5
B 3 -- 5 2 1
CA 3 4 B-- 8 1C
D 1 4 -- -- 1 D
E - 4 5 8 1
-
F 3 6 5 -- 1
G E
G 1 -- F-- 8 1
Por tanto podemos fusionar las siguientes líneas: B-F, C-E, D-G (o también: B-F, D-E-
G). Como todas las líneas que fusionamos tienen la misma salida no es necesario que
representemos cada estado con su salida correspondiente. Estamos realizando un
autómata de Moore (las variables de salida dependen solo del estado interno, no de las
variables de entrada).
x1 x2 00 01 11 10 z
A’ A 1 6 -- 2 0
B’ B-F 3 6 5 2 1 Tabla de Fases reducida
C’ C-E 3 4 5 8 1
D’ D-G 1 4 -- 8 1
00 01
A’ B’ Construimos a partir de esta
codificación las matrices de
excitación y salida conjuntamente en
una misma tabla.
D’ C’
10 11
x1 x2
00 la01
y1Simplificando
y2 salida 11 10
se obtiene:
00 00 /0 01 /* ** /* 01 /*
Z = y 1 + y2
01 11 /1 01 /1 11 /1 01 /1
11 11 /1 10 /1 11 /1 10 /1
10 00 /* 10 /1 ** /* 10 /1
y Y R S
Y1Y2/Z
0 0 * 0
0 1 0 1 Implementamos el autómata con flip-flops R-S:
1 0 1 0
1 1 0 *
x1 x2
y1 y2 00 01 11 10
R1 x1 ·x 2 ·y 2
00 *0 *0 ** *0
S 1 x1 x 2 x1 ·x 2 ·y 2
01 01 *0 01 *0
11 0* 0* 0* 0*
10 10 0* ** 0*
R1S1 (Y1)
x1 x2
y1 y2 00 01 11 10
00 *0 01 ** 01 R2 x1 ·x2 ·y1 x1·x2 ·y1 y1 ( x1 x2 )
01 0* 0* 0* 0* S 2 x 2 y1 x1 y1
11 0* 10 0* 10
10 *0 *0 ** *0
R2S2 (Y2)
x1 x2
x1 x2
y1 y2 00 01 11 10
00 0 0 * 0 R1 R y1
Z
x1 ·x 2 RS 1
01 1 0 1 0 Y1 x1 ·x 2 ·y 2 y1 ·y 2 x 2 ·y1 x1 ·y1 x1S·1x 2 S Z
y1
11 1 1 1 1
10 0 1 * 1
x1 ·y1
x1 ·x 2 ·y 2 Y1 x 2 ·y1
Para coger la adyacencia: y1 ·y 2
Problema 5.2. Circuito realizado con biestables RS.
x 2 ·y1
x1 x2
y1 y2 00 01 11 10
00 0 1 * 1
01 1 1 1 1
x1 ·y1
11 1 0 1 0
10 0 0 * 0
x1 ·x 2 ·y 2 Y2 x1 ·x 2
Para coger la adyacencia:y1 ·y 2
Y2 x1 ·x 2 ·y 2 y1 ·y 2 x 2 ·y1 x1 ·y1 x1 ·x 2 x1
x2
El circuito implementado con puertas lógicas es:
y1
y2
3.- Diseñar un circuito secuencial asíncrono con 2 entradas D y C, y una salida Q, tal
que la salida se haga igual a D en el instante en que C pase de 0 a 1. En el resto de los
casos Q no debe cambiar. Suponer que las dos entradas D y C no pueden cambiar
simultáneamente. Implementar el circuito con biestables R-S constituidos por puertas
NAND.
Tenemos un sistema secuencial que sólo cambia de salida cuando hay una transición en
C de 0 a 1. Además no necesita recordar situaciones pasadas. Cuando las entradas sean
constantes el sistema permanecerá en un estado estable. Así, asignaremos un estado
estable a cada combinación de entradas y salidas posible (8 en total, todas son posibles).
Q=D=0 Q=D=1
D E
F H
DC 00 01 11 10 Q
Es un autómata de Moore. Quedan
(ABC) A’ 1 2 3 4 0
dos estados imposibles.
(D) B’ 1 -- 7 4 0
(E) C’ 5 2 -- 8 1
(FGH) D’ 5 6 7 8 1 Si en vez de esta fusión hacemos: A-D,
B-C, E-H y F-G obtendríamos:
DC 00 01 11 10 Q
No quedan estados imposibles
(AD) A’’ 1 2 7 4 0 menos * en el diagrama de
Karnaugh menos posibilidad de
(BC) B’’ 1 2 3 4 0 simplificar.
(EH) C’’ 5 2 7 8 1
En definitiva es un circuito más
(FG) D’’ 5 6 7 8 1 complicado.
Usamos por tanto la primera opción para realizar la fusión. El diagrama de transición es:
D’ C’
A
’
0
0
B’ - 01
D’- 11
C’ - 10
DC DC
00 01 11 10 y1 y2 00 01 11 10
y1 y2
A’00 00 00 00 01 A’00 0 0 0 0
B’01 B’01 0 * * 0
00 ** 11 01
D’11 D’11 1 1 1 1
10 11 11 11
C’10 C’10 1 * * 1
10 00 ** 11
Problemas Tema 7 Página 63
Y1Y2 Q
Sistemas Digitales
Hemos cambiado el orden de D’ y C’ para poner las variables siguiendo un código Gray
en los diagramas de Karnaugh. La salida vale:
Q=y1
y Y R S
R1S1 - Y1
0 0 * 0 R2S2 - Y2
0 1 0 1
1 0 1 0
1 1 0 *
DC DC
y1 y2 00 01 11 10 y1 y2 00 01 11 10
00 *0 *0 *0 *0 00 *0 *0 *0 01
01 *0 ** 01 *0 01 10 ** 0* 0*
11 0* 0* 0* 0* 11 10 0* 0* 0*
10 0* 10 ** 0* 10 *0 *0 ** 01
R2 S1
Y2
R2 Z2 S1 Z
Biest. RS Biest. RS 1
S2 (2) Z Y2 R1 (1) Z1 Y1
C 2
Q
S2 R1
D
S
Z
Z
R
Luego tendremos que sustituir las puertas AND anteriores por puertas NAND para
expresar todo el circuito con puertas NAND. Los inversores también pueden expresarse
como puertas NAND.
C
S2 S1 Q
Y2 Y1
R2 R1
Y2 Y1
D
Problema 5.3. Circuito realizado con biestables RS implementados con puertas NAND.
X1
Nota: dos impulsos sucesivos en X1 con X2=0 son:
1 2
X2=0
x1 x2 *X1X2=11 no permitido.
00
Estado/z *Cambio simultáneo de 2
01 1/0
10 . bits no permitido. Por eso
01 10
no hay en 3 y 5 la entrada
2/0 00 3/0 01 y en 2 la 10.
00
00
01 4/0
10
10
5/1
01
00
10
00
6/1 Con 10 vuelve a 5
pues 5 se ha
definido como
Est.1 → Estado inicial. X1X2=10 y Z=1.
Est.2 → Salida pasa a 0 cuando se activa X2.
Est.3 → Llega el primer impulso en X1.
Est.4 → X1 vuelve a 0.
Est.5 → Llega el segundo impulso en X1, cambia la salida.
Est.6 → La salida se mantiene a 1 aunque cambie X1, hasta que X2=1.
(C) B’ 4 -- -- 3 0
(D) C’ 4 2 -- 5 0
(E-F) D’ 6 2 -- 5 1
D’ 10 11 C’
Según este diagrama puede haber problemas de carreras críticas en 11(C’) → 00(A’) si
utilizamos la codificación indicada. Vamos a analizar lo que ocurre ayudándonos de la
matriz de fase con estados codificados.
X1X2
y1 y2 00 01 11 10 Z Si estamos en el estado estable 11 y
las entradas cambian de X1X2=00 a
00 00 00 -- 01 0
X1X2=01 se produce una transición
01 11 -- -- 01 0
no adyacente al estado estable 00.
11 11 00 -- 10 0
10 10 00 -- 10 1 Veamos qué ocurre:
Y1Y2
11
10 01
Problemas Tema 7 Página 67
00 --
Sistemas Digitales
Posibles soluciones:
a) Sustituir el estado imposible por un estado inestable que conduzca al 00
(estable). Es decir, por ambos caminos llegaríamos al 00 y tendríamos carreras
no críticas.
b) Sustituir el estado inestable de la tercera línea para las entradas X 1X2=01 por el
inestable 10, que para esas entradas conduce al 00. Esto lo podemos hacer
porque existen dos estados inestables en la segunda columna del mismo número
(00) de forma que a través de uno de ellos podemos llegar al estable que
queremos (eliminamos carrera).
Elegimos la segunda opción porque así mantenemos el estado imposible lo que nos
dará mas libertad para simplificar más la función. Por tanto la matriz de excitación sin
carreras más la de salida queda:
X1 X2
y1 y2 00 01 11 10
00 00 /0 00 /0 ** /* 01 /0
01 11 /0 ** /* ** /* 01 /0
11 11 /0 10 /0 ** /* 10 /* Salida: Z X 2 y1 y 2
10 10 /1 00 /0 ** /* 10 /1
Y1Y2/Z
La salida ha de ser cero pues lo utilizamos
como combinación intermedia para eliminar
carrera de 11 (Z=0) a 00 (Z=0).
y Y R S
0 0 * 0
0 1 0 1
Problemas Tema 7 Página 68
1 0 1 0
1 1 0 *
Sistemas Digitales
R1S1 - Y1
R2S2 - Y2
X1X2 X1X2
y1 y2 00 01 11 10 y1 y2 00 01 11 10
00 *0 *0 ** *0 00 *0 *0 ** 01
01 01 ** ** *0 01 0* ** ** 0*
11 0* 0* ** 0* 11 0* 10 ** 10
10 0* 10 ** 0* 10 *0 *0 ** *0
R2S2 (Y2)
X 1 y1
R1 X 2 ·y 2
R1S1 (Y1) X2
S1 X 1 ·y 2 S 2 X 1 ·y1
R1 X 2 ·y 2 R2 X 2 X 1 y1
S1 X 1 ·y 2 S 2 X 1 ·y1
El circuito será:
X1 X2
Y1
R1 Z1 R2 Z 2 Y2
Biest. RS Biest. RS
S1 (1) Z Y1 S2 (2) Z
Y2
1 2
5.- Diseñar un biestable r-s activado por flanco de bajada. Realizar el circuito utilizando
biestables R-S. (Mandado 216-219)
1 2 3 4 3 5 1 6 1
sr 00 01 11 10 Z
A’ (A-F) 1 6 -- 2 0
B’ (B) 3 -- -- 2 0
--
C’ (C-D) 3 5 -- 4 1
D’ (E) 1 5 -- -- 1
Para realizar una codificación correcta
dibujamos el diagrama de transición:
00 A’ B’ 01
10 D’ C’ 11
sr
y1 y2 00 01 11 10
Se observa que:
00 00 /0 00 /0 ** /* 01 /0
Z=y1.
01 11 /* ** /* ** /* 01 /0
11 11 /1 10 /1 ** /* 11 /1
10 00 /* 10 /1 ** /* ** /*
Y1Y2/Z
y Y R S
0 0 * 0
R1S1 - Y1
0 1 0 1
R2S2 - Y2
1 0 1 0
1 1 0 *
R1 r ·y 2 R2 r
sr sr
00 01 11 10 y y 00 01 11 10
y1 y2 S11 2 s·y 2 S2 s
00 *0 *0 ** *0 00 *0 *0 ** 01
01 01 ** ** *0 01 0* ** ** 0*
11 0* 0* ** 0* 11 0* 10 ** 0*
10 10 0* ** ** 10 *0 *0 ** **
Y2
r R2 Z2 S1 Z
Biest. RS Biest. RS 1
s S2 (2) Z Y2 R1 (1)
Y Z
2 Z1 1
Las señales de Reset y Set al ser asíncronas modifican la salida en cuanto se activan.
Reset
Set
J 0 0 1 1 1 1
K 1 1 0 0 1 1
CLK
2.- Complete el diagrama temporal del siguiente circuito. Observe que las entradas de
reloj de los dos biestables son diferentes. La señal de Reset es asíncrona. Q 1 y Q2 valen
inicialmente cero.
Las señales de Reset al ser asíncronas modifican la salida en cuanto se activan. Son
activas a nivel bajo. El FF 1 es activo por flanco de bajada y el FF2 por flanco de
subida. La entrada D está conectada a Q en los dos FFs, con lo que invierten su salida
en cada flanco activo de la señal de reloj.
Q1 Q1 Q2 Q2
Reset Reset
Reset
CLK D1 CLK D2
Reset
CLK
Q1
Q2
1.- Se dispone de una señal digital periódica C de período T y ancho de impulso T/10. A
partir de dicha señal y en sincronismo con sus flancos de subida se necesita generar otra
señal periódica S cuyo período y ancho de impulso deben ser seleccionables mediante
dos señales de control C0 y C1 tal y como se indica en la tabla adjunta.
T
T/10
S (C0C1=00)
S (C0C1=01)
S (C0C1=10)
S (C0C1=11)
C0C1
1/1 Estado/S
01
**
00
10 2/1 ** 3/1
0/0
**
11
4/1 ** 5/1 ** 6/1
**
C0 C1
00 01 10 11 S
E.A.
0 0 1 2 4 0
1 0 0 0 0 1
2 3 3 3 3 1
3 0 0 0 0 1
4 5 5 5 5 1
5 6 6 6 6 1
6 0 0 0 0 1
E. Siguiente
Problemas Tema 7 Página 76
Sistemas Digitales
1 X
2 X X
3 X √ X
El estado 0 no es 4 X X 3=5 X equivalente a ninguno pues
posee una salida 5 X X 3=6 X 6=5 distinta.
1, 3, y 6 son 6 X √ X √ X X equivalentes pues tienen la
misma salida y los 0 1 2 3 4 5 tres conducen al estado 0.
Como el estado 0 no es equivalente a ninguno, 1,
3, y 6 no pueden ser equivalentes al resto.
2 y 5 tienen la misma salida y conducen a dos estados 3 y 6 que son
equivalentes, luego 2 y 5 son equivalentes.
4 no puede ser equivalente al 2 o al 5 pues 3 y 6 no son equivalentes a 5.
Luego asignamos:
0 →A
1-3-6 → B
2-5 → C
4 →D
00 A B 01
Ya no es necesario dibujar el diagrama
de transiciones. No va a haber
problemas de carreras porque ya no
realimentamos directamente.
11 D C 10
Qin Qin1 J K Q1 Q0
J0K0 - Q0
0 0 0 * A 0 00
J1K1 - Q1
0 1 1 * B 0 1
1 0 * 1 C 1 0
1 1 * 0 D 1 1
+ +
Dibujamos los diagrams de Karnaugh para las variables de los FF y para la salida. En
los diagramas de Karnaugh hemos de utilizar el código Gray para las combinaciones de
las variables.
C0C1 C0C1
Q1 Q0 00 01 11 10 Q1 Q0 00 01 11 10
El
00 0* 0* 1* 1* 00 0* 1* 1* 0*
01 0* 0* 0* 0* 01 *1 *1 *1 *1
11 *0 *0 *0 *0 11 *1 *1 *1 *1
10 *1 *1 *1 *1 10 1* 1* 1* 1*
Inicialización
Problemas Tema 7 Página 79
Problema 7.1. Circuito implementado con flip-flops JK.
Sistemas Digitales
2.- Un circuito secuencial tiene dos entradas (X1, X2) y dos salidas (Z1, Z2). Las entradas
representan un número en binario natural N de 2 bits. Si el valor presente de N es mayor
que el valor inmediatamente anterior, entonces la salida Z1 se pone a 1. Si dicho valor es
menor, Z2 se pone a 1. En cualquier otro caso, Z 1 = Z2 = 0. Suponer que el circuito se
inicializó hace tiempo.
d) Describir el diagrama de flujo del sistema como autómata de Mealy.
e) ¿Cuántos estados tendrá el circuito equivalente de Moore?
f) Diseñar el circuito con flip-flops tipo D activos con el flanco negativo de la
señal de reloj.
a) Autómata de Mealy.
00/00
X2X1/Z2Z1
q0
Estado 00/10 01/01
11/01 00/10
00/10
01/10 q1 01/00
11/00 q3
11/01
10/01
10/10 01/10
11/01 10/01
q2
10/00
X2 X1
E.A 00 01 10 11
q0 q0/00 q1/01 q2/01 q3/01
q1 q0/10 q1/00 q2/01 q3/01
q2 q0/10 q1/10 q2/00 q3/01
q3 q0/10 q1/10 q2/10 q3/00
E.Sig./ Z2Z1
- q0 tiene asignadas 2 tipos de salidas (00 y 01) luego habría que dividirlo en 2
estados distintos.
- q1 tiene asignadas 3 tipos de salidas (10, 00 y 01) luego habría que dividirlo en 2
estados distintos.
- q2 tiene asignadas 3 tipos de salidas (10, 00 y 01) luego habría que dividirlo en 2
estados distintos.
- q3 tiene asignadas 2 tipos de salidas (10 y 00) luego habría que dividirlo en 2
estados distintos.
Q1 Q0 Qin Qin1 J K
q0 0 0
q1 0 1 0 0 0 * J0K0 - Q0
q2 1 0 J1K1 - Q1
0 1 1 *
q3 1 1
1 0 * 1
1 1 * 0
+
0 0 q0 0 0 q0 0 0 0 0 0 * 0 *
0 0 q1 0 1 q0 0 0 1 0 0 * * 1
0 0 q2 1 0 q0 0 0 1 0 * 1 0 *
0 0 q3 1 1 q0 0 0 1 0 * 1 * 1
0 1 q0 0 0 q1 0 1 0 1 0 * 1 *
0 1 q1 0 1 q1 0 1 0 0 0 * * 0
0 1 q2 1 0 q1 0 1 1 0 * 1 1 *
0 1 q3 1 1 q1 0 1 1 0 * 1 * 0
1 0 q0 0 0 q2 1 0 0 1 1 * 0 *
1 0 q1 0 1 q2 1 0 0 1 1 * * 1
1 0 q2 1 0 q2 1 0 0 0 * 0 0 *
1 0 q3 1 1 q2 1 0 1 0 * 0 * 1
1 1 q0 0 0 q3 1 1 0 1 1 * 1 *
1 1 q1 0 1 q3 1 1 0 1 1 * * 0
1 1 q2 1 0 q3 1 1 0 1 * 0 1 *
1 1 q3 1 1 q3 1 1 0 0 * 0 * 0
Nos piden implementar el circuito con FF tipo D. En general habría que buscar una
expresión para Di en función de Xi y Qi, con la condición de que Qin1 Di . En este
caso es muy sencillo, pues se observa en la tabla de transiciones que:
Qn+1=D
Q1n 1 X 2 luego D1=X2
D Q
Q0n 1 X 1 D0=X1
FF
C Tipo D Q
X2X1
Q1 Q0 00 01 11 10
00 00 01 01 01 Z1 X 2 Q1 X 2 X 1 Q0 X 1 Q1 Q0
01 10 00 01 01 Z 2 X 2 Q1 X 2 X 1Q0 X 1Q1Q0
11 10 10 00 10
10 10 10 01 00
Z2Z1
X1 x1
x1
X2 x
x 22
Q0
D0 Q0 Q0
Q
FF 0 Q11
Q0
D1 Q1
FF 1
Q1
CLK Z2 Z1
3.- Los números entre 0 y 3, expresados en binario natural, se transmiten en serie por
una línea de datos Y. Primero se transmite el bit más significativo. La transmisión está
sincronizada con una señal de reloj. Se desea diseñar un circuito secuencial tal que la
salida Z nos entregue un 1 durante el tiempo del segundo bit si la combinación que llegó
a través de Y fue 0 ó 3, permaneciendo el resto del tiempo a 0. Por último, la entrada X
es la única que puede inicializar el sistema: X = 1 provoca el paso al estado inicial, y en
ese estado queda el sistema hasta que X = 0. En el momento que X = 0, de nuevo se
tratará de detectar el 0 o el 3 (X = 1 obliga a Z = 0).
X
Detector
Z
de 0 y 3
Y
Reloj
Del enunciado se deduce que la salida va a cambiar en función del estado del circuito y
del valor de las entradas X e Y. Por tanto lo más apropiado es implementar el circuito
como un autómata de Mealy. El diagrama de flujo sería:
Estado
inicial 1*/0 00/0
Detección
de un 2.
01/0 01/1
q3
Llega el 1ºbit (el
El 2º bit q llega vale
MSB) y vale 1.
1.Se detecta un 3: Z=1
Tendremos 4 estados:
XY Tabla de implicación:
E.A 00 01 10 11
q0 q1/0 q3/0 q0/0 q0/0 q1 X
q2 q3=q2 X
q1 q2/1 q2/0 q0/0 q0/0 q1=q2
q2 q2/0 q2/0 q0/0 q0/0 q3 X X X
q0 q1 q2
q3 q2/0 q2/1 q0/0 q0/0
E.Sig./ Z
Codificamos q0: 00, q1: 01, q2: 10 y q3: 11. Necesitaremos 2 flip-flops.
Qin Qin1 J K
Q1 Q0
0 0 0 * J0K0 - Q0
q0 0 0
J1K1 - Q1 J0K0 - Q0
0 1 1 * q1 0 1
q2 1 0 J1K1 - Q1
1 0 * 1 q3 1 1
Problemas Tema 7 Página 85
1 1 * 0
+
Sistemas Digitales
0 0 q0 0 0 q1 0 1 0 0 * 1 *
0 0 q1 0 1 q2 1 0 1 1 * * 1
0 0 q2 1 0 q2 1 0 0 * 0 0 *
0 0 q3 1 1 q2 1 0 0 * 0 * 1
0 1 q0 0 0 q3 1 1 0 1 * 1 *
0 1 q1 0 1 q2 1 0 0 1 * * 1
0 1 q2 1 0 q2 1 0 0 * 0 0 *
0 1 q3 1 1 q2 1 0 1 * 0 * 1
1 0 q0 0 0 q0 0 0 0 0 * 0 *
1 0 q1 0 1 q0 0 0 0 0 * * 1
1 0 q2 1 0 q0 0 0 0 * 1 0 *
1 0 q3 1 1 q0 0 0 0 * 1 * 1
1 1 q0 0 0 q0 0 0 0 0 * 0 *
1 1 q1 0 1 q0 0 0 0 0 * * 1
1 1 q2 1 0 q0 0 0 0 * 1 0 *
1 1 q3 1 1 q0 0 0 0 * 1 * 1
XY XY
Q1 Q0 00 01 11 10 Q1 Q0 00 01 11 10
XY
00 0* 1* 0* 0* 00 00 1 * 01 1 * 11 0 *X10
J1 Y 0X*Q0 J 0 X Q1
Q1 Q0
K =X K0=1
01 1* 1* 0* 0* 00 01 0 * 1 0 * 1 0 1 * 1 0 * 1
11 *0 *0 *1 *1 01 11 1 * 1 0 * 1 0 * 1 0 * 1
Z X Y Q1Q0 X YQ1Q0
10 *0 *0 *1 *1 11 10 0 0 * 1 0 * 0 X0Q* (0Y 0*Q )
0 1
10 0 0 J K 0(Q ) 0
J 1 X Y X QJ01K1 (Q1) K1=X
J 0 X Q1 0 0 0
K0=1
Z
Y
X
J0 Q0 J1 Q1
FF 0 FF 1
CLK0 CLK1
“1” K0 Rd0 Q0 K1 Rd1 Q1
CLK
Inicialización
XY XY
Q1 Q0 00 01 11 10 Q1 Q0 00 01 11 10
00 0 1 0 0 00 1 1 0 0
01 1 1 0 0 01 0 0 0 0
11 1 1 0 0 11 0 0 0 0
10 1 1 0 0 10 0 0 0 0
Q1n 1 Q0n 1
D1 Q1n 1 X ·( y Q1 Q0 )
D0 Q0n 1 X Q1 Q0
Y
X
D0 Q0 D1 Q1
FF 0 FF 1
CLK0 CLK1
Q0 Q1
CLK
4.- Diseñar un divisor de frecuencia por 3 síncrono con flip-flops JK activados por el
flanco negativo.
Tenemos que dividir por tres la frecuencia de la señal de reloj. Dibujamos el diagrama
de secuencias:
C
(Clock)
Z
0 1 2 0 1 2
Cada tres ciclos de reloj la secuencia se repite, luego tendremos tres estados distintos.
Necesitamos 2 FFs JK.
Qin Qin1 J K
0 0 0 *
0 1 1 *
Problemas Tema 7 Página 88
1 0 * 1
1 1 * 0
Sistemas Digitales
J0K0 - Q0
J1K1 - Q1
0 0 0 1 0 1 0 0 * 1 *
1 0 1 2 1 0 C 1 * * 1
2 1 0 0 0 0 1 * 1 0 *
Q1 Q1
Q0 0 1 Q0 0 1
0 0* *1 0 1* 0*
1 1* ** 1 *1 **
E. Q
Actual
Q Salida
n 00
Z 01 11 10
1 0
C
n
Q1 Q0
C
0 0 0 * 1
0 0 0 0
0 0 1 1 0 0 1 * 1
0 1 0 1
0 1 1 *
Z=Q +CQ0
1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 *
J1 Q1 Z
J0 Q0
FF 0 FF 1
CLK0 CLK1
“1” K0 Rd0 Q0 “1” K1 Rd1 Q1
CLK
Inicialización
5.- Diseñar un sistema secuencial capaz de detectar la secuencia 11010 en una línea X
de datos serie sincronizados con una señal de reloj C:
d) Como autómata de Moore.
e) Como autómata de Mealy.
f) Con un registro de desplazamiento.
a) Autómata de Moore.
0
X
0/0 1
Estado/Z
0 1/0 1 1
2/0 0
0
3/0 1
1 1
0 4/0 0
5/1
- Asíncronos: hablábamos de estados estables, que eran los que realmente se apreciaban.
Los estados inestables eran estados transitorios en la evolución hacia un estado estable.
- Síncronos: trabajamos con los estados correspondientes a cada flanco activo de la
señal de reloj. Ponemos lo que ocurre en cada ciclo de reloj pero no hablamos de
estados estables.
X
0 1 Z
E.A.
1 1=2
0 0 1 0
2 0=3 0=3
1=2
1 0 2 0 1=4 2=4 3=0
3
2=4
2 3 2 0 0=5 0=5 0=5
4 3=5
1=2 4=2
3 0 4 0 5 X X X X X
0 1 2 3 4
4 5 2 0
5 0 1 1
E. Siguiente
El estado 5 no puede ser equivalente con ninguno pues posee una salida distinta. Esto
implica que el 4 tampoco es equivalente con ninguno, lo que conduce a que ni el 3, ni el
2 ni el 1 sean equivalentes. No hay estados equivalentes.
Codificamos los estados directamente. Como tenemos 6 estados vamos a necesitar tres
bits de estado para codificarlos todos. Cada uno de estos bits lo representaremos
mediante un FF JK.
Codificación de estados
Qin Qin 1 J K
0 0 0 * J0K0 - Q0
J1K1 - Q1
0 1 1 * J2K2 - Q2
1 0 * 1
+
1 1 * 0
+
Salida
Entrada E. Actual E. Siguiente Excitaciones
actual
X Q2n Q1n Q0n Q2n1 Q1n1 Q0n 1 Z J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 0 0 0 0 * 0 * 0 *
0 1 0 0 1 0 0 0 0 0 0 * 0 * * 1
0 2 0 1 0 3 0 1 1 0 0 * * 0 1 *
0 3 0 1 1 0 0 0 0 0 0 * * 1 * 1
0 4 1 0 0 5 1 0 1 0 * 0 0 * 1 *
0 5 1 0 1 0 0 0 0 1 * 1 0 * * 1
1 0 0 0 0 1 0 0 1 0 0 * 0 * 1 *
1 1 0 0 1 2 0 1 0 0 0 * 1 * * 1
1 2 0 1 0 2 0 1 0 0 0 * * 0 0 *
1 3 0 1 1 4 1 0 0 0 1 * * 1 * 1
1 4 1 0 0 2 0 1 0 0 * 1 1 * 0 *
1 5 1 0 1 1 0 0 1 1 * 1 0 * * 0
X Q2 X Q2
Q1 Q0 00 01 11 10 Q1 Q0 00 01 11 10
00 0* *0 *1 0* 00 0* 0* 1* 0*
01 0* *1 *1 0* 01 0* 0* 0* 1*
11Q 0 *
X ** ** 1* 11 *1 ** ** *1
Q1 Q10
2
00 01 11 10
0 0* ** ** 0* 10 *0 ** ** *0
00 0* 1* 0* 1*
J2K2 (Q2) K1=Q0 J1K1 (Q1)
01 *1 *1 *0 *1
K2=X+Q 0 J2=XQ1Q0 J1 X Q2Q0 XQ2 Q0
11 *1 ** ** *1
10 Tema
Problemas 1 7* ** ** 0* Página 93
J0K0 (Q0)
Sistemas Digitales
X Q2
Q1 Q0 00 01 11 10
00 0 0 0 0
J2=XQ1Q0
J 1 X Q2 Q0 XQ2 Q0 X (Q2 Q0 ) 01 0 1 1 0
J 0 X Q2 X Q1 X Q2 Q1
11 0 * * 0
K2=X+Q0 K1=Q0
K 0 Q2 X 10 0 * * 0
Z= Z= Q2 Q0 Q2
Q0
b) Autómata de Mealy.
En esta ocasión la salida va a depender del estado del sistema y del valor de la entrada.
Secuencia 11010.
0/0
X/Z
1/0
0
Estado
0/0 1 1/0
1/0
2
0/0
0/0
3 1/0
0/1
1/0 4
X
E.A. 0 1 Tabla de implicación
0 0/0 1/0
1 1=2
1 0/0 2/0 2 0=3 0=3
1=2
2 3/0 2/0 3 1=4 2=4 3=0
2=4
3 0/0 4/0 4 X X X X
0 1 2 3
4 0/1 2/0
E. Siguiente /Salida
El estado 4 no puede ser equivalente a ningún otro pues posee una salida distinta. Se
comprueba que no hay estados equivalentes. Tenemos pues 5 estados: necesitamos 3
bits para codificar todos los estados. Implementaremos cada bit de estado mediante un
FF JK.
Q2 Q1 Q0
Codificación de estados
0 0 0 0 0 0 0 0 0 0 0 * 0 * 0 *
0 1 0 0 1 0 0 0 0 0 0 * 0 * * 1
0 2 0 1 0 3 0 1 1 0 0 * * 0 1 *
0 3 0 1 1 0 0 0 0 0 0 * * 1 * 1
0 4 1 0 0 0 0 0 0 1 * 1 0 * 0 *
1 0 0 0 0 1 0 0 1 0 0 * 0 * 1 *
1 1 0 0 1 2 0 1 0 0 0 * 1 * * 1
1 2 0 1 0 2 0 1 0 0 0 * * 0 0 *
1 3 0 1 1 4 1 0 0 0 1 * * 1 * 1
1 4 1 0 0 2 0 1 0 0 * 1 1 * 0 *
Diagramas de Karnaugh:
X Q2 X Q2
00 01 11 10 Q1 Q0 00 01 11 10
Q1 Q0
00 0* *1 *1 0* 00 0* 0* 1* 0*
01 0* ** ** 0* 01 0* ** ** 1*
11 0* ** ** 1* 11 *1 ** ** *1
X Q10 XQ
10 0* ** ** 0* Q1 Q0
2
00* 0 01* * Q 11*Q* 210* 00
0 01 11 10
1 0
00K =Q0 * 0 *) 00 1 * 0
0 *J K (Q 1 0 0
J2K2 (Q2)
* *J 1 *XQ 0 * XQ
1 0 1 1 1
K2=1 0
J2=XQ1Q0 01 *1 * 01 1 02 * *
11 *1 ** * * 11 * 1 0 * * 0
10 1* ** * * 10 0 * 0 * * 0
Z X Q2
El tener cinco estados en vez de seis como en el autómata de Moore no nos va a suponer
un ahorro en cuanto al número de FFs pero si nos facilita la simplificación y reduce la
lógica adicional necesaria. Por tanto la implementación como autómata de Mealy es
más sencilla.
Basta con montar el siguiente circuito. Necesitamos un FF más que como autómata de
Moore o de Mealy pero se simplifica mucho la lógica adicional.
X
D0 Q0 D1 Q1 D2 Q2 D3 Q3
FF 0 FF 1 FF 2 FF 3
C0 C1 C2 C3
Rd0
Q0 Rd1 Q1 Rd2 Q2 Rd3
Q3
CLK
Inicialización
Problema 7.5. Circuito realizado mediante un registro de desplazamiento constituido por flip-
flops tipo D.
6.- Diseñar un generador de secuencias que, a partir de una señal de reloj C, produzca
las señales S1 a S8 que aparecen representadas en la figura. Utilizar para ello un contador
integrado ‘161, un decodificador integrado ‘138 y las puertas NAND que sean
necesarias.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reloj
S1
S2
S3
S4
S5
S6
S7
S8
Todas las secuencias se repiten cada 8 ciclos de reloj. Por tanto necesitamos construir
un contador de módulo 8 que se puede implementar fácilmente despreciando la salida
más significativa (Q3). Solamente veríamos la cuenta de 000 (0) a 111 (7) tanto para
Q3=0 (0-7) como para Q3=1 (8-15).
S5, S6, S7 y S8 como tienen impulsos de duración mayor que un periodo no se pueden
obtener directamente del ‘138. Necesitamos lógica adicional para poner las señales a
“1” y volver a ponerlas a “0” tras 2 pulsos de reloj (para S 6, S7 y S8) o 3 pulsos (S5). Se
podría hacer con una puerta NAND en cada caso, pero no estaría libre de fenómenos
aleatorios. Es mejor utilizar biestables RS construidos con puertas NAND.
S Y
Y
R
Luego las salidas O0 , O1 , O2 , O3 coinciden con S1, S2, S3 y S4.
O4 , O5 , O6 , O7 son como S1, S2, S3, S4 desplazadas un ciclo de reloj.
7.- Construir un registro que permita realizar las siguientes operaciones: escritura desde
un bus, lectura a un bus, complemento y puesta a cero. Todas ellas deberán ser
síncronas salvo la de lectura. Implementarlo con flip-flops JK y la lógica que sea
necesaria.
Hemos visto que se pueden construir registros que respondan a una u otra orden
(escritura, lectura, etc.). La orden se indicará activando el terminal de control
correspondiente. En un sistema síncrono la orden se realizará en el siguiente flanco
activo de 7.6.
Problema la señal de reloj.
Generador de secuencias construido utilizando un contador ‘161 (no mostrado) y un
decodificador ‘138.
Supongamos que queremos ordenarle a un sistema una serie de operaciones. Podemos
realizar las operaciones de dos maneras:
A0 O0 S1
Q0
Salidas Q1 A1 O1 S2
del contador
A2 O2 S3
Q2
O3 S4
S5
O4
O5 S6
“1” E3 O6
E2 E S7
“0”
O7
E1
S8
Como ejemplo de este último tipo vamos a diseñar un registro que responda a 4 órdenes
que se muestran en la tabla. Nuestro registro tendrá 4 terminales de control: W, R, C y
Z. En cada instante solo uno estará a 1 lógico y los demás a 0.
Símbolo Orden
W Escribe en el registro la palabra situada en el bus
R Lee la palabra del registro y la lleva al bus
C Complementa el registro
Z Borra el registro
a) Escritura en el registro
Para transferir una palabra del bus al registro cuando W=1 debe cumplirse que al
llegar el flanco activo de la señal de reloj
Para leer del registro y transferir un bit del FF i al bus cuando R=1 utilizaremos
un buffer triestado. Cuando R=1 el buffer dejará pasar el dato al bus y cuando
R=0 el buffer se colocará en alta impedancia, aislando el registro del bus. De
este modo pueden conectarse varios registros al mismo bus.
Qi
R
Bi
c) Complementación
Para borrar el registro si Z=1 y dejarlo inalterado si Z=0 habrá que poner:
Ji=Bi·W + C i=1,….,n
Ki= Bi ·W + C + Z
W
Bi
C
Z
Ki Ji
CLK Ci FF i
Qi
R
Bi
n Conexión
transferencias
W bus registro
R Registro
Líneas
C de n bits
de control
Z Conexión
CLK transferencias
n registro bus
I0 I1 I2 I3 I4 I5 I6 I7 S2 S1 S0 E
MULTIPLEXOR `151
Z Z
8.- Diseñar un registro de desplazamiento de 4 bits con tres señales de control C 2, C1 y
C0 tales que:
Todas estas operaciones deben efectuarse en sincronismo con la señal de reloj. Efectuar
el diseño utilizando flip-flops tipo D y los circuitos combinacionales integrados que
sean necesarios.
De esta manera para cada combinación de las señales de control aparecerá en la salida
de los cuatro multiplexores la entrada cuyo número decimal corresponde al número
binario de las señales de control. Asociamos la salida de cada multiplexor a la entrada D
de un FF. De esta forma la salida del MUX nos indica el estado siguiente del FF.
Indicamos en una tabla las señales de control y los valores que hay que aplicar a las
entradas de los FFs.
0 D Q3 Q0 Q2 P3 Q2 1 0 Q3 Q2 Q3 Q1 P2 Q1 1 0 Q2 Q1 Q2 Q0 P1 Q0 1 0 Q1 Q0 Q1 D P0 Q3 1
0 E I I1 I2 I3 I4 I I I 0 E I I1 I2 I3 I4 I I I 0 E I0 I1 I2 I3 I4 I I I7 0 E I0 I1 I2 I3 I4 I I I7
0 5 6 7 0 5 6 7 5 6 5 6
C2 S2 C2 S2 C2 S2 C2 S2
C1 S1 MUX 3 MUX 2 S1 MUX 1 MUX 0
C1 S1 C1 C1 S1
C0 S0 C0 S0 C0 S0 C0 S0
Z3 Z2 Z1 Z0
Z3 Z2 Z1 Z0
Q3 Q2 Q1 Q0
D3 D2 D1 D0
FF 3 Q3 FF 2 Q2 FF 1 Q1 FF 0 Q0
C3 C2 C1 C0
CLK
9.- Diseñar un contador binario síncrono de módulo 16 con flip-flops JK activados por
flanco de subida. Generalizar el montaje para cualquier contador de módulo 2n, con n
entero.
J3=K3= Q2·Q1·Q0
El circuito es generalizable a un contador de módulo 2 n formado por n FFs, de modo
que cada FF conmuta únicamente cuando sus precedentes están en Set.
“1”
J0 Q0 J1 Q1 J2 Q2 J3 Q3
FF 0 FF 1 FF 2 FF 3
CLK0 CLK1 CLK2 CLK3
K0 Rd0 Q0 K1 Rd1 Q1 K2 Rd2 Q2 K3 Rd3 Q3
CLK
Inicialización