Sei sulla pagina 1di 25

FACULTAD DE INGENIERÍA

DEPRODUCCION Y SERVICIOS

ESCUELA PROFESIONAL DE
INGENIERÍA ELÉCTRICA
Docente: RICARDO PEÑALOZA

Curso: SISTEMAS DIGITALES

CIRCUITOS
COMBINACIONALES

ALUMNO:
ARAPA AQUINO VICTOR AUGUSTO

Arequipa- Perú
2018
CIRCUITOS COMBINACIONALES
INTRODUCCIÓN
Los circuitos lógicos digitales pueden ser de dos tipos:

• Combinaconales

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

A continuación, vamos a estudiar algunos circuitos combinacionales que realizan funciones


específicas, por dos razones:

 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).
 Estos circuitos se encuentran disponibles comercialmente, integrados en una sola
pastilla.

CIRCUITOS SUMADORES Y RESTADORES


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.

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:


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:

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

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.

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.

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:


El circuito puede implementarse de alguna de las siguientes formas:

SUBSTRACTOR BINARIO DE N BITS


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

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

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

CODIFICADORES Y DECODIFICADORES
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.

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.
Vemos que el decodificador puede implementarse con 3 puertas OR de 4 entradas.

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.

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:
Implementando por “1”, las 4 funciones de las salida son:

S3 = E8 + E9

S2 = E4 + E5 + E6 + E7

S1 = E2 + E3 + E6 + E7

S0 = 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. 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.

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.

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 2n salidas.

DECODIFICADOR DE BCD A DECIMAL


Su tabla de verdad es:
Si no simplificamos las funciones, utilizando inversores y puertas AND de 4 entradas podemos
implementar el circuito del siguiente modo

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..S9 veremos que no todas se


pueden simplificar.

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

NOTA. Existen decodificadores con salida activa por nivel bajo (“0”), como por ejemplo el 74154,
que es un decodificador de 4 a 16.
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:

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.

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

Simplificando del mismo modo el resto de segmentos obtendremos:


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.

Segmento a
Simplificando por Karnaugh todos los segmentos obtendremos:

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.

MULTIPLEXORES Y DEMULTIPLEXORES
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:

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:

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.

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

en donde la x significa que el valor de dicha entrada no influye en la salida. 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 puertas ló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).

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.

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.
EJEMPLO

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.
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”.
Multiplexor de 4 entradas
Partimos de la misma función lógica, ya expresada en términos canónicos:

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 sola 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:

 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.

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

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):
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 (S1, S2, S3):

La tabla de verdad:
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.

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:
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:

 En primer lugar se examina el bit de mayor orden (MSB), y vamos desplazándonos hacia
el bit menos significativo (LSB).
 Si encontramos una igualdad (los bits comparados son iguales), debemos continuar con
el proceso, examinando los siguientes bits de orden inmediatamente inferior.
 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)

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

Potrebbero piacerti anche