Está en la página 1de 37

Subsistemas aritméticos y lógicos

Tema 8
¿Qué sabrás al final del capítulo?
■ Diseño de Sumadores Binarios
– Semisumadores
– Sumador completo
– Sumador con acarreo serie
– Sumador con acarreo anticipado
– Sumador / Restador
– Sumador BCD
■ Diseño de Multiplicadores aritméticos
■ Funcionamiento de los módulos lógicos
– Comparadores
– Generadores y detectores de paridad
– Conversores de códigos
■ Diseño de una unidad aritmético-lógica elemental
Sumador Binario
Semisumador (Half Adder)
■ La operación de suma aritmética tiene como
resultado suma y acarreo
– No podemos propagar acarreos con semisumadores

A B C S

0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

S=A⊕B Propagación (Pi)


C=A·B Generación (Gi)
Sumador Completo (Full Adder)
■ Funcionamiento similar al semisumador añadiendo
el acarreo de entrada

Ai Bi Ci Ci+1 Si
S i = A i ⊕ B i ⊕ Ci
0 0 0 0 0
0 0 1 0 1 = P i ⊕ Ci
0 1 0 0 1
0 1 1 1 0 Ci+1 = (Ai + Bi) Ci + (Ai Bi)
1 0 0 0 1
1 0 1 1 0 =(Ai ⊕ Bi) Ci + (Ai Bi)
1 1 0 1 0 = P i Ci + G i
1 1 1 1 1
Sumador completo
■ Podemos diseñarlo a partir de dos semisumadores
Sumador Completo
■ ¿Cuál será el camino crítico?

semisumador semisumador
Sumador Completo
tpo. retardo por puerta = 5 ns
La salida Si llega 10 ns de retardo
respecto a las entradas A y B y sólo
5 ns respecto a la entrada C

La salida Ci+1 llega 15 ns de retardo


camino crítico respecto a las entradas A y B y sólo
10 ns respecto a la entrada C
semisumador semisumador

Ai
Bi
Ci
Si
Ci+1
Sumador paralelo con acarreo serie
An-1 Bn-1 A 2 B2 A1 B1 A0 B0

Cn
Cn-1 C3 C2 C1 C0
FA … FA FA FA

Sn
Sn-1 S2 S1 S0
Sumador paralelo con acarreo serie
■ Cada sumador completo realiza una suma
■ Genera un acarreo que se le transmite al sumador
siguiente
■ Los tiempos se van acumulando
■ Si ts es el tiempo para realizar una suma y tc el
tiempo para realizar un acarreo, resulta:
■ Dato en S0 C1 S1 C2 ……… Sn-1 Sn = Cn
Tiempo ts tc ts + tc 2 tc ……… ts + (n-1) tc n tc
Sumador con acarreo anticipado
■ Los acarreos se evalúan anticipadamente con lógica de 2
niveles de puertas
■ Las sumas se realizan posteriormente en paralelo
■ En primer lugar se obtienen los términos de generación y
propagación

Pi = Ai ⊕ Bi Todos los términos se calculan en


Gi = Ai Bi paralelo desde el primer momento
Sumador con acarreo anticipado
■ Cálculo del acarreo
– desarrollando la fórmula iterativa Ci+1 = Pi Ci + Gi todos los
acarreos dependen de propagaciones, generaciones y acarreo
inicial
C1 = P0 C0 + G0
C2 = P1 C1 + G1 = P1 (P0 C0 + G0) + G1 = P1P0C0 + P1G0 + G1
....

– cualquier función booleana puede expresarse con lógica de 2


niveles de puertas
■ Cálculo de las sumas
Si = Pi ⊕ Ci
Sumador con acarreo anticipado
1.- Propagación y
t Generación

t 3.- Sumas

2t

2.- Acarreos
Sumadores de 4 bits
Sumador / Restador
■ El uso del complemento a 2 permite realizar sumas y restas
con un sumador y un poco de lógica adicional
A3 A2 A1 A0 B3 B2 B1 B0

S/R

S/R = 0  suma
S/R = 1  resta

sumador

S4 S3 S2 S1 S0 Complementador a 2
Código BCD
■ El código BCD es un código de 4 bits que representa
los 10 dígitos decimales como si fueran binarios
naturales
■ Cada dígito decimal se sustituye por sus cuatro bits
■ El código BCD, al igual que el binario, es un código
ponderado de pesos 8 4 2 1
■ Puede haber otros códigos BCD con otra relación de
ponderación o, incluso, no ponderados
autocomplementarios
Otros códigos BCD
Decimal Código BCD Código BCD exceso3 Código BCD Aiken
0 0000 0011 0000
1 0001 0100 0001
2 0010 0101 0010
3 0011 0110 0011
4 0100 0111 0100
5 0101 1000 1011
6 0110 1001 1100
7 0111 1010 1101
8 1000 1011 1110
9 1001 1100 1111
Ponderado 8 4 2 1 No Ponderado Ponderado 2 4 2 1
Sumador BCD
■ Suma números codificados en BCD, y genera otro BCD
■ Si el resultado es > 10 es necesario corregir restando 10
A3 A2 A1 A0 B3 B2 B1 B0

sumador
corrección
Z4 Z3 Z2 Z1 Z0

corregir?
corregir = 0  “0000”
0 corregir = 1  “0110”

últimos 4 bits de +6 =
sumador últimos 4 bits de -10

S4 S3 S2 S1 S0
Multiplicadores combinacionales
Multiplicadores
■ La multiplicación aritmética coincide con el producto
lógico

FA FA FA

FA FA FA
Módulos lógicos
Comparadores
■ Comparan dos números en binario, activando
únicamente la salida que corresponda
Comparador
■ 7485(comparador de 4 bits)
Comparador
■ Diseño de un comparador de 8 bits a partir de dos 7485
Generador de paridad
■ La suma (descartando acarreos) de un número par
de unos siempre es 0
■ La suma (descartando acarreos) de un número
impar de unos siempre es 1
Para 3 variables Para 3 variables

Para 4 variables Para 4 variables


P = x1 ⊕ x 2 ⊕ x3 ⊕ x 4 I = x1 ⊕ x2 ⊕ x3 ⊕ x4
Conversores de código
■ Pueden haber conversores para cualquier pareja de códigos
■ Se pueden construir con un codificador y un decodificador
■ Ejemplo:
Conversores de código
■ 74184. Conversor de un número en BCD de
6 bits (hasta 39) a binario
21
1 0 0 0 0 1

F E D C B A
74184
X5 X4 X3 X2 X1 X0

0 1 0 1 0 1
Diseño de una ALU elemental
Diseño de una ALU elemental
■ Trataremos de diseñar una unidad aritmético-lógica
sencilla
■ Características:
– Datos de entrada: A y B de 4 bits
– 4 líneas de selección (hasta 16 operaciones diferentes)
– Operaciones lógicas y aritméticas

4
A
5
ALU F
4
B

S3 S2 S1 S0
Diseño de una ALU elemental
■ Operaciones:
S3 = 0 LÓGICA S3 = 1 ARITMÉTICA
S2 S1 Operación S2 S1 S0 Operación
0 0 A and B 0 0 0 A+B
0 1 A or B 0 0 1 A+B+1
1 0 NOT A 0 1 0 A-1
1 1 A xor B 0 1 1 A+1111+1
1 0 0 A
1 0 1 A+1
1 1 0 A-B-1
1 1 1 A-B
Diseño de una ALU elemental
■ Diagrama de bloques de la ALU
Diseño de una ALU elemental
■ Parte lógica:
A and
B 0

A or MUX
1
B 4x1 F
A not 2

A xor 3
B

S2 S1
Diseño de una ALU elemental
■ Parte aritmética:

b3 b2 b1 b0

S2 BLOQUE
B
S1
C0 = S0
d3 d2 d1 d0
S2 S1 SUMAR
0 0 B
0 1 1111
1 0 0000
1 1 B’
Bloque B
S1bi
S2 S1 bi di S2 00 01 11 10

0 0 0 0 0 0 1 1 1

0 0 1 1
1 0 0 0 1
0 1 0 1

0 1 1 1
d i = S 2 ·bi + S1 ·bi
Para i desde 0 hasta 3
1 0 0 0

1 0 1 0

1 1 0 1
Bloque B
Hemos aprendido….
■ Diseño de Sumadores Binarios
– Semisumadores
– Sumador completo
– Sumador con acarreo serie
– Sumador con acarreo anticipado
– Sumador/Restador
– Sumador BCD
■ Diseñar Multiplicadores aritméticos
■ Funcionamiento de los módulos lógicos
– Comparadores
– Generadores y detectores de paridad
– Conversores de códigos
■ Diseñar una Unidad Aritmético-Lógica elemental
Final del tema 8

También podría gustarte