Tema 4: Circuitos combinacionales

Anuncio
Estructura de computadores
Tema 4:
Tema 4: Circuitos combinacionales
Circuitos combinacionales
4.0 Introducción
Los circuitos lógicos digitales pueden ser de dos tipos:
• combinacionales
• secuenciales.
Circuitos combinacionales
Aquellos circuitos digitales con varias entradas y varias salidas, en los
cuales la relación entre cada salida y las entradas puede ser expresada
mediante una función lógica (expresiones algebraicas, tablas de verdad,
circuito con puertas lógicas, etc.), se denominan circuitos
combinacionales.
De la definición 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 implementación mediante circuitos
electrónicos, hay que matizar algunos detalles. Hemos visto que las puertas
lógicas obtenían a su salida una señal, que dependía sólo de las entradas, pero
esta salida no se estabilizaba hasta transcurrido un pequeño intervalo de
tiempo desde la aplicación de las señales de entrada (del orden de
nanosegundos).
Por otro lado, si el circuito combinacional tiene varias entradas (n),
también 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 también puede describirse mediante "m" funciones lógicas, una
para cada variable de salida; cada una de las cuales se presenta como función
de las "n" variables de entrada.
E0
E1
En
Sistema
Combinacional
S0
S1
Sm
1
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 señales de entrada aplicadas, una
vez transcurrido el tiempo necesario para la estabilización de las salidas, desde
la aplicación de las señales de entrada.
Multifunciones: Son aquellas funciones que tienen varias salidas, por lo
que habrá una expresión lógica para cada salida.
E0
E1
En
S0
S1
Sn
A continuación, vamos a estudiar algunos circuitos combinacionales que
realizan funciones específicas, por dos razones:
1. Circuitos muy complejos pueden descomponerse en circuitos o
bloques más elementales, como los que vamos a estudiar, que se
interconectan entre si para formar el circuito ("Divide y vencerás" o
diseño jerárquico).
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 básico de la unidad aritmética de
cualquier ordenador, pues cualquier operación aritmética básica puede
realizarse a partir de sumas y restas repetidas.
Para sumar dos números 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 dígitos 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 símbolo como bloque es:
a
b
S
C
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
a
b
1/2
Σ
Suma (S)
Acarreo (C)
2
Estructura de computadores
Tema 4: Circuitos combinacionales
Implementando por "1":
S = a' · b + a · b' = a ⊕ b
C=a·b
La suma S responde a una función OR-exclusiva y el acarreo C a una
función 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)’ + (a·b))' =
= (a+b) · (a·b)'
C=a·b
De esta forma obtenemos un circuito mucho más simple.
3
Estructura de computadores
Tema 4: Circuitos combinacionales
4.1.3 Etapa de sumador (sumador completo)
Es un circuito combinacional capaz de sumar dos dígitos (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 símbolo como bloque es:
a
b
Cin
S
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
01
0
1
4
5
11
3
10
Cin\ab
2
1
0
1
7
6
1
1
a'·b·C in'
a·b·C in
1
a·b'·C in'
Cout
01
11
00
0
1
3
4
5
7
10
2
1
1
b·C in
6
1
1
a·b
a·C in
La función S no se puede simplificar, ya que tenemos 4 1's o 4 0's
aislados, pero C out si, obteniéndose (implementando por 1):
S = a'·b'· Cin + a'·b· Cin' + a·b· Cin + a·b'· Cin’ =
= (a’·b’+a·b)·C in + (a’·b+a·b’)·C in’ = (a ⊕ b)’·C in + (a ⊕ b)·C in’ =
= a ⊕ b ⊕ Cin = (a ⊕ b) ⊕ Cin
Cout = a·b + a· C in + b· C in = a·b + C in ·(a·b' + a'·b) = a·b + C in·(a ⊕ b)
Hemos manipulado las funciones de salida S y Cout para que incluyan la
OR-Exclusiva (recordar la función S del semisumador).
Esto significa que para implementar la función sumador completo, se
pueden utilizar dos puertas OR-Exclusiva.
Por razones económicas, los fabricantes emplean para la
implementación circuitos de nivel superior (más lentos), pero que permiten un
gran ahorro en el número de puertas empleadas.
4
Estructura de computadores
Tema 4: Circuitos combinacionales
Una forma simple de implementar la etapa de sumador es a partir de dos
semisumadores. Como hay que sumar los dos bits (dígitos) del mismo peso
más el acarreo anterior, se utiliza un semisumador para sumar los dos dígitos 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 (función 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 números de n bits, se pueden emplear diferentes circuitos,
pero todos llevan como unidad básica la etapa de sumador. La forma más
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 subíndices cada uno de los
bits de los sumandos, indicando con el subíndice 1 el bit menos significativo
(LSB).
A = a n ... a 1 (n bits)
Su esquema es el siguiente:
B = b n ... b 1 (n bits)
MSB
Cn
an
bn
Σn
Sn
a3
C3
b3
Σ3
S3
a2
C2
b2
Σ2
S2
a1
C1
b1
Σ1
LSB
0 v.
S1
5
Estructura de computadores
Tema 4: Circuitos combinacionales
Téngase en cuenta que para la posición 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 posición del
bit menos significativo.
Su diagrama funcional o de bloques es:
A
B
n
Cn
A = a n ... a 1 (n bits)
B = b n ... b 1 (n bits)
S = S n ... S 1 (n bits)
n
Σ n bits
0 v.
n
S
Retardo de propagación
Los bits de entrada se aplican simultáneamente 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 adición. El retardo de propagación del acarreo para cada sumador
completo es el tiempo transcurrido desde la aplicación 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 diseño alternativo que permite eliminar este retardo es el sumador
con acarreo anticipado, a costa de incrementar el número de puertas.
Expansión de sumadores
Podemos conectar en cascada varios sumadores de un número fijo de
bits (n) para conseguir otro sumador del más de bits. A esto se le llama
expansión 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 conexión 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 construcción de un sistema digital y, por
tanto, se define como bloque funcional.
6
Estructura de computadores
Tema 4: Circuitos combinacionales
A8..5
4
B8..5
4
Σ 4 bits
Cout
A4..1
4
Cout
4
B4..1
4
Σ 4 bits
0 v.
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 números binarios, pueden restarse directamente
mediante un circuito específico, o bien, sumar al minuendo el complemento a 2
del sustraendo. Este segundo método es más barato, pero algo más lento. Por
tanto, dependiendo del precio y calidad del ordenador, se empleará un método
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 símbolo como bloque es:
a
b
D
C
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
a
b
1/2
D
Diferencia (D)
Acarreo (C)
Implementando por "1":
D = a' · b + a · b' = a ⊕ b
C = a' · b
El circuito puede implementarse de alguna de las siguientes formas:
7
Estructura de computadores
Tema 4: Circuitos combinacionales
4.1.7 Etapas de substractor (substractor completo)
Es análogo de la etapa de sumador. Resta dos dígitos, 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 símbolo como bloque es:
a
b
Cin
D
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
a
Diferencia (D)
b
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
a'·b'·C in
00
01
0
1
4
5
11
3
Cin\ab
10
2
1
6
1
1
a'·b·C in'
a·b·C in
00
0
1
7
Cout
01
11
0
1
4
5
10
3
2
7
6
1
1
1
a·b'·C in'
1
a'·C in
1
a'·b
b·C in
Las funciones lógicas de D y C out son:
D = a ⊕ b ⊕ Cin = (a ⊕ b) ⊕ Cin
(Igual que el sumador)
Cout = a'·b + a'·C in + b·C in = (a'·b+a'·C in+b·C in)'' = ((a'·b)'·(a'·C in)'·(b· C in)')'
El circuito restador será:
d
Cout
8
Estructura de computadores
Tema 4: Circuitos combinacionales
La etapa de substractor puede obtenerse fácilmente 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 según estos dos
modos de operación son:
Modo 1: substractor formado por dos semisubstractores.
a
1/2
D
b
D
1/2
D
Cout
Cin
Modo 2: substractor formado por un semisumador y un semisubstractor.
a
D
1/2
D
b
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 representación en complemento a 1 o 2 para
realizar la resta de dos números 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 fácilmente con circuitos
9
Estructura de computadores
Tema 4: Circuitos combinacionales
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
Cn
b2
a3
C3
Σn
a2
C2
Σ3
Sn
b1
a1
C1
Σ2
S3
C2 = C1 + 1
Σ1
S2
“1”
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 común. Esto se logra incluyendo una puerta XOR con
cada sumador completo. Debemos de poner una entrada que nos indique la
operación 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
Cn
a3
C3
Σn
Sn
a2
Σ3
S3
C2
a1
Σ2
C1
S2
Σ1
S1
Suma: “0”
Resta: “1”
(C2 = C1 + 1)
El funcionamiento de este circuito se puede ver fácilmente con la
siguiente tabla de verdad:
S’/R
0
0
1
1
bi
0
1
0
1
XOR
0
1
1
0
Descripción
Suma: no cambia b i
Resta: complementa b i
Además, suma "1" para obtener el C 2
10
Estructura de computadores
Tema 4: Circuitos combinacionales
4.2 Codificadores y decodificadores
4.2.1 Codificadores
Son circuitos combinacionales que permiten pasar una información en
forma decodificada (dígito 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 líneas de salida generan el código
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 dígito octal, y tres salidas que
generan el número binario correspondiente. Se supone que sólo una entrada
tiene un valor de 1 en cualquier momento.
E7
0
0
0
0
0
0
0
1
Si
salidas:
•
•
•
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
S0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
implementamos por “1”, obtenemos las funciones lógicas de las 3
S0 = E 1 + E 3 + E 5 + E 7
S1 = E 2 + E 3 + E 6 + E 7
S2 = E 4 + E 5 + E 6 + E 7
Vemos que el decodificador puede implementarse con 3 puertas OR de
4 entradas.
11
Estructura de computadores
Tema 4: Circuitos combinacionales
Este decodificador tiene la limitación de que sólo puede estar activa una
entrada en un momento dado: si se activan simultáneamente dos entradas, la
salida produce una combinación incorrecta. Para resolver esta ambigüedad,
algunos circuitos codificadores deben establecer una prioridad de entrada
para asegurar que sólo se codifique una entrada. Por ejemplo, en este caso
podríamos haber establecido una prioridad más alta para las entradas con
subíndices mayores.
Otra ambigüedad de este codificador es que se genera una salida de 0’s
cuando todas las entradas son 0, pero esta salida es igual que cuando D0=1.
Esta discrepancia puede resolverse dando una salida más para indicar que al
menos una de las entradas es igual a 1.
4.2.1.2 Ejemplo: Teclados
Ejemplos típicos de codificación son los utilizados en los teclados de los
computadores y máquinas de calcular. En un teclado alfanumérico, por
ejemplo, tenemos 27 teclas para letras y 10 para cifras. Cada tecla va
conectada a una línea eléctrica, que estará a nivel lógico “1” ó “0”, según la
tecla correspondiente esté pulsada o no.
Para que la información enviada por el teclado al computador se
transmita, es inviable disponer de tantas líneas como teclas. Por ello se emplea
un codificador que permite pasar del número de líneas igual al de teclas, a sólo
7 líneas, si se emplea, por ejemplo, código ASCII.
Otro caso típico es el del teclado numérico, en el cual, mediante un
codificador, se pasa de 10 líneas a 4 líneas. Vamos a ver como ejemplo este
caso, suponiendo que el código de salida es BCD (Decimal Codificado en
Binario).
Como hay 10 símbolos diferentes serán 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 E4
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 S1
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
Estructura de computadores
Tema 4: Circuitos combinacionales
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 elaboración del código de salida. En
el caso del teclado sería equivalente pulsar "0" que no pulsar nada. En estos
casos se añade 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 simultáneas o más, las salidas obtenidas serán todas
aquellas que correspondan a cada entrada por separado. Por tanto, en estos
codificadores sólo 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 más de una entrada, la combinación de salidas
obtenida corresponde a la entrada de mayor valor decimal de entre las
activadas. Por ejemplo, si pulsamos las teclas 1 y 3 simultáneamente, se queda
con el 3.
13
Estructura de computadores
Tema 4: Circuitos combinacionales
4.2.2 Decodificadores
Realizan la función inversa de los codificadores. Partiendo de una
información codificada de n bits, obtiene la información de que se trata. El
número m de informaciones que se pueden obtener (salidas) debe ser tal que
m ≤ 2n. Si la información codificada de n bits tiene combinaciones no usadas
(indiferencias), el decodificador podría 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 E1
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 S4
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 = E 3' · E 2' · E 1' · E 0'
S1 = E 3' · E 2' · E 1' · E 0
S2 = E 3' · E 2' · E 1 · E 0'
S3 = E 3' · E 2' · E 1 · E 0
S4 = E 3' · E 2 · E 1' · E 0'
S5 = E 3' · E 2 · E 1’ · E 0
S6 = E 3' · E 2 · E 1 · E 0'
S7 = E 3' · E 2 · E 1 · E 0
S8 = E 3 · E 2' · E 1' · E 0'
S9 = E 3 · 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 combinación válida en la entrada. En cambio, si el código no es
válido (por ejemplo, 1 1 1 1), no se activa ninguna salida. Por tanto, con este
diseño se eliminan las combinaciones de entrada no válidas. Es posible diseñar
un decodificador que no elimine las combinaciones no válidas, con la ventaja
de que resulta un circuito más simple y económico.
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”:
E3E2 \ E1E0
00
00
01
11
10
0
0
0
0
01
0
0
0
0
11
x
x
x
x
10
0
1
x
x
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
Estructura de computadores
Tema 4
Ejemplo 2: Decodificador de BCD a segmentación en siete
Los dispositivos de visualización de las calculadoras electrónicas y
relojes digitales utilizan diodos emisores de luz (LEDs). Cada dígito del
dispositivo se forma con siete segmentos, cada uno consistente en un LED que
se ilumina mediante señales digitales.
El decodificador que vamos a ver es un circuito combinacional que
acepta un dígito decimal en BCD y genera las salidas adecuadas para la
selección de los segmentos que representan el dígito decimal.
Disposición de los segmentos en un display de 7 segmentos:
A
B
C
D
Circuito
combinacional:
decodificador BCD
a 7 segmentos
a..g
a
f
g
e
b
c
d
Segmentos activos para todos los dígitos decimales:
Como vemos, cada segmento se utiliza para varios dígitos decimales,
pero ninguno de ellos se emplea para representar todos los dígitos decimales.
Por tanto, debemos determinar los segmentos que hay que activar para cada
uno de los dígitos decimales.
Dígito 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 lógica de decodificación de segmentos requiere cuatro entradas en
código decimal binario (BCD) y siete salidas, una para cada segmento del
display. La tabla de verdad será de salida múltiple, 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
Estructura de computadores
Díg.
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
Tema 4
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
c
1
1
0
1
1
1
1
1
1
1
x
x
x
x
x
x
Salidas
d
1
0
1
1
0
1
1
0
1
1
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 más significativo (MSB) porque así lo hacen la mayoría
de fabricantes de IC.
Como el código BCD tan sólo tiene los valores 0..9, las últimas 6
combinaciones (10-15) nunca aparecerán en las entradas, por lo que tenemos
la opción 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 Expresión lógica
a
a = D'·C'·B'·A' + D'·C'·B·A' + D'·C'·B·A + D'·C·B'·A + D'·C·B·A' +
D'·C·B·A + D·C'·B'·A' + D·C'·B'·A
b
b = D'·C'·B'·A' + D'·C'·B'·A + D'·C'·B·A' + D'·C'·B·A + D·C'·B·A +
D'·C·B·A + D·C'·B'·A' + D·C'·B'·A
c
c = D'·C'·B'·A' + D'·C'·B'·A + D'·C'·B·A + D·C'·B·A + D'·C·B'·A +
D'·C·B·A' + D'·C·B·A + D·C'·B'·A' + D·C'·B'·A
d
d = D'·C'·B'·A' + D'·C'·B·A' + D'·C'·B·A + D'·C·B'·A + D'·C·B·A' +
D·C'·B'·A' + D·C'·B'·A
e
e = D'·C'·B'·A'+ D'·C'·B·A' + D'·C·B·A' + D·C'·B'·A'
f
f = D'·C'·B'·A'+ D·C'·B·A + D'·C·B'·A + D'·C·B·A' + D·C'·B'·A' +
D·C'·B'·A
g
g = D'·C'·B·A' + D'·C'·B·A + D·C'·B·A + D'·C·B'·A + D'·C·B·A' +
D·C'·B'·A' + D·C'·B'·A
17
Estructura de computadores
Tema 4
Producto de sumas (implementando por "0")
Segmento
a
b
c
d
e
f
g
Expresión lógica
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
términos comunes cuyas puertas podrán ser compartidas.
Vamos a simplificar estas expresiones mediante tablas o mapas de
Karnaugh, utilizando condiciones indiferentes e implementando por "1", tanto
para la construcción de la tabla de Karnaugh como para su simplificación.
Segmento "a":
DC \ BA
00
00
01
11
10
1
1
1
1
1
B
x
x
x
x
C'·A'
1
1
x
x
1
01
11
10
D
C·A
a = D + B + C·A + C'·A'
Simplificando del mismo modo el resto de segmentos obtendremos:
Segmento
a
b
c
d
e
f
g
Expresión lógica
a = D + B + C·A + C'·A'
b=
c=
d=
e=
f=
g=
18
Estructura de computadores
Tema 4
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 diseño final
producirá algunas presentaciones arbitrarias sin sentido en el display con estas
combinaciones. Otra opción mejor sería 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 sería:
Díg.
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
01
11
10
1
1
1
1
1
1
01
11
0
0
0
0
10
1
1
0
0
C'·B'·A'
D·C'·B'
D'·B
D'·C·A
a = D'·B + D'·C·A + C'·B'·A' + D·C'·B'
19
Estructura de computadores
Tema 4
Simplificando por Karnaugh todos los segmentos obtendremos:
Segmento
a
b
c
d
e
f
g
Expresión lógica
a = D'·B + D'·C·A + C'·B'·A' + D·C'·B'
b = D'·C' + D'·B'·A' + D'·B·A + D·C'·B'
c = D'·C + D'·A + C'·B'·A' + D·C'·B'
d = D'·B·A' + D'·C'·B + C'·B'·A' + D·C'·B' + D'·C·B'·A
e = D'·B·A + C'·B'·A'
f = D'·C·B' + D'·B'·A' + D'·C·A' + D·C'·B'
g = D'·B·A' + D'·C'·B + D'·C·B' + D·C'·B'
El decodificador BCD a 7 segmentos se conoce como decodificador por la
mayoría de fabricantes de IC, porque decodifica el código binario para una
dígito decimal; sin embargo, en realidad es un convertidor que traduce un
código decimal de 4 bits a código de 7 bits. La palabra "decodificador" hace
referencia a otro tipo de circuito.
Ejemplo: el decodificador 7447 es un decodificador de este tipo.
20
Estructura de computadores
Tema 4
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 transmisión de datos desde dicha entrada a la salida, que es única.
Los demultiplexores realizan la función inversa.
Esquemáticamente:
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 también recibe el nombre de selector de
datos o conmutador electrónico.
La selección de la entrada se controla mediante unas entradas de
selección o control. Cuando sólo tenemos una entrada de control (2 entradas),
también se le llama entrada de habilitación (enable).
La entrada seleccionada viene biunívocamente determinada por la
combinación de "0" y "1" en las entradas de control. Por tanto, si tenemos "m"
entradas de datos, harán falta "n" entradas de control, siendo m ≤ 2n .
El diagrama de bloques es:
E0
E1
E2
MUX
4
entradas
S
"m" entradas de información
"n" entradas de control (m=2n)
1 única salida (S)
E3
C0
C1
Como la salida de datos será igual a la entrada de datos seleccionada,
podemos obtener una expresión lógica para la salida en función de las
entradas de datos y las entradas de selección.
21
Estructura de computadores
Tema 4
Ejemplo: un multiplexor de 4 entradas de datos (4 a 1)
No nos importan
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
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 + C 1 · C 0’ · E 2 + C 1 · C 0 · E 3
Esta función se puede simplificar más. La implementación con puertas
lógicas es la siguiente:
E0
E1
S
E2
E3
C0
C1
Para diferente número 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 selección (8 MUX).
el 74159 tiene 16 entradas de datos y 4 de selección (16 MUX).
22
Estructura de computadores
Tema 4
NOTA: Podemos agrupar varios multiplexores para formar otros de
mayor número de entradas. Por ejemplo, con 5 multiplexores de 4 entradas
podemos formar 1 multiplexor de 16 entradas. Además será necesario alguna
lógica en las líneas de control o selección, para habilitar sólo los multiplexores
que nos interesen.
E0
MUX
1
MUX
2
MUX
S
5
MUX
3
MUX
E15
4
C0 C1
C2 C3
Las aplicaciones de los multiplexores son muy numerosas:
•
Conversor paralelo-serie: permiten seleccionar una de entre varias
líneas de datos o enviar las informaciones de varias líneas por una sola,
dedicando un pequeño intervalo de tiempo a cada una de ellas.
•
Generador de funciones lógicas: es la posibilidad de implementar
funciones lógicas con solamente un multiplexor, directamente desde la
tabla de verdad, en forma de suma de productos (implementando por
"1"). En general, cualquier función de "n" variables puede implementarse
mediante un multiplexor de 2n entradas. Con esto conseguimos sustituir
puertas lógicas por multiplexores, para reducir significativamente el
número de circuitos integrados y permite que los cambios en el diseño
sean mucho más sencillos.
23
Estructura de computadores
Tema 4
Ejemplo
Vamos a implementar una función lógica a partir de un multiplexor dado,
y sus conexiones.
MUX 4
E0 (00)
C
C’
E1 (01)
F
E2 (10)
0
1
E3 (11)
C1 C0
(MSB) a
b (LSB)
La función lógica 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
términos de la función (productos).
La función lógica final será una suma de productos de los términos
producto obtenidos para cada combinación de las entradas de control.
La tabla de verdad sería:
Señales 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
Término asociado
a’·b’·c
a’·b ·c’
a ·b’·0
a ·b ·1
Por tanto, la función lógica será la suma de dichos términos producto:
F = (a’·b’·c) + (a’·b ·c’) + (a ·b’·0) + (a ·b ·1)
Simplificando nos queda:
F = (a’·b’·c) + (a’·b ·c’) + (a·b) = a’ · (b’·c + b·c’) + (a·b) =
= a’ · (b ⊕ c) + (a·b)
24
Estructura de computadores
Tema 4
Ejemplo
A partir de la función lógica, vamos a diseñar el circuito utilizando un
multiplexor y la lógica necesaria. Primero utilizaremos un multiplexor de 8
entradas de datos y luego uno de 4 entradas.
El circuito lógico de una función lógica utilizando un multiplexor se
obtiene de la siguiente forma:
•
•
•
•
•
Debemos expresar la función en forma de términos canónicos (suma de
productos).
Expresamos cada uno de los términos canónicos como su valor binario.
Dependiendo del número 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 lógica
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, sólo
tendremos 0’s o 1’s en las entradas de datos. Los términos canónicos
(productos) que formen parte de nuestra función lógica, pondremos un
“1” en la entrada correspondiente a su código binario. Para el resto
pondremos “0”.
Sea la función lógica:
F(a,b,c) = a·b + a’·b·c + a·b’·c’ + a’·b’·c’
1. La expresamos en términos canónicos:
F(a,b,c) = a·b·(c+c’) + a’·b·c + a·b’·c’ + a’·b’·c’ =
= a·b·c + a·b·c’ + a’·b·c + a·b’·c’ + a’·b’·c’
2. Obtenemos el valor binario de todos los términos:
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)
F
C2 C1 C0
(MSB) a
b c (LSB)
25
Estructura de computadores
Tema 4
Multiplexor de 4 entradas
Partimos de la misma función lógica, ya expresada en términos
canónicos:
F(a,b,c) = a·b·c + a·b·c’ + a’·b·c + a·b’·c’ + a’·b’·c’
Señales 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
Términos asociados
a’·b’ ⇒ a’·b’·c’
a’·b ⇒ a’·b·c
a ·b’ ⇒ a·b’·c’
a ·b ⇒ a·b·c + a·b·c’ =
= a·b·(c+c’) = a·b·1
MUX 4
c’
c
E0
E1
F
c’
1
E2
E3
C1 C0
(MSB) a
b (LSB)
NOTA: Desde la tabla de verdad también se puede obtener la lógica adicional.
Para cada posible combinación de las entradas de control, se nos activa
una sóla entrada, que será la salida de la función. Pues debemos
averiguar el valor o valores que toma la función de salida para cada una
de esas combinaciones mirando en la tabla de verdad. Este valor puede
ser:
q
q
q
q
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
Estructura de computadores
Tema 4
4.3.2 Demultiplexores
Un demultiplexor es un circuito combinacional que realiza la función
inversa de un multiplexor, es decir, expande un circuito de una sola señal de
entrada a varias señales de salida: 2n. La información se redirige a una sola
salida. La selección de la salida específica es controlada por la combinación de
bits de n líneas de selección 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 idéntico a un decodificador de 2 a
4 líneas con entrada de habilitación:
• Para el
decodificador:
las
entradas de datos son C0 y C1, y la
habilitación 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 selección.
C0
C1
Aunque ambos circuitos tienen aplicaciones diferentes, sus diagramas
lógicos son idénticos. Por esto, a los decodificadores con entrada de
habilitación se les llama decodificador/demultiplexor.
Las aplicaciones de los demultiplexores son:
•
Conversor serie-paralelo
Ejemplo de demultiplexor: el 74154, de 16 salidas.
27
Estructura de computadores
Tema 4
4.4 Circuitos comparadores
La función básica de un comparador consiste en comparar las
magnitudes de dos cantidades binarias (n bits) para determinar su relación:
igualdad y desigualdad (menor, mayor):
A<B
A=B
A>B
El símbolo como bloque es:
S1 (A<B)
A
COMP
n
B
S2 (A=B)
A = a n ... a 1 (n bits)
B = b n ... b 1 (n bits)
S3 (A>B)
n
Sólo una de las tres salidas se pondrá a "1", indicando la magnitud de A
respecto de B.
Comparador de números binarios de 1 bit
Vamos a diseñar un comparador de 2 números A y B de 1 bit cada uno
(a y b). El comparador tendrá dos entradas (a y b) y 3 salidas (S 1, S2, 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' + a·b = (a ⊕ b)' = ( a'·b + a·b' )'
S3 = a·b'
El circuito básico será:
a
S1 (a<b)
S2 (a=b)
b
S3 (a>b)
28
Estructura de computadores
Tema 4
Comparador de números binarios de "n" bits
Para comparar dos números 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 números 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)
29
Estructura de computadores
Tema 4
Para realizar la comparación 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 básico (números 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 números 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
desplazándonos 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 relación entre
ambos queda ya establecida, y finalizamos el proceso; cualquier otra
desigualdad entre bits de posiciones de orden menor debe ignorarse.
Es decir, la relación de más alto orden es la que tiene prioridad.
Ejemplos de comparadores de magnitud serían: 74HC85 (4 bits MSI)
30
Estructura de computadores
Tema 4
Igual que en el caso de los circuitos sumadores, podemos concatenar
varios circuitos comparadores para comparar números binarios de más bits.
En el siguiente esquema vemos un comparador de 8 bits formado por
dos comparadores de 4 bits.
A1..4
COMP
COMP
A5..8
n
n
"0"
A>B
A>B
A>B
A>B
S1 (A<B)
"1"
A=B
A=B
A=B
A=B
S2 (A=B)
A<B
A<B
A<B
A<B
"0"
B1..4
S3 (A>B)
B5..8
n
n
Para el caso del comparador 74HC85, "1" = +5v. y "0" = 0v.
31
Estructura de computadores
Tema 4
4.5 Generadores/comprobadores de paridad
Durante la transmisión de información binaria se pueden producir errores.
Para detectar estos errores se utiliza el método de paridad, el cual utiliza un bit
de paridad.
La idea del método de paridad es la siguiente. Cualquier grupo de bits
contiene un número par o impar de 1's. Lo que hacemos es añadir 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 añade 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 añadir un bit de paridad tal
que tengamos un número par de 1's.
- el comprobador de paridad se encarga de comprobar que el
número de 1's recibidos es par.
•
Paridad impar:
- el generador de paridad se encarga de añadir un bit de paridad tal
que tengamos un número impar de 1's.
- el comprobador de paridad se encarga de comprobar que el
número de 1's recibidos es impar.
Ejemplo de circuito integrado de paridad de 9 bits (8 de información + 1
de paridad) es el circuito 74180.
32
Estructura de computadores
Tema 4
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
Función lógica:
Bit de
paridad
P
0
1
1
0
1
0
0
1
P=x ⊕y⊕z
Circuito:
x
y
z
P
Comprobador de paridad (par)
Función lógica:
C=x ⊕y ⊕z⊕P
Circuito:
x
y
C
z
P
NOTA: Es obvio que los circuitos de generación y comprobación de
paridad siempre tienen una función de salida cuyos términos son mitad "1" y
mitad "0", por lo que pueden implementarse con puertas XOR.
33
Descargar