op logicas.pdf

Post on 05-Dec-2014

54 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

13.13. Circuitos aritmCircuitos aritmééticosticosOliverio J. Santana JariaSistemas Digitales

Ingeniería Técnica en Informática de SistemasCurso 2006 – 2007

Circuitos aritméticos 2

IntroducciIntroduccióónn� 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

2

Circuitos aritméticos 3

Estructura del temaEstructura 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 4

Circuitos sumadoresCircuitos 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:� 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 acarreo0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10

3

Circuitos aritméticos 5

El El semisumadorsemisumador� 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 binariaA B Co S0 0 0 00 1 0 11 0 0 11 1 1 0

A,B � sumandosCo � acarreo de salidaS � suma

Circuitos aritméticos 6

El El semisumadorsemisumador� 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 ANDCo = A·B

S = A + B

semisumador

4

Circuitos aritméticos 7

El sumador completoEl 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 entradaCi A B Co S0 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

A,B � sumandosCi � acarreo de entradaCo � acarreo de salidaS � suma

Circuitos aritméticos 8

El sumador completoEl 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:� 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 1S = A + B + Ci

0001

11

10

0 1ABCi

111

1 ABCo = +ACi +BCi = AB + Ci(A+B) = AB + Ci(A + B)

5

Circuitos aritméticos 9

El sumador completoEl sumador completo� De esta manera se puede implementar el circuito sumador completo usando dos puertas XOR, dos puertas AND y una puerta ORS = A + B + Ci

Co = AB + Ci(A + B)

sumador

Circuitos aritméticos 10

El sumador completoEl 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 acarreosemisumador

semisumador

6

Circuitos aritméticos 11

Estructura del temaEstructura 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 12

Sumadores con acarreo en cascadaSumadores 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

7

Circuitos aritméticos 13

Sumadores con acarreo en cascadaSumadores 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 significativossumador

sumador

sumador 2

Circuitos aritméticos 14

Sumadores con acarreo en cascadaSumadores 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 sumadorsumador

sumador

sumador

sumador

sumador 2

sumador 2

sumador 4

8

Circuitos aritméticos 15

Estructura del temaEstructura 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 16

Sumadores con acarreo anticipadoSumadores 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 funcionesCi+1 = AB + Ci(A + B)

Gi � generación de acarreoPi � propagación de acarreo

Ci+1 = Gi + Ci·Pi

9

Circuitos aritméticos 17

Sumadores con acarreo anticipadoSumadores con acarreo anticipado� Si suponemos un sumador de 4 bits podemos calcular cada uno de los acarreos intermediosC1 = G0 + C0·P0

C2 = G1 + C1·P1

C3 = G2 + C2·P2

C4 = G3 + C3·P3

= G1 + G0·P1 + C0·P1·P0

= G2 + G1·P2 + G0·P2·P1 + C0·P2·P1·P0

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

Sumadores con acarreo anticipadoSumadores 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

G4 = G3 + G2·P3 + G1·P3·P2 + G0·P3·P2·P1C4 = G4 + C0·P4

10

Circuitos aritméticos 19

Sumadores con acarreo anticipadoSumadores con acarreo anticipado� El circuito propagador de acarreo quedaría de esta manera:propagador

Circuitos aritméticos 20

Sumadores con acarreo anticipadoSumadores con acarreo anticipado� Usando el circuito propagador de acarreo, la estructura de un sumador de 4 bits es como sigue:propagador

sumador 4

11

Circuitos aritméticos 21

Sumadores con acarreo anticipadoSumadores 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 usarsumador 4sumador 4sumador 4sumador 4

Circuitos aritméticos 22

Sumadores con acarreo anticipadoSumadores 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 usarsumador 4sumador 4sumador 4sumador 4

propagador

12

Circuitos aritméticos 23

Estructura del temaEstructura 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 24

Sumadores / RestadoresSumadores / 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

13

Circuitos aritméticos 25

Sumadores / RestadoresSumadores / 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 bit XOR0 0 00 1 11 0 11 1 0

Circuitos aritméticos 26

Sumadores / RestadoresSumadores / 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 sustraendosumador 4

14

Circuitos aritméticos 27

Estructura del temaEstructura 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 28

Unidad lUnidad lóógicagica� 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 funcionesS0

S1

S2

S3

0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 10 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 11 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 11 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

A B f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15

15

Circuitos aritméticos 29

Unidad lUnidad lóógicagica� 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ógicaF = S0·A·B + S1·A·B + S2·A·B + S3·A·B

Circuitos aritméticos 30

Unidad lUnidad lóógicagica� 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

16

Circuitos aritméticos 31

Unidad lUnidad lóógicagica� 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:ULULULUL

Circuitos aritméticos 32

Estructura del temaEstructura 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

17

Circuitos aritméticos 33

Unidad aritmUnidad aritmééticotico--llóógicagica� 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 34

Unidad aritmUnidad aritmééticotico--llóógicagica� 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

18

Circuitos aritméticos 35

Unidad aritmUnidad aritmééticotico--llóógicagica� 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 lógicas� M = 1 � cálculo de operaciones aritméticas� 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 36

Ampliador aritmAmpliador aritmééticotico� 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 entrada1todo cerosAincremento A + 11 1 1

1BAresta A + B + 11 1 0

0BAsuma A + B1 0 1

0todo unosAdecremento A – 11 0 0

CiOperando YOperando XFunciónM S1 S0

19

Circuitos aritméticos 37

Ampliador aritmAmpliador aritmééticotico� 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� 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 0 0 0 11 0 0 1 11 0 1 0 01 0 1 1 11 1 0 0 11 1 0 1 01 1 1 0 01 1 1 1 0

M S1 S0 B Y

Circuitos aritméticos 38

Ampliador aritmAmpliador aritmééticotico� Dado que la variable M siempre vale 1, solo hay que tener en cuenta las otras tres variables para simplificar0001

11

10

0 1S1S0

B

11

1 M·S0·BY = + M·S1·B

M = 1

1

AE

20

Circuitos aritméticos 39

Ampliador lAmpliador lóógicogico� 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 entrada00A OR BOR A OR B0 1 1

00Aidentidad A0 1 0

00A AND BAND A AND B0 0 1

00Acomplemento A0 0 0

CiOperando YOperando XFunciónM S1 S0

Circuitos aritméticos 40

Ampliador lAmpliador lóógicogico� 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ógico0 0 0 A

0 0 1 A·B

0 1 0 A

0 1 1 A+B

1 – – A

M S1 S0 X

21

Circuitos aritméticos 41

Ampliador lAmpliador lóógicogico� A partir de la tabla de verdad podemos simplificar la función del ampliador lógico utilizando un mapa de Karnaugh de cinco variablesX = + M·S1·S0·B + S0·A·B + S1·A + M·A

S1S0

AB

00

01

11

10

00 01 11 10M = 0

11

1

11

111

00

01

11

10

00 01 11 10M = 1

S1S0

AB

11

11

11

11

M·S1·S0·A

Circuitos aritméticos 42

Ampliador lAmpliador lóógicogico� Una vez obtenida la expresión minimizada podemos diseñar el circuito ampliador lógicoM·S1·S0·AX = + M·S1·S0·B + S0·A·B + S1·A

LE

+ M·A

22

Circuitos aritméticos 43

DiseDiseñño de la ALUo 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 44

DiseDiseñño de la ALUo de la ALU� Este diagrama muestra una ALU de 4 bits, que sería fácilmente extensible a un mayor número de bitsLELELELE

AE AE AE AE

+ + + +

23

Circuitos aritméticos 45

Estructura del temaEstructura 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 46

ResumenResumen� 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

24

Circuitos aritméticos 47

BibliografBibliografííaaFundamentos de Sistemas Digitales (7ª edición)Capítulo 6Thomas L. FloydPrentice Hall, 2000Principios de Diseño DigitalCapítulo 5Daniel D. GajskiPrentice Hall, 1997

top related