Está en la página 1de 18

Sistemas Digitales

PROBLEMAS DE SISTEMAS DIGITALES


I.T. Informtica. 1 curso.

Tema 4: Circuitos Combinacionales Integrados.


1.- Construir un decodificador de 6 lneas de entrada de direccin y 64 lneas de salida a
partir de 9 decodificadores 138.

Denominaremos las 6 entradas como I5I0 y las 64 salidas como O 0 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 ( O 0 x O 7 x ) habilitar uno solo de los restantes decodificadores. Este
decodificador recibir como entradas los tres bits ms significativos de la entrada (I5 I4
I3), mientras que los otros 8 decodificadores recibirn como entrada los tres menos
significativos (I2 I1 I0). Creamos una tabla en la que mostramos el decodificador activo y
las posibles salidas segn los valores de los tres bits ms significativos de la entrada.

I5
0
0
0
0
1
1
1
1

I4
0
0
1
1
0
0
1
1

I3 Salidas Decodificador
0
0-7
a
1
8-15
b
0 16-23
c
1 24-31
d
0 32-39
e
1 40-47
f
0 48-55
g
1 56-63
h

Por ejemplo si los tres bits ms 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 ms significativas (I5 I4 I3) y genera
una salida que actuar directamente sobre la entrada de habilitacin del decodificador
correspondiente. Para habilitar un decodificador es necesario que E1=E2=0 y E3=1. La
seal E es la entrada de habilitacin general de todo el circuito.

Problemas Tema 4

Pgina 25

Sistemas Digitales

I5

I4

I3

I2x

I1x

I0x

E1x E2x E3x


Ex

DECODIFICADOR `138
(x)
O0 O1x O2x O3x O4x O5x O6x O7x
x

O 0 x O1 x O 2 x O 3 x O 4 x O 5 x O 6 x O 7 x

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

E1a E2a E3a

I1

I0

I2h

I1h

I0h

E1h E2h E3h

Ea

I2

I2a

I1a

I0a

Eh

DECODIFICADOR `138
(a)
O0a O1a O2a O3a O4a O5a O6a O7a

DECODIFICADOR `138
(h)
O0h O1h O2h O3h O4h O5h O6h O7h

O 0 O1 O 2 O 3 O 4 O 5 O 6 O 7

O56 O57 O58 O59 O60 O61 O62 O63

Estudiemos el caso en que la entrada vale 011 010. El decodificador x est habilitado
(E=1). Recibe los tres bits ms significativos (011) y activa (pone a cero) su salida O 3 x ,
pues a la entrada en binario le corresponde el decimal 3. Esta salida acta sobre la
entrada de habilitacin del decodificador d, cuyas salidas abarcan del 24 al 31. El
decodificador d decodifica los tres bits menos significativos de la entrada (I2 I1 I0)
activando su salida nmero 2 (la correspondiente al cdigo binario de los tres bits
menos significativos de la entrada). Esta salida es la nmero 26, con lo que hemos
decodificado los 6 bits de entrada.

Problemas Tema 4

Pgina 26

Sistemas Digitales

2.- Sea un sistema digital que dispone de 16 lneas de peticin de servicio activas en
baja. Disear un circuito que nos muestre a travs de 2 displays el nmero de la lnea de
peticin de servicio de mayor prioridad activa en cada instante. Si no hay ninguna
activa, no mostrar nada. Hacer el diseo con dos codificadores de prioridad 148, dos
conversores de cdigo 48 y dos displays. Utilizar las puertas que sean necesarias.

Utilizaremos los dos codificadores de prioridad conectados en cascada, tal y como


vimos en teora. A estos codificadores les llegan las 16 lneas de peticin de servicio y a
su salida obtenemos los 4 bits de direccin ( O 3 O 0 ) y el bit indicador de peticin de
servicio GS que vale 1 si los codificadores estn deshabilitados o no hay peticin de
servicio.

I 0 I1 I 2 I 3 I 4 I 5 I 6 I 7

I0a I1a I2a I3a I4a I5a I6a I7a

O2a

EIa

CODIFICADOR `148
(a)
O1a O0a
EOa GSa

EO

GS

I 8 I 9 I 10 I 11 I 12 I 13 I 14 I 15

EI

I0b I1b I2b I3b I4b I5b I6b I7b

EIb

CODIFICADOR `148
(b)
O2b
EOb GSb
O1b

O3

O2

O1

O0b

O0

Figura. 4.2 Codificador de 16 entradas y 4 salidas construido a partir de 2 codificadores `148.

Las salidas de los codificadores sern las entradas de un circuito combinacional


encargado de convertir el nmero binario de cuatro bits proporcionado por los
codificadores en dos nmeros BCD aptos como entradas de los conversores de cdigo
`48. Estos transformarn los dos nmeros BCD en las entradas correspondientes para
los displays de 7 segmentos, que representarn uno las unidades y otro las decenas.
Dibujamos la tabla de verdad mostrando los dos nmeros BCD (A3b..A0b, para el
dgito ms significativo y A3a..A0a para el menos significativo). Utilizamos las salidas
de los codificadores invertidas (O3O0 y no O 3 O 0 ) pues son salidas activas por
bajo. Es decir la salida de los codificadores para la lnea 1 es 1110 cuando el nmero
binario correspondiente es el 0001.

Problemas Tema 4

Pgina 27

Sistemas Digitales

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

O3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

O2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

O1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

BCD MSB (Decenas) BCD LSB (Unidades)


A3b A2b A1b A0b A3a A2a A1a A0a
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1

O0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

Directamente de la tabla se deduce:


A3b = A2b = A1b = 0
A0a = O0
Para A0b:

O3 O2

O3O2
O1O0

00

00

01

10

11

01
4

12

13

11

15

1
11

10

A0b O3 O2 O3 O1

14

10

O3 O1

O3 O2 O1

Para A3a:
O3O2
O1O0
00
01

00

10

11

01

12

13

15

11

14

10

11

A3a O3 O2 O1

10
Problemas Tema 4

Pgina 28

Sistemas Digitales

Para A2a:
O 3 O 2

O3O2
O1O0

00

00

10

11

01
4

12

13

15

11

14

10

01

11

1
7

10

A2 a O3 O2 O2 O1

O2 O1

Para A1a:
O3 O2 O1

O3O2
O1O0

00

00

10

12

13

15

11

14

10

01
11

10

11

01

1
3

A1a O3 O1 O3 O2 O1

1
2

O 3 O1

Problemas Tema 4

Pgina 29

Sistemas Digitales

O3

O3

O2

O2

O1

O1

O0

O0

A3a

A2a

A1a

A0a

A0b

A3b = A2b = A1b = 0

Cuando los codificadores estn deshabilitados o no hay peticin de servicio la salida


GS vale 1. Si invertimos esta salida y la conectamos con el terminal RBI del conversor
de cdigo de las unidades haremos que el display se apague cuando no haya ninguna
peticin de servicio. Adems la seal RBI del conversor de las decenas est siempre a
0 con lo que evitamos que aparezcan ceros a la izquierda cuando el nmero sea menor o
igual de 9.

GS
0
LT

A3b A2b A1b A0b


RBI

Dgito ms significativo
(Decenas)

Problemas Tema 4

RBI

CONVERSOR DE
CDIGO `48
(a)

CONVERSOR DE
CDIGO `48
(b)

a b c d e f g

LT

A3a A2a A1a A0

RBO b

a b c d e f g

RBO a

Dgito menos significativo


(Unidades)

Pgina 30

Sistemas Digitales

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, disear un
circuito capaz de detectar la presencia de 3 y slo 3 bits a 1 en palabras de 6 bits en
paralelo. (Padilla 74)

La tabla de verdad de un sumador completo de dos bits con acarreo de entrada es la


siguiente. En ella hemos contado el nmero de bits a uno en cada combinacin de
entrada. De esta manera podemos asociar cada salida del sumador con un nmero
concreto de unos en las entradas.

0
1
2
3
4
5
6
7

a
0
0
0
0
1
1
1
1

b
0
0
1
1
0
0
1
1

cn
0
1
0
1
0
1
0
1

N 1
0
1
1
2
1
2
2
3

cn+1
0
0
0
1
0
1
1
1

Luego:

s
0
1
1
0
1
0
0
1

N 1
0
1
2
3

cn+1
0
0
1
1

s
0
1
0
1

Utilizando esta ltima tabla que relaciona el nmero de bits a uno en la entrada con la
salida del sumador podemos generar la tabla de verdad de la funcin 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 funcin debe dar 1 pues se ha
detectado la presencia de tres unos en la entrada.
N 1 Sa N 1 Sb
0
3
1
2
2
1
3
0

Ca
0
0
1
1

Sa
0
1
0
1

Cb
1
1
0
0

Sb
1
0
1
0

f
1
1
1
1

Si aplicamos las salidas Ca, Sa, Cb a las entradas de seleccin (SL) del multiplexor
vemos que las entradas del multiplexor han de tomar los siguientes valores.

SL2 = Ca
SL1 = Sa
SL0 = Cb

Problemas Tema 4

I1 = Sb
I3 = S b
I4 = Sb
I6 = S b

I0 = I2 = I5 = I7 =0

Pgina 31

Sistemas Digitales

A5

A4

A0

B0

A3

CI

SUMADOR (a)
CO

A1

A0

B0

A0

CI

SUMADOR (b)

S0

Ca

A2

CO

S0

Cb

Sa

Sb

0
0
I0 I1 I2 I3 I4 I5 I6 I7

SL2 SL1 SL0 E

MULTIPLEXOR `151

Z=f

Veamos un ejemplo. Supongamos que el nmero es el 110 001, que tiene tres unos. La
salida del sumador a (suma los 3 bits ms significativos) es Sa=0 Ca=1. El sumador b
nos da Sb=1 Cb=0. Los bits Ca, Sa, Cb (100) direccional la entrada I4 del multiplexor
que vale Sb, es decir, uno.

Problemas Tema 4

Pgina 32

Sistemas Digitales

4.- Implementar la siguiente funcin lgica de 4 variables con un multiplexor 151 y un


inversor:
f (a, b, c, d ) (0,2,4,5,6,11,12,14 )

Dibujamos la tabla de verdad de la funcin. En ella indicamos la entrada del


multiplexor correspondiente a cada combinacin de los tres bits ms significativos de
entrada. A cada entrada del multiplexor le corresponden dos combinaciones de las 4
variables de la funcin.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

a
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

b
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

c
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

d
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

f
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0

IMUX
I0
I0
I1
I1
I2
I2
I3
I3
I4
I4
I5
I5
I6
I6
I7
I7

Los tres bits ms significativos (a, b, c) los conectaremos a las entradas de seleccin del
multiplexor. Cogemos estos tres porque luego es ms sencillo para la resolucin del
problema. Hemos de decidir que valor aplicamos a cada una de las entradas del
multiplexor (I0-I7) para implementar la funcin. Como posibles valores tenemos 0, 1, d
o d . Para ello dibujamos la tabla de Karnaugh en la que representamos todos los unos y
ceros. Mostramos en la misma tabla a qu entrada del multiplexor corresponde cada
casilla, de acuerdo con los valores de a, b y c. A cada entrada del multiplexor le
corresponden dos casillas.
ab
cd

I0

I2

I6

I4

00

01

11

10

00

01

11

1
1

0
7

10

Problemas Tema 4

I1

12

0
0

0
13
15

I3

I7

11

0
14

10

I5
Pgina 33

Sistemas Digitales

Directamente de la tabla se deducen los valores de las entradas al decodificador.


I0 = d , I1 = d , I2 = 1, I3 = d , I4 = 0, I5 = d, I6 = d , I7 = d
El circuito sera:
d

Multiplexor
habilitado

I0 I1 I2 I3 I4 I5 I6 I7

a bc

S2 S1 S0

MULTIPLEXOR `151

Z=f

Problemas Tema 4

Pgina 34

Sistemas Digitales

5.- Disear un circuito que realice la suma de un nmero C de 4 bits (c3c2c1c0) con el
mayor de los dos nmeros D (d3d2d1d0) y E (e3e2e1e0). Los tres nmeros estn
codificados en el sistema binario natural. Si los nmeros D y E son iguales, el resultado
ha de ser igual al nmero C. Utilizar para el montaje los circuitos combinacionales
integrados que sean necesarios.

Necesitamos hacer una comparacin, una seleccin 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 nmeros 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 conexin IA=B=1.
A3 A2 A1 A0

B3 B2 B1 B0

IA>B
A
B
COMPARADOR `85

IA=B
IA<B

OA<B OA=B OA>B


Utilizaremos este integrado con la entrada IA=B=1 para comparar los nmeros 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 nmero 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 habilitacin del multiplexor tendremos como salida del
multiplexor el mayor de los nmeros D y E, y si son iguales la salida ser cero.
A3 A2 A1 A0 B3 B2 B1 B0 A/ B E

B
MULTIPLEXOR `157
Z=AB

Z3 Z2 Z1

Z0

Por ltimo solo nos queda sumar esta salida con el nmero C utilizando para ello un
sumador `83. El circuito sera el siguiente:

Problemas Tema 4

Pgina 35

Sistemas Digitales

d3 d2 d1 d0

e3 e2 e1 e0

A A A A
IA>B 3 2 1 0

B3 B2 B1 B0

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 B1 B0 A/ B E
MULTIPLEXOR `157
Z3 Z2 Z1 Z0

c3 c2 c1 c0

A3 A2 A1 A0

B3 B2 B1 B0 CI

SUMADOR `83

S3 S2 S1 S0

Problemas Tema 4

CO

Pgina 36

Sistemas Digitales

6.- Disear un sumador aritmtico en cdigo BCD para nmeros positivos de una cifra a
partir de dos sumadores integrados 83 y las puertas lgicas que sean necesarias.
Generalizarlo para sumar nmeros BCD de ms de una cifra. (Padilla 55)

Un nmero en BCD de una cifra se corresponde con un cdigo binario de cuatro bits
en el que hemos representado un nmero del 0 al 9. Si sumamos dos dgitos en BCD
con un sumador `83 obtendremos una salida de cuatro bits ms un posible acarreo. Esta
salida est en binario, no en BCD. Hemos de disear un circuito que transforme esa
salida en dos dgitos BCD pues puede que el resultado de la suma sea superior a 9.
Si la salida vale de 0 a 9 el resultado es correcto. Si hay acarreo de salida en la suma
(lo que significa que el nmero es superior a 15, es decir 16, 17 o 18) o bien si el
nmero representado en la suma es superior a 9 (mximo valor representado en un
dgito BCD) hemos de modificar la salida para adaptarla a BCD. En cualquiera de estos
casos necesitamos dos dgitos BCD en el que el ms significativo valdr uno. Veamos la
tabla de los casos en los que es necesario convertir la suma binaria en BCD:
C
0
0
0
0
0
0
1
1
1

10
11
12
13
14
15
16
17
18

S3
1
1
1
1
1
1
0
0
0

S2
0
0
1
1
1
1
0
0
0

S1
1
1
0
0
1
1
0
0
1

S0
0
1
0
1
0
1
0
1
0

0
0
0
0
0
0
0
0
0

BCD MSD
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1

0
0
0
0
0
0
0
0
1

BCD LSD
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0

Dec.
16
17
18
19
20
21
22
23
24

0
1
0
1
0
1
0
1
0

Como se puede observar para las combinaciones de C, S3, S2, S1 y S0 de la tabla,


obtenemos el cdigo BCD correcto si sumamos 6 al resultado de la suma en binario
Adems hemos de poner el dgito BCD ms significativo a uno. Representamos en un
diagrama de Karnaugh con un 1 los resultados de la suma para los que hay que corregir.
Tenemos 5 variables por lo que hemos de hacer dos tablas, una para C=0 y otra para
C=1. Resultados de la suma por encima de 18 nunca se van a dar.
S3 S2
S1 S0
00
01

S3 S2
00

10

11

01
0

S1 S0
S3S2

12

13

11

15

C=0

Problemas Tema 4

14

00

01

16

17

11

11

S3S1

10

00

10

10

*
1

19

18

01

11

10

*
*

20

21

23

* 22

28

*
29

31

24

25

27

*
30

26

C=1

Pgina 37

Sistemas Digitales

Vemos que en el caso de C=1 siempre hay que corregir, como ya sabamos. 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 expresin final de la funcin (Cout) que nos indica cuando hay
que corregir el resultado es:

Cout C S3 S 2 S3 S1
En el circuito usaremos dos sumadores: uno para sumar los dos nmeros BCD de un
dgito (A0 y B0) y el otro para sumar 6 al resultado en los casos en los que Cout valga
uno.
B0

A0

0
A3 A2 A1 A0

B3 B2 B1 B0 CI

SUMADOR `83 (a)


CO S3 S2 S1 S0

Resultado
en binario

Cout

0
0
A3 A2 A1 A0

B3 B2 B1 B0 CI

SUMADOR `83 (b)


S3 S2 S1 S0

Resultado en
BCD: MSD

CO

Resultado en
BCD: LSD

Para generalizar este montaje hemos de considerar que se podra dar tambin la
situacin de tener que sumar dos BCDs de valor 9 ms un acarreo de la suma anterior.
Esto nos obliga a aadir otra lnea en la tabla anterior.

Problemas Tema 4

Pgina 38

Sistemas Digitales

19

C
1

S3
0

S2
0

S1
1

S0
1

BCD MSD
0
0

BCD LSD
0
0

Dec.
25

Sin embargo en el diagrama de Karnaugh solo tendramos que sustituir un * que


habamos considerado como 1 por un uno, con lo que la funcin Cout no se vera
afectada.

En definitiva si quisiramos sumar nmeros BCD de ms de una cifra nicamente


tendramos que repetir este circuito por cada dgito a sumar, conectando la salida Cout
de la suma i a la entrada CI del sumador de los dos dgitos siguientes (Ai+1, Bi+1). Los
distintos dgitos de la suma BCD se corresponderan con las salidas de los sumadores
(b).

Problemas Tema 4

Pgina 39

Sistemas Digitales

7.- Trabajando con nmeros con signo disear:


a) Un circuito sumador-restador de 4 bits (1 de signo y 3 de magnitud) en los
que la operacin a realizar viene indicada por la seal R / S ( R / S =1 resta,
R / S =0 suma). Trabajar en C2 y utilizar para ello un circuito sumador 83 y
las puertas XOR que sean necesarias.
b) Un detector de desbordamiento para el sumador-restador del apartado
anterior.
c) Un sumador-restador de nmeros de 8 bits (1 de signo y 7 de magnitud) con
detector de desbordamiento.
a) Los dos nmeros de 4 bits, A (A3A0) y B (B3B0) 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 nmeros, B. Al hacer el C2 cambiaremos el signo de B, tanto si era
positivo como negativo pues el C2 de un nmero en C2 es el nmero positivo.
El C2 implica invertir todos sus bits y sumarle uno. Si observamos la tabla de
verdad de la funcin 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
0
0
1
1

b XOR
0
0
1
1
0
1
1
0

Si realizamos un XOR entre cada bit del nmero B y el bit R / S invertiremos los
bits de B siempre que R / S =1, es decir cuando haya que restar. Si aplicamos la
seal R / S al acarreo de entrada CI, sumaremos 1 al nmero B despus de
haber sido invertido con lo que tendremos expresado B en C2 y podremos
realizar la resta.
B3 B2 B1 B0

A
B

R/S

A3 A2 A1 A0

CI

B
SUMADOR `83
S=A+B

S3 S2 S1 S0
Problemas Tema 4

CO
Pgina 40

Sistemas Digitales

b) Se puede producir desbordamiento si al sumar dos nmeros positivos o dos


negativos el resultado en valor absoluto excede los tres bits de magnitud, lo que se
traducir en que el bit de signo del resultado es distinto al de los dos sumandos. Por
ejemplo si sumamos 6 (0110) y 5 (0101) el resultado es 1011 que como nmero con
signo es -5, cuando el resultado debera ser 11.
Implementamos un circuito combinacional que detecte estas dos situaciones. Este
circuito nos generar una seal DB que valdr uno cuando exista desbordamiento, es
decir, cuando B3 y A3 sean iguales pero distintos a S3.

DB B3 A3 S3 B3 A3 S3
B3 B2 B1 B0
R/S

A3 A2 A1 A0

DB

CI

B
SUMADOR `83

S3 S2 S1 S0

CO

c) Ampliamos el circuito anterior para sumar nmeros de 8 bits conectando dos


sumadores `83.

Problemas Tema 4

Pgina 41

Sistemas Digitales

B7 B6 B5 B4

B3 B2 B1 B0

R/S

A7 A6 A5 A4

A3 A2 A1 A0

B
SUMADOR `83 (b)

CI

B
SUMADOR `83 (a)

CI

CO

S7 S6 S5 S4

CO

S3 S2 S1 S0

DB

Problemas Tema 4

Pgina 42