Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Los objetivos de este tema son:

13. Circuitos aritméticos Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 – 2007 Introducción
Author:  Lorena Ruiz Vega

0 downloads 77 Views 570KB Size

Recommend Stories


en coma flotante Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso
4. Representación de números en coma flotante Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 –

Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso
7. Álgebra de Boole Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 – 2007 Introducción  El é

Story Transcript

13. Circuitos aritméticos Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 – 2007

Introducción

 La realización de operaciones aritméticas y lógicas

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 realización de este tipo de operaciones  Los objetivos de este tema son: 

Introducir los circuitos básicos más frecuentemente usados para realizar operaciones aritméticas y lógicas



Describir el diseño de una unidad artimético-lógica sencilla capaz de realizar operaciones de ambos tipos

Circuitos aritméticos

2

1

Estructura del tema

 Introducción  Circuitos sumadores 

Sumador con acarreo en cascada



Sumador con acarreo anticipado



Sumador/Restador

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

3

Circuitos sumadores

 Los sumadores son circuitos importantes para cualquier

sistema digital en el que se procesen datos numéricos

 Las reglas básicas de la suma binaria indican que: 0+0= 0 0+1= 1 1+0= 1 1 + 1 = 10

 Al estar sumando números con un tamaño fijo de un

bit, no es posible tener un resultado con dos bits  Por tanto, la salida de un sumador no es sólo el valor de la suma, ya que también es posible que exista acarreo Circuitos aritméticos

4

2

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

B 0 1 0 1

Co 0 0 0 1

S 0 1 1 0

A,B Co S

 sumandos  acarreo de salida  suma

Circuitos aritméticos

5

El semisumador

 A partir de esta tabla de verdad se puede observar que

la suma puede implementarse con una operación XOR y el acarreo de salida con una operación AND Co = A·B S=A+B

semisumador

Circuitos aritméticos

6

3

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

Circuitos aritméticos

7

El sumador completo

 Dado que podemos expresar la suma de dos bits con la

operación XOR, podemos expresar la suma de dos bits y un acarreo de la siguiente forma: S = A + B + Ci

 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 también sea 1

Ci 0 AB

1 00 01 1 11 1 1 10

1

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

Circuitos aritméticos

8

4

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 aritméticos

9

El sumador completo

 También 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 aritméticos

10

5

Estructura del tema

 Introducción  Circuitos sumadores 

Sumador con acarreo en cascada



Sumador con acarreo anticipado



Sumador/Restador

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

11

Sumadores con acarreo en cascada

 El circuito sumador completo permite sumar dos

números de un bit con un acarreo de entrada y generar un acarreo de salida

 Como regla general, un sumador binario de cualquier

número de bits puede realizarse conectando en cascada varios sumadores completos de un bit

 El proceso puede extenderse usando cualquier sumador

como elemento básico: por ejemplo puede hacerse un sumador de 4 bits con dos sumadores de 2 bits

Circuitos aritméticos

12

6

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 aritméticos

13

Sumadores con acarreo en cascada

 El principal problema de esta conexión en serie de

sumadores es que el retardo del circuito depende de la propagación del acarreo a lo largo de todo el sumador sumador sumador 2 sumador 4 sumador

sumador

sumador 2

sumador

Circuitos aritméticos

14

7

Estructura del tema

 Introducción  Circuitos sumadores 

Sumador con acarreo en cascada



Sumador con acarreo anticipado



Sumador/Restador

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

15

Sumadores con acarreo anticipado

 La cadena de acarreos es el camino crítico en el retardo

de un sumador en cascada pero, afortunadamente, la mayoría de las expresiones necesarias pueden ser precalculadas, reduciendo el retardo  Para poder anticipar el valor del acarreo hay que dividir la función que lo expresa en otras dos funciones Ci+1 = AB + Ci(A + B) Pi  propagación de acarreo Gi  generación de acarreo

Ci+1 = Gi + Ci·Pi Circuitos aritméticos

16

8

Sumadores con acarreo anticipado

 Si suponemos un sumador de 4 bits podemos calcular

cada uno de los acarreos intermedios

C1 = G0 + C0·P0 C2 = G1 + C1·P1 = G1 + G0·P1 + C0·P1·P0 C3 = G2 + C2·P2 = G2 + G1·P2 + G0·P2·P1 + C0·P2·P1·P0 C4 = G3 + C3·P3 = G3 + G2·P3 + G1·P3·P2 + G0·P3·P2·P1 + C0·P3·P2·P1·P0

 Los acarreos pueden calcularse en función de los

valores de entrada y el acarreo inicial C0, por lo que la propagación de acarreo no es estrictamente necesaria

Circuitos aritméticos

17

Sumadores con acarreo anticipado

 Se ha limitado el cálculo del acarreo anticipado a

sumadores de 4 bits porque un número mayor de bits complicaría el circuito  Para obtener sumadores con más bits será necesario conectar estos sumadores de 4 bits  Para permitir la propagación de los valores es necesario reescribir la última ecuación: C4 = G3 + G2·P3 + G1·P3·P2 + G0·P3·P2·P1 + C0·P3·P2·P1·P0 P4 = P3·P2·P1·P0 C4 = G4 + C0·P4 G4 = G3 + G2·P3 + G1·P3·P2 + G0·P3·P2·P1 Circuitos aritméticos

18

9

Sumadores con acarreo anticipado

 El circuito propagador de acarreo

quedaría de esta manera:

propagador

Circuitos aritméticos

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 aritméticos

20

10

Sumadores con acarreo anticipado

 Para obtener un sumador de, por ejemplo, 16 bits

podríamos conectar en cascada cuatro de estos sumadores  En este caso, las salidas P4 y G4 quedarían sin usar

sumador 4

sumador 4

sumador 4

sumador 4

Circuitos aritméticos

21

Sumadores con acarreo anticipado

 Es posible utilizar un circuito propagador de acarreo

global para evitar que la generación del resultado se vea retardada por la propagación del acarreo  En este caso, la salida C4 quedaría sin usar

propagador

sumador 4

Circuitos aritméticos

sumador 4

sumador 4

sumador 4

22

11

Estructura del tema

 Introducción  Circuitos sumadores 

Sumador con acarreo en cascada



Sumador con acarreo anticipado



Sumador/Restador

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

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 también realice la operación de resta

 El complemento a 2 se obtiene complementando cada

bit del número 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 aritméticos

24

12

Sumadores / Restadores

 Un circuito sumador/restador tendrá una señal de

selección SEL que funcionará de la siguiente manera: 

SEL = 0

 suma



SEL = 1

 resta

 Esta señal puede usarse como acarreo de entrada, ya

que debe ser 0 para la suma y 1 para la resta

 Además, aplicando la operación XOR entre un bit de

entrada y SEL se complementa el bit 

SEL = 0

 el

bit se deja como está



SEL = 1

 el

bit se complementa

SEL 0 0 1 1

bit 0 1 0 1

XOR 0 1 1 0

Circuitos aritméticos

25

Sumadores / Restadores

 Un circuito sumador/restador puede hacerse a partir

de un circuito sumador (por ejemplo, con acarreo en cascada) si se añade la señal de entrada SEL y unas puertas XOR para complementar el sustraendo

sumador 4

Circuitos aritméticos

26

13

Estructura del tema

 Introducción  Circuitos sumadores 

Sumador con acarreo en cascada



Sumador con acarreo anticipado



Sumador/Restador

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

27

Unidad lógica

 Dados dos operandos de entrada, una unidad lógica

permite realizar una operación lógica entre los dos  La implementación de una unidad lógica no es compleja, ya que tan sólo es necesario que realice las 16 operaciones lógicas posibles para dos variables  Para esto es necesario utilizar cuatro variables de selección 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

0 0 0 0

Circuitos aritméticos

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 lógica

 El valor binario de las cuatro variables de selección

para una función lógica dada coincide con el número decimal correspondiente a la función 

Cada variable de selección equivale a uno de los bits del número identificativo de la función



Cada variable se corresponde con una de las cuatro posibles combinaciones de entrada

 Esto da lugar a una expresión booleana sencilla que

representa el comportamiento de la unidad lógica

F = S0·A·B + S1·A·B + S2·A·B + S3·A·B Circuitos aritméticos

29

Unidad lógica

 Dada esta expresión, el circuito de una unidad lógica de

un bit queda de la siguiente manera:

F = S0·A·B + S1·A·B + S2·A·B + S3·A·B

UL

Circuitos aritméticos

30

15

Unidad lógica

 Para implementar una unidad lógica de más de un bit

bastará con reutilizar varios de los bloques de un bit de esta forma:

UL

UL

Circuitos aritméticos

UL

UL

31

Estructura del tema

 Introducción  Circuitos sumadores 

Sumador con acarreo en cascada



Sumador con acarreo anticipado



Sumador/Restador

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

32

16

Unidad aritmético-lógica

 Una unidad aritmético lógica (ALU – arithmetic-logic unit)

realiza las operaciones aritméticas y lógicas básicas de un procesador entre dos operandos 

Las operaciones aritméticas incluyen, por ejemplo, sumar, restar, incrementar y decrementar



Las operaciones lógicas 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 aritméticos

33

Unidad aritmético-lógica

 El ampliador aritmético (AE – arithmetic extender) es un

circuito utilizado para modificar las entradas de una ALU y permitir el cálculo de operaciones aritméticas

 El ampliador lógico (LE – logic extender) es un circuito

utilizado para modificar las entradas de una ALU y permitir el cálculo de operaciones lógicas

 La implementación de una ALU consistirá en un

circuito sumador que tendrá conectado uno de estos ampliadores a cada una de sus entradas

Circuitos aritméticos

34

17

Unidad aritmético-lógica

 Dado que la ALU puede realizar tanto operaciones

aritméticas como operaciones lógicas, es necesaria una señal de entrada para controlar el modo de operación 

M=0

 cálculo de operaciones



M=1

 cálculo de operaciones aritméticas

lógicas

 También es necesario añadir variables de selección

para distinguir entre los distintos tipos de operaciones aritméticas y lógicas

 Por ejemplo, si tenemos cuatro operaciones de cada

tipo harán falta dos variables de selección: S0 y S1

Circuitos aritméticos

35

Ampliador aritmético

 El funcionamiento del ampliador aritmético puede

resumirse con una tabla que incluye

 Las variables de selección de modo: M, S0, S1  El nombre y la descripción de la función  Las modificaciones necesarias sobre los operandos  El valor del acarreo de entrada

M

S1

S0

Función

1

0

0

decremento

1

0

1

1

1

0

1

1

1

incremento

Circuitos aritméticos

Operando X Operando Y

Ci

A–1

A

todo unos

0

suma

A+B

A

B

0

resta

A+B+1

A

B

1

A+1

A

todo ceros

1 36

18

Ampliador aritmético

 Con este diseño, la entrada del sumador correspondiente

al primer operando no necesita ninguna modificación

 Por lo tanto, el ampliador aritmético tan solo debe

aplicarse a los bits del segundo operando según la siguiente tabla de verdad M S S B 1

 La salida del ampliador aritmético

debe ser 0 para las operaciones lógicas, por lo que sólo tendremos en cuenta el caso M = 1

1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1

0

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

Circuitos aritméticos

37

Ampliador aritmético

 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

1

00 1 1 01 1 11 10 1

Y = M·S0·B + M·S1·B

Circuitos aritméticos

AE

38

19

Ampliador lógico

 El funcionamiento del ampliador lógico puede

resumirse con una tabla que incluya

 Las variables de selección de modo: M, S0, S1  El nombre y la descripción de la función  Las modificaciones necesarias sobre los operandos  El valor del acarreo de entrada

M

S1

S0

Función

Operando X Operando Y

0

0

0

complemento

0

0

1

AND

0

1

0

identidad

0

1

1

OR

A A AND B

Ci

A

0

0

A AND B

0

0

A

0

0

A OR B

0

0

A A OR B

Circuitos aritméticos

39

Ampliador lógico

 El ampliador lógico necesita conocer el valor de B, el

cual nunca llegará al sumador en operaciones lógicas  Por este motivo, cuando M = 0, el ampliador aritmético siempre transforma su operando en un cero

 Sin embargo, sí que será necesario tener en cuenta el caso M = 1 en el diseño del ampliador lógico

M S1 S0

X

0 0 0 0

A A·B A A+B

0 0 1 1

0 1 0 1

1 – – Circuitos aritméticos

A 40

20

Ampliador lógico

 A partir de la tabla de verdad podemos simplificar la

función del ampliador lógico utilizando un mapa de Karnaugh de cinco variables

S1S0

AB

00

M=0 00 01 11 10 1 1 1

01 11

S1S0

1

10

AB

M=1 00 01 11 10

00

1

1

01

1

1

1

1

11

1

1

1

1

10

1

1

X = M·S1·S0·A + M·S1·S0·B + S0·A·B + S1·A + M·A Circuitos aritméticos

41

Ampliador lógico

 Una vez obtenida la expresión minimizada podemos

diseñar el circuito ampliador lógico

X = M·S1·S0·A + M·S1·S0·B + S0·A·B + S1·A + M·A

LE

Circuitos aritméticos

42

21

Diseño de la ALU

 El diseño 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 sólo para las operaciones aritméticas (M = 1) de resta e incremento (S1 = 1)  El acarreo de salida del bit más significativo representa un desbordamiento en el caso de aritmética entera  En el caso de aritmética en complemento a dos, la señal de desbordamiento será un XOR de los acarreos de salida de los dos bits más significativos Circuitos aritméticos

43

Diseño de la ALU

 Este diagrama muestra una ALU de 4 bits, que sería

fácilmente extensible a un mayor número de bits

LE

LE

LE

LE

AE

AE

AE

AE

+

Circuitos aritméticos

+

+

+

44

22

Estructura del tema

 Introducción  Circuitos sumadores

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

 Unidad lógica  Unidad aritmético-lógica  Resumen y bibliografía Circuitos aritméticos

45

Resumen

 Las operaciones aritméticas y lógicas son frecuentes en

los programas informáticos, por lo que los circuitos que las realizan están entre los más importantes  Gracias a la representación en complemento a 2, la mayoría de estas operaciones puede realizarse utilizando un circuito sumador, lo que simplifica los diseños en gran medida  La realización de estas operaciones puede centralizarse en un único circuito, la unidad aritmético-lógica, que constituye uno de los principales centros de cálculo de los computadores modernos Circuitos aritméticos

46

23

Bibliografía Fundamentos de Sistemas Digitales (7ª edición) Capítulo 6 Thomas L. Floyd Prentice Hall, 2000

Principios de Diseño Digital Capítulo 5 Daniel D. Gajski Prentice Hall, 1997

Circuitos aritméticos

47

24

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.