Extraído da monografia: Projeto de um Editor Gráfico Para Sistemas Digitais à Nível de Portas Lógicas de MARGRIT RENI KRUG São Leopoldo, Novembro 1997 Sistemas Digitais - Introdução Este capítulo tem o objetivo de, resumidamente, introduzir e identificar os principais aspectos da eletrônica digital, os quais atingem diretamente a área de sistemas digitais. O estudo de sistemas digitais torna-se muito importante devido ao fato de que todas as novas tecnologias estão relacionadas à eletrônica, entre elas computadores e seus periféricos. Este estudo torna-se muito importante, pois cada vez mais a humanidade está dependente dos componentes eletrônicos, sejam eles analógicos ou digitais. Um sistema eletrônico é resultado da interação entre resistores, capacitores, diodos, transistores, os quais objetivam a execução de uma determinada tarefa. Estes componentes serão estudados neste capítulo. Como exemplo de um componente analógico tem-se: amplificadores de som, receptores de rádio, microfones, entre outros. Esse tipo de componente possui um sinal analógico, que se caracteriza por apresentar uma forma de onda que possui variação contínua ao longo do tempo, o que pode ser observado com o osciloscópio, onde existem variações relativamente rápidas, mas de forma contínua, ou seja sem saltos bruscos, uma variação contínua no tempo. O que diferencia o sinal digital do analógico é a forma com que a onda gerada varia, sua variação se dá por saltos descontínuos. Ele também forma um determinado número de tensão, onde trabalha apenas com dois valores, um muito próximo do 0 Volts e outro em 5 Volts; representados respectivamente por 0 e 1, ou seja, possui dois estados: ligado ou desligado, formando com isso uma onda chamada quadrada, na qual tem-se a subida em 1 e a descida em zero. Por esta razão pode-se dizer que os circuitos digitais operam com base no processo de tomada de decisões lógicas, onde assume-se que um dos valores é verdadeiro e o outro falso. Figura 2.1 - Diferença na forma da onda, de um sinal digital e de um sinal analógico A tendência é utilizar cada vez mais circuitos digitais, também conhecidos por circuitos lógicos, pela característica de apresentarem apenas dois valores possíveis para seu estado, verdadeiro ou falso, pela sua simplicidade e a larga tolerância dos componentes dos circuitos integrados, principalmente resistências e transistores necessários para as operações lógicas, além da facilidade e versatilidade de interligação. Um circuito integrado, também conhecido por chip, é um invólucro com vários componentes interligados, ou seja, é um conjunto de componentes interligados em um único elemento, os quais possuem uma dimensão reduzida. Entre os componentes que compoem o circuito integrado tem-se: transistores, resistores, entre outros elementos eletrônicos. Este invólucro é chamado de encapsulamento, o qual fica, geralmente, sobre uma pastilha de cristal de silício chamada de circuito impresso. Figura 2.2 - Exemplo de um chip O encapsulamento refere-se a um conjunto de elementos que se encontram em um ambiente comum, como se fosse uma embalagem com vários objetos dentro. Figura 2.3 - Itens encapsulados Um circuito integrado fornece a possibilidade de ter, em um único processo de fabricação, a montagem de muitos componentes interligados. E a interligação de componentes de uma família possibilita o projeto de circuitos digitais. Os circuitos integrados estão divididos em duas classes: os circuitos bipolares e os MOS [LOU 96]. A diferença entre eles está relacionada ao tipo de transistor utilizado na sua composição. A fabricação de um circuito integrado do tipo bipolar utiliza transistores bipolares e os MOS, transistores MOS (Metal-Oxide-Semiconductor). Os circuitos MOS são mais simples, pois possuem maior densidade e baixa potência de consumo, por isso são os mais utilizados na fabricação de circuitos comerciais, apesar de resultarem em circuitos mais lentos se comparados com os bipolares. Por ser mais lento resulta em um atraso de propagação (delay). O circuito integrado pode ser soldado diretamente na placa de circuito impresso ou fixado em um soquete, o qual é o mais aconselhado, pelo fato do circuito integrado poder ser utilizado novamente e, também, por não correr o risco de ser danificado pelo calor da solda. Figura 2. 4 - Exemplo de um circuito integrado em um circuito impresso As entradas e saídas nos sistemas digitais são representadas por sinais que correspondem a grandezas físicas elétricas, principalmente tensão [MEL 93]. Tensão é um elemento que conduz a carga elétrica, através de um condutor, ele força a passagem da corrente elétrica através do meio. A utilização de dois níveis de tensão, 0 e 5 Volts, faz com que se trabalhe com uma grande imunidade ao ruído, pois em um sinal digital se existir ruído em alguma entrada, este não afetará o sinal de saída, o que não ocorre com os sinais analógicos, onde é impossível retirar o ruído do sinal. Por ruído entende-se qualquer interferência externa que ocasiona na alteração da corrente, ou seja, ele interfere de tal maneira que altera a forma da saída do sinal. Além destas características, tem-se as seguintes vantagens, que tornam a eletrônica digital cada vez mais utilizada na confecção de componentes eletrônicos: o o o o o o é mais fácil construir um sistema que trabalha apenas com dois valores, se este for comparado a um sistema que trabalha com dez valores diferentes, pois se o mesmo fosse utilizar algarismos de 0 a 9 teria de dispor de 10 níveis de tensão, enquanto na base 2 pode-se manipular apenas com a presença ou a ausência de tensão; possibilita um estabelecimento prévio de precisão; elimina a possibilidade de erros por confusão de escalas; são velozes; permite a detecção e eliminação de erros de transmissão ou recepção e, pelo fato da lógica humana ser binária, ou seja, trabalha com falso ou verdadeiro, sim ou não, ligado ou desligado. Por definição circuitos digitais, ou circuitos lógicos são combinações de portas lógicas interligadas [SAR 95]. As portas lógicas, por sua vez, podem compor módulos, e estes constituir outros módulos, sucessivamente até chegar ao circuito lógico final. Esquematicamente, a representação de um circuito digital pode ser feita como um bloco com entradas e saídas, onde os valores das saídas dependem de processos executados sobre os valores das entradas, no caso de circuitos combinacionais. Figura 2.5 - Representação esquemática de um circuito digital Os circuitos lógicos são divididos em duas classes: combinatórios e seqüenciais [SAR 95]. Os circuitos combinatórios são aqueles cujos valores das saídas, num certo instante, dependem apenas dos valores atuais das entradas. Enquanto os circuitos seqüenciais dependem tanto do valor das entradas quanto de valores passados das entradas, como se o circuito tivesse uma memória interna para guardar estes valores. 2.2 Osciloscópio O osciloscópio é uma aparelho utilizado para observar as ondas feitas por oscilações de um sinal de alta ou baixa freqüência . Este instrumento produz gráficos para demonstrar as alterações elétricas em um determinado intervalo de tempo. Os fabricantes de componentes eletrônicos fornecem manuais que detalham o funcionamento de seus produtos e através das tabelas contidas neste material é que se pode verificar se uma determinada placa está funcionando adequadamente, após injetar os valores especificados pelo fabricante, nas entradas. 2.3 Resistor A função de um resistor é diminuir a intensidade da corrente elétrica em um circuito ou então para fazer cair a tensão a um valor mais conveniente, pois se a corrente elétrica não for controlada pode provocar uma conversão da energia em calor, que ocasiona o curtocircuito, resultado da produção descontrolada de calor. Os resistores fazem parte de um conjunto de componentes denominados "passivos" [LOU 96], pelo motivo de não amplificarem e nem gerarem sinais. A quantidade de resistência que um resistor oferece à corrente elétrica é medida em Ohms (Ω ) e pode variar de 0,1 até 22 000 000 Ohms [LOU 96]. Figura 2.6 - Representação física de um resistor Em um circuito o resistor é representado por um R, como mostra a figura abaixo. Figura 2.7 - Forma de representar um resistor em um circuito 2.4 Diodo Os diodos fazem parte de um grupo de componentes denominados "ativos" [LOU 96], nos quais se encontram os materiais semicondutores. Esses materiais possuem a capacidade de conduzir corrente elétrica com uma certa facilidade, situam-se entre os condutores, como os metais e os isolantes, que são aqueles que não conduzem corrente, entre eles estão o plástico, a borracha e a madeira. Os principais materiais semicondutores são: germânio, silício, selênio e gálio, porém os dois primeiros são os mais utilizados. O diodo de germânio é utilizado quando tem-se correntes muito fracas, por esta razão é utilizado na detecção de sinais de rádio. O germânio é um elemento químico, que se caracteriza por não se dissolver no ácido e seus sais se decomporem na água. Os diodos de silício, conhecidos como de uso geral, são fabricados para trabalhar com corrente baixa. São usados em circuitos lógicos, alvo deste estudo. Figura 2.8 - Classificação dos materiais quanto a condutividade elétrica O símbolo utilizado para representar um diodo, em um circuito é o de uma seta apontando para o lado em que ocorre a condução da corrente, como pode ser observado na figura 2.9. Figura 2.9 - Símbolo utilizado para representar um diodo Ânodo é o polo positivo de um dispositivo emissor de energia, por exemplo uma bateria. E o cátodo é o polo negativo deste emissor. 2.5 Diodo Emissor de Luz (led) O diodo emissor de luz, conhecido como led, é produzido com um material semicondutor especial. Difere dos diodos de silício e de germânio, pois quando polarizados corretamente emitem luz, por isso são utilizados na execução de testes em circuitos eletrônicos. Quando a luz é emitida significa que o circuito está funcionando adequadamente. A aparência de um led se aproxima muito com a de uma lâmpada. O que os diferencia é a forma como a corrente circula. Em uma lâmpada comum a corrente circula sobre um filamento de metal, que se incendeia e fica encandecente enquanto nos leds a corrente circula em qualquer sentido. Figura 2.10 - Lâmpada comum Como exemplo de utilização de leds, tem-se os painéis luminosos utilizados para publicidade, onde luzes se acendem para mostrar as imagens, esses são compostos por um número bastante elevado de leds, que se iluminam ou apagam conforme os comandos lógicos utilizados. 2.6 Display Os displays são utilizados para visualizar uma informação digital, também serve de apoio aos testes de circuitos, como os leds. Eles são construídos com cristais líquidos, formados por diodos luminescentes ou compostos por leds. Seu aspecto pode ser visto no visor de uma calculadora eletrônica. Cada segmento, no caso de displays compostos por leds, é um led que acende com uma tensão mínima, normalmente de 1,6 volts, e precisa ter um resistor limitador de corrente. Sem o resistor a corrente não tem limite e pode queimar tanto o led como o integrado, que lhe fornece os estímulos. Para formar o número ou letra, necessita-se de sete segmentos, como pode ser observado na figura 2.11, estes segmentos podem ser de dois tipos: ânodo comum ou cátodo comum [LOU 96]. Figura 2.11 - Display com 7 segmentos 2.7 Transistor O transistor, assim como o diodo é um dispositivo semicondutor, porém mais complexo. Tem como funções amplificar e produzir sinais, controlar diversos dispositivos como chave eletrônica, entre outros, estes possuem uma larga utilização nos projetos eletrônicos. A palavra transistor vem de "transference resistor" um dispositivo idealizado por Bardeen, Brattain e Shockely nos Estados Unidos, nos laboratórios da Bell Thelephone, em junho de 1948. A capacidade do transistor de amplificar sinais elétricos permitiu que em pouco tempo este dispositivo, muito menor e consumindo muito menos energia viesse a substituir as antigas válvulas, nas maiorias das aplicações eletrônicas. A estrutura de um transistor é composta por três regiões, semicondutoras, chamadas: emissor, base e coletor. Por esta razão possui as três pernas, como pode ser observado na figura 2.12. Figura 2.12 - Exemplo de transistores Quando não flui corrente pela base do transistor diz-se que ele está no CORTE, porém quando existe corrente no seu coletor, ou seja carga para que funcione, diz-se que ele está no estado de SATURAÇÃO. A aplicação mais comum para um transistor é de chave, a qual liga ou desliga uma carga que está vinculada ao seu coletor. 2.8 Clock O clock mede cuidadosamente o tempo e transmite sinais, o qual possui a função de manter o ritmo de uma operação. Como analogia, pode-se dizer que o clock trabalha como a marcha de um grupo de soldados, de forma sincronizada, sem sair do compasso. Figura 2.13 - Marcha de soldados e sua correspondência com um clock O sinal de clock, também conhecido como "onda quadrada" apresenta borda ascendente, quando está subindo e borda descendente, quando está descendo, respectivamente com os valores 1 e 0. Quanto maior a freqüência do sinal, mais rápido será processada a informação digital, como a marcha dos soldados, quanto mais rápido marcharem mais depressa chegarão ao seu destino, mas sempre mantendo o mesmo compasso. 2.9 Capacitor Os capacitores são componentes eletrônicos formados por um conjunto de placas de metal e entre elas existe um material isolante. O material isolante é que dá nome ao capacitor, por exemplo, se o material utilizado for a mica, o capacitor será chamado de capacitor de mica. Este elemento possui a capacidade de armazenar cargas elétricas, a qual chama-se capacitância. Além da capacitância ele isola a tensão. 2.10 Sistema de Numeração A palavra digital é originária do latim: dígitos, que significa dedos, já que os principais sistemas de numeração se baseiam totalmente nos dedos das mãos humanas. Desde muito cedo os homens utilizavam os dedos como referência para contar objetos. Os romanos desenvolveram seu sistema de numeração, os números romanos, também baseados nos dedos das mãos humanas, através de uma combinação de dedos e uma simbologia própria para representar os números. O sistema decimal é o mais utilizado para dar valores às mercadorias (preços), idades às pessoas ou a quantidade de dias a um ano. Ele baseia-se totalmente no fato do homem possuir dez dedos. Figura 2.14 - Representação do sistema decimal de numeração Os números utilizados pelo sistema decimal variam de 0 a 9. Os valores superiores a estes são compostos por uma combinação entre eles, isto é, são atribuídos pesos aos mesmos algarismos. Estes pesos sempre são uma potência de 10 ( 1, 1 * 10 = 10, 10 * 10 = 100). No sistema decimal, são utilizados os número para indicar quantas "mãos cheias" e/ou quantos "dedos" significam o valor, por exemplo quando a referência é o número 10, este indica que se possui duas mãos cheias, já o número 0 indica que não se está utilizando nenhum dedo para representá-lo, quando se tem o número 25 este representa a utilização de cinco mãos cheias. Figura 2.15 - Pesos dos algarismos decimais O sistema binário representa a ausência ou a presença de algo, utilizando para isso os valores 0 e 1, respectivamente. Estes caracteres recebem o nome de BIT, que corresponde a BInary digiT (digito binário). A representação de qualquer número pode ser feita pelo sistema de numeração binária, simplesmente por uma decomposição em fatores múltiplos de 2. Os circuitos digitais processam informações representadas no sistema binário, por esta razão são mais simples, se comparados com os circuitos analógicos, pois realizam com maior rapidez as operações lógicas e aritméticas e fornecem resultados com maior resolução e precisão. Por precisão deve-se entender a proximidade do valor real e por resolução a quantidade de caracteres utilizados para esta representação. O sistema octal, usa os caracteres 0, 1, 2, 3, 4, 5, 6 e 7. E o hexadecimal utiliza os dez dígitos do sistema decimal e mais as letras A, B, C, D, E e F, que correspondem respectivamente, ao decimais: 10, 11, 12, 13, 14 e 15, pois este utiliza 16 valores para representação. 2. 11 Portas Lógicas 2.11.1 Introdução Constituem os módulos básicos dos circuitos digitais e têm como objetivo a implementação de funções lógicas, que são operações da álgebra booleana, aplicadas a uma ou mais variáveis lógicas [SAR 95]. As portas lógicas são resultados da aplicação de energia de 5 Volts sobre um metal que se dilata o suficiente para fazer o contato com a outra extremidade. Esta mudança de estado físico leva um determinado tempo, o qual é chamado de atraso de propagação, ou seja, é o tempo que o metal leva para voltar ao seu estado natural. As portas lógicas são realizações físicas das operações lógicas AND, OR, XOR e NOT da álgebra booleana, implementadas por circuitos eletrônicos, ou seja, uma porta lógica é um circuito eletrônico com a função de produzir um sinal a partir de valores da entrada. As funções lógicas básicas existentes são: AND, OR e NOT. Porém existem as derivações destas: NAND, NOR, XOR e XNOR. Figura 2.16 - Símbolos para representar portas lógicas Os símbolos acima servem para representar as portas lógicas de forma gráfica, facilitando a vizualização e a simplificação do circuito digital, através da substituíção de um dos símbolos por seu equivalente. 2.11.2 Porta Lógica AND (E) O circuito que executa a função básica AND pode possuir várias entradas e os resultados (saídas) será a resposta da operação AND entre as entradas. Observando as seguintes regras[SHI 86]: uma função AND assume valor 1 se, e somente se, todas as variáveis lógicas de entrada também tiverem o valor 1 e, o a saída será 0 para qualquer outra combinação de valores de entrada. o Conclui-se que a saída será verdadeira (1) somente se todas as variáveis de entrada também forem verdadeiras. Nesta função para se realizar um evento é necessário que todas as entradas sejam verdadeiras. Figura 2.17 - Exemplo da função lógica AND No exemplo anterior fica bem claro o funcionamento de uma porta lógica AND, pois a lâmpada só ficará ligada quando as chaves A e B estiverem fechadas, fechando o circuito necessário para acender a lâmpada. Um exemplo prático da utilização de portas lógicas AND seria a de um acionamento de alarme de uma casa ou automóvel, que só dispara quando está armado e quando uma janela ou porta for aberta. Situação 1: Chave do alarme desligada Porta ou janela fechada Resultado: alarme não toca Situação 2: Chave do alarme desligada Porta ou janela aberta Resultado: alarme não toca Situação 3: Chave do alarme ligada Porta ou janela fechada Resultado: alarme não toca Situação 4: Chave do alarme ligada Porta ou janela aberta Resultado: alarme toca A simbologia utilizada para representar uma porta lógica AND está representada na figura 2.16, também podendo ser representada pela função lógica utilizando o símbolo da multiplicação (.), em expressões algébricas. Figura 2.18 - Formas de representar a porta lógica AND 2.2.3 Porta Lógica OR (OU) O circuito que realiza a operação OR, pode ter várias entradas e o valor da saída será o resultado da operação OR entre os valores das entradas. A função OR assume o valor 1, em sua saída, se pelo menos uma de suas variáveis de entrada possuir valor 1, ou seja, nesta função tem-se uma saída verdadeira se pelo menos uma entrada for verdadeira. Figura 2.19 - Exemplo do funcionamanto de uma porta lógica OU Como analogia vamos utilizar o exemplo da luz interna de um automóvel que acende se uma das portas dianteiras é aberta, pelo menos na maioria dos modelos de automóveis é assim. Chamando de porta direira a chave A do exemplo acima e a porta esquerda de chave B, tem-se: Situação 1: Porta esquerda aberta Porta direita fechada Resultado: luz acende Situação 2: Porta esquerda fechada Porta direita aberta Resultado: luz acende Situação 3: Porta esquerda aberta Porta direita aberta Resultado: luz acende Situação 4: Porta esquerda fechada Porta direita fechada Resultado: luz apagada. O símbolo utilizado para representar a função lógica OR nas expressões booleanas é o sinal + (soma) e sua representação gráfica está reperesentado na figura 2.20. Figura 2.20 - Formas de representação da porta lógica OR 2.2.5 Porta Lógica NOT (NÃO) Também conhecida como porta inversora, realiza a operação de negação. Executa a função lógica de converter o valor de uma função ou variável em seu complemento, valor inverso, ou seja, o valor da saída de uma função lógica sempre é o valor oposto ao da entrada. Várias notações são utilizadas para representar esta operação entre elas: acrescentando um asterisco (*) antes da variável ou um apóstrofo (‘) a ela, ou a notação mais comum de uma barra sobre a função ou variável. Figura 2.21 - Formas de representação da porta lógica NOT 2.2.6 Porta Lógica NAND A porta lógica NAND (NOT AND) é um circuito que executa o inverso da função AND, então a saída só será 1 se pelo menos uma das variáveis de entrada assumir o valor 0. Figura 2.22 - Formas de representar a porta lógica NAND 2.2.7 Porta Lógica NOR O circuito NOR (NOT OR) é como o nome indica a inversão da porta OR. Onde o OR resulta em 1 o NOR resulta em uma saída 0 e vice-versa. Figura 2.23 - Representações da porta lógica NOR 2.2.8 Porta Lógica XOR O circuito que realiza a operação XOR (OU-EXCLUSIVO) pode ter várias entradas e o valor da saída é o resultado da operação XOR entre os valores das entradas. Pode-se dizer que a saída da porta XOR será igual a 1 apenas quando houver um número ímpar de entradas iguais a 1. Esta porta geralmente é utilizada para fazer comparações [SHI 86]. Figura 2.24 - Formas de representação da porta lógica XOR 2.3 Fan-out O fan-out é um parâmetro que indica o número máximo de entradas que as portas lógicas podem assumir [LOU 96], sem provocar uma mudança no nível lógico da saída, ou seja, é a cargabilidade das entradas . É a medida em quantidade de entradas que podem ser conectadas a uma porta lógica. Figura 2.25 - Cargabilidade da porta lógica AND 2. 4 Famílias Lógicas As famílias lógicas surgiram com o objetivo de aumentar a velocidade e diminuir o consumo dos dispositivos lógicos. As principais famílias existentes no mercado são: RTL, DTL, TTL, ECL e CMOS [SAR 95]. A família RTL, significa lógica-resistência-transistor, foi a primeira a ser produzida em escala comercial. Tem como porta lógica básica a porta NOR. O DTL, lógica-diodo-transistor, surgiu para suprir as falhas da família RTL. É muito utilizada, apesar de ser uma tecnologia bastante antiga. É o resultado de uma combinação lógica de diodos e transistores. A saída tem a característica de não variar com a carga. Esta família apresenta como dispositivo comum a porta lógica NAND. O lógica-transistor-transistor, TTL, é uma família que se caracteriza por exigir uma tensão de 5 Volts. É uma das famílias lógicas mais usada pelos fabricantes de circuitos integrados, pois possui uma divisão em "sub-famílias", as quais se diferenciam pela velocidade e consumo de corrente elétrica. A porta lógica básica desta família é a porta NAND, como na família DTL, por esta razão elas são totalmente compatíveis. Os transistores empregados nos circuitos TTL são do tipo multi-emissor. Cada emissor funciona como um diodo, o qual proporciona um isolamento da entrada. As sub-famílias TTL são: TTL padrão, TTL de baixa potência, TTL de alta velocidade, TTL Schottky e TTL Schottky de baixa potência. O que as diferencia é velocidade de operação e o consumo de energia. As entradas da família lógica TTL são chamadas LO e HI. A entrada LO varia de 0 a 0,8 Volts, correspondendo ao nível lógico 0 e HI tem seus valores entre 2,4 Volts e 5 Voltas, sendo representado por 1. A família ECL, lógica de emissor acoplado, caracteriza-se por apresentar uma alta velocidade de operação, pois seus transistores nunca trabalham em estado de saturação, por isso são utilizados em computadores de grande porte e em satélites. Finalmente, a família lógica CMOS, lógica metal-óxido-semicondutor-complementar, foi desenvolvido para ser uma alternativa de baixo consumo para a família TTL, porém possui, geralmente, velocidade menor. Estes dispositivos apresentam certas restrições, ou deve se tomar alguns cuidados no seu manuseio, principalmente em dias úmidos. Os chips, originados desta tecnologia, também apresentam sensibilidade à cargas eletrostáticas e ao ruído. Estes podem modificar os níveis lógicos das entradas, mas apesar disso possuem uma imunidade ao ruído muito maior do que nos circuitos TTL. 2. 5 Portas Three-state (três estados) As portas three-state são circuitos que possuem uma entrada especial denominada input enable (habilita entradas) ou input desable (desabilita entradas) [SAR 95], ou seja é uma entrada acionadora. É uma entrada adicional que controla a saída. Quando está ligada funciona normalmente, mas quando desligada a saída apresentará alta impedância, como se não tivesse nada conectado à entrada. Por esta razão é chamada de porta three-state, pois apresenta os três estados: zero, 1 e impedância. 2.6 Álgebra Booleana A lógica é a base da eletrônica digital e da informática. Esta surgiu na Grécia antiga com a contribuição de três filósofos: Sócrates, Platão e Aristóteles [SAR 95] . Sócrates não deixou nenhum de seus ensinamentos por escrito, mas Platão, seu seguidor, escreveu vários de seus diálogos, onde desenvolveu sua filosofia abrangendo a ética, a política e o conhecimento, tendo como princípio o método da investigação. Aristóteles, baseado nos diálogos escritos por Platão, observou que a linguagem deve ter uma estrutura lógica, para que leve, necessariamente, a uma verdade. Pelo método de investigação socrática, se duas verdades são alcançadas individualmente, ao juntá-las teremos uma única verdade. Pelos postulados de Aristóteles, temos: se A = B e se B = C, então A = C. Segundo Aristóteles, se as premissas A = B e B = C forem corretas a conclusão A = C será obviamente correta. Ao desenvolvimento dessas leis, Aristóteles deu o nome de lógica. No século XIX, a teoria de Aristóteles foi sintetizada em forma de álgebra, ganhando o nome de Álgebra Booleana [SAR 95]. Esta álgebra possui este nome devido ao fato de ter sido desenvolvida pelo filósofo e matemático George Boole em 1853 "para dar expressão às leis fundamentais do raciocínio na linguagem simbólica do cálculo". Em 1938, Claude Shannon, do Instituto de Tecnologia de Massachusets (EUA), adaptou a álgebra booleana para a análise e descrição de circuitos com relês, em projetos de comutação telefônica, criando uma simbologia e um método de representação desta matemática, facilitando seu uso. Essa adaptação passou a ser chamada de Álgebra de Chaveamento, aceitando como valores possíveis para as variáveis 0 e 1. A vantagem de se utilizar a álgebra como fundamento é que se pode efetuar, inicialmente toda a análise matemática do problema lógico antes da construção do circuito digital. Ela serve como suporte para a construção de um sistema digital. A álgebra booleana é estruturada sobre quatro operações OU, E, INVERSÃO e OUEXCLUSIVO, as quais já foram estudadas no item portas lógicas. Uma variável da álgebra booleana só pode assumir os valores 0 ou 1 (falso ou verdadeiro), assim: se x <> 1 então x = 0 e se x <> 0 então x = 1. O símbolo x´ ou ⎯ x , representa o componente da INVERSÃO ou NEGAÇÃO como também é conhecido, a qual é classificada como unária ao invés de ser binária como as demais, pois trabalha só com um valor: 1. Se x = 0 então ⎯ x = 1; 2. Se x = 1 então ⎯ x = 0. As operações básicas definidas pela álgebra do chaveamento são: a multiplicação lógica (AND) e a soma lógica (OU). No estudo da álgebra booleana, existem algumas identidades que são muito importantes tanto para o estudo da lógica, como para o estudo dos circuitos digitais. Por identidade entende-se: relações genéricas abstratas que podem ser entendidas por qualquer pessoa, em qualquer lugar. Por exemplo " x + x = x" é uma identidade e expressa que para quaisquer que sejam os valores de x, 0 ou 1, a igualdade sempre será verdadeira. É importante ressaltar, que em expressões algébricas a operação AND tem precedência sobre a operação OR e a negação sobre todas as operações, é claro tendo estas regras alteradas com a colocação de parênteses na expressão. 2.7 Circuitos Combinatórios ou Combinacionais O circuito combinatório é aquele que executa uma expressão booleana através da interligação de portas lógicas, sendo que as saídas deste circuito dependem única e exclusivamente dos valores das entradas. E este, constitui parte de um sistema digital, ou seja um subsistema digital [SAR 95]. Para descrever um circuito combinatório podemos utilizar expressões algébricas, tabelas ou grafos, onde os nodos representam portas lógicas. 2.7.1 Tabela Verdade A tabela verdade ou tabela de combinações é uma representação, onde todas combinações dos valores possíveis das entradas de um circuito são listadas em colunas e a saída representada em outra coluna, com o valor correspondente a cada combinação. Este tipo de representação é adequado para circuitos com poucas entradas, devido ao fato de ter para cada entrada 2 elevado ao número de entradas combinações. Por exemplo para uma função com três entradas teremos oito combinações. As etapas para a montagem de uma tabela verdade, são: - identificação das variáveis lógicas; - montagem do quadro com todas as situações que as variáveis lógicas podem assumir; - montagem de colunas para a quantidade de membros da expressão e - preenchimento das colunas com os resultados. Para facilitar a montagem da tabela verdade, as linhas devem ser colocadas em ordem crescente, tendo para cada uma delas uma saída correspondente. A montagem das linhas e colunas segue a ordem, vista no exemplo abaixo. Para 3 entradas 2², 2¹ e 2º variações de valores da entrada. Como a entrada só pode assumir os valores 1 e 0, tem-se, na primeira coluna a troca de 4 em 4, na segunda de 2 em 2 e na terceira de 1 em 1 combinações, ficando livre a escolha do valor inicial (0 ou 1), resultando na tabela da figura 2.26. A B C S 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Figura 2.26 Tabela Verdade para 3 entradas Na tabela verdade acima pode-se observar que a sua montagem seguiu o que o parágrafo anterior sugeriu, ou seja para três entradas a primeira coluna (A) foi preenchida com quatro zeros consecutivos, a segunda alternando de dois em dois os números zero e um, e na terceira coluna os valores alternados de um em um. 2.7.2 Expressão Booleana A representação através de expressões algébricas ou booleanas é a forma mais simples de representar um projeto de um circuito digital. Utilizando como exemplo a tabela verdade da figura 2.26 a expressão s = ab + ⎯ cb+ ac, pode ser uma das expressões para obter os resultados apresentados na tebela verdade. 2.7.2.1 Soma de produtos A expressão ab + bc é um exemplo de uma "soma de produtos", isso porque a representação da função AND é um ponto(.), que na matemática indica o produto entre dois termos, enquanto que o símbolo + representa a função OR, indicando uma soma. Para realizar as somas é necessario, primeiro, fazer as operações de multiplicação, isso para cumprir as regras matemáticas. 2.7.2.2 Produto de Somas O produto de somas ocorre quando é alterado o fluxo natural de uma expressão através do uso de parênteses, obrigando desta forma a realização antes da soma entre os termos e após a obtenção deste resultado fazer então, a operação de multiplicação. Por exemplo: s = (a + b) . (a + c). 2.7.2.3 Dualidade O termo dualidade tem o significado de contrário, inverso de alguma coisa. Qualquer expressão apresenta uma expressão "dual" a sua, basta substituir seus valores e operadores pelos seus "duais" e o resultado da avaliação da expressão será o mesmo, ou seja se em uma expressão lógica o símbolo da operação OU for substituido pela operação E e vice-versa, ou então se o dígito 0 for substituído pelo valor 1 e vice-versa, tem-se uma expressão dual aquela de origem. Figura 2.27 - Exemplo de dualidade em uma expressão lógica 2.7.3 Mapa de Karnaugh É uma representação tabular de uma expressão algébrica. É uma maneira de reescrever a tabela verdade, em formato bidimensional, utilizada para a simplificação de circuitos digitais, o que os torna mais simples, econômicos e menos sucetíveis a erros. Esta tabela é montada para facilitar o processo de simplificação das expressões lógicas. Estes mapas foram desenvolvidos pelo engenheiro Edward W. Veitch em 1952 e aperfeiçoados por Maurice Karnaugh no mesmo ano, razão pela qual o mapa recebeu este nome. A simplificação de circuitos eletrônicos é usada para economizar componentes, tornar o circuito mais rápido, mais simples de fabricar e de manutenir, além de diminuir seu tamanho. Este mapa é formado por 2N células, onde N corresponde ao número das entradas da expressão algébrica, como na tabela verdade, possui tantas células quanto o número de linhas da tabela. Pode-se ter situações de don’t care , ou seja situações não definidas, onde se tem uma incógnita na expressão. Na construção do mapa de Karnaught, observa-se que os valores das varíaveis devem se alternar e mudar um a um, quando o valor da variável A mudar de 0 para 1 o valor de B deve ficar o mesmo e vice-versa, nunca os dois valores mudarão ao mesmo tempo. Figura 2.28 - Mapa de Karnaugh para quatro variáveis O mapa de Karnaugh para funções de até 4 entradas é simples e direto. Para 5 ou 6 até é viável, mas exige uma decomposição em vários mapas, para mais de 6 entradas não é aconselhável. Para resolver uma simplificação de expressão booleana utilizando mapa de Karnaugh, tem-se os seguintes passso: 1. representação da função no mapa; 2. formação de grupos de celas, com o máximo de celas com valor 1, que sejam adjacentes. Observe que o mapa é circular, portanto pode-se ter nos extremos um grupo com valor unitário. 3. substituição de cada grupo por sua função booleana correspondente; 4. exclusão de grupos, para realizar esta tarefa deve-se observar se existe uma única cela unitária que pertença a um grupo, o qual é indispensável, e 5. obtenção da equação algébrica minimizada, ou seja, pela soma de todas as equações montadas até o passo 4, obtem-se a equação final simplificada. 2.8 Circuitos e Dispositivos Especiais Devido ao uso constante e a complexidade das equações booleanas, alguns fabricantes de componentes eletrônicos desenvolveram circuitos comerciais, conhecidos como circuitos combinacionais dedicados. Estes circuitos desenvolvem funções específicas, como multiplexação, demultiplexação, decodificação, somadores, subtratores, codificação e comparação. 2.8.1 Multiplexador O multiplexador ou MUX é um circuito combinacional dedicado, que tem a finalidade de selecionar, através das variáveis de seleção, uma de suas entradas, conectando-a eletronicamente à sua única saída. Como se trata de um circuito digital, o número de entradas está lógicamente relacionado com o número de variáveis de seleção. Figura 2.29 - Modelo genérico de um MUX As principais aplicações dos multiplexadores em sistemas digitais são: - seleção de informações digitais para determinado circuito; - seleção de informações digitais para serem transmitidas a um outro sinal digital; - serialização de informações de vários bits e, - implementação de expressões booleanas. Um exemplo prático para a utilização de um MUX, seria a seleção de canais em um televisor através de um controle remoto, onde existe diversos canais para selecionar e apenas um pode ser selecionado, ou seja, tem-se diversas entradas e só se pode obter uma saída. Os multiplexadores podem ser associados. Essa necessidade ocorre devido ao fato dos MUX comerciais terem um número limitado de entradas. 2.8.2 Demultiplexador O demultiplexador também é conhecido como DEMUX é um circuito combinacional dedicado que tem a finalidade de selecionar, através das variáveis de seleção, qual de suas saídas deve receber a informação presente em sua única entrada. Seu funcionamento é inverso ao MUX. Figura 2.30 - Modelo genérico de um DEMUX As aplicações principais de um DEMUX são: - seleção de circuitos que devem receber uma determinada informação digital; - conversão de informação serial em paralela e, - recepção e demultiplexação de informações de forma compatível com o sistema de multiplexação. Um DEMUX de dois canais necessita, assim como o MUX de dois canais, apenas de uma variável de seleção.O DEMUX de quatro canais necessita de duas variáveis de seleção e assim sucessivamente, conforme a quantidade de canais. Figura 2.31 - DEMUX de dois canais Como ocorre com os multiplexadores, os demultiplexadores comerciais existentes, possuem poucos sinais de saída, necessitando com isso a associação de vários DEMUX para atender às necessidades do usuário destes componentes. 2.8.3 Somadores e Subtratores Os somadores e subtratores são circuitos combinatórios dedicados, que executam, respectivamente, as operações de adição e subtração no sistema binário. Estes circuitos fazem parte da ULA (Unidade Lógica Aritmética), a qual esta contida em calculadoras eletrônicas e em microprocessadores. A soma no sistema binário é bem simples e possui os seguintes componentes: duas variáveis a serem somadas, uma variável que conterá o valor da soma e uma variável para o carry-out, que significa o vai-um de saída. Figura 2.32 - Exemplo de soma binária A subtração binária possui os seguintes componentes: minuendo, subtraendo, o resultado da subtração e um vem-um ou borrow-out. Figura 2.33 - Subtração binária 2.8.4 Comparador Os comparadores são utilizados para fazer comparações entre magnitudes de duas palavras, desde que não apresentem mais de 4 bits cada uma. Sua função é de comparar item a item, os dígitos mais significativos das palavras, verificando se estas são iguais. Ele trabalha de forma posicional, primeira letra de ambas as palavras são comparadas entre si, se são idênticas, então se compara as outras letras, até que termine a palavra ou encontre alguma letra que se diferencie. 2.8.5 Decodificador Os decodificadores apresentam N entradas e M saídas, onde não podem ultrapassar 2 elevado na N saídas. Caracterizam-se por terem múltiplas funções, ou seja, cada saída corresponde a uma função. Figura 2.34 - Decodificador de 7 segmentos para acionar um display 2.8.6 Codificador Os codificadores executam funções inversas ao decodificadores, ou seja possuem N entrada de dados e M saídas, com N muito maior que M, mas no máximo 2 elevado a N vezes. Uma aplicação para um codificador é a interface de um teclado com um circuitos digital, como pode ser observado na figura 2.35, a cada tecla pressionada deve corresponder a um único valor que a identifique. Figura 2.35 - Decodificador para acionar teclas de um teclado 2.9 Circuitos Seqüenciais Este tipo de circuito possui uma memória interna, chamada de estado, a saída depende tanto dos valores de entrada como do estado. É um circuito que possui realimentação da saída para a entrada. Neste tipo de circuito deve-se observar que existe um tempo para que os sinais se propaguem, tempo de atraso, isso devido ao fato das portas lógicas não terem suas saídas atualizadas no mesmo instante em que suas entradas são definidas. Figura 2.36 - Diagrama de um circuito seqüencial Os circuitos seqüenciais, por definição têm memória. Eles memorizam alguma coisa a respeito da história passada nas suas entradas, o que é lembrado, é armazenado em flipflops ou latchs, os quais são os circuitos seqüenciais mais elementares. 2.9.1 Latch e Flip-Flop A palavra latch, na gíria americana, significa trava ou fechadura. Tanto latch como flip-flop são elementos utilizados para armazenamento em circuitos seqüenciais. Os flip-flops e latches são estruturas básicas muito utilizadas no projeto lógico, estes circuitos compõem a unidade básica de armazenamento porque servem para registrar um bit de informação.É esta capacidade de manter o estado atual é que os fazem os elementos básicos para o armazenamento em computadores digitais. A função básica é a de armazenar níveis lógicos temporariamente, funcionando como um elemento de memória. Embora os latches e os flip-flops possam ter vários tipos de configurações, todos eles apresentam duas saídas complementares: Q e Q complementado. Ambos são classificados quanto à forma como são controlados, seu aspecto dinâmico e pelo tipo de entrada. A diferença entre um latch e um flip-flop está na presença de uma entrada adicional, chamada clock, na estrutura flip-flop. A função do clock é comandar as mudanças do valor armazenado. Figura 2.37 - Representação de um flip-flop Os latches, são classificados como sensíveis à nível, enquanto os flip-flops são sensíveis à borda. O latch mais simples é o set-clear, o qual pode ser construído a partir de portas NAND ou NOR. Os flip-flops sensíveis à borda formam a base de diversos sistemas digitais síncronos ou ativados por clock. Um dos primeiros flip-flops ativados por clock surgiu em 1958 através de Phister [LOU 96]. Ele descreve os tipos: RS (Reset-Set) , D (Delay), T (Trigger ou Toggle), JK e RST (Reset, Set, Trigger). 2.9.1.1 Latch Set-Clear O latch Set-Clear é um bloco construtivo [MEL 93]; seus pontos de conexão recebem rótulos, para diferenciar dos nomes designados pelo projetista que usa o bloco construtivo. Os pontos de conexão de entrada são rotulados de "S" e "C". As linhas de sinal alimentando esses pontos são nomeadas pelo projetista. O latch armazena um bit, o qual está normalmente presente em um ponto de conexão de saída. Normalmente este tipo de latch armazena um bit de dados, cujo valor é 1 ou 0. Quando o latch estiver set , este valor é 1 e 0 valor será 0 quando estiver clear. A especificação de atraso para estes latches são simplesmente o atraso de propagação de um ponto de entrada para o de saída. Figura 2.38 - Latch sensível à nível Set-Clear 2.9.1.2 Latch Reset/Set (RS) Este tipo de latch surgiu para economizar transistores ou válvulas [MEL 93], em um tempo em que a eletrônica correspondia em valores altos. O custo para desenvolver um componente eletrônico era bastante elevado, tornando os produtos muito caros e não muito populares. Mais especificamente na época dos computadores de primeira e segunda gerações. Atualmente, é mais utilizado em circuitos digitais genéricos ou como parte de estrutura de latchs mais complexos. A saída set coloca o latch no estado 1, ou seja a saída Q valendo 1 e Q complementado igual a 0, enquanto que a entrada reset coloca o latch no estado 0, isto é a saída Q valendo 0 e seu complemento igual a 1. Este tipo de latch pode ser classificado em: assíncronos e síncronos [MEL 93]. Os assíncronos tem duas entradas reset e set, e é assíncrono porque o tempo necessário para utilizar as saídas Q e Q complementado, depende apenas do atraso das portas lógicas, que compõem seu circuito. Já os síncronos apresentam, além das entradas set e reset, outra entrada cahamada enable, denominada de instante de atualização das saídas Q e Q complementado. Figura 2.39 - Latch RS assíncrono Figura 2.40 - Latch RS síncrono 2.9.1.3 Latch D O latch RS não consegue evitar que o circuito sofra oscilações, quando ocorre uma troca de estado, isto é quando R e S trocam de valor, o que não ocorre com os latchs do tipo D. Neste circuito existe uma memorização do valor da saída quando a entrada enable estiver com valor 1. Quando a entrada enable tiver com valor 0 a saída memoriza o valor da entrada D no tempo exatamente anterior à troca da entrada, e este só será alterado quando a entrada enable assumir nível 1, evitando desta forma as oscilações nas trocas de estado. O ponto de controle de ativação, neste tipo de latch, é rotulado por G (Gate) dentro do bloco . Para o latch de dados (D), o sinal de ativação é frequentemente nomeado ENABLE . Quando o ponto de controle estiver ativo, o latch está aberto e o valor no ponto de conexão de entrada passa para o ponto de conexão de saída de dados. Quando o ponto de controle estiver inativo , o latch de dados mantém seu último valor de saída. 2.9.1.4 Flip-flop Tipo D O D vem da palavra dados, é o tipo de flip-flop mais utilizado. Possui uma arquitetura simples com uma entrada D e um CLOCK. Este flip-flop é resultado de dois latches D ligados de forma sequencial, onde suas entradas enable são complementares. No flip-flop tipo D, o que interessa é a transição negativa, e sempre que esta ocorre a saída é atualizada. Figura 2.41 - Flip-flop 2.9.1.5 Flip-flop JK É uma variação do latch RS síncrono, ao qual foi incluída uma nova realimentação das saídas Q e Q complementado, as portas lógicas de entrada. Neste caso J executa a função set e K a de reset. O que diferencia o flip-flop JK do latch RS é quando as entradas J e K forem iguais a 1, após o sinal de clock a saída tem seu valor alterado. O flip-flop JK master-slave é formado por dois latches denominados master (mestre) e slave (escravo), que se comunicam através das portas de entrada e saída. Tem as seguintes características: - está livre do problema de oscilação; - as saídas só se atualizam na decida do pulso do clock, sendo por isso chamados de sensível à borda de descida ou transição negativa e; - para transformá-lo em um flip-flop sensível à borda de subida ou transição positiva, basta acrescentar um inversor na entrada de clock. 2.9.1.6 Flip-flop T (Toggle) Os flip-flops do tipo T são variantes diretas dos flip-flops JK e têm a característica de: se T = 0, então J = 0 e K = 0, com isso as saídas do flip-flop não se alteram e se T = 1, então J = 1 e K = 1, portanto as saídas futuras serão o complemento das atuais. 2.10 Registradores Os registradores são subsistemas seqüenciais formados basicamente por flip-flops com um clock comum, os quais têm a função de armazenar e manipular dados, por um tempo indeterminado. Para isso é necessário um número, no mínimo, de flip-flop igual ao número de bits da informação a ser armazenada. Os registradores podem ter quatro configurações, conforme os dados são tratados, ou seja, se eles estão saíndo ou entrando e se estes estão trabalhando de forma serial ou paralela. Na forma serial as informações são transmitidas ou recebidas bit a bit, isto é, de forma seqüencial em uma única linha. Neste tipo de registrador os dados movimentam-se internamente, por esta razão são chamados de registradores de deslocamento. O funcionamento do registrador de deslocamento depende da forma como são ativadas as entradas, através de pulso de relógio, a qual possibilita o deslocamento dos dados no registrador. Via entrada master reset que habilita as entradas clear de todos os flip-flops, fazendo com que todas as saídas fiquem "resetadas". A entrada paralela load habilita as entradas paralelas, transferindo-as para as saídas e a entrada serial, por onde os dados entram para serem armazenados no registrador. .