somador carry digital

Upload: souzabosco50

Post on 08-Jul-2015

301 views

Category:

Documents


0 download

TRANSCRIPT

Eletrnica DigitalProf. Arthur Braga

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

Unidades Lgicas Aritmticas (ULAs)

1

Aritmtica Binria

Aritmtica DigitalOs 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.

2

Aritmtica DigitalAdio BinriaA adio de dois nmeros binrios realizada exatamente da mesma forma que a adio de nmeros decimais.

1 3 + 4carry ou vai-um

LSD

7 6 13

6 1 7

8

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 DigitalAdio BinriaEsses 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

3

SOMA LGICA (operador OR) SOMA ARITMTICA !

Aritmtica DigitalAdio BinriaNo 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.

4

Aritmtica DigitalRepresentao de Nmeros com SinalNos 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 DigitalRepresentao de Nmeros com SinalO 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!

5

Aritmtica DigitalRepresentao de Nmeros com SinalEmbora 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 1O 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 0Nmero binrio original Complemento de 1

Aritmtica DigitalForma do Complemento de 2O 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

6

Aritmtica DigitalRepresentao na Forma do Complemento de 2 RepresentaO 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 DigitalRepresentao 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 ?

7

Aritmtica DigitalRepresentao na Forma do Complemento de 2 Representa

Aritmtica DigitalRepresentao na Forma do Complemento de 2 RepresentaSempre 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 ?

8

Aritmtica DigitalAdio no Sistema de Complemento 2

Aritmtica DigitalAdio no Sistema de Complemento 2

9

Aritmtica DigitalAdio no Sistema de Complemento 2

Aritmtica DigitalAdio no Sistema de Complemento 2

10

Aritmtica DigitalAdio 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 DigitalSubtrao no Sistema de Complemento 2

Aritmtica DigitalSubtrao no Sistema de Complemento 2

13

Aritmtica DigitalSubtrao 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 DigitalCrculo de Nmeros e Aritmtica BinriaO 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 DigitalMultiplicao de Nmeros Binrios

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

Aritmtica DigitalMultiplicao no Sistema de Complemento 2CASO 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 DigitalMultiplicao no Sistema de Complemento 2CASO 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 DigitalDiviso BinriaO 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 DigitalADIO BCDMuitos 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 DigitalADIO BCDResultado da Soma (de cada dgito) sendo menor ou igual a 90101 (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 DigitalADIO BCDResultado da Soma (de cada dgito) sendo maior do que 90110 + 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 DigitalADIO BCDSoma maior do que 90110 + 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 DigitalADIO HEXADECIMALA 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 DigitalADIO HEXADECIMALEXEMPLOS (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 AritmticosNa 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 AritmticosSomador 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 CarryO 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 CarryO 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 2OPERAO: A - B

Complemento 1

28

Adio e Subtrao combinadasUm 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 ALUExistem 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 BsicaTocci, 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 Disciplinahttp://www.dee.ufc.br/~arthurp

resultado

30