• Nenhum resultado encontrado

Cap 13

N/A
N/A
Protected

Academic year: 2021

Share "Cap 13"

Copied!
23
0
0

Texto

(1)

CAPÍTULO 13

CIRCUITOS ARITMÉTICOS

Circuitos aritméticos são amplamente usados em computadores, controladores, processadores digitais e em uma grande variedade de circuitos de aplicações específicas. Basicamente, todos os cálculos matemáticos são feitos por circuitos aritméticos. O gerenciamento avançado de endereços e as tomadas de decisões em computadores são dependentes de circuitos aritméticos. Adicionalmente, grande parte do processamento de sinais é feito por circuitos aritméticos, demonstrando assim a importância e a dependência desses circuitos.

13.1 SOMA

Na matemática convencional, quando se faz uma soma, na verdade faz-se um deslocamento na sequência de contagem. Considere o valor 2 na sequência da Figura 13.1.a. Ao se somar 5, há um deslocamento de 5 unidades após o 2, atingindo o valor 7.

0 1 2 3 4 5 6 7 8 9 +5 +5 (a) (b) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1

(2)

Considere agora o valor 8 na sequência da Figura 13.1.b. Da mesma forma, ao se somar 5, deve haver um deslocamento de 5 unidades. Entretanto, após um único deslocamento atinge-se o 9 que é o último valor da sequência decimal. Desta forma há a necessidade de reiniciar a sequência decimal, e portanto gera-se o “vai 1”. Assim, contam-se os 4 valores restantes e atinge-se o 3. Como já houve o “vai 1”, obtém-se de fato o 13, que é o resultado certo e esperado.

13.1.1 Meio Somador

A soma binária obedece ao mesmo princípio, porém no código binário. A Tabela 12.1 apresenta a soma de dois dígitos binários. A soma de A=0 com B= 0, resulta em 0. A soma de A=0 com B= 1, resulta em 1, e o mesmo vale para A=1 com B= 0.

Tabela 13.1 – Meio somador binário. Operandos Soma Vai 1

A B S C

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Por outro lado, a soma de A=1 com B= 1, resulta em 0 e vai 1, como indicado na Figura 13.2. Uma outra maneira de se “enxergar” isso é sabendo que a soma de A=1 com

B= 1, resulta em 2, que vale 10.

1 1 0 1 0 1 +1

Figura 13.2 – Soma binária simples com “vai 1”.

As expressões obtidas da Tabela 13.1 são SABABAB e CAB

resultando então no circuito da Figura 13.3.a e o respectivo símbolo na Figura 13.3.b. A B S C A B S C MS (a) (b)

(3)

13.1.2 Somador Pleno

A soma anterior funciona somente para o dígito menos significativo. Os demais dígitos devem levar em conta também o “vem 1”. Considere a soma indicada na Fig. 13.4.

3 8 + 1 7 5 5

Figura 13.4 – Somador decimal.

A soma das unidades 8 e 7 resulta em 5 e “vai 1”. A soma das dezenas deve levar em conta o “vem 1” das unidades, resultando em 3 + 1 + 1 = 5. Esse mesmo conceito se aplica nas somas no código binário. A Tabela 12.2 apresenta a soma de dois dígitos binários e do “vem 1”.

Tabela 13.2 – Soma binária pleno. Operandos Soma Vai 1

A B Cin S C 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

As expressões da Tabela 13.2 podem ser obtidas como:

Cin B A ABCin Cin B A Cin B A Cin B A S       ) (A B Cin AB ABCin Cin AB Cin B A BCin A C      

resultando então no circuito da Figura 13.5 onde se faz reuso do meio somador anterior, indicados nos retângulos vermelhos.

A B Cin

S

C

(4)

As expressões da Tabela 13.2 também podem ser obtidas como: Cin B A ABCin Cin B A Cin B A Cin B A S       BCin ACin AB ABCin Cin AB Cin B A BCin A C      

resultando agora então no circuito da Figura 13.6. Independente da forma de implementação, este circuito pode ser representado pelo símbolo da Figura 13.7.

A B

Cin

C S

Figura 13.6 – Implementação alternativa de somador binário pleno.

A Cin S C SP B

Figura 13.7 – Símbolo de um somador binário pleno.

13.1.3 Somadores de Múltiplos Bits

A implementação de um somador de vários bits é feito a partir da associação de somadores plenos, como vito na Figura 13.8. De fato essa topologia pode ser usada para qualquer número de bits. Como exemplo, somando-se os valões A3A2A1A0 = 0010 e B3B2B1B0 = 0011 tem-se C3C2C1C0 = 0101. A Figura 13.9 apresenta a representação do subtrator mostrado na Figura 13.8. O somador pleno menos significativo deve ter sua entrada Cin0 ligada em 0.

SP SP SP A0 A1 A2 A3 B2 B1 B0 B3 S0 S1 S2 S3 Cin0 C3 SP

(5)

Somador de 4 Bits A0 A1 A2 A3 B2 B1 B0 B3 C3 Cin0 S0 S1 S2 S3

Figura 13.9 – Somador de 4 bits.

Através da associação de somadores de 4 bits, podem-se obter somadores maiores. A Figura 13.10 ilustra a associação de dois somadores de 4 bits para formar um somador de 8 bits. Observe que o a entrada Cin0 deve ser ligada à terra e a entrada Cin4 deve ser ligada a saída C3.

Somador de 4 Bits

A4 A5 A6 A7 B6 B5 B4 B7 C7 S4 S5 S6 S7

Somador de 4 Bits

A0 A1 A2 A3 B2 B1 B0 B3 S0 S1 S2 S3

Figura 13.10 – Associação de dois somadores de 4 bits.

13.2 SUBTRAÇÃO

Ao contrário da soma, a subtração na matemática convencional é feita por um deslocamento decrescente na sequência de contagem. Considere o valor 6 na sequência da Figura 13.11.a. Ao se subtrair 5, há um deslocamento decrescente de 5 unidades, atingindo o valor 1.

Considere agora o valor 2 na sequência da Figura 13.11.b. Da mesma forma, ao se subtrair 5, deve-se fazer um deslocamento decrescente de 5 unidades. Entretanto, após dois deslocamentos atinge-se o 0. Assim, para continuar o deslocamento decrescente deve-se fazer um empréstimo, para que o 0 passe a valer 10. Assim, pode-se continuar a contar os 3 valores restantes até atingir o 7.

(6)

0 1 2 3 4 5 6 7 8 9 -5 -5 (a) (b) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

Figura 13.11 – Somas em decimal.

13.2.1 Meio Subtrator

A subtração binária obedece ao mesmo princípio, porém no código binário. A Tabela 12.3 apresenta a subtração de dois dígitos binários. Subtraindo-se B=0 de A= 0, resulta em 0 e o mesmo vale para se subtrair B=1 de A= 1. Ao subtrair B=0 de A= 1, tem-se 1. Por outro lado, para subtrair B=1 de A= 0 faz-se necessário pedir um empréstimo (assim o 0 torna-se 10, ou seja 2) e ao subtrair-se 1, tem-se então 1, como indicado na Figura 13.12.

Tabela 13.3 – Meio subtrator binário. Operandos Diferença Empréstimo

A B D E 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 -1 0 1 0 1

(7)

As expressões obtidas da Tabela 13.3 são DABABAB e EAB

resultando então no circuito da Figura 13.13.a e o seu respectivo símbolo na Figura 13.13.b. A B D E A B D E MD (a) (b)

Figura 13.13 – Meio subtrator binário(a) e seu símbolo (b).

13.2.2 Subtrator Pleno

A subtração anterior funciona somente para o dígito menos significativo. Os demais dígitos devem levar em conta também o “empréstimo”. Considere a subtração indicada na Fig. 13.14.

3 2 - 1 7 1 5

Figura 13.14 – Somador decimal.

Não se pode subtrair 7 de 2, portanto deve-se incialmente pedir um empréstimo às dezemas, e o 2 passa a valer 12. Agora subtraindo-se 7, o resultado das unidades torna-se 5. Por outro lado, como houve um empréstimo de 1 pelas dezenas, tem-se 3 - 1 - 1 = 1. Esse mesmo conceito se aplica à subtração binári. A Tabela 12.4 apresenta a subtração de dois dígitos binários e do empréstimo”.

Tabela 13.4 – Subtração binário pleno.

Operandos Diferença Empréstimo

A B Ein D E 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1

(8)

As expressões da Tabela 13.2 podem ser obtidas como: Ein B A ABEin Ein B A Ein B A Ein B A D       ) (A B Ein B A ABCin BEin A Ein B A Ein B A E      

resultando então no circuito da Figura 13.15 onde se faz reuso do meio subtrator anterior, indicados nos retângulos vermelhos.

B A Ein

D

E

Figura 13.15 – Subtrator binário pleno à partir de meio subtratores.

As expressões da Tabela 13.2 também podem ser obtidas :

Ein B A ABEin Ein B A Ein B A Ein B A D       BEin Ein A B A ABCin BEin A Ein B A Ein B A E      

resultando agora então no circuito da Figura 13.16. Independente da forma de implementação, este circuito pode ser representado pelo símbolo da Figura 13.17.

A B

Ein

E D

Figura 13.16 – Implementação alternativa de subtrator binário pleno.

A Ein D P DP B

(9)

13.2.3 Subtratores de Múltiplos Bits

A implementação de um subtrator de vários bits é feito a partir da associação de subtratores plenos, como indicado na Figura 13.17. De fato essa topologia pode ser usada para qualquer número de bits. O subtrator pleno menos significativo deve ter a sua entrada Ein0 ligada em 0. Como exemplo, subtraindo-se B3B2B1B0 = 0010 de A3A2A1A0 = 0011, tem-se C3C2C1C0 = 0001 e E3= 0. A Figura 13.19 apresenta a representação do subtrator mostrado na Figura 13.18. DP DP DP DP A0 A1 A2 A3 B2 B1 B0 B3 D0 D1 D2 D3 E3 Cin0

Figura 13.18 – Subtrator de vários bits.

Subtrator de 4 Bits A0 A1 A2 A3 B2 B1 B0 B3 D0 D1 D2 D3 E3 Ein0

Figura 13.19 – Subtrator de 4 bits.

Através da associação de subtratores de 4 bits, podem-se obter subtratores maiores. A Figura 13.20 ilustra a associação de dois subtratores de 4 bits para formar um subtrator de 8 bits. Observe que o a entrada Ein0 deve ser ligada à terra e a entrada Ein4 deve ser ligada a saída E3. Subtrato de 4 Bits A4 A5 A6 A7 B6 B5 B4 B7 E7 D4 D5 D6 D7 Subtrator de 4 Bits A0 A1 A2 A3 B2 B1 B0 B3 D0 D1 D2 D3

(10)

13.3 SUBTRAÇÃO PELO COMPLEMENTO

A subtração pelo complemento é uma forma de se efetuar a subtração usando apenas circuitos somadores, bastando apenas obter o complemento de um número, que é de fácil implementação em binário.

Em termos decimais também é possível implementar a subtração pelo complemento de 9. Aqui complemento de 9 significa a diferença em relação ao 9. Como exemplo, o complemento de 9 do número 5 é o número 4.

No processo de subtração pelo complemento faz-se o complemento de 9 de cada dígito do subtraendo e o resultado é somado com o minuendo.

No caso de subtraendo menor que minuendo (resultado positivo), o dígito mais significativo gerado, que é um 1, é removido e somado ao digito menos significativo. Como exemplo , veja a soma indicada na Figura 13.21.

3 5 4 - 1 2 6 2 2 8 3 5 4 + 8 7 3 1 2 2 7 + 1 2 2 8 Complemento de 9

Figura 13.21 – Subtração pelo complemento de 9 com resultado positivo.

Por outro lado, se o subtraendo for maior que minuendo (resultado negativo), não há a geração do dígito mais significativo (um 1). Nesse caso, faz-se o complemento de 9 para obter o resultado correto. Como exemplo , veja a soma indicada na Figura 13.22.

3 5 4 - 5 2 1 - 1 6 7 3 5 4 + 4 7 8 8 3 2 Complemento de 9 Complemento de 9 - 1 6 7

Figura 13.22 – Subtração pelo complemento de 9 com resultado negativo.

13.3.1 Representação de Números Binários Negativos

Há basicamente duas formas de se representar números binários sinalizados. Na primeira, chamada se sinal-magnitude, o primeiro digito (digito mais significativo) é usado para representar o sinal. Nesse caso, 0 representa números positivos e 1 representa números negativos. Assim, 00101 representa 5 e 10101 representa -5.

(11)

A segunda forma de representar números sinalizados é através do complemento de 2. Da mesma forma que no caso da representação sinal-magnitude, o bit mais significativo é usado para representar o sinal. Se o número for positivo, o bit mais significativo é 0, e os demais bits representam diretamente o valor do número. Entretanto se o bit mais significativo for 1, os demais bits NÃO representam diretamente o valor do número. Nesse caso, para saber o valor do número, deve-se obter o seu complemento de 2. Para se obter o complemento de um número, basta inverter todos os seus dígitos e somar 1.

Como exemplo, considere o número 5, dado por 00101. O número -5 é obtido invertendo-se os bits do número e somando-se 1, como indicado na Figura 13.23. Desta forma, o número -5 é dado por 11011.

Invertem-se os bits 0 0 1 0 1 1 1 0 1 0 +1 1 1 0 1 1 Soma-se 1 5 -5

Figura 13.23 – Obtenção do complemento de 2.

Da mesma forma, para se determinar o valor de um número negativo, deve-se repetir o processo anterior. Assim, como indicado na Figura 13.24, o número negativo 11011, após processo de inversão dos bits e adição de 1, resulta em 00101, que vale 5. Desta forma, sabe-se então que 11011 vale -5.

Invertem-se os bits 1 1 0 1 1 0 0 1 0 0 +1 0 0 1 0 1 Soma-se 1 ? 5

Figura 13.24 – Determinação do valor de um número negativo em complemento de 2.

Nos exemplos anteriores foram utilizados 5 bits, sendo 1 para o sinal e 4 bits que representam o valor efetivo, em complemento de 2. Os números positivos estão na faixa de 00000 (que vale 0) até 01111 (que vale 15). Por outro lado, os números negativos estão na faixa de 10001 (que vale -15) até 11111 (que vale -1).

(12)

13.3.2 Aritmética em Complemento de 2

As operações de soma e subtração em complemento de 2 são executadas de forma bem simples, pois são executadas sempre como somas. Considere, para os exemplos a seguir, que os números tenha 5 bits.

A Figura 13.25 ilustra a operação 7+3, onde os dois operandos são positivos. 0 0 1 1 1 + 0 0 0 1 1 0 1 0 1 0 (7) (3) (10)

Figura 13.25 – Soma de dois operandos positivos em complemento de 2.

A Figura 13.26 ilustra a operação 7-3, que pode ser visto como sendo 7+(-3). Desta forma, basta somar 7 com o complemento de 2 do número 3. O resultado é um número positivo, dado pelo fato de ter ocorrido a geração de um bit mais significativo. Nesse caso, para ter o número correto, basta fazer o descarte o digito mais significativo que foi gerado.

0 0 1 1 1 + 1 1 1 0 1 1 0 0 1 0 0 (7) (-3) (4) Invertem-se os bits 0 0 0 1 1 1 1 1 0 0 +1 1 1 1 0 1 Soma-se 1 3 -3 Descarta-se

Figura 13.26 – Complemento de 2 do número 3 e operação 7+(-3).

A Figura 13.27 ilustra a operação 3-7, que pode ser visto como sendo 3+(-7). Desta forma, basta somar 3 com o complemento de 2 do número 7. O resultado é um número negativo, visto que não houve a geração de um bit mais significativo. Assim, para saber qual é número negativo do resultado, basta fazer o processo de complemento de 2, onde se obtém o valor 4. Isto significa que o resultado, 11100 vale -4.

0 0 0 1 1 + 1 1 0 0 1 1 1 1 0 0 (3) (-7) (-4) Invertem-se os bits 0 0 1 1 1 1 1 0 0 0 +1 1 1 0 0 1 Soma-se 1 7 -7 0 0 0 1 1 +1 0 0 1 0 0 Invertem-se os bits Soma-se 1 4

(13)

13.3.3 Circuito Somador-Subtrator

A grande vantagem da subtração pelo complemento é o fato de se efetuar a subtração por meio de circuitos somadores. A Figura 13.28 ilustra a forma de se implementar um somador/subtrator em complemento de 2. Op Somador de 4 Bits A0 A1 A2 A3 B0 B1 B2 B3 C3 Cin0 S0 S1 S2 S3

Figura 13.28 – Circuito somador/subtrator em complemento de 2.

Para melhor entender esse circuito, observe a tabela de operação do ou-exclusivo, apresentado na Tabela 13.5. Observe que se a entrada X for 0, a saída Z fica igual à outra entrada (entrada Y). Porém se a entrada X for 1, a saída Z fica igual ao inverso da outra entrada (entrada Y). Em outras palavras, a porta ou-exclusiva funciona como um inversor controlado.

Tabela 13.5 – Tabela Verdade do Ou-Exclusivo.

X Y ZXY

0 0 0

0 1 1

1 0 1

1 1 0

Retornando à Figura 13.28, se a linha Op for igual a 0, os sinais das entradas

B3B2B1B0 não são invertidos pelas portas Ou-Exclusivo e são aplicados no somador, e ao mesmo tempo, a linha Cin0 recebe 0. Por outro lado, se a linha Op for igual a 1, os sinais das entradas B3B2B1B0 são invertidos pelas portas Ou-Exclusivo e são aplicados no somador, e ao mesmo tempo, a linha Cin0 recebe 1. Como visto, a inverter e somar 1 corresponde à inversão de um número em complemento de 2!

(14)

13.3.4 Excesso de Capacidade

Como visto, na representação de completo de 2, um bit é utilizado para o sinal e os demais bits representam o valor efetivo. Como exemplo de 5 bits, os números positivos estão na faixa de 00000 (que vale 0) até 01111 (que vale 15). Por outro lado, os números negativos estão na faixa de 10001 (que vale -15) até 11111 (que vale -1).

Assim, ao se somar 9 e 8, tem-se, como indicado na Figura 13.29, um número negativo como resultado. Isso ocorre porque o resultado correto, 17, está além da capacidade de representação de números positivos com 5 bits, que é 15.

0 1 0 0 + 0 1 0 0 1 0 0 0

Negativo

Figura 13.29 – Soma de dois números positivos com resultado negativo.

Uma possível solução para esse problema é aumentar o número de bits. Entretanto, independente da quantidade de bits, torna-se necessário um mecanismo de indicar toda vez que a operação aritmética ultrapassar a capacidade de representação, também chamado de estouro de campo. As condições que causam estouro de campo são:

 Somar de dois números positivos com resultado negativo,

 Somar de dois números negativos com resultado positivo,

 Subtrair um número negativo de um número positivo com resultado negativo,

 Subtrair um número positivo de um número negativo com resultado positivo.

Como visto, um número é negativo se o seu digito mais significativo for 0, e positivo se for 1. Considerando Op=0 para soma e Op=1 para subtração (como previamente usado na Figura 13.28), as operações que acima listadas que causam estouro de campo, ou

overflow, estão listadas na Tabela 13.6.

Tabela 13.6 – Condições para estouro de campo.

An Bn Sn Op

0 0 1 0

1 1 0 0

0 1 1 1

1 0 0 1

Essas condições podem ser traduzidas em um circuito lógico dado por:

Op S B A Op S B A Op S B A Op S B A Campo de Estouro3 3 33 3 33 3 33 3 3

(15)

13.4 ARITMÉTICA EM BCD

No código BCD os números estão limitados à faixa de 0 a 9 e consequentemente os resultados das operações BCD estão limitadas a essa faixa. Assim, algumas considerações devem ser feitas com relação ao resultado de uma soma, quando for maior que 9:

A. Resultado entre 10 e 15: Ao se somar os números BCD 8 e 3 tem-se um resultado

não BCD, como indicado pela Figura 13.30. 1 0 0 0

+ 0 0 1 1

1 0 1 1 Não é BCD

Figura 13.30 – Soma de dois números BCD com resultado não BCD.

A correção é feita adicionando-se 6 (0110) ao resultado anterior, como indicado na Figura 13.31. O valor final agora é 11, ou seja, obteve-se 1 como resultado da soma e o vai 1, que é o valor correto da soma entre 8 e 3.

1 0 1 1 + 0 1 1 0 1 0 0 0 1

1 1

Figura 13.31 – Correção de soma de dois números BCD com resultado não BCD.

B. Resultado entre 16 e 18: Ao se somar os números BCD 8 e 9 tem-se um resultado

BCD, porém não é correto, como indicado pela Figura 13.32.

1 0 0 0 + 1 0 0 1 1 0 0 0 1

1 Vai 1

Figura 13.32 – Soma de dois números BCD com resultado BCD errôneo.

Observe que houve a geração do Vai 1, indicando um erro. Novamente a correção é feita adicionando-se 6 (0110), como no caso anterior. A Figura 13.33 ilustra a correção através da adição de 6. O resultado obtido, e correto, é 7. Como já houve o Vai 1, o resultado final da soma de 8 e 9 é 17.

(16)

0 0 0 1 + 0 1 1 0 0 1 1 1

7

Figura 13.33 – Correção de soma de dois números BCD com resultado BCD errôneo.

A Tabela 13.7 lista as possíveis combinações de saída de um somador tendo como entradas dois valores BCD.

Tabela 13.7 – Possíveis resultados de soma de dois números BCD.

S3 S2 S1 S0 C3 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 x x x x 1

As combinações indicadas em azul correspondem a um resultado entre 10 e 15 e portanto devem ser corrigidas. A expressão dessas condições, obtida por mapas de Karnaugh, é dada por:

S3S2 S1S0 00 01 11 10 00 0 0 1 0 01 0 0 1 0 11 0 0 1 1 10 0 0 1 1 NBS3S2S3S1S3(S2S1)

(17)

A condição indicada em verde correspondem a um resultado BCD não válido e portanto deve ser corrigida. A Figura 13.34 apresenta o circuito completo para a operação de soma em BCD, incluindo a correção, quando necessária.

Somador de 4 Bits Sem Conexão S0 S1 S2 S3 Somador de 4 Bits A0 A1 A2 A3 Cin0 B0 B1 B2 B3 C3

Figura 13.34 – Circuito de correção de soma de dois números BCD.

Essa estrutura forma um somador BCD, isto é, o somador de um dígito BCD. Para se implementar a soma de vários dígitos BCD, basta cascatear outros somadores, onde C3 de um somador é ligado ao Cin do somador seguinte. O Cin0 do dígito BCD menos significativo deve ser ligado ao terra.

13.4.1 Subtração BCD

O processo de subtração BCD se torna um pouco mais complexo, especialmente se for considerada a possibilidade de resultados negativos. A subtração, considerando somente números BCD positivos, por ser feita usando o circuito da Figura 13.35. Nesse caso a correção é feita pela adição de 1010. Para se implementar a subtração de vários dígitos BCD, basta cascatear outros subtratores, onde E3 de um subtrator é ligado ao Ein do subtrator seguinte. O Ein0 do dígito BCD menos significativo deve ser ligado em 1, pois o 0 nesse caso significa pedido de empréstimo.

(18)

Somador de 4 Bits Sem Conexão D0 D1 D2 D3 Somador de 4 Bits A0 A1 A2 A3 Ein0 E3 B0 B1 B2 B3

Figura 13.35 – Circuito de correção de subtração de dois números BCD positivos.

Como exemplo de operação, considere a subtração 33 – 17 = 16. No caso do dígot menos significativo, deve-se fazer 3 – 7 = 6 e um “pede emprestado1”. Assim,

A3A2A1A0=0011 e B3B2B1B0=0111. Portanto o somador recebe 0011 e 1000 e Ein0=1. Desta forma, a saída do primeiro somador é dada por 0011+1000+1=1100. Como E3 vale 0, a

saída do segundo somador é dada por 1100+1010=0110, que é o resultado correto. Como mencionado, há um pede empréstimo pois Ein0=1.

13.5 SOMA RÁPIDA

A Figura 13.36 apresenta novamente o somador binário de 4 bits, da Figura 13.8.

SP SP SP A0 A1 A2 A3 B2 B1 B0 B3 S0 S1 S2 S3 Cin0 C3 SP

Figura 13.36 – Somador binário de 4 bits.

Considere, para esse circuito, a soma de A3A2A1A0=1101 e B3B2B1B0=0011. A soma de A0=1 e B0=1 resulta em S0=0 e vai 1. Agora a soma de A1=0 e B1=1 e o vem 1 do bit anterior, resulta em S1=0 e novamente vai 1. Esse processo continua até a soma de A3=1 e

(19)

B7=0 com o vem 1 do bit anterior, resultando em S3=0. Assim, percebe-se que o resultado de A3=1 e B3=0 depende do vem 1 do bit 2, esse depende do vem 1 do bit 1, que por sua vez depende do bit 0. Desta forma, a soma fica demorada e dependente dos atrasos somados de todos os elementos do somador. Isto se torna mais agravante para circuitos maiores. Esse atraso pode comprometer o desempenho e as aplicações do somador, e desta forma torna-se necessário um mecanismo mais rápido de soma. Esse somador é conhecido como ripple

adder.

Como já apresentado, a expressão do vai 1 é dada por CABCin(AB). O elemento AB é gerado se ambos A e B forem 1 ao mesmo tempo, e portanto é chamado de termo gerado – G. Em outras palavras, se A e B forem 1, há a geração do vai 1.

O elemento Cin(AB) surge se A ou B for 1, desde que tenha ocorrido o vem 1 do termo anterior. Assim, esse termo propaga o vem 1 do termo anterior se A ou B for 1, e portanto é chamado de termo propagado – P. Em outras palavras, se A ou B for 1, há a propagação do vai 1.

Desta forma a expressão do vai 1 pode ser escrita como CGCinP onde GAB

e PAB. Seguindo esse conceito, a Figura 13.5 pode ser refeita como a Figura 13.37.

A B Cin S P G

Figura 13.37 – Somador binário pleno com sinais G e P.

Assim, para um somador de 4 bits, tem-se:

C0=G0 C1=G1+G0P1

C2=G2+G1P2+G0P1P2

C3=G3+G2P3+G1P2P3+G0P1P2P3

Observe agora que C3 pode ser implementada sob a forma de circuito combinacional, como mostrado na Figura 13.38. Desta forma, o atraso para a geração de qualquer vai 1, depende somente de um circuito combinacional de soma de produtos. Esse somador rápido de avanço de vai 1, é conhecido como look ahead carry.

(20)

A0 B0 Cin0 S0 P0 G0 A1 B1 Cin1 S1 P1 G1 A2 B2 Cin2 S2 P2 G2 A3 B3 Cin3 S3 P3 G3 C1 C2 C3 C0

Figura 13.38 – Somador binário look ahead carry.

O somador look ahead carry é mais rápido que o somador simples, entretanto o preço pago é o aumento da quantidade de portas lógicas empregadas na implementação do somador. Assim, se velocidade é o fator crítico, usa-se o somador look ahead carry, por outro lado se área for a preocupação principal, usa-se o somador simples. Pode-se também fazer uma solução de compromisso, em que se usa blocos de somadores menores, usando internamente look ahead carry, para formar somadores maiores.

13.6 UNIDADE LÓGICA E ARITMÉTICA

Além das operações de soma e subtração (em binário puro e em BCD), há ainda várias outras operações aritméticas. Adicionalmente há operações lógicas como e, ou,

inversão, ou-exclusivo, coincidência e outras. Muitos micro-controladores, processadores e

uma grande variedade de sistemas digitais utilizam muitas operações lógicas e aritméticas. Assim, a abordagem mais adequada é a utilização de um bloco dedicado à essas operações, chamado de Unidade Lógica e Aritmética – ULA.

Como exemplo, a Figura 13.39 apresenta uma ULA, baseada no circuito integrado 74181, e a Tabela 13.8 apresenta as suas operações lógicas e aritméticas. A saída A=B torna ativa toda vez que as entradas A e B forem iguais. A saída G é o vai 1 gerado e a saída P é o

vai 1 propagado.

Deve-se observe que o símbolo + na Tabela 13.8 significa a operação ou e o símbolo

(21)

A0 A1 A2 A3 B0 B1 B2 B3 S0 S1 S2 S3 C3 A=B G P Cin0 M F3F2F1F0

Figura 13.39 – Unidade Lógica e Aritmética. Tabela 13.8 – Operações da ALU 74181.

Lógica Aritmética M=1 M=0 F3 F2 F1 F0 Cin=1 Cin=0 0 0 0 0 SA SA SAmais1 0 0 0 1 SAB SAB S(AB)mais1 0 0 1 0 SAB SAB S(AB)mais1 0 0 1 1 S0 S1 S0

0 1 0 0 SAB SAmais AB SAmaisABmais1 0 1 0 1 SB S(AB)maisAB S(AB)maisABmais1 0 1 1 0 SAB SAmenosBmenos1 SAmenosB

0 1 1 1 SAB SABmenos1 SAB

1 0 0 0 SAB SAmaisAB SAmaisABmais1 1 0 0 1 SAB SAmaisB SAmaisBmais1 1 0 1 0 SB S(AB)maisAB S(AB)maisABmais1 1 0 1 1 SAB SABmenos1 SAB

1 1 0 0 S1 S(AmaisA)SHIFT SAmaisAmais1

1 1 0 1 SAB S(AB)mais A S(AB)maisAmais1 1 1 1 0 SAB S(AB)mais A S(AB)maisAmais1

1 1 1 1 SA SAmenos1 SA

13.7 CIRCUITOS ARITMÉTICOS UTILIZANDO VHDL

(22)

11.4 EXERCÍCIOS

1. Execute manualmente as operações a seguir, em binário a. 11010110 + 00101010

b. 11010110 + 10101010 c. 11010110 – 00101010 d. 11010110 – 10101010 e. 10101010 – 11010110

2. Considerando número sinalizado me complemento de 2, execute as operações a seguir: a. 00110101 + 00010111

b. 00110011 + 10010010 c. 00110101 – 00010111 d. 00110011 – 10010010 e. 10010010 – 00110011

3. Execute as seguintes operações usando o menor número de dígitos possível. Considere números negativos em complemento de 2.

a. 26 – 14 b. 14 – 26 c. 31 – 7 d. (–13) + 11 e. (–12) – 15 f. (–17) – (–1)

4. Qual é a faixa de números, em complemento de 2, usando 12 bits?

5. Um operando de oito bits é 11001010. Qual é a faixa de valores do outro operando, em complemento de 2, de modo que não haja overflow?

6. Considerando o tempo de propagação de portas lógicas simples igual a 1nS, determine o tempo de propagação de um meio-somador. Qual é o atraso de um somador pleno? 7. Considerando os valores anteriores, qual é o tempo de propagação de um somador de 8

bits?

8. Qual é o tempo de propagação de um somador de 8 bits usando a técnica de look ahead

carry considerando os tempos anteriores?

9. Qual é o tempo de propagação de um somador de 8 bits, formado pelo cascateamento de dois somadores de 4 bits da Figura 13.38. Considere os tempos anteriores.

10. As linhas de controle de uma ULA são F3F2F1F0 = 0110. Se as linhas de entrada de dados são A = 1010 e B = 0110, quais os valores das saídas para todas as combinações de M e Cin.

(23)

12. Utilizando duas ULAs, implemente um somador de 8 bits usando a técnica de look

ahead carry.

13. Utilizando ULA, implemente um somador/subtrator BCD8421.

Referências

Documentos relacionados

cias laboratoriais da mesma maneira que trato os resultados das minhas aulas, que também são um laboratório", afirma Eric Mazur, professor de Física na Universidade de

A persuasão comportamental foi exercida através do ensaísmo e do tratadismo de seus adeptos; temas como a relação entre ciências naturais e sociais, o papel da Tradição

Acerca da intolerância com a homossexualidade, em uma obra retratando suas experiên- cias com LGBTI´s em viagens pelo continente africano, do Cabo ao Cairo, o pesquisador espa-

Em seu trabalho, Marina Murta e Nathalia Gonçalves evocam o nome de um dos mais polêmicos artistas do século XX, que participou do despontar da Arte Moderna e de todas as

Engenharia de Cardápio. Segundo Rapp, o topo ou o canto superior direito da página 

Varr edura TCP Window ( cont inuação) ACK- win manipulado Não Responde ACK- win manipulado ICMP Tipo 3 Firewall Negando Firewall Rejeitando Scanner de Porta... Var r edur a FI N/

Da mesma forma, O Filho de Deus teve uma existência com Deus, interagiu com Deus, porem como eu e você Ele não tinha um corpo como o temos hoje, mas quando chegou o momento do Filho

Concentração de determinada substância, acima da qual podem ocorrer alterações prejudiciais à qualidade do solo e da água subterrânea VALOR DE PREVENÇÃO -