Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs...

18
Sistemas Digitais Circuitos Aritméticos e Representação de Números com Sinal João Paulo Baptista de Carvalho (Prof. Auxiliar do IST) [email protected]

Transcript of Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs...

Page 1: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Sistemas Digitais Circuitos Aritméticos e

Representação de Números com Sinal

João Paulo Baptista de Carvalho (Prof. Auxiliar do IST) [email protected]

Page 2: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 2

Circuitos Aritméticos  Circuitos aritméticos são aqueles que realizam

operações aritméticas sobre números binários

 O circuito aritmético mais simples é o que soma números de apenas 1 bit. Basta partir da conhecida tabela da soma para o obter:

XY Soma Transporte 00 0 0 01 1 0 10 1 0 11 0 1

X+Y X=0 X=1 Y=0 0 1 Y=1 1 10

Page 3: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 3

Semi-somador (half-adder)  Da tabela retira-se o seguinte circuito, que é

conhecido como semi-somador:

AB Soma (S) Transporte

(Cout) 00 0 0 01 1 0 10 1 0 11 0 1

 O nome semi-somador vem do facto de este circuito não permitir somar o transporte que venha de bits de menor peso

Page 4: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 4

Somador Completo (full-adder)   A um somador de 1 bit que tenha em conta o transporte

de somas anteriores chama-se somador completo: A B Cin S Cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1 1 1 1 1 1

Semi-somadores

Page 5: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 5

Somadores   Assumindo blocos de somadores completos, é possível

construir somadores de n bits

  Exemplo: Um somador de 4 bits

0

3 0

3 0

3 CI CO

Σ

P

Q S

Símbolo de um Somador Completo de 4 bits:

Somador Completo

A0 B0 A1 B1 A2 B2 A3 B3

ci co

S3 S2 S1 S0

Page 6: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 6

Somas em BCD   As operações aritméticas em BCD podem ser úteis

quando se têm números em BCD sobre os quais se pretende fazer pequenas operações que não justificam a conversão para binário

  A soma em BCD é feita dígito a dígito. Por exemplo, a soma dos dígitos 3 e 5 dá o dígito 8:

As duas parcelas são BCD, assim como o resultado

  Mas se a soma for superior a 9, então o resultado obtido já não é BCD. Por exemplo, 7 + 5 = 12:

1000 1001

10001

0111 0101 1100

  Em certos casos há mesmo transporte 8 + 9 = 17:

0011 0101 1000

Page 7: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 7

Somas em BCD (II)   Consegue-se corrigir o resultado obtido somando 6 (0110) ao

resultado nas seguintes situações: 1.  O resultado é maior que 9

2.  Existe um transporte na soma 0 3 0

3 0 3 CI CO

Σ P

Q S

0 3 0

3 0 3 CI CO

Σ P

Q S

& ≥1

&

≥1 0 0

A

B

Transporte anterior

Transporte para o algarismo seguinte

A + B

0

Page 8: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 8

Representação e Aritmética de Números com Sinal

  A representação de números inteiros tem de ter em conta que os números podem ser positivos, negativos ou o número 0

  Uma das alternativas é a representação por módulo e sinal, em que o bit mais significativo indica o sinal:   Se esse bit for 1 o número é negativo;   Se for 0 é positivo

  Exemplo para números de 4 bits: Representação Número

representado Representação Número representado

0000 0 1000 -0 0001 +1 1001 -1 0010 +2 1010 -2 0011 +3 1011 -3 0100 +4 1100 -4 0101 +5 1101 -5 0110 +6 1110 -6 0111 +7 1111 -7

Page 9: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 9

Representação por módulo e Sinal

  Inconvenientes:   Duas representações diferentes para o zero;

  O módulo e o sinal são processados de forma diferente;

  É necessário escolher a operação a realizar de acordo com a operação desejada e o sinal dos números envolvidos.

  Por exemplo:   Se pretendermos fazer a operação (+5) + (-3) o que é realmente

necessário fazer é a subtracção 5-3 ficando o sinal positivo;   Se o problema for realizar (-5) + (+3) então há que realizar também uma

subtracção mas do módulo do número negativo menos o do positivo sendo o resultado um número negativo.

  Obviamente tudo isto complica a realização das operações e consequentemente dos circuitos que tenham que realizar essas operações

Page 10: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 10

Representação em Complemento para 2   Chama-se complemento para 2n de um número x de n bits, ao

resultado da operação 2n – x   Por exemplo, o complemento para 2 de 0110 é:

10000 - 0110 1010

  Se um número x tem n bits, então o seu complemento para 2 é representado por n bits

  O complemento para 2 do complemento para 2 de um número x, é x:   2n - (2n – x) = x

  Formas alternativas de encontrar o complemento para 2 de um número x:   Inverter todos os bits de x e somar 1 ao resultado

  0110 1001 1001+1 = 1010   Manter todos os 0’s menos significativos e ainda o primeiro 1 de x, e

inverter os restantes bits mais significativos   0110 xx10 1010

Page 11: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 11

Representação de números com sinal em Complemento para 2

  Na representação de números com sinal em complemento para 2, o bit mais significativo do número também indica o sinal:   Se for 1 o número é negativo;

  Se for 0 é positivo.

  Na representação de números com sinal em complemento para 2:   Um número positivo é representado pelo seu módulo;

  Um número negativo é representado pelo complemento para 2 do seu módulo.

  Por exemplo:   O número +6 é representado em notação de complemento para 2 com 4 bits por

0110;   O número -6 é representado por 1010:

  6 = 0110 ► complementando bit a bit, 1001 ►1001 +1 = 1010 = -6

  Repare-se que ao calcular o complemento para 2 de um número positivo de n bits se obtém automaticamente o bit de sinal a 1

Page 12: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 12

Representação de números com sinal em Complemento para 2 (II)

  Os 16 números possíveis de representar em complemento para 2 com 4 bits são os seguintes:

  O intervalo representado é [-2n-1, +2n-1-1]   Com 4 bits: [-8,+7]

  A razão da assimetria entre o total de número de positivos e o de negativos radica na necessidade de representar o ‘0‘ e de não ter duas representações para o ‘0’

Page 13: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 13

Representação de números com sinal em Complemento para 2 (III)

  Com esta representação, pode operar-se sobre os números sem ter que tomar em consideração qualquer particularidade relacionada com o sinal de cada um deles. Exemplos:

Soma de 2 positivos

Soma de 1 positivo com 1 negativo com resultado negativo

Soma de 1 positivo com 1 negativo com resultado positivo

(+2) + (+5) = 7 0010 0101 0111

Soma de 2 negativos

1110 1011 11001

(-2) + (-5) = -7

(+5) + (-3) = +2 0101 1101 10010

(+2) + (-5) = -3 0010 1011 1101

Ignora-se o transporte porque sai dos 4 bits utilizados na representação

Page 14: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 14

Representação de números com sinal em Complemento para 2 (IV)

  Quando a operação envolve 2 números com o mesmo sinal, é possível que o resultado não possa ser representado com o número de bits disponível. A esta situação chama-se OVERFLOW

  Por exemplo, 4 + 5 = 9, que não é representável com 4 bits em notação de complemento para 2 com sinal:

O resultado é incoerente pois é um número negativo: (-7)

0100 0101 1001

  O overflow nunca ocorre em operações entre números com sinal contrário.

  Prova-se que o overflow ocorre sempre que o transporte do último bit é diferente do transporte do bit anterior

01

Page 15: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 15

Somador/Subtractor   Sabendo que:

1.  Realizar a subtracção x-y é o mesmo que realizar a soma x + (-y);

2.  Trocar o sinal a um número representado em notação de complemento para 2 significa, na prática, fazer o complemento para 2 desse número, então a subtracção pode ser feita a partir de um somador.

  Então, usando as propriedades do XOR, e a possibilidade de usar o Cin de um somador para somar 1 aos dois números, é possível realizar um circuito somador/subtractor:

0 3 0

3 0 3 CI CO

Σ P

Q S

=1

=1

=1

=1

A

B

Resultado

Controlo Controlo Operação

0  A + B#1  A - B

Page 16: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 16

Comparadores   Tal como o nome indica, um comparador permite

comparar 2 números binários P e Q de n bits, indicando se P>Q, P<Q ou P=Q.

  Exemplo, um comparador de 4 bits:

  O circuito pode ser ligado em cascata, para realizar comparações entre números de n > 4 bits (é essa a utilidade das entradas >,=,< presentes no lado esquerdo do circuito).

Page 17: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 17

Alguns CI’s   74LS283: Somador de 4 bits rápido. Usa internamente

um “carry look-ahead” – trata-se de um somador de maior rapidez, conseguida à custa de um maior número de portas lógicas.

  74LS85: Comparador de 4 bits.

74LS283 74LS85

Page 18: Sistemas Digitais - Técnico Lisboa - Autenticação · PDF fileAs operações aritméticas em BCD podem ser úteis quando se têm números em BCD sobre os quais se pretende fazer

Uke2010 SD - Circuitos Aritméticos 18

Bibliografia  Arroz,G., Monteiro,J.C., Oliveira,A.,

“Arquitectura de Computadores, dos Sistemas Digitais aos Microprocessadores”, Secções 5.1, 5.2, 5.3, 2ª Edição, 2009

 Mano,M., Kime,C. – “Logic and Computer Design Fundamentals”, Prentice Hall, secções 3.8 a 3.10 e 3.13