logic a digital

Upload: roberto-dias

Post on 09-Jul-2015

56 views

Category:

Documents


0 download

TRANSCRIPT

http://venus.rdc.puc-rio.br/rmano/index.html Conceitos de Lgica Digital Operadores Lgicos Tabela Verdade Aplicaes da lgebra de Boole aos Computadores Digitais Portas Lgicas ou Gates Portas Bsicas Porta NOT Porta AND Porta OR Porta NAND Porta NOR Porta XOR lgebra de Boole Avaliao de uma expresso Booleana Equivalncia de expresses Lgicas Propriedades da lgebra de Boole Propriedades da Funo Exclusive OR (XOR) Representao de Circuitos com as Funes NAND E NOR Circuito NOT Circuito AND Circuito OR Circuito XOR Formas Cannicas Representao de Circuitos atravs de Tabela Verdade Formas Cannicas Soma dos Minitermos Produto dos Maxitermos Exemplo de Circuitos Reais de Computadores - Circuito Somador Circuitos Aritmticos Circuito Meio-Somador Circuito Somador Completo Exemplo de Circuitos Reais de Computadores - Circuito Mini-UAL Circuito Somador de 4 bits Tratamento da Subtrao Tratamento para Subtrao em Complemento a 2 Sinalizao de Overflow Circuito Mini-UAL ENTRADA E SADA Entrada e Sada Tipos de Dispositivos

Lgica Digital

Lgica Digital pgina 1

Formas de Comunicao Comunicao Paralela Comunicao Serial

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)

Lgica Digital pgina 2

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 sistemaLgica Digital pgina 3

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:

Lgica Digital pgina 4

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 estivesse 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?

Lgica Digital pgina 5

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. 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.

Lgica Digital pgina 6

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.

Lgica Digital pgina 7

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:Lgica Digital pgina 8

0 1 0 1

0 0 0 1

Sensor Sensor Campainha 1 2 0 0 1 1 Basta incluir uma porta OR. 0 1 0 1 0 1 1 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:

Lgica Digital pgina 9

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:

Lgica Digital pgina 10

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

Lgica Digital pgina 11

c) CIRCUITO OR

Exerccio: Escreva a expresso do circuito abaixo e simplifique.

Soluo:

Lgica Digital pgina 12

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 produziroLgica Digital pgina 13

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,Lgica Digital pgina 14

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:

Lgica Digital pgina 15

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 110 085 +16 101 011 NA BASE 2 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.

Lgica Digital pgina 16

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)

Lgica Digital pgina 17

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

Lgica Digital pgina 18

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.

Lgica Digital pgina 19

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

Lgica Digital pgina 20

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:

Lgica Digital pgina 21

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 mini-UAL.

Entradas e Sadas

Conforme vimos no captulo relativo a componentes, o usurio se comunica com o ncleo do computador (composto por UCP e memria principal) atravs de dispositivos de entrada e sada (dispositivos de E/S ou I/O devices). Os tpicos a seguir vo analisar como funcionam os dispositivos de entrada e sada e como se faz a comunicao entre eles e o ncleo do computador. Os dispositivos de entrada e sada tem como funes bsicas:

a comunicao do usurio com o computador a comunicao do computador com o meio ambiente (dispositivos externos a serem monitorados ou controlados) armazenamento (gravao) de dados.

As caractersticas que regem a comunicao de cada um dos dispositivos de E/S (entrada e sada) com o ncleo do computador (composto de UCP e memria principal) so muito diferentes entre si. Cada dispositivo de E/S se comunica com o ncleo de forma diversa do outro. Entre outras diferenas, os dispositivos de entrada e sada so muito mais lentos que o computador, caracterstica essa que impe restries comunicao, de vez que o computador precisaria esperar muito tempo pela resposta do dispositivo. Outra diferena fundamental diz respeito s caractersticas das ligaes dos sinais dos

Lgica Digital pgina 22

dispositivos. Os primeiros computadores, especialmente os de pequeno porte, eram muito lentos e os problemas de diferena de velocidade eram resolvidos sem dificuldade e no representavam problema importante. Dessa forma, a ligao dos dispositivos de E/S era feita atravs de circuitos simples (as interfaces) que apenas resolviam os aspectos de compatibilizao de sinais eltricos entre os dispositivos de E/S e a UCP. Os aspectos relativos a diferenas de velocidade (especialmente tempo de acesso e throughput) eram resolvidas por programa (isto , por software). Entre esses componentes, trafegam informaes relativas a dados, endereos e controle.

Tipos de Dispositivos Os dispositivos de ENTRADA so: teclado, mouses, scanners, leitoras ticas, leitoras de cartes magnticos, cmeras de vdeo, microfones, sensores, transdutores, etc ... As funes desses dispositivos so coletar informaes e introduzir as informaes na mquina, converter informaes do homem para a mquina e vice-versa, e recuperar informaes dos dispositivos de armazenamento. Os dispositivos de SADA so: impressoras, monitores de vdeo, plotters, atuadores, chaves, etc ... As funes desses dispositivos so exibir ou imprimir os resultados do processamento, ou ainda controlar dispositivos externos. A UCP no se comunica diretamente com cada dispositivo de E/S e sim com "interfaces", de forma a compatibilizar as diferentes caractersticas. O processo de comunicao ("protocolo") feito atravs de transferncia de informaes de controle, endereos e dados propriamente ditos. Inicialmente, a UCP interroga o dispositivo, enviando o endereo do dispositivo e um sinal dizendo se quer mandar ou receber dados atravs da interface. O perifrico, reconhecendo seu endereo, responde quando est pronto para receber (ou enviar) os dados. A UCP ento transfere (ou recebe) os dados atravs da interface, e o dispositivo responde confirmando que recebeu (ou transferiu) os dados (acknowledge ou ACK) ou que no recebeu os dados, neste caso solicitando retransmisso (not-acknowledge ou NAK). As interfaces de entrada e sada so conhecidas por diversos nomes, dependendo do fabricante: Interface de E/S = Adaptador de Perifrico, Controladora de E/S, Processador de Perifrico, Canal de E/S Por exemplo, os computadores de grande porte da IBM chamam de "I/O channel". Na

Lgica Digital pgina 23

CDC, o nome Peripheral Processor Unit ou PPU. A compatibilizao de velocidades feita geralmente por programa, usando memrias temporrias na interface chamadas "buffers" que armazenam as informaes conforme vo chegando da UCP e as libera para o dispositivo medida que este as pode receber. Formas de Comunicao - Comunicao em Paralelo De uma forma geral, a comunicao entre o ncleo do computador e os dispositivos de E/S poderia ser classificada em dois grupos: comunicao paralela ou serial. Vamos a seguir analisar as caractersticas desses grupos. COMUNICAO EM PARALELO Na comunicao em paralelo, grupos de bits so transferidos simultaneamente (em geral, byte a byte) atravs de diversas linhas condutoras dos sinais. Desta forma, como vrios bits so transmitidos simultaneamente a cada ciclo, a taxa de transferncia de dados ("throughput") alta.

No entanto, o processo de transferncia em paralelo envolve um controle sofisticado e razoavelmente complexo, o que o torna mais caro. Um dos problemas importantes diz respeito propagao dos sinais no meio fsico, isto , no cabo de conexo entre o dispositivo e a interface. Essa propagao deve se fazer de modo que os sinais (os bits) correspondentes a cada byte cheguem simultaneamente extremidade oposta do cabo, onde ento sero re-agrupados em bytes. Como os condutores que compem o cabo usualmente tero pequenas diferenas fsicas, a velocidade de propagao dos sinais digitais nos condutores poder ser ligeiramente diferente nos diversos fios. Dependendo do comprimento do cabo, pode ocorrer que um determinado fio conduza sinais mais rpido (ou mais lento) que os demais fios e que desta forma um determinado bit x em cada byte se propague mais rpido e chegue extremidade do cabo antes que os outros n-1 bits do byte. Este fenmeno chamado skew, e as conseqncias so catastrficas: os bits x chegariam fora de ordem (os bytes chegariam embaralhados) e a informao ficaria irrecupervel. Em decorrncia desse problema, h limites para o comprimento do cabo que interliga um dispositico ao computador, quando se usa o modo paralelo. As restries citadas contribuem para que a utilizao da comunicao em paralelo se limite a aplicaes que demandem altas taxas de trasferncia, normalmente associadas a dispositivos mais velozes tais como unidades de disco, ou que demandem altas taxas de transferncia, como CD-ROM, DVD, ou mesmo impressoras, e que se situem muito prximo do ncleo do computador. Em geral, o comprimento dos cabos paralelos limitado a at um mximo de 1,5 metro. Formas de Comunicao - Comunicao Serial

Lgica Digital pgina 24

Na comunicao serial, os bits so transferidos um a um, atravs de um nico par condutor. Os bytes a serem transmitidos so serializados, isto , so "desmontados" bit a bit, e so individualmente transmitidos, um a um. Na outra extremidade do condutor, os bits so contados e quando formam 8 bits, so remontados, reconstituindo os bytes originais. Nesse modo, o controle comparativamente muito mais simples que no modo paralelo e de implementao mais barata. Como todos os bits so transferidos pelo mesmo meio fsico (mesmo par de fios), as eventuais irregularidades afetam todos os bits igualmente. Portanto, a transmisso serial no afetada por irregularidades do meio de transmisso e no h skew. No entanto, a transmisso serial intrinsecamente mais lenta (de vez que apenas um bit transmitido de cada vez).

Como os bits so transmitidos seqencialmente um a um, sua utilizao normalmente indicada apenas para perifricos mais lentos, como por exemplo teclado, mouse, etc. ou quando o problema da distncia for mandatrio, como nas comunicaes a distncias mdias (tal como em redes locais) ou longas (comunicaes via linha telefnica usando modems). Obs.: Comparativamente, a transmisso serial tem recebido aperfeioamentos importantes (seja de protocolo, de interface e de meio de transmisso) que vem permitindo o aumento da velocidade de transmisso por um nico par de fios, cabo coaxial ou de fibra tica. Como o aumento da velocidade de transmisso em interfaces paralelas ocasiona mais skew, a tendncia tem sido no sentido do aperfeioamento das interfaces seriais que hoje permitem taxas de transferncia muito altas com relativamente poucas restries de distncia. Em microcomputadores, a interface USB - Universal Serial Bus permite hoje ligar at 128 dispositivos a taxas muito altas (centenas de kbps). TABELA COMPARATIVA Caracterstica Paralelo Serial Custo Distncia maior curta menor sem limite

Throughput alto baixo TRANSMISSO SNCRONA E ASSNCRONA A transmisso de caracteres atravs de uma linha de comunicao pode ser feita por dois diferentes mtodos: transmisso sncrona e assncrona. Na transmisso sncrona, o intervalo de tempo entre dois caracteres subseqentes fixo. Nesse mtodo, os dois dispositivos - transmissor e receptor - so sincronizados, pois existe uma relao direta entre tempo e os caracteres transferidos. Quando no h caracteres a serem transferidos, o transmissor continua enviando caracteres especiais de forma que o intervalo de tempo entre caracteres se mantm constante e o receptor mantm-se sincronizado. No incio de uma transmisso sncrona, os relgios dos dispositivos transmissor e receptor so sincronizados atravs de um string de

Lgica Digital pgina 25

sincronizao e ento mantm-se sincronizados por longos perodos de tempo (dependendo da estabilidade dos relgios), podendo transmistir dezenas de milhares de bits antes de terem necessidade de re-sincronizar.

J na transmisso assncrona, o intervalo de tempo entre os caracteres no fixo. Podemos exemplificar com um digitador operando um terminal, no havendo um fluxo homogneo de caracteres a serem transmitidos. Como o fluxo de caracteres no homogneo, no haveria como distingir a ausncia de bits sendo transmitidos de um eventual fluxo de bits zero e o receptor nunca saberia quando vir o prximo caractere, e portanto no teria como identificar o que seria o primeiro bit do caractere. Para resolver esses problemas de transmisso assncrona, foi padronizado que na ausncia de caracteres a serem transmitidos o transmissor mantm a linha sempre no estado 1 (isto , transmite ininterruptamente bits 1, o que distinge tambm de linha interrompida). Quando for transmitir um caractere, para permitir que o receptor reconhea o incio do caractere, o transmissor insere um bit de partida (start bit) antes de cada caractere. Convenciona-se que esse start bit ser um bit zero, interrompendo assim a seqncia de bits 1 que caracteriza a linha livre (idle). Para maior segurana, ao final de cada caractere o transmissor insere um (ou dois, dependendo do padro adotado) bits de parada (stop bits), convencionando-se serem bits 1 para disting-los dos bits de partida. Os bits de informao so transmitidos em intervalos de tempo uniformes entre o start bit e o(s) stop bit(s). Portanto, transmissor e receptor somente estaro sincronizados durante o intervalo de tempo entre os bits de start e stop. A transmisso assncrona tambm conhecida como "start-stop".

A taxa de eficincia de uma transmisso de dados medida como a relao de nmero de bits teis dividido pelo total de bits transmitidos. No mtodo assncrono, a eficincia menor que a no mtodo sncrono, uma vez que h necessidade de inserir os bits de partida e parada, de forma que a cada caractere so inseridos de 2 a 3 bits que no contm informao. TRANSMISSO SIMPLEX, HALF-DUPLEX E FULL-DUPLEX Uma comunicao dita simplex quando permite comunicao apenas em um nico sentido, tendo em uma extremidade um dispositivo apenas transmissor (transmitter) e do outro um dispositivo apenas receptor (receiver). No h possibilidade do dispositivo receptor enviar dados ou mesmo sinalizar se os dados foram recebidos corretamente. Transmisses de rdio e televiso so exemplos de transmisso simplex.

Lgica Digital pgina 26

Uma comunicao dita half-duplex (tambm chamada semi-duplex) quando existem em ambas as extremidades dispositivos que podem transmitir e receber dados, porm no simultaneamente. Durante uma transmisso half-duplex, em determinado instante um dispositivo A ser transmissor e o outro B ser receptor, em outro instante os papis podem se inverter. Por exemplo, o dispositivo A poderia transmitir dados que B receberia; em seguida, o sentido da trasmisso seria invertido e B transmitiria para A a informao se os dados foram corretamente recebidos ou se foram detectados erros de transmisso. A operao de troca de sentido de transmisso entre os dispositivos chamada de turnaround e o tempo necessrio para os dispositivos chavearem entre as funes de transmissor e receptor chamado de turn-around time. Uma transmisso dita full-duplex (tambm chamada apenas duplex) quando dados podem ser transmitidos e recebidos simultaneamente em ambos os sentidos. Poderamos entender uma linha full-duplex como funcionalmente equivalente a duas linhas simplex, uma em cada direo. Como as transmisses podem ser simultaneas em ambos os sentidos e no existe perda de tempo com turn-around, uma linha full-duplex pode transmitir mais informaes por unidade de tempo (maior throughput) que uma linha halfduplex, considerando-se a mesma taxa de transmisso de dados.

Lgica Digital pgina 27