Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 6b
Tema 6b
Tema 4:
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 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
Sistema Combinacional
S0 S1
En
Sm
Estructura de computadores
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.
0 0 0 1
1/2
Suma (S)
Acarreo (C)
Estructura de computadores
Implementando por "1": S = a' b + a b' = a b 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
Estructura de computadores
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
0 4
00
1 5
01
3
11
2 7 6
10 1
Cin\ab 0 1
0 4
00
1 5
Cout 01 11
3 2
10
6
1 1 1
1
7
a'b'C in
a'bC in'
abC in
ab'C in'
bC in
ab
aC in
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 b)C in = = a b Cin = (a b) Cin 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.
Estructura de computadores
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
Cn
n
Sn
C3
3
S3
C2
2
S2
C1
1
S1
0 v.
Estructura de computadores
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 n B A = a n ... a 1 (n bits) B = b n ... b 1 (n bits) S = S n ... S 1 (n bits) 0 v.
n bits
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.
Estructura de computadores
A8..5 4 Cout 4
B8..5 4 Cout
A4..1 4
B4..1
4 bits
4 S8..5
4 bits
4 S4..1
0 v.
Como ejemplo de sumadores de 4 bits, tenemos dos modelos de IC de media escala (MSI): 74LS83A y 74LS283.
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:
Estructura de computadores
D
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
0 4
00
1 5
01
3
11
2 7 6
10 1
Cin\ab 0 1
0 4
00
1 5
Cout 01 11
3 2 6
10
1 1 1
1
7
a'b'C in
a'bC in'
abC in
ab'C in'
a'C in
a'b
bC in
Las funciones lgicas de D y C out son: D = a b 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
Estructura de computadores
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 b Cin D Cout
1/2 D
1/2 D
Modo 2 : substractor formado por un semisumador y un semisubstractor. a b Cin 1/2 1/2 D D Cout
Cn
Dn
Dn
C3
D3
D3
C2
D2
D2
C1
D1
D1
0 v.
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
Estructura de computadores
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 an a3 b3 a2 b2 a1 b1
C2 = C1 + 1
Cn
n
Sn
C3
3
S3
C2
2
S2
C1
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 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
a2
a1
Cn
n
Sn
C3
3
S3
C2
2
S2
C1
1
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
Estructura de computadores
Codificador
m entradas m 2n n salidas
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. Entradas E4 E3 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 Salidas S1 S0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1
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
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
11
Estructura de computadores
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: Entradas E5 E4 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 Salidas S2 S1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0
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
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
S0 0 1 0 1 0 1 0 1 0 1
12
Estructura de computadores
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
Estructura de computadores
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 m 2n. Si la informacin codificada de n bits tiene combinaciones no usadas (indiferencias), el decodificador podra tener menos de 2 n salidas. E0 E1
Decodificador
n entradas m 2n m salidas
S0
S1
S2
S3
E3 0 0 0 0 0 0 0 0 1 1 1 1 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
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 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: E3E2 \ E1E0 00 01 11 10 00 0 0 x 0 01 0 0 x 1 11 0 0 x x 10 0 0 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 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
a..g f e
a g b c d
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
Estructura de computadores
Tema 4
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
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 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
Estructura de computadores
Tema 4
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 01 11 10 x 1 00 1 1 x 1 01 11 1 1 x x 10 1 1 x x B C'A'
D a = D + B + CA + C'A'
CA
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
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 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 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 Salidas d 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0
D 0 0 0 0 0 0 0 0 1 1 1 1 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
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
C'B'A'
DC'B'
D'CA
19
Estructura de computadores
Tema 4
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
Estructura de computadores
Tema 4
Multiplexor
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 E3 MUX 4 entradas S "m" entradas de informacin "n" entradas de control (m=2n) 1 nica salida (S)
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
Estructura de computadores
Tema 4
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 Entradas de datos E2 E1 x x x x x 0 x 1 0 x 1 x x x x x No nos importan Salida S 0 1 0 1 0 1 0 1
E3 x x x x x x 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 funcin se puede simplificar ms. La implementacin con puertas lgicas es la siguiente: E0 E1 E2 E3 S
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
Estructura de computadores
Tema 4
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
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
Estructura de computadores
Tema 4
Ejemplo Vamos a implementar una funcin lgica a partir de un multiplexor dado, y sus conexiones. MUX 4 C C 0 1
E0 (00) E1 (01) 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)
24
Estructura de computadores
Tema 4
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.
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 0 1 1 0 1 1 E0 (000) E1 (001) E2 (010) E3 (011) E4 (100) E5 (101) E6 (110) E7 (111) C2 C1 C0
(MSB) a
b c (LSB)
25
Estructura de computadores
Tema 4
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 abc ab abc a b abc a b abc + abc = = ab(c+c) = ab1
MUX 4 c c c 1
E0 E1
F
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:
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 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 S1 S2 S3 1 entrada nica (E) "n"entradas de control (m=2n) "m" salidas
C0 El circuito es: E
C1
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
27
Estructura de computadores
Tema 4
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, 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' + ab = (a b)' = ( a'b + ab' )' S3 = ab'
28
Estructura de computadores
Tema 4
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)
29
Estructura de computadores
Tema 4
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
a1=b1
a2=b2
A=B
a3=b3
a4=b4
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.
30
Estructura de computadores
Tema 4
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.
COMP
A5..8 n
31
Estructura de computadores
Tema 4
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 Bit de paridad P 0 1 1 0 1 0 0 1 Funcin lgica: P=x yz Circuito: x y z P
Comprobador de paridad (par) Funcin lgica: C=x y zP Circuito: 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.
33