Está en la página 1de 20

TEMA 4: CIRCUITOS COMBINACIONALES

4.1. Introducción

Reciben el nombre de circuitos combinacionales todos aquellos tipos de circuitos


digitales en los que la salida es única y exclusivamente función de los valores que tomen
las entradas (no existe realimentación).

Dependiendo del número de transistores que tenga integrados un circuito digital se


puede clasificar como:
Los TTL tienen 16 transistores,
SSI Short Scale Integral 10 transistores pero se encasillan en el grupo de
SSI (porque es del orden de 10)
MSI Medium Scale Integral 100 transistores

LSI Large Scale Integral 1000 transistores

VLSI Very Large Scale Integral 1000 transistores

Los circuitos combinacionales integrados que vamos a estudiar corresponden al grupo


MSI y son los siguientes:

Multiplexores
Demultiplexores
Decodificadores
Codificadores
Comparadores
Sumadores
Generadores/detectores de paridad
ALU’s

En estos circuitos podemos encontrar 2 tipos de entradas o salidas:

Entrada o salida activa a nivel alto

Una entrada o salida es activa a nivel alto si, cuando se verifica, tiene un
valor 1 o H (es decir, el circuito s activa cuando E=1).

Por ejemplo, tenemos una entrada E que habilita un circuito: si es activa


a nivel alto deberá tener valor 1 para habilitar el circuito.

Estas entradas o salidas se representan simplemente por sus letras.

Entrada o salida activa a nivel bajo

Una entrada o salida es activa a nivel bajo si, cuando se verifica, tiene un
valor 0 o L (es decir, el circuito se activa cuando E=0).

Por ejemplo, tenemos una entrada E que habilita un circuito: al ser


activa a nivel bajo debe tener valor 0 para habilitar el circuito.

Estas entradas o salidas se pueden representar de 2 formas:

Con sus letras y una línea encima indicando que son negadas

Con sus letras sin negar, pero intercalando en el dibujo del


circuito un círculo en el hilo de entrada
4.2. Multiplexores

Un circuito multiplexor es un circuito formado por el conexionado de puertas lógicas.


Dispone de:

Una serie de entradas de datos

Un grupo de entradas de control

Una única salida

El circuito conecta una de las entradas (que depende de una combinación de las
entradas de control/selección) con la salida.

Si empieza en 0 tendré de
N entradas 0 a N-1 entradas
de datos

Multiplexor no habilitado → Z=0

Multiplexor habilitado → Z= lo que valga


la entrada Di a la que esté conectado
n entradas de selección
Este circuito se podría comparar con un conmutador rotatorio, donde las entradas de
control o selección actuarían sobre el mando.

Así pues, para tener el control de las N entradas de datos, debemos tener n entradas de
control que cumplan que N=2n. Además de las entradas de datos y control o selección
tenemos una serie de entradas de habilitación en todo el multiplexor.

D0-N-1 Entradas de datos

S0-n-1 Entradas de selección (cada combinación de ellas determina qué


entrada es la que se conecta a la salida)

Z Salida

EoI Entradas de habilitación o inhibición posibilitan, o inhiben el


funcionamiento de todo multiplexor (suelen ser activas a nivel bajo)

Dependiendo del número de entradas de datos tenemos multiplexores de 2:1 (dos


entradas, una salida), 4:1, 8:1 y 16:1.
0 0 1 1
0 1 1 0
0 0 0 0
0 0 0 0
Si S=0→D0→Me da Tengo que mirar qué
igual lo que valga D1 combinaciones me dan 1, y
porque va a salir el valor en caso de que halla una X,
de D0, y así me ahorro tendré 2 combinaciones
una línea en la tabla posibles que me dan ese 1.

Esta tabla de verdad no tiene todas las combinaciones de las variables de entrada, es una
tabla de verdad simplificada, pero podemos obtener la función de salida Z ya que
conocemos las combinaciones en las que Z toma valor 1:

𝑍 = 𝐸̅ · 𝑆̅ · 𝐷0 + 𝐸̅ · 𝑆 · 𝐷1
Ahora vamos a fijarnos en un multiplexor 4:1.

En las S meto el 1 0
D0 E binario del número
de la D que quiera:
D1
Z Equivale a 16
D2 00→D0
combinaciones
D3 S0,1 01→D1
S0 S1 10→D2
11→D3

Su función:

𝐸̅ · 𝑆̅1 · 𝑆
̅̅̅0 · 𝐷0 + 𝐸̅ · 𝑆̅1 · 𝑆0 · 𝐷1 + 𝐸̅ · 𝑆1 · 𝑆
̅̅̅0 · 𝐷2 + 𝐸̅ · 𝑆1 · 𝑆0 · 𝐷3

Y los esquemas de los multiplexores anterior son:

2:1
4:1

Extensión de la capacidad de un multiplexor

Como no se dispone de todos los tamaños de capacidad de multiplexores habrá


ocasiones en las que necesitemos interconexionar multiplexores de capacidades
más bajas para obtener la deseada.

Con dos multiplexores de capacidad N:1 y otro de capacidad M:1 es inmediato


obtener una configuración de capacidad MN:1.
D0
D1 Se consigue un multiplexor 16:1,
También podría D0
D2 a partir de multiplexores 4:1.
conseguirlo con:
D3
2x8:1 1 1 → D3 El problema que se nos puede
8x2:1
plantear es saber discernir qué
Pero cuanto menos
D4 entradas de selección, de los dos
entradas tengan los
D5 pasos de multiplexación,
multiplexores a la D2
D6
entrada, más grande
D7
corresponden a las
es el multiplexor análogas de un
1 1→ D3
que tengo que
poner a la salida. Z=D7 multiplexor con la
D8 capacidad total.
D9 0 1 → D1 Siempre las entradas
D2
D10
de selección más
D11
1 1→ D3
significativas (las de
mayor peso) serán las
D12 del último multiplexor:
D13
D3
D14
S3→S1 multiplexor
D15
S2→S0 multiplexor
1 1→ D3

Para seleccionar pongo 1


1
un número en binario
0
natural, ej.: 7→1101 1
Multiplexación de señales en el tiempo

Es uno de los procedimientos más importantes de la transmisión digital. Se


trata de transmitir por una sola línea (transmisión en serie) los datos que
tenemos presentes en varias (datos en paralelo). Para ello, conectamos las
líneas de los datos que queremos transmitir a las entradas de datos del
multiplexor, y conectamos un contador a las entradas de selección del
multiplexor. Al ir direccionando el contador cada una de las entradas de
datos se obtiene en la salida información correspondiente a las entradas de
datos, sólo que distribuida en el tiempo.
Al multiplexar señales
Esta configuración funciona bien
en el tiempo disminuye
la velocidad de cuando se usa transmisión en serie, así
transmisión de la señal no hay que mandar los hilos del
contador, simplemente establecemos
un protocolo para rescatar la
información

Si el reloj de un lado no Genera las posibles combinaciones y envía


oscila igual que el otro una única señal. Pero tendría que mandar
no puedo rescatar bien también los 2 hilos del contador para que en
la información la salida sepan qué entrada es (S1, S0)
La señal de reloj o sincronismo que acciona el contador es necesario para
recuperar la información, cuando se quiera volver a tener de forma paralelo.

PLL CONTADOR

Realización de funciones lógicas

Cualquier función de 3 La expresión de la función que realiza un multiplexor, en forma de suma de


variables se resuelve con productos, sugiere la posibilidad de generar cualquier función lógica, ya que
un multiplexor de 2 siempre es reducible a este aspecto con tal que la capacidad o número de
entradas de selección:
variables de entrada lo permita. En efecto, bastará situar la entrada de datos
nºs=nºvariables-1 direccionado por cada uno de los productos cárnicos de la función lógica a
realizar en el estado 0 o 1 que corresponda.
Con estos 4 minitérminos
Ejemplo 1: puedo realizar cualquier
función lógica de 3 variables
𝐹 = 𝐴̅ · 𝐵̅ · 𝐶̅ + 𝐴 · 𝐵̅ · 𝐶 + 𝐴 · 𝐵 · 𝐶̅ + 𝐴̅ · 𝐵 · 𝐶

Partimos de 𝐹 = [𝐷0 · 𝑆1̅ · 𝑆0̅ + 𝐷1 · 𝑆1̅ · 𝑆0 + 𝐷2 · 𝑆1 · 𝑆0̅ + 𝐷3 · 𝑆1 · 𝑆0 ] · 𝐸̅

Asignamos por comparación de ambas expresiones:

𝐵 = 𝑆1 𝐶 = 𝑆0

Por tanto: 𝐹 = 𝐴̅ · 𝑆1̅ · 𝑆0̅ + 𝐴 · 𝑆1̅ · 𝑆0 + 𝐴 · 𝑆1 · 𝑆0̅ + 𝐴̅ · 𝑆1 · 𝑆0


Y vemos que: 𝐷0 = 𝐴̅ 𝐷1 = 𝐴 𝐷2 = 𝐴 𝐷3 = 𝐴̅
Si no usase el multiplexor necesitaría:

OR → 4 inputs → 1 IC
4xAND → 4x3 inputs → 2 IC Necesito 4 circuitos integrados
3xinversor → 1 IC

Sin embargo, al usar el multiplexor necesito solo 2 IC:

D0 E
A D1
Z F
D2
D3 S1 S0

B C
Ejemplo 2:

Partimos del siguiente mapa de Karnaugh:


BC
A 00 01 10 11
0 1 1 1 0
𝐹 = 𝐵̅ + 𝐴̅ · 𝐶
1 1 1 0 0

𝐹 = 𝐵̅ + 𝐴̅ · 𝐶

𝐵̅ · (𝐴 + 𝐴̅) = 𝐴𝐵̅ + 𝐴̅𝐵̅


𝐴𝐵̅ · (𝐶 + 𝐶̅ ) = 𝐴𝐵̅𝐶 + 𝐴𝐵̅𝐶̅
𝐴̅𝐵̅ · (𝐶 + 𝐶̅ ) = 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵̅𝐶̅
𝐴̅𝐶 · (𝐵 + 𝐵̅) = 𝐴̅𝐵𝐶 + 𝐴̅𝐵̅𝐶
𝐹 = 𝐴𝐵̅𝐶 + 𝐴𝐵̅𝐶̅ + 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵̅𝐶̅ + 𝐴̅𝐵𝐶 + 𝐴̅𝐵̅𝐶 =
𝐴𝐵̅ 𝐴̅𝐵̅

= 𝐴𝐵̅𝐶 + 𝐴𝐵̅𝐶̅ + 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵̅𝐶̅ + 𝐴̅𝐵𝐶


10 10 00 00 01

Comparamos con 𝐹 = [𝐷0 · 𝑆1̅ · 𝑆0̅ + 𝐷1 · 𝑆1̅ · 𝑆0 + 𝐷2 · 𝑆1 · 𝑆0̅ + 𝐷3 · 𝑆1 · 𝑆0 ] · 𝐸̅


0 0 0 1 1 0 1 1

Vemos que:

S1 = A S2 = B → D 0 = 1 D1 = C D2 = 1 D3 = 0

D0 E Cogemos C para las


C D1
entradas “D” porque es
Z F mejor coger las variables
D2
D3 que no están invertidas
S1 S0

A B
Ejemplo 3:
BC D0 E
A
00 01 10 11
A D1
0 0 1 1 1 Z F
D1
1 1 0 0 0 D3
S1 S0

𝐹 = 𝐴𝐵̅𝐶̅ + 𝐴̅𝐵 + 𝐴̅𝐶


𝐴̅𝐵 · (𝐶 + 𝐶̅ ) = 𝐴̅𝐵𝐶 + 𝐴̅𝐵𝐶̅ B C
𝐴̅𝐶 · (𝐵 + 𝐵̅) = 𝐴̅𝐵𝐶 + 𝐴̅𝐵̅𝐶
𝐹 = 𝐴𝐵̅𝐶̅ + 𝐴̅𝐵𝐶 + 𝐴̅𝐵𝐶̅ + 𝐴̅𝐵𝐶 + 𝐴̅𝐵̅𝐶
= 𝐴𝐵̅𝐶̅ + 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵𝐶̅ + 𝐴̅𝐵𝐶
𝐹 = [𝐷0 · 𝑆1̅ · 𝑆0̅ + 𝐷1 · 𝑆1̅ · 𝑆0 + 𝐷2 · 𝑆1 · 𝑆0̅ + 𝐷3 · 𝑆1 · 𝑆0 ] · 𝐸̅

𝑆1 = 𝐵 𝑆0 = 𝐶 𝐷0 = 𝐴 𝐷1 = 𝐴̅ 𝐷2 = 𝐴̅ 𝐷3 = 𝐴̅

Ejemplo 4:

𝐹 = 𝐴𝐶̅ 𝐷
̅ + 𝐵𝐶𝐷 ̅ + 𝐵𝐶𝐷
00 10 11
𝐹 = [𝐷0 · 𝑆1 · 𝑆0 + 𝐷1 · 𝑆1̅ · 𝑆0 + 𝐷2 · 𝑆1 · 𝑆0̅ + 𝐷3 · 𝑆1 · 𝑆0 ] · 𝐸̅
̅ ̅

𝑆1 = 𝐶 𝑆0 = 𝐷 𝐷0 = 𝐴 𝐷1 = 0 𝐷2 = 𝐵 𝐷3 = 𝐵

Si hay 4 variables, los


A D0 E minitérminos tienen que
D1 tener 3 igualmente o no se
puede resolver (ya que los
D2 Z F multiplexores tienen 3)
B
D3
S1 S0

C D
Ejemplo 5:

𝐹 = 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵𝐶̅ + 𝐴𝐵̅𝐶

Ejemplo 6:

𝐹 = 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵𝐶̅ + 𝐴
4.3. Demultiplexores

Un demultiplexor es un circuito recíproco al multiplexor. Se puede comparar este


circuito con un conmutador rotatorio de un circuito, igual que el del multiplexor, pero
operando en sentido inverso, es decir, los datos entran por una única entrada y salen
por diferentes salidas, dependiendo cada salida de una serie de entradas de control.

Al igual que en el multiplexor, se debe cumplir que N=2n, siendo N el número de salidas
y n el número de entradas de control.

La determinación de la función que realiza cada salida a la obtenemos de la tabla de


verdad simplificada.
demultiplexor

Es reversible
multiplexor

Tengo una expresión


lógica para cada salida

La tabla de verdad para un demultiplexor 1:4 con E:

Su esquema de puertas sería:


Extensión de la capacidad de un demultiplexor

Es posible extender la capacidad de los demultiplexores conectando módulos de


rango inferior. A partir de 2 multiplexores 1:4 se obtiene uno de 1:8, para ello se
utiliza la entrada de habilitación como entrada de selección, negándola en un
módulo para que no trabajen los dos a la vez.

S2 hace que funcione el


de arriba o el de abajo
para que no trabajen los
dos a la vez

Multiplexación de sistemas de presentación de dígitos (displays)

Una aplicación frecuente de los circuitos multiplexores y demultiplexores es en


el procedimiento de presentación de dígitos en displays. El problema de estos
circuitos es la excesiva energía que consumen los displays formados por diodos
LED. Este problema puede solucionarse no teniendo todos los diodos a la vez y
encendiendo cada diodo o display a un ritmo del orden de 1 kHz, con lo que
tendremos la apariencia de ver todos encendidos a la vez. Para ello, con el
multiplexor dividimos las señales de los displays o leds en el tiempo, y después
con el demultiplexor volvemos a repartir cada señala su led o display
correspondiente. secuencial

L
L H H L
H
H
L

cátodo común → 1 enciende

ánodo común → 0 enciende

De esta forma enciendo L0 y L3 y apago L1 y L3.

Queremos mandar la información más rápido de lo que la puede percibir el ojo


para que parezca que están encendidos a la vez en vez de secuencialmente.
Con los transistores los
Metemos la información alimento o no en
en código BCD función de toca que se
enciendan o no

BCD→7 segmentos

Se enciende
0

1
1 1
0 0
1

Cada número consta de 7 segmentos (si añadiésemos el punto serían 8) y es:

a a
b
f b c
g d
e e
c
f
d g

4.4. Decodificadores

Un decodificador es un circuito combinacional de m entradas y M salidas. Su


funcionamiento es tal que, al presentar en las entradas una combinación binaria de m
bits, una y sólo una de sus salidas toma un valor diferente a todas las demás:

0 si las salidas son activas a nivel bajo

1 si las salidas son activas a nivel alto

Existe 2 familias de decodificadores:

Los que cumplen la ecuación M=2m:

Poseen una serie de entradas, unas salidas y unas entradas de


habilitación o inhibición.

Esta es la tabla de un decodificador binario 2:4:

Cuando se presenta en la Se activa la salida A1


entrada un número en (que tiene un 0 porque
binario natural, se activa la es activa a nivel bajo)
salida correspondiente a
dicho número.

Ejemplo: 1 → 01
No existe ningún circuito que sea únicamente
decodificador o únicamente demultiplexor
·D
Se convierte en un Y0 A0
demultiplexor
·D Y1 A1
D
Y2 A2
·D En DC→E=datos
Y3 A3
En MP→E=enable S1 S0
·D
E1 E0
Las funciones de salida para un decodificador de mayor capacidad son
inmediatas, basta con obtener para cada salida la combinación de las
variables de entrada cuyo valor en decimal sea el de su subíndice y
multiplicar por las posibles entradas de habilitación. Así, para un
decodificador 4:16 con salidas activas a nivel alto y enable a nivel bajo:
La nomenclatura que D C B A
se utiliza en los buses → 0=0000
Este circuito
BCD es DCBA
→ 1=0001 se puede
materializar
→ 2=0010 a base de
puertas
→ 3=0011
NAND:

→ 15 = 1111

Los que no cumplen la ecuación M=2m:

BCD a decimal
8 4 2 1  peso La particularidad de este decodificador es que posee 4 entradas
D C B A
(D, C, B, A) y solo dispone de 10 salidas, ya que en BCD sólo
podemos codificar hasta el número 9.

Cada salida se activa con la combinación correspondientes de


las variables de entrada cuyos valores decimales del de su
subíndice.

BCD a 7 segmentos

Este tipo de decodificador se utiliza para la excitación de


módulos de presentación digital de 7 segmentos.

A partir de la información codificada en BCD estos


decodificadores generan las tensiones necesarias para
representar el número codificado sobre el display (ya que en
BCD solo representamos hasta el número 9, las restantes
combinaciones de las entradas generan una serie de caracteres
extraños).

No suelen aparecer, y si lo hacen


indican error (el número que se
ha introducido no es BCD)
kátodo ánodo
Los displays que agrupan un conjunto de 7 diodos LED los
podemos encontrar construidos de 2 formas:

Con ánodo común


7447
Para esta configuración de ánodo común
debemos conectar el ánodo de todos los LED a
la tensión de alimentación y el cátodo de cada
LED al decodificador a través de una resistencia
en serie.

Para conseguir la iluminación del LED el


decodificador deberá presentar en su salida un
nivel bajo de tensión, 0.
5𝑣𝑒𝑛𝑡𝑟𝑎𝑑𝑎 − 1.6𝑣𝐿𝐸𝐷 − 0.4𝑣𝑠𝑎𝑙𝑖𝑑𝑎 Debemos colocar una resistencia en serie por
𝑅𝑙𝑖𝑚𝑖𝑡𝑎𝑑𝑜𝑟𝑎 =
10𝑚𝐴𝐿𝐸𝐷 cada led para no quemar el diodo.

Con cátodo común:

En esta configuración el cátodo de todos los


diodos LED lo conectamos a masa y el ánodo de
cada diodo al decodificador a través de una
resistencia en serie.

La tabla de verdad para un decodificador BCD-7 segmentos para


display de ánodo común es:

1→segmento apagado

0→segmento encendido

Estos circuitos poseen además dos entradas (LT, RBI) y una


entrada/salida (BI, RBO), todas activas a nivel bajo.

La entrada LT (Lamp Test) sirve para comprobar


el funcionamiento de todos los LED.

La entrada RBI (Ripple Blanking Input) evita que


se presente el 0 cuando la combinación de
entradas BCD es 0000 (en esta combinación la
entrada/salida BI/RBO toma valor 0 como
1 2 3 4 1 0 3 4 El RBI del primer display salida).
RBI=0 RBI=0 lo tengo siempre a 0
RBO=1 RBO=1 La entrada/salida BI/RBO cuando se conecta a
0 1 3 4 RBI=1→enciende el 0 masa, 0, al actuar como entrada, apaga todos
RBI=0 RBI=0→apaga el 0 los segmentos.
RBO=0 RBO=1→no apaga todos los segmentos
RBO=0→apaga todos los segmentos
Funcionan de forma encadenada:

Si tengo un 0 Este 0 se apaga Este 0 se apaga si Este se enciende


en el primero si a su izquierda en los 2 displays (para mostrarnos
se apaga hay un 0 su izquierda hay que el número es
un 0 un 0)

Realización de funciones lógicas

Podemos aplicar los decodificadores de la implementación de funciones lógicas.


Como la función de cada variable de salida corresponde a un minitérmino de las
variables de entrada, bastará con sumar las salidas que correspondan a los mini
términos de la función a implementar.

Si tenemos un decodificador con salidas a nivel alto, debemos sumar las salidas
que correspondan a los minitérminos que tienen nuestra función. En cambio, si
el decodificador tiene las salidas a nivel bajo, realizaremos una operación NAND
de las salidas que necesitemos.

Si tenemos 𝐹 = 𝐴̅𝐵𝐶 + 𝐴𝐵̅𝐶 + 𝐴𝐵𝐶 su conexionado con un decodificador 3:8


con salidas a nivel bajo es:

Salidas activas a nivel bajo→NAND

Salidas activas a nivel bajo→OR

Extensión de la capacidad de un decodificador

A partir de decodificadores de capacidad de inferior siempre podremos


conseguir un decodificador de capacidad superior conexionando varios
módulos. Para ello utilizaremos la facultad de inhibición de los módulos. Para
duplicar utilizaremos un inversor:
2x2:4=3:8

E2 habilita el módulo de arriba


o el de abajo, para que no
funcionen a la vez
Si queremos cuadruplicar u octuplicar la capacidad de un módulo
necesitaremos, en lugar de un inversor, otro decodificador para controlar cuál
de los módulos debemos tener habilitado. El módulo del segundo paso que se
habilite dependerá de la combinación de las entradas de mayor peso.
0
4x2:4=4:16 1 0
1 0
0
0
0
1 0
1 0
0 0
1 0 0
0 1
0 0
1 1 0
1 0
1 1
1
0
1 0
1 0
0
0

4.5. Codificadores Es el circuito contrario al decodificador → Tiene muchas entradas y una salida codificada

Un codificador es un circuito con N entradas y n salidas cuyo funcionamiento es tal que,


activando una de sus entradas, se produce una determinada combinación de las
variables de salida. Para obtener una relación biunívoca entre entrada activada y
combinación de salidas debe cumplir que N=2n.

Tenemos dos tipos de codificadores:

Con prioridad

Al activar varias entradas la salida corresponde a la combinación de la


entrada activada más significativa (la de mayor peso).

Sin prioridad

Al activar varias entradas simultáneamente la combinación de salida


corresponde a la suma lógica de las salidas correspondientes de la
activación de cada entrada por separado.

La tabla de verdad de un codificador binario sin prioridad 8:3 con entrada activa a nivel
bajo es:
Suponemos que solo se activa una
entrada, porque en caso de activar 2, E2
Deshabilitado porque es
activo a nivel bajo  y E4, no obtengo la de mayor peso o cada
una por separado, sino una combinación
de ambas.

→hay E4→A2=1
→hay E2→A1=1 Obtengo un 6

→no hay E2 ni E4→A0=0


En la tabla de verdad observamos que el circuito responde con la misma salida en los
casos de inhibición y activación de E0. Para evitar esta ambigüedad, algunos
codificadores poseen otra salida que se activa cuando el circuito está inhibido.

Para un codificador con prioridad 8:3 la tabla de verdad es:

Si activo E5 y no están
activadas ni E6 ni E7,
me da igual los que
valgan las inferiores,
por eso se marca con
una X, porque al tener
prioridad sobre E0-E4
va a aparecer E5
independientemente
del valor de estas.

prioridad
Las funciones de las salidas son:

Una forma de implementar los codificadores es la base de matrices de diodos. Estas


matrices las encontramos con distintas configuraciones en circuitos integrados.

Cuando lo programo quemo los


fusibles para que no haya conexión
entre filas y columnas

Cada diodo conecta un hilo de entrada con una de salida: si en la entrada tenemos un
nivel alto de tensión, el diodo conduce y este nivel se refleja en la salida. La unión entre
un hilo de entrada y una de salida se realiza a través de un diodo y un fusible en serie
(este fusible lo fundiremos o no para conseguir la función de salida deseada).

4.6. Comparadores

Un comparador es un circuito que detecta la igualdad o desigualdad de 2 palabras de n


bits. Dispone de 2 grupos de n entradas, correspondientes a los dos números a
comparar, A y B, y una serie de salidas E (A=B), G (A>B) y L (A<B).

Si generamos una tabla de verdad para las variables de salida de un comparador de


palabras de un bit obtendremos:

 ENOR
La comparación de palabras de más bits, la haremos a base de estas funciones

A=B

Serán iguales si lo son tanto sus bits menos significativos (A0=B0) como
sus bits más significativos (A1=B1).

A>B

El número A será mayor que el B si lo es su bit más significativo (A1>B1).


Y en caso de que el bit más significativo sea igual (A1=B1), nos fijaremos
en el bit menos significativo (A0>B0).

Algunos circuitos comparadores disponen de otras entradas, E, G y L, que posibilitan la


ampliación de la capacidad de comparación. Conectando varios circuitos en cascada,
estas entradas son siempre de menor prioridad que las entradas de los dos números, así
que, el comparador solo toma información de ellas cuando los números presentes en
las entradas A y B son iguales.

Ampliación de la capacidad

La ampliación de la capacidad de un comparador la podemos realizar de dos


formas:

Utilizando las entradas E, G y L

Conectando varios circuitos en cascada


En este caso sólo utilizaremos
las salidas G y L. Estas salidas nos
dan también información de
igualdad, ya que, cuando los bits
que compara el circuito son
iguales, las dos salidas
permanecen a cero.

4.7. ALU’s (unidad aritmético-lógica)

Es un circuito que realiza una serie de operaciones lógicas entre dos palabras binarias,
normalmente de 4 bits. La operación que realiza el circuito se define con una serie de
entradas de selección, que no suelen ser más de cuatro.
4.8. Generadores/Detectores de paridad

En la transmisión digital es posible que una inducción electromagnética en un hilo


produzca un error alter un bit. Para detectar estos casos existen una serie de circuitos
que generan unos códigos más o menos complejos. Los códigos más sencillos son los de
paridad par e impar. Al emplear estos códigos se envía por otro hilo de información un
bit de paridad de la palabra que se pretende transmitir.

El circuito detector de paridad es el mismo que el generador es algo que tiene una
entrada más el bit de paridad.

Paridad par

Dado el dato a transmitir se examina el número de unos que posee: si el


número de unos es par, se añade un 0, y si el número de unos es impar,
se añade un 1.

De esta forma, el número de unos totales debe ser par, al contrario que
con paridad impar.

La función que realiza la generación de paridad par es la función EOR:

Toma valor 1 (error) cuando el número de unos de sus entradas


es impar

Toma valor 0 (no error) cuando el número de unos de sus


entradas es par

El circuito para generar el bit de paridad par para una palabra de 8 bits
puede quedar conexionado de 2 formas:

En cascada

Agrupado

Esta segunda posibilidad, aunque emplea el mismo


número de puertas, tiene una respuesta más rápida por
tener el circuito menos puertas en cascada.
El circuito detector de paridad par es el mismo que el generador, pero
con una entrada más, el bit de paridad.

En el caso de paridad par, la suma de todos los que llegan al detector


debes ser siempre par, si no hay error, por lo que el circuito dará como
salida un 0 (no error). Si se produce un error en un bit, el número de
unos ya no será par, por lo que el circuito dará como salida un 1 (error).

Para emplear paridad impar


basta con usar la salida PI (que
es la negada de PP→inversor)

bit de control para ver si existe


algún error
Si n=2x→añade un 0→n sigue
siendo par→no hay error (0)
Mira el número de 1 (n)
Si n=2x+1→añade un 1→n ya no es
par→hay error (1)
Paridad impar

Dado el dato a transmitir se examina el número de unos que posee: si el


número de unos es par, se añade n un 1, y si el número de unos es
impar se añade un 0.

La función que realiza la generación de paridad par es la función ENOR.

4.8. Sumadores

Un circuito sumador es un dispositivo que realiza la operación suma (no confundir con
la operación OR) entre dos números de n bits. Disponen de:

Dos grupos de entradas de datos, una por cada número

Una entrada de acarreo

Un grupo de salidas de suma

Una salida de acarreo

El circuito básico es el sumador de números de un bit, cuyo funcionamiento se refleja


en su tabla de verdad:

Ci A B ∑ Co 1 0 1 1 0
1 0 1 1 0
+
1 0 1 1 1
1 0 1 1 0 1

A Ci ∑

B Co
Las funciones de salida ∑ y Co serán:
Cuando solo puedo AB AB
hacer grupos de 1 y Ci Ci 00 01 11 10
00 01 11 10
hay número de 1 que 0
de 0 puede ser:
0 0 1 0 1 0 0 1 0
1 1 0 1 0 1 0 1 1 1
EOR

ENOR
∑=AꚚBꚚCi Co=A·B+Ci·A+Ci·B
Para obtener sumas de números de más de un bit encadenaremos sumadores de un bit,
conectando la salida de acarreo a la entrada de acarreo del sumador del siguiente bit
más significativo. La entrada de acarreo del bit menos significativo se conectará a cero
ya que no tenemos acarreo de entrada en el bit inferior.

Esta configuración tiene el inconveniente de que C0 no se produce hasta que no se han


producido las salidas anteriores, por lo que tiene un tiempo de propagación alto. Para
evitar este problema existen módulos sumadores de 4 bits con salida de acarreo fast, la
cual tiene una función que depende sólo de las entradas y no de las salidas, con lo que
se consigue un tiempo de propagación menor.
Sumador BCD

3 + 3 = 6
0011 0011 0110

Pero cuando el resultado de la suma es mayor que 9 da error:


9 + 9 = 18 6 + 4 = 10 7 + 8 = 15
1001 1001 1 0010 0110 0100 1010 0111 1000 1111
Co ∑
0001 1000 0001 0000 0001 0101

Me da el resultado en binario natural, no en BCD.

En BCD (cada número se codifica con 4 bits) debería ser: BN-10

Por tanto:
∑<10 → no hacemos nada
A+B=∑→
∑≥10 → restamos 10 (sumar el Ca2 de 10)

El circuito sería:

DBCBBBAB DACABAAA

B3B2B1B0 A3A2A1A0
Tengo que ver si ∑≥10, por eso
sumador A+B Ci
hago un comparador para ver
si ∑>9 (más fácil de
Co ∑3∑2∑1∑0 implementar

9
B3B2B1B0 A3 A2 A1 A0

comparador ∑>9

L G E
Ca2(10)

B3B2B1B0 A3A2A1A0

∑-10 Ci

Co ∑3∑2∑1∑0 ∑>9→1
L
∑≤9→0
D∑C∑B∑A∑

Pongo la puerta OR para que tanto


si ∑>9, como si ∑<9 pero Co=1, me
dé un 1, para hacer el Ca2 y para el
acarreo de entrada
Restador BCD _ 5 _ 3
3 5
Cuando restamos lo que hacemos es esto: 2 _ 2

Sin embargo, un restador no nos da números negativos (porque no existe el


circuito de restador como tal, hay que hacer minuendo+Ca2(sustraendo)).
En un sumador Mcentenas Scentenas Mdecenas Sdecenas Munidades Sunidades
Tanto el minuendo (M)
tenemos C (acarreo)
como el sustraendo (S)
y en un restador T
tienen que estar en BCD
(toma) T0 T0 no pueden venir en
binario natural
+10
1 13
_
5
Se pueden presentar 3 casos: 8
M>S
_ 8 BCD _ 1000 Ca2
1000
5 0101 + 1010
Ca2(5)
3 1
1 0011
M=S
_5 BCD _ 0101 Ca2
0101
5 0101 1010
0 1
1 0000
M<S
13-8=5 _3 _ 0011 0011 El 1011 no existe en BCD,
BCD Ca2
8 1000 + 0111 sería 11 en BN.
5 1
0 1011
Vemos que cuando el acarreo
de salida da 0 tengo fallos, y Vemos que si restamos 6 nos da el resultado correcto:
cuando da 1 da el resultado
_ 1011 Ca2 1011
bien.
0110 + 1001
1
1 0101
17-9=8 _ 7 0111 0011 1110
BCD _ Ca2 -6
9 1001 + 0110 + 1001
2 1 1
0 1110 1 1000
S3 S2 S1 S0
M3M2M1M0

B3 B2 B1 B0 A3A2A1A0
Ci

Co ∑3∑2∑1∑0
To
Si Co es 0 resto 0, y si es 1,
resta 6 al resultado

B3 B2 B1 B0 A3 A2 A1 A0

Ci
Co ∑3∑2∑1∑0

R3 R2 R1 R0

También podría gustarte