SISTEMAS DIGITAIS Circuitos combinatórios típicos: circuitos aritméticos Prof. Carlos Sêrro Prof. João Paulo Carvalho Outubro de 2005 Sistemas Digitais 1 Prof. Carlos Sêrro Prof. João Paulo Carvalho Circuitos aritméticos Circuitos aritméticos são aqueles que realizam operações aritméticas sobre números binários O circuito aritmético mais simples é o que soma números de apenas 1 bit Basta partir da conhecida tabela da soma binária para o obter um semi-somador Outubro de 2005 Sistemas Digitais 2 Prof. Carlos Sêrro Prof. João Paulo Carvalho Semi-somador Tabela de verdade lógica de um semisomador A+B A=0 A=1 B=0 0 1 B=1 1 10 Outubro de 2005 Sistemas Digitais AB Soma Transporte 00 0 0 01 1 0 10 1 0 11 0 1 3 Prof. Carlos Sêrro Prof. João Paulo Carvalho Semi-somador Logigrama de um semi-somador AB Soma Transporte 00 0 0 01 1 0 10 1 0 11 0 1 Cout A B S A B O nome semi-somador vem do facto de este circuito não permitir somar o transporte que venha de bits de menor peso Outubro de 2005 Sistemas Digitais 4 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somador Completo A um somador de 1 bit que tenha em conta o transporte de somas anteriores chamase somador completo Outubro de 2005 Sistemas Digitais 5 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somador Completo Tabela de verdade lógica e equações A B Cin S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 AB 00 Cin 01 11 10 0 0 1 0 1 1 1 0 1 0 AB 00 Cin 01 11 10 0 0 0 1 0 1 0 1 1 1 S Cin A B Cin A B Cin A B Cin A B A B Cin Cout A B Cin A Cin B A B Cin A B 1 1 Porquê? Outubro de 2005 Sistemas Digitais 6 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somador Completo Logigrama de um somador completo CO A B CI A CI B S A B CI A B CI A B Semi-somadores Outubro de 2005 Sistemas Digitais 7 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somadores de n bits Assumindo blocos de somadores completos, é possível construir somadores de n bits Exemplo: Um somador de 4 bits Outubro de 2005 Sistemas Digitais 8 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somadores de n bits Somador iterativo de 4 bits A C B n C n-1 S A A C Ci 0 C B B n Outubro de 2005 n 0 A 0 A n C n-1 S n n 0 S Estrutura iterativa (série) Somador completo n n C B 1 B n S S n 1 A n C n-1 A 1 n C B 2 B n S S A n C n-1 A 2 n n 2 Sistemas Digitais C B 3 B n 3 n C n-1 S S n CC3o n 3 9 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somadores de n bits Símbolo IEC de um somador sompleto de : 4 bits 0 P 3 0 S 0 Q 3 3 CI Outubro de 2005 CO Sistemas Digitais 10 Prof. Carlos Sêrro Prof. João Paulo Carvalho Subtracções O algoritmo da subtracção numa base qualquer é semelhante ao da adição Se o aditivo é maior ou igual ao subtractivo, faz-se a subtracção (em decimal) Neste caso não é gerado transporte para a coluna seguinte Se o aditivo é menor do que o subtractivo, adiciona-se a base ao aditivo (em decimal) e só depois se faz a subtracção Neste caso gera-se um transporte igual a 1 para a coluna seguinte Outubro de 2005 Sistemas Digitais 11 Prof. Carlos Sêrro Prof. João Paulo Carvalho Subtracções Ex. na base 10 15 (10) - 7 (10) 8 (10) Ex. na base 16 B5 (16) - E (16) A7 (16) Outubro de 2005 Sistemas Digitais 12 Prof. Carlos Sêrro Prof. João Paulo Carvalho Números com Sinal A representação de números inteiros tem de ter em conta que os números podem ser positivos, negativos ou o número 0 Uma das alternativas é a representação por módulo e sinal, em que o bit mais significativo indica o sinal. Se esse bit for 1 o número é negativo, se for 0 é positivo Outubro de 2005 Sistemas Digitais 13 Prof. Carlos Sêrro Prof. João Paulo Carvalho Números com Sinal Exemplo para números de 4 bits: Representação Número representado Representação Número representado 0000 0 1000 -0 0001 +1 1001 -1 0010 +2 1010 -2 0011 +3 1011 -3 0100 +4 1100 -4 0101 +5 1101 -5 0110 +6 1110 -6 0111 +7 1111 -7 Outubro de 2005 Sistemas Digitais 14 Prof. Carlos Sêrro Prof. João Paulo Carvalho Módulo e sinal Inconvenientes: Duas representações diferentes para o zero O módulo e o sinal são processados de forma diferente É necessário escolher a operação a realizar de acordo com a operação desejada e o sinal dos números envolvidos Outubro de 2005 Sistemas Digitais 15 Prof. Carlos Sêrro Prof. João Paulo Carvalho Módulo e sinal Por exemplo: Se pretendermos fazer a operação (+5) + (-3), o que é realmente necessário fazer é a subtracção 5-3 ficando o sinal positivo Se o problema for realizar (-5) + (+3), então há que realizar também uma subtracção mas do módulo do número negativo menos o do positivo, isto é, 5-3, ficando depois o sinal negativo Outubro de 2005 Sistemas Digitais 16 Prof. Carlos Sêrro Prof. João Paulo Carvalho Módulo e sinal Obviamente, tudo isto complica a realização das operações (e, por consequência, dos circuitos) que tenham que realizar essas operações Outubro de 2005 Sistemas Digitais 17 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Chama-se complemento para 2n de um número X de n bits, ao resultado da operação 2n – X Por exemplo, o complemento para 2 de 0101 é: 10000 - 0101 1011 Outubro de 2005 Sistemas Digitais 18 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Se um número X tem n bits, então o seu complemento para 2 é representado por n bits O complemento para 2 do complemento para 2 de um número X é X: 2n - (2n – X) = X Outubro de 2005 Sistemas Digitais 19 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Formas alternativas de encontrar o complemento para 2 de um número X: Inverter todos os bits de X e somar 1 ao resultado Manter todos os 0’s menos significativos e ainda o primeiro 1 de X, e inverter os restantes bits mais significativos Outubro de 2005 Sistemas Digitais 20 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Na representação de números com sinal em complemento para 2, o bit mais significativo do número também indica o sinal Se for 1 o número é negativo, se for 0 é positivo Na representação de números com sinal em complemento para 2 Um número positivo é representado pelo seu módulo (como na notação de sinal e módulo) Um número negativo é representado pelo complemento para 2 do seu módulo Outubro de 2005 Sistemas Digitais 21 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Por exemplo, o número +6 é representado em notação de complemento para 2 com 4 bits por 0110, e o número -6 é representado por 1010: 6 = 0110 ► complementando bit a bit, 1001 ►1001 +1 = 1010 = -6 Repare-se que a determinação do complemento para 2 de um número positivo de n bits deixa automaticamente o bit de sinal a 1 Outubro de 2005 Sistemas Digitais 22 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Os 16 números possíveis de representar em complemento para 2 com 4 bits são: Representação Número representado Representação Número representado 0000 0 1000 -8 0001 +1 1001 -7 0010 +2 1010 -6 0011 +3 1011 -5 0100 +4 1100 -4 0101 +5 1101 -3 0110 +6 1110 -2 0111 +7 1111 -1 Outubro de 2005 Sistemas Digitais 23 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 O intervalo de representação em complemento para 2 é [-2n-1, +2n-1-1] Com 4 bits dá [-8,+7] Com 5 bits dá [-16,+15]. Etc. A razão da assimetria entre o número de positivos e o de negativos radica no facto de não haver duas representações para o 0 nesta notação Outubro de 2005 Sistemas Digitais 24 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Com esta representação, pode operar-se sobre os números como em binário puro O bit de transporte que resultar para além do último deve ser descartado Não precisamos de nos preocupar com o bit de sinal dos operandos e do resultado Desde que o resultado caiba em n bits, ele está correcto Outubro de 2005 Sistemas Digitais 25 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Exemplos Soma de 2 positivos (+2) + (+5) = +7 0010 0101 0111 Soma de 2 negativos (-2) + (-5) = -7 1110 1011 11001 Ignora-se o transporte porque sai dos 4 bits utilizados na representação Outubro de 2005 Sistemas Digitais 26 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Exemplos Soma de 1 positivo com 1 negativo com resultado negativo Soma de 1 positivo com 1 negativo com resultado positivo (+5) + (-3) = +2 0101 1101 10010 (+2) + (-5) = -3 0010 1011 1101 Ignora-se o transporte porque sai dos 4 bits utilizados na representação Outubro de 2005 Sistemas Digitais 27 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Quando a operação envolve dois números com o mesmo sinal, é possível que o resultado não possa ser representado com o número de bits disponível. Porque não “cabe” em n bits A esta situação chama-se OVERFLOW Outubro de 2005 Sistemas Digitais 28 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Por exemplo, 4 + 5 = 9, que não é representável com 4 bits em notação de complemento para 2 0100 0101 1001 O resultado é incoerente pois dá, em notação de complemento para 2, um número negativo: (-7) Outubro de 2005 Sistemas Digitais 29 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 O overflow nunca ocorre em operações de adição entre números com sinal contrário. Prova-se que o overflow ocorre sempre que o transporte para o bit de sinal é diferente do transporte para o exterior dos n bits Outubro de 2005 Sistemas Digitais 30 Prof. Carlos Sêrro Prof. João Paulo Carvalho Complemento para 2 Geometricamente temos 0 - 0000 -1 - 1111 1 - 0001 -2 - 1110 2 - 0010 -3 - 1101 3 - 0011 -4 - 1100 4 - 0100 -5 - 1011 5 - 0101 -6 - 1010 6 - 0110 -7 - 1001 Outubro de 2005 -8 - 1000 Sistemas Digitais 7 - 0111 31 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somador/Subtractor binário Em complemento para 2, realizar a subtracção x-y é o mesmo que realizar a soma x + (-y) Mas para isso precisamos de obter o simétrico do subtractivo nessa notação no fundo, obter o complemento para 2 do subtractivo Outubro de 2005 Sistemas Digitais 32 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somador/Subtractor binário Se o conseguirmos fazer de forma fácil, apenas precisamos de um somador para fazer somas e subtracções em notação de complemento para 2 Para obter o complemento para 2 do subtractivo fazemos: Obtemos o seu complemento para 1, por troca de 1s com 0s (usando um conjunto de XORs) Somamos 1 ao resultado que obtivermos Outubro de 2005 Sistemas Digitais 33 Prof. Carlos Sêrro Prof. João Paulo Carvalho Somador/Subtractor binário x 1=x x0=x Controlo Controlo B A B A B 1 =1 Operação 0 1 A+B A-B =1 =1 =1 0 P 3 0 Resultado S 0 3 A Q 3 Outubro de 2005 Sistemas Digitais CI CO 34