Baixe o app para aproveitar ainda mais
Prévia do material em texto
CAP. 06 Circuitos Aritméticos UNIFACS – 2015_02 Prof. Elio Pithon Sarno Filho Adição decimal Adição binária Subtração binária Complemento de 1 (45) Complemento de 2 • Números positivos: I) Magnitude representada na forma binária direta II) Bit de sinal “0” colocado antes do MSB • Números negativos: I) Magnitude na forma complemento de 2 II) Bit de sinal “1” colocado antes do MSB • O sistema de complemento de 2 é usado para representar números com sinal porque permite realizar a subtração efetuando uma adição • Utilização do mesmo circuito lógico • Economia de hardware O processo pode ser realizado em apenas um passo : Extensão de sinal (-9) Negação • Para sabermos o valor decimal de um número negativo representado em complemento de 2, é preciso negá-lo pelo processo de complementação de 2 para obtermos seu equivalente positivo e, então, descobrirmos a sua magnitude • Sempre que um número com sinal tiver um 1 no bit de sinal e todos os bits de magnitude forem 0, seu equivalente decimal será em que N é o número de bits da magnitude. • Neste caso, o complemento de 2 produz o próprio número original, uma vez que estamos no limite negativo do intervalo de valores representáveis com N+1 bits: • Se estendermos o sinal desses números especiais, o processo de negação funcionará normalmente: Faixa de valores representáveis com N bits em complemento de 2 N=3 Adição e subtração em complemento de 2 • Números negativos representados em complemento de 2 • A mesma operação realizada sobre os bits de magnitude é realizada sobre o bit de sinal • Os dois operandos devem ter a mesma quantidade de bits Dois números positivos Um número positivo e outro menor e negativo Um número positivo e outro maior e negativo Dois números negativos Números iguais e de sinais opostos • Mesmo processo utilizado na soma • Para efetuar a subtração : Minuendo - Subtraendo • 1) Fazer a negação do subtraendo • 2) Somar este resultado ao minuendo Overflow • Nos casos até aqui considerados, os números possuem um bit de sinal e N bits de magnitude. Os resultados também. Quando acontece um carry para a posição mais significativa do que a do bit de sinal, este bit é desconsiderado. Em todos estes casos, a magnitude da resposta é suficientemente pequena para ser representada pelos N bits. • Analisemos o seguinte caso: • Neste caso N = 4 • A resposta deveria ser +17, porém a magnitude 17 requer mais de 4 bits e, portanto, ocorreu overflow na posição do bit de sinal • A condição de overflow ocorre apenas quando dois números positivos ou dois negativos são somados. E isto produz sempre resultado errado • Neste caso, o overflow pode ser detectado verificando se o bit de sinal do resultado tem o mesmo valor dos bits de sinal dos números que estão sendo somados • Como a subtração em complemento de 2 é realizada pela operação de negação do subtraendo, o overflow pode ocorrer apenas quando o minuendo e o subtraendo tiverem sinais diferentes. • Por exemplo: se subtrairmos -8 de +9. A operação de negação de -8 produz +8 que, somado com +9 ocasiona overflow, como visto anteriormente • Os computadores possuem um circuito especial para detectar qualquer condição de overflow quando dois números são somados ou subtraídos. Esse circuito envia um sinal para a unidade de controle do computador, informando que ocorreu overflow e que o resultado está incorreto. • A maioria das máquinas digitais pode somar apenas dois números binários de cada vez: • Multiplicando e multiplicador deve estar no formato binário direto • Assim, a multiplicação é realizada como anteriormente • 1) Dois números positivos: já estão no formato binário; resultado é positivo e o bit de sinal é zero • 2) Dois números negativos: devem ser convertidos para binário, achando o complemento de 2; o produto é mantido como número positivo e o bit de sinal é zero • 3) Um número positivo e o outro negativo: o negativo é convertido em uma magnitude positiva. O produto tem um formato com magnitude direta. Porém, como o produto de números com sinais opostos é negativo, o resultado deve ser convertido em representação negativa por complemento de 2 e o bit de sinal deve ser 1. Sugestão de Exercícios: • 6.1 até 6.11 FUNÇÕES XOR e XNOR XOR XNOR Simplificação do termo S Simplificação do termo S Simplificação do termo COUT A saída , denominada carry out, é o transporte gerado para a soma dos próximos 2 bits mais à esquerda. Somador de 5 bits • Em um computador os números a serem somados são armazenados em registradores • Os bits da primeira parcela são armazenados no acumulador (registrador A) e os da segunda parcela , no registrador B • Os registradores são implementados com flip-flops tipo D para uma fácil transferência de dados • O conteúdo de A é somado ao de B e o resultado aparece nas saídas S • O bit de carry gerado na soma de cada dois bits é transferido ao próximo estágio através da saída Cout, interconectada à entrada Cin do estágio seguinte. • O bit C4 (carry out do último estágio) pode ser usado como carry in de um quinto estágio ou como bit de overflow, para indicar que a soma excedeu a 1111 • As saídas S do resultado são conectadas às entradas D do registrador A, para serem armazenados quando ocorrer a borda de subida do pulso TRANSFER • Os dados provenientes da memória são armazenados no registrador B quando ocorrer a borda de subida do pulso LOAD • As saídas o registrador A estão disponíveis para transferência de dados para outros destinos (outro registrador ou memória do computador) • Desta forma o circuito somador está disponível para somar um novo conjunto de dois números • Soma dor paralelo de alta velocidade: todos os bits somados simultaneamente • Velocidade limitada pelo efeito “ripple carry” (propagação do carry): • A geração do bit MSB, depende não apenas dos dois bits MSB das parcelas somadas e do bit de carry da posição anterior, mas também do carry gerado na adição da primeira posição (C1) C1 • Portanto, o bit S3 gerado pelo somador MSB depende do bit C1 gerado pelo primeiro somador (LSB) • Porém o sinal C1 tem de passar pelos três Faz antes de gerar a saída S3, ou seja, S3 não alcançará o valor correto até que C1 tenha se propagado através dos FAs intermediários. • Se cada FA tem um atraso de 40ns, o MSB só estará pronto após 160ns ( contando o atraso para a geração de C1 no somador LSB) • À medida em que aumenta o número de bits, a situação se torna mais crítica. Par um somador de 32 bits, o atraso de propagação do carry seria de 1,28μs. Portanto, o pulso de soma (transfer) não poderia ser aplicado antes deste intervalo de tempo. • Essa magnitude de atraso é proibitiva para computadores de alta velocidade e, principalmente, em DSPs • Uma das soluções encontradas para este problema foi um circuito lógico chamado “carry antecipado” (look-ahead carry), em que se utiliza portas lógicas para “observar” os bits de ordem mais baixa e ver se um carry de ordem mais alta será gerado. Obviamente este circuito tem um atraso menor do que aquele obtido pela propagação do carry através dos FAs. • Este esquema exige um circuito mais complexo, porém é utilizado em circuitos integrados de alta velocidade. • Ocarry antecipado do 74HC283 aumenta a velocidade de operação dos dois estágios somadores uma vez que o nível lógico em C4 (carry de saída do estágio de baixa ordem) é gerado mais rapidamente do que se não tivesse este circuito. • Desta forma, o estágio de ordem mais elevado pode gerar sua soma mais rapidamente Meio Subtrator Subtrator Completo O bit C4 é desconsiderado Em complemento de 2
Compartilhar