33
Estructura de computadores Tema 4: Circuitos combinacionales 1 Tema 4: 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"). 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 2 n 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. F x 1 x 2 F(t) = (x 1 (t) , x 2 (t), ... ) E 0 E 1 E n S0 S1 Sm Sistema Combinacional

Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

  • Upload
    vucong

  • View
    217

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

1

Tema 4: Circuitos combinacionales

4.0 Introducción

Los circuitos lógicos digitales pueden ser de dos tipos:• combinacionales• secuenciales.

Circuitos combinacionalesAquellos circuitos digitales con varias entradas y varias salidas, en loscuales la relación entre cada salida y las entradas puede ser expresadamediante una función lógica (expresiones algebraicas, tablas de verdad,circuito con puertas lógicas, etc.), se denominan circuitoscombinacionales.

De la definición se deduce que cada salida en un instante de tiempodeterminado, depende exclusivamente de las entradas al circuito en el mismoinstante de tiempo, pero no depende de las entradas que hubo en instantes detiempo anteriores (no tiene "memoria").

Ahora bien, en cuanto a la implementación mediante circuitoselectrónicos, hay que matizar algunos detalles. Hemos visto que las puertaslógicas obtenían a su salida una señal, que dependía sólo de las entradas, peroesta salida no se estabilizaba hasta transcurrido un pequeño intervalo detiempo desde la aplicación de las señales de entrada (del orden denanosegundos).

Por otro lado, si el circuito combinacional tiene varias entradas (n),también puede tener varias salidas (m). Para "n" variables de entrada tenemos2n combinaciones binarias posibles. Por tanto, podemos expresar un circuitocombinacional mediante una tabla de verdad que lista los valores de todas lassalidas para cada una de las combinaciones de entrada. Un circuitocombinacional también puede describirse mediante "m" funciones lógicas, unapara cada variable de salida; cada una de las cuales se presenta como funciónde las "n" variables de entrada.

Fx1

x2

F(t) = (x1(t) , x2(t), ... )

E0

E1

En

S0

S1

Sm

Sistema

Combinacional

Page 2: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

2

Diremos pues, que un circuito combinacional real es aquel en el cuallas salidas dependen exclusivamente de las señales de entrada aplicadas, unavez transcurrido el tiempo necesario para la estabilización de las salidas, desdela aplicación de las señales de entrada.

Multifunciones: Son aquellas funciones que tienen varias salidas, por loque habrá una expresión lógica para cada salida.

E0 E1 En S0 S1 Sn

A continuación, vamos a estudiar algunos circuitos combinacionales querealizan funciones específicas, por dos razones:

1. Circuitos muy complejos pueden descomponerse en circuitos obloques más elementales, como los que vamos a estudiar, que seinterconectan entre si para formar el circuito ("Divide y vencerás" odiseño jerárquico).

2. Estos circuitos se encuentran disponibles comercialmente, integradosen 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 decualquier ordenador, pues cualquier operación aritmética básica puederealizarse a partir de sumas y restas repetidas.

Para sumar dos números de n bits, hay que sumar dos a dos los bits delmismo 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 elbit de acarreo de la etapa anterior.

Su tabla de verdad, y símbolo como bloque es:

a b S C

0 0 0 00 1 1 01 0 1 01 1 0 1

a

b

Suma (S)

Acarreo (C)

1/2Σ

Page 3: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

3

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 unafunción AND.

Si no deseamos utilizar la puerta OR-Exclusiva por su coste superior, elsemisumador 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.

Page 4: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

4

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. Obtienela 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 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 0 a y b = Variables de entrada1 0 1 0 1 Cin = Acarreo entrada (etapa anterior)1 1 0 0 1 S = Suma1 1 1 1 1 Cout = Acarreo salida (etapa siguiente)

Simplificamos mediante tablas de Karnaugh las funciones de salida S yCout. Para ello, construimos las tablas correspondientes implementando por "1"desde la tabla de verdad.

S CoutCin\ab 00 01 11 10 Cin\ab 00 01 11 10

00 1

13 2

1 00 1 3

12

14

15 7

16 1

4 51

71

61

La función S no se puede simplificar, ya que tenemos 4 1's o 4 0'saislados, pero Cout 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 laOR-Exclusiva (recordar la función S del semisumador).

Esto significa que para implementar la función sumador completo, sepueden utilizar dos puertas OR-Exclusiva.

Por razones económicas, los fabricantes emplean para laimplementación circuitos de nivel superior (más lentos), pero que permiten ungran ahorro en el número de puertas empleadas.

a'·b'·C in a'·b·C in' a·b·C in a·b'·C in' b·Cin a·b a·Cin

a

Cin

Suma (S)

Acarreo (Cout)

Σb

Page 5: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

5

Una forma simple de implementar la etapa de sumador es a partir de dossemisumadores. Como hay que sumar los dos bits (dígitos) del mismo pesomás el acarreo anterior, se utiliza un semisumador para sumar los dos dígitos yel resultado se suma con el acarreo anterior mediante otro semisumador. Si enalguna de las dos sumas parciales se produce acarreo, habrá acarreo en laetapa de sumador (función OR). Esto puede comprobarse en la tabla deverdad. La etapa de sumador puede implementarse con el siguiente circuito.

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ássimple 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 laentrada de acarreo de la etapa siguiente. Este circuito se denomina sumadorparalelo con acarreo en serie. Denotamos con subíndices cada uno de losbits de los sumandos, indicando con el subíndice 1 el bit menos significativo(LSB).

Su esquema es el siguiente:A = an ... a1 (n bits)B = bn ... b1 (n bits)

1/2Σ

1/2Σ

C1

a1 b1

S1

Σ1C2

a2 b2

S2

Σ2C3

a3 b3

S3

Σ3Cn

an bn

Sn

Σn0 v.

LSBMSB

Page 6: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

6

Téngase en cuenta que para la posición menos significativa se puedeusar un semisumador, o bien, poner a 0 voltios (masa) la entrada de acarreo deun sumador completo, ya que no existe entrada de acarreo en la posición delbit menos significativo.

Su diagrama funcional o de bloques es:

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 sumandosai y bi y el acarreo de entrada, y genera el bit de suma Si y el acarreo de salidaCi.

Pero esta suma y este acarreo no se pueden generar hasta que tienelugar el acarreo de entrada, lo que da lugar a un retardo temporal en el procesode la adición. El retardo de propagación del acarreo para cada sumadorcompleto es el tiempo transcurrido desde la aplicación del acarreo de entradahasta que se produce el acarreo de salida, suponiendo que las entradas yaexistan. 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 sumadorcon 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 debits (n) para conseguir otro sumador del más de bits. A esto se le llamaexpansión de sumadores.

Para conectar dos sumadores de n bits, debemos conectar la entrada deacarreo del sumador de menor orden a masa (0 v.), y la salida de acarreo decada sumador, a la entrada de acarreo del sumador de orden superior. Esteproceso 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 quepodemos utilizar como bloque de construcción de un sistema digital y, portanto, se define como bloque funcional.

A = an ... a1 (n bits)B = bn ... b1 (n bits)S = Sn ... S1 (n bits)

ΣΣ n bits0 v.Cn

A

n

B

n

S

n

Page 7: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

7

Como ejemplo de sumadores de 4 bits, tenemos dos modelos de IC demedia escala (MSI): 74LS83A y 74LS283.

4.1.5 Substractor binario

Para restar dos números binarios, pueden restarse directamentemediante un circuito específico, o bien, sumar al minuendo el complemento a 2del sustraendo. Este segundo método es más barato, pero algo más lento. Portanto, dependiendo del precio y calidad del ordenador, se empleará un métodou otro.

4.1.6 Semisubstractor (half substractor)

Es un circuito combinacional capaz de restar dos bits a y b, obteniendosu 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 0 00 1 1 11 0 1 01 1 0 0

Implementando por "1":

D = a' · b + a · b' = a ⊕ bC = a' · b

El circuito puede implementarse de alguna de las siguientes formas:

a

b

Diferencia (D)

Acarreo (C)

1/2D

ΣΣ 4 bits0 v.Cout

S4..1

4

ΣΣ 4 bits

A4..1

4

Cout

S8..5

4

B4..1

4

A8..5

4

B8..5

4

Page 8: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

8

4.1.7 Etapas de substractor (substractor completo)

Es análogo de la etapa de sumador. Resta dos dígitos, teniendo encuenta el acarreo de la etapa anterior, y obtiene la diferencia y el acarreo parala etapa siguiente.

Su tabla de verdad y símbolo como bloque es:

a b Cin D Cout

0 0 0 0 00 0 1 1 10 1 0 1 10 1 1 0 11 0 0 1 0 a y b = Variables de entrada1 0 1 0 0 Cin = Acarreo entrada (etapa anterior)1 1 0 0 0 D = Diferencia1 1 1 1 1 Cout = Acarreo salida (etapa siguiente)

Simplificamos mediante tablas de Karnaugh las funciones de salida D yCout. Para ello, construimos las tablas correspondientes implementado por "1"desde la tabla de verdad.

D Cout

Cin\ab 00 01 11 10 Cin\ab 00 01 11 100

0 1

13 2

1 00 1

13 2

14

15 7

16

14

15

17

16

Las funciones lógicas de D y Cout 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·Cin)'' = ((a'·b)'·(a'·C in)'·(b· C in)')'

El circuito restador será:

a

Cin

Diferencia (D)

Acarreo (Cout)

Db

a'·b'·C in a'·b·C in' a·b·C in a·b'·C in' a'·C in a'·b b·Cin

d

Cout

Page 9: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

9

La etapa de substractor puede obtenerse fácilmente de dos modosdiferentes:

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 dosmodos de operación son:

Modo 1: substractor formado por dos semisubstractores.

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

4.1.8 Substractor binario de n bits

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

Otra forma es utilizar la representación en complemento a 1 o 2 pararealizar la resta de dos números binarios mediante un sumador. Para obtener elcomplemento a 2 se toma el complemento a 1 y se suma 1 al bit menossignificativo. El complemento a 1 se implementa fácilmente con circuitos

C1

a1 b1

D1

D1C2

a2 b2

D2

D2C3

a3 b3

D3

D3Cn

an bn

Dn

Dn0 v.

LSBMSB

b

a1/2D

1/2ΣCin

D

Cout

b

a 1/2D

1/2D

Cin

D

Cout

Page 10: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

10

inversores en paralelo. Utilizando el complemento a 1 y una entrada desumador sin utilizar para sumar 1 se consigue el complemento a 2 a bajo costo.

En la resta de complemento a 2, si hay acarreo se desprecia, y si nohay, debemos corregir el resultado complementando a 2 el resultado.

Las operaciones suma y resta pueden combinarse en un solo circuitocon un sumador binario común. Esto se logra incluyendo una puerta XOR concada sumador completo. Debemos de poner una entrada que nos indique laoperación que vamos a realizar: suma o resta (S’/R). Cuando S’/R=0, el circuitoes sumador; cuando S’/R=1, se comporta como restador.

El funcionamiento de este circuito se puede ver fácilmente con lasiguiente tabla de verdad:

S’/R bi XOR Descripción0 0 00 1 1

Suma: no cambia b i

1 0 11 1 0

Resta: complementa b i

Además, suma "1" para obtener el C2

a1

C1

b1

S1

Σ1

a2

C2

b2

S2

Σ2

a3

C3

b3

S3

Σ3Cn

an

bn

Sn

Σn “1”

C2 = C1 + 1

C1

a1

b1

S1

Σ1C2

a2

b2

S2

Σ2C3

a3

b3

S3

Σ3Cn

an

bn

Sn

Σn

S’/R

S’/R = 0 è SumarS’/R = 1 è Restar

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

Page 11: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

11

4.2 Codificadores y decodificadores

4.2.1 Codificadores

Son circuitos combinacionales que permiten pasar una información enforma decodificada (dígito decimal u octal) a una forma codificada (BCD obinario). Si nos limitamos a sistemas binarios, el codificador deberá tener nsalidas si queremos codificar m entradas, siendo m ≤ 2n.

De esta forma, m informaciones diferentes quedan representadasmediante grupos de n bits, es decir, las líneas de salida generan el códigobinario correspondiente al valor de entrada.

4.2.1.1 Ejemplo: Codificador octal a binario

Tenemos 8 entradas, una para cada dígito octal, y tres salidas quegeneran el número binario correspondiente. Se supone que sólo una entradatiene un valor de 1 en cualquier momento.

Entradas SalidasE7 E6 E5 E4 E3 E2 E1 E0 S2 S1 S0

0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 1 0 0 0 10 0 0 0 0 1 0 0 0 1 00 0 0 0 1 0 0 0 0 1 10 0 0 1 0 0 0 0 1 0 00 0 1 0 0 0 0 0 1 0 10 1 0 0 0 0 0 0 1 1 01 0 0 0 0 0 0 0 1 1 1

Si implementamos por “1”, obtenemos las funciones lógicas de las 3salidas:

• S0 = E1 + E3 + E5 + E7

• S1 = E2 + E3 + E6 + E7• S2 = E4 + E5 + E6 + E7

Vemos que el decodificador puede implementarse con 3 puertas OR de4 entradas.

Codificador

E0 E1 E2 E3

S0 S1

“m” entradasm ≤ 2n

“n” salidas

Page 12: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

12

Este decodificador tiene la limitación de que sólo puede estar activa unaentrada en un momento dado: si se activan simultáneamente dos entradas, lasalida produce una combinación incorrecta. Para resolver esta ambigüedad,algunos circuitos codificadores deben establecer una prioridad de entradapara asegurar que sólo se codifique una entrada. Por ejemplo, en este casopodríamos haber establecido una prioridad más alta para las entradas consubíndices mayores.

Otra ambigüedad de este codificador es que se genera una salida de 0’scuando 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 almenos 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 loscomputadores y máquinas de calcular. En un teclado alfanumérico, porejemplo, tenemos 27 teclas para letras y 10 para cifras. Cada tecla vaconectada a una línea eléctrica, que estará a nivel lógico “1” ó “0”, según latecla correspondiente esté pulsada o no.

Para que la información enviada por el teclado al computador setransmita, es inviable disponer de tantas líneas como teclas. Por ello se empleaun codificador que permite pasar del número de líneas igual al de teclas, a sólo7 líneas, si se emplea, por ejemplo, código ASCII.

Otro caso típico es el del teclado numérico, en el cual, mediante uncodificador, se pasa de 10 líneas a 4 líneas. Vamos a ver como ejemplo estecaso, suponiendo que el código de salida es BCD (Decimal Codificado enBinario).

Como hay 10 símbolos diferentes serán necesarias 10 entradas y 4salidas. La correspondencia entre entradas y salidas se representa en la tablasiguiente:

Entradas SalidasE9 E8 E7 E6 E5 E4 E3 E2 E1 E0 S3 S2 S1 S0

0 0 0 0 0 0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 1 0 0 0 0 10 0 0 0 0 0 0 1 0 0 0 0 1 00 0 0 0 0 0 1 0 0 0 0 0 1 10 0 0 0 0 1 0 0 0 0 0 1 0 00 0 0 0 1 0 0 0 0 0 0 1 0 10 0 0 1 0 0 0 0 0 0 0 1 1 00 0 1 0 0 0 0 0 0 0 0 1 1 10 1 0 0 0 0 0 0 0 0 1 0 0 01 0 0 0 0 0 0 0 0 0 1 0 0 1

Page 13: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

13

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

S3 = E8 + E9S2 = E4 + E5 + E6 + E7S1 = E2 + E3 + E6 + E7S0 = E1 + E3 + E5 + E7 + E9

que pueden realizarse mediante puertas OR:

Notemos que E0 no participa en la elaboración del código de salida. Enel caso del teclado sería equivalente pulsar "0" que no pulsar nada. En estoscasos se añade una salida adicional que indica cuando se ha pulsado algunatecla.

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 recibeel nombre de codificador sin prioridad, y se caracteriza porque, en caso depresentarse dos entradas simultáneas o más, las salidas obtenidas serán todasaquellas que correspondan a cada entrada por separado. Por tanto, en estoscodificadores 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 salidasobtenida corresponde a la entrada de mayor valor decimal de entre lasactivadas. Por ejemplo, si pulsamos las teclas 1 y 3 simultáneamente, se quedacon el 3.

Page 14: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4: Circuitos combinacionales

14

4.2.2 Decodificadores

Realizan la función inversa de los codificadores. Partiendo de unainformación codificada de n bits, obtiene la información de que se trata. Elnúmero m de informaciones que se pueden obtener (salidas) debe ser tal quem ≤ 2n. Si la información codificada de n bits tiene combinaciones no usadas(indiferencias), el decodificador podría tener menos de 2n salidas.

Ejemplo 1: Decodificador de BCD a decimal

Su tabla de verdad es:

Entradas SalidasE3 E2 E1 E0 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0

0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 1 0 0 0 0 0 0 0 0 1 00 0 1 0 0 0 0 0 0 0 0 1 0 00 0 1 1 0 0 0 0 0 0 1 0 0 00 1 0 0 0 0 0 0 0 1 0 0 0 00 1 0 1 0 0 0 0 1 0 0 0 0 00 1 1 0 0 0 0 1 0 0 0 0 0 00 1 1 1 0 0 1 0 0 0 0 0 0 01 0 0 0 0 1 0 0 0 0 0 0 0 01 0 0 1 1 0 0 0 0 0 0 0 0 01 0 1 0 x x x x x x x x x x1 0 1 1 x x x x x x x x x x1 1 0 0 x x x x x x x x x x1 1 0 1 x x x x x x x x x x1 1 1 0 x x x x x x x x x x1 1 1 1 x x x x x x x x x x

Implementando por "1":

S0 = E3' · E2' · E1' · E0'S1 = E3' · E2' · E1' · E0S2 = E3' · E2' · E1 · E0'S3 = E3' · E2' · E1 · E0S4 = E3' · E2 · E1' · E0'

S5 = E3' · E2 · E1’ · E0S6 = E3' · E2 · E1 · E0'S7 = E3' · E2 · E1 · E0S8 = E3 · E2' · E1' · E0'S9 = E3 · E2' · E1' · E0

“n” entradasm ≤ 2n

“m” salidasDecodificador

E0 E1

S1 S2S0 S3

Page 15: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

15

Si no simplificamos las funciones, utilizando inversores y puertas ANDde 4 entradas podemos implementar el circuito del siguiente modo

Este decodificador activa (pone a 1) una de sus salidas, cuando sepresenta una combinación válida en la entrada. En cambio, si el código no esválido (por ejemplo, 1 1 1 1), no se activa ninguna salida. Por tanto, con estediseño se eliminan las combinaciones de entrada no válidas. Es posible diseñarun decodificador que no elimine las combinaciones no válidas, con la ventajade que resulta un circuito más simple y económico.

Si intentamos simplificar estas funciones de salida S0..S9 veremos queno todas se pueden simplificar.

Por ejemplo, vamos a simplificar S9, mediante tablas de Karnaugh eimplementando por “1”:

E3E2 \ E1E0 00 01 11 1000 0 0 0 0

01 0 0 0 0

11 x x x x

10 0 1 x x

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

S9 = E3 · E2' · E1' · E0 = E3 · E0

E0 E1 E2 E3

S0

S9

Page 16: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

16

Ejemplo 2: Decodificador de BCD a segmentación en siete

Los dispositivos de visualización de las calculadoras electrónicas yrelojes digitales utilizan diodos emisores de luz (LEDs). Cada dígito deldispositivo se forma con siete segmentos, cada uno consistente en un LED quese ilumina mediante señales digitales.

El decodificador que vamos a ver es un circuito combinacional queacepta un dígito decimal en BCD y genera las salidas adecuadas para laselección de los segmentos que representan el dígito decimal.

Disposición de los segmentos en un display de 7 segmentos:

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 cadauno de los dígitos decimales.

Dígito decimal Segmentos activados0 a,b,c,d,e,f1 b,c2 a,b,d,e,g3 a,b,c,d,g4 b,c,f,g5 a,c,d,f,g6 a,c,d,e,f,g7 a,b,c8 a,b,c,d,e,f,g9 a,b,c,d,f,g

La lógica de decodificación de segmentos requiere cuatro entradas encódigo decimal binario (BCD) y siete salidas, una para cada segmento deldisplay. La tabla de verdad será de salida múltiple, equivalente a 7 tablas deverdad, una por segmento. Vamos a considerar que al tener "1" en las salidas,el segmento correspondiente está encendido.

a..gB

C

D

A Circuitocombinacional:

decodificador BCDa 7 segmentos

g

a

d

b

c

f

e

Page 17: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

17

Entradas SalidasDíg.dec. D C B A a b c d e f g

0 0 0 0 0 1 1 1 1 1 1 01 0 0 0 1 0 1 1 0 0 0 02 0 0 1 0 1 1 0 1 1 0 13 0 0 1 1 1 1 1 1 0 0 14 0 1 0 0 0 1 1 0 0 1 15 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 0 1 1 1 1 17 0 1 1 1 1 1 1 0 0 0 08 1 0 0 0 1 1 1 1 1 1 19 1 0 0 1 1 1 1 1 0 1 1

10 1 0 1 0 x x x x x x x11 1 0 1 1 x x x x x x x12 1 1 0 0 x x x x x x x13 1 1 0 1 x x x x x x x14 1 1 1 0 x x x x x x x15 1 1 1 1 x x x x x x x

Hemos considerado la entrada A como el bit menos significativo (LSB) yla entrada D como el bit más significativo (MSB) porque así lo hacen la mayoríade fabricantes de IC.

Como el código BCD tan sólo tiene los valores 0..9, las últimas 6combinaciones (10-15) nunca aparecerán en las entradas, por lo que tenemosla opción de tratarlas como condiciones indiferentes en las salidas ("x").

Una vez que ya hemos construido la tabla de verdad, a partir de ellapodemos obtener las expresiones suma de productos o producto de sumas decada una de las 7 salidas, es decir, para cada uno de los segmentos.

Sumas de productos (implementando por "1")

Segmento Expresión lógicaa 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'·Ab 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'·Ac 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'·Ad 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'·Ae 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'·Ag 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

Page 18: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

18

C'·A'

B

D C·A

Producto de sumas (implementando por "0")

Segmento Expresión lógicaa a = (D+C+B+A') · (D+C'+B+A)b b = (D+C'+B+A') · (D+C'+B'+A)c c = (D+C+B'+A)d d = (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') ·

(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')g g = (D+C+B+A) · (D+C+B+A') · (D+C'+B'+A')

Debemos tener en cuenta que al ser "multifunciones" tendremos algunostérminos comunes cuyas puertas podrán ser compartidas.

Vamos a simplificar estas expresiones mediante tablas o mapas deKarnaugh, utilizando condiciones indiferentes e implementando por "1", tantopara la construcción de la tabla de Karnaugh como para su simplificación.

Segmento "a":

DC \ BA 00 01 11 1000 1 1 1

01 1 1 1

11 x x x x

10 1 1 x x

a = D + B + C·A + C'·A'

Simplificando del mismo modo el resto de segmentos obtendremos:

Segmento Expresión lógicaa a = D + B + C·A + C'·A'b b =c c =d d =e e =f f =g g =

Page 19: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

19

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 finalproducirá algunas presentaciones arbitrarias sin sentido en el display con estascombinaciones. Otra opción mejor sería apagar todos los segmentos cuando seproduzca cualquiera de las combinaciones de entrada no permitidas. Esto seconsigue asignando 0 a las salidas de la tabla de verdad para esas 6combinaciones.

La nueva tabla de verdad sería:

Entradas SalidasDíg.dec. D C B A a b c d e f g

0 0 0 0 0 1 1 1 1 1 1 01 0 0 0 1 0 1 1 0 0 0 02 0 0 1 0 1 1 0 1 1 0 13 0 0 1 1 1 1 1 1 0 0 14 0 1 0 0 0 1 1 0 0 1 15 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 0 1 1 1 1 17 0 1 1 1 1 1 1 0 0 0 08 1 0 0 0 1 1 1 1 1 1 19 1 0 0 1 1 1 1 1 0 1 1

10 1 0 1 0 0 0 0 0 0 0 011 1 0 1 1 0 0 0 0 0 0 012 1 1 0 0 0 0 0 0 0 0 013 1 1 0 1 0 0 0 0 0 0 014 1 1 1 0 0 0 0 0 0 0 015 1 1 1 1 0 0 0 0 0 0 0

Segmento "a":

DC \ BA 00 01 11 1000 1 1 1

01 1 1 1

11 0 0 0 0

10 1 1 0 0

a = D'·B + D'·C·A + C'·B'·A' + D·C'·B'

C'·B'·A'

D'·B

D·C'·B' D'·C·A

Page 20: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

20

Simplificando por Karnaugh todos los segmentos obtendremos:

Segmento Expresión lógicaa a = D'·B + D'·C·A + C'·B'·A' + D·C'·B'b b = D'·C' + D'·B'·A' + D'·B·A + D·C'·B'c c = D'·C + D'·A + C'·B'·A' + D·C'·B'd d = D'·B·A' + D'·C'·B + C'·B'·A' + D·C'·B' + D'·C·B'·Ae e = D'·B·A + C'·B'·A'f f = D'·C·B' + D'·B'·A' + D'·C·A' + D·C'·B'g g = D'·B·A' + D'·C'·B + D'·C·B' + D·C'·B'

El decodificador BCD a 7 segmentos se conoce como decodificador por lamayoría de fabricantes de IC, porque decodifica el código binario para unadígito decimal; sin embargo, en realidad es un convertidor que traduce uncódigo decimal de 4 bits a código de 7 bits. La palabra "decodificador" hacereferencia a otro tipo de circuito.

Ejemplo: el decodificador 7447 es un decodificador de este tipo.

Page 21: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

21

4.3 Multiplexores y demultiplexores

4.3.1 Multiplexores

Son circuitos combinacionales con una estructura de varias entradas yuna única salida de datos. Permiten seleccionar una de las entradas pararealizar la transmisión de datos desde dicha entrada a la salida, que es única.Los demultiplexores realizan la función inversa.

Esquemáticamente:

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 dedatos o conmutador electrónico.

La selección de la entrada se controla mediante unas entradas deselecció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 lacombinació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:

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 lasentradas de datos y las entradas de selección.

MUX4

entradas

E0

E1

E2

E3

S

C0 C1

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

Entradas

Multiplexor

Salida Salidas

Demultiplexor

Entrada

Page 22: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

22

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

Su tabla de verdad es:

Entradas de control Entradas de datos SalidaC1 C0 E3 E2 E1 E0 S0 0 x x x 0 00 0 x x x 1 10 1 x x 0 x 00 1 x x 1 x 11 0 x 0 x x 01 0 x 1 x x 11 1 0 x x x 01 1 1 x x x 1

en donde la x significa que el valor de dicha entrada no influye en lasalida. Implementando por "1" tenemos:

S = C1' · C0' · E0 + C1' · C0 · E1 + C1 · C0’ · E2 + C1 · C0 · E3

Esta función se puede simplificar más. La implementación con puertaslógicas es la siguiente:

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 (4MUX).

• 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).

C0 C1

S

E0

E1

E2

E3

No nos importan

Page 23: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

23

NOTA: Podemos agrupar varios multiplexores para formar otros demayor número de entradas. Por ejemplo, con 5 multiplexores de 4 entradaspodemos formar 1 multiplexor de 16 entradas. Además será necesario algunalógica en las líneas de control o selección, para habilitar sólo los multiplexoresque nos interesen.

Las aplicaciones de los multiplexores son muy numerosas:

• Conversor paralelo-serie: permiten seleccionar una de entre variaslí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 implementarfunciones lógicas con solamente un multiplexor, directamente desde latabla de verdad, en forma de suma de productos (implementando por"1"). En general, cualquier función de "n" variables puede implementarsemediante un multiplexor de 2n entradas. Con esto conseguimos sustituirpuertas lógicas por multiplexores, para reducir significativamente elnúmero de circuitos integrados y permite que los cambios en el diseñosean mucho más sencillos.

MUX

1

MUX

2

MUX

3

MUX

4

MUX

5

S

E15

E0

C0 C1 C2 C3

Page 24: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

24

Ejemplo

Vamos a implementar una función lógica a partir de un multiplexor dado,y sus conexiones.

La función lógica F implementada por un multiplexor se obtiene delsiguiente modo:

• Para las distintas combinaciones de las entradas de control, vemos lasentradas de datos que se activan. Con esto formaremos los distintostérminos de la función (productos).

• La función lógica final será una suma de productos de los términosproducto obtenidos para cada combinación de las entradas de control.

La tabla de verdad sería:

Señales de control Entradas de datosa b Entrada Valor

Término asociado

0 0 E0 c a’·b’·c0 1 E1 c’ a’·b ·c’1 0 E2 0 a ·b’·01 1 E3 1 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)

MUX 4

E0 (00)

E1 (01)

E2 (10)

E3 (11)

C1 C0

F

CC’

01

(MSB) a b (LSB)

Page 25: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

25

EjemploA 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 8entradas de datos y luego uno de 4 entradas.

El circuito lógico de una función lógica utilizando un multiplexor seobtiene de la siguiente forma:

• Debemos expresar la función en forma de términos canónicos (suma deproductos).

• 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ógicaadicional que hay que poner en cada una de las entradas de datos(constantes "0" o "1", ó entradas de datos sin asignar, ó suscomplementos).

• Si no quedan variables por asignar en las entradas de control, sólotendremos 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 restopondremos “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

E0 (000)E1 (001)

E2 (010)E3 (011)

E4 (100)E5 (101)

E6 (110)E7 (111)

C2 C1 C0

F

10

01

10

11

(MSB) a c (LSB)b

Page 26: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

26

Multiplexor de 4 entradas

Partimos de la misma función lógica, ya expresada en términoscanó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 datosa b Entrada Valor

Términos asociados

0 0 E0 c’ a’·b’ ⇒ a’·b’·c’0 1 E1 c a’·b ⇒ a’·b·c1 0 E2 c’ a ·b’ ⇒ a·b’·c’1 1 E3 1 a ·b ⇒ a·b·c + a·b·c’ =

= a·b·(c+c’) = a·b·1

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 activauna sóla entrada, que será la salida de la función. Pues debemosaveriguar el valor o valores que toma la función de salida para cada unade esas combinaciones mirando en la tabla de verdad. Este valor puedeser:

q Siempre "0" (constante), independientemente de la variable deentrada sin asignar.

q Siempre "1" (constante), independientemente de la variable deentrada sin asignar.

q Que coincida exactamente con dicha variable.q Que coincida exactamente con el complementario de dicha variable.

MUX 4

E0

E1

E2

E3

C1 C0

F

c’c

c’1

(MSB) a b (LSB)

Page 27: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

27

4.3.2 Demultiplexores

Un demultiplexor es un circuito combinacional que realiza la funcióninversa de un multiplexor, es decir, expande un circuito de una sola señal deentrada a varias señales de salida: 2n. La información se redirige a una solasalida. La selección de la salida específica es controlada por la combinación debits de n líneas de selección o control.

El diagrama de bloque es:

El circuito es:

Si examinamos el circuitoveremos que el circuito demultiplexores idéntico a un decodificador de 2 a4 líneas con entrada de habilitación:

• Para el decodificador: lasentradas de datos son C0 y C1, y lahabilitación es la entrada E.

• Para el demultiplexor: la entradaE provee los datos, mientras que lasentradas C0 y C1 son las entradas decontrol o selección.

Aunque ambos circuitos tienen aplicaciones diferentes, sus diagramaslógicos son idénticos. Por esto, a los decodificadores con entrada dehabilitación se les llama decodificador/demultiplexor.

Las aplicaciones de los demultiplexores son:

• Conversor serie-paralelo

Ejemplo de demultiplexor: el 74154, de 16 salidas.

DEMUX4

salidas

S0

S1

S2

S3

E

C0 C1

1 entrada única (E)"n"entradas de control (m=2n)"m" salidas

S0

S1

S2

S3

E

C0 C1

Page 28: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

28

4.4 Circuitos comparadores

La función básica de un comparador consiste en comparar lasmagnitudes 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:

Sólo una de las tres salidas se pondrá a "1", indicando la magnitud de Arespecto 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 (S1, S2, S3):

La tabla de verdad:

Entradas Salidasa b S1 (a<b) S2 (a=b) S3 (a>b)0 0 0 1 00 1 1 0 01 0 0 0 11 1 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 = an ... a1 (n bits)B = bn ... b1 (n bits)

COMPS1 (A<B)

S2 (A=B)

S3 (A>B)B

An

n

a

b S3 (a>b)

S2 (a=b)

S1 (a<b)

Page 29: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

29

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 sertodos 1. Por tanto, tendremos que unirlas todas en una puerta AND.

Por ejemplo, para n=4:

a1

b1 S3 (a>b)

S2 (a=b)

S1 (a<b)

a2

b2 S3 (a>b)

S2 (a=b)

S1 (a<b)

a3

b3 S3 (a>b)

S2 (a=b)

S1 (a<b)

a4

b4 S3 (a>b)

S2 (a=b)

S1 (a<b)

A=B

Page 30: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

30

Para realizar la comparación de igualdad podemos utilizar la puertaXOR (OR exclusiva), ya que su salida es 1 cuando los dos bits de entrada sondiferentes y 0 cuando son iguales.

Por tanto, el circuito comparador básico (números binarios de 1 bit) sepuede implementar del siguiente modo:

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

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 vamosdesplazá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 deorden inmediatamente inferior.

3. En el momento en que encontremos una desigualdad, la relación entreambos queda ya establecida, y finalizamos el proceso; cualquier otradesigualdad 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)

a=bba

a1=b1b1

a1

a2=b2b2

a2

a3=b3b3

a3

a4=b4b4

a4

A=B

Page 31: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

31

Igual que en el caso de los circuitos sumadores, podemos concatenarvarios circuitos comparadores para comparar números binarios de más bits.

En el siguiente esquema vemos un comparador de 8 bits formado pordos comparadores de 4 bits.

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

COMP

A>B A>B

A=B A=B

A<B A<B

S1 (A<B)

S2 (A=B)

S3 (A>B)

A1..4

n

B1..4

n

COMP

A>B A>B

A=B A=B

A<B A<B

A5..8

n

B5..8

n

"0"

"1"

"0"

Page 32: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

32

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 bitde paridad.

La idea del método de paridad es la siguiente. Cualquier grupo de bitscontiene un número par o impar de 1's. Lo que hacemos es añadir un bit deparidad. Un bit de paridad es un bit adicional incluido en el mensaje binariopara 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. Sila cantidad de bits 1's del mensaje no corresponden al bit de paridadtransmitido 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 generadorde paridad. No importa si se añade al principio o al final del mensaje atransmitir.

El circuito que comprueba el bit de paridad en el receptor se llamacomprobador de paridad.

Obviamente, un determinado sistema puede funcionar con paridad par oimpar, 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 + 1de paridad) es el circuito 74180.

Page 33: Tema 4: Circuitos combinacionales - Usuarios de …emp.usb.ve/mrivas/tema_6b.pdfSimplificamos mediante tablas de Karnaugh las funciones de salida S y Cout. Para ello, construimos las

Estructura de computadores Tema 4

33

xy

zP

C

Ejemplo:

Vamos a transmitir un mensaje de 3 bits, con un bit de paridad. Podemosutilizar paridad par o paridad impar. En este ejemplo utilizamos paridad par, esdecir, debemos generar el bit de paridad de tal forma que la cantidad total deunos (incluyendo el bit de paridad) sea par.

Generador de paridad (par)

Tabla de verdad:

Mensaje de 3bits

Bit deparidad

x y z P0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 01 1 1 1

Comprobador de paridad (par)

NOTA: Es obvio que los circuitos de generación y comprobación deparidad siempre tienen una función de salida cuyos términos son mitad "1" ymitad "0", por lo que pueden implementarse con puertas XOR.

Función lógica:

P = x ⊕ y ⊕ z

Función lógica:

C = x ⊕ y ⊕ z ⊕ P

Circuito:

xy

z P

Circuito: