Sistemas aritméticos y lógicos

Download Report

Transcript Sistemas aritméticos y lógicos

Subsistemas aritméticos y lógicos
Tema 8
¿Qué sabrás al final del capítulo?

Diseño de Sumadores Binarios
–
–
–
–
–
–


Diseño de Multiplicadores aritméticos
Funcionamiento de los módulos lógicos
–
–
–

Semisumadores
Sumador completo
Sumador con acarreo serie
Sumador con acarreo anticipado
Sumador / Restador
Sumador BCD
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
1
1
0
1
0
1
0
0
0
1
0
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
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
Si = Ai  Bi  Ci
= Pi  Ci
Ci+1 = (Ai + Bi) Ci + (Ai Bi)
=(Ai  Bi) Ci + (Ai Bi)
= Pi Ci + Gi
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
camino crítico
semisumador
semisumador
La salida Ci+1 llega 15 ns de retardo
respecto a las entradas A y B y sólo
10 ns respecto a la entrada C
Sumador paralelo con acarreo serie
An-1 Bn-1
A2 B2
A1 B1
A0 B0
Cn
FA
Sn
Sn-1
Cn-1
…
C3
C2
C1
C0
FA
FA
FA
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
Tiempo ts
C1
tc
S1
ts + tc
C2 ……… Sn-1
Sn = Cn
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
Gi = Ai Bi
Todos los términos se calculan en
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
C3 = P2 C2 + G2 = P2P1P0C0 + P2P1G0 + P2G1 + G2
C4 = P3 C3 + G3 = P3P21P0C0+P3P2P1G0+P3P2G1+P3G2+G3
–

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
t
1.- Propagación y
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
Otros códigos BCD
autocomplementarios
Decimal
Código BCD
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
Código BCD exceso3 Código BCD Aiken
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?
0
sumador
S4
S3 S2 S1 S0
corregir = 0  “0000”
corregir = 1  “0110”
últimos 4 bits de +6 =
últimos 4 bits de -10
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

Comparador de 1 bit
A0>B0
A0=B0
A0<B0

Comparador de 2 bits
A1>B1 ó (A1=B1 y A0>B0)
A1=B1 y A0=B0
A1<B1 ó (A1=B1 y A0<B0)

Comparador de 4 bits
E3  A3  B3
E2  A2  B2
E1  A1  B1
E0  A0  B0
D
An<Bn
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


Paridad par: Número par de unos, incluyendo P
Paridad impar: Número impar de unos, incluyendo I
Para 3 variables
Para 3 variables
Para 4 variables
Para 4 variables
P  x1  x2  x3  x4
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
1
0
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
A
4
5
ALU
B
4
S3
S2
S1
S0
F
Diseño de una ALU elemental

Operaciones:
S3 = 0 LÓGICA
S2
0
0
1
1
S1
0
1
0
1
Operación
A and B
A or B
NOT A
A xor B
S3 = 1 ARITMÉTICA
S2
0
0
0
0
1
1
1
1
S1
0
0
1
1
0
0
1
1
S0
0
1
0
1
0
1
0
1
Operación
A+B
A+B+1
A-1
A+1111+1
A
A+1
A-B-1
A-B
Diseño de una ALU elemental

Diagrama de bloques de la ALU
Diseño de una ALU elemental

Parte lógica, para cada bit
4
A
B
A
B
A
A
B
4
and
4
or
4
4
4
4
not
4
4
xor
0
1
4
2
4
3
MUX
4x1
1 0
S2 S1
4
F
Diseño de una ALU elemental

Parte aritmética:
A+B+S0=A+D+S0
A+1111c2+S0=A+D+S0
A+S0=A+D+S0
A+B’+S0=A+D+S0
S2
S1
D
0
0
B
0
1
1111
1
0
0000
1
1
B’
b3
S2
a3
a2
a1
a0
b2
b1
b0
BLOQUE
B
S1
d3
d2
d1
d0
Sumador completo
4bits
f4
f3
f2
f1
f0
S0
Bloque B
S2 S1 bi di
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
S2
S1
di
0
0
bi
0
1
1
1
0
0
1
1
b'i
S1bi
S2
00
01
11
10
0
0
1
1
1
1
0
0
0
1
di  S2 ·bi  S1·bi
Para i desde 0 hasta 3
b3
S2
Bloque B
b2
b1
b0
BLOQUE
B
S1
d3
d2
d1
d0

ALU 74LS181
Hemos aprendido….

Diseño de Sumadores Binarios
–
–
–
–
–
–


Diseñar Multiplicadores aritméticos
Funcionamiento de los módulos lógicos
–
–
–

Semisumadores
Sumador completo
Sumador con acarreo serie
Sumador con acarreo anticipado
Sumador/Restador
Sumador BCD
Comparadores
Generadores y detectores de paridad
Conversores de códigos
Diseñar una Unidad Aritmético-Lógica elemental
Final del tema 8