Sei sulla pagina 1di 33

Estructura de computadores

Tema 4:

Tema 4: Circuitos combinacionales

Circuitos combinacionales

4.0 Introduccin
Los circuitos lgicos digitales pueden ser de dos tipos:
combinacionales
secuenciales.
Circuitos combinacionales
Aquellos circuitos digitales con varias entradas y varias salidas, en los
cuales la relacin entre cada salida y las entradas puede ser expresada
mediante una funcin lgica (expresiones algebraicas, tablas de verdad,
circuito con puertas lgicas, etc.), se denominan circuitos
combinacionales.
De la definicin se deduce que cada salida en un instante de tiempo
determinado, depende exclusivamente de las entradas al circuito en el mismo
instante de tiempo, pero no depende de las entradas que hubo en instantes de
tiempo anteriores (no tiene "memoria").
x1
F(t) = (x1 (t) , x2(t), ... )

F
x2

Ahora bien, en cuanto a la implementacin mediante circuitos


electrnicos, hay que matizar algunos detalles. Hemos visto que las puertas
lgicas obtenan a su salida una seal, que dependa slo de las entradas,
pero esta salida no se estabilizaba hasta transcurrido un pequeo
intervalo de tiempo desde la aplicacin de las seales de entrada (del orden de
nanosegundos).
Por otro lado, si el circuito combinacional tiene varias entradas (n),
tambin puede tener varias salidas (m). Para "n" variables de entrada tenemos
2n combinaciones binarias posibles. Por tanto, podemos expresar un circuito
combinacional mediante una tabla de verdad que lista los valores de todas las
salidas para cada una de las combinaciones de entrada. Un circuito
combinacional tambin puede describirse mediante "m" funciones lgicas, una
para cada variable de salida; cada una de las cuales se presenta como funcin
de las "n" variables de entrada.
E0
E1
En

Sistema
Combinacional

S0
S1
Sm

Estructura de computadores

Tema 4: Circuitos combinacionales

Diremos pues, que un circuito combinacional real es aquel en el cual


las salidas dependen exclusivamente de las seales de entrada aplicadas, una
vez transcurrido el tiempo necesario para la estabilizacin de las salidas, desde
la aplicacin de las seales de entrada.
Multifunciones: Son aquellas funciones que tienen varias salidas, por lo
que habr una expresin lgica para cada salida.
E0

E1

En

S0

S1

Sn

A continuacin, vamos a estudiar algunos circuitos combinacionales que


realizan funciones especficas, por dos razones:
1. Circuitos muy complejos pueden descomponerse en circuitos o
bloques ms elementales, como los que vamos a estudiar, que se
interconectan entre si para formar el circuito ("Divide y vencers" o
diseo jerrquico).
2. Estos circuitos se encuentran disponibles comercialmente, integrados
en una sola pastilla.

4.1 Circuitos sumadores y restadores


4.1.1 Sumador binario
El sumador binario es el elemento bsico de la unidad aritmtica de
cualquier ordenador, pues cualquier operacin aritmtica bsica puede
realizarse a partir de sumas y restas repetidas.
Para sumar dos nmeros de n bits, hay que sumar dos a dos los bits del
mismo peso y el acarreo de la suma de los bits de peso inmediato inferior.

4.1.2 Semisumador (half adder)


Es un circuito combinacional que realiza la suma de dos dgitos binarios,
obteniendo su suma y el acarreo para la etapa siguiente. No tiene en cuenta el
bit de acarreo de la etapa anterior.
Su tabla de verdad, y smbolo como bloque es:
a

0
0
1
1

0
1
0
1

0
1
1
0

0
0
0
1

1/2

Suma (S)
Acarreo (C)

Implementando por "1":


S = a' b + a b' = a

C=ab
La suma S responde a una funcin OR-exclusiva y el acarreo C a una
funcin AND.

Si no deseamos utilizar la puerta OR-Exclusiva por su coste superior, el


semisumador se puede implementar de la siguiente forma:

Implementando por "0":


S = (a+b) (a'+b') =
= ((a+b) (a'+b'))' ' = ((a+b)' + (a'+b')')' = ((a+b) + (ab))' =
= (a+b) (ab)'
C=ab

De esta forma obtenemos un circuito mucho ms simple.

4.1.3 Etapa de sumador (sumador completo)


Es un circuito combinacional capaz de sumar dos dgitos (cifras)
binarios, teniendo en cuenta el acarreo producido en la etapa anterior. Obtiene
la suma y el acarreo para la etapa siguiente.
Su tabla de verdad y smbolo como bloque es:
a

Cin

Cout

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
1
1
0
1
0
0
1

0
0
0
1
0
1
1
1

a
b

Suma (S)

Cin

Acarreo (Cout )

a y b = Variables de entrada
Cin = Acarreo entrada (etapa anterior)
S = Suma
Cout = Acarreo salida (etapa siguiente)

Simplificamos mediante tablas de Karnaugh las funciones de salida S y


Cout. Para ello, construimos las tablas correspondientes implementando por "1"
desde la tabla de verdad.
S
Cin\ab
0
1

a'b'C in

00
0

01
1

11
3

10
2

1
4

a'bC in'

1
7

abC in

Cin\ab

ab'C in'

Cout
01
11

00
0

10
2

1
1

bC in

aC in

ab

La funcin S no se puede simplificar, ya que tenemos 4 1's o 4 0's


aislados, pero C out si, obtenindose (implementando por 1):
S = a'b' Cin + a'b Cin' + ab Cin + ab' Cin =
= (ab+ab)C in + (ab+ab)C in = (a b)C in + (a
= a b Cin = (a b) Cin

b)C in =

Cout = ab + a C in + b C in = ab + C in (ab' + a'b) = ab + C in(a

b)

Hemos manipulado las funciones de salida S y Cout para que incluyan la


OR-Exclusiva (recordar la funcin S del semisumador).
Esto significa que para implementar la funcin sumador completo, se
pueden utilizar dos puertas OR-Exclusiva.
Por razones econmicas, los fabricantes emplean para la
implementacin circuitos de nivel superior (ms lentos), pero que permiten un
gran ahorro en el nmero de puertas empleadas.

Una forma simple de implementar la etapa de sumador es a partir de dos


semisumadores. Como hay que sumar los dos bits (dgitos) del mismo peso
ms el acarreo anterior, se utiliza un semisumador para sumar los dos dgitos y
el resultado se suma con el acarreo anterior mediante otro semisumador. Si en
alguna de las dos sumas parciales se produce acarreo, habr acarreo en la
etapa de sumador (funcin OR). Esto puede comprobarse en la tabla de
verdad. La etapa de sumador puede implementarse con el siguiente circuito.

1/2

1/2

4.1.4 Sumador binario de n bits


Para sumar nmeros de n bits, se pueden emplear diferentes circuitos,
pero todos llevan como unidad bsica la etapa de sumador. La forma ms
simple de realizar un sumador de n bits es disponer de n etapas de sumador,
conectadas de tal forma que la salida de acarreo de cada etapa excita a la
entrada de acarreo de la etapa siguiente. Este circuito se denomina sumador
paralelo con acarreo en serie.
Denotamos con subndices cada uno de los
bits de los sumandos, indicando con el subndice 1 el bit menos significativo
(LSB).
A = a n ... a 1 (n bits)
B = b n ... b 1 (n bits)

Su esquema es el siguiente:
MSB

an

bn

Cn

a3

b3

C3
n

Sn

a2

b2

C2
3

S3

a1

b1

C1
2

S2

LSB

0 v.
1

S1

Tngase en cuenta que para la posicin menos significativa se puede


usar un semisumador, o bien, poner a 0 voltios (masa) la entrada de acarreo de
un sumador completo, ya que no existe entrada de acarreo en la posicin del
bit menos significativo.
Su diagrama funcional o de bloques es:
A

n
Cn

A = a n ... a 1 (n bits)
B = b n ... b 1 (n bits)
S = S n ... S 1 (n bits)

n bits

0 v.

n
S
Retardo de propagacin
Los bits de entrada se aplican simultneamente para producir la suma.
Cada sumador completo recibe los bits correspondientes de los dos sumandos
ai y bi y el acarreo de entrada, y genera el bit de suma Si y el acarreo de salida
Ci.
Pero esta suma y este acarreo no se pueden generar hasta que tiene
lugar el acarreo de entrada, lo que da lugar a un retardo temporal en el proceso
de la adicin. El retardo de propagacin del acarreo para cada sumador
completo es el tiempo transcurrido desde la aplicacin del acarreo de entrada
hasta que se produce el acarreo de salida, suponiendo que las entradas ya
existan. Para un sumador de n bits, este retardo es de 2n+2 retardos de puerta,
lo cual es bastante significativo.
Un diseo alternativo que permite eliminar este retardo es el sumador
con acarreo anticipado, a costa de incrementar el nmero de puertas.
Expansin de sumadores
Podemos conectar en cascada varios sumadores de un nmero fijo de
bits (n) para conseguir otro sumador del ms de bits. A esto se le llama
expansin de sumadores.
Para conectar dos sumadores de n bits, debemos conectar la entrada de
acarreo del sumador de menor orden a masa (0 v.), y la salida de acarreo de
cada sumador, a la entrada de acarreo del sumador de orden superior. Este
proceso se denomina conexin en cascada.
Por ejemplo, con dos sumadores de 4 bits, conseguiremos otro de 8 bits.
Comercialmente existen sumadores de 4 bits como componentes digitales que
podemos utilizar como bloque de construccin de un sistema digital y, por
tanto, se define como bloque funcional.

A8..5

B8..5

4
Cout

A4..1

4 bits

B4..1

4
Cout

0 v.
4 bits

4
S8..5

S4..1

Como ejemplo de sumadores de 4 bits, tenemos dos modelos de IC de


media escala (MSI): 74LS83A y 74LS283.

4.1.5 Substractor binario


Para restar dos nmeros binarios, pueden restarse directamente
mediante un circuito especfico, o bien, sumar al minuendo el complemento a 2
del sustraendo. Este segundo mtodo es ms barato, pero algo ms lento. Por
tanto, dependiendo del precio y calidad del ordenador, se emplear un mtodo
u otro.

4.1.6 Semisubstractor (half substractor)


Es un circuito combinacional capaz de restar dos bits a y b, obteniendo
su diferencia D y el acarreo para la etapa siguiente C.
Su tabla de verdad y smbolo como bloque es:
a

0
0
1
1

0
1
0
1

0
1
1
0

0
1
0
0

1/2
D

Diferencia (D)

Acarreo (C)

Implementando por "1":


D = a' b + a b' = a
C = a' b

El circuito puede implementarse de alguna de las siguientes formas:

4.1.7 Etapas de substractor (substractor completo)


Es anlogo de la etapa de sumador. Resta dos dgitos, teniendo en
cuenta el acarreo de la etapa anterior, y obtiene la diferencia y el acarreo para
la etapa siguiente.
Su tabla de verdad y smbolo como bloque es:
a

Cin

Cout

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
1
1
0
1
0
0
1

0
1
1
1
0
0
0
1

Diferencia (D)

Cin

Acarreo (Cout )

a y b = Variables de entrada
Cin = Acarreo entrada (etapa anterior)
D = Diferencia
Cout = Acarreo salida (etapa siguiente)

Simplificamos mediante tablas de Karnaugh las funciones de salida D y


Cout. Para ello, construimos las tablas correspondientes implementado por "1"
desde la tabla de verdad.
D
Cin\ab
0
1

00

01
1

a'b'C in

11

a'bC in'

10

Cin\ab

abC in

00

1
5

ab'C in'

Cout
01
11
3

10

1
1

a'C in

a'b

bC in

Las funciones lgicas de D y C out son:


D=a

Cin = (a

b)

Cin

(Igual que el sumador)

Cout = a'b + a'C in + bC in = (a'b+a'C in+bC in)'' = ((a'b)'(a'C in)'(b C in)')'


El circuito restador ser:

Cout

La etapa de substractor puede obtenerse fcilmente de dos modos


diferentes:
1. Se restan sucesivamente b de a, y al resultado se le resta Cin
(acarreo de la etapa anterior): a b C in
2. Se suman b y C in y el resultado se resta de a: a (b+C in)
Los circuitos que implementan la etapa de substractor segn estos dos
modos de operacin son:
Modo 1: substractor formado por dos semisubstractores.
a

1/2
D

1/2
D

Cout

Cin

Modo 2: substractor formado por un semisumador y un semisubstractor.


a

1/2
D

1/2

Cin

Cout

4.1.8 Substractor binario de n bits


Podemos utiizar estas etapas de substractor para construirlo, del mismo
modo que para el sumador binario de n bits.
MSB

Cn

an

bn

Dn
Dn

a3
C3

b3

D3
D3

a2

C2

b2

D2
D2

a1

C1

b1

D1

LSB

0 v.

D1

Otra forma es utilizar la representacin en complemento a 1 o 2 para


realizar la resta de dos nmeros binarios mediante un sumador. Para obtener el
complemento a 2 se toma el complemento a 1 y se suma 1 al bit menos
significativo. El complemento a 1 se implementa fcilmente con circuitos

inversores en paralelo. Utilizando el complemento a 1 y una entrada de


sumador sin utilizar para sumar 1 se consigue el complemento a 2 a bajo costo.
bn

b3

an

b2

a3

Cn

b1

a2

C3

a1

C2

Sn

S3

C2 = C1 + 1

C1
2

S2

S1

En la resta de complemento a 2, si hay acarreo se desprecia, y si no


hay, debemos corregir el resultado complementando a 2 el resultado.
Las operaciones suma y resta pueden combinarse en un solo circuito
con un sumador binario comn. Esto se logra incluyendo una puerta XOR con
cada sumador completo. Debemos de poner una entrada que nos indique la
operacin que vamos a realizar: suma o resta (S/R). Cuando S/R=0, el circuito
es sumador; cuando S/R=1, se comporta como restador.
bn

b3

b2

b1
S/R
S/R = 0 Sumar
S/R = 1 Restar

an

a3

Cn

a2

C3

C2

Sn

a1

S3

C1
2

S2

S1

Suma: 0
Resta: 1
(C2 = C1 + 1)

El funcionamiento de este circuito se puede ver fcilmente con la


siguiente tabla de verdad:
S/R
0
0
1
1

bi
0
1
0
1

XOR
0
1
1
0

Descripcin
Suma: no cambia b i
Resta: complementa b i
Adems, suma "1" para obtener el C 2

10

4.2 Codificadores y decodificadores


4.2.1 Codificadores
Son circuitos combinacionales que permiten pasar una informacin en
forma decodificada (dgito decimal u octal) a una forma codificada (BCD o
binario). Si nos limitamos a sistemas binarios, el codificador deber tener n
salidas si queremos codificar m entradas, siendo m 2n.
De esta forma, m informaciones diferentes quedan representadas
mediante grupos de n bits, es decir, las lneas de salida generan el cdigo
binario correspondiente al valor de entrada.
E0

E1

E2

E3

m entradas
m 2n
n salidas

Codificador

S0

S1

4.2.1.1 Ejemplo: Codificador octal a binario


Tenemos 8 entradas, una para cada dgito octal, y tres salidas que
generan el nmero binario correspondiente. Se supone que slo una entrada
tiene un valor de 1 en cualquier momento.
E7
0
0
0
0
0
0
0
1

E6
0
0
0
0
0
0
1
0

E5
0
0
0
0
0
1
0
0

Entradas
E4
E3
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0

E2
0
0
1
0
0
0
0
0

E1
0
1
0
0
0
0
0
0

E0
1
0
0
0
0
0
0
0

S2
0
0
0
0
1
1
1
1

Salidas
S1
0
0
1
1
0
0
1
1

S0
0
1
0
1
0
1
0
1

Si implementamos por 1, obtenemos las funciones lgicas de las 3


salidas:
S0 = E1 + E 3 + E 5 + E 7
S1 = E2 + E 3 + E 6 + E 7
S2 = E4 + E 5 + E 6 + E 7
Vemos que el decodificador puede implementarse con 3 puertas OR de
4 entradas.

11

Este decodificador tiene la limitacin de que slo puede estar activa una
entrada en un momento dado: si se activan simultneamente dos entradas, la
salida produce una combinacin incorrecta. Para resolver esta ambigedad,
algunos circuitos codificadores deben establecer una prioridad de entrada
para asegurar que slo se codifique una entrada. Por ejemplo, en este caso
podramos haber establecido una prioridad ms alta para las entradas con
subndices mayores.
Otra ambigedad de este codificador es que se genera una salida de 0s
cuando todas las entradas son 0, pero esta salida es igual que cuando D0=1.
Esta discrepancia puede resolverse dando una salida ms para indicar que al
menos una de las entradas es igual a 1.
4.2.1.2 Ejemplo: Teclados
Ejemplos tpicos de codificacin son los utilizados en los teclados de los
computadores y mquinas de calcular. En un teclado alfanumrico, por
ejemplo, tenemos 27 teclas para letras y 10 para cifras. Cada tecla va
conectada a una lnea elctrica, que estar a nivel lgico 1 0, segn la
tecla correspondiente est pulsada o no.
Para que la informacin enviada por el teclado al computador se
transmita, es inviable disponer de tantas lneas como teclas. Por ello se emplea
un codificador que permite pasar del nmero de lneas igual al de teclas, a slo
7 lneas, si se emplea, por ejemplo, cdigo ASCII.
Otro caso tpico es el del teclado numrico, en el cual, mediante un
codificador, se pasa de 10 lneas a 4 lneas. Vamos a ver como ejemplo este
caso, suponiendo que el cdigo de salida es BCD (Decimal Codificado en
Binario).
Como hay 10 smbolos diferentes sern necesarias 10 entradas y 4
salidas. La correspondencia entre entradas y salidas se representa en la tabla
siguiente:
E9
0
0
0
0
0
0
0
0
0
1

E8
0
0
0
0
0
0
0
0
1
0

E7
0
0
0
0
0
0
0
1
0
0

E6
0
0
0
0
0
0
1
0
0
0

Entradas
E5 E 4
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0

E3
0
0
0
1
0
0
0
0
0
0

E2
0
0
1
0
0
0
0
0
0
0

E1
0
1
0
0
0
0
0
0
0
0

E0
1
0
0
0
0
0
0
0
0
0

S3
0
0
0
0
0
0
0
0
1
1

Salidas
S2 S 1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0

S0
0
1
0
1
0
1
0
1
0
1

12

Implementando por 1, las 4 funciones de las salida son:


S3 = E 8 + E 9
S2 = E 4 + E 5 + E 6 + E 7
S1 = E 2 + E 3 + E 6 + E 7
S0 = E 1 + E 3 + E 5 + E 7 + E 9
que pueden realizarse mediante puertas OR:

Notemos que E0 no participa en la elaboracin del cdigo de salida. En


el caso del teclado sera equivalente pulsar "0" que no pulsar nada. En estos
casos se aade una salida adicional que indica cuando se ha pulsado alguna
tecla.
4.2.1.3 Tipos de codificadores:
Existen dos tipos de codificadores:
Codificadores sin prioridad
Codificadores con prioridad
Cualquier codificador que funcione como el descrito anteriormente recibe
el nombre de codificador sin prioridad, y se caracteriza porque, en caso de
presentarse dos entradas simultneas o ms, las salidas obtenidas sern todas
aquellas que correspondan a cada entrada por separado. Por tanto, en estos
codificadores slo se puede poner a 1 una sola entrada, pues de otro modo,
la salida es incorrecta.
Existe otro tipo de codificadores, llamados codificadores con prioridad,
que en el caso de activarse ms de una entrada, la combinacin de salidas
obtenida corresponde a la entrada de mayor valor decimal de entre las
activadas. Por ejemplo, si pulsamos las teclas 1 y 3 simultneamente, se
queda con el 3.

13

4.2.2 Decodificadores
Realizan la funcin inversa de los codificadores. Partiendo de una
informacin codificada de n bits, obtiene la informacin de que se trata. El
nmero m de informaciones que se pueden obtener (salidas) debe ser tal que
n
m 2 . Si la informacin codificada de n bits tiene combinaciones no usadas
(indiferencias), el decodificador podra tener menos de 2 n salidas.
E0

E1

n entradas
m 2n
m salidas

Decodificador

S0

S1

S2

S3

Ejemplo 1: Decodificador de BCD a decimal


Su tabla de verdad es:
E3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Entradas
E2 E 1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

E0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

S9
0
0
0
0
0
0
0
0
0
1
x
x
x
x
x
x

S8
0
0
0
0
0
0
0
0
1
0
x
x
x
x
x
x

S7
0
0
0
0
0
0
0
1
0
0
x
x
x
x
x
x

S6
0
0
0
0
0
0
1
0
0
0
x
x
x
x
x
x

Salidas
S5 S 4
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x

S3
0
0
0
1
0
0
0
0
0
0
x
x
x
x
x
x

S2
0
0
1
0
0
0
0
0
0
0
x
x
x
x
x
x

S1
0
1
0
0
0
0
0
0
0
0
x
x
x
x
x
x

S0
1
0
0
0
0
0
0
0
0
0
x
x
x
x
x
x

Implementando por "1":


S0 = E3' E 2' E 1' E 0'
S 1 = E 3' E 2' E 1' E 0
S 2 = E 3' E 2' E 1 E 0'
S 3 = E 3' E 2' E 1 E 0
S4 = E3' E 2 E 1' E 0'

S5 = E3' E 2 E 1 E 0
S6 = E3' E 2 E 1 E 0'
S 7 = E 3' E 2 E 1 E 0
S8 = E3 E 2' E 1' E 0'
S9 = E3 E 2' E 1' E 0

14

Estructura de computadores

Tema 4

Si no simplificamos las funciones, utilizando inversores y puertas AND


de 4 entradas podemos implementar el circuito del siguiente modo
E0

E1

E2

E3

S0

S9

Este decodificador activa (pone a 1) una de sus salidas, cuando se


presenta una combinacin vlida en la entrada. En cambio, si el cdigo no es
vlido (por ejemplo, 1 1 1 1), no se activa ninguna salida. Por tanto, con este
diseo se eliminan las combinaciones de entrada no vlidas. Es posible disear
un decodificador que no elimine las combinaciones no vlidas, con la ventaja
de que resulta un circuito ms simple y econmico.
Si intentamos simplificar estas funciones de salida S0..S 9 veremos que
no todas se pueden simplificar.
Por ejemplo, vamos a simplificar S9, mediante tablas de Karnaugh e
implementando por 1:
E 3E 2 \ E 1E 0
00

00

01

11

10

01

11

10

S9 = E3 E 2' E 1' E 0 = E3 E 0

NOTA. Existen decodificadores con salida activa por nivel bajo (0),
como por ejemplo el 74154, que es un decodificador de 4 a 16.

15

Ejemplo 2: Decodificador de BCD a segmentacin en siete


Los dispositivos de visualizacin de las calculadoras electrnicas y
relojes digitales utilizan diodos emisores de luz (LEDs). Cada dgito del
dispositivo se forma con siete segmentos, cada uno consistente en un LED que
se ilumina mediante seales digitales.
El decodificador que vamos a ver es un circuito combinacional que
acepta un dgito decimal en BCD y genera las salidas adecuadas para la
seleccin de los segmentos que representan el dgito decimal.
Disposicin de los segmentos en un display de 7 segmentos:
A
B
C
D

Circuito
combinacional:
decodificador BCD
a 7 segmentos

a..g
f

b
c

Segmentos activos para todos los dgitos decimales:

Como vemos, cada segmento se utiliza para varios dgitos decimales,


pero ninguno de ellos se emplea para representar todos los dgitos decimales.
Por tanto, debemos determinar los segmentos que hay que activar para cada
uno de los dgitos decimales.
Dgito decimal
0
1
2
3
4
5
6
7
8
9

Segmentos activados
a,b,c,d,e,f
b,c
a,b,d,e,g
a,b,c,d,g
b,c,f,g
a,c,d,f,g
a,c,d,e,f,g
a,b,c
a,b,c,d,e,f,g
a,b,c,d,f,g

La lgica de decodificacin de segmentos requiere cuatro entradas en


cdigo decimal binario (BCD) y siete salidas, una para cada segmento del
display. La tabla de verdad ser de salida mltiple, equivalente a 7 tablas de
verdad, una por segmento. Vamos a considerar que al tener "1" en las salidas,
el segmento correspondiente est encendido.

16

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

D
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Entradas
C
B
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

A
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

a
1
0
1
1
0
1
1
1
1
1
x
x
x
x
x
x

b
1
1
1
1
1
0
0
1
1
1
x
x
x
x
x
x

Salidas
c
d
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
x
x
x
x
x
x
x
x
x
x
x
x

e
1
0
1
0
0
0
1
0
1
0
x
x
x
x
x
x

f
1
0
0
0
1
1
1
0
1
1
x
x
x
x
x
x

g
0
0
1
1
1
1
1
0
1
1
x
x
x
x
x
x

Hemos considerado la entrada A como el bit menos significativo (LSB) y


la entrada D como el bit ms significativo (MSB) porque as lo hacen la mayora
de fabricantes de IC.
Como el cdigo BCD tan slo tiene los valores 0..9, las ltimas 6
combinaciones (10-15) nunca aparecern en las entradas, por lo que tenemos
la opcin de tratarlas como condiciones indiferentes en las salidas ("x").
Una vez que ya hemos construido la tabla de verdad, a partir de ella
podemos obtener las expresiones suma de productos o producto de sumas de
cada una de las 7 salidas, es decir, para cada uno de los segmentos.
Sumas de productos (implementando por "1")
Segmento Expresin lgica
a
a = D'C'B'A' + D'C'BA' + D'C'BA + D'CB'A + D'CBA' +
D'CBA + DC'B'A' + DC'B'A
b
b = D'C'B'A' + D'C'B'A + D'C'BA' + D'C'BA + DC'BA +
D'CBA + DC'B'A' + DC'B'A
c
c = D'C'B'A' + D'C'B'A + D'C'BA + DC'BA + D'CB'A +
D'CBA' + D'CBA + DC'B'A' + DC'B'A
d
d = D'C'B'A' + D'C'BA' + D'C'BA + D'CB'A + D'CBA' +
DC'B'A' + DC'B'A
e
e = D'C'B'A'+ D'C'BA' + D'CBA' + DC'B'A'
f
f = D'C'B'A'+ DC'BA + D'CB'A + D'CBA' + DC'B'A' +
DC'B'A
g
g = D'C'BA' + D'C'BA + DC'BA + D'CB'A + D'CBA' +
DC'B'A' + DC'B'A

17

Producto de sumas (implementando por "0")


Segmento
a
b
c
d
e
f
g

Expresin lgica
a = (D+C+B+A') (D+C'+B+A)
b = (D+C'+B+A') (D+C'+B'+A)
c = (D+C+B'+A)
d = (D+C+B+A') (D+C'+B+A) (D+C'+B'+A')
e = (D+C+B+A') (D+C+B'+A') (D+C'+B+A) (D+C'+B+A')
(D+C'+B'+A') (D'+C+B+A')
f = (D+C+B+A') (D+C+B'+A) (D+C+B'+A') (D+C'+B'+A')
g = (D+C+B+A) (D+C+B+A') (D+C'+B'+A')

Debemos tener en cuenta que al ser "multifunciones" tendremos algunos


trminos comunes cuyas puertas podrn ser compartidas.
Vamos a simplificar estas expresiones mediante tablas o mapas de
Karnaugh, utilizando condiciones indiferentes e implementando por "1", tanto
para la construccin de la tabla de Karnaugh como para su simplificacin.
Segmento "a":
DC \ BA
00

00

01

11

10

C'A'

01
11
10

CA

a = D + B + CA + C'A'
Simplificando del mismo modo el resto de segmentos obtendremos:
Segmento
a
b
c
d
e
f
g

Expresin lgica
a = D + B + CA + C'A'
b=
c=
d=
e=
f=
g=

18

Podemos comprobar que las expresiones se han simplificado bastante,


con lo que podemos implementarlas con muchas menos puertas que antes.
El problema que tiene el uso de indiferencias "x" es que el diseo final
producir algunas presentaciones arbitrarias sin sentido en el display con estas
combinaciones. Otra opcin mejor sera apagar todos los segmentos cuando
se produzca cualquiera de las combinaciones de entrada no permitidas. Esto
se consigue asignando 0 a las salidas de la tabla de verdad para esas 6
combinaciones.
La nueva tabla de verdad sera:
Dg.
dec.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

D
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Entradas
C
B
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

A
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

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

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

Salidas
d
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0

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

e
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0

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

g
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0

Segmento "a":
DC \ BA
00

00

11

10

01
11
10

C'B'A'

01

DC'B'

D'B

D'CA

a = D'B + D'CA + C'B'A' + DC'B'

19

Simplificando por Karnaugh todos los segmentos obtendremos:


Segmento
a
b
c
d
e
f
g

Expresin lgica
a = D'B + D'CA + C'B'A' + DC'B'
b = D'C' + D'B'A' + D'BA + DC'B'
c = D'C + D'A + C'B'A' + DC'B'
d = D'BA' + D'C'B + C'B'A' + DC'B' + D'CB'A
e = D'BA + C'B'A'
f = D'CB' + D'B'A' + D'CA' + DC'B'
g = D'BA' + D'C'B + D'CB' + DC'B'

El decodificador BCD a 7 segmentos se conoce como decodificador por la


mayora de fabricantes de IC, porque decodifica el cdigo binario para una
dgito decimal; sin embargo, en realidad es un convertidor que traduce un
cdigo decimal de 4 bits a cdigo de 7 bits. La palabra "decodificador" hace
referencia a otro tipo de circuito.
Ejemplo: el decodificador 7447 es un decodificador de este tipo.

20

4.3 Multiplexores y demultiplexores


4.3.1 Multiplexores
Son circuitos combinacionales con una estructura de varias entradas y
una nica salida de datos. Permiten seleccionar una de las entradas para
realizar la transmisin de datos desde dicha entrada a la salida, que es nica.
Los demultiplexores realizan la funcin inversa.
Esquemticamente:
Entradas

Salida

Entrada

Multiplexor

Salidas

Demultiplexor

Un multiplexor es un selector de datos equivalente a un conmutador de


"m" entradas y una salida, por lo que tambin recibe el nombre de selector de
datos o conmutador electrnico.
La seleccin de la entrada se controla mediante unas entradas de
seleccin o control. Cuando slo tenemos una entrada de control (2 entradas),
tambin se le llama entrada de habilitacin (enable).
La entrada seleccionada viene biunvocamente determinada por la
combinacin de "0" y "1" en las entradas de control. Por tanto, si tenemos "m"
entradas de datos, harn falta "n" entradas de control, siendo m 2n .
El diagrama de bloques es:
E0
E1
E2

MUX
4
entradas

"m" entradas de informacin


n
"n" entradas de control (m=2 )
1 nica salida (S)

E3

C0

C1

Como la salida de datos ser igual a la entrada de datos seleccionada,


podemos obtener una expresin lgica para la salida en funcin de las
entradas de datos y las entradas de seleccin.

21

Ejemplo: un multiplexor de 4 entradas de datos (4 a 1)


Su tabla de verdad es:
Entradas de control
C1
C0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

E3
x
x
x
x
x
x
0
1

No nos importan
Entradas de datos
E2
E1
x
x
x
x
x
0
x
1
0
x
1
x
x
x
x
x

Salida
S
0
1
0
1
0
1
0
1

E0
0
1
x
x
x
x
x
x

en donde la x significa que el valor de dicha entrada no influye en la


salida. Implementando por "1" tenemos:
S = C 1' C 0' E 0 + C 1' C 0 E1 + C1 C0 E 2 + C1 C0 E 3
Esta funcin se puede simplificar ms. La implementacin con puertas
lgicas es la siguiente:
E0
E1

E2
E3

C0

C1

Para diferente nmero de entradas el circuito tiene la misma estructura.


Ejemplos de multiplexor:
el 74157 es un circuito 4 entradas de datos y 2 entradas de control (4
MUX).
el 74151A tiene 8 entradas de datos y 3 de seleccin (8 MUX).
el 74159 tiene 16 entradas de datos y 4 de seleccin (16
MUX).

22

NOTA: Podemos agrupar varios multiplexores para formar otros de


mayor nmero de entradas. Por ejemplo, con 5 multiplexores de 4 entradas
podemos formar 1 multiplexor de 16 entradas. Adems ser necesario alguna
lgica en las lneas de control o seleccin, para habilitar slo los multiplexores
que nos interesen.
E0

MUX
1

MUX
2
MUX
MUX

MUX

E15

C0 C1

C2 C3

Las aplicaciones de los multiplexores son muy numerosas:


Conversor paralelo-serie: permiten seleccionar una de entre varias
lneas de datos o enviar las informaciones de varias lneas por una sola,
dedicando un pequeo intervalo de tiempo a cada una de ellas.
Generador de funciones lgicas: es la posibilidad de implementar
funciones lgicas con solamente un multiplexor, directamente desde la
tabla de verdad, en forma de suma de productos (implementando por
"1"). En general, cualquier funcin de "n" variables puede implementarse
mediante un multiplexor de 2n entradas. Con esto conseguimos sustituir
puertas lgicas por multiplexores, para reducir significativamente el
nmero de circuitos integrados y permite que los cambios en el diseo
sean mucho ms sencillos.

23

Ejemplo
Vamos a implementar una funcin lgica a partir de un multiplexor dado,
y sus conexiones.
MUX 4
C

E0 (00)

E1 (01)

0
1

E2 (10)
E3 (11)
C1 C0

(MSB) a

b (LSB)

La funcin lgica F implementada por un multiplexor se obtiene del


siguiente modo:
Para las distintas combinaciones de las entradas de control, vemos las
entradas de datos que se activan. Con esto formaremos los distintos
trminos de la funcin (productos).
La funcin lgica final ser una suma de productos de los trminos
producto obtenidos para cada combinacin de las entradas de control.

La tabla de verdad sera:


Seales de control
a
b
0
0
0
1
1
0
1
1

Entradas de datos
Entrada
Valor
E0
c
E1
c
E2
0
E3
1

Trmino asociado
abc
ab c
a b0
a b 1

Por tanto, la funcin lgica ser la suma de dichos trminos


producto: F = (abc) + (ab c) + (a b0) + (a b 1)
Simplificando nos queda:
F = (abc) + (ab c) + (ab) = a (bc + bc) + (ab) =
= a (b c) + (ab)

Ejemplo
A partir de la funcin lgica, vamos a disear el circuito utilizando un
multiplexor y la lgica necesaria. Primero utilizaremos un multiplexor de 8
entradas de datos y luego uno de 4 entradas.
El circuito lgico de una funcin lgica utilizando un multiplexor se
obtiene de la siguiente forma:
Debemos expresar la funcin en forma de trminos cannicos (suma de
productos).
Expresamos cada uno de los trminos cannicos como su valor binario.
Dependiendo del nmero de entradas de datos del multiplexor, lo que
hacemos es asignar las variables a cada una de las entradas de control,
(las que queramos, aunque conviene comenzar por las de mayor peso).
Para el resto de variables (si quedan), debemos averiguar la lgica
adicional que hay que poner en cada una de las entradas de datos
(constantes "0" o "1", entradas de datos sin asignar, sus
complementos).
Si no quedan variables por asignar en las entradas de control, slo
tendremos 0s o 1s en las entradas de datos. Los trminos cannicos
(productos) que formen parte de nuestra funcin lgica, pondremos un
1 en la entrada correspondiente a su cdigo binario. Para el resto
pondremos 0.
Sea la funcin lgica:

F(a,b,c) = ab + abc + abc + abc

1. La expresamos en trminos cannicos:


F(a,b,c) = ab(c+c) + abc + abc + abc =
= abc + abc + abc + abc + abc
2. Obtenemos el valor binario de todos los trminos:
F(a,b,c) = 1 1 1 + 1 1 0 + 0 1 1 + 1 0 0 + 0 0
0
Multiplexor de 8 entradas
MUX 8
1
0

E0 (000)
E1 (001)

0
1

E2 (010)
E3 (011)

1
0

E4 (100)
E5 (101)

1
1

E6 (110)
E7 (111)
C2 C1 C0

(MSB) a

b c (LSB)

25

Multiplexor de 4 entradas
Partimos de la misma funcin lgica, ya expresada en trminos
cannicos:
F(a,b,c) = abc + abc + abc + abc + abc
Seales de control Entradas de datos
a
b
Entrada
Valor
0
0
E0
c
0
1
E1
c
1
0
E2
c
1
1
E3
1

Trminos asociados
ab
ab
a b
a b

abc
abc
abc
abc + abc =
= ab(c+c) = ab1

MUX 4
c

E0

E1

F
c
1

E2
E3
C1 C0

(MSB) a

b (LSB)

NOTA: Desde la tabla de verdad tambin se puede obtener la lgica adicional.


Para cada posible combinacin de las entradas de control, se nos activa
una sla entrada, que ser la salida de la funcin. Pues debemos
averiguar el valor o valores que toma la funcin de salida para cada una
de esas combinaciones mirando en la tabla de verdad. Este valor puede
ser:
Siempre "0" (constante), independientemente de la variable de
entrada sin asignar.
Siempre "1" (constante), independientemente de la variable de
entrada sin asignar.
Que coincida exactamente con dicha variable.

Que coincida exactamente con el complementario de dicha


variable.

26

4.3.2 Demultiplexores
Un demultiplexor es un circuito combinacional que realiza la funcin
inversa de un multiplexor, es decir, expande un circuito de una sola seal de
entrada a varias seales de salida: 2n. La informacin se redirige a una sola
salida. La seleccin de la salida especfica es controlada por la combinacin de
bits de n lneas de seleccin o control.
El diagrama de bloque es:
S0
E

DEMUX
4
salidas

1 entrada nica (E)


"n"entradas de control (m=2n)
"m" salidas

S1
S2
S3

C0

C1

El circuito es:
E

S0
S1
S2
S3

Si examinamos el circuito
veremos que el circuito demultiplexor
es idntico a un decodificador de 2 a
4 lneas con entrada de habilitacin:
Para
el
decodificador:
las
entradas de datos son C0 y C1, y la
habilitacin es la entrada E.
Para el demultiplexor : la entrada
E provee los datos, mientras que las
entradas C 0 y C1 son las entradas de
control o seleccin.

C0

C1

Aunque ambos circuitos tienen aplicaciones diferentes, sus diagramas


lgicos son idnticos. Por esto, a los decodificadores con entrada de
habilitacin se les llama decodificador/demultiplexor.
Las aplicaciones de los demultiplexores son:
Conversor serie-paralelo
Ejemplo de demultiplexor: el 74154, de 16 salidas.

4.4 Circuitos comparadores


La funcin bsica de un comparador consiste en comparar las
magnitudes de dos cantidades binarias (n bits) para determinar su relacin:
igualdad y desigualdad (menor, mayor):
A<B

A=B

A>B

El smbolo como bloque es:


S1 (A<B)

COMP

n
B

S2 (A=B)

A = a n ... a 1 (n bits)
B = b n ... b 1 (n bits)

S3 (A>B)

Slo una de las tres salidas se pondr a "1", indicando la magnitud de A


respecto de B.
Comparador de nmeros binarios de 1 bit
Vamos a disear un comparador de 2 nmeros A y B de 1 bit cada uno
(a y b). El comparador tendr dos entradas (a y b) y 3 salidas (S 1, S 2, S 3):
La tabla de verdad:
Entradas
a
0
0
1
1

b
0
1
0
1

S1 (a<b)
0
1
0
0

Salidas
S2 (a=b)
1
0
0
1

S3 (a>b)
0
0
1
0

Implementando por "1" las tres funciones de salida:


S1 = a'b
S2 = a'b' + ab = (a
S3 = ab'

b)' = ( a'b + ab' )'

El circuito bsico ser:


a

S1 (a<b)
S2 (a=b)

S3 (a>b)

Comparador de nmeros binarios de "n" bits


Para comparar dos nmeros binarios A y B de "n" bits necesitamos "n"
circuitos comparadores de 1 bit como el anterior.
Detector de igualdad (A=B)
En el caso de la igualdad, para detectar que dos nmeros binarios de "n"
bits son iguales, todos los bits deben ser iguales, es decir, las salidas S2 (a=b)
correspondientes a cada uno de los circuitos comparadores de 1 bit deben ser
todos 1. Por tanto, tendremos que unirlas todas en una puerta AND.
Por ejemplo, para n=4:
a1

S1 (a<b)
S2 (a=b)

b1

S3 (a>b)

a2

S1 (a<b)
S2 (a=b)

b2

S3 (a>b)
A=B

a3

S1 (a<b)
S2 (a=b)

b3

S3 (a>b)

a4

S1 (a<b)
S2 (a=b)

b4

S3 (a>b)

Para realizar la comparacin de igualdad podemos utilizar la puerta


XOR (OR exclusiva), ya que su salida es 1 cuando los dos bits de entrada son
diferentes y 0 cuando son iguales.
Por tanto, el circuito comparador bsico (nmeros binarios de 1 bit) se
puede implementar del siguiente modo:
a
b

a=b

Para n=4 (comparador de 4 bits) hacemos lo mismo de antes:


a1
b1

a1=b1

a2
b2

a2=b2

a3
b3

a3=b3

a4
b4

a4=b4

A=B

Detector de desigualdad (A<B y A>B)


Para determinar una desigualdad entre dos nmeros binarios A y B de "n"
bits, el procedimiento general consiste en:
1. En primer lugar se examina el bit de mayor orden (MSB), y vamos
desplazndonos hacia el bit menos significativo (LSB).
2. Si encontramos una igualdad (los bits comparados son iguales),
debemos continuar con el proceso, examinando los siguientes bits de
orden inmediatamente inferior.
3. En el momento en que encontremos una desigualdad, la relacin
entre ambos queda ya establecida, y finalizamos el proceso; cualquier
otra desigualdad entre bits de posiciones de orden menor debe
ignorarse. Es decir, la relacin de ms alto orden es la que tiene
prioridad.
Ejemplos de comparadores de magnitud seran: 74HC85 (4 bits MSI)

Igual que en el caso de los circuitos sumadores, podemos concatenar


varios circuitos comparadores para comparar nmeros binarios de ms bits.
En el siguiente esquema vemos un comparador de 8 bits formado por
dos comparadores de 4 bits.

A1..4
n
"0"
"1"
"0"
B1..4

COMP

COMP

A5..8
n

A>B

A>B

A>B

A>B

A=B

A=B

A=B

A=B

A<B

A<B

A<B

A<B

B5..8
n

Para el caso del comparador 74HC85, "1" = +5v. y "0" = 0v.

S1 (A<B)
S2 (A=B)
S3 (A>B)

4.5 Generadores/comprobadores de paridad


Durante la transmisin de informacin binaria se pueden producir errores.
Para detectar estos errores se utiliza el mtodo de paridad, el cual utiliza un bit
de paridad.
La idea del mtodo de paridad es la siguiente. Cualquier grupo de bits
contiene un nmero par o impar de 1's. Lo que hacemos es aadir un bit de
paridad. Un bit de paridad es un bit adicional incluido en el mensaje binario
para hacer que la cantidad de unos sea par o impar. El mensaje se transmite
(incluyendo el bit de paridad), y luego se comprueba en el extremo receptor. Si
la cantidad de bits 1's del mensaje no corresponden al bit de paridad
transmitido quiere decir que uno de los bits ha cambiado de valor, y por tanto,
se detecta un error.
El circuito que genera el bit de paridad del transmisor se llama generador
de paridad. No importa si se aade al principio o al final del mensaje a
transmitir.
El circuito que comprueba el bit de paridad en el receptor se llama
comprobador de paridad.
Obviamente, un determinado sistema puede funcionar con paridad par o
impar, pero no con ambas:
Paridad par:
- el generador de paridad se encarga de aadir un bit de paridad tal
que tengamos un nmero par de 1's.
- el comprobador de paridad se encarga de comprobar que el
nmero de 1's recibidos es par.
Paridad impar:
- el generador de paridad se encarga de aadir un bit de paridad tal
que tengamos un nmero impar de 1's.
- el comprobador de paridad se encarga de comprobar que el
nmero de 1's recibidos es impar.
Ejemplo de circuito integrado de paridad de 9 bits (8 de informacin + 1
de paridad) es el circuito 74180.

Ejemplo:
Vamos a transmitir un mensaje de 3 bits, con un bit de paridad. Podemos
utilizar paridad par o paridad impar. En este ejemplo utilizamos paridad par, es
decir, debemos generar el bit de paridad de tal forma que la cantidad total de
unos (incluyendo el bit de paridad) sea par.
Generador de paridad (par)
Tabla de verdad:
Mensaje de 3
bits
x
y
z
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

Funcin lgica:
Bit de
paridad
P
0
1
1
0
1
0
0
1

P=x

Circuito:
x
y
z

Comprobador de paridad (par)


Funcin lgica:
C=x

Circuito:
y

x
y

z
P
NOTA: Es obvio que los circuitos de generacin y comprobacin de
paridad siempre tienen una funcin de salida cuyos trminos son mitad "1" y
mitad "0", por lo que pueden implementarse con puertas XOR.

Potrebbero piacerti anche