Baixe o app para aproveitar ainda mais
Prévia do material em texto
Faculdade de Engenharia de Ilha Solteira - Departamento de Engenharia Elétrica Circuitos Digitais II - Profa. Suely Cunha Amaro Mantovani - 1osem /2010 CIRCUITOS DIGITAIS II Aritmética Digital : Operações e Circuitos 1. Objetivos : executar adição, subtração , multiplicação e divisão de 2 números binários; Comparar as vantagens e desvantagens entre 3 diferentes sistemas de representação de números binários com sinal 2. Representação de Números com Sinal A representação de números em registradores usa os estados SET e RESET dos flip-flops para representar os numerais 0 e 1, respectivamente. Um registrador de 4-bits, formado por 4 ffs, pode armazenar números de 0 a 15. A representação da figura 1 está em forma circular para lembrar que o registrador tem um número finito de estados e após passar por cada estado, volta para o estado inicial. O registrador pode ser designado como um registrador de módulo 16 (2n) , onde n é o número de bits do contador. Fig.1 Este modo de representar o registrador indica que o ponteiro que representa a propriedade do registrador de 'girar' pelos seus estados em resposta ao pulso de relógio, pode ser usado para efetuar operações aritméticas. Operação Contar: avançar ou recuar o ponteiro uma posição, para indicar uma contagem. Operação Somar: limpar o registrador (resetar, o ponteiro aponta para 0000); avançar o ponteiro para a posição da primeira parcela e, em seguida, avançar o ponteiro um número de estados igual à segunda parcela; a posição final do ponteiro indicará o resultado da operação. Operação Subtrair: limpar o registrador (ponteiro em 0000); em seguida, o ponteiro é deslocado para a posição da primeira parcela(minuendo); depois o ponteiro deve recuar o número de posições igual ao valor da segunda parcela(subtraendo). Assim, o ponteiro indicará a posição igual ao valor da subtração. Observe que as operações são válidas somente dentro do módulo do registrador, isto é, operações no intervalo de 0 a 15. 2.1Representação de Números por Sinal-Magnitude Para representar números com sinal, na Representação de Números por Sinal- Magnitude usa-se o flip-flop da posição mais significativa (MSB) do registrador, para indicar o sinal do número. Por convenção adotada-se: 0 representa o bit de sinal para números positivos 1 representa o bit de sinal para números negativos A Fig.2 mostra o registrador módulo 16 com números positivos e negativos. Observe que existem, na representação sinal-magnitude dois 0s, -0=1000 e +0=0000. A existência de dois 0s torna a representação sinal-magnitude difícil de ser usada para operações no registrador, simplesmente avançando ou recuando o ponteiro. A Fig.3 tem um exemplo para o número 52, representado com 7 bits, 6 bits para magnitude e 1 bit, o MSB, de sinal. Fig.2 Fig.3 2.2 Representação de Números com Sinal em Complemento de Um Seja N um número binário qualquer positivo, então o complemento de um de N é o equivalente negativo definido por N(1)=(M-1)-N onde M=2n, sendo n o número de bits de N. Fig.4 Mostra-se na Fig.4 a representação em complemento de um para um registrador de quatro casas ou bits. Observa-se, que a existência dos dois 0s(zeros): 0000 e 1111 , torna o circuitos mais complexos. Usando a definição: se N=0101, o módulo M=1610=10000, então N(1)=(10000-1)-0101=1111-0101=1010. Caso o módulo seja M=3210=100000, então N(1)=(100000-1)-00101=11111-00101=11010. A determinação do complemento de um de um número é obtida através de sucessivas subtrações, dígito a dígito, do número 1. O complemento de um pode ser calculado complementando bit a bit o número original, como mostra os exemplos acima. 2.3 Representação de Números com Sinal em Complemento de Dois Seja N um número binário qualquer positivo, então o complemento de dois de N, N(2) é definido por N(2)=M-N para M=2n, sendo n o número de bits de N. Observa-se que o valor do complemento de dois de um número depende do módulo do registrador, isto é, de quantos bits são usados para escrever o número. Então, o mesmo número tem complemento de dois diferentes se está em um registrador de 4-bits (M=16) ou em registrador de 5-bits(M=32). Seja N=0101, o módulo M=1610=10000, então N(2)=10000-0101=1011. Caso o módulo seja M=3210=100000, então N(2)=100000-00101=11011. O complemento de dois de um número não pode ser especificado com certeza a não ser que o módulo seja especificado. A avaliação do complemento de dois de um número envolve uma sucessão de subtrações, bit a bit, do número binário 10 (210). Método prático para obter o complemento de dois de um número: 1. Escrever o número com tantos bits quantos forem os do registrador onde for armazenado o número; 2. Começando com o bit menos significativo, percorrer o número da direita para esquerda, deixando inalterados os bits iguais a 0 até encontrar o primeiro 1, deixar este 1 inalterado; 3. Complementar os demais bits do número. Assim, o sistema de representação por complemento de dois de números com sinal estabelece que o negativo de um número qualquer N é dado pelo complemento de dois do número N. Então, dado N qualquer, -N=N(2)=M-N Por ex: seja a operação 3-7 a ser realizada no registrador de quatro bits da Fig.5. • ajustar o ponteiro em 0000 para resetar o registrador • avançar três posições e o ponteiro indica o minuendo 3(0011) • recuar sete posições ( valor do subtraendo 7) • o ponteiro indicará 1100 que é igual a -4 na representação em complemento de dois Fig.5 O registrador de módulo 16 tem apenas um único 0 e fornecerá os números no intervalo -8 até +7, como mostra a Fig.5. O bit mais a esquerda (MSB) indica o sinal do número: se for igual a 0, o número é positivo; se o MSB é igual a 1, o número é negativo (na representação complemento de dois). Esta representação, permite que a soma seja feita pelo avanço e a subtração pelo retardo do ponteiro. O resultado da operação deve se encontrar dentro do intervalo do registrador. Pode-se obter o complemento de dois pela representação por complemento de um de um número, adicionando 1 ao complemento de um. N(2)=M-N e N(1)=(M-1)-N, então N(1)=(M-N)-1=N(2)-1 , assim N(1)=N(2)-1 N(2)=N(1)+1 Em outras palavras, para se obter o complemento de dois de um número binário deve-se escrever o número com a quantidade de bits do registrador, complementar o número bit a bit e somar 1 ao resultado. A representação de números binários em complemento de dois torna possível transformar a operação de subtração em uma operação de soma, eliminando o problema de recuar o ponteiro do registrador. Sejam N1 e N2 números binários quaisquer, então, N1-N2=N1+(-N2)=N1+N2(2) Assim, a subtração de dois números binários pode ser obtida fazendo a soma do minuendo com o complemento de dois do subtraendo. No registrador circular sempre serão realizadas operações de soma, avançando o ponteiro, e o mesmo circuito efetua adição e subtração. Tabela 1- Registrador de 4 bits com as várias representações s/sinal e c/sinal Dec Binário s/sinal Dec Sinal magnitude N0 de n bits +/- (2n-1 - 1) Dec Complemento de um N0 de n bits +/- (2n-1 - 1) Dec Complemento de dois N0 de n bits -2n-1 a + 2n-1 - 1 0 0000 +0 0000 +0 0000 +0 0000 1 0001 +1 0001 +1 0001 +1 0001 2 0010 +2 0010 +2 0010 +2 0010 3 0011 +3 0011 +3 0011 +3 0011 4 0100 +4 0100 +4 0100 +4 0100 5 0101 +5 0101 +5 0101 +5 0101 6 0110 +6 0110 +6 0110 +6 0110 7 0111 +7 0111 +7 0111 +7 0111 8 1000 -0 1000 -7 1000 -8 1000 9 1001 -1 1001 -6 1001 -7 1001 10 1010 -2 1010 -5 1010 -6 1010 11 1011 -3 1011 -4 1011 -5 1011 12 1100 -4 1100 -3 1100-4 1100 13 1101 -5 1101 -2 1101 -3 1101 14 1110 -6 1110 -1 1110 -2 1110 15 1111 -7 1111 -0 1111 -1 1111 3. Circuitos Aritméticos As operações em computadores e calculadoras digitais são executadas em Unidades Lógicas do computador (fig.6) onde portas e flip-flops são combinados tal que, realizem somas , subtrações , multiplicação e divisão binária. Esses circuitos executam operações aritméticas com velocidade na ordem de ns. Estuda-se aqui alguns dos circuitos aritméticos básicos que são usados para executar as operações anteriormente discutidas. Em alguns casos veremos o projeto do processo real, para fornecer mais habilidade no uso das técnicas de álgebra booleana, ainda que saibamos que alguns destes circuitos podem ser comercialmente disponíveis na forma de Circuitos Integrados(CIs) Figura 6-Blocos Funcionais de uma ULA 3.1 Soma de Números Binários Circuito Meio-Somador Sejam A e B dois números binários onde Ai e Bi são parcelas da soma , podemos escrever a seguinte tabela verdade da figura7b: Os métodos de soma de números binários envolvem a soma de dígitos coluna a coluna. Então, a adição de dois números binários Ai e Bi pode ser calculada conforme mostrado abaixo. Fig.7 A Fig.7(a) mostra as adições de dois dígitos binários . A soma gera um dígito soma Si na mesma i-ésima coluna que tem a mesma significância númerica que Ai e Bi. A soma pode gerar um dígito de vai-um Ci+1 que tem significância numérica maior que as parcelas Ai e Bi. A Fig.7(b) mostra a tabela verdade para as somas feitas na Fig.7(a); uma linha para cada operação e as saídas Si e Ci+1.Os circuitos para realizar as somas acima e fornecer as saídas Si e Ci+1 podem ser derivados da tabela verdade da Fig.7(b). A parcela soma Si pode ser obtida pelo XOR de Ai e Bi. O dígito vai-um Ci+1 é dado por uma AND de Ai e Bi. A Fig.8(a) mostra o circuito lógico de portas e a Fig.8(b) o símbolo. A estrutura que soma dois dígitos binários é designada como Meio-Somador, e abreviada como HA(Half Adder). Fig.8 Este método de soma numérica é limitado e considerando o atraso de propagação das portas (ex: caso A e B sejam de 32 dígitos cada um seriam necessários um número de portas astronômicos). Circuito Somador Inteiro A soma coluna por coluna de dois números binários de n dígitos produz um vai-um Ci+1 que deve ser somado na próxima coluna de maior significância. Fig.9 O meio-somador só pode realizar a primeira operação de A0 mais B0; nas outras colunas são necessárias a adição de três bits Ai, Bi e Ci (vai-um da coluna i-1).O dígito mais significativo da soma é o dígito vai-um para coluna n, ou seja Cn. Assim, na soma de Ai, Bi e o vai-um Ci são gerados Si e o vai-um Ci+1. A tabela verdade da fig.10 mostra a geração dos bits soma Si e vai-um Ci+1. Fig.10 Os circuitos lógicos para geraçao do bit soma Si e do bit de vai-um Ci+1 podem ser obtidos diretamente dos mapas K para cada saída da tabela verdade da Fig.10. Soma Si Vai-Um Ci+1 Fig-11 Através de simplificações algébricas pode-se mostrar que o bit soma Si é igual ao XOR das entradas Ai, Bi, e Ci. Então, o circuito de portas lógicas para somar três bits chama-se Somador Inteiro ( Full-Adder), designada FA, e tem a estrutura e símbolos mostrados na figura 12. Fig. 12-Somador Inteiro –Circuito Lógico e Símbolo Lógico Somador completo de 4 bits: 74HC283 ou 7483 Somador Série O somador série (fig.13) soma uma coluna de cada vez em sincronismo com o sinal de relógio. As parcelas são carregadas em registradores de deslocamento de n bits e um registrador de deslocamento de n+1 bits receberá a soma. Depois de cada pulso de relógio, os bits das parcelas são colocados na entrada do somador juntamente com o bit de vai-um e, o bit da soma é registrado no registrador de deslocamento da soma.O flip-flop tipo D atrasa o bit de vai-um um período de relógio, de modo que seja somado na próxima coluna de maior significância. Fig.13 - Somador Série Para somar dois números de n bits cada, o somador série necessita de n+1 pulsos de relógio. Embora seja econômico em têrmos de circuitos, o somador série é lento. Somador Paralelo O circuito da Fig.14 embora gaste mais somadores, um para cada coluna das parcelas, é mais rápido pois soma todos os bits simultaneamente. É necessário que todos os bits Ai e Bi estejam disponíveis em registradores para serem aplicados nas entradas dos somadores ao mesmo tempo. Isto fornece a soma em um ciclo de relógio, desconsiderando os atrasos de propagação nos somadores. Fig.14 - Somador paralelo Na realidade, é necessário esperar um determinado intervalo de tempo para os bits de vai-um se propagarem através de cada somador, antes de considerar válido o resultado da soma na saída.O tempo de propagação do vai-um torna o somador paralelo inaplicável em várias situações. Considerando que cada porta tem um atraso de propagação igual a um tap, então cada somador atrasa de 2tap.Como para somar duas parcelas de n bits cada, são necessários n somadores, então o resultado da soma somente está disponível na saída em um intervalo de tempo igual a n(2tap). O atraso do somador paralelo aumenta com o número de bits das parcelas a serem somadas, tornando-o inaplicável para soma de palavras com vários bits de comprimento. Subtratores A teoria desenvolvida pode ser usada para obter circuitos meio-subtratores e subtratores inteiro. Porém, uma vantagem dos somadores é transformar uma operação de subtração em uma operação de soma. Para subtrair um número B de outro número A usando um somador, basta obter -B, e efetuar a operação A+(-B). Fig.15- Somador/subtrator em complemento-de-dois Observe no circuito da fig.15 que as portas AND 2, 4, 6 e 8 formam o complemento-de-um da parcela B e, com a entrada SUB=1, C0=1, que soma 1 ao complemento-de-um de B, obtendo o complemento-de-dois de B, ou seja, -B, que somando à parcela A, efetua A+(-B)=A-B. Somadores Rápidos Implementação do Carry Lookahead- Vai-um Antecipado . Esta lógica gera vai-um individuais , através da definição da variável geração, Gi e da variável propagação Pi . Cascata para 4 bits do Carry Lookahead- a soma se torna mais rápida do que os somadores de ripple carry- oscilação do carry ou transporte Somador de dois números A e B em blocos de 4 bits cada, usando uma Unidade de Carry Antecipado-UCA( CI), para gerar os vai-uns mais rápido, C4 , C8 e C12 e C16, a partir dos P e G de cada bloco de 4 bits. CIRCUITOS DIGITAIS II
Compartilhar