Prévia do material em texto
<p>Somadores básicos</p><p>Os somadores são importantes em computadores e também em outros tipos de sistemas digitais nos quais dados numéricos são processados. Uma compreensão da operação básica de um somador é fundamental no estudo de sistemas digitais.</p><p>O Meio-Somador</p><p>Lembre-se das regras básicas para a adição binária abordadas</p><p>0+0</p><p>0</p><p>0+1</p><p>1</p><p>1+0</p><p>1</p><p>1+1</p><p>10</p><p>As operações são realizadas por um circuito lógico chamado de meio-somador.</p><p>O meio-somador aceita dois dígitos binários em suas entradas e produz dois dígitos binários em suas saídas, um bit de soma e um bit de carry.</p><p>Um meio-somador é representado pelo símbolo lógico mostrado As operações é realizado por um circuito lógico chamado de meio-somador.</p><p>Um meio-somador é representado pelo símbolo lógico mostrado</p><p>Lógica do Meio-Somador A partir da operação do meio-somador expressa na Tabela 6–1, podemos deduzir expressões para a soma (resultado) e para o carry de saída como funções das entradas. Observe que o carry de saída (Cout) é 1 apenas quando A e B são 1s; portanto, Cout pode ser expresso como uma operação AND entre as variáveis de entrada.</p><p>Equação Cout =AB</p><p>AB</p><p>B</p><p>C</p><p>Σ</p><p>0</p><p>0</p><p>0</p><p>0</p><p>0</p><p>1</p><p>0</p><p>1</p><p>1</p><p>0</p><p>0</p><p>1</p><p>1</p><p>1</p><p>1</p><p>0</p><p>Σ: soma</p><p>C: carry de saída</p><p>A e B: variáveis de entrada (operandos)</p><p>Agora observe que a saída soma (∑) é 1 apenas se as variáveis de entrada, A e B, não forem iguais.</p><p>A soma pode, portanto, ser expressa como a operação EX-OR entre as variáveis de entrada.</p><p>Σ = A ⊕ B</p><p>A partir das Equações pode-se deduzir a implementação lógica exigida para o meiosomador. O carry de saída é produzido com uma porta AND com A e B nas entradas e a saída dasoma é gerada com uma porta EX-OR, conforme mostra. Lembre que a EX-OR é implementada com portas AND, uma porta OR e inversores</p><p>O Somador-Completo</p><p>A segunda categoria de somadores é o somador-completo.</p><p>O somador-completo aceita dois bits de entrada e um carry de entrada,e gera uma saída de soma e um carry de saída.</p><p>A diferença básica entre um somador-completo e um meio-somador é que o somador completa aceito um carry de entrada. mostra o símbolo lógico para um somador completo e a mostra a operação da tabela-verdade para um somador-completo.</p><p>Ilustração 1 Símbolo lógico para um somador-completo.</p><p>Tabela-verdade do somador-completo</p><p>A</p><p>B</p><p>Cin</p><p>Cout</p><p>Σ</p><p>0</p><p>0</p><p>0</p><p>0</p><p>0</p><p>0</p><p>0</p><p>1</p><p>0</p><p>1</p><p>0</p><p>1</p><p>0</p><p>0</p><p>1</p><p>0</p><p>1</p><p>1</p><p>1</p><p>0</p><p>1</p><p>0</p><p>0</p><p>0</p><p>1</p><p>1</p><p>0</p><p>1</p><p>1</p><p>0</p><p>1</p><p>1</p><p>0</p><p>1</p><p>O</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>Σ = soma</p><p>A e B variáveis de entrada (operandos)</p><p>Cin= carry de entrada, algumas vezes indicado como CI</p><p>Cout= carry de saída, algumas vezes indicado como CO</p><p>Circuito Lógico do Somador-Completo</p><p>O somador completo soma os dois bits de entrada e o carry de entrada. A partir do meio-somador sabemos que a soma dos bits de entrada A e B é a EX-OR dessas duas variáveis A ⊕ B. Para o carry de entrada (Cin) ser somado aos bits de entrada, deve-se fazer uma EX-OR com A ⊕ B, resultando na equação para a saída da soma do somador-completo.</p><p>Σ = (A ⊕ B) ⊕ Cin</p><p>Isso significa que para implementar a função soma do somador-completo, usa-se duas portas EX-OR de 2 entradas. A primeira tem que gerar o termo A ⊕ B e a segunda tem como entradas asaída da primeira porta EX-OR e o carry de entrada, conforme ilustra</p><p>Ilustração 2 Circuito lógico completo para um somador-completo (cada meio-somador se encontra numa área sombreada).</p><p>Ilustração 3 Lógica necessária para construir um somador de três bits</p><p>O carry de saída é 1 quando as duas entradas da primeira porta EX-OR são 1s ou quando as duas entradas da segunda porta EX-OR são 1s. Podemos verificar este fato analisando. O carry de saída do somador-completo é portanto produzido pela operação AND de A com B e pela operação AND de com Cin. Esses dois termos passam por uma operação OR conforme expresso na Equação. Essa função é implementada e combinada com a lógica da soma para formar o circuito do somador-completo</p><p>Ilustração 4 Associação de dois meio-somadores para construir um somador-completo.</p><p>Observe na Figura 6–4(b) que existem dois meio-somadores conectados como mostra o diagrama em bloco visto na Figura 6–5(a), com os seus carries de saída passando por uma função OR. O símbolo lógico mostrado na Figura 6–5(b) normalmente é usado para representar um somador-completo.</p><p>Somadores binários paralelos</p><p>Dois ou mais somadores-completos podem ser conectados para construir somadores binários paralelos. Nesta seção você aprenderá a operação básica desse tipo de somador e a associação de suas funções de entrada e saída. Ao final do estudo desta seção você deverá ser capaz de:</p><p>· Usar somadores-completos para implementar um somador binário paralelo;</p><p>· Explicar o processo de adição num somador binário paralelo;</p><p>· Usar a tabela-verdade para um somador paralelo de 4 bits;</p><p>· Usar dois CIs 74LS283 para implementar a adição de dois números de 4 bits;</p><p>· Expandir o somador de 4 bits para realizar adição com números de 8 ou 16 bits 318.</p><p>Sistemas digitais</p><p>Conforme estudamos na Seção 6–1, um único somador-completo é capaz de somar dois números de 1 bit e um carry de entrada. Para somar números binários com mais de 1 bit, temos que usar somadores-completos adicionais. Quando um número binário é somado a outro, cada coluna gera um bit de soma e um bit de carry (que pode ser 1 ou 0) para a próxima coluna à esquerda, conforme ilustrado a seguir com números de dois bits</p><p>Para somar dois números binários, é necessário um somador-completo para cada bit do número. Assim, para números de dois bits, são necessários dois somadores; para números de 4 bits, são usados quatro somadores; e assim por diante. A saída de carry de cada somador é conectada à entrada de carry do próximo somador de maior ordem, conforme mostra a Figura 6–7 para um somador de dois bits. Observe que um meio-somador pode ser usado na posição menos significativa ou um somador-completo com a entrada de carry colocada em 0 (GND) porque não existe entrada de carry na posição do bit menos significativo</p><p>Na Figura 6–7 o bit menos significativo (LSB) dos dois números são representados por A1 e B1. Os próximos bits de ordem maior são representados por A2 e B2. E os três bits de soma são Σ1, Σ2 e Σ3. Observe que o carry de saída do somador-completo mais à esquerda se torna o bit mais significativo (MSB) do resultado (soma), Σ3.</p><p>EXEMPLO 6–2</p><p>Determine a soma gerada pelo somador paralelo de 3 bits visto na Figura 6–8 e mostre os carries intermediários quando os números binários 1010 e 011 são somados</p><p>Solução Os LSBs dos dois números são somados no somador-completo mais à direita. Os bits do resultado e os carries intermediários são indicados em cinza na Figura 6–8.</p><p>Somadores Paralelos de Quatro Bits Um grupo de quatro bits é denominado de nibble. Um somador paralelo de 4 bits básico é implementado com quatro estágios de somadores-completos como mostra a Figura 6–9. Novamente, os bits LSB (A1 e B1) em cada número são somados pelo somador-completo mais à direita; os bits de ordem mais alta são inseridos sucessivamente nos somadores de ordem mais alta, com os MSBs (A4 e B4) em cada número inseridos no somador-completo mais à esquerda. A saída de carry de cada somador é conectada à entrada de carry para o próximo somador de ordem mais alta conforme indicado. Esses são denominados de carries internos</p><p>De acordo com as folhas de dados dos fabricantes, a entrada denominada de C0 é o carry de entrada do bit menos significativo do somador; no caso do quatro bits, C4 é o carry de saída do bit mais significativo do somador; e 1 (LSB) até 4 (MSB) são as saídas do resultado (soma). O símbolo lógico é mostrado na Figura 6–9(b). Em termos do método usado para operar com carries em somadores paralelos, existem dois tipos: o somador com carry ondulante (ripple carry) e o somador com carry antecipado (lookahead carry). Esses tipos são discutidos na Seção 6–3.</p><p>Tabela-Verdade para um Somador Paralelo de 4 bits</p><p>A Tabela 6–3 é a tabela-verdade para um somador de 4 bits. Em algumas folhas de dados, as tabelas-verdade podem ser denominadas tabelas de funções ou tabelas-verdade</p><p>funcionais.</p><p>O subscrito n representa os bits do somador e pode ser 1, 2, 3 ou 4 para o somador de 4 bits. Cn – 1 é o carry do somador anterior. Os carries C1, C2 e C3 são gerados internamente. C0 é a entrada de carry externo e C4 é uma saída de carry. O Exemplo 6–3 ilustra como usar a Tabela 6–3.</p><p>EXEMPLO 6–3</p><p>Um somador paralelo de 4 bits (74ls283)</p><p>Um exemplo de um somador paralelo de 4 bits que é comercializado é o CI 74LS283. Nesse CI, VCC é o pino 16 e GND é o pino 8, que é uma configuração padrão. O digrama de pinos e o símbolo lógico para esse dispositivo são mostrados na Figura 6–10 (com os números dos pinos em parênteses no símbolo lógico). Esse dispositivo pode ser comercializado em outras famílias TTL e CMOS.</p><p>Características Obtidas de Folhas de Dados de CIs Lembre-se que as portas lógicas têm um tempo de atraso de propagação (propagation delay time), tP, de uma entrada para a saída. Para um CI lógico, pode existir diversas especificações diferentes para tP. O somador paralelo de 4 bits tem as quatro especificações de tP mostradas na Figura 6–11, que é parte da folha de dados de um 74LS283.</p><p>Expansão de um Somador Um somador paralelo de 4 bits pode ser expandido para efetuar uma adição de dois números de 8 bits usando dois somadores de 4 bits. A entrada de carry do somador menos significativo (C0) é conectada em GND porque não existe carry de entrada na posição do bit menos significativo e o carry de saída do somador menos significativo é conectada na entrada de carry do somador mais significativo, conforme mostra a Figura 6–12(a). Esse processo é conhecido como conexão em cascata. Observe que, nesse caso, o carry de saída é indicado por C8 porque ele é gerado a partir da posição do oitavo bit. O somador menos significativo é o que soma os quatro bits menos significativos, de ordem inferior, e o somador mais significativo é o que soma os quatro bits mais significativos, de ordem superior, do número de 8 bits. De forma similar, somadores de 4 bits podem ser associados em cascata para operar números de 16 bits conforme mostra a Figura 6–12 (b). Observe que o carry de saída é indicado por C16 porque ele é gerado a partir do décimo sexto bi</p><p>(a) Associação em cascata de dois somadores de 4 bits para construir um somador de 8 bits.</p><p>Exemplo.</p><p>Somador com Carry Ondulante</p><p>Um somador com carry ondulante é aquele no qual a saída de carry de cada somador-completo (FA – full-adder) é conectada à entrada de carry do próximo estágio de maior ordem (um estágio corresponde a um somador-completo). A soma e o carry de saída de qualquer estágio não podem ser gerados antes que o carry de entrada seja estabelecido; isso provoca um atraso no processo de adição, conforme ilustrado na Figura 6–15. O atraso de propagação do carry para cada somadorcompleto é o tempo entre a colocação do carry de entrada e o momento do carry de saída, considerando que as entradas A e B já estejam estabelecidas</p><p>O somador-completo 1 (FA1) não pode gerar um carry de saída até que um carry de entrada seja aplicado. O somador-completo 2 (FA2) não pode gerar um carry de saída até que o somadorcompleto 1 gere uma saída de carry. O somador-completo 3 (FA3) não pode gerar um carry de saída até um carry de saída seja gerado pelo FA1 seguido pelo carry de saída do FA2, e assim por diante. Conforme podemos ver na Figura 6–15, o carry de entrada do estágio menos significativo tem que passar (ondular) por todos os somadores antes que a soma final seja gerada. O atraso cumulativo através de todos os estágios somadores é o tempo de adição para o “pior caso”. O atraso total pode variar, dependendo do bit de carry gerado por cada somador-completo. Se dois números são somados de forma que não ocorram carries (0) entre os estágios, o tempo de adição é simplesmente o tempo de propagação de um único somador-completo desde a aplicação dos bits de dados nas entradas até o surgimento do resultado na saída de soma.</p><p>Somador com Carry Antecipado</p><p>A velocidade com a qual uma adição pode ser realizada é limitada pelo tempo necessário para os carries se propagarem (ondulação) através de todos os estágios de um somador paralelo. Um método de aumentar a velocidade do processo de adição que elimina esse atraso do carry ondulante é denominado adição com carry antecipado. Esse somador antecipa o carry de saída de cada estágio e, com base nas entradas, produz o carry de saída através da geração ou da propagação de carry. A geração de carry ocorre quando um carry de saída é produzido (gerado) internamente pelo somador-completo. Um carry é gerado apenas quando os dois bits de entrada são 1s. O carry gerado, Cg, é expresso como uma função AND dos dois bits de entrada, A e B</p><p>A propagação de carry ocorre quando um carry de entrada passa através dos somadores (ondulação) até se tornar um carry de saída. Um carry de entrada pode ser propagado pelo somadorcompleto quando um ou os dois bits de entrada forem 1s. O carry propagado, Cp, é expresso como a função OR entre os bits de entrada</p><p>As condições para a geração e a propagação de carry são ilustradas na Figura 6–16. As três pontas de flecha simbolizam a ondulação (propagação)</p><p>O carry de saída de um somador-completo pode ser expresso em termos do carry gerado (Cg) e do carry propagado (Cp). O carry de saída (Cout – output carry) será um 1 se o carry gerado for um 1 OR se o carry propagado for um 1 AND o carry de entrada (Cin – input carry) for um 1. Em outras palavras, obtemos um carry de saída 1 se ele for gerado pelo somador-completo (A = 1 AND B = 1) ou se o somador propagar o carry de entrada (A = 1 OR B = 1) AND Cin = 1. Essa relação é expressa como a seguir.</p><p>Agora vejamos como esse conceito pode ser aplicado a um somador paralelo, cujos estágios individuais são mostrados na Figura 6–17 para um exemplo de 4 bits. Para cada somador-completo, o carry de saída é dependente do carry gerado (Cg), do carry propagado (Cp) e de sua entrada de carry (Cin). As funções Cg e Cp para cada estágio são disponibilizadas imediatamente logo que os bits de entrada A e B e o carry de entrada do somador LSB estiverem presentes porque eles dependem apenas desses bits. O carry de entrada de cada estágio é o carry de saída do estágio anterior.</p><p>Com base nessa análise, podemos desenvolver expressões para o carry de saída, Cout, de cada estágio somador-completo para o exemplo de 4 bits.</p><p>Observe que em cada uma dessas expressões, o carry de saída para cada estágio somadorcompleto depende apenas do carry de entrada inicial (Cin1), das funções Cg e Cp do estágio, e das funções Cg e Cp dos estágios anteriores. Visto que cada uma das funções Cg e Cp pode ser expressa em termos das entradas A e B dos somadores-completos, todos os carries de saída são disponibilizados imediatamente (exceto pelos atrasos das portas), e não temos que esperar que o carry passe através dos estágios antes que o resultado final seja obtido. Portanto, a técnica de carry antecipado aumenta a velocidade do processo de adição.</p><p>As equações para as saídas Cout são implementadas com portas lógicas e conectadas aos somadores-completos para criar um somador-completo com carry antecipado, conforme mostra a Figura 6–18.</p><p>Subtrator Binario</p><p>Similarmente, a subtracao binaria em N segue o mesmo mecanismo adotado pela subtracao decimal. Deve-se cuidar para que o numero a ser subtraıdo possua maior valor modular que o numero a ser diminuıdo. Em outras palavras o segundo operador deve ser menor.</p><p>Ao considerar apenas a subtracao de um bit nao ha a possibilidade de que tenha sido ”emprestado” um ”1” para a direita. Consequentemente apenas quatro casos devem ser considerados, nomeadamente 0 − 0 = 0, 0 − 1 = 1, 1−0 = 1 e 1−1 = 0. Como no segundo caso o numero a ser subtraıdo e maior faz-se necessario que seja ”emprestado” um ”1” da casa mais a esquerda. Considere o bit menos significativo do exemplo a seguir no qual efetua-se a subtracao de 42 − 11.</p><p>Nota-se que o bit menos significativo da subtracao refere-se ao caso 0−1. Consequentemente faz-se necessario que um ”1”</p><p>seja emprestado da casa imediatamente a esquerda o que valera na primeira casa duas unidades ou 102. Eis a razao porque 0 − 1 = 1.</p><p>A tabela 9.3 sumariza o funcionamento da subtracao do bit menos significativo.</p><p>Tabela 9.3: Tabela verdade para a subtracao do bit menos significativo em N.</p><p>Com base na tabela é possıvel extrair as funcoes Booleanas que a implementam como apresentado na equacao 9.4. Note que a funcao para o resultado tanto da soma como da subtracao sao o mesmo, ou seja, simplesmente um OU-EXCLUSIVO entre as entradas.</p><p>A implementacao via diagrama de portas logicas das funcoes Booleanas da equacao 9.4 sao apresentadas na figura 9.7.</p><p>Figura 9.7: Diagrama de portas logicas para o circuito que executa a subtracao do bit menos significativo, tambem conhecido como MEIO SUBTRATOR.</p><p>Para os demais bits deve admitir-se a possibilidade de que a casa em consideracao tenha emprestado ou nao um ”1” para a casa a direita resultando na tabela verdade 9.4. Esta tabela nao e´ tao obvia quanto a tabela 9.2 referente a soma dos demais bits. O ponto a ser levado em consideracao é considerar cada casa individualmente assumindo a possibilidade de que um ”1” tenha sido emprestado.</p><p>Tabela 9.4: Tabela verdade para a subtracao do bit localizado na casa n em N.</p><p>Com base na tabela é possıvel extrair as funcoes Booleanas que a implementam como apresentado na equacao 9.5. Apresenta-se como exercício a simplificacao das equacoes canonicas</p><p>As realizações directas das funções da equação 9.5 resultam no diagrama de portas logicas apresentado na figura 9.8.</p><p>Figura 9.8: Diagrama de portas logicas para o circuito que executa a subtracao dos demais bits, tambem conhecido como SUBTRATOR COMPLETO.</p><p>image5.png</p><p>image6.png</p><p>image7.png</p><p>image8.png</p><p>image9.png</p><p>image10.png</p><p>image11.png</p><p>image12.png</p><p>image13.png</p><p>image14.png</p><p>image15.png</p><p>image16.png</p><p>image17.png</p><p>image18.png</p><p>image19.png</p><p>image20.png</p><p>image21.png</p><p>image22.png</p><p>image23.png</p><p>image24.png</p><p>image25.png</p><p>image26.png</p><p>image27.png</p><p>image28.png</p><p>image29.png</p><p>image30.png</p><p>image31.png</p><p>image32.png</p><p>image33.png</p><p>image1.png</p><p>image2.png</p><p>image3.png</p><p>image4.png</p>