Anda di halaman 1dari 61

1

Tiago de Oliveira

Circuitos Aritméticos Combinacionais

2

Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude Outros Blocos Aritméticos

Tópicos deste Módulo




3

Uma forma intuitiva de implementação de operações aritméticas é através do uso de tabelas-verdade descrevendo tais operações. Uma vez definida a tabela-verdade com as operações aritméticas, basta implementar as respectivas funções lógicas. Esta estratégia não é eficiente quando os vetores de entrada (operandos A e B, por exemplo), têm um grande número de bits, pois sabe-se que o tamanho da tabela- verdade aumenta exponencialmente com o número de sinais de entrada

Projeto de Circuitos Aritméticos


4

– Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude Outros Blocos Aritméticos

Tópicos deste Módulo

5

Somador – Half-Adder (Meio Somador)

Solução: Full-Adder (Somador Completo)

0

1

0

1

1

1

0

0

+

S = A Ө B A . B C out =
S
=
A Ө B
A . B
C out =

C out

0110

0000

0101

1011

SBA

– Problema: 1 0 0 0 1
– Problema:
1
0
0
0
1

6

Full-Adder (Somador Completo)

SCarr

y

0000

1010

1000

0110

10001

01101

01011

11111

ZX

Y

0

0

1

1

       

+

7

Full-Adder (Somador Completo) (continuação)

+ 7 Full-Adder (Somador Completo) (continuação) SCarryZX Y 0000 0 1010 0 1000 1 0110 1
SCarryZX Y 0000 0 1010 0 1000 1 0110 1 X Y Z 10001 +
SCarryZX
Y
0000
0
1010
0
1000
1
0110
1
X
Y Z
10001
+
01101
X
Y Z
+
01011
X
Y Z
+
11111
X
Y Z

8

Full-Adder (Somador Completo) (continuação)

+

S = X Y Z + X Y Z X Y Z + X Y
S = X Y Z + X Y Z
X Y Z + X Y Z
X Y Z + X Y Z + X Y Z + X Y Z
X
Y Z
+
X
Y Z
+
X
Y Z
+
X Y Z
X Y Z X Y Z + X Y Z X Y Z + X Y
X Y Z X Y Z + X Y Z X Y Z + X Y
X Y Z X Y Z + X Y Z X Y Z + X Y
X Y Z X Y Z + X Y Z X Y Z + X Y

SCarryZX

0000

01011

01101

0110

11111

1010

1000

10001

Y

0

0

1

1

9

Full-Adder Utilizando Dois Half-Adder

9 Full-Adder Utilizando Dois Half-Adder

10

Somador Paralelo de 4 bits – Também conhecido como Somador Ripple Carry
Somador Paralelo de 4 bits
Também conhecido como Somador Ripple Carry

11

Somador com Vai-Um Antecipado

A soma e o carry podem ser computados da seguinte

Também conhecido como Carry Look-Ahead Adder Utilização de duas novas variáveis:

P i = A i Ө B i (propagação do vai-um)

(geração do vai)

C i+1 = G i + P i C i

S i = P i Ө C i

G i = A i B i

forma:



12

Somador com Vai-Um Antecipado (continuação)

C 3 = G 2 + P 2 C 2 = G 2 + P 2 (G 1 + P 1 C 1 ) = G 2 + P 2 G 1 + P 2 P 1 C 1 C 4 = G 3 + P 3 C 3 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 C 1

Expandindo a equação do carry, temos:

C 1 é o carry inicial (entrada) C 2 = G 1 + P 1 C i



a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G
a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G
a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G
a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G
a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G
a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G
a equação do carry, temos: C 1 é o carry inicial (entrada) C 2 = G

13

Look-ahead carry

generator

Gerador do Carry Look-Ahead

13 Look-ahead carry generator Gerador do Carry Look-Ahead

14

Somador Carry Look-Ahead de 4 bits
Somador Carry Look-Ahead de 4 bits

15

Comparação de Custo/Desempenho

Levaremos em consideração duas métricas:

Comparação de custo e desempenho entre:

Caminho Crítico Quantidade de portas lógicas gasta

Somador Carry Look-Ahead Somador Ripple Carry



16

Caminho Crítico do Somador Ripple Carry: 15 portas lógicas

Caminho Crítico

Circuito Lógico do Somador Completo (FA)
Circuito Lógico do Somador Completo (FA)

17

Look-ahead carry generator

Caminho Crítico do Somador Carry Look-Ahead: 4 portas lógicas

Caminho Crítico (continuação)

Carry Look-Ahead: 4 portas lógicas Caminho Crítico (continuação) 1 B 8 P 8 A 8 S
Carry Look-Ahead: 4 portas lógicas Caminho Crítico (continuação) 1 B 8 P 8 A 8 S
1 B 8 P 8 A 8 S 8 C 8 G 8 2 1
1
B 8
P 8
A 8
S 8
C 8
G
8
2
1
Gerador de

18

Quantidade de Portas Lógicas

FAFAFAFA

5

Somador Ripple Carry de 4 bits:

5

52

Lógicas FAFAFAFA 5 Somador Ripple Carry de 4 bits: 5 52 A última célula não produz
Lógicas FAFAFAFA 5 Somador Ripple Carry de 4 bits: 5 52 A última célula não produz
Lógicas FAFAFAFA 5 Somador Ripple Carry de 4 bits: 5 52 A última célula não produz
Lógicas FAFAFAFA 5 Somador Ripple Carry de 4 bits: 5 52 A última célula não produz
Lógicas FAFAFAFA 5 Somador Ripple Carry de 4 bits: 5 52 A última célula não produz
A última célula não produz o vai-um Total: 17 portas lógicas Circuito Lógico do Somador
A última célula não
produz o vai-um
Total: 17 portas
lógicas
Circuito Lógico do Somador Completo (FA) = 5 portas lógicas

19

Quantidade de Portas Lógicas

Total: 21 portas lógicas

Somador Carry Look-Ahead de 4 bits:

Look-ahead carry generator

19 Quantidade de Portas Lógicas Total: 21 portas lógicas Somador Carry Look-Ahead de 4 bits: Look-ahead
19 Quantidade de Portas Lógicas Total: 21 portas lógicas Somador Carry Look-Ahead de 4 bits: Look-ahead

20

Comentários sobre Custo/Desempenho

lógicas com uma grande quantidade de entradas, apesar da

O caminho crítico do somador carry look-ahead é menor se comparado ao caminho crítico do somador ripple carry No entanto, o somador carry look-ahead gasta uma quantidade bem mais significativa de portas lógicas do que o somador ripple carry.

O somador com carry look-ahead gasta muita porta lógica quando a quantidade de bits de entrada aumenta

Note que na geração do carry look-ahead existem portas

Para operandos com uma grande quantidade de bits:

implementação em dois níveis


21

Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude Outros Blocos Aritméticos

Tópicos deste Módulo




22

Representação de Números Negativos

Como representar o número negativo em binário?

Sinal-magnitude (signed-magnitude) Sinal-complemento (signed-complement)

Problema: Subtrair 2 de 1 = - 1

complemento de um Complemento de dois

Solução:



23

Números Negativos: Sinal-magnitude

Os bits restantes indicam o valor absoluto

Bit de Sinal

O bit mais significativo indica o sinal

1 0001100) 2

0 0001100) 2

0 => positivo 1 => negativo

= (

(+12) 10 = (

(-12) 10

Exemplo:



0001100) 2 0 => positivo 1 => negativo = ( (+12) 1 0 = ( (-12)
0001100) 2 0 => positivo 1 => negativo = ( (+12) 1 0 = ( (-12)

24

Números Negativos: Complemento de Um

O bit mais significativo ainda indica se o número é positivo ou

O número negativo é representado pelo seu complemento Se o número for negativo:

No entanto, para determinarmos o valor absoluto que

representa o número negativo temos que realizar um

Inverter todos os bits

Inverter cada bit do valor absoluto

determinado procedimento:

0 1 1) 2

(+12) 10 = (0 0 0 0 1 1 0 0) 2

Inverter todos os bits

1 0

1

0 => positivo 1 => negativo

1

= (1

(-12) 10

Exemplo:

negativo:




1 0 => positivo 1 => negativo 1 = (1 (-12) 1 0 Exemplo: negativo: •
1 0 => positivo 1 => negativo 1 = (1 (-12) 1 0 Exemplo: negativo: •
1 0 => positivo 1 => negativo 1 = (1 (-12) 1 0 Exemplo: negativo: •
1 0 => positivo 1 => negativo 1 = (1 (-12) 1 0 Exemplo: negativo: •
1 0 => positivo 1 => negativo 1 = (1 (-12) 1 0 Exemplo: negativo: •
1 0 => positivo 1 => negativo 1 = (1 (-12) 1 0 Exemplo: negativo: •

Para números negativos, realizamos o complemento de 1, invertendo os bits, e depois somamos o valor “1” Da mesma forma que no complemento de um, o bit mais significativo também indica se o número é positivo ou negativo:

– “12” em binário – invertemos todos os bits (complemento de um) – somamos “+1”

25

Números Negativos: Complemento de Dois

(0 0 0 0 1 1 0 0) 2

(+12) 10 = (0 0 0 0 1 1 0 0) 2

0 => positivo 1 => negativo

(-12) 10 =>

Exemplo:




1 1 1 1 0 0 1 1 + 0 0 0 0 0 0
1
1
1
1
0 0 1 1
+
0
0 0 0 0 0 0 1
11
1
1
1
1
0 0 1 1
+
0
0 0 0 0 0 0 1
1
1
1
1
0 1 0 0

26

– “0” em binário – invertemos todos os bits (complemento de um) – somamos “+1”

Complemento de Dois (continuação)

Se houver vai-um (carry), este deverá ser desprezado

(+0) 10 = (0 0 0) 2

(-0) 10 =>

– Exemplo:

0 = (0 0 0) 2 (-0) 1 0 => – Exemplo: • • (0 0
(0 0 0) 2 1 1 1 + 0 0 1 11 1 1 1
(0 0 0) 2
1
1
1
+
0
0 1
11
1
1
1
+
0
0 1
1 0 0 0

Representação de Alguns Números

                                 

27

SINAL-MAGNITUDECOMPLEMENTO

                                 

DE UMCOMPLEMENTO

DE DOISDECIMAL

011101110111+7

011001100110+6

010101010101+5

010001000100+4

001100110011+3

001000100010+2

000100010001+1

000000000000+0

10001111-0

100111101111-1

101011011110-2

101111001101-3

110010111100-4

110110101011-5

111010011010-6

111110001001-7

1000-8

28

Comentários sobre as Representações

Problema: duas representações distintas para o zero (0)

Representa um número negativo a mais do que os outros dois formatos

Complemento de um e Sinal-Magnitude:

Complemento de dois:


29

Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude Outros Blocos Aritméticos

Tópicos deste Módulo




30

Soma/Subtração em Complemento de Dois

X pode ser positivo ou negativo em complemento de dois Y pode ser positivo ou negativo em complemento de dois

Devemos apenas realizar a soma de modo convencional Na soma de números com sinal descartar o vai-um final O bit de sinal deve fazer parte do número quando estivermos realizando a operação de soma

Complemento de dois pode ser utilizado para representar números negativos. Sendo assim, como podemos realizar a soma e a subtração utilizando o complemento de dois? Regra: X + Y

Procedimento:




31

Soma em Complemento de Dois

Devemos descartar o vai-um final

– – Regra: X + Y Exemplos:
Regra: X + Y
Exemplos:

32

O bit de sinal deve fazer parte do número quando estivermos

Subtração em Complemento de Dois

Na subtração de números com sinal descartar o vai-um final

Devemos, primeiramente, realizar o complemento de dois de

Y Depois, devemos somar o operando X com o complemento

X pode ser positivo ou negativo em complemento de dois Y pode ser positivo ou negativo em complemento de dois

realizando a operação de subtração

Procedimento:

de dois de Y

Regra: X − Y




33

Subtração em Complemento de Dois (continuação)

– Exemplos: • Realizar a subtração dos números com sinal abaixo: Devemos descartar o vai-um
– Exemplos:
Realizar a subtração dos números com sinal abaixo:
Devemos descartar o
vai-um final

34

Subtração em Complemento de Dois (continuação)

Por isso, a subtração pode ser realizada através do

complemento de dois e da soma.

(± A) − (+ B) = (± A) + (− B) (± A) − (− B) = (± A) + (+ B)

Curiosidade:



35

Circuito Somador/Subtrator de 4 bits

– Utilizando o complemento de dois para representar números negativos, temos: – – Se S
Utilizando o complemento de dois para representar
números negativos, temos:
Se S = 0, temos na saída do circuito A + B
Se S = 1, temos na saída do circuito A − B

36

Overflow – Estouro de Representação

O vai-um final não pode ser utilizado para representar o

Em um circuito digital já projetado e implementado, a quantidade de bits utilizada para representar dados (números, por exemplo) é fixa. Sendo assim, o que aconteceria se realizarmos a soma dos seguintes números binários sem sinal:

O número (16) 10 não pode ser representado com apenas 4 casas

Imagine um circuito com 4 bits para a representação de dados

resultado, pois temos somente 4 bits. O vai-um final indica um overflow ou estouro de representação

1 1 1 (15) 0 0 1 (1)

1

1

1
0

1

+


indica um overflow ou estouro de representação 1 1 1 (15) 0 0 1 (1) 1
indica um overflow ou estouro de representação 1 1 1 (15) 0 0 1 (1) 1
1 0 0 0 0 (16)
1 0 0 0 0 (16)

37

Observar o carry-in e o carry-out do bit mais significativo (bit de sinal)

O fato de ocorrer vai-um final não implica necessariamente em overflow

Overflow – Complemento de Dois

Se os dois carries forem diferentes, ocorreu um overflow.•

E se estivermos trabalhando com números em complemento de dois? Quando ocorre o overflow?

Regra para determinar o overflow:


38

Overflow – Complemento de Dois (continuação)

Com 8 bits podemos representar apenas de +127 até -128

O carry_in = 1 e o carry_out = 0. Portanto, ocorreu um overflow

1 0 0 1 0 1 1 0 (+ 150)

– Exemplo:

1 1 0 0 0 1 1 0 (+ 70)0 + 0 1 0 1
1
1 0 0 0 1 1 0 (+ 70)0
+
0 1 0 1 0 0 0 0 (+ 80)
Portanto, ocorreu um overflow 1 0 0 1 0 1 1 0 (+ 150) – Exemplo:
Portanto, ocorreu um overflow 1 0 0 1 0 1 1 0 (+ 150) – Exemplo:

39

Overflow – Complemento de Dois (continuação)

Com 8 bits podemos representar apenas de +127 até -128

O carry_in = 0 e o carry_out = 1. Portanto, ocorreu um overflow

0 1 1 1 0 1 0 (- 70)1 1 0 1 1 0 0 0 0 (- 80) 0 1 1 0 1 0 1 0 (- 150)

– Exemplo:

1 1 1 +
1
1
1
+
ocorreu um overflow 0 1 1 1 0 1 0 (- 70) 1 1 0 1
ocorreu um overflow 0 1 1 1 0 1 0 (- 70) 1 1 0 1

40

Circuito para Detectar um Overflow

Uma vez identificado um overflow, o processador deverá gerar uma exceção e um programa especial deverá ser chamado para o tratamento do erro. Em alguns casos, executa-se um procedimento para avisar o usuário da ocorrência do overflow.


Detecta overflow de números com sinal em complemento de dois (signed) Detecta overflow de números
Detecta overflow de números com sinal
em complemento de dois (signed)
Detecta overflow de números sem sinal (unsigned)

41

Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude Outros Blocos Aritméticos

Tópicos deste Módulo




42

Multiplicação – – Multiplicação utilizando um circuito combinacional Operandos de 2 bits cada Operando B
Multiplicação
Multiplicação utilizando um circuito combinacional
Operandos de 2 bits cada
Operando B
Operando A
Produto
parcial
Resultado

43

AND dos B`s com A 2

AND dos B`s com A 0

AND dos B`s com A 1

Multiplicação (continuação)

C 0

A 0

B 0

C 1

A 1

B 1

A 2

B 2

C 2

Operando A de 3 bits cada Operando B de 4 bits

Resultado

B 3

C 3

x

C 4

A 2 B 3

Precisamos de um Somador de 4 bits

C 5

Precisamos de um Somador de 4 bits

C 6


A 0 B 3 A 0 B 2 A 0 B 1 A 0 B
A 0 B 3
A 0 B 2
A 0 B 1
A 0 B 0
A 1 B 3
A 1 B 2
A 1 B 1
A 1 B 0
+
A 2 B 2
A 2 B 1
A 2 B 0
+
bits C 6 – – A 0 B 3 A 0 B 2 A 0 B
bits C 6 – – A 0 B 3 A 0 B 2 A 0 B

44

Circuito do Multiplicador
Circuito do Multiplicador

45

Para evitarmos o overflow na multiplicação, precisamos de

Existem muitas maneiras diferentes de implementarmos o circuito de multiplicação.

Comentários sobre a Multiplicação

Quantidade de bits do operando A + Quantidade de bits do operando B

Por exemplo, utilizando um circuito seqüencial

uma saída contendo:


46

Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude Outros Blocos Aritméticos

Tópicos deste Módulo




47

Para que A == B, todos os bits devem ser iguais entre A e B.

O circuito deve indicar se dois números “A” e “B” são:

Comparador de Magnitude

Considere os números sem sinal:

Para números sem sinal:

A i == B i , i = 0, 1, 2, 3.

Iguais: A == B Diferentes:

A > B A < B

= B 3 B 2 B 1 B 0

= A 3 A 2 A 1 A 0

»
»

B

A

48

Para que A == B, todos os bits devem ser iguais entre A e B.

Comparador de Magnitude (continuação)

Isso pode ser conseguido com a função coincidência

Esta é a equação responsável pelo circuito (A == B)

x i = A i B i + A i B i , i = 0, 1, 2, 3.

A i == B i , i = 0, 1, 2, 3.

(A ==B) = x 3 x 2 x 1 x 0

Portanto:


Esta é a equação responsável pelo circuito (A < B)

Esta é a equação responsável pelo circuito (A > B)

49

Temos que percorrer o vetor binário, começando com o bit mais significativo:

Comparador de Magnitude (continuação)

(A < B) = A 3 B 3 + x 3 A 2 B 2 + x 3 x 2 A 1 B 1 + x 3 x 2 x 1 A 0 B 0

(A > B) = A 3 B 3 + x 3 A 2 B 2 + x 3 x 2 A 1 B 1 + x 3 x 2 x 1 A 0 B 0

Se A 3 = 1 e B 3 = 0, temos que A > B Se A 3 = 0 e B 3 = 1, temos que A < B Se A 3 = 0 e B 3 = 0, devemos analisar os bits A 2 e B 2 Se A 3 = 1 e B 3 = 1, devemos analisar os bits A 2 e B 2

Para que A > B ou A < B:

Assim, temos:



analisar os bits A 2 e B 2 Para que A > B ou A <

50

Circuito Comparador de Magnitude
Circuito Comparador de Magnitude

51

O complemento de dois e a operação de subtração podem ser utilizados para a comparação de números sem sinal (unsigned) Procedimento:

Comparação Utilizando a Subtração

Se M N, então a soma acima produzirá um carry (vai-um)

Se o resultado for igual a zero, então M == N

devemos realizar o complemento de dois de N e depois somar M com o complemento obtido.

Se M < N, então a soma não produzirá um carry.

Realizar a subtração em complemento de dois

M − N M é um número binário sem sinal N é um número binário sem sinal

Como M − N = M + (− N), então:

»

»

»
»

»




Se M N, então a soma acima produzirá um carry (vai-um) Esse carry é justamente o 2 n da expressão acima. Dessa forma, basta desprezarmos o vai-um para obtermos o valor M − N

52

O resultado é um número negativo e devemos realizar o complemento de dois da resposta para obtermos a magnitude correta do número Lembre-se de colocar um sinal de negativo (−) no resultado obtido

Comparação Utilizando a Subtração (continuação)

Quando realizamos a regra mostrada anteriormente para a comparação, matematicamente temos:

+ (2 n − N) = M − N + 2 n (representação em decimal)

Para N 0, esta expressão representa o complemento de dois de N Para N = 0, o complemento de dois é igual a zero

Se M < N, então a soma não produzirá um carry

Quantidade de dígitos do número N em binário

M

N, então a soma não produzirá um carry Quantidade de dígitos do número N em binário
N, então a soma não produzirá um carry Quantidade de dígitos do número N em binário
N, então a soma não produzirá um carry Quantidade de dígitos do número N em binário

53

Comparação Utilizando a Subtração (continuação)

Se M < N, então não haverá produção de carry. Basta realizarmos o complemento de dois do resultado e colocarmos um sinal de negativo (–) na frente do número obtido

Resposta = M − N + 2 n Se fizermos o complemento de dois da resposta, temos:

Com isso, representamos o número em sinal-magnitude

Isso representa o valor absouto (magnitude) do resultado

2 n − [M − N + 2 n ] = 2 n − 2 n – M + N= N – M

Sendo assim, temos:


2 n − [M − N + 2 n ] = 2 n − 2 n
2 n − [M − N + 2 n ] = 2 n − 2 n
2 n − [M − N + 2 n ] = 2 n − 2 n

54

Comparação Utilizando a Subtração (continuação)

Descartamos o vai-um e assim obtemos a resposta correta: 0010001

1 0 1 0 0 (X)1 1 1 1 0 1 (complemento de dois de Y)

1 1 1 0 1 (complemento de dois de Y)

Como houve vai-um final, então A > B.

+ 0 1 0 1 0 1 0 1 0 0 0 0 1 (Inverter (Somar 1) os bits)0

X = 1010100 (Número sem sinal) Y = 1000011 (Número sem sinal)

Y = 1 0 0 0 0 1 1

1 0 0 1 0 0 0 1

Realizar a Soma:

Exemplo (X – Y):

0

1

1

0

0

+

Vai-um final


Y = 1 0 0 0 0 1 1 1 0 0 1 0 0 0

55

Comparação Utilizando a Subtração (continuação)

Devemos realizar o complemento de dois do resultado e colocar o sinal de negativo na frente: − 0010001

1 0 1 1 0 0 (complemento de dois de X)0

0 1 1 0 0 (complemento de dois de Y)

Como não houve vai-um final, então A < B.

+ 0 0 1 0 0 0 1 0 0 0 1 1 1 (Somar (Inverter 1) os bits)0

X = 1010100 (Número sem sinal) Y = 1000011 (Número sem sinal)

0 0 0 1 1 (Y)

X = 1 0 1 0 1 0 0

1

1

1

Realizar a Soma:

Exemplo (Y – X):

1

0

0

1

1

0

1

+

Vai-um final

Não houve

1

56

Projeto de Circuitos Aritméticos Somadores Representação de Números Negativos Soma/Subtração em Complemento de Dois Multiplicação Comparadores de Magnitude

Tópicos deste Módulo

– Outros Blocos Aritméticos




57

Podemos reduzir o hardware quando trabalhamos com

Podemos reduzir o hardware quando trabalhamos com

Seno/Cosseno/Tangente Implementação de funções de aproximação Armazenamento de Tabelas contendo os resultados

Outros Blocos Aritméticos

Uma palavra de N bits é dividida em duas partes:

o expoente e a mantissa M Representação: M * B e , onde B é a base 2

Multiplicação/Divisão por constantes

Divisores Números em ponto flutuante

Zero fill e extensão de sinal

Incremento e Decremento

Funções trigonométricas

constantes

constantes




58

0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 (entrada num circuito que possui 16 bits)

0 1 1 0 1 0 1 1 (saída de um circuito qualquer que possui 8 bits)

Zero Fill

Preenchimento com zeros

que possui 16 bits) 0 1 1 0 1 0 1 1 (saída de um circuito

59

Extensão de Sinal

1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 ( 1 107 em decimal)

0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 (107 em decimal)

Número Negativo (complemento de dois):

0 0 1 0 1 0 1 ( 1 107 em decimal)

1 1 0 1 0 1 1 (107 em decimal)0

Preenchimento com zeros

Preenchimento com 1`s

Número Positivo:

107 em decimal) 1 1 0 1 0 1 1 (107 em decimal) 0 Preenchimento com
107 em decimal) 1 1 0 1 0 1 1 (107 em decimal) 0 Preenchimento com

60

Comentários sobre os Circuitos Aritméticos

Blocos aritméticos também podem ser implementados utilizando circuitos seqüenciais Existem muitas implementações diferentes para os blocos aritméticos apresentados:

Utilizando circuitos combinacionais Utilizando circuitos seqüenciais

Carry save adder Carry select adder Carry look-ahead adder Ripple carry adder Implementações híbridas

Multiplicadores:

Somadores:





61

A subtração pode ser realizada utilizando o circuito digital de soma

Divisores/ Funções Trigonométricas/ Operações com Constantes/ Zero Fill/ Extensão de Sinal/ Implementações com circuitos seqüenciais

O somador ripple carry costuma ser mais lento do que o somador com vai-um antecipado. No entanto, o somador com vai-um antecipado costuma ter um custo maior. Podemos representar números negativos utilizando complemento de dois:

Podemos utilizar um circuito digital específico Podemos utilizar a subtração em complemento de dois e alguns sinais de carry

O circuito de multiplicação pode ser composto por um vários

Existem diversos tipos de blocos aritméticos:

Sumário

Comparadores de Magnitude:

somadores paralelos