Você está na página 1de 30

Eletrnica Digital

Prof. Arthur Braga

Tpicos
Aritmtica Digital
Adio binria Representao de nmeros com sinal Subtrao binria Subtrao no sistema de complemento de 2 Multiplicao Binria Diviso Binria Adio BCD Aritmtica Hexadecimal Circuitos Aritmticos
Projeto de um Somador Completo Projeto de um Meio-Somador Somador Paralelo em Circuito Integrado

Unidades Lgicas Aritmticas (ULAs)

Aritmtica Binria

Aritmtica Digital
Os computadores e as calculadoras digitais realizam vrias operaes aritmticas sobre nmeros representados no formato binrio. O tema da aritmtica digital pode ser muito complexo se desejarmos entender os diversos mtodos de computao e a teoria que os envolve. Entretanto, esse nvel de conhecimento no necessrio maioria dos tcnicos, pelo menos at que se tornem experientes programadores de computadores. Assim, adota-se a abordagem de se concentrar nos princpios bsicos necessrios para entender como as mquinas digitais realizam as operaes aritmticas bsicas. Primeiramente sero estudados os procedimentos para realizar as operaes aritmticas sobre nmeros binrios e, em seguida, sero estudados os circuitos lgicos que realizam essas operaes em um sistema digital.

Aritmtica Digital
Adio Binria
A adio de dois nmeros binrios realizada exatamente da mesma forma que a adio de nmeros decimais.

1 3 + 4
carry ou vai-um

LSD

7 6 13

6 1 7

Os mesmos passos so seguidos em uma adio binria. Entretanto, temos um nmero menor de casos que podem ocorrer na soma de dois dgitos binrios (bits) em qualquer posio.

Aritmtica Digital
Adio Binria
Esses casos so:

0 0 1 1

+ + + +

0 1 0 1

= = = =

0 1 1 0 + carry 1 para prxima posio

Quando h um carry em uma determinada posio, este considerado na operao.

1 1 1 1

+ + + +

0 0 1 1

+ + + +

0 1 0 1

= = = =

1 0 0 1

+ carry 0 para prxima posio + carry 1 para prxima posio + carry 1 para prxima posio + carry 1 para prxima posio

SOMA LGICA (operador OR) SOMA ARITMTICA !

Aritmtica Digital
Adio Binria
No necessrio considerar a adio de mais de dois nmeros binrios de uma vez porque em todos os sistemas digitais o circuito que realiza a adio pode efetuar uma operao apenas com dois nmeros de cada vez. 0011 (3) + 0110 (6) 1001 (9) 01001 (9) 011,011 (3,375) + 010,110 (2,750) 110,001 (6,125)

+ 01111 (15) 11000 (24)

Quando mais de dois nmeros devem ser somados, os dois primeiros so somados e o resultado somado com o terceiro nmero, e assim por diante. A adio a operao aritmtica mais importante nos sistemas digitais. Como veremos, as operaes de subtrao, multiplicao e diviso, do modo como so realizadas na maioria dos computadores modernos e calculadoras, usam apenas a adio em suas operaes bsicas.

Aritmtica Digital
Representao de Nmeros com Sinal
Nos computadores digitais, os nmeros binrios so representados por um conjunto de dispositivos de armazenamento binrio (flip-flops, que veremos flip-flops mais adiante). Cada dispositivo representa um bit. Por exemplo, um registrador de seis bits pode armazenar nmeros binrios na faixa de 000000 a 111111 (de 0 a 63 em decimal). Isso representa a magnitude do nmero. Mas como representar NMEROS NEGATIVOS ???? Isso feito normalmente acrescentando ao nmero um bit de sinal. Em geral, a conveno comum que um 0 no bit de sinal representa um nmero positivo, e um 1 no bit de sinal representa um nmero negativo.

Aritmtica Digital
Representao de Nmeros com Sinal
O bit de sinal usado para indicar a natureza positiva ou negativa do nmero armazenado. Abaixo mostrada a representao sistema sinal-magnitude em que sinal e magnitude do nmero so representados diretamente.

Mas esta representao NO adotada normalmente!

Aritmtica Digital
Representao de Nmeros com Sinal
Embora o sistema sinal-magnitude seja uma representao direta, os computadores e as calculadoras normalmente no o utilizam, porque a implementao do circuito mais complexa do que em outros sistemas. O sistema mais usado para representar nmeros binrios com sinal o sistema de complemento de 2.

Forma do Complemento de 1
O complemento de um nmero binrio obtido substituindo cada 0 por 1, e cada 1 por um 0. Conforme abaixo: 1 0 1 1 0 1 0 1 0 0 1 0
Nmero binrio original Complemento de 1

Aritmtica Digital
Forma do Complemento de 2
O complemento de 2 de um nmero binrio obtido tomando-se o complemento de 1 do nmero, e somando-se 1 na posio do bit menos significativo. 1 0 1 1 0 1 0 1 0 0 1 0 + 1 0 1 0 0 1 1

Complemento de 2

Aritmtica Digital
Representao na Forma do Complemento de 2 Representa
O sistema de complemento de 2 para representao de nmeros com sinal funciona da seguinte forma: Se o nmero for positivo, a magnitude representada na forma binria direta, e um bit de sinal 0 colocado em frente ao bit mais significativo. Se o nmero for negativo, a magnitude representada na sua forma do complemento de 2, e um bit de sinal 1 colocado em frente ao MSB.

Aritmtica Digital
Representao na Forma do Complemento de 2 Representa

0s 0s

1s 1s

Com N bits, sendo um para sinal, qual faixa de valores pode ser representada ?

Aritmtica Digital
Representao na Forma do Complemento de 2 Representa

Aritmtica Digital
Representao na Forma do Complemento de 2 Representa
Sempre que um nmero com sinal tiver 1 no bit de sinal e todos os bits de magnitude forem 0, seu equivalente decimal ser -2N, em que N o nmero de bits de magnitude:

1000 = -23 = -8 10000 = -24 = -16 100000 = -25 = -32

Como ser a soma entre dois nmeros no sistema de complemento 2 ?

Aritmtica Digital
Adio no Sistema de Complemento 2

Aritmtica Digital
Adio no Sistema de Complemento 2

Aritmtica Digital
Adio no Sistema de Complemento 2

Aritmtica Digital
Adio no Sistema de Complemento 2

10

Aritmtica Digital
Adio no Sistema de Complemento 2

Como realizar a operao de subtrao binria ???? Definindo diretamente a operao de subtrao, ou usando o Complemento 2

11

Outra alternativa para implementar a operao de subtrao binria ????

12

Aritmtica Digital
Subtrao no Sistema de Complemento 2

Aritmtica Digital
Subtrao no Sistema de Complemento 2

13

Aritmtica Digital
Subtrao no Sistema de Complemento 2

Essa condio de overflow (transbordamento) pode ocorrer apenas quando dois nmeros positivos ou dois nmeros negativos so somados. O overflow pode ser detectado verificando se o bit de sinal do resultado tem o mesmo valor dos bits de sinal dos nmeros (de mesmo sinal) que esto sendo somados !

Aritmtica Digital
Crculo de Nmeros e Aritmtica Binria
O conceito de aritmtica com sinal e overflow pode ser ilustrado pelo diagrama abaixo que representa nmeros de quatro bits sem sinal (crculo externo), e com sinal (crculo interno):

E as operaes de multiplio e diviso ????

14

Aritmtica Digital
Multiplicao de Nmeros Binrios

produto final
Observe que nesta multiplicao no foram includos os bits de sinal. Como proceder com nmeros com sinal ?

Aritmtica Digital
Multiplicao no Sistema de Complemento 2
CASO 1: Multiplicao de dois nmeros positivos. Mantem-se o procedimento anteriormente descrito fazendo o produto das magnitudes dos nmeros no formato binrio direto e, como o sinal do produto final positivo, inclui-se o bit de sinal com valor 0. CASO 2: Multiplicao de dois nmeros negativos. Como os nmeros so negativos, suas magnitudes devem devem estar na forma de complemento de 2. Deve-se converter as duas magnitudes para binrio puro (realizar o complemento de 2) e multiplicar os nmeros. O produto mantido como um nmero positivo e o bit de sinal igual a 0.

15

Aritmtica Digital
Multiplicao no Sistema de Complemento 2
CASO 3: Multiplicao entre um nmero positivo e um nmero negativo. O nmero negativo convertido em magnitude positiva por meio do complemento de 2. Realiza-se a multiplicao, e o produto estar com magnitude direta. Como este produto negativo, aplica-se a ele complemento de 2 e o bit de sinal deve ser 1.

Aritmtica Digital
Diviso Binria
O processo para dividir um nmero binrio (o dividendo) por outro (o divisor) o mesmo seguido para nmero decimais. Esse processo verifica quantas vezes o divisor cabe dentro do dividendo no sistema binrio h apenas duas possibilidades, 0 ou 1.

A diviso com sinal realizada da mesma forma que a multiplicao: nmeros negativos so transformados em positivos pelo completo 2. Se dividendo e divisor tiverem sinais iguais, o quociente mantido positivo e o bit de sinal 0. Caso contrrio, o quociente representado em complemento 2, e o bit de sinal 1.

16

Aritmtica Digital
ADIO BCD
Muitos computadores usam representar nmeros decimais. cdigo BCD para

Em BCD, cada dgito decimal representado por um cdigo de quatro bits na faixa de 0000 a 1001. A adio de nmeros binrios tambm pode ocorrer no formato BCD.
Quais cuidados devem ser tomados na adio com esta representao?

Aritmtica Digital
ADIO BCD
Resultado da Soma (de cada dgito) sendo menor ou igual a 9
0101 (5) + 0100 (4) 1001 (9) 0100 0101 (45) + 0011 0011 (33) 0111 1000 (78)

Nestes exemplos, nenhuma das somas dos pares de dgitos excedeu a 9; portanto, nenhum carry foi produzido.

17

Aritmtica Digital
ADIO BCD
Resultado da Soma (de cada dgito) sendo maior do que 9
0110 + 0111 (6) (7) BCD para 6 BCD para 7 cdigo BCD invlido

1101 (13)

O resultado 1101 no existe no cdigo BCD, pois esse um dos seis cdigos de quatro bits proibidos ou invlidos. Sempre que isso ocorrer, o resultado dever ser corrigido adicionandose seis (0110) para pular os cdigos invlidos.

Aritmtica Digital
ADIO BCD
Soma maior do que 9
0110 + 0111 (6) (7) BCD para 6 BCD para 7 soma invlida soma-se 6 para corrigir BCD para 13

1101 (13) 0110 (6) 0001 0011 1 3

Sempre que isso ocorrer, o resultado dever ser corrigido adicionandose seis (0110) para pular os cdigos invlidos.

18

Aritmtica Digital
ADIO HEXADECIMAL
A adio hexadecimal de nmeros realizada basicamente da mesma forma que a adio decimal, desde que se lembre que o maior dgito em hexa F ao invs de 9. Procedimento geral: 1. Some os dois dgitos hexa em decimal, inserindo mentalmente o equivalente decimal para os dgitos maiores que 9. 2. Se a soma for menor ou igual a 15, coloque o dgito hexa. 3. Se a soma for maior ou igual a 16, subtraia 16 e transporte um carry 1 para a posio do prximo dgito.

Aritmtica Digital
ADIO HEXADECIMAL
EXEMPLOS (todos os nmeros esto em hexa): n hexa) 58 + 24 7C 58 + 4B A3

SUBTRAO HEXADECIMAL: os nmeros em hexadecimal so uma forma compacta de representar nmeros em binrio. Assim, podemos subtrair nmeros em hexa usando o mesmo mtodo usado para nmeros binrios (1) converte-se os nmeros em hexadecimal para binrio, (2) coloca-se o subtraendo na sua forma de complemento de 2 e (3) Soma-se minuendo e subtraendo. DICA: Outra forma de obter o complemento de 2 de um nmero em hexa subtrair cada digito hexa de F e, em seguida, somar 1.

Mas... Como implementar essas operaes em circuitos digitais ?

19

Circuitos Aritmticos

Circuitos Aritmticos
Na maioria dos computadores e calculadoras, as operaes aritmticas so executadas na Unidade Lgica e Aritmtica (ULA) que combina portas lgicas e flip-flops (que sero vistos mais adiante na metria) para adicionar, subtrair, multiplicar e dividir nmeros binrios. Sequncia tpica de uma ULA:
(1) A unidade de controle recebe uma instruo determinando que um determinado valor na memria deve ser somado ao valor do acumulador; (2) O valor transferido da memria para o registrado B; (3) Os valores do acumulador e do registrador B so apresentados lgica de adio que executa a soma e armazena o resultado no acumulador; (4) O resultado pode ser mantido no para operaes acumulador subsequentes ou ser transferido para a memria.

Como seria um circuito somador ?

20

Circuitos Aritmticos
Somador Binrio Paralelo

Como se faz o projeto de um Somador Completo (FA) ?

21

22

Em alguns casos, necessrio um circuito que some apenas dois bits de entrada, gerando na sada uma soma e um carry. Esse circuito denominado meio somador (Half Adder H.A.).

23

24

25

26

Propagao do Carry
O somador paralelo analisado tem sua velocidade de operao limitada pelo fenmeno denominado propagao do bit de carry ou ripple do carry. O valor de S3 s estar correto aps os bits C1, C2, C3 e C4 forem gerados sequencialmente.

Propagao do Carry
O somador paralelo analisado tem sua velocidade de operao limitada pelo fenmeno denominado propagao do bit de carry ou ripple do carry. O valor de S3 s estar correto aps os bits C1, C2, C3 e C4 forem gerados sequencialmente. Se cada somador gastar, por exemplo, 40ns para gerar o bit de carry, a soma completa estar correta aps 160ns. O efeito do retardo devido a propagao do bit carry pode ser inaceitvel para um somador com maior nmero de bits. CURIOSIDADE: Para resolver esse problema foi desenvolvida uma estratgia, denominada look-ahead carry, que utiliza um circuito adicional para testar os bits de baixa ordem para antecipar bits de carry nos bits de alta ordem.
O que fazer para implementar a adio de nmeros binrios maiores ???

27

Conexo em cascata de somadores paralelos

Com o circuito 74HC283 possvel implementar o Complemento de 2 !

Complemento de 2
OPERAO: A - B

Complemento 1

28

Adio e Subtrao combinadas


Um circuito somador paralelo pode ser usado para realizar adio ou subtrao dependendo se o nmero B mantido inalterado ou convertido para a sua forma de complemento de 2. No exemplo abaixo, esse circuito somador/subtrator controlado pelos sinais ADD e SUB.

H CIs que j incorporam diversas operaes com nmeros binrios !

Circuito Integrado ALU


Existem vrios CIs disponveis no mercado denominados Unidades Lgicas e Aritmticas (em ingls, Arithmetic / Logic Units ALUs) que, ainda que no tenham toda a capacidade de uma ULA de computador, realizam diversas operaes entre nmeros binrios. A operao especfica realizada pela ULA determinada por um cdigo binrio especfico colocado nas entradas de seleo de funes.

EXEMPLO:
A ULA 74LS382/HC382

Esse CI de 20 pinos opera com dois nmeros de quatro bits na entrada, para gerar uma sada de quatro bits. Essa ULA pode realizar oito operaes diferentes. A operao realizada pela ULA, em qualquer instante de tempo, depende do cdigo aplicado s entradas de seleo.

29

Circuito Integrado ALU

dados

seleo da operao

Bibliografia Bsica
Tocci, R. j., Widmer, N. S.; Sistemas Digitais Princpios e Aplicaes - 10 Ed, Editora Pearson, 2007. Milos Ercegovac; Tomas Lang; Jaime H. Moreno; Introduo aos Sistemas Digitais, Editora Bookman, 2000.

Material da Disciplina
http://www.dee.ufc.br/~arthurp

resultado

30