Você está na página 1de 20

CONCEITOS DE LGICA DIGITAL CIRCUITOS LGICOS E GATES

Todos as complexas operaes de um computador digital acabam sendo combinaes de simples operaes aritmticas e lgicas bsicas: somar bits, complementar bits (para fazer subtraes), comparar bits, mover bits. Estas operaes so fisicamente realizadas por circuitos eletrnicos, chamados circuitos lgicos (ou gates - "portas" lgicas). Computadores digitais (binrios) so construidos com circuitos eletrnicos digitais - as portas lgicas (circuitos lgicos). Os sistemas lgicos so estudados pela lgebra de chaveamentos, um ramo da lgebra moderna ou lgebra de Boole, conceituada pelo matemtico ingls George Boole (1815 - 1864). Boole construiu sua lgica a partir de smbolos, representando as expresses por letras e ligando-as atravs de conectivos - smbolos algbricos. A lgebra de Boole trabalha com apenas duas grandezas: falso ou verdadeiro. As duas grandezas so representadas por 0 (falso) e 1 (verdadeiro). Nota: nos circuitos lgicos do computador, os sinais binrios so representados por nveis de tenso.

OPERADORES LGICOS Os conectivos ou OPERADORES LGICOS ou FUNES LGICAS so: E (ou AND) - uma sentena verdadeira SE - e somente se - todos os termos forem verdadeiros. OU (ou OR) - uma sentena resulta verdadeira se QUALQUER UM dos termos for verdadeiro. NO (ou NOT) - este operador INVERTE um termo. Os operadores lgicos so representados por: ____ NOT --> (uma barra horizontal sobre o termo a ser invertido ou negado). E ------> . (um ponto, como se fosse uma multiplicao) OU ----> + (o sinal de soma) TABELA VERDADE So tabelas que representam todas as possveis combinaes das variveis de entrada de uma funo, e os seus respectivos valores de sada.

A seguir, apresentamos as funes bsicas, e suas representaes em tabelas-verdade. AND - FUNO E

OR - FUNO OU

Nota: A menos da estranha expresso 1 + 1 = 1, as demais expresses "parecem" a aritmtica comum a que estamos acostumados, onde E substitui "vezes" e OU substitui "mais". FUNO NOT

Obs.: a inverso em binrio funciona como se fizssemos 1 - A = X. Ou seja, 1 - 0 = 1 e 1 - 1 = 0. APLICAO DA LGEBRA DE BOOLE AOS COMPUTADORES DIGITAIS Boole desenvolveu sua lgebra a partir desses conceitos bsicos e utilizando apenas os algarismos 0 e 1. Os primeiros computadores fabricados, como o ENIAC, trabalhavam em DECIMAL. No entanto, a utilizao de circuitos eletrnicos que operassem com 10 diferentes nveis de tenso (para possibilitar detectar as 10 diferentes grandezas representadas no sistema decimal) acarretavam uma grande complexidade ao projeto e construo dos computadores, tendo por conseqncia um custo muito elevado. Surgiu ento a idia de aplicar a lgebra de Boole, simplificando extremamente o projeto e construo dos computadores. Mas como os conceitos da lgebra de chaveamentos (um ramo da lgebra do Boole) so

aplicados ao projeto dos computadores digitais? A chave de tudo um circuito eletrnico chamado CHAVE AUTOMTICA. Como funciona uma chave automtica? Vamos imaginar um circuito chaveador com as seguintes entradas: - uma fonte de alimentao (fornece energia para o circuito) - um fio de controle (comanda a operao do circuito) - um fio de sada (conduz o resultado)

No desenho, a chave permanece aberta enquanto o sinal C no fio de controle for 0 (ou Falso). Enquanto no houver um sinal (sinal 1 ou Verdadeiro) no fio de controle, que mude a posio da chave, o sinal no fio de sada S ser 0 (ou Falso). Quando for aplicado um sinal (sinal 1 ou Verdadeiro) ao fio de controle, a chave muda de posio, tendo como resultado que o sinal na sada ser ento 1 (ou Verdadeiro). A posio da chave se manter enquanto no ocorrer um novo sinal na entrada. A chave automtica foi inicialmente implementada com rels eletromecnicos e depois com vlvulas eletrnicas. A partir da metade da dcada de 50, passaram a ser utilizados dispositivos em estado slido - os TRANSISTORES, inventados em Stanford em 1947. Os modernos Circuitos Integrados - CI's e os microprocessadores so implementados com milhes de transistores "impressos" em minsculas pastilhas.

Vamos agora analisar o que ocorreria se ns ligssemos em SRIE duas chaves automticas como as acima, e ligssemos uma lmpada ao circuito. O circuito resultante poderia ser representado assim:

A lmpada acenderia SE - e somente se - as DUAS chaves estivssem na posio LIGADO (ou verdadeiro), o que seria conseguido com as duas entradas A e B em estado 1 (Verdadeiro). Substituindo CORRENTE (ou chave ligada) por 1 e AUSNCIA DE CORRENTE (ou chave desligada) por 0, como ficaria nossa tabela verdade para LMPADA LIGADA = 1 e LMPADA DESLIGADA = 0? A 0 0 1 1 B 0 1 0 1 L 0 0 0 1

D para reconhecer a nossa j familiar FUNO E? O circuito acima que implementa a funo E chamado de PORTA E (AND GATE). Vamos agora analisar o que ocorreria se ns ligssemos em PARALELO duas chaves automticas como as acima, e ligssemos uma lmpada ao circuito. O circuito resultante poderia ser representado assim:

A lmpada acenderia SE QUALQUER UMA DAS-CHAVES estivsse na posio LIGADO (ou verdadeiro), o que seria conseguido com uma das duas entradas A ou B em estado 1 (Verdadeiro). Substituindo CORRENTE (ou chave ligada) por 1 e AUSNCIA DE CORRENTE (ou chave desligada) por 0, como ficaria nossa tabela verdade para LMPADA LIGADA = 1 e LMPADA DESLIGADA = 0? A 0 0 1 1 B 0 1 0 1 L 0 1 1 1

E agora, d para reconhecer a nossa j familiar FUNO OU? O circuito acima, que implementa a funo OU, chamado de PORTA OU (OR GATE). PORTA LGICA OU GATE So dispositivos ou circuitos lgicos que operam um ou mais sinais lgicos de entrada

para produzir uma (e somente uma) sada, a qual dependente da funo implementada no circuito.

Um computador constituido de uma infinidade de circuitos lgicos, que executam as seguintes funes bsicas: a) realizam operaes matemticas b) controlam o fluxo dos sinais c) armazenam dados Existem dois tipos de circuitos lgicos: a) COMBINACIONAL - a sada funo dos valores de entrada correntes; esses circuitos no tem capacidade de armazenamento [casos a) e b) acima]. b) SEQUENCIAL - a sada funo dos valores de entrada correntes e dos valores de entrada no instante anterior; usada para a construo de circuitos de memria (chamados "flip-flops" - caso c acima); esses circuitos no sero estudados neste curso, mas apresentamos uma breve introduo no final do captulo.

CONCEITOS DE LGICA DIGITAL - CIRCUITOS LGICOS E GATES CONTINUAO

PORTAS BSICAS
PORTA NOT (NO) A porta NOT inverte o sinal de entrada (executa a NEGAO do sinal de entrada), ou seja, se o sinal de entrada for 0 ela produz uma sada 1, se a entrada for 1 ela produz uma sada 0.

PORTA AND (E) A porta AND combina dois ou mais sinais de entrada de forma equivalente a um circuito em srie, para produzir um nico sinal de sada, ou seja, ela produz uma sada 1,

se todos os sinais de entrada forem ; caso qualquer um dos sinais de entrada for 0, a porta AND produzir um sinal de sada igual a zero.

PORTA OR (OU) A porta OR combina dois ou mais sinais de entrada de forma equivalente a um circuito em paralelo, para produzir um nico sinal de sada, ou seja, ela produz uma sada 1, se qualquer um dos sinais de entrada for igual a 1; a porta OR produzir um sinal de sada igual a zero apenas se todos os sinais de entrada forem 0.

OUTROS CIRCUITOS FUNDAMENTAIS PORTA NAND (NO E) A porta NAND equivale a uma porta AND seguida por uma porta NOT, isto , ela produz uma sada que o inverso da sada produzida pela porta AND.

PORTA NOR (NO OU) A porta NOR equivale a uma porta OR seguida por uma porta NOT, isto , ela produz uma sada que o inverso da sada produzida pela porta OR.

PORTA XOR (OU EXCLUSIVO) A porta XOR compara os bits; ela produz sada 0 quando todos os bits de entrada so iguais e sada 1 quando pelo menos um dos bits de entrada diferente dos demais.

Exemplo de circuitos utilizando portas lgicas: A) Uma campainha que toca (sada) se o motorista der a partida no motor do carro (entrada) sem estar com o cinto de segurana afivelado (entrada). Se a ignio for ACIONADA (1) e o cinto estiver DESAFIVELADO (1), a campainha ACIONADA (1). Caso contrrio, a campainha no toca Tabela Verdade: Ignio Cinto Campainha 0 0 1 1 Basta incluir uma porta AND. B) Detector de incndio com vrios sensores (entradas) e uma campainha para alarme (sada). Se QUALQUER UM dos sensores for acionado (significando que um dos sensores detectou sinal de incndio), a campainha ACIONADA. Tabela verdade: Sensor Sensor Campainha 1 2 0 0 1 1 Basta incluir uma porta OR. 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1

CONCEITOS DE LGICA DIGITAL - CONTINUAO

LGEBRA DE BOOLE
As operaes bsicas da lgebra de Boole so:

AVALIAO DE UMA EXPRESSO BOOLEANA Uma expresso booleana uma expresso formada por sinais de entrada (chamados variveis de entrada) ligados por conectivos lgicos, produzindo como resultado um nico sinal de sada. Na avaliao de uma expresso Booleana, dever ser seguida uma ordem de precedncia conforme a seguir definido: 1 - avalie NOT 2 - avalie AND 3 - avalie OR Obs.: respeitando-se sempre os parnteses! Ex.: Avalie a expresso:

EQUIVALNCIA DE FUNES LGICAS Duas funes Booleanas so equivalentes se - e somente se - para a mesma entrada, produzirem iguais valores de sada . PORTANTO, DUAS FUNES LGICAS EQUIVALENTES TEM A MESMA TABELA VERDADE. Ex.: Verifique se as funes lgicas a seguir representam funes equivalentes:

PROPRIEDADES DA LGEBRA DE BOOLE

Exerccio: Simplifique a seguinte expresso:

PROPRIEDADES DA FUNO EXCLUSIVE OR (XOR)

REPRESENTAO DE CIRCUITOS COM AS FUNES NAND E NOR


Usando as propriedades apresentadas, todo e qualquer circuito pode ser representado usando exclusivamente as funo NAND ou as funo NOR.

Para que serviria tal artimanha, alm da dor de cabea aos estudantes? H neste caso uma razo maior que a comodidade ou a aparente dificuldade: a razo econmica. Por diversas razes construtivas, fica mais barato construir TODOS os circuitos de um computador usando APENAS UM NICO TIPO DE CIRCUITO. Aceitando essa afirmao, vamos enfrentar a tarefa de represntar os nossos circuitos j conhecidos usando apenas funes NAND ou os NOR. a) CIRCUITO INVERSOR

b) CIRCUITO AND

c) CIRCUITO OR

Exerccio: Escreva a expresso do circuito abaixo e simplifique.

Soluo:

Este circuito implementa a funo XOR, usando apenas portas NAND!

FORMAS CANNICAS
REPRESENTAO DE UM CIRCUITO ATRAVS DE UMA TABELA VERDADE Os circuitos de um computador realizam funes de grande complexidade, cuja representao geralmente no bvia. O processo para realizao de uma funo atravs de um circuito comea na descrio verbal do circuito (descrio do comportamento de suas possveis sadas, em funo das diversas combinaes possveis de seus sinais de entrada), a partir do que possvel montar sua tabela verdade. Exemplos: a) Considere um circuito eltrico composto de uma fonte de energia comercial (a alimentao da empresa de distribuio de energia, p.ex., a Light) e um interruptor (nossas entradas ) e uma lmpada (nossa sada). A lmpada acender se - e somente se a) houver energia disponvel (se no estiver "faltando luz") e b) o interruptor estiver ligado. Elabore a tabela verdade que representa esse circuito lgico. b) Considere um sistema composto de duas caixas d'gua (uma superior e uma cisterna). A cisterna alimentada pela entrada de gua da "rua", via empresa distribuidora (ex.: CEDAE). A caixa superior serve para distribuir a gua, por gravidade, em todo o prdio: bicas, chuveiros, descargas sanitrias, circuitos anti-incndio, etc, com a gua sendo impulsionada por uma bomba hidrulica atravs de uma tubulao que liga a

cisterna caixa superior. Considerando que a bomba queimar se for acionada sem haver gua no circuito hidrulico, projete um circuito lgico para acionar a bomba sempre que a caixa superior estiver vazia, desde que tenha gua na cisterna. c) Considere um circuito eltrico composto de uma fonte de energia comercial (a alimentao da empresa de distribuio de energia, p.ex., a Light), uma alimentao auxiliar (um gerador e um no-break, com bateria de acumulao) e um interruptor (nossas entradas ) e um sistema de computadores (nossa sada). O computador poder operar se: a) houver energia disponvel (se no estiver "faltando luz") em um dos circuitos de alimentao e b) o interruptor estiver ligado. Elabore a tabela verdade que representa esse circuito lgico. FORMAS CANNICAS A partir da tabela verdade produzida conforme item anterior, possvel chegar expresso que representa o comportamento do circuito, e em seguida construir o circuito, usando as portas lgicas j estudadas. O processo de elaborao da expresso usa as chamadas formas cannicas, que consistem em regras para representar as condies de entrada que: a) produziro sada 1 (e portanto as demais condies produziro sada 0) ou alternativamente, b) produziro sada 0 (e portanto as demais condies produziro sada 1). So portanto duas as formas cannicas: uma representa as condies que produzem sada 1 (SOMA DOS MINITERMOS) , a outra representa as condies que produziro sada 0 (PRODUTO DOS MAXITERMOS). Essas formas so alternativas, isto , a expresso poder ser encontrada aplicando-se alternativamente UMA ou OUTRA das formas. MINITERMO - so termos somente com AND (termos PRODUTO) MAXITERMO - so termos somente com OR (termos SOMA).

SOMA DOS MINITERMOS produzida construindo: - um termo (uma sub-expresso) para cada linha da tabela verdade (que representa uma combinao de valores de entrada) em que a sada 1, - cada um desses termos formado pelo PRODUTO (FUNO AND) das variveis de entrada, sendo que: ------ quando a varivel for 1, mantenha; ------ quando a varivel for 0, complemente-a (funo NOT). - a funo booleana ser obtida unindo-se os termos PRODUTO (ou minitermos) por uma porta OR (ou seja, "forando-se" a sada 1 caso qualquer minitermo resulte no valor 1). Dessa forma, ligando os termos-produto (tambm chamados minitermos) pela porta OR, caso QUALQUER UM dos minitermos seja 1 (portanto, caso qualquer uma das condies de valores de entrada que produz sada 1se verifique), a sada pela porta OR ser tambm 1. Ou seja, basta que se verifique qualquer uma das alternativas de valores de entrada expressos em um dos minitermos, e a sada ser tambm 1, forada pelo OR. Caso nenhuma dessas alternativas se verifique, produz-se a sada 0.

Exemplo:

PRODUTO DOS MAXITERMOS produzida construindo: - um termo (uma sub-expresso) para cada linha da tabela verdade (que representa uma combinao de valores de entrada) em que a sada 0, - cada um desses termos formado pela SOMA (FUNO OR) das variveis de entrada, sendo que: ------ quando a varivel for 0, mantenha; ------ quando a varivel for 1, complemente-a (funo NOT). - a funo booleana ser obtida unindo-se os termos SOMA (ou maxitermos) por uma porta AND (ou seja, "forando-se" a sada 0 caso qualquer minitermo resulte no valor 0). Dessa forma, ligando os termos-soma (tambm chamados maxitermos) pela porta AND, caso QUALQUER UM dos minitermos seja 0 (portanto, caso qualquer uma das condies de valores de entrada que produz sada 0 se verifique), a sada pela porta AND ser tambm 0. Ou seja, basta que se verifique qualquer uma das alternativas de valores de entrada 0 expressos em um dos maxitermos, e a sada ser tambm 0, forada pelo AND. Caso nenhuma dessas alternativas se verifique, produz-se a sada 1. Exemplo:

O MESMO COMPORTAMENTO (A MESMA TABELA VERDADE) PODE SER IGUALMENTE REPRESENTADA POR QUALQUER DAS FORMAS CANNICAS. Exemplo:

Se ambas as formas cannicas produzem expresses equivalentes, como escolher qual a representao a utilizar? Escolha a que resultar em menor nmero de termos, produzindo uma expresso mais simples. Por esse mtodo, pode-se encontrar a expresso que represente qualquer tabela verdade. Aps se encontrar uma expresso que represente o comportamento esperado, possvel que no seja uma expresso simples que possa ser construda com poucas portas lgicas. Antes de projetar o circuito, til SIMPLIFICAR a expresso, de forma a possibilitar construir um circuito mais simples e portanto mais barato. Portanto, o fluxo de nosso procedimento ser: DESCRIO VERBAL ---> TABELA VERDADE ---> FORMA CANNICA ---> --->FUNO SIMPLIFICADA ---> CIRCUITO

CONSTRUO DE CIRCUITOS REAIS DE COMPUTADORES


CIRCUITOS ARITMTICOS Vamos lembrar a aritmtica de ponto fixo, para a soma de dois bits. 0+0=0 0+1=1 1+0=1 1 + 1 = 0 e vai um Se houver vai um na soma anterior, teremos: vem 1 + 1 + 1 = 1 e vai um Lembram-se do algoritmo da soma? Para somar dois nmeros (em qualquer base, binrios ou no), soma-se os algarismos dos nmeros, coluna a coluna, transportando o "vai um" para a prxima coluna, quando for o caso. Como fazemos para somar dois nmeros de n algarismos? Na prtica, representamos os dois nmeros a serem somados, um sobre o outro, e

somamos coluna a coluna; quando o valor da soma de dois algarismos supera a base, somamos um prxima coluna (isto , fazemos resultado + base, sendo base igual a 10 para qualquer base). O "VAI UM" de uma coluna (uma ordem) o "VEM UM" da prxima coluna. Fcil? No? Se a explicao complicou, basta vermos um exemplo prtico para concluir o quanto simples: NA BASE 10 NA BASE 2 110 085 +16 101 011 11010 01101 01101 11010 01101 NA FORMA GERAL, somando A + B Ci4.Ci3.Ci2..Ci1. ......A3..A2...A1...A0 ......B3..B2....B1...B0 ......R3...R2...R1...R0 ....Co3.Co2..Co1.Co0 "vem 1" (carry in) parcela parcela soma "vai 1" (carry out)

Bom, difcil no pode ser, j que vimos fazemos somas desse jeito desde o curso primrio ... E para fazer uma subtrao? Lembrando tambm o estudado anteriormente, UMA SUBTRAO UMA SOMA EM COMPLEMENTO! Ou seja, A - B = A + ( - B) No computador, fazemos a subtrao atravs de uma soma em complemento. E a multiplicao? A multiplicao obtida de duas formas: por somas sucessivas (por exemplo, A + A = 2A) e pela movimentao de bits. Lembremo-nos que quando quando queremos multiplicar um nmero decimal por 10, basta acrescentar um zero direita do nmero. Como nesse caso a base 10, isso equivale a MULTIPLICAR PELA BASE. Generalizando, para multiplicar um nmero pela base, basta acrescentar um zero direita do nmero, ou seja, movemos todos os algarismo de um nmero para a esquerda de uma posio (uma ordem de grandeza), preenchendo a ltima ordem direita (que ficaria vaga) com um zero. Isso, portanto, equivale a multiplicar esse nmero pela base. Por exemplo, na base 10, tomando 50 e fazendo 500 (movendo 50 para a esquerda uma posio e colocando um zero para preencher a posio mais direita) equivale a multiplicar 50 por 10 (a base)! Idem na base 2: 100 x 10 = 1000 Ateno: devemos ler esse nmero como: um zero zero vezes um zero = um zero zero zero. Para ficar ainda mais claro, vamos lembrar que, passando para decimal, 100(2) 4(10), 10(2) 2(10) e portanto teramos em decimal: 4 x 2 = 8). Lembrem-se: 10 s dez em decimal! Agora, sempre que estivermos usando uma base diferente de 10, vamos sempre ler 10 como um-zero! E como base decimal no usada em computadores digitais, DEZ, a partir de agora, fica banido de nosso vocabulrio!

As mesmas propriedades, aplicadas no sentido contrrio, valem para a diviso! Desta forma, podemos ver que

O COMPUTADOR PODE REALIZAR TODAS AS OPERAES ARITMTICAS USANDO APENAS SOMAS!


Com esta introduo, podemos agora estudar alguns exemplos dos circuitos aritmticos usados em computadores. 1. CIRCUITO MEIO-SOMADOR (HALF ADDER) O circuito meio-somador SOMA DOIS BITS (sem levar em conta bit de carry). Entrada - os dois bits a serem somados - A e B Sada - a soma dos bits e o bit de carry out ("vai um") - S e Co Como descrevemos anteriormente, uma funo lgica produz uma e apenas uma sada. Portanto, sendo duas as sadas, sero necessrias duas funes diferentes, ou um circuito composto, podendo haver interseo de portas lgicas. a. Construir a tabela b. Forma cannica c. Simplificao (no h o que simplificar)

d. Circuito

2. CIRCUITO SOMADOR COMPLETO (FULL ADDER) O circuito somador completo SOMA DOIS BITS (considerando na soma o bit de carry in que veio da soma anterior). Entrada - os dois bits a serem somados e o bit de carry in - A, B e Ci

Sada - a soma dos bits e o bit de carry out ("vai um") - S e Co a. Construir a tabela b. Forma cannica c. Simplificao

d. Circuito

e. Representao esquemtica

CIRCUITOS ARITMTICOS - CONSTRUO DE UMA MINI-UAL


MINI UAL (um circuito capaz de fazer somas e subtraes de dois nmeros) Vamos construir uma mini-UAL para nmeros de 4 bits; o mesmo esquema pode ser usado para UAL's de 8 bits, 16 bits, etc. SOMADOR A entrada do somador receber 8 bits, sendo quatro bits de cada nmero (A e B) a ser somado, variando de 0000 a 1111(2) ou, se representarmos na base 10, de 00 a 15 (10). A sada ter tambm 4 bits para o resultado da operao matemtica (soma). Porm, existe a possibilidade de que a soma ultrapasse a capacidade do nosso somador (neste caso, 4 bits). Para isso, precisamos incluir um 5 bit, um bit de overflow. Como so 2 variveis, cada uma com 4 bits, teramos 24 = 16 combinaes para cada varivel = 16 x 16 = 256 (tambm podemos fazer 2 variveis por 8 bits = 28 = 256) combinaes possveis, dando sada a 5 bits. Bem, isso resultaria em uma tabela verdade BEM GRANDINHA que daria "UM POUCO" de trabalho para solucionar ... Quem quiser se aventurar, asseguro que daria um bom exerccio ... fsico. Bom, sorte nossa que isso pode ser evitado. Basta nos lembrarmos de como o algoritmo da soma. Assim, usando o circuito somador completo que construimos anteriormente, podemos ligar vrios somadores completos em cascata (sem "cascatas") e assim conseguir um somador de n bits. Bastaria ligar cada par de bits da entrada (A0 e B0, A1 e B1, etc) s entradas de cada somador, e ligar os somadores cada um ao seguinte ... pelos bits de carry! O carry out de um somador ento o carry in do prximo! Esquematicamente, o circuito ficaria como segue:

Obs.: Como o somador de entrada no deve receber nenhum bit de carry in, preciso forar que o Ci desse somador seja zero. Repare que todos os circuitos so alimentados ao mesmo tempo, mas seu funcionamento deve ser seqencial, porque o Ci que entrada de um circuito um resultado do processamento no circuito anterior ( o Co do anterior).

TRATAMENTO DA SUBTRAO Levando em conta um bit extra para sinalizar a operao, podemos ter uma soma ou uma subtrao. Para construir a subtrao, vamos tambm usar uma propriedade j conhecida: UMA SUBTRAO UMA SOMA EM COMPLEMENTO! Ou seja, A - B = A + ( - B) O algoritmo de complemento em binrio tambm conhecido, e bastante simples de implementar: Conforme anteriormente convencionamos, para POSITIVO (OU SOMA), S = 0 para NEGATIVO (OU SUBTRAO), S = 1. Portanto, para diferenciar de soma ou subtrao, fazemos: se S = 0 ---> B (MANTM O VALOR DO BIT) se S = 1 ---> B (COMPLEMENTA O BIT) Ento, fazendo a tabela verdade para mostrar esse comportamento, teremos:

que uma funo XOR. Portanto, para resolver a subtrao, basta incluir portas XOR tendo como entradas B0 ... Bn e S. TRATAMENTO PARA COMPLEMENTO A 2 At agora, estamos fazendo a operao em complemento a 1 (C1). Se quisermos fazer em complemento a dois (C2), basta somar um ao complemento a um (e no somar nada quando no for feito o complemento). Ou seja: se for uma soma (portanto o sinal zero), nada precisa ser feito; se for subtrao (portanto o sinal um), e portanto uma soma em complemento, basta somar 1 ao complemento a 1. Isso pode ser conseguido SOMANDO O SINAL na entrada (Ci), pois caso o sinal seja 0 (soma) nada ser feito e caso o sinal seja 1 (significando uma subtrao, portanto B deve ser complementado) ento ser somado 1 na entrada. TRATAMENTO DE OVERFLOW Caso na ltima coluna da soma resulte valor maior que a base-1, haver overflow. Como nossa representao s vai at o quarto bit, necessrio sinalizar a ocorrncia do overflow para sinalizar resultados errados.

O algoritmo estudado (ver Representao em Ponto Fixo) diz: SE houver VAI UM para o penltimo bit (C3=1) E TAMBM para o ltimo bit (C4=1) OU SE no houver VAI UM para o penltimo bit (C3=0) NEM PARA o ltimo bit (C4=0) NO H OVERFLOW SE houver VAI UM para o penltimo bit (C3=1) E NO para o ltimo bit (C4=0) OU SE no houver VAI UM para o penltimo bit (C3=0) E SIM para o ltimo bit (C4=1) H OVERFLOW Construindo a tabela verdade, temos:

Analisando esta tabela verdade, podemos verificar que uma funo XOR entre C3 e C4. Aplicando os circuitos de tratamento de subtrao em complemento a dois e de sinalizao de overflow ao circuito somador, a seguir mostrado o circuito da miniUAL.

Você também pode gostar