Circuitos Digitais I - Aritmética Digital PDF
Document Details
Uploaded by SpellbindingDramaticIrony
Universidade Estadual de Londrina
Ronald J. Tocci e Neal S. Widmer
Tags
Summary
Este documento apresenta notas de aula sobre circuitos digitais e aritmética digital, incluindo tópicos como adição binária, representação de números com sinal (sinal-magnitude e complemento de 2), e exemplos de problemas. O documento também cobre outros tópicos como multiplicação, divisão, adição BCD e aritmética hexadecimal.
Full Transcript
2ELE064 – Circuitos Digitais I Aritmética Digital: Operações e Circuitos Prof. Newton da Silva Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall ...
2ELE064 – Circuitos Digitais I Aritmética Digital: Operações e Circuitos Prof. Newton da Silva Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Organização Adição Binária Representação de números com sinal Adição no sistema de complemento de 2 Subtração no sistema de complemento de 2 Multiplicação de números binários Divisão binária Adição BCD Aritmética Hexadecimal Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Organização Circuitos Aritméticos Somador Binário Paralelo Projeto de um Somador Completo Somador Paralelo Completo com Registradores Propagação do Carry Somador Paralelo em Circuito Integrado Sistema de Complemento de 2 Somador BCD Circuito Integrado ALU Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição Binária A adição binária é feita da mesma forma que na adição decimal. A soma é feita da direita para esquerda. Caso a soma passe de um algarismo, ocorre o chamado “vai um” (carry) Não precisamos considerar a soma de mais de dois números, pois os sistemas digitais fazem apenas a soma de duas parcelas de cada vez. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 1 1. Efetue as seguintes somas: (a) 10001 + 1111 (b) 11111 + 11111 (c) 111100010 + 101001000 2. A soma de 8 bits com 8 bits resulta no máximo quantos bits ? Generalize a resposta para o caso de N bits. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição Binária A adição é a operação mais importante para os computadores digitais. Como veremos, as demais operações dependem da adição para serem implementadas. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal Até agora quando analisamos uma string de bits consideramos que todos os bits são informações referente a magnitude, mas em sistemas computacionais é necessário incluir a representação de sinal. Por convenção optou-se separar um bit do número para que o mesmo indique o sinal do número. Pela convenção: 0 = + e 1 = – Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal Quando o primeiro bit é escolhido para representar o sinal, diz-se que o número está na representação de sinal-magnitude: Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal A representação sinal-magnitude é simples, mas a implementação para uso é complexa e portanto a representação mais utilizada é a do sistema de complemento de 2. Inicialmente, complemento de 1: substitui- se cada bit pelo seu complemento 01111 => 10000 1111001001111 => 0000110110000 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal O complemento de 2, é o complemento de 1, somando-se 1 na posição do bit menos significativo: 01010 => 10101 + 1 = 10110 01111 => 10000 + 1 = 10001 00001011 => 11110100 + 1 = 11110101 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal / Comp. de 2 O sistema de complemento de 2 funciona da seguinte forma: – Se o número for positivo, a magnitude é representada na forma binária direta, e um bit de sinal 0 é colocado em frente ao bit mais significativo (MSB). – Se o número for negativo, a magnitude é representa na sua forma do complemento de 2 e um bit de sinal 1 é colocado em frente ao MSB. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 2 1. Represente os seguintes números decimais com sinal com um número binário com sinal no sistema de complemento de dois. Utilize 5 bits, incluindo o bit de sinal. (a) +13 (b) –9 (c) +3 (d) –2 (e) –8 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 2 / Solução (a) +13 13 = 11012 Adicionando o bit de sinal: 01101 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 2 / Solução 1 (b) –9 9 = 10012 Comp. de 1: 0110 Comp. de 2: 0111 Adicionando-se o bit de sinal: 10111 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 2 / Solução 2 (b) –9 9 = 010012 valor já com bit de sinal =>+9 Comp. de 1: 10110 Comp. de 2: 10111 =>mesmo resultado anterior Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 3 Converta os números +13 e –9 para complemento de 2 em 8 bits. + 13 => 01101 =>5 bits representação Adicionam-se zeros à esquerda (valor positivo) + 13 => 00001101 -9 => 10111=>5 bits representação Adicionam-se 1s a frente (valor negativo) -9 => 11110111 Obs: pode-se obter o valor -9 a partir de +9 (8 bits) com complemento de 2 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal / Negação É a conversão de um número positivo em seu equivalente negativo ou vice-versa. Quando um número esta em complemento de 2 a negação é obtida simplesmente realizando a operação de complemento de 2 com já feito anteriormente. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal / Faixa de Representação Um número em complemento de 2 também pode ser compreendido como sendo um binário onde o MSB vale –2N, onde N é número de bits da magnitude: 1000 = –8 => –23 10000 = –16 => –24 100000 = –32 => –25 10000000 = –128 => –27 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Representação de Números com Sinal / Faixa de Representação Um número com n bits possibilita escrever números da faixa de –2n-1 a 2n–1 –1, incluindo o zero. Com um byte (8 bits) é possível escrever de – 128 a +127 (char) (–28-1 a 28–1 –1= –27 a 27 –1) Com dois bytes (16 bits) é possível escrever de – 32768 a +32767 (int). Obs: o número de bits de magnitude = n bits-1 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 4 1. Faça uma tabela com os números binários de quatro bits que representam de +7 a –8. 2. Converta +120 para negativo em complemento de 2 / 8 bits. 3. Converta os valores escritos na forma de complemento de 2 para o valor decimal: 00011111 11110100 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição no Sistema de Complemento de 2 Caso I: dois números positivos: +9 + (+4) = +13 Caso II: um positivo e um negativo menor: +9 + (–4) = + 5 (-4 será representado na forma de complemento de 2) Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição no Sistema de Complemento de 2 Caso III: um positivo e um negativo maior: –9 + 4 = –5 Resultado da Soma negativa em complemento de 2 Caso IV: dois negativos: –9 – 4 = –13 Resultado novamente negativo na forma complemento de 2 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição no Sistema de Complemento de 2 Caso V: Número iguais de sinais opostos: –9 + 9 = 0 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Subtração no Sistema de Complemento de 2 A operação de subtração que usa o sistema de complemento de 2 na verdade envolve a operação soma e não diferente dos diversos casos de adição já vistos. Os procedimentos para uma subtração são: – Faça a operação de negação do subtraendo. – Adicione esse número obtido ao minuendo. Ex.: Faça +9 – (+4) // Em quatro bits. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Overflow Aritmético O que acontece quando o total de uma soma passa o número de bits que a representação suporta? Ex.: +8 +9 = +17 ? // Em cinco bits incluindo o sinal: +9 = 01001 A magnitude de 17 +8 = 01000 requer mais do que 4 bits = 10001 = –15 (Overflow!) Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Overflow aritmético Quando a soma de dois números de mesmo sinal resulta em um número de sinal diferente é porque ocorreu um overflow. Computadores possuem um circuito na ULA (unidade lógica aritmética) para detectar e indicar este erro (flag OVF) Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Multiplicação de Números Binários A multiplicação de números binários é feita da mesma maneira que na multiplicação de números decimais. Na realidade, o processo é mais simples, visto que os dígitos multiplicadores podem ser 0 ou 1: Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 4 Prentice Hall Multiplicação de Números Binários Exemplo: Multiplicar 1001 (9) por 1010 (11), cujo resultado é igual a 1100011 (99). Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 4 Prentice Hall Multiplicação de Números Binários Como os somadores dos computadores somam apenas dois binários de cada vez, o produto pode ser modelado como um acumulador de somas do primeiro operando dados deslocamentos controlados pelo segundo operando: Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Multiplicação no Sistema de Complemento de 2 Nos computadores que utilizam a representação do complemento de 2, a multiplicação é realizada da forma descrita acima, desde que o multiplicando e multiplicador sejam inseridos no formato binário direto. (valores positivos) Caso um dos operandos seja negativo, é necessário convertê- lo para positivo, multiplicar e depois negar o produto. (complemento de 2 no resultado) Caso os dois números sejam negativos, é necessário convertê-los para complemento de 2, antes de multiplicar, mas não será necessário negar o resultado. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Divisão Binária O processo para dividir um número binário (o dividendo) por outro (o divisor) é o mesmo seguido para números decimais, o qual normalmente nos referimos como “divisão longa”. Este processo é mais simples com números binários, pois quando verificamos quantas vezes o divisor cabe dentro do dividendo, existem apenas duas possibilidades: 0 ou 1. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Divisão Binária Ex.: 1001 / 11 = 0011 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Divisão Binária Na divisão as subtrações são feitas convertendo o subtraendo para complemento de 2 e depois somando. Para números negativos o tratamento é o mesmo da multiplicação. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição BCD Soma menor ou igual a 9 (cada dígito) Exemplo 1 Exemplo 2 Nenhum carry (vai 1) decimal produzido, mesmo processo da soma binária Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição BCD Soma maior que 9 Exemplo 3 Resultado inválido, Soma excede o valor 9 Somar o valor 6 para Corrigir os códigos inválidos Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição BCD Soma maior que 9 Exemplo 4 A soma dos 4 bits do primeiro dígito é corrigida somando-se o valor 6 que gera um carry (transporte de 1) que é somado ao resultado da segunda soma dos outros 4 bits do segundo dígito. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição BCD Soma maior que 9 Exemplo 5 O carry resultante da soma dos primeiros dígitos é somado aos dígitos da próxima posição. O fator de correção corrigi o resultado do valor final do primeiro dígito. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição BCD Resumindo: – Some os códigos BCD para cada dígito; – Quando o resultado da soma for menor ou igual 9, nenhuma correção é necessária; – Quando a soma de um dígito for maior que 9, some 0110 (6) para corrigir o resultado. Some o carry gerado para o digito da próxima posição (à esquerda). O carry é sempre gerado, seja pela adição original, seja pela adição da correção. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Aritmética Hexadecimal Como já visto, números hexadecimais são nada mais que uma compactação para números binários. São extensivamente utilizados para representação dos endereços e conteúdos de memórias, barramentos, saídas de conversores AD, entrada de DAC, etc.. Com frequência precisamos operá-los na forma positiva e negativa. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Aritmética Hexadecimal Exemplo 1 (sem Exemplo 2 (com Transporte de carry) transporte de carry) Substituir mentalmente 11 por B O valor 19 (8+11) subtrair de 16 = 13 Escrever o dígito 3 abaixo de 8 + B e o transporte de carry na próxima posição Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Aritmética Hexadecimal Exemplo 3 F + C => 15 + 12 = 27 27 > 16 => 27 -16 = 11 = B com carry de 1 para próxima posição. A + 3 => 10 + 3 + carry =>14 = E 3 + 2 => 5 As subtrações podem ser feitas considerando o mesmo procedimento para binários, basta fazer o complemento do minuendo. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Aritmética Hexadecimal Complemento de 2 em hexa) Exemplo 4 Subtração (59216 – 3A516) 3A516 =>complemento de 2 => C5B16 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Aritmética Hexadecimal Ex.: Converta os seguintes números para Hexadecimal de 1 byte com sinal: (a) –128 (10000000)2 => 8016 (b)–1 (11111111)2 => FF16 Para valor negativo o bit MSB = 1 (c) 127 (01111111)2 => 7F16 Para valor positivo (d)99 (01100011)2 => 6316 oValores bit MSB = 0 negativos em (e) –99 (10011101)2 => 9D16 complemento de 2 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Circuitos Aritméticos A função essencial da maioria dos computadores e calculadoras é a realização de operações aritméticas. Estas operações são realizadas na unidade lógica e aritmética de um computador, na qual portas lógicas e flip-flops são combinados para poder somar, subtrair, multiplicar, dividir e efetuar operações lógicas entre os operandos. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Circuitos Aritméticos / ULA A Figura a seguir mostra uma ULA de um computador. A ULA contém pelo menos dois registradores: o registrador B e o Acumulador (ACC ou A). A ULA efetua operações aritméticas e lógicas entre A e B e o resultado fica em A de acordo com as instruções provinentes da unidade de controle. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall ULA de um Computador Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall ULA de um Computador Uma sequência típica de operações que ocorre na ULA em uma soma: – A unidade de controle recebe instruções especificando o número armazenado em um determinado endereço de memória que será somado ao número armazenado em A. – O número é transferido da memória para B. – Os números em A e B são somados no circuito lógico e o resultado fica em A. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador Binário Paralelo Computadores e calculadoras realizam operações de adição sobre dois números binários de cada vez e cada número binário pode ter vários bits: Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador Binário Paralelo Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador Binário Paralelo Para um bit qualquer no meio da string de bits a soma significa: somar o carry que vem da soma anterior, mais os dois bits atuais e as saídas são a soma destes três bits e um carry que vai para o próximo bit. O bloco que efetua a função descrita acima é denominado full adder (somador completo). Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador Binário Paralelo Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exemplo 5 Projete o circuito do full adder. Utilize Mapa de Karnaugh, escreva as funções e escreva com EX-ORs sempre que possível. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Projeto de um Somador Completo Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Projeto de um Somador Completo Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Projeto de um Somador Completo Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Projeto de um Somador Completo Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Projeto de um Somador Completo com Meio Somador Meio Somador Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Notação para Registradores Para descrever a sequência de operações que ocorrem, sem ter que fazer um diagrama temporal, pode-se utilizar uma notação de registradores: [A] 0000 // Pulso de clear faz A zerar [B] [M1] // No primeiro LOAD B recebe o conteúdo da memória M1. [A] [S] // Como [B] e [A] carregados, [A] recebe a soma dado um pulso em TRANSFER. [A] contém M1. [B] [M2] // No segundo LOAD B recebe outro conteúdo de memória. [A] [S] // No segundo TRANSFER [A] recebe a soma de [A] mais [B] No final das contas: [A] => representação do conteúdo do registrador A [A] ficou com o resultado da soma [M1] + [M2]. [A] Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Propagação do Carry Um limitante para o full adder modular é o tempo de propagação do carry que obrigatoriamente passa por todos os FA até chegar ao último. Se considerarmos que cada FA demora 40 ns para estabilizar o carry, teremos em uma soma de 32 bits + 32 bits, 40 * 32 = 1280 ns, ou 1,28 ms. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador Paralelo em Circuito Integrado Os CIs somadores de 4 bits comuns são o 7483 ou 74283 praticamente idênticos, exceto pelos pinos de alimentação. Este CI implementa um somador de quatro bits com carry antecipado para operação em alta velocidade. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador 74HC283 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Conexão em Cascata 74HC283 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Sistema de Complemento de 2 As operações de números com sinal podem ser realizadas utilizando apenas a operação de adição se os números negativos estiverem em complemento de 2. Adição: a única diferença é quando se utiliza complemento de 2, o carry é descartado. Subtração: basta complementar o subtraendo e somá-lo ao minuendo. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador paralelo / Comp. 2 Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Somador paralelo efetuando uma subtração Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Adição e Subtração Combinadas Um somador paralelo pode efetuar tanto a soma quando a subtração, tanto normal quando em complemento de 2. Na soma, tudo funciona normalmente. Na subtração é necessário inverter o subraendo e colocar o carry0 = 1. Com base nestas características pode-se unir construir um hardware único. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Circuito Integrado ALU (ULA) Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall ALU em cascata Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 6 Prentice Hall Exercícios Sugeridos Tocci, 11a Ed. Cap 6. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 4 Prentice Hall