Você está na página 1de 8

APRENDENDO PORTAS LGICAS

ndice - Artigos

Portas Lgicas, o LEGO do mundo eletrnico


Criado 17/fev/2012 s 10h22 por Andr Luiz Delai

1. Introduo
Voc j deve ter ouvido falar que computadores somente entendem e processam cdigos binrios, os famosos 0 e 1s do sistema numrico de base 2. O que a grande maioria no sabe como e porque os computadores trabalham dessa maneira e isso que vamos tentar entender no decorrer desse texto. Desde criana, sempre gostei de joguinhos multi peas que me possibilitassem montar coisas, e meu favorito era de longe o LEGO. Era fascinante o que se podia fazer encaixando pecinhas umas nas outras. Ao ficar mais velho e escolher uma profisso na rea tcnica notei que podia voltar a montar coisas usando peas, s que agora eu deixaria a mecnica simples do LEGO de lado e entraria no domnio da eletrnica digital. Na eletrnica digital, que rege o comportamento dos computadores e afins, os equivalentes dos bloquinhos de lego so as portas lgicas, e precisamos de apenas 3 tipos bsicos para projetar nosso circuito digital, seja ele complexo como for (o que inclui microprocessadores). Na lgica clssica se aplicam dois estados possveis para as proposies, verdadeiro ou falso. No caso da lgica binria dos computadores lidamos com zeros e uns, e quando falamos de circuitos eletrnicos isso se traduz em nveis eltricos altos e baixos, que o que realmente torna possvel tornar um modelo terico de computador algo real e prtico.

2.Escondendo o complicado
Em engenharia (e tambm em outras reas) para tornar as coisas mais simples e de mais fcil entendimento usamos algo chamado abstrao, onde dividimos um sistema em nveis, chamados nveis de abstrao. Isso nos permite generalizar e trabalhar somente com a informao necessria ao problema em anlise no momento, escondendo informao desnecessria. Por exemplo, s preciso saber que meu carro precisa de gasolina para ele andar e no quais so os compostos qumicos contidos nela, nem como eles reagem no meu motor. Caso quisesse saber porque meu carro anda com gasolina, teria de descer at um nvel de abstrao mais baixo no projeto do carro e analisar as informaes contidas nele. a famosa abordagem dividir para conquistar, onde quando temos um problema complexo o dividimos em nveis para entend-lo melhor ou extrair somente a informao ou caracterstica que nos interessa num dado momento. Conforme vamos nos aprofundando no

APRENDENDO PORTAS LGICAS


hardware, mais baixo descemos nos nveis de abstrao. Veja o exemplo da figura abaixo, onde dividimos um processador em nveis usando esse raciocnio.

Processador dividido em vrios nveis de abstrao

3.Portas lgicas
As portas lgicas so abstraes de algo mais complexo que a unio de transistores usados para constru-las. Para nossa convenincia didtica podemos classific-las como nvel de abstrao 2, os transistores como nvel 1 e o silcio que compe os transistores como o nvel 0. claro que sempre podemos descer a nveis mais baixos e ir parar dentro dos tomos, mas chegaramos ao ponto em que precisaramos de mecnica quntica e muito ch do ch do Santo Daime para tentar entender alguma coisa. Quando estamos no nvel das portas lgicas s nos interessa o que elas fazem, e no como elas fazem. Como j havia dito, em essncia, para projetar circuitos digitais necessitamos de 3 tipos diferentes de portas lgicas, as portas NO, E e OU ou respectivamente NOT, AND e OR na nomenclatura inglesa (que normalmente a mais usadas nos projetos). Suas representaes grficas ANSI esto na figura abaixo.

APRENDENDO PORTAS LGICAS

Representao grfica para as portas lgicas NOT, AND e OR


Dependendo do seu tipo, as portas lgicas podem ter uma ou mais entradas, porm todas possuem sempre uma nica sada (nos smbolos da imagem acima, as entradas so representadas pelas linhas horizontais esquerda e as sadas as linhas direita). As entradas podem aceitar somente dois estados, 0 ou 1, e o mesmo vale para as sadas. A figura abaixo mostra duas representaes em nveis de abstrao diferentes para a mesma porta NOT. Nota-se que quanto maior o nvel, mais simples tendem a se tornar as representaes, escondendo a complexidade do que vem por baixo.

Representaes de alto e baixo nvel para uma mesma porta NOT


Na representao em forma de porta lgica, vemos uma entrada e uma sada onde os sinais assumem 0 ou 1. J no circuito eltrico tambm temos uma entrada e uma sada, porm elas assumem valores de 0 ou 5 volts, que uma forma de representar os 0s e 1s eletricamente.

4.A Porta NOT


A porta NOT tem como sada a inverso de sua nica entrada, ou seja, se sua entrada for o nvel lgico 1, sua sada ser 0 e vice versa. Para visualizar todas as possveis entradas e suas respectivas sadas resultantes, utilizamos uma tabela chamada de tabela verdade. Aqui damos o nome de A para sua entrada e NOT A para a sua sada.

APRENDENDO PORTAS LGICAS

Tabela verdade da porta NOT

5. A Porta AND
Essa porta realiza a operao AND que consiste em uma multiplicao binria de suas duas ou mais entradas (que na prtica a mesma da realizada com nmeros decimais, ao qual voc j est acostumado). Caso tenhamos duas entradas e elas sejam iguais a 1 e 1 teremos 1 na sada porque 1 x 1 = 1, para todas as outras possibilidades teremos 0 na sada, j que pelo menos uma das entradas ser sempre 0, e quando multiplicamos algo por 0 o resultado sempre 0 (veja a tabela verdade abaixo).

Tabela verdade da porta AND

6. A Porta OR
Ao realizar uma operao OR a porta lgica executa uma adio binria de suas duas ou mais entradas. Cuidado ao realizar a soma, pois nesse tipo de adio 1+1 no igual a 2 (j que o nmero 2 no existe em um sistema binrio), e sim igual a 1. Dessa maneira, em uma porta com duas entradas e com valores 0 e 1 teremos como sada 1, j que 0 + 1 = 1. Somente teremos zero em sua sada quando todas as entradas forem iguais a 0. Em resumo, enquanto houver pelo menos um valor 1 em qualquer uma de suas entradas a sada ser sempre 1 (como na tabela verdade logo abaixo).

APRENDENDO PORTAS LGICAS

Tabela verdade da porta OR


Alm dessas existem as portas NOR, NAND, XOR e XNOR que so usadas para otimizar o projeto, pois possuem caractersticas interessantes. Essas portas construdas atravs de combinaes das outras trs que vimos at agora. No irei inclu-las no artigo para no complicar o texto desnecessariamente, j que esse um texto bsico sobre o assunto, mas bom salientar que elas tambm so muito usadas em projetos.

7.Como uso minhas pecinhas lgicas para construir algo?


Bom, como num brinquedo LEGO, as coisas por aqui so construdas baseadas em regras. No LEGO algumas peas se encaixam e outras no, e os encaixes podem ocorrer de vrias maneiras. No mbito dos circuitos lgicos, todas as portas lgicas se encaixam umas com as outras e a nica restrio a seguinte: sadas no devem ser ligadas com outras sadas. Primeiro, isso ocorre porque no faz sentido ligar a sada de uma porta lgica em outra, devido ao fato de que as sadas no foram feitas para receber informao e sim para fornecer informao j processada. Segundo, num nvel mais baixo, as sadas dos circuitos ao serem ligadas em curto geram um problema eltrico. O resto perfeitamente vlido, ou seja, ligar sadas com entradas e entradas com entradas. Observe a montagem abaixo, isso uma representao de um circuito lgico de 3 bits de entrada que detecta a presena de nmeros primos num intervalo de 0 a 7. A animao mostra como o circuito se comporta para cada entrada (linha) da tabela verdade. Nesse caso, a tabela verdade usada para demonstrar todos os possveis estados do conjunto, e no s o de uma porta em particular. Coloquei uma coluna a mais na tabela com os valores em decimal para facilitar o entendimento. Caso um nmero primo seja inserido nas entradas A B C, o valor da sada X ser igual a 1, caso contrrio ser 0. Observe que o circuito reconhece todos os nmeros primos (2,3,5,7) do intervalo de 0 a 7 porque foi projetado de maneira com que as portas lgicas OU, AND e NOT, ligadas entre si, atribussem essa caracterstica ao circuito.

APRENDENDO PORTAS LGICAS

Detector de nmeros primos

Nessa ilustrao, as letras significam os nomes das entradas/sada, os nmeros em preto significam a identificao das portas e os nmeros em vermelho os sinais que fluem pelo circuito (que s podem ser zeros e uns). Os sinais se propagam seguindo os fios e entram nas portas lgicas para serem processados, o resultado pode ser inserido em outras portas para serem processados novamente e por a vai, at o fim do circuito onde o sinal pode ser 0 ou 1. Nesse caso, os fios em azul representam os sinais que ainda no passaram por nenhum processamento (no atravessaram nenhuma porta ainda), os vermelhos representam os sinais que j foram processados pelo menos uma vez. Esse desenho de interligao de portas tambm conhecido como diagrama esquemtico, ou simplesmente esquemtico. Note que no projeto do circuito acima a regra de no ligar sadas com sadas no foi quebrada. Por exemplo, ligamos a entrada da porta 1 (NOT) em uma das duas entradas da porta 3 (AND), isso significa que ambas as entradas sempre recebero o mesmo valor (0 ou 1). Fizemos o que se chama de ligao em paralelo (sempre que ouvir que algo est ligado em paralelo, significa que est recebendo o mesmo sinal que o outro ao qual est ligado). Tambm ligamos a sada da porta 1 na entrada da porta 2 e a sada da porta 2 na entrada da porta 4, alm de outras ligaes. Desse modo, usamos somente as regrinhas permitidas, que so ligar entradas com entradas e sadas com entradas. Observe tambm que podemos repetir portas de acordo com a necessidade (as portas 2 e 3 do detector so idnticas, mas recebem sinais diferentes). Circuitos lgicos tambm podem ter mais de uma nica sada, na figura abaixo voc pode ver uma ULA que trabalha com operandos de 4 bits. O diagrama esquemtico possui alguns smbolos que no expliquei aqui (portas NOR, XOR, buffers, entre outros), mas a ideia a mesma do exemplo da figura acima, s que em uma escala maior. Neste circuito, as entradas da ULA esto extrema esquerda e as sadas extrema direita.

APRENDENDO PORTAS LGICAS

Circuito lgico de uma ULA


Infelizmente projetar circuitos lgicos no to simples quanto construir usando bloquinhos de LEGO. Quando construmos algo com LEGO, podemos literalmente ver o resultado do que estamos construindo. Se quero construir um carro de corrida, meus bloquinhos unidos devem se parecer com um carro de corrida. No caso das nossas portas lgicas, na maioria das vezes, no d para saber a aparncia que o circuito ter durante o projeto. Como nossa busca funcional e no visual, comear a ligar as portas umas nas outras observando como o diagrama se parece no vai funcionar, pelo menos no para circuitos mais complicados. Por isso, para projetar circuitos lgicos recorremos a mtodos grficos como o mapa de Karnaugh, e matemticos como a lgebra de Boole, alm de outros. Mas isso j assunto pra um outro dia ;).

APRENDENDO PORTAS LGICAS

8.Concluso
Todo o tipo de processamento realizado pelos processadores na verdade isso a que voc acabou de ver: zeros e uns passando dentro de vrias portinhas lgicas como as mostradas no exemplo do detector de nmeros primos. isso que seu microprocessador faz o tempo todo em que seu computador est ligado. Obviamente em uma escala muito maior e mais complexa. Se voc entendeu o esprito da coisa acaba de compreender a base de projeto dos circuitos lgicos que compem os mais complexos chips digitais do mundo. Todos os circuitos seguem essas mesmas regras bsicas, desde simples registradores at mesmo ULAs, controladores de memria, unidades de clculo em ponto flutuante, pipelines, timers, etc. E agora voc tambm sabe porque os computadores s trabalham com zeros e uns. Caso no tenha entendido, no tem problema algum, a maioria das pessoas tem inicialmente uma certa dificuldade em compreender tantos zeros e uns pra l e pra c indo de porta em porta, mas no desanime, ao final do artigo deixo algumas referncias para estudos mais aprofundados caso seja de seu interesse.