Skip to Content
Organización del ComputadorLógica Combinacional

Lógica Combinacional

En este apartado se incluyen algunos módulos básicos de circuitos combinacionales:

Salida código exceso-3

La salida código exceso-3 es un código de 4 bits que se obtiene sumando 3 al número decimal que se quiere codificar.
Esta tabla de verdad muestra la relación entre los BCD o Binary Coded Decimals y la salida código exceso-3:


Entrada BCD

AABBCCDD
00000000
00000011
00001100
00001111
00110000
00110011
00111100
00111111
11000000
11000011

Salida código exceso-3

wwxxyyzz
00001111
00110000
00110011
00111100
00111111
11000000
11000011
11001100
11001111
11110000

Luego es posible hacer un mapa de Karnaugh para las salidas/funciones x,y,z,wx, y , z, w
Es importante mencionar que los BCD posibles son 10, cualquier entrada BCD>9    BCD<(1001)2BCD > 9 \; \lor \; BCD < (1001)_2 no es posible (valor indiferente marcado con XX).

En este mapa se pueden ver las salidas z,yz, y.


Salida código exceso-3

De esta forma transformarlas en un diagrama lógico ahora es más sencillo (faltarían ver las salidas w,xw, x).

Sumadores

Semisumador

Un semisumador es un circuito que suma dos bits de entrada xx y yy y produce dos salidas: la suma SS y el acarreo CC.

La tabla de verdad de un semisumador es la siguiente:


xxyySSCC
00000000
00111100
11001100
11110011

Su diagrama es el siguiente:


Semisumador

Donde   S=xy,  C=xy\;S = x \oplus y, \; C = xy

Sumador completo

Un sumador completo tiene tres entradas: dos bits xx y yy y un acarreo de entrada zz. Produce dos salidas: la suma SS y el acarreo de salida CC.

La tabla de verdad de un sumador completo es la siguiente:


xxyyzzCCSS
0000000000
0000110011
0011000011
0011111100
1100000011
1100111100
1111001100
1111111111

Su diagrama es el siguiente:


Sumador completo

Donde   S=z(xy),  C=z(xy+xy)+xy\;S = z \oplus (x \oplus y), \; C = z(xy + x'y) + xy

Sumador binario

Un sumador binario es un circuito que suma dos números binarios. El mismo se compone de distintos sumadores completos (dependiendo de la cantidad de bits de los números a sumar).

Si tomamos por ejemplo, la suma de los números de cuatro bits A,BA, B debemos sumar cada AiA_i con BiB_i y el acarreo de la suma anterior:

  C3C2C1C0A3A2A1A0+      B3B2B1B0    C4S3S2S1S0\begin{aligned} &\quad \; \\ &\quad \quad C_3 C_2 C_1 C_0 \\ &\quad \quad A_3 A_2 A_1 A_0 \\ &+ \;\;\; B_3 B_2 B_1 B_0 \\ &\quad \;\; \overline{C_4 S_3 S_2 S_1 S_0} \\ \end{aligned}
Sumador binario

Uno de los problemas que radican en este sumador es que, al ser un proceso en cascada, su velocidad depende del cálculo de los acarreos.

La forma de resolver este problema es paralelizando el proceso, obteniendo los acarreos anticipadamente.

Acarreo anticipado

El acarreo anticipado es un método que permite calcular los acarreos de un sumador binario de forma paralela.

Observando el diagrama del sumador completo:


Sumador completo

Mediante las variables binarias:

Pi=AiBiGi=AiBi\begin{aligned} P_i &= A_i \oplus B_i \\ G_i &= A_iB_i \\ \end{aligned}

Expresamos la suma y el acarreo como:

Si=PiCiCi+1=Gi+PiCi\begin{aligned} S_i &= P_i \oplus C_i \\ C_{i+1} &= G_i + P_iC_i \\ \end{aligned}

Los acarreos serían:

C0C1=G0+P0C0C2=G1+P1C1=G1+P1(G0+P0C0)C3=G2+P2C2=G2+P2(G1+P1(G0+P0C0))\begin{aligned} &C_0 \\ &C_1 = G_0 + P_0C_0 \\ &C_2 = G_1 + P_1C_1 = G_1 + P_1(G_0 + P_0C_0) \\ &C_3 = G_2 + P_2C_2 = G_2 + P_2(G_1 + P_1(G_0 + P_0C_0)) \\ \end{aligned}

Un diagrama lógico de un acarreo anticipado sería:


Acarreo anticipado

Multiplicador binario

Un multiplicador binario es un circuito que realiza la multiplicación de dos números binarios.

Si queremos multiplicar dos números de dos bits A,BA, B seguimos de la siguiente manera:

  B1B0×    A1A0+A0B1A0B0      A1B1A1B0C3C2C1C0\begin{aligned} &\quad \quad \quad \quad \quad \quad \; B_1 \quad \quad \quad B_0 \\ &\quad \quad \quad \quad \quad \times \; \; A_1 \quad \quad \quad A_0 \\ &+ \quad \quad \quad \quad \quad \overline{A_0 B_1 \quad A_0 B_0} \\ &\quad \quad \;\;\; A_1 B_1 \quad A_1 B_0 \\ &\overline{C_3 \quad \quad C_2 \quad \quad C_1 \quad \quad C_0} \\ \end{aligned}

Aplicado a un diagrama lógico:


Multiplicador binario

Decodificadores

Los decodificadores son circuitos combinacionales que dadas nn variables de entrada generan 2n2^n salidas (minitérminos).

Este sería un diagrama lógico de un decodificador de 33 a 88.


Decodificador

Los decodificadores pueden tener una entrada de habilitación (EE) la cual determina si el decodificador funciona o no.

E=1    E=1 \implies decodificador activo por alto funciona y activo por bajo no funciona.
E=0    E=0 \implies decodificador activo por bajo funciona y activo por alto no funciona.

Ejemplo: los siguientes diagramas de bloque,


DecodificadorDecodificador

La tabla de verdad del primer decodificador (activo por alto) sería:


EEA1A_1A0A_0
110000
110011
111100
111111
00XXXX
Q3Q_3Q2Q_2Q1Q_1Q0Q_0
00000011
00001100
00110000
11000000
00000000

La tabla de verdad del segundo decodificador (activo por bajo) sería:


EEA1A_1A0A_0
000000
000011
001100
001111
11XXXX
Q3Q_3Q2Q_2Q1Q_1Q0Q_0
11111100
11110011
11001111
00111111
11111111

Multiplexores

Los multiplexores son circuitos que permiten seleccionar una de las 2n2^n entradas en base a nn entradas de selección SS y enviarla a la salida.

Un multiplexor de 22 a 11 sería:


Multiplexor

Si S=0    Y=I0S = 0 \implies Y = I_0
Si S=1    Y=I1S = 1 \implies Y = I_1

Ejemplo: tabla de verdad de multiplexor de 4 entradas


S1S_1S0S_0YY
0000I0I_0
0011I1I_1
1100I2I_2
1111I3I_3

Buffer triestado

Un buffer triestado posee una entrada, una salida y una entrada de control.
Si la entrada de control es 00 la salida es de alta impedancia, si es 11 la salida es igual a la entrada.


Buffer triestado

En otras palabras, dependiendo de la entrada de control la salida puede estar o no conectada.

Los multiplexores también pueden ser creados a partir de buffers triestado.

PLAs (Programmable Logic Arrays)

Un PLA es un circuito integrado que contiene una matriz de compuertas AND y OR que pueden ser programadas.


PLA

En lugar de poner distintas lineas correspondientes a varias entradas en una puerta AND, se pone una sola línea que y se marcan los valores que ingresen a ella (en la imagen, los círculos negros representan aquellos valores que sí están conectados a la compuerta correspondiente)

ROMs (Read-Only Memories)

Una ROM o memoria de solo lectura es un circuito integrado que almacena datos binarios de forma permanente. A diferencia de las PROMs (Programmable Read-Only Memories), las ROMs no pueden ser programadas por el usuario, ya que los datos son grabados durante el proceso de fabricación.

Un diagrama de bloque de una ROM sería:


rom

En general una ROM de 2k×n2^k \times n se compone de un decodificador interno de k×2kk \times 2^k y nn compuertas OR (conectadas a cada salida del decodificador)

Ejemplo: ROM de 32×832 \times 8


rom
Última vez actualizado el