Subsistemas aritméticos y lógicos

Post on 11-Feb-2016

78 views 2 download

description

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 - PowerPoint PPT Presentation

Transcript of Subsistemas 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

– 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 00 1 0 11 0 0 11 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 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 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

camino crítico

tpo. retardo por puerta = 5 ns

semisumador semisumador

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 respecto a las entradas A y B y sólo 10 ns respecto a la entrada C

Sumador paralelo con acarreo serie

FA

A0 B0

S0

C0

FA

A1 B1

S1

C1

FA

A2 B2

S2

C2

FA

An-1 Bn-1

Sn-1

Cn-1

Cn

Sn

C3

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 BiGi = 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

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

Cálculo de las sumas

C1 = P0 C0 + G0 C2 = P1 C1 + G1 = P1 (P0 C0 + G0) + G1 = P1P0C0 + P1G0 + G1C3 = P2 C2 + G2 = P2P1P0C0 + P2P1G0 + P2G1 + G2C4 = P3 C3 + G3 = P3P21P0C0+P3P2P1G0+P3P2G1+P3G2+G3

Si = Pi Ci

Sumador con acarreo anticipado1.- Propagación yGeneración

3.- Sumas

2.- Acarreos

t

t

2t

Sumadores de 4 bits

Sumador / Restador

A3 A2 A1 A0 B3 B2 B1 B0

S4 S3 S2 S1 S0

S/R

S/R = 0 suma

S/R = 1 resta

sumador

Complementador a 2

El uso del complemento a 2 permite realizar sumas y restas con un sumador y un poco de lógica adicional

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 BCDDecimal 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

autocomplementarios

Ponderado 8 4 2 1 Ponderado 2 4 2 1No Ponderado

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

S4 S3 S2 S1 S0

sumadorcorrección

sumador

corregir?

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

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

Z4 Z3 Z2 Z1 Z0

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

Comparador de 2 bits

A0>B0

A0=B0

A0<B0

A1>B1 ó (A1=B1 y A0>B0)

A1=B1 y A0=B0

A1<B1 ó (A1=B1 y A0<B0)

DAn<Bn

Comparador de 4 bits

222 BAE

333 BAE

000 BAE

111 BAE

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

4321 xxxxP 4321 xxxxI

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

1 0 10 0 0

F E D C B A

X5 X4 X3 X2 X1 X0

74184

21

111 000

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

ALU

4A

4B

S3 S2 S1 S0

5 F

Diseño de una ALU elemental

Operaciones:

S2 S1 Operación S2 S1 S0 Operación0 0 A and B 0 0 0 A+B0 1 A or B 0 0 1 A+B+11 0 NOT A 0 1 0 A-11 1 A xor B 0 1 1 A+1111+1

1 0 0 A1 0 1 A+11 1 0 A-B-11 1 1 A-B

S3 = 0 LÓGICA S3 = 1 ARITMÉTICA

Diseño de una ALU elemental

Diagrama de bloques de la ALU

Diseño de una ALU elemental

Parte lógica, para cada bit

MUX4x1

S2 S1

0

1

2

3

F

and

or

not

xor

AB

AB

AB

A

01

4

4

4

4

4

4

4 4

4

4

4

4

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 D0 0 B

0 1 1111

1 0 0000

1 1 B’

BLOQUE B

S2

S1

b3

d3

b0b2 b1

d0d1d2

Sumador completo4bits

a3 a0a2 a1

f3 f0f1f2f4

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

0

00 0

1 1 1

1

iii bSbSd ·· 12 Para i desde 0 hasta 3

S2S1bi

0

1

00 01 11 10

S2 S1 di0 0 bi

0 1 1

1 0 0

1 1 b'i

Bloque BBLOQUE

B

S2

S1

b3

d3

b0b2 b1

d0d1d2

ALU 74LS181

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