Está en la página 1de 24

13.

Circuitos aritmticos
Oliverio J. Santana Jaria
Sistemas Digitales Ingeniera Tcnica en Informtica de Sistemas Curso 2006 2007

Introduccin

La realizacin de operaciones aritmticas y lgicas es una de las principales razones de ser de los computadores actuales Existe un conjunto de circuitos bien conocidos que se utilizan con frecuencia para la realizacin de este tipo de operaciones Los objetivos de este tema son:
Introducir los circuitos bsicos ms frecuentemente usados para realizar operaciones aritmticas y lgicas Describir el diseo de una unidad artimtico-lgica sencilla capaz de realizar operaciones de ambos tipos
Circuitos aritmticos 2

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 3

Circuitos sumadores

Los sumadores son circuitos importantes para cualquier sistema digital en el que se procesen datos numricos Las reglas bsicas de la suma binaria indican que:
0+0= 0 0+1= 1 1+0= 1 1 + 1 = 10

Al estar sumando nmeros con un tamao fijo de un bit, no es posible tener un resultado con dos bits Por tanto, la salida de un sumador no es slo el valor de la suma, ya que tambin es posible que exista acarreo
Circuitos aritmticos 4

El semisumador

Se denomina semisumador a un circuito que admite dos bits como entrada y genera como salida:
Un bit que representa la suma de los dos bits de entrada Otro bit que representa el acarreo generado por la suma

La tabla de verdad de este circuito puede deducirse a partir de las reglas de la suma binaria
A 0 0 1 1
Circuitos aritmticos

B 0 1 0 1

Co 0 0 0 1

S 0 1 1 0

A,B Co S

sumandos acarreo de salida suma


5

El semisumador

A partir de esta tabla de verdad se puede observar que la suma puede implementarse con una operacin XOR y el acarreo de salida con una operacin AND
Co = AB S=A+B

semisumador

Circuitos aritmticos

El sumador completo

La principal diferencia entre un sumador completo y un semisumador es que el sumador completo admite un valor que represente un acarreo de entrada
Ci 0 0 0 0 1 1 1 1 A 0 0 1 1 0 0 1 1 B 0 1 0 1 0 1 0 1 Co 0 0 0 1 0 1 1 1 S 0 1 1 0 1 0 0 1

A,B Ci Co S

sumandos acarreo de entrada acarreo de salida suma


7

Circuitos aritmticos

El sumador completo

Dado que podemos expresar la suma de dos bits con la operacin XOR, podemos expresar la suma de dos bits y un acarreo de la siguiente forma: El acarreo de salida ser 1 en dos circunstancias:
Cuando las dos entradas A y B sean 1 Cuando la suma de las dos entradas sea 1 y el acarreo de entrada tambin sea 1
Ci 0 AB

S = A + B + Ci

1 00 01 1 11 1 1 10 1

Co = AB +ACi +BCi = AB + Ci(A+B) = AB + Ci(A + B)


8

Circuitos aritmticos

El sumador completo

De esta manera se puede implementar el circuito sumador completo usando dos puertas XOR, dos puertas AND y una puerta OR
S = A + B + Ci Co = AB + Ci(A + B)

sumador

Circuitos aritmticos

El sumador completo

Tambin es posible implementar el sumador completo utilizando dos circuitos semisumadores


El primer semisumador suma los dos bits El segundo suma el resultado con el acarreo de entrada Habr acarreo de salida si cualquiera de los dos semisumadores genera un acarreo

semisumador semisumador

Circuitos aritmticos

10

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 11

Sumadores con acarreo en cascada

El circuito sumador completo permite sumar dos nmeros de un bit con un acarreo de entrada y generar un acarreo de salida Como regla general, un sumador binario de cualquier nmero de bits puede realizarse conectando en cascada varios sumadores completos de un bit El proceso puede extenderse usando cualquier sumador como elemento bsico: por ejemplo puede hacerse un sumador de 4 bits con dos sumadores de 2 bits
Circuitos aritmticos 12

Sumadores con acarreo en cascada

El primero de los acarreos de entrada debe estar siempre a cero, ya que representa el acarreo inicial en la suma de los bits menos significativos
sumador

sumador 2 sumador

Circuitos aritmticos

13

Sumadores con acarreo en cascada

El principal problema de esta conexin en serie de sumadores es que el retardo del circuito depende de la propagacin del acarreo a lo largo de todo el sumador
sumador sumador 2 sumador 4 sumador

sumador

sumador 2

sumador

Circuitos aritmticos

14

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 15

Sumadores con acarreo anticipado

La cadena de acarreos es el camino crtico en el retardo de un sumador en cascada pero, afortunadamente, la mayora de las expresiones necesarias pueden ser precalculadas, reduciendo el retardo Para poder anticipar el valor del acarreo hay que dividir la funcin que lo expresa en otras dos funciones
Ci+1 = AB + Ci(A + B)
Gi Pi propagacin de acarreo generacin de acarreo

Ci+1 = Gi + CiPi
Circuitos aritmticos 16

Sumadores con acarreo anticipado

Si suponemos un sumador de 4 bits podemos calcular cada uno de los acarreos intermedios
C1 = G0 + C0P0 C2 = G1 + C1P1 = G1 + G0P1 + C0P1P0 C3 = G2 + C2P2 = G2 + G1P2 + G0P2P1 + C0P2P1P0 C4 = G3 + C3P3 = G3 + G2P3 + G1P3P2 + G0P3P2P1 + C0P3P2P1P0

Los acarreos pueden calcularse en funcin de los valores de entrada y el acarreo inicial C0, por lo que la propagacin de acarreo no es estrictamente necesaria
Circuitos aritmticos 17

Sumadores con acarreo anticipado

Se ha limitado el clculo del acarreo anticipado a sumadores de 4 bits porque un nmero mayor de bits complicara el circuito Para obtener sumadores con ms bits ser necesario conectar estos sumadores de 4 bits Para permitir la propagacin de los valores es necesario reescribir la ltima ecuacin:
C4 = G3 + G2P3 + G1P3P2 + G0P3P2P1 + C0P3P2P1P0 P4 = P3P2P1P0 C4 = G4 + C0P4 G4 = G3 + G2P3 + G1P3P2 + G0P3P2P1
Circuitos aritmticos 18

Sumadores con acarreo anticipado

El circuito propagador de acarreo quedara de esta manera:


propagador

Circuitos aritmticos

19

Sumadores con acarreo anticipado

Usando el circuito propagador de acarreo, la estructura de un sumador de 4 bits es como sigue:

sumador 4

propagador

Circuitos aritmticos

20

10

Sumadores con acarreo anticipado

Para obtener un sumador de, por ejemplo, 16 bits podramos conectar en cascada cuatro de estos sumadores En este caso, las salidas P4 y G4 quedaran sin usar

sumador 4

sumador 4

sumador 4

sumador 4

Circuitos aritmticos

21

Sumadores con acarreo anticipado

Es posible utilizar un circuito propagador de acarreo global para evitar que la generacin del resultado se vea retardada por la propagacin del acarreo En este caso, la salida C4 quedara sin usar

propagador

sumador 4

sumador 4

sumador 4

sumador 4

Circuitos aritmticos

22

11

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 23

Sumadores / Restadores

La resta binaria se realiza sumando al minuendo el complemento a 2 del sustraendo Debido a esto, no es necesario tener un circuito restador separado, ya que se puede modificar el sumador para que tambin realice la operacin de resta El complemento a 2 se obtiene complementando cada bit del nmero binario y luego sumando 1 al resultado La suma del 1 final se realiza poniendo a 1 el acarreo de entrada del sumador en lugar de a 0
Circuitos aritmticos 24

12

Sumadores / Restadores

Un circuito sumador/restador tendr una seal de seleccin SEL que funcionar de la siguiente manera:
SEL = 0 SEL = 1 suma resta

Esta seal puede usarse como acarreo de entrada, ya que debe ser 0 para la suma y 1 para la resta Adems, aplicando la operacin XOR entre un bit de SEL bit XOR entrada y SEL se complementa el bit 0 0 0
SEL = 0 SEL = 1
Circuitos aritmticos

el bit se deja como est el bit se complementa

0 1 1

1 0 1

1 1 0
25

Sumadores / Restadores

Un circuito sumador/restador puede hacerse a partir de un circuito sumador (por ejemplo, con acarreo en cascada) si se aade la seal de entrada SEL y unas puertas XOR para complementar el sustraendo

sumador 4

Circuitos aritmticos

26

13

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 27

Unidad lgica

Dados dos operandos de entrada, una unidad lgica permite realizar una operacin lgica entre los dos La implementacin de una unidad lgica no es compleja, ya que tan slo es necesario que realice las 16 operaciones lgicas posibles para dos variables Para esto es necesario utilizar cuatro variables de seleccin que permitan elegir entre estas funciones
AB f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15

00 01 10 11
Circuitos aritmticos

0 0 0 0

1 0 0 0

0 1 0 0

1 1 0 0

0 0 1 0

1 0 1 0

0 1 1 0

1 1 1 0

0 0 0 1

1 0 0 1

0 1 0 1

1 1 0 1

0 0 1 1

1 0 1 1

0 1 1 1

1 1 1 1

S0 S1 S2 S3
28

14

Unidad lgica

El valor binario de las cuatro variables de seleccin para una funcin lgica dada coincide con el nmero decimal correspondiente a la funcin
Cada variable de seleccin equivale a uno de los bits del nmero identificativo de la funcin Cada variable se corresponde con una de las cuatro posibles combinaciones de entrada

Esto da lugar a una expresin booleana sencilla que representa el comportamiento de la unidad lgica
F = S0AB + S1AB + S2AB + S3AB
Circuitos aritmticos 29

Unidad lgica

Dada esta expresin, el circuito de una unidad lgica de un bit queda de la siguiente manera:
F = S0AB + S1AB + S2AB + S3AB

UL

Circuitos aritmticos

30

15

Unidad lgica

Para implementar una unidad lgica de ms de un bit bastar con reutilizar varios de los bloques de un bit de esta forma:

UL

UL

UL

UL

Circuitos aritmticos

31

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 32

16

Unidad aritmtico-lgica

Una unidad aritmtico lgica (ALU arithmetic-logic unit) realiza las operaciones aritmticas y lgicas bsicas de un procesador entre dos operandos
Las operaciones aritmticas incluyen, por ejemplo, sumar, restar, incrementar y decrementar Las operaciones lgicas incluyen, por ejemplo, la AND, la OR, la identidad y el complemento

Todas estas operaciones pueden realizarse utilizando un sumador si se modifican adecuadamente los valores de entrada
Circuitos aritmticos 33

Unidad aritmtico-lgica

El ampliador aritmtico (AE arithmetic extender) es un circuito utilizado para modificar las entradas de una ALU y permitir el clculo de operaciones aritmticas El ampliador lgico (LE logic extender) es un circuito utilizado para modificar las entradas de una ALU y permitir el clculo de operaciones lgicas La implementacin de una ALU consistir en un circuito sumador que tendr conectado uno de estos ampliadores a cada una de sus entradas
Circuitos aritmticos 34

17

Unidad aritmtico-lgica

Dado que la ALU puede realizar tanto operaciones aritmticas como operaciones lgicas, es necesaria una seal de entrada para controlar el modo de operacin
M=0 M=1 clculo de operaciones lgicas clculo de operaciones aritmticas

Tambin es necesario aadir variables de seleccin para distinguir entre los distintos tipos de operaciones aritmticas y lgicas Por ejemplo, si tenemos cuatro operaciones de cada tipo harn falta dos variables de seleccin: S0 y S1
Circuitos aritmticos 35

Ampliador aritmtico

El funcionamiento del ampliador aritmtico puede resumirse con una tabla que incluye
Las variables de seleccin de modo: M, S0, S1 El nombre y la descripcin de la funcin Las modificaciones necesarias sobre los operandos El valor del acarreo de entrada
M 1 1 1 1 S1 0 0 1 1 S0 0 1 0 1 Funcin decremento suma resta incremento A1 A+B A+B+1 A+1 Operando X Operando Y A A A A todo unos B B todo ceros Ci 0 0 1 1
36

Circuitos aritmticos

18

Ampliador aritmtico

Con este diseo, la entrada del sumador correspondiente al primer operando no necesita ninguna modificacin Por lo tanto, el ampliador aritmtico tan solo debe aplicarse a los bits del segundo operando segn la siguiente tabla de verdad M S S B
1 0

La salida del ampliador aritmtico debe ser 0 para las operaciones lgicas, por lo que slo tendremos en cuenta el caso M = 1
Circuitos aritmticos

1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

Y 1 1 0 1 1 0 0 0
37

Ampliador aritmtico

Dado que la variable M siempre vale 1, solo hay que tener en cuenta las otras tres variables para simplificar
M=1 B 0 S1S0

00 1 1 01 1 11 10 1

Y = MS0B + MS1B

AE

Circuitos aritmticos

38

19

Ampliador lgico

El funcionamiento del ampliador lgico puede resumirse con una tabla que incluya
Las variables de seleccin de modo: M, S0, S1 El nombre y la descripcin de la funcin Las modificaciones necesarias sobre los operandos El valor del acarreo de entrada
S0 0 1 0 1 Funcin complemento AND identidad OR A A AND B A A OR B

M 0 0 0 0

S1 0 0 1 1

Operando X Operando Y A A AND B A A OR B 0 0 0 0

Ci 0 0 0 0
39

Circuitos aritmticos

Ampliador lgico

El ampliador lgico necesita conocer el valor de B, el cual nunca llegar al sumador en operaciones lgicas
Por este motivo, cuando M = 0, el ampliador aritmtico siempre transforma su operando en un cero Sin embargo, s que ser necesario tener en cuenta el caso M = 1 en el diseo del ampliador lgico M S1 S0 X

0 0 0 0
Circuitos aritmticos

0 0 1 1

0 1 0 1

A AB A A+B A
40

20

Ampliador lgico

A partir de la tabla de verdad podemos simplificar la funcin del ampliador lgico utilizando un mapa de Karnaugh de cinco variables
S1S0 AB 00 01 11 10 1 M=0 00 01 11 10 1 1 1 1 1 1 1 S1S0 AB M=1 00 01 11 10 1 1 1 1 1 1 1 1 00 01 11 10

X = MS1S0A + MS1S0B + S0AB + S1A + MA


Circuitos aritmticos 41

Ampliador lgico

Una vez obtenida la expresin minimizada podemos disear el circuito ampliador lgico
X = MS1S0A + MS1S0B + S0AB + S1A + MA

LE

Circuitos aritmticos

42

21

Diseo de la ALU

El diseo de la ALU puede hacerse bit a bit, utilizando sumadores completos de un bit con un AE conectado a una entrada y un LE conectado a la otra entrada El acarreo de entrada ser 1 slo para las operaciones aritmticas (M = 1) de resta e incremento (S1 = 1) El acarreo de salida del bit ms significativo representa un desbordamiento en el caso de aritmtica entera En el caso de aritmtica en complemento a dos, la seal de desbordamiento ser un XOR de los acarreos de salida de los dos bits ms significativos
Circuitos aritmticos 43

Diseo de la ALU

Este diagrama muestra una ALU de 4 bits, que sera fcilmente extensible a un mayor nmero de bits

LE

LE

LE

LE

AE

AE

AE

AE

Circuitos aritmticos

44

22

Estructura del tema

Introduccin Circuitos sumadores


Sumador con acarreo en cascada Sumador con acarreo anticipado Sumador/Restador

Unidad lgica Unidad aritmtico-lgica Resumen y bibliografa


Circuitos aritmticos 45

Resumen

Las operaciones aritmticas y lgicas son frecuentes en los programas informticos, por lo que los circuitos que las realizan estn entre los ms importantes Gracias a la representacin en complemento a 2, la mayora de estas operaciones puede realizarse utilizando un circuito sumador, lo que simplifica los diseos en gran medida La realizacin de estas operaciones puede centralizarse en un nico circuito, la unidad aritmtico-lgica, que constituye uno de los principales centros de clculo de los computadores modernos
Circuitos aritmticos 46

23

Bibliografa
Fundamentos de Sistemas Digitales (7 edicin)
Captulo 6 Thomas L. Floyd Prentice Hall, 2000

Principios de Diseo Digital Captulo 5 Daniel D. Gajski Prentice Hall, 1997

Circuitos aritmticos

47

24

También podría gustarte