Prévia do material em texto
SISTEMAS DIGITAIS A análise da lógica Digital precisa de considerar dois aspectos di- ferentes: o processo lógico, que é a base teórica dos computadores, calculadoras electrónicas, relógios digitais e restantes aparelhos elec- trónicos digitais, e o circuito electrónico, com o qual se constroem todos os aparelhos indicados. A tomada de decisões é o objectivo da lógica digital e o circuito electrónico é quem realiza e executa o dito objectivo. Por natureza, o Homem está familiarizado com a lógica, já que a sua mente usa continuamente a lógica para a realização de funções de tomada de decisão. Assim, podemos resolver problemas matemáti- cos, tomar decisões baseadas em factos acontecidos e modificar as nossas decisões, em resultado de novas informações, ou com o conhe- cimento adquirido previamente e armazenado na nossa memória. A nossa mente é uma aproximação do que a electrónica digital realiza electronicamente, pelo menos quando os nossos aspectos emocionais e intuitivos estão completamente superados. Angulo (J. M.) – Electrónica Digital Moderna – Teoria e Prática, Edi- torial Paraninfo Bilbau, 1991. Índice Introdução. Electrónica Digital 2 Sistemas de Numeração 3 Conversões entre Sistemas 6 Aritmética em Binário 11 Operações Lógicas 11 Prioridades das Operações 13 Circuitos Lógicos 14 Propriedades das Operações Lógicas 15 Operações Derivadas 17 Simplificação Analítica e Funções 21 Representação Alternativa das Portas Lógicas 22 Portas Universais 23 Formas Canónicas 24 Simplificação de Equações pelo Método de Karnaugh 28 Códigos BCD 35 Códigos Não BCD 38 Famílias Lógicas 43 Circuitos Combinatórios 48 Elementos Básicos de Memória 68 Circuitos Sequenciais 81 Sistemas Digitais p. 2 Introdução – Electrónica Digital A electrónica digital encontra-se em grande expansão, desde o aparecimen- to dos circuitos integrados: embora tenha aparecido antes, foi a capacidade de construir equipamentos cada vez menores e mais poderosos que permitiu o grande desenvolvimento da electrónica digital que, em muitas aplicações, tem vindo a substituir outras tecnologias. Os circuitos digitais caracterizam-se pelo facto de as tensões tomarem um número finito de valores e variarem bruscamente, ao contrário dos circuitos analógicos: Sinal analógico Sinais digitais Os sinais analógicos tomam um número infinito de valores entre dois esta- dos: variam de forma contínua, sendo um exemplo comum de sinal analógico, a tensão alternada sinusoidal; os sinais digitais só podem tomar um número finito de valores: variam de forma discreta. A maior parte dos fenómenos físicos são analógicos: por exemplo, entre as 14h17 e as 14h29 existe uma infinidade de instantes, embora estejamos habi- tuados a contar o tempo em minutos ou segundos. Nos relógios analógicos, o ponteiro roda de forma contínua e, nos digitais, os algarismos mudam brus- camente, a cada segundo. Existem circuitos que fazem a conversão de sinais analógicos para digitais (Conversores Analógico – Digital, ADC), por exemplo tomando valores de tem- peraturas a intervalos de tempo definidos, assim como de sinais digitais para analógicos (Conversores Digital – Analógico, DAC). O segundo sinal digital representado acima, em que a tensão pode assumir dois estados definidos é um sinal binário, sendo os dois níveis de tensão desi- gnados estados ou níveis lógicos baixo e alto ou, simplesmente por 0 e 1, em- bora a tensão do nível baixo não seja necessariamente de 0 V, nem a do nível alto, de 1 V. Em circuitos de electrónica digital, o sinal de entrada pode ser, por exemplo, uma onda quadrada, de modo a levar os transístores a funcionar quer ao corte, quer à saturação. A electrónica digital pode ser utilizada em: - Automatismos Industriais: comando de máquinas, automatização de li- nhas de montagem, etc. - Aquisição, tratamento e comunicação de dados: processamento de sa- lários, controlo de tráfego, informática, etc. - Electrodomésticos, calculadoras, computadores, etc. Os dois estados binários (alto e baixo) podem ser utilizados com diferentes significados, de acordo com as aplicações em causa. Exemplos: Estado Significado Automatismos Baixo Alto Contacto não actuado, saída desactivada Contacto actuado, saída activada Lógica Baixo Alto Afirmação falsa Afirmação verdadeira Aritmética Baixo Alto Zero Um Sistemas Digitais p. 3 Sistemas de Numeração Os circuitos digitais electrónicos não trabalham com o nosso sistema de numeração: nós estamos habituados ao sistema decimal porque temos dez dedos nas mãos (daí, o nome de dígitos, dado aos dez algarismos, de 0 a 9), mas nos circuitos digitais, que são binários, existem dois estados possíveis (sem tensão / com tensão) e, por isso, trabalham com o sistema de numeração binária, que utiliza dois algarismos, chamados bits (binary digits): 0 e 1. O sistema de numeração decimal tem origem, provavelmente, chinesa mas, ao longo da História, diferentes povos utilizaram outros sistemas de numera- ção (por exemplo, na Babilónia, o sexagesimal, de que são, ainda vestígios, as divisões do tempo: um minuto tem 60 segundos). No Sistema Decimal, a posição relativa de cada algarismo dá-lhe um peso específico, (é um sistema ponderado1): um número pode ser formado por vários algarismos e o valor de cada um depende da ordem em que aparece no número. Por exemplo, em 234, o 3 vale 30 (3×10, em que 10 é o peso, devido à posição do algarismo, na casa das dezenas). O número poderia ser escrito de outras formas: 2×100 + 3×10 + 4×1 = 2 ×102 + 3 × 101 + 4 × 100. O peso de cada algarismo é uma potência de base 10, cujo expoente vai crescendo da direita para a esquerda, desde 0, no algarismo das unidades. Por isso, o sistema decimal pode ser chamado Sistema de Base Dez. Na contagem, em decimal, passa-se de um número, ao seguinte, aumen- tando de uma unidade o algarismo mais à direita, excepto se este for o 9, por- que não há nenhum algarismo maior. Nesse caso, o 9 passa a 0 e soma-se uma unidade ao algarismo imediatamente à sua esquerda: ...238, 239, 240... No Sistema de Numeração Binário ou Sistema de Base Dois, os números são representados por sucessões (ou “palavras”) de bits e os pesos destes são potências de 2. Em geral, para cada aplicação, define-se o número de bits a utilizar, (com- primento da palavra). Existem três comprimentos mais importantes que dão nomes especiais às respectivas palavras: Comprimento da palavra Nome da palavra 4 8 16 Nibble ou Quarteto Byte ou Octeto Word ou Palavra Numa palavra binária com um dado comprimento, designam-se: - O bit mais à direita, o de menor peso, por LSB, (Least Significant Bit) - O bit mais à esquerda, por MSB, (Most Significant Bit). À semelhança do que se passa no sistema decimal, o valor de um número escrito em binário corresponde a uma soma, por exemplo, 1101 significa: 1 Um exemplo de sistema de numeração, não ponderado, é a numeração romana. Cada símbolo tem um dado valor que não depende da posição que ocupa na escrita do número. Ex: MDCXXIV = 1000 + 500 + 100 + 10 + 10 – 1 + 5. Sistemas Digitais p. 4 1×23 + 1×22 + 0×21 + 1×20 = 1×8 + 1×4 + 0×2 + 1×1 O número que se segue a 1101 é 1110, porque, como o último algarismo é 1 e é o maior de que dispomos, passa a 0 e soma-se uma unidade ao que está à sua esquerda que passa de 0 a 1. Note-se que, excepto para o peso do LSB, todos os outros pesos são pares. Assim, da mesma forma que se sabe que um número escrito em decimal é múltiplo de 10, se acaba em zero, um número escrito em binário é par (múlti- plo de 2), se termina em zero e ímpar, se terminaem um. Dado que um número não precisa de ser muito grande para, em binário, ser escrito com muitos algarismos, para evitar erros, utilizam-se também, como auxiliares, os Sistemas Octal, (de Base 8) e Hexadecimal, (de Base 16). A vantagem destes sistemas é que, para além de precisarem de muito menos algarismos, é muito fácil converter números escritos em binário para qualquer um deles e deste, para decimal. No Sistema Octal ou de Base Oito, utilizam-se os algarismos de 0 a 7. Por exemplo, o número octal 36 tem, em decimal, o valor: 3×81 + 6×80 = 3×8 + 6×1 = 24 + 6 = 30 No Sistema Hexadecimal ou de Base Dezasseis, utilizam-se, além dos alga- rismos de 0 a 9, as letras maiúsculas de A a F que valem, respectivamente: 10, 11, 12, 13, 14 e 15. Por exemplo, o número 2D0, vale, em decimal: 2×162 + 13×161 + 0×160 = 2×256 + 13×16 + 0×1 = 720 O seguinte Quadro mostra as equivalências para os primeiros 17 números, escritos nas bases 10, 2, 8 e 16: Base 10 2 8 16 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 Como se pode ver e inferir da Tabela, a quantidade de números binários que se podem representar com n bits é dada por 2n e o número máximo que se pode representar com os mesmos bits é igual a 2n - 1: Por exemplo, com um Sistemas Digitais p. 5 Byte, (conjunto ou palavra de 8 bits), podem-se representar 28 = 256 números diferentes, desde 0 a 28 - 1, ou seja, o maior número que se pode representar é 28-1 = 255. Da mesma maneira, podem-se representar com n algarismos octais, 8n números diferentes e com n algarismos hexadecimais, 16n. Por isso, para representar os primeiros 16 números, tivemos que utilizar 2 algarismos octais porque com 1 só se poderiam representar 81 = 8 números mas conseguimos representar os mesmos 16 números com palavras de, apenas 1 algarismo hexadecimal. Em geral, - Quando estamos a tratar de números escritos em diferentes bases, para se saber qual a base em que um número é escrito, escreve-se a base em índice; - O significado da escrita de um número na base B, com n dígitos, é: an-1 an-2 …a1 a0(B) = an-1×Bn-1 + an-2×Bn-2 + … + a1× B1 + a0× B0 Para números fraccionários, a regra mantém-se. Por exemplo: 101,11(2) = 1×22 + 0×21 + 1×20 + 1×2-1 + 1×2-2 = 4+0+1+0,5+0,25 = 5,75(10) Sistemas Digitais p. 6 Conversões entre Sistemas 1. Para se converter de qualquer base, para decimal, utiliza-se a fórmula dada acima. Exemplos: 2348= 2×82 + 3×81 + 4×80 = 2×64 + 3×8 + 4×1 = 15610 F716 = 15×161 + 7×160 = 15×16 + 7×1 = 24710 11012 = 1×23 + 1×22 + 0×21 + 1×20 = 1×8 + 1×4 + 0×2 + 1×1 = = 8 + 4 + 1 = 1310 Esta última passagem sugere o seguinte: Na conversão de Binário para Decimal, se atribuirmos, aos bits, da direita para a esquerda, como pesos, as potências de 2 (1, 2, 4, 8, ..., 2n-1) e, depois somarmos os pesos correspondentes aos uns, podemos obter mais rapidamente o valor em decimal. 2. Para se converter de decimal, para um sistema noutra base, divide-se, sucessivamente o número pelo valor da base, até se obter o quociente 0 e vão- se anotando os restos. Depois, estes são escritos pela ordem contrária à que apareceram – o dígito menos significativo do número no sistema pretendido é o resto da primeira divisão. Exemplos: Converter: 58 para a base 8 5810 = 728 Converter: 69 para binário 6910 = 10001012 Converter: 247 para a base 16 24710 = F716 Sistemas Digitais p. 7 3. As conversões de octal ou hexadecimal para binário e vice-versa são mais simples porque as respectivas bases, 8 e 16, são potências de 2, respectiva- mente 23 e 24. Por esta razão, um dígito octal é equivalente a 3 bits e um dígito hexadecimal, a 4 (ou 1 nibble). Octal Binário Hexadecimal Binário 0 000 0 0000 1 001 1 0001 2 010 2 0010 3 011 3 0011 4 100 4 0100 5 101 5 0101 6 110 6 0110 7 111 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Assim temos as seguintes regras: - Para converter um número escrito em octal para binário, podemos “traduzir” cada dígito, por 3 bits; - Para converter de hexadecimal para binário, podemos “traduzir” cada dígito, por 4 bits; - Para converter de binário, para octal ou para hexadecimal, divide-se o conjunto de bits, da direita para a esquerda, em grupos de 3 ou de 4, acrescentando zeros à esquerda, se for necessário, e converte-se cada grupo no dígito correspondente. Exemplos: 1. Conversão de 368 para binário: 3 = 011; 6 = 110 ⇒ 368 = 0111102 2. Conversão de B416 para binário: B = 1011; 4 = 0100 ⇒ B416 = 101101002 3. Vamos converter o número 1011100112, para: a) Octal 101110011 → 101 110 011 → 5638 b) Hexadecimal 101110011 → 0001 0111 0011 → 17316 Sistemas Digitais p. 8 A conversão, para binário, de números decimais muito grandes torna- se mais prática se passarmos o número da base 10, para a base 8 ou 16 e, depois, desta para binário. Exemplo: Vamos converter 7510 para binário: Conversão directa Decimal → Binário Dec. → Octal → Binário Verifica-se que 7510 = 10010112 e que, no segundo caso, efectuámos menos quatro divisões. Aritmética em Binário Dado que, no sistema binário, existem apenas dois algarismos, é muito simples decorar as tabuadas das operações: Tabuada da Adição Tabuada da Subtracção 0 + 0 = 0 1 + 0 = 1 1 + 1 = 10 0 – 0 = 0 1 – 0 = 1 1 – 1 = 0 Tabuada da Multiplicação Tabuada da Divisão 0 × 0 = 0 1 × 0 = 0 1 × 1 = 1 0 : 1 = 0 1 : 1 = 1 As operações são realizadas, utilizando os algoritmos conhecidos do Siste- ma decimal. Por exemplo, para uma adição: Lendo, a partir da coluna da direita: Um mais um é zero e vai um um mais um mais um é um e vai um um mais zero é um e mais zero é um zero mais um é um um mais um é zero e vai um. Sistemas Digitais p. 9 Código de Complemento a Dois Para representar, em binário, números negativos, o código mais utilizado é o código de complemento a dois. Antes de vermos como é feita a codificação, vamos definir: Complemento a B ou Complemento Verdadeiro de um número na Base B é a diferença entre o número e a potência de B imediatamente superior. Por exemplo, na base 10, o complemento a 10, ou complemento verdadeiro do número 38 é dado por 100 - 38 = 62. Complemento Restrito de um número na Base B ou Complemento a B-1 é a diferença entre o complemento verdadeiro e um. Pode ser obtido sub- traindo o número, ao valor dado pela diferença entre a potência de base B imediatamente superior ao número e 1. Assim, o código de complemento a 10 pode ser obtido somando 1, ao código de complemento a 9. Exemplo: Código de complemento a 9 de 38: 99 – 38 = 61; código de complemento a 10 de 38: 61 + 1 = 62. Este código baseia-se no seguinte: A operação 8 – 3 = 5 poderia ser obtida, somando a 8, o complemento a 10 de 3 e desprezando o algarismo das deze- nas do resultado: 8 + 7 = 15; 15 – 10 = 5. Com o código de complemento a 2, passa-se o mesmo, mas em binário. Nota: Para trabalhar com este código, deve fixar-se previamente o número de bits a utilizar. Vejamos, a título de exemplo como obter o código do número negativo -3, com 4 bits: O código binário de 3 é 0011. O código de complemento a 1 do número 3 é: 1111 – 0011 = 1100. O número negativo -3, é o complemento a 2 do códi- go de 3, que por sua vez é dado pela soma de 1 ao códigode complemento a 1: 1100 + 1 = 1101. Assim, a operação 7 – 3 poderia ser codificada por: 0111 + 1101 = 1 0100, desprezando o bit mais à esquerda, uma vez que estamos a trabalhar com números representados a 4 bits. Obtemos assim 0100 que representa o núme- ro 4 (= 7 - 3). No exemplo acima, constata-se que o código de complemento a 1 de um número é igual ao seu código binário, trocando os 1s por 0s e os 0s por 1s: Código de 3 Código de complemento a 1 de 3 0011 1100 Para obter o respectivo código de complemento a 2, basta somar 1. Uma vantagem imediata deste código é atribuir, ao bit mais significativo (MSB) da palavra, o significado de sinal: 0, para números positivos e 1, para números negativos. Sistemas Digitais p. 10 No código de Complemento a dois, por exemplo com 4 bits, temos a seguin- te correspondência, com números escritos em decimal: Compl. a 2 Decimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 -8 1001 -7 1010 -6 1011 -5 1100 -4 1101 -3 1110 -2 1111 -1 É claro que uma desvantagem desta representação é que reduz para cerca de metade, o número máximo que se pode representar com um dado número de bits: O número de total é o mesmo mas, agora divide-se em positivos e negativos. Por exemplo, com 4 bits, já vimos que se podem representar 16 números dife- rentes, em binário natural, os números de 0 a 15 e, em complemento a dois, os números -8 a 7. Sistemas Digitais p. 11 Álgebra de Boole Em meados do século XIX, George Boole desenvolveu uma teoria matemáti- ca, baseada em variáveis de 2 estados, com o objectivo de representar e tratar, de forma sistemática, as leis da lógica. Essa teoria foi desenvolvida e tem sido aplicada, com o nome de Álgebra de Boole, a todos os sistemas de automatiza- ção, assim como aos sistemas digitais. A álgebra de Boole trabalha com: - Variáveis Binárias, que podem assumir dois estados, por convenção, 0 e 1, que não representam necessariamente quantidades, podendo represen- tar, por exemplo: níveis de tensão, (baixo / alto, respectivamente), afirma- ções (falso e verdadeiro), contactos eléctricos (não actuado / actuado) ou vál- vulas pneumáticas (aberto / fechado). - Operações Lógicas. Com este tipo de variáveis, podem ser definidas três operações lógicas: Produto Lógico, Soma Lógica e Negação Lógica. - Postulados - Princípios básicos evidentes. Operações Lógicas 1. Produto Lógico (AND) – Operação sobre duas ou mais variáveis, cujo resultado é 1, apenas quando todas as variáveis valerem 1: basta que uma das entradas esteja a 0, para que a saída também o esteja. Exemplo: A lâmpada acende (L = 1) se k1 for actuado (k1 = 1) e k2 for actuado (k2 = 1). Para além do esquema de contactos2, as operações lógicas podem ser repre- sentadas de várias outras formas, entre as quais, as seguintes: - Representação Analítica, equação que traduz a operação: L = k1 ⋅ k2 - lê-se: “L igual a k1 e k2”. - Tabela de Verdade, em que se indicam todas as combinações possíveis dos estados das entradas e os correspondentes estados da saída: k2 k1 L 0 0 0 0 1 0 1 0 0 1 1 1 Nos circuitos lógicos, as operações podem ser implementadas por Portas Lógicas. Para representar a porta AND, utilizam-se os seguintes símbolos: 2 Um contacto está no estado 0, quando não foi actuado, e no estado 1, depois de ter sido actuado. Note-se que um contacto normalmente aberto está a 0, quando aberto e a 1, depois de fechado; mas um contacto normalmente fechado está a 0, enquanto está fechado e a 1, quando está aberto, por ter sido actuado. Sistemas Digitais p. 12 Símbolo Americano Símbolo IEEE / ANSI Os traços à esquerda representam as entradas e o traço à direita, a saída. Diagrama temporal – Se aplicarmos os sinais a e b, às entradas de uma porta AND, obtemos a saída S, que só está alta, durante os intervalos de tempo em que as duas entradas estão altas: 2. Soma Lógica (OR) – Para que a saída esteja a 1, basta que uma das entradas o esteja: a saída só será 0, se todas as entradas estiverem a 0. A lâmpada acende se k1 for actuado ou k2 for actuado. Representação Analítica Símbolo Americano Símbolo IEEE / ANSI L = k1 + k2 (lê-se “k1 ou k2”) Tabela de Verdade: k2 k1 L 0 0 0 0 1 1 1 0 1 1 1 1 Diagrama Temporal: A saída fica a 1 quando, pelo menos uma das entra- das está a 1: 3. Negação Lógica (NOT) – Operação com uma entrada, cujo resultado é a negação do seu valor lógico. A variável de entrada pode ser representada por um contacto normalmente fechado: quando k não está actuado (k = 0 ⇔ ~k = 1), a lâmpada está acesa (L = 1); quando está actuado (k = 1 ⇔ ~k = 0), abre e apaga a lâmpada (L = 0). Representação Analítica Símbolo Americano Símbolo IEEE / ANSI L = ~k kL = (lê-se não k”) Sistemas Digitais p. 13 Dado que os valores lógicos, 0 e 1, são contrá- rios entre si (se a ≠ 0, então a = 1 e, se a ≠ 1, então a = 0), as representações ao lado são equi- valentes3: ⇔ Tabela de Verdade: k L 0 1 1 0 Diagrama Temporal: Quando a entrada está a 1, a saída fica a 0. Prioridades das Operações No cálculo de expressões com várias operações lógicas, existem as seguin- tes regras de prioridade: 1º Negação 2º Produto 3º Soma Para efectuar as operações, por outra ordem, uti- lizam-se parêntesis. Exemplo: os resultados dos seguintes pares de expressões são diferentes: a+b⋅c ≠ (a+b)⋅c ~a⋅b ≠ ~(a⋅b) Para se criar a Tabela de Verdade de uma expressão lógica, há que ter em conta o seguinte: 1º O número de linhas da Tabela (número de combinações possíveis dos estados das variáveis de entrada) é igual a 2, elevado ao número de variá- veis; 2º As diferentes combinações das entradas correspondem aos números binários de 0 a 2n – 1; 3º Criar uma coluna, para cada variável que apareça negada; 3 Nas duas representações à esquerda, pretende-se significar que as entradas são acti- vas altas e as saídas, activas baixas; nas representações à direita, as entradas são activas baixas e as saídas são activas altas. Para que um dado circuito funcione de determinada forma, é necessário que se introduzam 1s nas entradas activas altas e 0s, nas entradas activas baixas. Sistemas Digitais p. 14 4º Para cada linha da tabela, determinar o valor da expressão, respei- tando as prioridades das operações. Exemplo: Tabela de Verdade da expressão a)b(cS ⋅+= - existem 3 variáveis, logo o número de linhas da Tabela é 23 = 8: c b a b bc + a)b(cS ⋅+= 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 Circuitos Lógicos Para desenhar o circuito lógico (ou Logigrama) de uma função lógica, proce- de-se da seguinte forma: 1º Traçam-se linhas, para cada uma das variáveis de entrada; 2º Ligam-se às respectivas entradas, as portas referentes às diversas operações, respeitando as regras de prioridade. Exemplo: Logigrama da expressão a)b(cS ⋅+= Existem circuitos integrados com estas portas4: Circuito Integrado Constituição AND 7408 e 4081 7411 e 4073 7421 e 4082 4 Portas de 2 entradas 3 Portas de 3 entradas 2 Portas de 4 entradas OR 7432 e 4071 74802 4075 4072 4 Portas de 2 entradas 3 Portas de 4 entradas 3 Portas de 3 entradas 2 Portas de 4 entradas NOT 7404, 4009, 4049 e 4069 6 Portas4 Os circuitos com referências que começam por 74 são circuitos TTL e os que come- çam por 40 são CMOS. TTL e CMOS são duas tecnologias de fabrico de circuitos inte- grados que serão analisadas, mais adiante. Sistemas Digitais p. 15 Propriedades das Operações Lógicas Das definições das diferentes operações, resultam as seguintes proprieda- des: Comutativa a⋅b = b⋅a a+b = b+a Associativa a⋅b⋅c = (a⋅b)⋅c = a⋅(b⋅c) a+b+c = (a+b)+c = a+(b+c) Distributiva a ⋅ (b + c) = a ⋅ b + a ⋅ c a + b ⋅ c = (a + b) ⋅ (a + c) A Negação apresenta a propriedade de a negação dupla de uma expressão não alterar o seu estado lógico: Involução aa = Postulados 1. Elemento Neutro – Tanto o produto lógico, como a soma lógica, têm ele- mento neutro (que não alteram o resultado), respectivamente, 1 e 0: a ⋅1 = a a+0 = a 2. Elemento Absorvente – Os elementos absorventes do produto e da soma (que tornam os resultados das operações iguais a si próprios) são, respectiva- mente, 0 e 1: a ⋅0 = 0 a+1 = 1 3. Complemento – Para todo o elemento a, existe um e um só elemento, designado por complemento de a, representado por ~ a ou a , tal que são váli- das as igualdades: 1aa =+ 0aa =⋅ 4. Idempotência – Numa operação, em que as entradas são iguais, a saída é igual a elas: a ⋅ a = a a + a = a Observe-se que todas as expressões enunciadas são simétricas duas a duas, de onde resulta o seguinte princípio: Princípio da Dualidade: Toda a expressão verdadeira continua a sê-lo, se trocarmos entre si as somas por produtos, os produtos por somas, os 0s por 1s e os 1s por 0s. Teoremas – são válidas as seguintes leis: Absorção a + a ⋅ b = a a ⋅ (a + b) = a babaa +=⋅+ bab)a(a ⋅=+⋅ babaa +=⋅+ bab)(aa ⋅=+⋅ Leis de Morgan baba +=⋅ baba ⋅=+ Em álgebra de Boole, as igualdades podem ser demonstradas de duas for- mas: Sistemas Digitais p. 16 - Analiticamente, com base em afirmações equivalentes verdadeiras; - Por meio de Tabelas de Verdade, mostrando que a expressão é válida para todas as combinações das entradas. Como exemplos, vamos demonstrar os seguintes teoremas: a) babaa +=⋅+ Demonstração analítica: b)(a)aa(baa +⋅+=⋅+ Propriedade distributiva da soma em relação ao produto b)(a1b)(a)a(a +⋅=+⋅+ Propriedade do complemento 1⋅(a+b) = (a+b)⋅1 Propriedade comutativa do produto (a+b)⋅1 = a+b Elemento neutro do produto b) baba ⋅=+ Demonstração por Tabela de Verdade: a b a b a + b ba + ba ⋅ 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 Verifica-se que as duas últimas colunas são iguais, o que demonstra a igualdade. Exercícios 1. Escreva a equação de S, referente ao seguinte logigrama: 2. Dada a função: ABCBCS ⋅⋅+⋅= 2.1. Construa a Tabela de Verdade de S 2.2. Desenhe o respectivo diagrama lógico Sistemas Digitais p. 17 Operações Derivadas Qualquer logigrama pode ser criado utilizando somente as portas AND, OR e NOT mas, a partir destas operações, podem ser formadas outras, como as seguintes, que simplificam o trabalho: 4. Produto Lógico Negado (NAND) – A saída é 0, quando todas as entradas estão a 1. K é um relé que abre o contacto, quando a bobina é percorrida por corrente, o que permite negar a operação que activa a respectiva bobina. Representação Analítica Símbolo Americano Símbolo IEEE / ANSI baL ⋅= Tabela de Verdade: b a L 0 0 1 0 1 1 1 0 1 1 1 0 Diagrama temporal: A porta NAND é uma porta com entradas acti- vas altas e saída activa baixa: a saída fica activa (no estado baixo) quando todas as entradas estão activas (a 1), como se vê no diagrama tem- poral: Observando a Tabela de Verdade, podemos expressar esta conclusão, de outra maneira: Basta uma entrada estar a 0, para que a saída fique a 1, o que se traduz pelos seguintes símbo- los equivalentes ao NAND, com entradas activas baixas e saída activa alta: Propriedades da Operação NAND 1aa aa.a b.aa.b aa.1 1a.0 =⋅ = = = = Sistemas Digitais p. 18 5. Soma Lógica Negada (NOR) – A saída é 0, quando, pelo menos, uma das entradas for 1. Basta actuar sobre a ou b, para que a saída fique a 0. Representação Analítica Símbolo Americano Símbolo IEEE / ANSI baL += Tabela de Verdade: b a L 0 0 1 0 1 0 1 0 0 1 1 0 Diagrama temporal A porta NOR é uma porta com entradas acti- vas altas e saída activa baixa, em que basta uma das entradas estar activa (a 1), para que a saída fique activa (a 0): Observando a Tabela de Verdade, podemos expressar esta conclusão, de outra maneira, considerando as entradas activas baixas e a saída activa alta: É necessário que todas as entradas estejam a 0 (activas), para que a saída fique a 1 (activa), o que se traduz pelos seguintes símbolos equivalentes: Propriedades da Operação NOR 0aa aaa abba 01a a0a =+ =+ +=+ =+ =+ 6. Soma Exclusiva (EXOR) – A saída é 1, se um número ímpar de entradas estiver a 1. Se uma, e só uma, das entradas for actuada, a saída fica a 1. Sistemas Digitais p. 19 Representação Analítica Símbolo Americano Símbolo IEEE / ANSI bababaL ⋅+⋅=⊕= Tabela de Verdade: b a L 0 0 0 0 1 1 1 0 1 1 1 0 Diagrama temporal A porta EXOR é uma porta com entradas e saída, activas altas, em um número ímpar de entradas activas, faz activar a saída: Propriedades de EXOR a ⊕ b = b ⊕ a a ⊕ b ⊕ c = (a ⊕ b) ⊕ c = a ⊕ (b ⊕ c) a ⊕ a = 0 a=1a 1aa ⊕ =⊕ a ⊕ 0 = a 7. Soma Exclusiva Negada (EXNOR) – A saída é 0, se um número ímpar de entradas estiver a 1. Se uma, e só uma, das entradas for actuada a saída fica a 0. Representação Analítica Símbolo Americano Símbolo IEEE / ANSI b)a()b(ababaL +⋅+=⊗=⊕= Tabela de Verdade: b a L 0 0 1 0 1 0 1 0 0 1 1 1 Sistemas Digitais p. 20 Propriedades de EXNOR a1a a0a 0aa 1aa abba =⊗ =⊗ =⊗ =⊗ ⊗=⊗ Diagrama Temporal: Para estas portas, existem os circuitos integrados: Circuito Integrado Constituição NAND 4011 e 7400 4023 e 7410 4012 e 7420 4068 e 7430 74133 4 Portas de 2 entradas 3 Portas de 3 entradas 2 Portas de 4 entradas 1 Porta de 8 entradas 1 Porta de 13 entradas NOR 4001 e 7402 4025 e 7427 4002 e 7425 74260 4078 4 Portas de 2 entradas 3 Portas de 3 entradas 2 Portas de 4 entradas 2 Portas de 5 entradas 1 Porta de 8 entradas EXOR 4070 e 7486 4 Portas de 2 entradas EXNOR 4077 e 74266 4 Portas de 2 entradas Sistemas Digitais p. 21 Simplificação Analítica de Funções Utilizando as propriedades das operações, podemos simplificar as funções lógicas, o que permite criar circuitos que utilizem o menor número de portas possível, portanto mais simples e mais económicos. Vamos ver um exemplo que ilustra o método. O objectivo é reduzir tanto quanto possível, o número de operações envolvidas e, eventualmente, o núme- ro de variáveis de entrada. Vejamos a seguinte função: a)a(ba)cab(cS +⋅⋅⋅+⋅⋅= Propriedade Aplicada =+⋅⋅⋅+⋅⋅ a)a(ba)cab(c Comutativa do produto =+⋅⋅⋅+⋅⋅ a)a(ba)cba(c Distributiva da soma em relação ao produto =+⋅⋅+⋅⋅ a)a(b1)(bac Elemento absorvente da soma =+⋅⋅⋅⋅ a)a(b1ac Elemento neutro do produto =+⋅⋅⋅ a)a(bac Absorção =+⋅⋅ a)b(ac Distributiva =⋅⋅+⋅⋅ aacbac Idempotência =⋅+⋅⋅ acbac Distributiva =+⋅⋅ )1b(ac Elemento absorventeda soma =⋅⋅ 1ac Elemento neutro do produto ac ⋅ A simplificação reduziu o número de variáveis, de 3 para 2, assim como o número de operações envolvidas. O circuito lógico correspondente à equação simplificada é: Sistemas Digitais p. 22 Representação Alternativa das Portas Lógicas Pode ser útil, utilizar as seguintes representações alternativas das portas lógicas, baseadas nas leis de Morgan: 1. Porta AND Para obter 1 na saí- da, é necessário ter todas as entradas a 1. Para obter 0 na saí- da, basta ter uma entrada a 1. bababa +=⋅=⋅ 2. Porta OR Para obter 1 na saí- da, basta uma entrada a 1. Para obter 0 na saída, é necessário ter todas as entradas a 0. bababa ⋅=+=+ 3. Porta NOT 1 na entrada dá 0 na saída; 0 na entrada dá 1 na saída 4. Porta NAND Para obter 0 na saída, é necessário que todas as entradas estejam a 1. Para obter 1, basta que uma das entradas esteja a 0. baba +=⋅ 5. Porta NOR Para obter 0 na saída, basta que uma das entradas esteja a 1. Para obter 1, é necessário que todas as entradas este- jam a 0. baba ⋅=+ Note-se que nos símbolos à esquerda, todas as entradas são activas altas e que nos símbolos alternativos, todas as entradas são activas baixas. Isto é útil, se pretendermos tanto quanto possível ligar saídas activas baixas a entradas activas baixas e saídas activas altas a entradas activas altas, de modo a expli- citar melhor o funcionamento de um circuito. Por exemplo, os dois circuitos seguintes são equivalentes, mas no segundo, vemos facilmente que, para obter 1 em S, é necessário ter simultaneamente: c = 1, b = 0 e a = 0. Outro exemplo: no primeiro dos seguintes circuitos, transforma-se a porta OR no seu equivalente e obtém-se o segundo circuito; como duas negações seguidas se anulam, obtém-se o terceiro circuito. Neste, vê-se facilmente que, para obter, na saída que é activa baixa, S2 = 0, é necessário que: c = 0 e b = 1 e a = 1 Sistemas Digitais p. 23 Portas Universais É possível implementar qualquer circuito utilizando exclusivamente portas NAND ou portas NOR: com um conjunto de cada uma delas podemos substi- tuir qualquer das outras. Por isso, são designadas de Portas Universais. Vamos ver como se podem substituir as portas básicas, por portas NAND uma vez que por portas NOR, o processo é semelhante. 1. Porta NOT A operação NOT pode ser implementada por uma porta NAND com as duas entradas ligadas à variável a negar porque, pela propriedade da idem- potência, a.aa = ; também se pode ligar uma das entradas à variável e a outra, ao estado lógico 1, já que: a.1a = . Assim, os três circuitos seguintes são equivalentes: 2. Porta AND Utilizando a propriedade da involução da negação, temos: baba ⋅=⋅ . Assim, a porta AND pode ser obtida por: 3. Porta OR Utilizando a propriedade da involução da negação e uma das Leis de Morgan, temos: bababa ⋅=+=+ , o que permite desenhar o circuito equi- valente: Assim, temos as seguintes equivalências: Operação Portas NAND Portas NOR NOT AND OR Sistemas Digitais p. 24 Formas Canónicas Uma equação diz-se que está na forma canónica quando, em cada um dos seus termos, somas ou produtos lógicos, entram todas as variáveis de entrada. Existem duas formas canónicas: 1ª Forma Canónica – Soma de Produtos (Mintermos) É a soma dos produtos de todas as variáveis de entrada, que tornam ver- dadeira a saída de um circuito. Para se obter a equação na 1ª forma canónica, a partir da Tabela de Verda- de, faz-se o seguinte: - Cada linha em que a saída está a 1 dá origem a um produto das variá- veis de entrada; - Nos produtos, as variáveis de entrada a 0 aparecem negadas e as outras aparecem não negadas; - A saída é igual à soma de todos estes produtos. Vamos ver o seguinte exemplo: A Tabela de Verdade é a seguinte: c b a b a ab ⋅ abc ⋅⋅ S 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 Na primeira linha, em que S = 1, temos: c = 0, b = 0 e a = 1, logo, o respec- tivo produto é: abc ⋅⋅ As outras duas linhas correspondem aos produtos: abc abc ⋅⋅ ⋅⋅ Assim, a equação na 1ª forma canónica é: abcabcabcS ⋅⋅+⋅⋅+⋅⋅= Sistemas Digitais p. 25 Outra forma de representar uma equação na forma canónica é como o somatório dos números decimais correspondentes às linhas da Tabela, em que a função vale 1 (note-se que estes números correspondem aos binários forma- dos pelos bits das variáveis de entrada): Linha c b a S 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 0 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 0 Tendo em conta que: abc ⋅⋅ ⇔ c=0, b=0 e a=1 ⇔ 0012 = 1 abc ⋅⋅ c=1, b=0 e a=1 1012 = 5 abc ⋅⋅ c=1, b=1 e a=0 1102 = 6 A função anterior pode ser representada por: S (c, b, a) = Σ (1, 5, 6) – é necessário explicitar a ordem das variáveis, á que não aparecem na equação. 2ª Forma Canónica – Produto de Somas (Maxtermos) É o produto das somas de todas as variáveis de entrada, que tornam ver- dadeira a saída de um circuito. Para se obter, procede-se da seguinte forma: - Tomam-se todas as linhas da Tabela de Verdade em que a saída vale 0; - Cada uma destas linhas dá origem a uma soma das variáveis de entrada; - Nas somas, as variáveis que estão a 0, aparecem não negadas e as que estão a 1, aparecem negadas. A equação da saída do circuito anterior, na 2ª forma canónica é: a)bc(a)bc()ab(ca)b(ca)b(cS ++⋅++⋅++⋅++⋅++= À semelhança do caso anterior, tendo em conta, abc ++ ⇔ c=0, b=0 e a=0 ⇔ 0002 = 0 abc ++ c=0, b=1 e a=0 0102 = 2 abc ++ c=0, b=1 e a=1 0112 = 3 abc ++ c=1, b=0 e a=0 1002 = 4 abc ++ c=1, b=1 e a=1 1112 = 7 Podemos representá-la por: S (c, b, a) = Π (0, 2, 3, 4, 7) Sistemas Digitais p. 26 Porque é que isto é assim? Será que estas duas equações são equivalentes? Para responder a estas questões vamos fazer o seguinte: Escrevemos a equação de ~S, na primeira forma canónica, utilizando as linhas em que S = 0: abcabcabcabcabcS ⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅= Se negarmos esta equação, de modo a obter uma expressão de S e apli- carmos as Leis de Morgan e a propriedade da involução, temos: )abc(a)bc()ab(ca)b(ca)b(cS )abc()abc()abc()abc()abc(S abcabcabcabcabcS abcabcabcabcabcSS ++⋅++⋅++⋅++⋅++= ++⋅++⋅++⋅++⋅++= ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅= ⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅== A última equação é a da 2ª forma canónica, que já tínhamos obtido. Para se obterem as formas canónicas, a partir da equação de uma função lógica, procede-se da seguinte forma: Numa soma de produtos, multiplica-se cada produto em que falta uma variável, pela soma desta com o seu complemento (soma cujo resultado é 1); o que permite passar à 1ª forma canónica; num produto de somas, soma-se a cada soma em que falte uma variável o produto dela pelo seu complemento (o mesmo que somar 0, não alterando o resultado). Depois de aplicar a proprie- dade distributiva, eliminam-se os termos repetidos. Exemplos: cbacbacba cbacbacbacba c)b(ba)c(cba caba ⋅⋅+⋅⋅+⋅⋅= =⋅⋅+⋅⋅+⋅⋅+⋅⋅= =⋅+⋅++⋅⋅= =⋅+⋅ c)ba()cb(ac)b(a c)ba(c)b(a)cb(ac)b(a c)ba(a)ccb(a c)(bb)(a ++⋅++⋅++= =++⋅++⋅++⋅++= =++⋅⋅⋅++= =+⋅+ Aplicações A partir da 1ª forma canónica, obtém-se facilmente uma equação que per- mite desenhar um circuito, só com portas NAND e, a partir da 2ª, podemos desenhá-lo, só com portas NOR.Como exemplo, consideremos a função EXOR. A partir da Tabela de Verda- de, obtemos as equações das 1ª e 2ª formas canónicas: b)(a)ba(ba bababa +⋅+=⊕ ⋅+⋅=⊕ Negando-as, duas vezes e aplicando as leis de Morgan, obtemos as equações e os circuitos equivalentes: Sistemas Digitais p. 27 1ª Forma Canónica → NAND 2ª Forma Canónica→ NOR bababababa ⋅⋅⋅=⋅+⋅=⊕ babab)(a)ba(ba +++=+⋅+=⊕ Outra aplicação das formas canónicas, em particular da primeira (soma de produtos) é a simplificação de equações por um método gráfico, o que vere- mos, em seguida. Sistemas Digitais p. 28 Simplificação de Equações pelo Método de Karnaugh O método de Karnaugh é um método gráfico de simplificação de equações que se baseia na seguinte igualdade (propriedades – distributiva, complemento da soma e elemento neutro do produto): a1a)ba.(bbaba =⋅=+=⋅+⋅ Consiste em dispor a Tabela de Verdade da expressão em causa, de forma a que seja fácil agrupar combinações em que apareça uma variável somada ao seu complemento. Para isso, constrói-se um rectângulo dividido em tantos quadrados, quantas as linhas da Tabela de Verdade, isto é, para n variáveis, são necessários 2n quadrados. Em cada um dos quadrados figura o valor da função, correspondente a uma combinação das variáveis de entrada, de modo a que cada par de combinações em que apareça uma variável somada ao seu complemento, ocupe posições contíguas. Vamos ver um exemplo simples, relativo a uma função que apresenta a seguinte Tabela de Verdade: a b c S 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 Esta Tabela pode ser representada, com o seguinte aspecto, em que dentro dos quadrados, aparecem os valores de S: c = 0 b = 0 c = 1 b = 0 c = 1 b = 1 c = 0 b = 1 a = 0 0 0 1 1 a = 1 0 1 1 0 Ou com este outro: Neste caso, cada barra, associada a uma variável de entrada, abrange 4 quadrados, indicando que nessa zona, a variável de entrada tem o valor 1, aparecendo não negada: Sistemas Digitais p. 29 Note-se que, em cada par de quadrados adjacentes, assim como nos qua- drados dos cantos do rectângulo, apenas uma variável muda o estado. Se agora associarmos os grupos de uns adjacentes, na horizontal ou na ver- tical, em grupos de 2, 4, ou, em geral, a potência 2n, eliminamos uma, duas ou n variáveis, respectivamente. No caso presente, podemos formar dois grupos de dois 1s, eliminando, em cada um deles, uma variável: Poderíamos formar um terceiro grupo, c.b, mas não é necessário porque todos os 1s estão agrupados. Grupo Quadrados Resultado Pode ser visualizado porque está na intersecção das zonas Primeiro abc cab ⋅⋅ ⋅⋅ ab ⋅ b e ~a Segundo abc abc ⋅⋅ ⋅⋅ c⋅a c e a Ficamos portanto com a equação simplificada de S: abacS ⋅+⋅= No caso de aparecerem 1s que não possam ser agrupados, os produtos cor- respondentes não podem ser simplificados. Vimos Mapas de Karnaugh para 3 variáveis de entrada. Vamos ver como podem ser para 2 e 4 variáveis, uma vez que para mais de 4, este método é muito trabalhoso: Podemos observar que, no primeiro caso, cada uma das barras abrange uma zona com dois quadrados, enquanto, no segundo, abrange uma zona com 8, permitindo eliminar 3 variáveis. Nos mapas com 3 ou 4 variáveis, quadrados com 1s, que estejam adjacen- tes aos limites dos rectângulos, sobre a mesma linha ou coluna podem ser agrupados. Exemplo: Vamos ver um caso com 2 exemplos disto, num mapa de 4 variáveis (ou seja de 16 quadrados). Sistemas Digitais p. 30 Dada a seguinte Tabela de Verdade: d c b a S 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 Podemos tirar a equação da 1ª Forma canónica: abcdabcdabcdabcdabcdabcdS ⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅= O que dá o seguinte Mapa: Nele existem dois grupos: um com dois 1s e outro com 4, correspondendo, respectivamente a: acd ⋅⋅ Porque está na intersecção das zonas, correspondentes a: a = 0, c = 1 e d = 0. Permite anular uma variável (b), o que se vê facilmente, porque um dos quadrados está na zona c e o outro na zona ~b. ac ⋅ Porque está na intersecção das zonas: a e ~c. Permite anular as variáveis b e d, porque pertence simulta- neamente às zonas b e ~b, assim como a d e ~d. Assim, a equação é: acacd ⋅+⋅⋅ Notem-se os seguintes pontos: Sistemas Digitais p. 31 1. Para uma equação com n variáveis, precisamos de um rectângulo com 2n quadrados; 2. Se todos estivessem preenchidos com 1s, a equação seria S = 1, isto é, qualquer que fosse o estado das variáveis de entrada, a saída estaria sem- pre a um; 3. Fora esta hipótese, o número máximo de 1s adjacentes que se pode agrupar num grupo, é de 2n-1, (metade dos quadrados) e corresponde a uma variável, sendo as outras n-1, eliminadas; 4. Se conseguirmos grupos com 2n-2 1s, teremos 2 variáveis por grupo (eliminando as outras n-2) e assim sucessivamente, até grupos com um, (20), 1, que correspondem a todas as n variáveis em jogo; 5. As variáveis que ficam de fora, no produto correspondente a um gru- po, são aquelas que, num dado grupo, aparecem nos dois estados. Podemos ver isto, no exemplo anterior: - As variáveis em jogo eram 4, a, b, c e d, pelo que os quadrados neces- sários são 24 = 16. - O primeiro produto, correspondente ao grupo de dois (21) 1s, tem 3 das 4 variáveis em jogo porque eliminámos a variável b que, para um desses 1s, o da esquerda, vale 0 e para o outro, vale 1; - No segundo produto eliminámos as variáveis b e d, porque tinha 22 1s, dois dos quais, os de cima, correspondiam a b=0, enquanto, para os de baixo, b=1; por outro lado, os dois 1s da esquerda correspondiam a b=0, enquanto os da direita, d=1. As figuras seguintes representam os mapas para 2, 3 e 4 variáveis (a,b; a,b,c; a,b,c,d), com os números de linha em binário e em decimal, indicados dentro dos respectivos quadrados: Num Mapa, podemos agrupar alguns 1s, mais do que uma vez. No seguinte mapa, há várias hipóteses de criar agrupamentos de 1s: Sistemas Digitais p. 32 Cada um destes agrupamentos dá origem a uma equação equivalente mas, como o objectivo é simplificar, o mais possível a função, convém saber qual dos agrupamentos corresponde à solução mais simples. Por um lado, quanto maior for o agrupamento possível, mais variáveis são eliminadas – esta situação corresponde às figuras da direita. Por outro lado, observe-se que o 1 que corresponde à linha 5 só pode ser agrupado de uma forma: em conjunto com o da linha 7. Chama-se Implicante Primo, o produto obtido pelo maior agrupamento pos- sível de quadrados. No exemplo, é o caso do agrupamento de 4 1s. Se um quadrado só pode ser agrupado de uma forma, chama-se a esse agrupamento, Implicante Primo Essencial. É o caso do agrupamento dos qua- drados correspondentes às linhas 5 e 7. Assim, devemos começar por identificar e criar os agrupamentos que são implicantes primos essenciais; depois criar os agrupamentos que são impli- cantes primos e, finalmente, os que restarem. No caso do exemplo: 1º 2º Não havendo mais quadrados a agrupar, a equação correspondente é a mais simples possível: a⋅c + b Se os 0s e 1s se distribuírem em xadrez, não há possibilidade de fazer agrupamentos mas verifica-se facilmente que se trata de uma função EXOR (se no quadrado correspondente a todas as variáveis negadas, estiver um 0) ouEXNOR (se no mesmo quadrado estiver um 1): c b a R = c ⊕ b ⊕ a S = c ⊗ b ⊗ a 000 0 1 001 1 0 010 1 0 011 0 1 100 1 0 101 0 1 110 0 1 111 1 0 R S Sistemas Digitais p. 33 Exercícios 1. Marcar no seguinte mapa, as zonas correspondentes às expres- sões: ACD AC BD ⋅⋅ ⋅ ⋅ 2. Indicar as expressões marcadas: 3. Dado o seguinte mapa da função S: 3.1. Construa a Tabela de Verdade 3.2. Obtenha a expressão simplificada da função S (A, B, C, D) Situações de Don't Care São assim designadas situações em que os valores da variável de saída, para determinadas combinações das entradas, não têm significado ou quando essas combinações são impossíveis de se dar, devido às condições do proble- ma, embora sejam de considerar, do ponto de vista teórico. Para essas combinações não se pode ter a certeza de que a variável de saída apareça com 0 ou com 1, isto é, a variável de saída funciona como uma inde- terminação, embora tenha, de facto, um daqueles valores. O que se passa é que não nos interessa, o valor que tiver, uma vez que as variáveis de entrada nunca terão os valores que, combinados, dariam origem a essas saídas. Nos mapas de Karnaugh, podemos atribuir à saída, para essas combinações de entrada, o valor que nos permita uma maior simplificação. Para isso, escre- vemos nos quadrados correspondentes, cruzes, a que podemos associar os valores 0 ou 1, conforme for mais conveniente. Vejamos o seguinte exemplo: Para a seguinte Tabela de Verdade, construímos 2 Mapas de Karnaugh, com diferentes agrupamentos. No primeiro, limitámo-nos a associar os uns presentes, o que correspon- de a pressupor que para todas as situações de Don´t Care, a saída apresen- Sistemas Digitais p. 34 ta zeros; no segundo, escolhemos uma situação de Don´t Care para a asso- ciarmos com os uns presentes e obtivemos uma equação mais simples: a b c S 0 0 0 ? 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 ? 1 1 0 ? 1 1 1 ? c)b(acabaS +⋅=⋅+⋅= aS = Sistemas Digitais p. 35 Códigos BCD Um código é um conjunto de sinais convencionais que permite representar uma informação. Os códigos BCD (Binary Coded Decimal) são códigos binários que permitem representar os números, algarismo a algarismo, utilizando um nibble para cada dígito. Os códigos BCD são utilizados em aparelhos digitais de medida, em relógios e calculadoras electrónicas. Um número escrito num código BCD é, de facto, um número decimal, em que cada algarismo é traduzido por uma sequência de quatro bits. Por isso, não se deve confundir com um número binário, em que cada 1 representa uma potência de 2, de acordo com a sua situação na palavra: codificar um número decimal num código binário é diferente de o converter do sistema decimal para o sistema binário. Dado que só existem 10 algarismos e um nibble permite representar 16 coi- sas diferentes, existem vários códigos BCD. Vamos ver alguns exemplos. 1. BCD 8421 – utiliza os 10 primeiros conjuntos de 4 bits. No nome, o 8421 indica os pesos dos diferentes bits: BCD 8421 Decimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 Para codificar um dado número, passa-se cada algarismo individualmente do sistema decimal para o sistema binário. Exemplo: O código de 235, em BCD 8421 é: 001000110101 A descodificação faz-se da seguinte forma: divide-se o código, em conjuntos de 4 bits e, para cada conjunto, somam-se os pesos dos 1 que aparecem. Exemplo: 010010010111 0100 1001 0111 Somas Resultado 8421 8421 8421 4 8+1 4+2+1 497 2. Código Aiken ou BCD 2421 – Obtém-se utilizando as primeiras 5 combi- nações de 4 bits, e as 5 últimas: BCD 2421 Decimal BCD 2421 Decimal 0000 0 1011 5 0001 1 1100 6 0010 2 1101 7 0011 3 1110 8 0100 4 1111 9 Sistemas Digitais p. 36 Este código tem a particularidade de ser auto-complementar: O comple- mento a 9 de um dado número codificado em Aiken obtém-se trocando os zeros pelos uns e vice-versa. Exemplos: O código Aiken de 360 é 0011 1100 0000. Então, o código do seu com- plemento a 9 (999 – 360 = 639) é: 1100 0011 1111. Os códigos de 235 e 764, que são complementares (235 + 764 = 999), são, respectivamente, 0010 0011 1011 e 1101 1100 0100. Para codificar um dado algarismo, k, faz-se o seguinte: - Se for menor ou igual a 4, utiliza-se o mesmo processo do código BCD 8421; - No caso contrário, codifica-se em BCD 8421, o seu complemento a 9, (9-k), e trocam-se os zeros pelos uns e vice-versa. Exemplos: Algarismo Complemento a 9 BCD8421 BCD 2421 3 - - 0011 8 9-8 = 1 0001 1110 5 9-5 = 4 0100 1011 Assim, o código de 385 é 0011 1110 1011. A descodificação faz-se por um processo semelhante ao do código anterior. Exemplo: 010000111011 0100 0011 1011 Somas Resultado 2421 2421 2421 4 2+1 2+2+1 435 Exercício Objectivo: Pretende-se um circuito que converta o código BCD 2421 de um algarismo qualquer, no código BCD 8421 do mesmo algarismo: Fases: 1ª. Tabela de Verdade Z Y X W D C B A 0 0 0 0 0 0 0 0 … … … … … … … .… Sistemas Digitais p. 37 2ª. Mapas de Karnaugh das 4 variáveis de saída 3ª. Simplificação das expressões: D = f (Z, Y, X, W), C = f (Z, Y, X, W), B = f (Z, Y, X, W) e A = f (Z, Y, X, W) 4ª. Desenho do circuito. 3. Código de Excesso de Três (XS-3) – Não utiliza nem as primeiras 3 com- binações de 4 bits, nem as últimas 3: XS-3 Decimal 0011 0 0100 1 0101 2 0110 3 0111 4 1000 5 1001 6 1010 7 1011 8 1100 9 Para codificar um dado número, soma-se 3 a cada algarismo e converte-se em binário. Para descodificar um número em BCD XS-3, passa-se cada um dos nibbles a decimal e subtrai-se 3, ao resultado. Exemplos: 1. Para descodificar 1101 1100 0011, escrito em BCD 2421, fazem-se as seguintes somas: 2+4+1 = 7, 2+4 = 6 e 2+1 = 3. O número é 763. 2. Dado o código de excesso de três, 1010 0110, o primeiro algarismo corresponde a 8+2 = 10 → 10-3 = 7 e o segundo a 4+2 = 6 → 6-3 = 3 e o número correspondente é 73. Sistemas Digitais p. 38 4. Outros Códigos BCD Outros exemplos de códigos BCD que se formam de forma semelhante aos anteriores são: BCD 7421, BCD 5421 e Excesso de 6. O seguinte quadro mostra os nibbles válidos para cada um destes códigos: Valor, em: Código 8421 7421 5421 2421 XS-3 XS-6 0000 0 0 0 0 - - 0001 1 1 1 1 - - 0010 2 2 2 2 - - 0011 3 3 3 3 0 - 0100 4 4 4 4 1 - 0101 5 5 - - 2 - 0110 6 6 - - 3 0 0111 7 - - - 4 1 1000 8 7 5 - 5 2 1001 9 8 6 - 6 3 1010 - 9 7 - 7 4 1011 - - 8 5 8 5 1100 - - 9 6 9 6 1101 - - - 7 - 7 1110 - - - 8 - 8 1111 - - - 9 - 9 Os quatro primeiros são códigos ponderados. Códigos Não BCD 1. Código Gray É um código não ponderado e, por isso, não é conveniente para cálculo mas utiliza-se quando há necessidade de evitar erros nas transições entre núme- ros: nos códigos anteriores, um número pode diferir em vários bits do número seguinte e quando se lhe acrescenta uma unidade, pode haver erros devido a atraso na modificação de um bit. Para evitar isto, o código Gray foi construído de modo a que cada número difira do anterior em, apenas 1 bit. Vejamos o seguinte exemplo: O número 5 tem, em várias codificações, o código 0101. Ao passar a 6, por exemplo num contador, passa a ser representado por 0110: os dois bits da direita têm de mudar de estado; vamos supor que, nesta mudança de estado, o último se atrasa, o que levaria a passar pelas seguintes fases: 5 0101 0111 6 0110 Na fase intermédia, passou-sepor um código com significado, '7', o que pode levar a erros. O código Gray é utilizado, por exemplo, em conversores de sinais analógicos para digitais. Sistemas Digitais p. 39 Na tabela seguinte estão representados os códigos dos primeiros 16 núme- ros: Binário Gray Decimal b3b2b1b0 g3g2g1g0 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000 Para obter um circuito que transforme binário em gray, podemos começar pelos Mapas de Karnaugh das variáveis de saída: As equações e o circuito correspondentes são: bbbbbbg bbbbbbg bbbbbbg bg 0101010 1212121 2323232 33 ⊕=⋅+⋅= ⊕=⋅+⋅= ⊕=⋅+⋅= = Assim, para codificar um número, em Gray: - Primeiro, converte-se o número em binário - o código Gray terá o mes- mo número de bits e o seu bit mais à esquerda é igual ao MSB do binário; - Depois, começando pelo bit mais à direita, cada um dos bits do código Gray é dado pelo EXOR entre o bit correspondente do binário e o que se encontra à sua esquerda: se os bits do número em binário e do código Gray forem, respectivamente: bn…b2 b1 b0 e gn… g2 g1 g0, os bits do código Gray serão dados por: g0 = b1 ⊕ b0 g1 = b2 ⊕ b1 g2 = b3 ⊕ b2 gn = bn Sistemas Digitais p. 40 Exemplo: O número 12, em binário é: 1100. Formação dos bits, no Código Gray: Bit mais à direita 0 ⊕ 0 = 0 1 ⊕ 0 = 1 1 ⊕ 1 = 0 Bit mais à esquerda 1 Código Gray obtido: 1010 Para fazer o contrário, isto é, para passar de Gray para binário, temos: Tabela Gray Binário g3g2g1g0 Decimal b3b2b1b0 0000 0 0000 0001 1 0001 0010 3 0011 0011 2 0010 0100 7 0111 0101 6 0110 0110 4 0100 0111 5 0101 1000 15 1111 1001 14 1110 1010 12 1100 1011 13 1101 1100 8 1000 1101 9 1001 1110 11 1011 1111 10 1010 Mapas: Equações: ggggb gggggggggggggggb ggggb gb 01230 1231231231231231 23232 33 ⊕⊕⊕= ⊕⊕=⋅⋅+⋅⋅+⋅⋅+⋅⋅= ⋅+⋅= = Sistemas Digitais p. 41 Circuito: Vemos que, para descodificar um código Gray, faz-se o seguinte: - O bit LSB do código binário é dado pelo EXOR de todos os bits do códi- go Gray; - O bit seguinte é dado pelo EXOR dos n-1 bits mais à direita do código Gray; - E assim sucessivamente, até ao MSB que é igual, em ambos os códigos. 2. Código ASCII Existem vários códigos alfanuméricos que permitem codificar, além de alga- rismos, letras e outros símbolos gráficos. Um exemplo de código alfanumérico é o chamado ASCII (sigla correspon- dente às palavras American Standard Code for Information Interchange), utili- zado, por exemplo, em computadores. Permite codificar as letras maiúsculas e minúsculas, assim como os algarismos e uma série de símbolos. Cada um é representado por 7 bits, na versão original que permitia codificar 128 símbolos ou por 8, nas versões ampliadas, o que permite ir até 256. Vamos ver alguns exemplos de códigos de caracteres em ASCII, na versão de 1 Byte: Símbolo Código ASCII A 0100 0001 a 0110 0001 m 0110 1101 7 0011 0111 + 0010 1011 ; 0011 1011 ‘Espaço’ 0010 0000 3. Código de Paridade Para se poderem tratar eventuais erros na transmissão de dados, utilizam- se códigos em que se acrescenta, no fim ou no princípio das palavras a trans- mitir, um ou vários bits, através dos quais se poderão detectar ou corrigir os erros. Um código muito utilizado é o de paridade e baseia-se no seguinte: acres- centa-se, ao final da palavra a transmitir, um bit que será 0, se o número de uns da palavra for par ou 1, se for ímpar. Uma vez recebida, a palavra entra num detector de paridade que dá na saída uma indicação da existência de erro: Sistemas Digitais p. 42 Assim, o número de uns da palavra, a transmitir, já com o bit de paridade será sempre par e se, ao ser recebida, tiver um número ímpar de uns, o erro é facilmente detectado. Por exemplo, para palavras originais de 3 bits temos, para o gerador de paridade: Palavra Bit a Acrescentar C B A P 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 E para o Detector: Palavra recebida Cód. Erro C B A P E 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 Tudo isto pode ser feito com portas EXOR: Também existe um Código de Imparidade em que o número total de uns que é transmitido é ímpar. Sistemas Digitais p. 43 Famílias Lógicas Em sistemas digitais utiliza-se informação binária, correspondente a dois níveis de tensão (alto e baixo) que podem aparecer à entrada ou à saída dos circuitos Os dois níveis de tensão são designados por: Nível Lógico Alto (H, High) e Baixo (L, Low). Actualmente, em electrónica digital utilizam-se sobretudo circuitos integra- dos, existindo basicamente duas tecnologias (designadas por famílias), para o respectivo fabrico: a tecnologia TTL (de Transistor Transistor Logic) e a tecnolo- gia CMOS (Complementary simetry Metal-Oxid Semicondutor). Os circuitos integrados são, actualmente, fabricados a várias escalas de integração: - SSI, Small Scale Integration, uma a dez portas lógicas, correspondendo a cerca de 10 transístores, por pastilha ou chip de silício; - MSI, Medium Scale Integration, entre dez e duzentas portas lógicas; - LSI, Large Scale Integration, com muitos milhares de transístores, em circuitos, como por exemplo, microprocessadores; - VLSI, Very Large Scale Integration, com várias centenas de milhares de transístores. Cada uma das famílias lógicas subdivide-se em séries e apresenta caracte- rísticas diferentes, tais como: - Tensão de Alimentação (Vcc), gama mais ou menos larga de valores de tensão, a que devem ser alimentados os C.Is. - Temperatura de Funcionamento, gama de temperaturas a que os circui- tos devem funcionar - Fan-out, número máximo de entradas a que a saída de uma porta pode ser ligada - Níveis de Tensão de Entrada e Saída - intervalos de tensão correspon- dentes aos níveis alto e baixo, diferentes para as entradas e para as saídas dos circuitos: TTL CMOS VIHMax – Limite Máximo do nível Lógico Alto da Entrada 5 V 5 V VIHMin – Limite Mínimo do nível Lógico Alto da Entrada 2 V 3,5 V VILMax – Limite Máximo do nível Lógico Baixo da Entrada 0,8 V 1,5 V VILMin – Limite Mínimo do nível Lógico Baixo da Entrada 0 V 0 V VOHMax – Limite Máximo do nível Lógico Alto da Saída 5 V 5 V VOHMin – Limite Mínimo do nível Lógico Alto da Saída 2,4 V 4,9 V VOLMax – Limite Máximo do nível Lógico Baixo da Saída 0,4 V 0,1 V VOLMin – Limite Mínimo do nível Lógico Baixo da Saída 0 V 0 V - Margens de Ruído dos dois estados lógicos, relacionadas com o parâme- tro anterior e que indicam as variações de tensão permitidas, sem mudar de estado - Tempo de Propagação, tempo entre a alteração de uma entrada e a con- sequente alteração na saída - Potência Dissipada, por porta ou por circuito Chamam-se Margens de Ruído às diferenças: Sistemas Digitais p. 44 VNH = VOHMin – VIHMin VNL = VILMax e VOLMax Note-se que, em ambas as tec- nologias, o limite mínimo do estado alto da saída é maior do que o limi- te mínimo do estado alto da entra- da e que o limite máximo do estado baixo da saída é menor que o da entrada. Tanto na saída como na entra- da, entre o limite máximo do nível baixo e o limite mínimo do nível baixo, encontra-se uma zona inde- finida: uma tensão nessa zona não é interpretadacomo nem L nem H. A figura ao lado mostra todas estas grandezas: Comparando os valores acima indicados, vemos que os níveis lógicos são mais estreitos na tecnologia CMOS, o que implica que, tanto as zonas indefi- nidas, como as margens de ruído são maiores. A família CMOS que utiliza transístores MOSFET. Consome muito menos potência do que a família anterior, pelo que tem fan outs da ordem de 50, mas tem, em geral, um funcionamento mais lento, devido a apresentar uma menor velocidade de propagação. Além disso, por se tratar de uma tecnologia mais nova, apresenta uma menor variedade de circuitos. Vejamos algumas características das portas TTL: Os C.Is. da série Standard desta família apresentam designações no formato 74xx. A sua tensão de alimentação é: Vcc entre 4,5 e 5 V A temperatura de funcionamento pode variar entre 0 ºC e 70 ºC. A porta básica da família TTL é a porta NAND: o C.I. 7400 é constituído por 4 portas NAND de duas entradas. Cada uma delas corresponde a um circuito com a seguinte constituição: No circuito anterior, todos os transístores trabalham à saturação, com IB Sistemas Digitais p. 45 elevado e VCE próximo de 0 V, ou ao corte, com VB < 0,7 V. Podemos subdividir este circuito em três partes: - Módulo de Entrada, constituído pelos transístores T1a e T1b e pelos dío- dos Da e Db que impedem a presença de uma tensão negativa nos emis- sores dos transístores; - Transístor T2 com as resistências RC e RE, que como veremos desempe- nha um papel fundamental, no circuito e - Módulo de Saída, constituído pelos transístores T3, T4, pelo díodo D e pela resistência de R2. Vejamos, em primeiro lugar, o que se passa com T2, e quais as consequên- cias para o módulo de saída: T2 à saturação: A base de T3 fica à tensão de, aproximadamente 0,7 V, imposta pela UBE de T4. Nesta situação, T3 fica ao corte e T4 fica à saturação. A saída fica no estado lógico 0. T2 ao corte: A tensão na base de T3 é 5V e a tensão na base de T4, 0 V, porque não havendo corrente através de T2, não há quedas de tensão nas resistências RC e RE. Agora, temos T3 à saturação e T4 ao corte, pelo que a saída fica no estado lógico 1. Agora, podemos analisar, em função dos estados das entradas, em que condições, é que T2 fica à saturação ou ao corte: As duas entradas (a, b) a 0: os dois transístores correspondentes, T1a e T1b, ficam à saturação, devido à corrente de base. Assim, nos seus colecto- res, ficam 0 V, pelo que T2 fica ao corte e, como vimos, S = 1. Uma das entradas a 1 e a outra a 0: O transístor correspondente à entrada a 0 fica à saturação e coloca 0 V os colectores de T1a e T1b, pelo que o outro fica com uma tensão VCE negativa, isto é, fica ao corte. T2 fica ao corte, o que leva a S = 1. As duas entradas a 1: A tensão nos colectores de T1a e T1b é a soma das tensões UBE de T4 e T2, isto é, 1,4 V: ambos os transístores de entrada ficam com UE > UC, isto é, ao corte. A tensão na base de T2 é a tensão calculada de 1,4 V e leva T2 à saturação, pondo a saída a 0. Finalmente, uma situação possível: Uma entrada (ou ambas) desligada, isto é, no ar: Não existe corrente no transístor da entrada no ar, pelo que a tensão no colector de T2 é imposta como nos casos anteriores: se ambas as entradas estiverem no ar, UC fica superior a 1,4 V, levando T2 à saturação e S a 0; se uma delas estiver a 0, o respectivo transístor entra em saturação e coloca no colector de T2 uma tensão baixa que o leva ao corte, e S a 0. Podemos concluir que uma entrada no ar, funciona como se estivesse no estado lógico 1, conclusão que é válida para todos os circuitos da família TTL. Sistemas Digitais p. 46 Este tipo de saída é a mais comum e designa-se por Totem-Pole, mas exis- tem portas com características especiais, chamadas portas com Saída em Colector Aberto, de que se apresenta a respectiva porta NAND de duas entra- das: O símbolo que indica uma porta de colector aberto é: Neste caso, ao contrário do que se passava na série standard, é possível efectuar o seguinte tipo de ligação, designado por Wired -Logic: Esta questão tem a ver com o seguinte: Como se viu, pode definir-se o fan-out de uma família lógica como o número máximo de entradas a que a saída de uma porta se pode ligar. O fan-out está relacionado com o valor máximo da corrente que a saída pode debitar no esta- do alto e com o valor de corrente que a entrada de uma porta puxa do exterior, para ficar no estado lógico 1, (fan-in). A relação entre os dois, é de 10, isto é podemos ligar até um máximo de 10 entradas a uma saída, como no exemplo da seguinte figura, em que à saída do primeiro AND estão ligadas as entradas de duas outras portas: Esta situação é diferente do caso anterior, em que, se a saída de uma das portas está no estado lógico 1 e a da outra, no estado lógico 0, há uma corren- te que sai da primeira e entra na segunda, podendo destruir o respectivo tran- sístor. Esse perigo não existe nas portas de colector aberto, como vamos ver no seguinte exemplo: Para implementar a função seguinte: Sistemas Digitais p. 47 Podemos, utilizando portas de saída em colector aberto, ligar entre si as saídas dos dois NANDs da esquerda: Se a = 1, b = c = d = 0, como está indicado no circuito à esquerda, a saída do NAND de cima, fica a 1 e a do de baixo, a 0. Neste caso, há corrente na resistência R e a saída fica no estado lógico 0, imposto pela segunda porta. Se ambas as saídas estivessem a 1, não haveria corrente na resistência e S = 1. A ligação em paralelo das duas portas compor- ta-se como um AND. Além da série 74, Standard, existem outras, com pequenas variações de características. Como exemplos, temos as seguintes, de que se apresentam as principais variações: - Série 54xx – pode operara a temperaturas entre –55ºC e +125ºC - Séries 74L e 54L – consomem menos potência – (o L significa Low) Sistemas Digitais p. 48 Circuitos Combinatórios Designam-se por circuitos combinatórios, aqueles em que, a cada momento, a saída depende exclusivamente da combinação das entradas presentes nesse momento. Todos os circuitos que vimos até aqui são deste tipo. Um circuito combinatório é consti- tuído pela interligação de portas lógi- cas, apresentando, em geral, várias entradas e, pelo menos, uma saída: Em geral, um circuito combinatório tem um determinado fim, servindo para responder a um dado problema. O projecto de um circuito combinatório passa pelas seguintes etapas: 1. Estudo do problema, com vista à sua compreensão, em que se deter- minam as condições de funcionamento e quais as variáveis, de entrada e de saída, em presença; 2. Depois de compreendido o problema e estabelecidas as variáveis, é possível fazer a determinação das Tabelas de Verdade, relativas a cada uma das variáveis de saída; 3. A partir das Tabelas de Verdade, podem ser retiradas as expressões das diferentes variáveis, numa das duas formas canónicas possíveis. 4. Tenta simplificar-se, o mais possível, cada uma das expressões. 5. Com as expressões simplificadas, desenha-se o esquema do circuito lógico, supondo que as portas serão implementadas por circuitos integra- dos. 1. Descodificadores São circuitos combinatórios, em que à entrada aparece um código binário e à saída, um outro código. Para isso, se a entrada tem n bits, a saída terá até 2n bits. Em geral, aparecem também algumas entradas de habilitação ou de Enable, de modo que a saída só fará sentido, quando as entradas En estiverem activadas. Como exemplo, vamos projectar um circuito para descodificar BCD 2421 em binário natural. O circuito deve ter 4 entradasde informação (DCBA), acti- vas altas, mais uma de habilitação, activa baixa e 4 saídas: Funciona quando a entrada enable, E, está a 0: com E = 0, quaisquer que sejam os valores das outras entradas, as saídas ficam a 0. Por outro lado, existem seis combinações das quatro entradas que não são válidas em BCD 2421, pelo que correspondem a situações opcionais. Começando pela Tabela de Verdade, temos: Sistemas Digitais p. 49 En D C B A Dec S3 S2 S1 S0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 0 0 1 1 3 0 0 1 1 0 0 1 0 0 4 0 1 0 0 0 0 1 0 1 0 X X X X 0 0 1 1 0 0 X X X X 0 0 1 1 1 0 X X X X 0 1 0 0 0 0 X X X X 0 1 0 0 1 0 X X X X 0 1 0 1 0 0 X X X X 0 1 0 1 1 5 0 1 0 1 0 1 1 0 0 6 0 1 1 0 0 1 1 0 1 7 0 1 1 1 0 1 1 1 0 8 1 0 0 0 0 1 1 1 1 9 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 2 0 0 0 0 1 0 0 1 1 3 0 0 0 0 1 0 1 0 0 4 0 0 0 0 1 0 1 0 1 X 0 0 0 0 1 0 1 1 0 X 0 0 0 0 1 0 1 1 1 X 0 0 0 0 1 1 0 0 0 X 0 0 0 0 1 1 0 0 1 X 0 0 0 0 1 1 0 1 0 X 0 0 0 0 1 1 0 1 1 5 0 0 0 0 1 1 1 0 0 6 0 0 0 0 1 1 1 0 1 7 0 0 0 0 1 1 1 1 0 8 0 0 0 0 1 1 1 1 1 9 0 0 0 0 A Tabela de Verdade anterior, já sem a coluna dos decimais, pode ser repre- sentada da seguinte forma: En D C B A S3 S2 S1 S0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 X X X X 0 0 1 1 0 X X X X 0 0 1 1 1 X X X X 0 1 0 0 0 X X X X 0 1 0 0 1 X X X X 0 1 0 1 0 X X X X 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 X X X X 0 0 0 0 Sistemas Digitais p. 50 Os Mapas de Karnaugh que permitem simplificar as equações das quatro variáveis de saída são os seguintes: (Com En = 0): Estes mapas permitem obter as equações simplificadas das saídas: AEnS B)(DEn)BDBD(EnS )BCC(DEnS BCEnS o 1 2 3 ⋅= ⊕⋅=⋅+⋅⋅= ⋅+⋅⋅= ⋅⋅= A partir destas, podemos desenhar o seguinte circuito lógico do descodi- ficador: Descodificadores em Circuitos Integrados O circuito integrado 7442 é um descodificador que converte códigos BCD 8421 em decimal. As quatro entradas são activas altas e as saídas são activas baixas: A Tabela de Verdade é a seguinte: Sistemas Digitais p. 51 D C B A 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 X X X X X X X X X X 1 0 1 1 X X X X X X X X X X 1 1 0 0 X X X X X X X X X X 1 1 0 1 X X X X X X X X X X 1 1 1 0 X X X X X X X X X X 1 1 1 1 X X X X X X X X X X A partir da Tabela de Verdade, podem ser construídos os Mapas de Kar- naugh, em que se optou por fazer as associações correspondentes às negações das variáveis de saída: Assim, obtém-se as equações e o circuito lógico: AD9AD9 AD8AD8 ABC7ABC7 ABC6ABC6 ABC5ABC5 ABC4ABC4 ABC3ABC3 ABC2ABC2 ABCD1ABCD1 ABCD0ABCD0 ⋅=⇔⋅= ⋅=⇔⋅= ⋅⋅=⇔⋅⋅= ⋅⋅=⇔⋅⋅= ⋅⋅=⇔⋅⋅= ⋅⋅=⇔⋅⋅= ⋅⋅=⇔⋅⋅= ⋅⋅=⇔⋅⋅= ⋅⋅⋅=⇔⋅⋅⋅= ⋅⋅⋅=⇔⋅⋅⋅= Sistemas Digitais p. 52 Outro descodificador muito utilizado é o 7447. É um descodificador de BCD para 7 segmentos que permite utilizar displays de 7 segmentos, para visualizar números codificados em BCD 8421: Os segmentos são 7 leds, identificados pelas letras de a, a g, que podem ser ligados de duas formas: existem dispositivos com o ânodo comum ou o cátodo comum (ver figura seguinte). Ânodo Comum Cátodo Comum O 7447 deve ser usado para comandar displays de ânodo comum: tem sete saídas activas baixas que devem ser ligadas aos cátodos dos leds, colocando a 0 os cátodos dos díodos que devem acender, e a 1, os que devem permanecer apagados. O descodificador tem as seguintes entradas: - Entradas activas altas de informação (D, C, B, A), para o código BCD do algarismo; - Entradas de controlo (activas baixas): LT - Lamp Test RBI - Ripple Blanking Input - Entrada / saída de controlo (activa baixa): BI/RBO - Blanking input/ Ripple Blanking Output Sistemas Digitais p. 53 Funcionamento: 1BIRBI 1LT == = Aparece no display o algarismo correspondente ao código BCD presente nas entradas (de 0 a 9): é o funcio- namento normal. 0RBI 1LT = = Aparece o algarismo correspondente ao código BCD presente nas entradas, excepto no caso do zero, em que o display fica apagado 1BI e 0LT == Todos os leds acendem, o que permite testar o display. As saídas devem ser ligadas ao display através de resistências limitadoras da tensão, uma vez que os leds funcionam a tensões da ordem dos 2,5 V: Existe, em circuito integrado (74138), um descodificador binário octal, com três entradas activas altas (C, B e A), mais três de enable, sendo duas destas activas baixas e oito saídas activas baixas: Os significados das indicações do símbolo são os seguintes: Os números 1, 2 e 4 são os pesos das entradas; As saídas são activas baixas, ficando activas (a 0) quando EN = 1, caso contrário, ficam a 1; O & significa que a relação entre as entradas de enable é um AND: 2BG2AGG1EN ⋅⋅= Assim, para obter 0, por exemplo, em Y6, é preciso que: 0A1,BC0,2AG2AG1,G1 ====== Sistemas Digitais p. 54 Existe também um circuito integrado (74139) com dois descodificadores de 2 para 4 bits, cujos diagrama de ligações, símbolo IEEE e diagrama lógico de cada descodificador são: Utilização dos descodificadores para implementar funções Estes dois descodificadores podem ser utilizados para implementar funções com 3 e 2 variáveis de entrada. As saídas destes descodificadores apresentam os produtos negados das diferentes combinações das entradas, pelo que, basta negá-las e ligá-las a uma porta OR, ou, em alternativa, ligá-las a uma porta NAND, para obter a saída esperada. Como exemplo, vamos ver como obter a função S = B⊗A. Como há duas variáveis de entrada, podemos utilizar o 74139. Da Tabela de Verdade da função, tiramos a primeira forma canónica: B A S 0 0 1 0 1 0 1 0 0 1 1 1 ABABS ⋅+⋅= Os termos correspondem às linhas 0 e 3: S (B,A)= Σ (0,3). Vamos ligar a uma porta NAND, as duas saídas correspondentes do descodificador e activá- lo com 0, na entrada G (ligando-a à massa): Sistemas Digitais p. 55 2. Codificadores Um codificador é um circuito em que entra o sinal a ser codificado e saem os bits correspondentes ao respectivo código: funciona ao contrário do desco- dificador. Para n saídas, pode ter até 2n entradas. Como exemplo, vamos ver um codificador de decimal para BCD 8421. Tem 10 entradas correspondentes aos 10 algarismos e 4 saídas: A Tabela de Verdade é a seguinte: Entrada Activa S3 S2 S1 S0 I0 0 0 0 0 I1 0 0 0 1 I2 0 0 1 0 I3 0 0 1 1 I4 0 1 0 0 I5 0 1 0 1 I6 0 1 1 0 I7 0 1 1 1 I8 1 0 0 0 I9 1 0 0 1 Dela se podem obter as equações das saídas e o circuito correspondente: S3 = I8 + I9 S2 = I4 + I5 + I6 + I7 S1 = I2 + I3 + I6 + I7 S0 = I1 + I3 + I5 + I7 + I9 Note-se que: 1- A entrada I0 não é utilizada em nenhuma porta; 2 – Se duas ou mais entradas estiverem activas, a saída não faz sentido: por exemplo, quando I9 = I3 = 1, S = 1011. Para evitar este inconveniente, existem os codificadores de prioridade que funcionam do seguinte modo: se mais do que uma das entradas estiver activa, dá-se prioridade