Universidad Nacional de Salta
Facultad de Ciencias Exactas
Departamento de Informática
Circuitos combinacionales
Circuitos
Los operadores lógicos de Boole se pueden implementar
eléctricamente mediante circuitos.
0 : voltaje bajo (Ej.: 0 volts).
1 : voltaje alto (Ej.: 5 volts).
Ej. Circuito AND entrega como salida un voltaje alto sólo
cuando sus entradas son voltajes altos.
Los circuitos que implementan los operadores lógicos se
denominan compuertas lógicas.
Compuertas Lógicas
Símbolo NOT Símbolo AND
Símbolo OR Símbolo XOR
Compuertas Lógicas
Símbolo NAND Símbolo NOR
Circuitos
Estas compuertas se pueden combinar para
crear circuitos digitales.
Por ej w x y y z
x y z xy yz w
y 0 0 0 0 0 0
0 0 1 0 0 0
x
0 1 0 0 0 0
w
0 1 1 0 1 1
1 0 0 1 0 1
z 1 0 1 1 0 1
1 1 0 0 0 0
1 1 1 0 1 1
Circuitos
Circuitos Digitales
Se denominan circuitos digitales a todos los
circuitos eléctricos cuyas entradas y salidas
pueden tomar uno de dos valores posibles.
Combinacionales Vs. Secuenciales
Circuitos
Circuitos Combinacionales
Se denominan circuitos combinacionales a
todos los circuitos digitales cuya salida
depende exclusivamente de las entradas.
No depende de la salida
No depende del tiempo
Semi Sumador
Recordemos que:
Entradas Salidas
0+0=0
A B CARRY SUM
0+1=1 0 0 0 0 Corresponde a
1+0=1 0 1 0 1
una compuerta
XOR
1 + 1 = 10 1 0 0 1
1 1 1 0
Corresponde a
una compuerta
AND
Se denomina Semi Sumador pues sus
entradas son SOLO los 2 sumandos
(no el carry anterior) y entrega en su
salida el resultado de la suma y el
acarreo
Sumador Completo
Se lo denomina sumador completo ya que toma en sus entradas los
2 sumandos y el Carry de la suma anterior.
Sumador Completo
Ae
A
Half
B Adder As
A
Half
As
Adder As
B
Full Adder implementado utilizando 2 circuitos half Adder
Digital Works
Digital Works
• Ejemplos:
- Diseño de semi sumador (half adder)
- Diseño de sumador completo (full adder) con
base en dos circuitos semisumadores
(guardarlo como macro)
Suma decimal
11010 (acarreos)
9874
7219
---------
17093
Suma binaria
Para sumar dos números binarios se opera de igual forma
que para sumar números decimales.
carry
1 1+1=2
1001 1101
1*21+0*20=(10)2
+ 1001 1001
0011 0110
Suma binaria
¿Qué pasa si el largo de la suma sobrepasa el largo de los
sumandos?
1001 1101
+ 1001 1001
1 0011 0110
A este bit se le llama
carry-out
Sumador con propagación de acarreo
Ejemplo de la suma de 2 números binarios de 4 Bits
Carry
Cy3 Cy2 Cy1 Cy0
Primer
X3 X2 X1 X0 sumando
+
Y3 Y2 Y1 Y0 Segundo
sumando
Carry
out Cy3 S3 S2 S1 S0
Resultado
Sumador de cuatro bits
HA – Half Adder
FA – Full Adder
Sumador de ocho bits
A7-4 B7-4 A3-0 B3-0
Cin Cin
FA FA
4 bits 4 bits
Cout Cout
S7-4 S3-0
Restador
En realidad para realizar la resta, lo que haremos será, sumar un
número negativo (que obtendremos como el complemento a la base
del número)
Recordemos que para obtener el complemento a la base, lo que
hacemos es invertir (negar) el número y luego sumarle 1
Ejemplo 1:
9 1001 9= 1001
+ + 6= 0110 -6= 1001 + 1= 1010
-6 1010
-6
3 10011
Carry indica signo positivo
Restador
Ejemplo 2 :
6 0110 6= 0110
+ +
-9 0111 9= 1001 -9= 0110 + 1= 0111
-3 01101 1101 = 0010+1 = 0011
Acarreo
Restador
Restamos utilizando módulos sumadores
Se invierte Y
Sumamos 1
1. Se niega cada bit de Y
2. Se suma 1, mediante el CARRY IN
3. Se suma, bit a bit, X y el complemento de Y
Multiplexor
Recibe múltiples señales de entrada y selecciona
una como salida.
4 x 1 MUX
0 s1
0 s0 0
I0 0
I1 1 F
I2 2
I3 3
Multiplexor
Recibe múltiples señales de entrada y selecciona
una como salida.
4 x 1 MUX
0 s1
1 s0 1
I0 0
I1 1 F
I2 2
I3 3
Multiplexor
Recibe múltiples señales de entrada y selecciona
una como salida.
4 x 1 MUX
1 s1
0 s0 2
I0 0
I1 1 F
I2 2
I3 3
Multiplexor
Recibe múltiples señales de entrada y selecciona
una como salida.
4 x 1 MUX
1 s1
1 s0 3
I0 0
I1 1 F
I2 2
I3 3
MUX 2X1X1
MUX 4X2X1
MUX 4X2X1 a partir de MUX
2X1X1
Multiplexor de 8 entradas
2n entradas
n líneas de selección
1 salida
Saldrá del AND el valor
de D3 cuando A,B,C
valgan 0,1,1…
Solo un AND estará
activo, entonces F tomará
el valor de ese Di
Representación binaria de
un valor entre 0 y 7
MUX 8X3X1 a partir de MUX 4X2X1
Decodificador
Recibe n señales que representan un número i en binario
(i<2n). Entrega 2n salidas, donde sólo la i-esima tiene valor 1.
0 0
1 1
0 s2 2 0
3
n 0 s1 0
4 2n salidas
1 s0 0
5
0
6
7 0
0
Decodificador
Recibe n señales que representan un número i en binario
(i<2n). Entrega 2n salidas, donde sólo la i-esima tiene valor 1.
0 0
1 0
0 s2 2 0
3
1 s1 1
4
1 s0 0
5
0
6
7 0
0
Decodificador
Recibe n señales que representan un número i en binario
(i<2n). Entrega 2n salidas, donde sólo la i-esima tiene valor 1.
0 0
1 0
1 s2 2 0
3
1 s1 0
4
1 s0 0
5
0
6
7 0
1
Decodificador de 2 a 4
Decodificador de 2 a 4 con línea de
habilitación
Decodificador de 3 a 8
1
decodificador de 3x8 a partir de
decodificador de 2x4
ALU
Una ALU o Unidad Aritmética Lógica es un circuito digital
capaz de realizar las siguientes operaciones:
Operaciones aritméticas
como adición, substracción, etc
Operaciones lógicas
como OR, AND, etc entre dos números.
Operaciones de desplazamiento A0-n
Shift, Rotate
R0-n
B0-n
ALU
s0 CC z
s1 s
s2
c ov
ALU
• Los bit S0, S1, S2 permiten seleccionar la operación.
• El resultado de la operación corresponde a los bits R0
a Rn
Operando A A0-n
R0-n
Operando B B0-n
ALU
s0 CC z Códigos de condición
Selector s1 s
s2
c ov
ALU
• Condition Codes: almacenan información
adicional sobre el resultado de la operación.
z : vale 1 si el resultado fue 0. A0-n
s: vale 1 si el resultado fue R0-n
negativo. B0-n
ALU
c: vale 1 si hubo carry, es decir,
el resultado de la operación fue s0 z
CC
mayor al máximo número s1 s
s2
representable.
c ov
ov: vale 1 si hubo overflow.
Muy similar a carry pero para
operaciones con signo.
ALU
Ejemplo:
• ALU de 1 bit
• 3 entradas:
A, B, Carry
• Cuatro operaciones:
A.B, A+B, NOT B, Suma(A,B,Carry)
• Salidas
Resultado, CarryOut
ALU de 1 bit
F1F0 - Operación
00 - A.B (AND)
01 - A+B (OR)
10 - NOT B
11 - Suma(A,B,Carry)
ALU de 1 bit
ALU de 8 bits
Fuentes
• STRUCTURED COMPUTER ORGANIZATION. Andrew S.
Tanenbaum & Todd Austin. Prentice Hall, 6th edition, august
2012. ISBN: 9780132916523
• FUNDAMENTOS DE COMPUTADORES. Montse Peiron Guàrdia,
Lluís Ribas Xirgo, Fermín Sánchez Carracedo, A. Josep Velasco
González. Oberta Publishing. 1ra edición, Septiembre 2011.
ISBN: 978-84-693-9186-0
• Arquitectura de Computadores. Rubén Mitnik. Escuela de
ingeniería. Universidad Católica de Chile.
• Apuntes de Organización del computador I. Universidad de
Buenos Aires.