SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
1
Circuitos Aritméticos Combinacionais
Tiago de Oliveira
2
Tópicos deste Módulo
– 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
3
Projeto de Circuitos Aritméticos
– 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
4
Tópicos deste Módulo
– 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
5
Somador – Half-Adder (Meio Somador)
– Problema:
0 0 0 1
0 1 0 1
0 1 1 0
– Solução: Full-Adder (Somador Completo)
1011
0101
0110
0000
CoutSBA
+
1
S = A Ө B
Cout = A . B
6
Full-Adder (Somador Completo)
01011
11111
01101
10001
1
1
0
0
Y
0110
1000
1010
0000
SCarr
y
ZX
7
Full-Adder (Somador Completo) (continuação)
01011
11111
01101
10001
1
1
0
0
Y
0110
1000
1010
0000
SCarryZX
X Y Z
X Y Z
X Y Z
X Y Z
+
+
+
Carry = X Y Z + X Y Z +
X Y Z + X Y Z
8
Full-Adder (Somador Completo) (continuação)
01011
11111
01101
10001
1
1
0
0
Y
0110
1000
1010
0000
SCarryZX
X Y Z
X Y Z
+
S = X Y Z + X Y Z +
X Y Z + X Y Z
X Y Z
X Y Z
+
+
9
Full-Adder Utilizando Dois Half-Adder
10
Somador Paralelo de 4 bits
– Também conhecido como Somador Ripple Carry
11
Somador com Vai-Um Antecipado
– Também conhecido como Carry Look-Ahead Adder
– Utilização de duas novas variáveis:
• Pi = Ai Ө Bi (propagação do vai-um)
• Gi = Ai Bi (geração do vai)
– A soma e o carry podem ser computados da seguinte
forma:
• Si = Pi Ө Ci
• Ci+1 = Gi + Pi Ci
12
Somador com Vai-Um Antecipado (continuação)
– Expandindo a equação do carry, temos:
• C1 é o carry inicial (entrada)
• C2 = G1 + P1 Ci
• C3 = G2 + P2 C2 = G2 + P2 (G1 + P1 C1)
= G2 + P2 G1 + P2 P1 C1
• C4 = G3 + P3 C3
= G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C1
13
Gerador do Carry Look-Ahead
Look-ahead carry
generator
14
Somador Carry Look-Ahead de 4 bits
15
Comparação de Custo/Desempenho
– Comparação de custo e desempenho entre:
• Somador Carry Look-Ahead
• Somador Ripple Carry
– Levaremos em consideração duas métricas:
• Caminho Crítico
• Quantidade de portas lógicas gasta
16
Caminho Crítico
FAFAFAFAFAFAFAFA
22222221
Caminho Crítico do Somador Ripple Carry: 15 portas lógicas
Circuito Lógico do Somador Completo (FA)
17
Caminho Crítico (continuação)
Caminho Crítico do Somador Carry Look-Ahead: 4 portas lógicas
Gerador de
Carry
G8
P8A8
B8
C8
S8
2 1
1
Look-ahead carry
generator
18
Quantidade de Portas Lógicas
FAFAFAFA
5552
Somador Ripple Carry de 4 bits:
Circuito Lógico do Somador Completo (FA) = 5 portas lógicas
Total: 17 portas
lógicas
A última célula não
produz o vai-um
19
Quantidade de Portas Lógicas
Somador Carry Look-Ahead de 4 bits:
Look-ahead carry
generator
Total: 21 portas lógicas
20
Comentários sobre Custo/Desempenho
– Para operandos com uma grande quantidade de bits:
• 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.
– Note que na geração do carry look-ahead existem portas
lógicas com uma grande quantidade de entradas, apesar da
implementação em dois níveis
– O somador com carry look-ahead gasta muita porta lógica
quando a quantidade de bits de entrada aumenta
21
Tópicos deste Módulo
– 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
22
Representação de Números Negativos
– Problema: Subtrair 2 de 1 = - 1
• Como representar o número negativo em binário?
– Solução:
• Sinal-magnitude (signed-magnitude)
• Sinal-complemento (signed-complement)
– complemento de um
– Complemento de dois
23
Números Negativos: Sinal-magnitude
– O bit mais significativo indica o sinal
• 0 => positivo
• 1 => negativo
– Os bits restantes indicam o valor absoluto
– Exemplo:
• (+12)10 = ( 0 0001100)2
• (-12)10 = ( 1 0001100)2
Bit de Sinal
24
Números Negativos: Complemento de Um
– O número negativo é representado pelo seu complemento
– Se o número for negativo:
• Inverter cada bit do valor absoluto
– Exemplo:
• (+12)10 = (0 0 0 0 1 1 0 0)2
• (-12)10 = (1 1 1 1 0 0 1 1)2
– O bit mais significativo ainda indica se o número é positivo ou
negativo:
• 0 => positivo
• 1 => negativo
– No entanto, para determinarmos o valor absoluto que
representa o número negativo temos que realizar um
determinado procedimento:
• Inverter todos os bits
Inverter todos os bits
25
Números Negativos: Complemento de Dois
– 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:
• 0 => positivo
• 1 => negativo
– Exemplo:
• (+12)10 = (0 0 0 0 1 1 0 0)2
• (-12)10 => (0 0 0 0 1 1 0 0)2 – “12” em binário
1 1 1 1 0 0 1 1 – invertemos todos os bits (complemento de um)
0 0 0 0 0 0 0 1 – somamos “+1”
1 1 1 1 0 0 1 1
0 0 0 0 0 0 0 1
1 1 1 1 0 1 0 0
+
11
+
26
Complemento de Dois (continuação)
– Exemplo:
• (+0)10 = (0 0 0)2
• (-0)10 => (0 0 0)2 – “0” em binário
1 1 1 – invertemos todos os bits (complemento de um)
0 0 1 – somamos “+1”
1 1 1
0 0 1
1 0 0 0
+
11
+
Se houver vai-um (carry),
este deverá ser desprezado
27
Representação de Alguns Números
1000-8
111110001001-7
111010011010-6
110110101011-5
110010111100-4
101111001101-3
101011011110-2
100111101111-1
10001111-0
000000000000+0
000100010001+1
001000100010+2
001100110011+3
010001000100+4
010101010101+5
011001100110+6
011101110111+7
SINAL-MAGNITUDECOMPLEMENTO DE UMCOMPLEMENTO DE DOISDECIMAL
28
Comentários sobre as Representações
– Complemento de um e Sinal-Magnitude:
• Problema: duas representações distintas para o zero (0)
– Complemento de dois:
• Representa um número negativo a mais do que os
outros dois formatos
29
Tópicos deste Módulo
– 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
30
Soma/Subtração em Complemento de Dois
– 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
• X pode ser positivo ou negativo em complemento de dois
• Y pode ser positivo ou negativo em complemento de dois
– Procedimento:
• 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
31
Soma em Complemento de Dois
– Regra: X + Y
– Exemplos:
Devemos descartar o
vai-um final
32
Subtração em Complemento de Dois
– Regra: X − Y
• X pode ser positivo ou negativo em complemento de dois
• Y pode ser positivo ou negativo em complemento de dois
– Procedimento:
• Devemos, primeiramente, realizar o complemento de dois de
Y
• Depois, devemos somar o operando X com o complemento
de dois de Y
• Na subtração 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 subtração
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 final
34
Subtração em Complemento de Dois (continuação)
– Curiosidade:
• (± A) − (+ B) = (± A) + (− B)
• (± A) − (− B) = (± A) + (+ B)
– Por isso, a subtração pode ser realizada através do
complemento de dois e da soma.
35
Circuito Somador/Subtrator de 4 bits
– 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
– 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:
1 1 1 1 (15)
0 0 0 1 (1)
1 1 1
+
1 0 0 0 0 (16)
Imagine um circuito com 4 bits
para a representação de dados
O número (16)10 não pode ser
representado com apenas 4 casas
– O vai-um final não pode ser utilizado para representar o
resultado, pois temos somente 4 bits.
– O vai-um final indica um overflow ou estouro de
representação
37
Overflow – Complemento de Dois
– E se estivermos trabalhando com números em
complemento de dois?
– Quando ocorre o overflow?
• O fato de ocorrer vai-um final não implica necessariamente
em overflow
– Regra para determinar o overflow:
• Observar o carry-in e o carry-out do bit mais significativo (bit
de sinal)
• Se os dois carries forem diferentes, ocorreu um overflow.
38
Overflow – Complemento de Dois (continuação)
– Exemplo:
0 1 0 0 0 1 1 0 (+ 70)
0 1 0 1 0 0 0 0 (+ 80)
1
+
1 0 0 1 0 1 1 0 (+ 150)
O carry_in = 1 e o carry_out = 0.
Portanto, ocorreu um overflow
Com 8 bits podemos representar
apenas de +127 até -128
39
Overflow – Complemento de Dois (continuação)
– Exemplo:
1 0 1 1 1 0 1 0 (- 70)
1 0 1 1 0 0 0 0 (- 80)
1 1 1
+
0 1 1 0 1 0 1 0 (- 150)
O carry_in = 0 e o carry_out = 1.
Portanto, ocorreu um overflow
Com 8 bits podemos representar
apenas de +127 até -128
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 sem sinal (unsigned)
41
Tópicos deste Módulo
– 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
42
Multiplicação
– Multiplicação utilizando um circuito combinacional
– Operandos de 2 bits cada
Operando A
Operando B
Resultado
Produto
parcial
43
Multiplicação (continuação)
– Operando A de 3 bits cada
– Operando B de 4 bits
B3 B2 B1 B0
A2 A1 A0
A0B3 A0B2 A0B1 A0B0
A1B3 A1B2 A1B1 A1B0
A2B3 A2B2 A2B1 A2B0
+
+
C6 C5 C4 C3 C2 C1 C0
x
AND dos B`s com A0
AND dos B`s com A1
AND dos B`s com A2
Precisamos de um
Somador de 4 bits
Precisamos de um
Somador de 4 bits
Resultado
44
Circuito do Multiplicador
45
Comentários sobre a Multiplicação
– Existem muitas maneiras diferentes de implementarmos o
circuito de multiplicação.
• Por exemplo, utilizando um circuito seqüencial
– Para evitarmos o overflow na multiplicação, precisamos de
uma saída contendo:
• Quantidade de bits do operando A + Quantidade de bits do
operando B
46
Tópicos deste Módulo
– 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
47
Comparador de Magnitude
– Para números sem sinal:
• O circuito deve indicar se dois números “A” e “B” são:
– Iguais: A == B
– Diferentes:
» A > B
» A < B
– Considere os números sem sinal:
– Para que A == B, todos os bits devem ser iguais entre A e B.
• Ai == Bi, i = 0, 1, 2, 3.
B = B3 B2 B1 B0
A = A3 A2 A1 A0
48
Comparador de Magnitude (continuação)
– Para que A == B, todos os bits devem ser iguais entre A e B.
• Ai == Bi, i = 0, 1, 2, 3.
– Isso pode ser conseguido com a função coincidência
• xi = Ai Bi + Ai Bi, i = 0, 1, 2, 3.
– Portanto:
• (A ==B) = x3 x2 x1 x0 Esta é a equação responsável
pelo circuito (A == B)
49
Comparador de Magnitude (continuação)
– Para que A > B ou A < B:
• Temos que percorrer o vetor binário, começando com o bit
mais significativo:
– Se A3 = 1 e B3 = 0, temos que A > B
– Se A3 = 0 e B3 = 1, temos que A < B
– Se A3 = 0 e B3 = 0, devemos analisar os bits A2 e B2
– Se A3 = 1 e B3 = 1, devemos analisar os bits A2 e B2
– Assim, temos:
• (A > B) = A3 B3 + x3 A2 B2 + x3 x2 A1 B1 + x3 x2 x1 A0 B0
• (A < B) = A3 B3 + x3 A2 B2 + x3 x2 A1 B1 + x3 x2 x1 A0 B0
Esta é a equação responsável
pelo circuito (A < B)
Esta é a equação responsável
pelo circuito (A > B)
50
Circuito Comparador de Magnitude
51
Comparação Utilizando a Subtração
– 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:
• 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:
» devemos realizar o complemento de dois de N
» e depois somar M com o complemento obtido.
– Se M ≥ N, então a soma acima produzirá um carry (vai-um)
» Se o resultado for igual a zero, então M == N
– Se M < N, então a soma não produzirá um carry.
52
Comparação Utilizando a Subtração (continuação)
– Quando realizamos a regra mostrada anteriormente para a comparação,
matematicamente temos:
M + (2n − N) = M − N + 2n (representação em decimal)
– Se M ≥ N, então a soma acima produzirá um carry (vai-um)
• Esse carry é justamente o 2n da expressão acima.
• Dessa forma, basta desprezarmos o vai-um para obtermos o valor M − N
– Se M < N, então a soma não produzirá um carry
• 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
Quantidade de dígitos
do número N em binário
Para N ≠ 0, esta expressão representa o complemento de dois de N
Para N = 0, o complemento de dois é igual a zero
53
Comparação Utilizando a Subtração (continuação)
– Sendo assim, temos:
• Resposta = M − N + 2n
• Se fizermos o complemento de dois da resposta, temos:
2n − [M − N + 2n] = 2n − 2n – M + N= N – M
– 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
• Com isso, representamos o número em sinal-magnitude
Isso representa o valor absouto (magnitude)
do resultado
54
Comparação Utilizando a Subtração (continuação)
– Exemplo (X – Y):
• X = 1010100 (Número sem sinal)
• Y = 1000011 (Número sem sinal)
Y = 1 0 0 0 0 1 1
0 1 1 1 1 0 0 (Inverter os bits)
+
0 0 0 0 0 0 1 (Somar 1)
0 1 1 1 1 0 1 (complemento de dois de Y)
• Como houve vai-um final, então A > B.
– Descartamos o vai-um e assim obtemos a resposta correta: 0010001
1 0 1 0 1 0 0 (X)
Vai-um final
+
1 0 0 1 0 0 0 1
0 1 1 1 1 0 1 (complemento de dois de Y)
• Realizar a Soma:
55
Comparação Utilizando a Subtração (continuação)
– Exemplo (Y – X):
• X = 1010100 (Número sem sinal)
• Y = 1000011 (Número sem sinal)
X = 1 0 1 0 1 0 0
0 1 0 1 0 1 1 (Inverter os bits)
+
0 0 0 0 0 0 1 (Somar 1)
0 1 0 1 1 0 0 (complemento de dois de Y)
• Como não houve vai-um final, então A < B.
– Devemos realizar o complemento de dois do resultado e colocar o
sinal de negativo na frente: − 0010001
1 0 0 0 0 1 1 (Y)
Não houve
Vai-um final
+
1 1 0 1 1 1 1
0 1 0 1 1 0 0 (complemento de dois de X)
• Realizar a Soma:
56
Tópicos deste Módulo
– 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
57
Outros Blocos Aritméticos
– Divisores
– Números em ponto flutuante
• Uma palavra de N bits é dividida em duas partes:
– o expoente e
– a mantissa M
– Representação: M * Be, onde B é a base 2
– Incremento e Decremento
• Podemos reduzir o hardware quando trabalhamos com
constantes
– Multiplicação/Divisão por constantes
• Podemos reduzir o hardware quando trabalhamos com
constantes
– Funções trigonométricas
• Seno/Cosseno/Tangente
• Implementação de funções de aproximação
• Armazenamento de Tabelas contendo os resultados
– Zero fill e extensão de sinal
58
Zero Fill
0 1 1 0 1 0 1 1 (saída de um circuito qualquer que possui 8 bits)
0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 (entrada num circuito que possui 16 bits)
Preenchimento com zeros
59
Extensão de Sinal
0 1 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)
Preenchimento com zeros
– Número Positivo:
1 0 0 1 0 1 0 1 (−107 em decimal)
1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 (−107 em decimal)
Preenchimento com 1`s
– Número Negativo (complemento de dois):
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:
• Somadores:
– Carry save adder
– Carry select adder
– Carry look-ahead adder
– Ripple carry adder
– Implementações híbridas
• Multiplicadores:
– Utilizando circuitos combinacionais
– Utilizando circuitos seqüenciais
61
Sumário
– 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:
• A subtração pode ser realizada utilizando o circuito digital de soma
– O circuito de multiplicação pode ser composto por um vários
somadores paralelos
– Comparadores de Magnitude:
• Podemos utilizar um circuito digital específico
• Podemos utilizar a subtração em complemento de dois e alguns
sinais de carry
– Existem diversos tipos de blocos aritméticos:
• Divisores/ Funções Trigonométricas/ Operações com Constantes/
Zero Fill/ Extensão de Sinal/ Implementações com circuitos
seqüenciais

Mais conteúdo relacionado

Mais procurados

Exprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exerciciosExprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exercicios
Joãopedro Machado
 
Aula de distribuição de probabilidade[1] cópia
Aula de distribuição de probabilidade[1]   cópiaAula de distribuição de probabilidade[1]   cópia
Aula de distribuição de probabilidade[1] cópia
Tuane Paixão
 
005 previsão de cargas
005 previsão de cargas005 previsão de cargas
005 previsão de cargas
krigues
 
Medidas de Informática
Medidas de InformáticaMedidas de Informática
Medidas de Informática
Patty Santana
 
Cap4 - Parte 6 - Distribuições Discretas Exercicios Resolvidos
Cap4 - Parte 6 - Distribuições Discretas Exercicios ResolvidosCap4 - Parte 6 - Distribuições Discretas Exercicios Resolvidos
Cap4 - Parte 6 - Distribuições Discretas Exercicios Resolvidos
Regis Andrade
 
Fundamentos de circuitos elétricos sadiku - 4ª edição (português)
Fundamentos de circuitos elétricos   sadiku - 4ª edição (português)Fundamentos de circuitos elétricos   sadiku - 4ª edição (português)
Fundamentos de circuitos elétricos sadiku - 4ª edição (português)
Aurélio Neves
 

Mais procurados (20)

Tópico 2 Intervalo de Confiança
Tópico 2   Intervalo de ConfiançaTópico 2   Intervalo de Confiança
Tópico 2 Intervalo de Confiança
 
Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...
Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...
Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...
 
Sensores de Posição
Sensores de PosiçãoSensores de Posição
Sensores de Posição
 
Sep 1 cap 1 circuitos trifasicos
Sep 1   cap 1 circuitos trifasicosSep 1   cap 1 circuitos trifasicos
Sep 1 cap 1 circuitos trifasicos
 
Corrente alternada circuitos
Corrente alternada circuitosCorrente alternada circuitos
Corrente alternada circuitos
 
Econometria modelos de_regressao_linear
Econometria modelos de_regressao_linearEconometria modelos de_regressao_linear
Econometria modelos de_regressao_linear
 
Exprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exerciciosExprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exercicios
 
Metodo ponto a ponto
Metodo ponto a pontoMetodo ponto a ponto
Metodo ponto a ponto
 
Metodo do ponto fixo resumo
Metodo do ponto fixo resumoMetodo do ponto fixo resumo
Metodo do ponto fixo resumo
 
Aula de distribuição de probabilidade[1] cópia
Aula de distribuição de probabilidade[1]   cópiaAula de distribuição de probabilidade[1]   cópia
Aula de distribuição de probabilidade[1] cópia
 
Amplificadores operacionais
Amplificadores operacionaisAmplificadores operacionais
Amplificadores operacionais
 
Distribuição binomial, poisson e hipergeométrica - Estatística I
Distribuição binomial, poisson e hipergeométrica - Estatística IDistribuição binomial, poisson e hipergeométrica - Estatística I
Distribuição binomial, poisson e hipergeométrica - Estatística I
 
Controllers ppt
Controllers pptControllers ppt
Controllers ppt
 
005 previsão de cargas
005 previsão de cargas005 previsão de cargas
005 previsão de cargas
 
Medidas de Informática
Medidas de InformáticaMedidas de Informática
Medidas de Informática
 
Cap4 - Parte 6 - Distribuições Discretas Exercicios Resolvidos
Cap4 - Parte 6 - Distribuições Discretas Exercicios ResolvidosCap4 - Parte 6 - Distribuições Discretas Exercicios Resolvidos
Cap4 - Parte 6 - Distribuições Discretas Exercicios Resolvidos
 
3 Métodos para calcular a corrente de curto circuito (1) (7)
3 Métodos para calcular a corrente de curto circuito (1) (7)3 Métodos para calcular a corrente de curto circuito (1) (7)
3 Métodos para calcular a corrente de curto circuito (1) (7)
 
Manual luminotécnico ( Osram )
Manual luminotécnico ( Osram )Manual luminotécnico ( Osram )
Manual luminotécnico ( Osram )
 
Transformadores - Proteção de Equipamentos e Sistemas Elétricos.
Transformadores - Proteção de Equipamentos e Sistemas Elétricos.Transformadores - Proteção de Equipamentos e Sistemas Elétricos.
Transformadores - Proteção de Equipamentos e Sistemas Elétricos.
 
Fundamentos de circuitos elétricos sadiku - 4ª edição (português)
Fundamentos de circuitos elétricos   sadiku - 4ª edição (português)Fundamentos de circuitos elétricos   sadiku - 4ª edição (português)
Fundamentos de circuitos elétricos sadiku - 4ª edição (português)
 

Semelhante a Circuitos aritmeticos

Aritmetica Computacional
Aritmetica ComputacionalAritmetica Computacional
Aritmetica Computacional
elliando dias
 
Recuperação lista exercicios 7º ano 1º bimestre
Recuperação lista exercicios 7º ano 1º bimestreRecuperação lista exercicios 7º ano 1º bimestre
Recuperação lista exercicios 7º ano 1º bimestre
Rafael Marques
 
Arquitetura 4 complemento de 2
Arquitetura 4   complemento de 2Arquitetura 4   complemento de 2
Arquitetura 4 complemento de 2
Paulo Fonseca
 

Semelhante a Circuitos aritmeticos (20)

Aritmetica Computacional
Aritmetica ComputacionalAritmetica Computacional
Aritmetica Computacional
 
Aula_Zegonc_Aritmetica_Binaria_e_Complemento.pdf
Aula_Zegonc_Aritmetica_Binaria_e_Complemento.pdfAula_Zegonc_Aritmetica_Binaria_e_Complemento.pdf
Aula_Zegonc_Aritmetica_Binaria_e_Complemento.pdf
 
Org arq comp_2008_aula_09
Org arq comp_2008_aula_09Org arq comp_2008_aula_09
Org arq comp_2008_aula_09
 
aula6ads.pdf
aula6ads.pdfaula6ads.pdf
aula6ads.pdf
 
Circuitos Aritméticos
Circuitos AritméticosCircuitos Aritméticos
Circuitos Aritméticos
 
Aritmetica binaria complemento
Aritmetica binaria complementoAritmetica binaria complemento
Aritmetica binaria complemento
 
Recuperação lista exercicios 7º ano 1º bimestre
Recuperação lista exercicios 7º ano 1º bimestreRecuperação lista exercicios 7º ano 1º bimestre
Recuperação lista exercicios 7º ano 1º bimestre
 
SISTEMAS digitais SISTEMAS DE NUMERAÇÃO
SISTEMAS digitais SISTEMAS DE NUMERAÇÃOSISTEMAS digitais SISTEMAS DE NUMERAÇÃO
SISTEMAS digitais SISTEMAS DE NUMERAÇÃO
 
Aritmética Digital
Aritmética DigitalAritmética Digital
Aritmética Digital
 
PPT_02_CalculoNumerico.pptx.pdf
PPT_02_CalculoNumerico.pptx.pdfPPT_02_CalculoNumerico.pptx.pdf
PPT_02_CalculoNumerico.pptx.pdf
 
Apostila digital cefetes
Apostila digital cefetesApostila digital cefetes
Apostila digital cefetes
 
Ponto Flutuante
Ponto FlutuantePonto Flutuante
Ponto Flutuante
 
aula_03.pdf
aula_03.pdfaula_03.pdf
aula_03.pdf
 
Apostila clic2
Apostila clic2Apostila clic2
Apostila clic2
 
Arquitetura 4 complemento de 2
Arquitetura 4   complemento de 2Arquitetura 4   complemento de 2
Arquitetura 4 complemento de 2
 
Arquitetura 3
Arquitetura 3Arquitetura 3
Arquitetura 3
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informação
 
Introdução
IntroduçãoIntrodução
Introdução
 
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdfn12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
n12-pra-ufcd-6024-13-circuitos-logicospdf_compress (1).pdf
 
Sistemas de numeracao .ppt
 Sistemas de numeracao .ppt Sistemas de numeracao .ppt
Sistemas de numeracao .ppt
 

Mais de unifesptk (17)

Projeto ula
Projeto ula Projeto ula
Projeto ula
 
Projeto ULA
Projeto ULAProjeto ULA
Projeto ULA
 
Algebra linear teoremas
Algebra linear teoremasAlgebra linear teoremas
Algebra linear teoremas
 
Covariancia e correlacao
Covariancia e correlacaoCovariancia e correlacao
Covariancia e correlacao
 
Pratical mpi programming
Pratical mpi programmingPratical mpi programming
Pratical mpi programming
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
 
Aprendendo a mexer no quartus II
Aprendendo a mexer no quartus IIAprendendo a mexer no quartus II
Aprendendo a mexer no quartus II
 
Lexyacc
LexyaccLexyacc
Lexyacc
 
Apostila - Circuitos Digitais
Apostila - Circuitos DigitaisApostila - Circuitos Digitais
Apostila - Circuitos Digitais
 
Trabalho Final de Compiladores
Trabalho Final de CompiladoresTrabalho Final de Compiladores
Trabalho Final de Compiladores
 
Lista II
Lista IILista II
Lista II
 
Unix shell programming in 24 hours
Unix shell programming in 24 hoursUnix shell programming in 24 hours
Unix shell programming in 24 hours
 
Pcd
PcdPcd
Pcd
 
Tutorial poke-tool
Tutorial poke-toolTutorial poke-tool
Tutorial poke-tool
 
Pcd lista5
Pcd lista5Pcd lista5
Pcd lista5
 
Trabalho 5 - Aĺgebra Linear
Trabalho 5 - Aĺgebra LinearTrabalho 5 - Aĺgebra Linear
Trabalho 5 - Aĺgebra Linear
 
Notas de Aula de Probabilidade
Notas de Aula de ProbabilidadeNotas de Aula de Probabilidade
Notas de Aula de Probabilidade
 

Último

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 

Último (20)

E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 

Circuitos aritmeticos

  • 1. 1 Circuitos Aritméticos Combinacionais Tiago de Oliveira 2 Tópicos deste Módulo – 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
  • 2. 3 Projeto de Circuitos Aritméticos – 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 4 Tópicos deste Módulo – 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
  • 3. 5 Somador – Half-Adder (Meio Somador) – Problema: 0 0 0 1 0 1 0 1 0 1 1 0 – Solução: Full-Adder (Somador Completo) 1011 0101 0110 0000 CoutSBA + 1 S = A Ө B Cout = A . B 6 Full-Adder (Somador Completo) 01011 11111 01101 10001 1 1 0 0 Y 0110 1000 1010 0000 SCarr y ZX
  • 4. 7 Full-Adder (Somador Completo) (continuação) 01011 11111 01101 10001 1 1 0 0 Y 0110 1000 1010 0000 SCarryZX X Y Z X Y Z X Y Z X Y Z + + + Carry = X Y Z + X Y Z + X Y Z + X Y Z 8 Full-Adder (Somador Completo) (continuação) 01011 11111 01101 10001 1 1 0 0 Y 0110 1000 1010 0000 SCarryZX X Y Z X Y Z + S = X Y Z + X Y Z + X Y Z + X Y Z X Y Z X Y Z + +
  • 5. 9 Full-Adder Utilizando Dois Half-Adder 10 Somador Paralelo de 4 bits – Também conhecido como Somador Ripple Carry
  • 6. 11 Somador com Vai-Um Antecipado – Também conhecido como Carry Look-Ahead Adder – Utilização de duas novas variáveis: • Pi = Ai Ө Bi (propagação do vai-um) • Gi = Ai Bi (geração do vai) – A soma e o carry podem ser computados da seguinte forma: • Si = Pi Ө Ci • Ci+1 = Gi + Pi Ci 12 Somador com Vai-Um Antecipado (continuação) – Expandindo a equação do carry, temos: • C1 é o carry inicial (entrada) • C2 = G1 + P1 Ci • C3 = G2 + P2 C2 = G2 + P2 (G1 + P1 C1) = G2 + P2 G1 + P2 P1 C1 • C4 = G3 + P3 C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C1
  • 7. 13 Gerador do Carry Look-Ahead Look-ahead carry generator 14 Somador Carry Look-Ahead de 4 bits
  • 8. 15 Comparação de Custo/Desempenho – Comparação de custo e desempenho entre: • Somador Carry Look-Ahead • Somador Ripple Carry – Levaremos em consideração duas métricas: • Caminho Crítico • Quantidade de portas lógicas gasta 16 Caminho Crítico FAFAFAFAFAFAFAFA 22222221 Caminho Crítico do Somador Ripple Carry: 15 portas lógicas Circuito Lógico do Somador Completo (FA)
  • 9. 17 Caminho Crítico (continuação) Caminho Crítico do Somador Carry Look-Ahead: 4 portas lógicas Gerador de Carry G8 P8A8 B8 C8 S8 2 1 1 Look-ahead carry generator 18 Quantidade de Portas Lógicas FAFAFAFA 5552 Somador Ripple Carry de 4 bits: Circuito Lógico do Somador Completo (FA) = 5 portas lógicas Total: 17 portas lógicas A última célula não produz o vai-um
  • 10. 19 Quantidade de Portas Lógicas Somador Carry Look-Ahead de 4 bits: Look-ahead carry generator Total: 21 portas lógicas 20 Comentários sobre Custo/Desempenho – Para operandos com uma grande quantidade de bits: • 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. – Note que na geração do carry look-ahead existem portas lógicas com uma grande quantidade de entradas, apesar da implementação em dois níveis – O somador com carry look-ahead gasta muita porta lógica quando a quantidade de bits de entrada aumenta
  • 11. 21 Tópicos deste Módulo – 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 22 Representação de Números Negativos – Problema: Subtrair 2 de 1 = - 1 • Como representar o número negativo em binário? – Solução: • Sinal-magnitude (signed-magnitude) • Sinal-complemento (signed-complement) – complemento de um – Complemento de dois
  • 12. 23 Números Negativos: Sinal-magnitude – O bit mais significativo indica o sinal • 0 => positivo • 1 => negativo – Os bits restantes indicam o valor absoluto – Exemplo: • (+12)10 = ( 0 0001100)2 • (-12)10 = ( 1 0001100)2 Bit de Sinal 24 Números Negativos: Complemento de Um – O número negativo é representado pelo seu complemento – Se o número for negativo: • Inverter cada bit do valor absoluto – Exemplo: • (+12)10 = (0 0 0 0 1 1 0 0)2 • (-12)10 = (1 1 1 1 0 0 1 1)2 – O bit mais significativo ainda indica se o número é positivo ou negativo: • 0 => positivo • 1 => negativo – No entanto, para determinarmos o valor absoluto que representa o número negativo temos que realizar um determinado procedimento: • Inverter todos os bits Inverter todos os bits
  • 13. 25 Números Negativos: Complemento de Dois – 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: • 0 => positivo • 1 => negativo – Exemplo: • (+12)10 = (0 0 0 0 1 1 0 0)2 • (-12)10 => (0 0 0 0 1 1 0 0)2 – “12” em binário 1 1 1 1 0 0 1 1 – invertemos todos os bits (complemento de um) 0 0 0 0 0 0 0 1 – somamos “+1” 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 + 11 + 26 Complemento de Dois (continuação) – Exemplo: • (+0)10 = (0 0 0)2 • (-0)10 => (0 0 0)2 – “0” em binário 1 1 1 – invertemos todos os bits (complemento de um) 0 0 1 – somamos “+1” 1 1 1 0 0 1 1 0 0 0 + 11 + Se houver vai-um (carry), este deverá ser desprezado
  • 14. 27 Representação de Alguns Números 1000-8 111110001001-7 111010011010-6 110110101011-5 110010111100-4 101111001101-3 101011011110-2 100111101111-1 10001111-0 000000000000+0 000100010001+1 001000100010+2 001100110011+3 010001000100+4 010101010101+5 011001100110+6 011101110111+7 SINAL-MAGNITUDECOMPLEMENTO DE UMCOMPLEMENTO DE DOISDECIMAL 28 Comentários sobre as Representações – Complemento de um e Sinal-Magnitude: • Problema: duas representações distintas para o zero (0) – Complemento de dois: • Representa um número negativo a mais do que os outros dois formatos
  • 15. 29 Tópicos deste Módulo – 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 30 Soma/Subtração em Complemento de Dois – 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 • X pode ser positivo ou negativo em complemento de dois • Y pode ser positivo ou negativo em complemento de dois – Procedimento: • 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
  • 16. 31 Soma em Complemento de Dois – Regra: X + Y – Exemplos: Devemos descartar o vai-um final 32 Subtração em Complemento de Dois – Regra: X − Y • X pode ser positivo ou negativo em complemento de dois • Y pode ser positivo ou negativo em complemento de dois – Procedimento: • Devemos, primeiramente, realizar o complemento de dois de Y • Depois, devemos somar o operando X com o complemento de dois de Y • Na subtração 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 subtração
  • 17. 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 final 34 Subtração em Complemento de Dois (continuação) – Curiosidade: • (± A) − (+ B) = (± A) + (− B) • (± A) − (− B) = (± A) + (+ B) – Por isso, a subtração pode ser realizada através do complemento de dois e da soma.
  • 18. 35 Circuito Somador/Subtrator de 4 bits – 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 – 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: 1 1 1 1 (15) 0 0 0 1 (1) 1 1 1 + 1 0 0 0 0 (16) Imagine um circuito com 4 bits para a representação de dados O número (16)10 não pode ser representado com apenas 4 casas – O vai-um final não pode ser utilizado para representar o resultado, pois temos somente 4 bits. – O vai-um final indica um overflow ou estouro de representação
  • 19. 37 Overflow – Complemento de Dois – E se estivermos trabalhando com números em complemento de dois? – Quando ocorre o overflow? • O fato de ocorrer vai-um final não implica necessariamente em overflow – Regra para determinar o overflow: • Observar o carry-in e o carry-out do bit mais significativo (bit de sinal) • Se os dois carries forem diferentes, ocorreu um overflow. 38 Overflow – Complemento de Dois (continuação) – Exemplo: 0 1 0 0 0 1 1 0 (+ 70) 0 1 0 1 0 0 0 0 (+ 80) 1 + 1 0 0 1 0 1 1 0 (+ 150) O carry_in = 1 e o carry_out = 0. Portanto, ocorreu um overflow Com 8 bits podemos representar apenas de +127 até -128
  • 20. 39 Overflow – Complemento de Dois (continuação) – Exemplo: 1 0 1 1 1 0 1 0 (- 70) 1 0 1 1 0 0 0 0 (- 80) 1 1 1 + 0 1 1 0 1 0 1 0 (- 150) O carry_in = 0 e o carry_out = 1. Portanto, ocorreu um overflow Com 8 bits podemos representar apenas de +127 até -128 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 sem sinal (unsigned)
  • 21. 41 Tópicos deste Módulo – 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 42 Multiplicação – Multiplicação utilizando um circuito combinacional – Operandos de 2 bits cada Operando A Operando B Resultado Produto parcial
  • 22. 43 Multiplicação (continuação) – Operando A de 3 bits cada – Operando B de 4 bits B3 B2 B1 B0 A2 A1 A0 A0B3 A0B2 A0B1 A0B0 A1B3 A1B2 A1B1 A1B0 A2B3 A2B2 A2B1 A2B0 + + C6 C5 C4 C3 C2 C1 C0 x AND dos B`s com A0 AND dos B`s com A1 AND dos B`s com A2 Precisamos de um Somador de 4 bits Precisamos de um Somador de 4 bits Resultado 44 Circuito do Multiplicador
  • 23. 45 Comentários sobre a Multiplicação – Existem muitas maneiras diferentes de implementarmos o circuito de multiplicação. • Por exemplo, utilizando um circuito seqüencial – Para evitarmos o overflow na multiplicação, precisamos de uma saída contendo: • Quantidade de bits do operando A + Quantidade de bits do operando B 46 Tópicos deste Módulo – 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
  • 24. 47 Comparador de Magnitude – Para números sem sinal: • O circuito deve indicar se dois números “A” e “B” são: – Iguais: A == B – Diferentes: » A > B » A < B – Considere os números sem sinal: – Para que A == B, todos os bits devem ser iguais entre A e B. • Ai == Bi, i = 0, 1, 2, 3. B = B3 B2 B1 B0 A = A3 A2 A1 A0 48 Comparador de Magnitude (continuação) – Para que A == B, todos os bits devem ser iguais entre A e B. • Ai == Bi, i = 0, 1, 2, 3. – Isso pode ser conseguido com a função coincidência • xi = Ai Bi + Ai Bi, i = 0, 1, 2, 3. – Portanto: • (A ==B) = x3 x2 x1 x0 Esta é a equação responsável pelo circuito (A == B)
  • 25. 49 Comparador de Magnitude (continuação) – Para que A > B ou A < B: • Temos que percorrer o vetor binário, começando com o bit mais significativo: – Se A3 = 1 e B3 = 0, temos que A > B – Se A3 = 0 e B3 = 1, temos que A < B – Se A3 = 0 e B3 = 0, devemos analisar os bits A2 e B2 – Se A3 = 1 e B3 = 1, devemos analisar os bits A2 e B2 – Assim, temos: • (A > B) = A3 B3 + x3 A2 B2 + x3 x2 A1 B1 + x3 x2 x1 A0 B0 • (A < B) = A3 B3 + x3 A2 B2 + x3 x2 A1 B1 + x3 x2 x1 A0 B0 Esta é a equação responsável pelo circuito (A < B) Esta é a equação responsável pelo circuito (A > B) 50 Circuito Comparador de Magnitude
  • 26. 51 Comparação Utilizando a Subtração – 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: • 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: » devemos realizar o complemento de dois de N » e depois somar M com o complemento obtido. – Se M ≥ N, então a soma acima produzirá um carry (vai-um) » Se o resultado for igual a zero, então M == N – Se M < N, então a soma não produzirá um carry. 52 Comparação Utilizando a Subtração (continuação) – Quando realizamos a regra mostrada anteriormente para a comparação, matematicamente temos: M + (2n − N) = M − N + 2n (representação em decimal) – Se M ≥ N, então a soma acima produzirá um carry (vai-um) • Esse carry é justamente o 2n da expressão acima. • Dessa forma, basta desprezarmos o vai-um para obtermos o valor M − N – Se M < N, então a soma não produzirá um carry • 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 Quantidade de dígitos do número N em binário Para N ≠ 0, esta expressão representa o complemento de dois de N Para N = 0, o complemento de dois é igual a zero
  • 27. 53 Comparação Utilizando a Subtração (continuação) – Sendo assim, temos: • Resposta = M − N + 2n • Se fizermos o complemento de dois da resposta, temos: 2n − [M − N + 2n] = 2n − 2n – M + N= N – M – 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 • Com isso, representamos o número em sinal-magnitude Isso representa o valor absouto (magnitude) do resultado 54 Comparação Utilizando a Subtração (continuação) – Exemplo (X – Y): • X = 1010100 (Número sem sinal) • Y = 1000011 (Número sem sinal) Y = 1 0 0 0 0 1 1 0 1 1 1 1 0 0 (Inverter os bits) + 0 0 0 0 0 0 1 (Somar 1) 0 1 1 1 1 0 1 (complemento de dois de Y) • Como houve vai-um final, então A > B. – Descartamos o vai-um e assim obtemos a resposta correta: 0010001 1 0 1 0 1 0 0 (X) Vai-um final + 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 (complemento de dois de Y) • Realizar a Soma:
  • 28. 55 Comparação Utilizando a Subtração (continuação) – Exemplo (Y – X): • X = 1010100 (Número sem sinal) • Y = 1000011 (Número sem sinal) X = 1 0 1 0 1 0 0 0 1 0 1 0 1 1 (Inverter os bits) + 0 0 0 0 0 0 1 (Somar 1) 0 1 0 1 1 0 0 (complemento de dois de Y) • Como não houve vai-um final, então A < B. – Devemos realizar o complemento de dois do resultado e colocar o sinal de negativo na frente: − 0010001 1 0 0 0 0 1 1 (Y) Não houve Vai-um final + 1 1 0 1 1 1 1 0 1 0 1 1 0 0 (complemento de dois de X) • Realizar a Soma: 56 Tópicos deste Módulo – 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
  • 29. 57 Outros Blocos Aritméticos – Divisores – Números em ponto flutuante • Uma palavra de N bits é dividida em duas partes: – o expoente e – a mantissa M – Representação: M * Be, onde B é a base 2 – Incremento e Decremento • Podemos reduzir o hardware quando trabalhamos com constantes – Multiplicação/Divisão por constantes • Podemos reduzir o hardware quando trabalhamos com constantes – Funções trigonométricas • Seno/Cosseno/Tangente • Implementação de funções de aproximação • Armazenamento de Tabelas contendo os resultados – Zero fill e extensão de sinal 58 Zero Fill 0 1 1 0 1 0 1 1 (saída de um circuito qualquer que possui 8 bits) 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 (entrada num circuito que possui 16 bits) Preenchimento com zeros
  • 30. 59 Extensão de Sinal 0 1 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) Preenchimento com zeros – Número Positivo: 1 0 0 1 0 1 0 1 (−107 em decimal) 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 (−107 em decimal) Preenchimento com 1`s – Número Negativo (complemento de dois): 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: • Somadores: – Carry save adder – Carry select adder – Carry look-ahead adder – Ripple carry adder – Implementações híbridas • Multiplicadores: – Utilizando circuitos combinacionais – Utilizando circuitos seqüenciais
  • 31. 61 Sumário – 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: • A subtração pode ser realizada utilizando o circuito digital de soma – O circuito de multiplicação pode ser composto por um vários somadores paralelos – Comparadores de Magnitude: • Podemos utilizar um circuito digital específico • Podemos utilizar a subtração em complemento de dois e alguns sinais de carry – Existem diversos tipos de blocos aritméticos: • Divisores/ Funções Trigonométricas/ Operações com Constantes/ Zero Fill/ Extensão de Sinal/ Implementações com circuitos seqüenciais