Preview only show first 10 pages with watermark. For full document please download

Eletrônica Digital

Apostila Eletrônica Digital

   EMBED


Share

Transcript

ELETRÔNICA DIGITAL Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Porto Alegre, 2010 Versão 1 LISTA DE FIGURAS Figura 1.1: Onda senoidal....................................................................................................1 Figura 1.2: Sinal digital ........................................................................................................2 Figura 1.3: Exercício 1.1 ......................................................................................................2 Figura 3.1: Porta lógica OR a partir de transistores bipolares ...........................................11 Figura 3.2: Circuito representativo da operação OR..........................................................12 Figura 3.3: Símbolo de uma porta OR de duas entradas ..................................................12 Figura 3.4: Entradas lógicas variando no tempo................................................................13 Figura 3.5: Circuito representativo da operação AND .......................................................14 Figura 3.6: Símbolo de uma porta AND de duas entradas ................................................14 Figura 3.7: Formas de onda para o exercício 2 .................................................................15 Figura 3.8: Circuito representativo da operação NOT .......................................................15 Figura 3.9: Símbolo de um inversor...................................................................................16 Figura 3.10: Símbolo de uma porta NOR de duas entradas ..............................................16 Figura 3.11: Porta NOR formada pela combinação de uma OR e um Inversor .................16 Figura 3.12: Símbolo de uma porta NAND de duas entradas............................................17 Figura 3.13: Porta NAND formada pela combinação de uma AND e um Inversor.............17 Figura 4.1: Circuito lógico ..................................................................................................18 Figura 4.2: Circuito lógico exercício resolvido 4.1..............................................................19 Figura 4.3: Circuito lógico exercício resolvido 4.2..............................................................19 Figura 4.4: Circuito lógico ..................................................................................................20 Figura 4.5: Circuito lógico exercício resolvido 4.3..............................................................20 Figura 4.6: Circuito lógico XOR .........................................................................................24 Figura 4.7: Símbolo de uma porta XOR.............................................................................24 Figura 4.8: Circuito lógico XNOR.......................................................................................25 Figura 4.9: Símbolo de uma porta XNOR ..........................................................................25 Figura 4.10: Função habilitar/desabilitar ............................................................................26 Figura 5.1: Inversor a partir de uma porta NAND (1) .........................................................31 Figura 5.2: Inversor a partir de uma porta NAND (2) .........................................................31 Figura 5.3: Inversor a partir de uma porta NOR (1) ...........................................................31 Figura 5.4: Inversor a partir de uma porta NOR (2) ...........................................................32 Figura 5.5: Porta NAND a partir de uma OR e dois inversores..........................................32 Figura 5.6: Porta AND a partir de uma NOR e dois inversores..........................................32 Figura 5.7: Porta NOR a partir de uma AND e dois inversores..........................................33 Figura 5.8: Porta OR a partir de uma NAND e dois inversores..........................................33 Figura 5.9: Circuito XOR utilizando apenas portas NAND (1)............................................33 Figura 5.10: Circuito XOR utilizando apenas portas NAND (2)..........................................34 Figura 6.1: Mapa-K para duas variáveis ............................................................................37 Figura 6.2: Mapa-K para três variáveis ..............................................................................38 Figura 6.3: Mapa-K para quatro variáveis..........................................................................39 Figura 6.4: Agrupamento de pares para mapa-K de 3 e 4 variáveis..................................40 Figura 6.5: Agrupamento de quartetos para mapa-K de 3 e 4 variáveis............................41 Figura 6.5: Agrupamento de octetos para mapa-K de 4 variáveis .....................................42 Figura 6.6: Mapa-K para o exercício resolvido 6.1 ............................................................44 Figura 6.7: Mapa-K para o exercício resolvido 6.2 ............................................................45 Figura 7.1: Níveis lógicos de entrada e as faixas de tensão para CIs TTL ........................48 Figura 7.2: Níveis lógicos de entrada e as faixas de tensão para CIs CMOS....................48 I Figura 7.3: Chave operando em lógica positiva.................................................................49 Figura 7.4: Chave operando em lógica negativa ...............................................................49 Figura 7.5: Os circuitos das figuras (a) e (b) geram a mesma saída .................................50 Figura 8.1: Diagrama de blocos para implementação de projetos.....................................51 Figura 8.2: Mapa-K para o exemplo 8.1.............................................................................52 Figura 8.3: Exemplo 8.1.....................................................................................................52 Figura 8.4: Exemplo 8.2.....................................................................................................53 Figura 8.5: Mapa-K para o exemplo 8.2.............................................................................53 Figura 8.6: Circuito exemplo 8.2 (1)...................................................................................54 Figura 8.7: Circuito exemplo 8.2 (2)...................................................................................54 Figura 8.8: Circuito exemplo 8.2 (3)...................................................................................54 Figura 8.9: Exemplo 8.3.....................................................................................................55 Figura 8.10: Mapa-K para o exemplo 8.3...........................................................................56 Figura 8.11: Circuito exemplo 8.3 ......................................................................................56 Figura 8.12: Circuito decodificador BCD para decimal ......................................................60 Figura 8.13: Display de 7-seg genérico .............................................................................61 Figura 8.14: Decodificador BCD para display 7-Seg .........................................................61 Figura 8.15: Circuito exercício resolvido 8.3 ......................................................................64 Figura 9.1: Representação de um número binário com sinal positivo ...............................65 Figura 9.2: Representação de um número binário com sinal negativo ..............................66 Figura 9.3: Representação de números com sinal na forma de complemento de 2 ..........67 Figura 9.4: Circulo numérico de quatro bits. ......................................................................73 Figura 10.1: Circuito para um somador completo ..............................................................75 Figura 10.2: Representação em bloco para um somador completo .................................75 Figura 10.3: Circuito para um meio somador.....................................................................76 Figura 10.4: Representação em bloco para um meio somador .........................................76 Figura 10.5: Somador completo a partir de meio somador ................................................77 Figura 10.6: Processo típico de soma binária....................................................................77 Figura 10.7: Somador binário paralelo de cinco bits..........................................................78 Figura 10.8: Representação em bloco do CI 4008 ............................................................79 Figura 10.9: Conexão em cascata de dois 4008................................................................79 Figura 10.10: Distribuição de pinos do CI 4008 .................................................................79 Figura 10.11: CI 4008 como subtrator ...............................................................................81 Figura 10.12: Somador/subtrator paralelo (sistema de complemento de 2) ......................81 II SUMÁRIO 1 INTRODUÇÃO 1 1.1 REPRESENTAÇÕES ANALÓGICAS 1.2 REPRESENTAÇÕES DIGITAIS 1 1 2 SISTEMAS DE NUMERAÇÃO 3 2.1 SISTEMA DECIMAL DE NUMERAÇÃO 2.2 SISTEMA BINÁRIO DE NUMERAÇÃO 2.3 SISTEMA HEXADECIMAL DE NUMERAÇÃO 2.4 CONVERSÃO DO SISTEMA BINÁRIO PARA O SISTEMA DECIMAL 2.5 CONVERSÃO DO SISTEMA DECIMAL PARA O SISTEMA BINÁRIO 2.6 CONVERSÃO DO SISTEMA HEXADECIMAL PARA O SISTEMA DECIMAL 2.7 CONVERSÃO DO SISTEMA DECIMAL PARA O SISTEMA HEXADECIMAL 2.8 CONVERSÃO DO SISTEMA HEXADECIMAL PARA O SISTEMA BINÁRIO 2.9 CONVERSÃO DO SISTEMA BINÁRIO PARA O SISTEMA HEXADECIMAL 2.10 NIBBLES, BYTES E PALAVRAS 3 4 5 6 6 7 7 8 9 9 3 OPERAÇÕES LÓGICAS E PORTAS LÓGICAS 10 3.1 DEFINIÇÕES PRELIMINARES 3.1.1 Operações Lógicas 3.1.2 Portas Lógicas 3.1.3 Tabela Verdade 3.2 OPERAÇÃO OR E PORTA OR 3.2.1 Resumo da Operação OR 3.3 OPERAÇÃO AND E PORTA AND 3.3.1 Resumo da Operação AND 3.4 OPERAÇÃO NOT E INVERSOR 3.5 OPERAÇÃO NOR E PORTA NOR 3.6 OPERAÇÃO NAND E PORTA NAND 10 10 10 11 11 13 13 14 15 16 16 4 DESCRIÇÃO E ANÁLISE DE CIRCUITOS LÓGICOS 18 4.1 PRECEDÊNCIA DE OPERADOR 4.2 EXPRESSÕES BOOLEANAS OBTIDAS DE CIRCUITOS LÓGICOS 4.3 CIRCUITOS LÓGICOS OBTIDOS DE EXPRESSÕES BOOLEANAS 4.4 TABELAS VERDADE OBTIDAS DE EXPRESSÕES BOOLEANAS 4.5 EXPRESSÕES BOOLEANAS OBTIDAS DE TABELAS VERDADE 4.6 BLOCO LÓGICO XOR 4.7 BLOCO LÓGICO XNOR 4.8 CIRCUITOS PARA HABILITAR / DESABILITAR 18 18 19 20 22 23 24 25 III 5 ÁLGEBRA DE BOOLE 27 5.1 POSTULADOS DA ÁLGEBRA DE BOOLE 5.1.1 Postulado da Complementação 5.1.2 Postulado da Adição 5.1.3 Postulado da Multiplicação 5.2 PROPRIEDADES DA ÁLGEBRA DE BOOLE 5.2.1 Propriedade Comutativa 5.2.2 Propriedade Associativa 5.2.3 Propriedade Distributiva 5.3 TEOREMAS DE DE MORGAN 5.3.1 Primeiro Teorema de De Morgan 5.3.2 Segundo Teorema de De Morgan 5.4 IDENTIDADES AUXILIARES 5.4.1 Identidade Auxiliar 1 5.4.2 Identidade Auxiliar 2 5.4.3 Identidade Auxiliar 3 5.4.4 Identidade Auxiliar 4 5.5 EQUIVALÊNCIA DE BLOCOS LÓGICOS 5.5.1 Inversor a Partir de Uma Porta NAND 5.5.2 Inversor a Partir de Uma Porta NOR 5.5.3 Portas NAND e AND a Partir de Portas OR e NOR e Inversores 5.5.4 Portas NOR e OR a Partir de Portas AND e NAND e Inversores 27 27 27 27 28 28 28 28 29 29 29 29 29 30 30 30 30 31 31 32 32 6 SIMPLIFICAÇÃO DE EXPRESSÕES BOOLEANAS 35 6.1 SIMPLIFICAÇÃO ALGÉBRICA 6.2 MAPA DE KARNAUGH 6.2.1 Mapa-K para 2 Variáveis 6.2.2 Mapa-K para 3 Variáveis 6.2.3 Mapa-K para 4 Variáveis 6.3 SIMPLIFICAÇÃO PELO MAPA DE KARNAUGH 6.3.1 Agrupamento de 2 Quadros (pares) 6.3.2 Agrupamento de 4 Quadros (quartetos) 6.3.3 Agrupamento de 8 Quadros (octetos) 6.3.4 Hierarquia de Agrupamentos 6.4 CONDIÇÕES DE IRRELEVÂNCIA (DON’T-CARE) 6.5 AGRUPAMENTO DE ZEROS 35 37 37 38 38 39 39 41 42 42 43 44 7 CARACTERÍSTICAS BÁSICAS DE CIS DIGITAIS 46 7.1 FAMÍLIA TTL 7.2 FAMÍLIA CMOS 7.3 ALIMENTAÇÃO E TERRA 7.4 FAIXAS DE TENSÃO PARA OS NÍVEIS LÓGICOS 7.5 ENTRADAS NÃO-CONECTADAS 7.6 LÓGICA POSITIVA E LÓGICA NEGATIVA 46 47 47 47 48 49 IV 8 PROJETO DE CIRCUITOS COMBINACIONAIS 51 8.1 CÓDIGOS 8.1.1 Decimal Codificado em Binário 8.1.2 Código Gray 8.1.3 Relações entre as Representações Numéricas 8.2 DECODIFICADORES 8.3 DECODIFICADOR BCD PARA DISPLAY DE 7 SEGMENTOS 8.4 CODIFICADORES 56 57 57 58 59 61 64 9 OPERAÇÕES COM NÚMEROS BINÁRIOS 65 9.1 ADIÇÃO BINÁRIA 9.2 REPRESENTAÇÃO DE NÚMEROS COM SINAL 9.2.1 Números Binários na Forma de Complemento de 1 9.2.2 Números Binários na Forma de Complemento de 2 9.2.3 Representação de Números com Sinal Usando Complemento de 2 9.2.4 Negação 9.2.5 Caso Especial na Representação de Complemento de 2 9.3 ADIÇÃO NO SISTEMA DE COMPLEMENTO DE 2 9.4 SUBTRAÇÃO NO SISTEMA DE COMPLEMENTO DE 2 9.5 OVERFLOW ARITMÉTICO 9.5.1 Círculos de Números e Aritmética Binária 65 65 66 66 66 68 68 70 71 72 72 10 CIRCUITOS ARITMÉTICOS 74 10.1 PROJETO DE UM SOMADOR COMPLETO 10.1.1 Meio Somador 10.1.2 Somador Completo a Partir de Meio Somador 10.2 SOMADOR BINÁRIO PARALELO 10.3 SOMADOR PARALELO EM CIRCUITO INTEGRADO 10.4 USO DE SOMADORES PARALELOS NO SISTEMA DE COMPLEMENTO DE 2 10.4.1 Adição 10.4.2 Subtração 10.4.3 Adição e Subtração Combinadas 74 75 77 77 78 80 80 80 81 V Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 1 INTRODUÇÃO O termo digital é, hoje em dia, amplamente usado devido, em grande parte, pela larga utilização de circuitos eletrônicos digitais no nosso cotidiano. A exemplo disso, podemos citar os relógios digitais, telefones celulares, calculadoras digitais, transmissão digital de sinais entre outros. Mas o que vem a ser um circuito digital? Melhor ainda, do que trata a eletrônica digital? Que diferença há entre eletrônica digital e eletrônica analógica? Estas e outras perguntas serão respondidas ao longo do estudo do presente texto. 1.1 Representações Analógicas No nosso dia-a-dia estamos sempre representando quantidades que são medidas, monitoradas, armazenadas, manipuladas, observadas ou utilizadas em algum sistema real. Existem duas formas de representação dos valores das quantidades: a representação analógica e a representação digital. A representação analógica de quantidades se caracteriza pela continuidade, ou seja, por representar de forma proporcional e contínua a quantidade que está variando, por exemplo, o marcador de velocidades de um automóvel ou um termômetro de mercúrio. Nesses dois exemplos, a velocidade e a temperatura (quantidades físicas) estão sendo coletadas e representadas por indicadores mecânicos. Nos sistemas analógicos elétricos as quantidades físicas são associadas a uma corrente ou a uma tensão elétrica. Na figura 1.1 temos um exemplo de sinal analógico. Figura 1.1: Onda senoidal O que se observa na onda senoidal da figura 1.1 é que os valores de tensão variam continuamente no transcorrer do tempo e é essa a característica principal de um sinal analógico. 1.2 Representações Digitais Na representação digital as quantidades não variam de forma proporcional, mas de forma discreta. Um relógio digital apresenta a hora do dia através de dígitos decimais que representam as horas e os minutos. Como sabemos, o tempo varia de modo continuo, entretanto em um relógio digital ele varia em saltos de um por minuto. Podemos traçar um comparativo entre quantidade analógicas e digitais da seguinte forma: Analógica → contínua 1 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Digital → discreta (passo a passo) A leitura de uma quantidade analógica admite, muitas vezes, uma interpretação livre e a leitura de uma quantidade digital não, devida a sua natureza discreta. De certa forma, podemos dizer, usando uma expressão popular, que uma leitura digital é oito ou oitenta, na verdade, zero ou um, na lógica binária. Na leitura de uma quantidade analógica sempre arredondamos valores, na digital não há como fazer isso. Por exemplo, um termômetro de mercúrio mostra uma leitura de temperatura que se encontra ente 36,5 °C e 37°, desta forma a temperatura pode ser 36,6°C,ou 36,7°C, ou 36,8°C, ou 36,9°C, ou 37°C. Entretanto num termômetro com mostrador digital, ao mostrar a leitura 36,5°C ele esta afirmando que a temperatura é essa que está sendo exibida pelo mostrador, não admite falsas interpretações, pois sua precisão já foi definida na sua construção. Um exemplo de sinal digital pode ser visto na figura 1.2. Figura 1.2: Sinal digital Observe na figura 1.2 que um sinal digital não tem valores negativos e passa de zero para o limite superior sem passar por quaisquer outros valores de tensão, garantido que os valores variam de forma discreta (i.é. aos saltos). Exercício 1.1: O sinal abaixo é um sinal digital ou um sinal analógico. Justifique sua resposta. Figura 1.3: Exercício 1.1 2 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 2 SISTEMAS DE NUMERAÇÃO Para representar as quantidades físicas se utilizam números, entretanto estes números devem fazer algum sentido, pois um mesmo número pode representar quantidades (valores) diferentes caso seja utilizados em sistemas distintos. O que distingui um sistema do outro é a base numérica na qual ele foi construído. A base representa também o número de algarismos necessários para representar qualquer valor no sistema. Existem diversos sistemas numéricos, entres os quais destacamos, por serem de interesse em sistemas digitais, o sistema decimal, o sistema binário e o sistema hexadecimal. 2.1 Sistema Decimal de Numeração O sistema decimal é natural para nós, pois é o que utilizamos diariamente. Ele é composto por dez algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 & 9. Como a base do sistema deve corresponder ao número de algarismos que o compõe, tem-se no sistema decimal a base 10. Os algarismos usados como dígitos de um número podem representar qualquer quantidade. O sistema decimal é um sistema de valor posicional, ou seja, o valor de cada dígito depende da sua posição no número. Por exemplo, para representarmos o ano em que o homem pisou na lua usamos o número 1969. Sabemos que o dígito 1 representa 1 milhar, o dígito 9 representa 9 centenas, o dígito 6 representa 6 dezenas e o número 9 representa 9 unidades, respectivamente. Portanto cada dígito do exemplo tem um peso (valor posicional) e esses pesos são dados por potências de 10, pois estamos tratando de um sistema de base 10. O sistema decimal tem a seguinte regra de formação, apresentada através dos exemplos abaixo: Exemplo 2.1: Regra de formação do número 325 102 101 100    3 2 5 ⇐ Valores posicionais ⇐ Dígitos Na verdade temos o seguinte: 3 x 102 + 2 x 101 + 5 x 100 = 3 x 100 + 2 x 10 + 5 x 1 que resulta em : 3 0 0 + 2 0 + 5 3 2 5 Exemplo 2.2: Regra de formação do número 27,536 3 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 101 100 10-1 10-2 10-3      2 7 , 5 3 6 ⇐ Valores posicionais ⇐ Dígitos Desta forma temos o seguinte: 2 x 101 + 7 x 100 + 5 x 10-1 + 3 x 10-2 + 6 x 10-3 = 2 x 10 + 7 x 1 + 5 x 0,1 + 3 x 0,01 + + 6 x 0,001 que resulta em: 2 + + + + 2 0 7 0 0 0 7 , , , , , , 0 0 5 0 0 5 3 0 6 3 6 No exemplo 2.1 o dígito 3 (o digito mais à esquerda do número) tem maior peso, este dígito é denominado de dígito mais significativo (most significant digit – MSD). O dígito 5 (dígito mais à direita do número) é o de menor peso, sendo denominado de dígito menos significativo (least significant digit – LSD). No exemplo 2.2 o dígito 2 é o MSD e o dígito 6 é o LSD. 2.2 Sistema Binário de Numeração Sistemas digitais trabalham apenas com dois estados: ligado ou desligado, portanto é interessante usar um sistema de numeração que possui apenas dois algarismos para representar as quantidades. O sistema decimal, como vimos, possui dez algarismos e isso implicaria em projetar um sistema digital com dez níveis de tensão, o que não é nada conveniente além de trazer grande complexidade ao sistema e uma baixa estabilidade. O sistema de numeração utilizado pelos sistemas digitais é o sistema binário composto apenas de dois algarismos: 0 & 1. O sistema binário também é um sistema de valor posicional o qual é dado por potências de base 2 que é a base deste sistema. Este sistema pode representar qualquer quantidade que possa ser representada no sistema decimal ou em qualquer outro sistema. Vejamos a regra de formação de um número binário através dos exemplos abaixo: Exemplo 2.3: Regra de formação do número 1101 (binário) 23  1 22  1 21  0 20  1 ⇐ Valores posicionais ⇐ Dígitos Realizando a operação abaixo, na verdade estamos encontrando o correspondente decimal do número binário 1101: 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 8 + 4 + 1 = 13 4 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira O número 13 encontrado está na base 10, portanto é um número decimal. Exemplo 2.4: Regra de formação do número 11 (binário) 21  1 20  1 ⇐ Valores posicionais ⇐ Dígitos Assim temos a seguinte operação: 1 x 21 + 1 x 20 = 1 x 2 + 1 x 1 = 2 + 1 = 3 (decimal) Para evitar-se confusões quando se trabalha com mais de um sistema numérico, utiliza-se como subscrito a base na qual o número está expresso, ou seja, ao se escrever número na forma 11110 significa, nesta convenção, que o número esta no sistema decimal, mas se escrever o número nesta outra forma 1112 significa que o número está expresso no sistema binário. Os dígitos binários (binary digit) são abreviados com o uso do termo bit. O bit mais à esquerda, por ter maior peso, é chamado de bit mais significativo (most significant bit – MSB) e o bit mais à direita é chamado de bit menos significativo (least significant bit – LSB). No sistema binário usando-se N bits podemos contar 2N números. Por exemplo, com 3 bits podemos contar 23 = 8 contagens (ou casos), assim temos os números binários 0002, 0012, 0102, 0112, 1002, 1012, 1102, 1112. A última contagem sempre terá todos os bits em 1, resultando num número decimal igual a 2N – 1. Por exemplo, com 5 bits, a última contagem é 111112 = 24 – 1 = 3110. Todo o sistema digital opera diretamente numa lógica binária, pois assim são necessários apenas dois níveis de tensão. 2.3 Sistema Hexadecimal de Numeração O sistema hexadecimal de numeração, assim como os sistemas decimal e binário, também é um sistema de valor posicional, o qual é dado por potências de base 16, necessitando, então, este sistema 16 algarismos distintos para representa-lo. São eles: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E & F. Os algarismos hexadecimais de 0 a 9 são correspondentes diretos dos algarismos decimais de 0 a 9, ou seja, representam a mesma quantidade. Para os algarismos A, B, C, D, E & F segue a tabela abaixo: Hexadecimal A B C D E F       Decimal 10 11 12 13 14 15 A regra de formação do sistema hexadecimal segue o mesmo procedimento dos sistemas anteriores. Vejamos como funciona através dos exemplos abaixo: 5 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Exemplo 2.5: Regra de formação do número 12316 162 161 160    1 2 3 ⇐ Valores posicionais ⇐ Dígitos Assim temos a seguinte operação: 1 x 162 + 2 x 161 + 3 x 160 = 1 x 256 + 2 x 16 + 3 x 1 = 256 + 32 + 3 = 29110 Como observado, resolvendo a operação acima se chega ao equivalente decimal do número hexadecimal dado. Exemplo 2.6: Regra de formação do número AF16 161  A 160  F ⇐ Valores posicionais ⇐ Dígitos Segue que: A x 161 + F x 160 = 10 x 16 + 15 x 1 = 160 + 15 = 17510 Embora sistemas digitais trabalhem somente com números binários, o sistema hexadecimal é muito vantajoso no sentido de ser uma representação mais compacta em comparação com a binária. Para ilustrar a vantagem deste sistema imagine que você receba uma lista de mapeamento de memória com 64 posições de 16 bits e você tenha que conferir cada posição. Você prefere um número binário com 16 bits do tipo 1110111011111111 ou um número hexadecimal de 4 dígitos do tipo EEFF? Se você for sensato escolherá a segunda opção, visto que estará menos sujeito a cometer erros de leitura. É importante que se tenha em mente que sistemas digitais trabalham com binários, o uso do sistema hexadecimal é apenas uma conveniência. 2.4 Conversão do Sistema Binário para o Sistema Decimal Para converter um número binário no seu equivalente decimal, basta seguir o procedimento explicado na seção 2.2. Veja abaixo um exemplo: Exemplo 2.7: Converta o numero binário 110011 em decimal – 1100112 → decimal 1 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 32 + 16 + 2 + 1 = 5110 Portanto 1100112 = 5110 2.5 Conversão do Sistema Decimal para o Sistema Binário Para converter um número decimal no seu equivalente binário o método mais conveniente é o método das divisões sucessivas. Este método consiste em efetuar sucessivas divisões pela base a ser convertida (2 caso do sistema binário) até o último 6 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira quociente possível. O número binário obtido será composto pelo o último quociente, o MSB, e pelos restos sucessivos tomados na ordem inversa, sendo o primeiro resto o LSB. Veja os exemplos abaixo: Exemplo 2.8: Converta o número decimal 47 em binário – 4710 → binário 47 2  1 23 2 1 11  1    1° resto – LSB 2° resto 3° resto 4° resto 5° resto 2 5 1 2 2 0 2 1  último quociente – MSB Portanto 4710 = 1011112. Exemplo 2.9: Converta o número decimal 36 em binário – 3610 → binário 36 2  0 18 0     1° resto – LSB 2° resto 3° resto 4° resto 5° resto 2 9 1 2 4 0 2 2 0 2 1  último quociente – MSB  Portanto 3610 = 1001002. 2.6 Conversão do Sistema Hexadecimal para o Sistema Decimal Para a conversão de um número hexadecimal no seu equivalente decimal, basta seguir o procedimento explicado na seção 2.3. Veja o exemplo abaixo: Exemplo 2.10: Converta o número hexadecimal 3F em decimal – 3F16 → decimal 3 x 161 + F x 160 = 3 x 16 + 15 x 1 = 6310 Portanto 3F16 = 6310. 2.7 Conversão do Sistema Decimal para o Sistema Hexadecimal A conversão de um número decimal no seu correspondente hexadecimal, assim como na conversão para binário, também é utilizado o método das divisões sucessivas, porém a divisão é por 16 em vez de 2. Veja o exemplo abaixo: Exemplo 2.11: Converta o número decimal 1000 em hexadecimal 7 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 1° resto – LSD   2° resto 1000 8 16 62 14 16 3  último quociente – MSD Portanto 100010 = 3E816, pois 1410 = E16. 2.8 Conversão do Sistema Hexadecimal para o Sistema Binário A regra consiste em transformar cada dígito hexadecimal no equivalente binário de 4 bits. Para isso é interessante memorizar a tabela abaixo: Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binário 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Observe os exemplos abaixo: Exemplo 2.12: Converta o número 9F2 hexadecimal em binário – 9F216 → binário 9  1001 F  1111 2  0010 Portanto 9F216 = 1001111100102. Exemplo 2.13: Converta o número C13 hexadecimal em binário – C1316 → binário C  1100 1  0001 8 3  0011 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Portanto C1316 = 1100000100112. 2.9 Conversão do Sistema Binário para o Sistema Hexadecimal A conversão de um número binário em um hexadecimal é bastante simples, na verdade consiste em fazer o inverso do processo anterior, ou seja, basta dispor o número binário em grupos de quatro bits, da direita para a esquerda, convertendo cada grupo no dígito hexadecimal equivalente. Caso o último grupo apresente falta de bits, este deve ser completado com zeros à esquerda até formar um grupo de quatro bits. Observe os exemplos abaixo: Exemplo 2.14: Converta o número binário 10011000 em hexadecimal 1001  9 1000  8 Portanto 100110002 = 9816. Exemplo 2.15: Converta o número binário 1110100110 em hexadecimal 0011  3 1010  A 0110  6 Portanto 11101001102 = 3A616. Note que foram acrescentados dois zeros à esquerda do grupo de bits mais à esquerda (bits grifados em negrito). 2.10 Nibbles, Bytes e Palavras Como vimos nas conversões binário ↔ hexadecimal os números binários eram agrupados em grupos de quatro bits, esses grupos são denominados de nibbles. Como a maioria dos sistemas digitais manipula e armazena informações e dados binários em grupos de oito bits, foi dado um nome especial a estes grupos – o byte. Entretanto sistemas digitais mais sofisticados tem a capacidade de lidar com dados binários maiores. Enquanto alguns equipamentos digitais tem capacidade de lidar com apenas um byte de cada vez, outros lidam com um conjunto de oito bytes. Portanto a palavra (Word) do primeiro equipamento é de um byte e a do outro é de oito bytes. O tamanho de palavra pode ser definido como numero de bits da palavra binária, então para os equipamentos citados temos oito bits para o primeiro e sessenta e quatro bits para o segundo. 9 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 3 OPERAÇÕES LÓGICAS E PORTAS LÓGICAS Em lógica existem apenas duas condições possíveis para qualquer entrada ou saída: verdadeira ou falsa. Na verdade qualquer par de opostos serve para designar uma relação lógica: sim ou não, positivo ou negativo, preto ou branco, alto ou baixo, etc. Pelo fato do sistema binário de numeração apresentar apenas dois dígitos, 1 e 0, este sistema, por razões óbvias, é adotado para representar relações lógicas em circuitos digitais. Estes circuitos usam faixas de tensões predeterminadas para representar os estados binários. Para descrever as relações entre as saídas e as entradas de um circuito lógico utilizamse as expressões lógicas. A expressões lógicas derivam-se do trabalho publicado em 1854 pelo matemático inglês George Boole (1815 – 1964) intitulado de Uma Investigação das Leis do Pensamento onde ele apresentou um sistema matemático de análise lógica conhecido como a Álgebra de Boole. Em 1938, o engenheiro americano Claude Elwood Shannon (1916 – 2001) utilizou as teorias da álgebra de Boole para solução de problemas de circuitos de telefonia com relés introduzindo assim a eletrônica digital no cenário tecnológico. Shannon é mundialmente conhecido como inventor, além da eletrônica digital, da teoria da informação, também chamada de teoria matemática da comunicação. A eletrônica digital tem por base um pequeno grupo de circuitos conhecidos como portas lógicas, que utilizadas de maneira conveniente, podemos implementar as expressões geradas pela álgebra de Boole. 3.1 Definições Preliminares 3.1.1 Operações Lógicas As operações lógicas derivam da álgebra de Boole, sendo as variáveis envolvidas denominadas de booleanas. Uma variável booleana é uma quantidade que pode ser, em diferentes momentos, igual a 0 ou 1. As variáveis booleanas são usadas para representar o nível de tensão presente em uma conexão de entrada ou saída de um circuito. Circuitos digitais da série TTL, tipicamente, utilizam para representar o valor booleano 0 uma faixa de tensão de 0 a 0,8V, enquanto o valor booleano 1 uma faixa de tensão de 2 a 5V.1 As variáveis booleanas não representam um número, mas o estado do nível de tensão de uma variável – nível lógico. A álgebra booleana é um modo de expressar a relação entre as entradas e saídas de um circuito lógico (circuito digital), sendo mais fácil de ser manipulada em comparação como a álgebra convencional, pois só existem dois valores possíveis para as variáveis – 0 ou 1. A álgebra booleana tem apenas três operações básicas, chamadas de operações lógicas: OR (OU), AND (E) e NOT (NÃO). 3.1.2 Portas Lógicas Circuitos digitais, denominados de portas lógicas, são circuitos construídos a partir de diodos, transistores e resistores interconectados de modo que a saída seja o resultado de uma operação lógica realizada sobre as entradas. Portanto teremos portas lógicas para as operações OR, AND, NOT e ainda para outras derivadas. 1 Tensões entre 0,8V e 2V são indefinidas, ou seja, nem 0 nem 1. 10 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 3.1: Porta lógica OR a partir de transistores bipolares 3.1.3 Tabela Verdade A tabela verdade é um mapa onde se descreve as saídas de um circuito lógico em função dos níveis lógicos de entrada deste circuito lógico. Em resumo pode se dizer que a tabela verdade é o mapeamento das possíveis situações de entrada com seus respectivos resultados. 3.2 Operação OR e Porta OR A operação OR é aquela que assume o valor 1 sempre que uma ou mais variáveis de entrada estiverem no nível lógico 1 e assume o valor 0 se, e somente se, todas as variáveis de entrada estiverem no nível lógico 0. A representação algébrica (expressão booleana) da operação OR para 2 variáveis é S=A+B Nessa expressão o sinal “+” não representa a adição convencional, ele representa a operação OR, onde se lê S é igual a A OR B. Num primeiro momento parecerá estranho que para o caso de A = B = 1 a soma A + B será igual a 1, mas como veremos mais adiante essa operação trata-se de uma soma booleana derivada do postulado da adição da álgebra de Boole. Um exemplo dessa operação seria a de acionar a lâmpada interna de um automóvel: a lâmpada deve acender se a porta do automóvel for aberta OU (OR) se o interruptor interno for acionado, assim a variável A pode ser usada para representar a porta aberta e a variável B para representar o interruptor interno. Para um melhor entendimento da operação OR é apresentado o circuito representativo na figura 3.2 seguido de algumas convenções. 11 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Convenções: Chave aberta  Nível lógico 0 Chave fechada  Nível lógico 1 LED apagado  Nível lógico 0 LED aceso  Nível lógico 1 Figura 3.2: Circuito representativo da operação OR Numa analise resumida do circuito acima se conclui que o LED acenderá quando uma ou ambas as chaves estiverem fechadas, ou seja, quando uma ou ambas as chaves estiverem no nível lógico 1, conforme a convenção estabelecida. Para definirmos melhor a operação OR, usamos a sua tabela verdade onde teremos todas as situações possíveis de entrada e os respectivos valores que assume a saída. Abaixo temos a tabela verdade da função OR para 2 variáveis (para mais de duas variáveis basta aumentar o número de linhas conforme a expressão 2N onde N é o número de variáveis de entrada). A 0 0 1 1 B 0 1 0 1 S 0 1 1 1 O circuito que executa a tabela verdade da operação OR é a porta OR. A porta OR é um circuito que tem duas ou mais entradas e cuja saída é igual a combinação dessas entradas por meio da operação OR. A figura 3.3 mostra o símbolo lógico para uma porta OR de duas entradas. Figura 3.3: Símbolo de uma porta OR de duas entradas As entradas de uma porta lógica podem ser formas de onda, ou seja, os níveis lógicos variam com o tempo. Quando os níveis lógicos das entradas variam com o tempo, a saída também será uma forma de onda, constituída pela combinação dos níveis da entrada a cada instante, conforme exemplificado na figura 3.4. 12 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 3.4: Entradas lógicas variando no tempo Para análise de circuitos desse tipo é necessário tomar intervalos de tempo onde hajam mudança nos estados lógicos das variáveis. No intervalo de tempo entre t0 e t1 as duas variáveis estão no nível lógico 0 portanto a saída permanece no nível lógico 0, entretanto no instante t1 a variável A passa para o nível lógico 1 enquanto que a variável B permanece em 0. Efetuando a operação OR neste instante obtém-se o nível lógico 1 para a saída. Este estado permanece até o instante t4 quando tanto a variável A, como a variável B, estão no nível 0. Entretanto no instante t5 a variável A passa para o nível lógico 1 e a variável B permanece no nível lógico 0, assim a saída assume o nível lógico 1 e assim permanece o restante do tempo mostrado. 3.2.1 Resumo da Operação OR A operação OR gera um resultado (saída) 1 sempre que quaisquer das entradas forem 1. Caso contrário, a saída é 0. • Uma porta OR é um circuito lógico que realiza uma operação OR sobre as entradas do circuito. • A expressão S = A + B é lida assim: “S é igual a A OR B”. • Exercício 3.1: Construa a tabela verdade da operação OR de 4 variáveis e desenhe sua porta lógica. 3.3 Operação AND e Porta AND A operação AND é aquela que executa a multiplicação de duas ou mais variáveis booleanas. Uma operação AND somente vai gerar uma saída em nível lógico 1 se, e somente se, todas as variáveis de entrada estiverem em 1. Para qualquer outro caso em que uma das entradas for 0, a saída será 0. A expressão booleana da operação AND para duas variáveis é S=A⋅B Nessa expressão, o sinal (⋅⋅) representa a operação booleana AND e não a operação de multiplicação. Entretanto a operação AND sobre variáveis booleanas equivale à multiplicação convencional. A expressão acima é lida como: “S é igual a A AND B”. Para entendermos melhor a operação AND utilizaremos o circuito da figura 3.5. 13 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Convenções: Chave aberta  Nível lógico 0 Chave fechada  Nível lógico 1 LED apagado  Nível lógico 0 LED aceso  Nível lógico 1 Figura 3.5: Circuito representativo da operação AND Analisando rapidamente o circuito acima, verifica-se que o LED só ascenderá se ambas as chaves estiverem fechadas, qualquer outra combinação resultará no LED apagado. Abaixo é apresentada a tabela verdade da operação AND para 2 variáveis. A 0 0 1 1 B 0 1 0 1 S 0 0 0 1 O circuito que executa a tabela verdade da operação AND é a porta AND. Este circuito lógico executa a operação AND para duas ou mais entradas. A figura 3.6 mostra o símbolo lógico para uma porta AND de duas entradas. Figura 3.6: Símbolo de uma porta AND de duas entradas 3.3.1 Resumo da Operação AND A operação AND é realizada da mesma maneira que a multiplicação convencional de 1s e 0s. • Uma porta AND é um circuito lógico que realiza uma operação AND sobre as entradas do circuito. • A saída de uma porta AND será 1 somente quando todas as entradas forem 1, para todos os outros casos, a saída será 0. • A expressão S = A ⋅ B é lida como “S é igual a A AND B”. • Exercício 3.2: Determine a forma de onda de saída de uma porta AND de duas entradas cujas formas de onda estão na figura 3.7. 14 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 3.7: Formas de onda para o exercício 2 3.4 Operação NOT e Inversor A operação NOT é aquela que inverte completamente o estado de uma variável, ou seja, se uma variável A é igual a 1, após uma operação NOT esta variável será 0. A operação NOT é a única que pode ser realizada sobre apenas uma variável. A operação NOT é representada pela expressão abaixo. S=A A barra sobre o nome da variável representa a operação de inversão. Está expressão é lida como “S é igual a A negado”, ou “S é igual ao inverso de A”, ou “S é igual ao complemento de A”. Uma outra forma para a expressão da operação NOT é a que em vez de usar uma barra sobre a variável, utiliza um apóstrofo (‘). S = A' Ambos são usados como indicadores de operação de inversão. O circuito representativo para operação NOT está apresentado na figura 3.8, sua análise nos traz uma melhor compreensão sobre esta operação. Convenções: Chave aberta  Nível lógico 0 Chave fechada  Nível lógico 1 LED apagado  Nível lógico 0 LED aceso  Nível lógico 1 Figura 3.8: Circuito representativo da operação NOT No circuito sempre que a chave for fechada (nível lógico 1) o LED se apagará (nível lógico 0), isto é exatamente o que a operação NOT realiza sobre uma variável. O que antes era 0, após a operação passa a ser 1 e vice-versa. A tabela verdade para a operação NOT está representada abaixo. A 0 1 S 1 0 O circuito lógico que realiza a operação NOT é o inversor, cujo seu símbolo está representado na figura 3.9. 15 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 3.9: Símbolo de um inversor 3.5 Operação NOR e Porta NOR A operação NOR é a composição da operação OR com a operação NOT, ou seja, é a operação OR com a saída invertida. Para esta operação temos a seguinte expressão. S = A+B Abaixo temos a tabela verdade para a operação NOR. A 0 0 1 1 B 0 1 0 1 S 1 0 0 0 Na figura 3.10 temos a porta lógica que executa a função NOR para 2 variáveis. Figura 3.10: Símbolo de uma porta NOR de duas entradas Podemos formar, a partir da definição da operação NOR, uma porta NOR utilizando uma porta OR e um inversor conectado a sua saída conforme visto na figura 3.11. Figura 3.11: Porta NOR formada pela combinação de uma OR e um Inversor 3.6 Operação NAND e Porta NAND A operação NAND é a composição da operação AND com a operação NOT, ou seja, é a operação AND com a saída invertida. Para esta operação temos a seguinte expressão. S = A⋅B A tabela para a função NAND é apresentada abaixo. 16 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A 0 0 1 1 B 0 1 0 1 S 1 1 1 0 Na figura 3.12 temos a porta lógica da operação NAND. Figura 3.12: Símbolo de uma porta NAND de duas entradas Por definição podemos formar uma porta NAND a partir de uma AND com um inversor conectado a sua saída, conforme visto na figura 3.13. Figura 3.13: Porta NAND formada pela combinação de uma AND e um Inversor Exercício 3.3: Esquematize os circuitos representativos das funções NOR e NAND. 17 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 4 DESCRIÇÃO E ANÁLISE DE CIRCUITOS LÓGICOS Qualquer circuito lógico, independentemente de sua complexidade, pode ser descrito usando apenas as três operações booleanas básicas, pois as operações OR, AND e NOT são blocos fundamentais dos sistemas digitais. Entretanto fazemos uso, também, das operações NOR e NAND para descrever os circuitos digitais. 4.1 Precedência de Operador A expressão que descreve um circuito pode apresentar todas as operações lógicas, então como interpretar uma expressão S = A ⋅ B + C? Podemos interpretar de duas formas: (1) Uma operação AND de A com a soma lógica B + C. (2) Uma operação OR de A ⋅ B com C. Para evitar esta confusão, sempre que tiver uma expressão contendo as operações AND e OR, a operação AND tem prioridade a menos que existam parênteses na expressão. Nas expressões NOR e NAND esta confusão desaparece naturalmente, pois a barra de negação coloca em evidência qual a operação deve ser realizada primeiro. Uma dica que sempre ajuda é a de colocar entre parênteses as operações AND, NAND e NOR. 4.2 Expressões Booleanas Obtidas de Circuitos Lógicos Como todo circuito lógico executa uma expressão booleana, então a partir de um circuito podemos obter a expressão que ele executa. Tal procedimento é explicado através do circuito abaixo. Figura 4.1: Circuito lógico No circuito da figura 3.13 a saída S1 é o produto A ⋅ B pois se trata de uma porta AND. Como S1 está ligada a uma das entradas de uma porta OR de duas entradas, pertencente à segunda parte do circuito, então a expressão de S (que é a última saída do circuito) será S = S1 + C. Substituindo a expressão de S1 nesta última, temos que a expressão booleana do circuito da figura 3.13 é S = (A ⋅ B) + C Exercício resolvido 4.1: Escreva a expressão booleana executada pelo circuito da figura 4.2. 18 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 4.2: Circuito lógico exercício resolvido 4.1 Escrevendo as expressões para cada bloco básico temos: S1 = A + B; S2 = C + D e S = S1 ⋅ S2 Substituindo as expressões de S1 e S2 em S, chegamos a expressão final deste circuito: S = (A + B) ⋅ ( C + D) Exercício resolvido 4.2: Escreva a expressão booleana executada pelo circuito da figura 4.3. Figura 4.3: Circuito lógico exercício resolvido 4.2 Escrevendo as expressões para cada bloco lógico temos: S1 = A ⋅ B ; S2 = A ⋅ B ; S 3 = C + D ; S4 = S1 + S2 + C e S = S3 ⋅ S4 Substituindo todas as expressões em S temos a expressão final S = [ ( A ⋅ B ) + ( A ⋅ B ) + C ] ⋅ (C + D ) 4.3 Circuitos Lógicos Obtidos de Expressões Booleanas 19 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A partir de qualquer expressão booleana é possível desenhar um circuito lógico que a executa. O método consiste em: Identificar o número de portas lógicas existentes na expressão; Identificar as variáveis de entrada desta portas, respeitando a precedência de operador ou os parênteses, colchetes e assim por diante; • Desenhar as portas lógicas e efetuar as ligações conforme a expressão. • • Para exemplificar este procedimento, vamos encontrar o circuito lógico que executa a expressão S = ( A + B ) ⋅C ⋅(B + D ) Na expressão identificamos duas portas OR de duas entradas e uma porta AND de três entradas: (1) Porta OR de expressão S1 = A + B , (2) porta OR de expressão S2 = B + D e (3) porta AND de expressão S = S1 ⋅ C ⋅ S 2 . Com base nestas informações podemos desenhar o circuito. Figura 4.4: Circuito lógico Exercício resolvido 4.3: Desenhe o circuito que executa a expressão booleana S = A ⋅ B ⋅C + ( A + B ) ⋅C . Analisando está expressão, identifica-se quatro portas lógicas com as seguintes expressões: (1) porta AND S1 = A ⋅ B ⋅ C ; (2) porta OR S2 = A + B ; (3) porta AND S3 = S2 ⋅ C e por fim (4) porta OR S = S1 + S 3 . Desta forma o circuito é o da figura 4.5. Figura 4.5: Circuito lógico exercício resolvido 4.3 4.4 Tabelas Verdade Obtidas de Expressões Booleanas 20 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A melhor maneira de analisar uma expressão booleana é através da sua tabela verdade, pois (1) permite analisar uma combinação de cada vez, (2) permite que se confira facilmente o trabalho e (3) quando o trabalho se encerra, dispõe-se de uma tabela que ajuda na verificação de erros na implementação do circuito lógico. Para extrairmos a tabela verdade de uma expressão seguimos o seguinte procedimento: Montamos o quadro de possibilidades (o que depende do número de variáveis); Montamos uma coluna para cada variável negada; Montamos uma coluna para cada membro da expressão (portas lógicas); Preenchemos estas colunas com seus resultados; Montamos uma coluna para o resultado final; Preenchemos esta coluna com os resultados finais. • • • • • • Para melhor entendermos o procedimento, vamos analisar a expressão S = A ⋅ B ⋅C + A ⋅ D + A ⋅ B ⋅ D . Temos na expressão 4 variáveis, logo teremos 24 = 16 possibilidades de combinação de entrada e ainda teremos as variáveis A, B e D negadas. Numa rápida inspeção verificamos que esta expressão está construída em cima de quatro portas lógicas: 2 portas AND de 3 entradas, 1 porta AND de 2 entradas e 1 porta OR de 3 entradas, logo teremos 4 colunas na nossa tabela para os membros da expressão. A B C D A B D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 x = A ⋅B⋅ C y = A ⋅D z = A ⋅B⋅D S = x+ y+z 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 Exercício resolvido 4.4: Levante a tabela verdade da expressão S = ( A + B ) ⋅ ( B ⋅ C ) . Analisando a expressão verificamos que a expressão tem três variáveis necessitando, assim, nossa tabela de 23 = 8 possibilidades e verificamos ainda que está expressão está baseada em 1 porta lógica OR de 2 entradas, em 1 porta NAND de 2 entradas e em 1 porta AND de 2 entradas, de posse desses dados montamos a tabela abaixo. 21 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 x = A+B y = B⋅C S = x⋅y 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 Exercício 4.1: Levante a tabela verdade da expressão S = [ ( A + B ) ⋅ C ] + [ D ⋅ ( B + C ) ] . Exercício 4.2: Prove as identidades abaixo relacionadas: a) A ⋅ B ≠ A ⋅ B b) A + B ≠ A + B c) A ⋅ B = A + B d) A + B = A ⋅ B 4.5 Expressões Booleanas Obtidas de Tabelas Verdade Em projetos práticos necessitamos representar situações através de tabelas verdade, ou seja, um projeto parte, primeiramente, da análise das situações de entradas controladas, por exemplo, por sensores de nível e a resposta final na saída, que pode ser, por exemplo, uma bomba de recalque acionada através de um circuito digital. De posse disso podemos implementar um circuito tendo por base a expressão booleana obtida da tabela verdade. O procedimento para obtenção de uma expressão a partir de uma tabela leva em consideração apenas as saídas que estão em nível alto (nível lógico 1). Em cada saída de nível alto é montada uma expressão para operação AND contendo as variáveis que geram esta saída, sendo que as variáveis de entrada que estiverem em nível baixo (nível lógico 0) devem ser invertidas. Por exemplo, uma dada saída em nível alto é gerada pela combinação de três variáveis: A = 0, B = 1 e C = 0. A expressão gerada por estas variáveis seria S = A ⋅ B ⋅ C . Além disso, todas as expressões geradas pelas saídas de nível alto devem ser somadas formando assim a expressão booleana para que se possa construir o circuito lógico que gerará as saídas previstas pela tabela verdade. Para demonstrar este procedimento, vamos obter a expressão da tabela verdade abaixo. 22 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A 0 0 1 1 B 0 1 0 1 S 0 1 1 1 Observando a tabela concluímos que três casos geram a saída igual a 1. Assim temos os casos 01, 10 e 11, que geram a expressão booleana final S = A⋅B + A⋅B + A⋅B. Verificamos que este método gera uma expressão através da soma de produtos, ainda é importante observar que este método não gera uma expressão simplificada (com menos termos), pois a tabela verdade usada como exemplo é a da operação OR e podemos constatar que a expressão obtida é bem mais complicada que a da operação OR. Entretanto existem técnicas que podem ser usados para simplificar uma expressão gerada por este método, as quais serão vistas mais adiante. Exercício resolvido 4.5: Determine a expressão que executa a tabela abaixo. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 1 0 1 0 0 0 1 1 Usando o procedimento descrito chegamos a expressão S = A ⋅ B ⋅C + A ⋅ B ⋅C + A ⋅ B ⋅C + A ⋅ B ⋅C . 4.6 Bloco Lógico XOR Este é mais uma porta lógica elementar (embora podemos considerar este bloco como um circuito combinacional), que tem a propriedade de gerar uma saída em nível alto sempre que as variáveis de entrada estiverem em níveis opostos. Assim podemos montar a tabela verdade para esta operação, também chamada de OU-Exclusivo (do inglês exclusive-OR). 23 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A 0 0 1 1 B 0 1 0 1 S 0 1 1 0 Da tabela obtemos a expressão característica: S = A⋅B + A⋅B A partir da expressão obtemos o circuito da figura 4.6. Figura 4.6: Circuito lógico XOR A expressão característica da operação XOR é S = A⊕B Onde se lê “S é igual a A XOR B”. Por ser uma operação fundamental, também há um símbolo lógico que a representa. Figura 4.7: Símbolo de uma porta XOR 4.7 Bloco Lógico XNOR O bloco XNOR opera de forma completamente oposta do bloco XOR. Esta porta lógica gera uma saída em nível alto somente quando as variáveis de entrada estiverem no mesmo nível lógico. Isto é resumido na sua tabela verdade, apresentada abaixo. A 0 0 1 1 B 0 1 0 1 24 S 1 0 0 1 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Da tabela verdade vem a expressão: S = A⋅B + A⋅B A partir da expressão obtemos o circuito da figura 4.8. Figura 4.8: Circuito lógico XNOR A expressão característica da operação XNOR, também conhecida como coincidência ou NOU-exclusivo (do inglês exclusive-NOR), é S=AüB Onde se lê “S é igual a A XNOR B”. Símbolo lógico desta operação é apresentado na figura 4.9. Figura 4.9: Símbolo de uma porta XNOR As operações XOR e XNOR são complementares, ou seja: S = A ü B =A⊕B IMPORTANTE! As operações XOR e XNOR são definidas apenas para duas variáveis, diferentemente das outras operações que podem ter mais variáveis. 4.8 Circuitos para Habilitar / Desabilitar As quatro portas básicas podem habilitar ou desabilitar a passagem de um sinal aplicado à entrada A, sob o controle de um nível lógico na entrada B, chamada de entrada de controle. Na figura 4.10 é apresentado o resumo da portas lógicas básicas desempenhando as funções de habilitar/desabilitar. 25 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira HABILITAR DESABILITAR Figura 4.10: Função habilitar/desabilitar Exercício resolvido 4.6: Projete um circuito lógico que permita a passagem de um sinal para a saída quando as entradas de controle B e C forem ambas em nível ALTO; caso contrário, a saída permanecerá em nível BAIXO. Para resolver este problema devemos consultar as possibilidades de uso das portas lógicas na função habilitar/desabilitar apresentadas na figura 9.1 que permita a passagem de um sinal sem inversão quando os controles estiverem em nível ALTO e que, na condição desabilitada, a saída esteja em nível BAIXO. A porta que satisfaz estas condições é a porta AND, que neste caso deve ter três entradas – uma para o sinal de entrada e duas para o controle. Exercício 4.3: Projete um circuito lógico que tenha duas entradas de controle e que permita a passagem de um sinal para saída apenas quando uma entrada, mas não ambas, for nível ALTO; caso contrário a saída permanecerá em nível ALTO. 26 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 5 ÁLGEBRA DE BOOLE Os fundamentos da Eletrônica Digital estão na Álgebra de Boole. É através desta álgebra que implantamos os circuitos digitais. No capítulo anterior foi estudado o método para se encontrar a expressão booleana a partir de uma tabela verdade, entretanto não se preocupou em simplifica-la, o que traria economia na implantação do circuito. Para efetuarmos a simplificação de uma expressão é necessário conhecer os teoremas, os postulados, as identidades e as propriedades da Álgebra de Boole. 5.1 Postulados da Álgebra de Boole 5.1.1 Postulado da Complementação 1°. Se A = 0  A = 1 2°. Se A = 1  A = 0 Através deste postulado podemos estabelecer a seguinte identidade A=A O bloco lógico que executa o postulado da complementação é o inversor. 5.1.2 Postulado da Adição Este postulado mostra como são as regras de adição dentro da Álgebra de Boole. 1°. 0 + 0 = 0 2°. 0 + 1 = 1 3°. 1 + 0 = 1 4°. 1 + 1 = 1 A partir deste postulado estabelecemos as seguintes identidades: 1. A + 0 = A 2. A + 1 = 1 3. A + A = A 4. A + A = 1 O bloco lógico que executa o postulado da adição é a porta OR. 5.1.3 Postulado da Multiplicação 27 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Este postulado determina as regras de multiplicação booleana. 1°. 0 ⋅ 0 = 0 2°. 0 ⋅ 1 = 0 3°. 1 ⋅ 0 = 0 4°. 1 ⋅ 1 = 1 Deste postulado derivam as seguintes identidades: 1. A ⋅ 0 = 0 2. A ⋅ 1 = A 3. A ⋅ A = A 4. A ⋅ A = 0 O bloco lógico que executa o postulado da multiplicação é a porta AND. 5.2 Propriedades da Álgebra de Boole As propriedades comutativa, associativa e distributiva da álgebra convencional também valem na Álgebra de Boole. 5.2.1 Propriedade Comutativa A ordem em que aparecem as variáveis nas operações OR e AND não importa – o resultado é o mesmo. Operação OR: A + B = B + A Operação AND: A ⋅ B = B ⋅ A 5.2.2 Propriedade Associativa A propriedade associativa diz que podemos agrupar as variáveis em expressões AND ou OR do mo que desejarmos. Operação OR: A + ( B + C ) = ( A + B ) + C = A + B + C Operação AND: A ⋅ ( B ⋅ C ) = ( A ⋅ B ) ⋅ C = A ⋅ B ⋅ C 5.2.3 Propriedade Distributiva 28 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A propriedade distributiva diz que uma expressão pode ser expandida multiplicando termo a termo, da mesma forma que a álgebra convencional. Desta forma podemos colocar em evidência termos comuns e assim fatorar uma expressão. Propriedade distributiva a: A ⋅ ( B + C ) = A ⋅ B + A ⋅ C Propriedade distributiva b: ( A + B ) ⋅ ( C + D ) = A ⋅ C + A ⋅ D + B ⋅ C + B ⋅ D 5.3 Teoremas de De Morgan 5.3.1 Primeiro Teorema de De Morgan O 1° teorema de De Morgan afirma que o complemento do produto é igual a soma dos complementos. (A⋅B) = A + B Este teorema pode ser estendido para mais de duas variáveis. 5.3.2 Segundo Teorema de De Morgan O 2° teorema de De Morgan afirma que o complemento da soma é igual ao produto dos complementos. A ⋅B = (A + B) Da mesma forma que o teorema anterior, este pode ser estendido para mais de duas variáveis. 5.4 Identidades Auxiliares As identidades descritas a seguir não possuem equivalente na álgebra convencional. 5.4.1 Identidade Auxiliar 1 Essa identidade é expressa por A + A⋅B = A Podemos provar esta identidade de duas maneiras: (1) comparando valores em uma tabela verdade ou (2) através de álgebra. Vamos provar esta identidade através da álgebra. Utilizando a propriedade distributiva temos: A ⋅ (1 + B ) = A 29 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Do postulado da soma temos que 1 + B = 1, logo temos A ⋅1 = A ∴ A + A ⋅ B = A 5.4.2 Identidade Auxiliar 2 Essa identidade é expressa por A + A⋅B = A + B Vamos também provar esta propriedade através da álgebra. A + A ⋅ B = ( A + A ⋅ B ) =  Identidade X = X [ A ⋅ ( A ⋅ B ) ] =  2° teorema de De Morgan [ A ⋅ ( A + B ) ] =  1° teorema de De Morgan aplicado no parêntese ( A ⋅ A + A ⋅ B ) =  Propriedade distributiva ( A ⋅ B ) =  Identidade A ⋅ A = 0 A+B  1° teorema de De Morgan 5.4.3 Identidade Auxiliar 3 Esta identidade é representada por A + A⋅B = A + B A demonstração dessa propriedade é análoga a da identidade 2 e deixamos a cargo do leitor. 5.4.4 Identidade Auxiliar 4 Está é a ultima identidade a ser estudada e é expressa por ( A + B ) ⋅( A + C ) = A + B ⋅C A prova desta identidade fica a cargo do leitor. 5.5 Equivalência de Blocos Lógicos A otimização da utilização de circuitos integrados comerciais deve ser uma busca constante na concepção de sistemas digitais. O uso da equivalência de blocos lógicos proporciona a redução de circuitos integrados que desempenham apenas uma função lógica, ampliando sua capacidade ao utiliza-los para desempenhar outras funções lógicas apenas mudando algumas conexões ou associando-os a outros integrados de funções 30 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira distintas. Este remanejo de circuitos integrados reflete-se num menor custo, tanto financeiro, como de corrente consumida pelo sistema. Os resultados apresentados a seguir são conseqüências diretas da Álgebra de Boole. 5.5.1 Inversor a Partir de Uma Porta NAND A 1° possibilidade de se obter um inversor a partir de uma porta NAND é a de interligar as suas entradas, conforme mostra a figura 5.1. Figura 5.1: Inversor a partir de uma porta NAND (1) A 2° possibilidade é a de deixar um terminal para conexão e outro ligar a um nível alto, conforme mostra a figura 5.2. Figura 5.2: Inversor a partir de uma porta NAND (2) 5.5.2 Inversor a Partir de Uma Porta NOR Da mesma forma que para a porta NAND, também existem duas possibilidades para se obter um inversor a partir de uma porta NOR. A 1° possibilidade é obtida da mesma forma que para a porta NAND. Veja a figura 5.3. Figura 5.3: Inversor a partir de uma porta NOR (1) A 2° possibilidade é deixar um terminal livre para a entrada da variável e a outra conectada a um nível baixo, conforme mostra a figura 5.4. 31 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 5.4: Inversor a partir de uma porta NOR (2) 5.5.3 Portas NAND e AND a Partir de Portas OR e NOR e Inversores As duas equivalências a seguir são conseqüências diretas do primeiro teorema de De Morgan. Na figura 5.5 temos uma porta NAND obtida a partir de uma porta OR e dois inversores. Figura 5.5: Porta NAND a partir de uma OR e dois inversores A saída de uma porta NAND negada gera uma porta AND, então se no circuito da figura 5.5 substituirmos a porta OR por uma NOR o resultado será um circuito equivalente ao de uma porta AND. Veja a figura 5.6 Figura 5.6: Porta AND a partir de uma NOR e dois inversores Estas equivalências podem ser estendidas para portas com mais de 2 variáveis. 5.5.4 Portas NOR e OR a Partir de Portas AND e NAND e Inversores A partir do segundo teorema de De Morgan, podemos gerar as equivalências a seguir. Na figura 5.7 temos uma porta NOR gerada a partir de dois inversores e de uma porta AND. 32 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 5.7: Porta NOR a partir de uma AND e dois inversores Na figura 5.8 temos uma porta OR obtida a partir de uma NAND e 2 inversores. Figura 5.8: Porta OR a partir de uma NAND e dois inversores Estas equivalências podem ser estendidas para portas com mais de 2 variáveis. Exercício resolvido 5.1: Desenhe o circuito XOR apenas como portas NAND. Para resolver este exercício tem que tomar por base o circuito apresentado na figura 4.6 e redesenhar o circuito substituindo cada bloco lógico pelo equivalente composto apenas por portas NAND. Veja figura 5.9. Figura 5.9: Circuito XOR utilizando apenas portas NAND (1) O circuito da figura 5.9 pode ainda ser minimizado devido ao surgimento de inversores em série. A figura 5.10 mostra o circuito final com a simplificação feita. 33 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 5.10: Circuito XOR utilizando apenas portas NAND (2) 34 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 6 SIMPLIFICAÇÃO DE EXPRESSÕES BOOLEANAS No capítulo 4 foi explicado o método para se extrair a expressão booleana a partir de uma tabela verdade. Como explicado, a expressão obtida é na forma de soma de produtos e não está na sua forma simplificada. Neste capítulo serão abordadas duas técnicas usadas na simplificação de expressões booleanas: a simplificação algébrica e a simplificação pelo mapa de Karnaugh. 6.1 Simplificação Algébrica Os postulados, identidades, propriedades e teoremas da álgebra de Boole podem ser usados diretamente na simplificação de expressões lógicas, mas nem sempre é óbvio qual teorema (etc) deve ser aplicado para obter o resultado mais simplificado. Além disso, não é fácil afirmar que uma expressão está na sua forma mais simplificada. As simplificações algébricas são, muitas vezes, um processo de tentativa e erro e neste caso um axioma prático sempre válido é: tente alguma coisa! Os exemplos a seguir ilustram a aplicação da álgebra de Boole na tentativa de simplificação de expressões booleanas. Observação: Daqui em diante iremos suprimir o ponto que indica uma operação AND da mesma forma que fazemos na álgebra convencional para representar uma multiplicação. Exemplo 6.1: Simplifique a expressão Z = ABC + AB + AB C . Como no primeiro e no terceiro termo tem AC em comum, colocamos AC em evidência obtendo: Z = AC( B + B ) + AB como B + B = 1 Z = AC + AB Exemplo 6.2: Simplifique a expressão S = AB C + AB C + ABC . No primeiro e no segundo termo temos em comum AB , colocando em evidência AB temos: S = AB ( C + C ) + ABC S = AB (1 ) + ABC S = AB + ABC Colocando em evidencia A, temos: S = A( B + BC ) Aplicando o teorema X + XY = X + Y , temos: 35 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira S = A( B + C ) Uma outra forma de simplificar esta expressão é adicionar mais um termo AB C o que nada altera a expressão original pois X + X = X. Assim temos: AB C + AB C + AB C + ABC Colocando em evidência AB no primeiro e no segundo termo e AC no terceiro e no quarto termo temos: AB ( C + C ) + AC( B + B ) Obtemos assim: S = AB + AC Ou S = A( B + C ) Exemplo 6.3: Simplifique a expressão W = ABC + AC + AB . Colocando em evidência A temos: W = A( BC + C + B ) Aplicando a identidade X = X temos: W = A[ BC + ( C + B )] Aplicando o segundo teorema de De Morgan temos: W = A( BC + BC ) Aplicando o postulado X + X = 1 temos: W =A Nos exemplos anteriores as expressões já estavam na forma de soma de produtos (como aquelas obtidas de tabelas verdade), mas podem ocorrer expressões que não estejam nesta forma, por exemplo, as obtidas de circuitos lógicos prontos. Quando isso ocorrer é necessário aplicar as propriedades distributivas e associativas até obter a redução da expressão na forma de soma de produtos. Veja o exemplo abaixo. Exemplo 6.4: Simplifique a expressão S = ( Q + R )( Q + R ) . Aplicando a propriedade distributiva temos: 36 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira S = Q Q + QR + Q R + R R Como X ⋅ X = 0 , temos: S = Q R + QR Ou ainda: S = A⊕B. 6.2 Mapa de Karnaugh O mapa de Karnaugh (ou mapa-K) é um método gráfico usado para simplificar uma equação lógica ou para converter uma tabela verdade no seu circuito lógico correspondente, de uma forma simples e metódica. O mapa-K, assim como uma tabela verdade, é um meio de mostrar a relação entre as entradas lógicas e a saída desejada. Portanto existem mapas para 2 variáveis, 3 variáveis e 4 variáveis1 (mapas para mais de 4 variáveis não serão estudados). 6.2.1 Mapa-K para 2 Variáveis Para se usar um mapa-K a primeira coisa, a saber, é como monta-lo. Para ilustrar o procedimento da montagem de um mapa-K vamos montar uma tabela verdade de duas variáveis com saídas genéricas e preencher o mapa-K de duas variáveis com estas saídas. A 0 0 1 1 B 0 1 0 1 S S0 S1 S2 S3 Figura 6.1: Mapa-K para duas variáveis Observe que cada linha da tabela verdade corresponde a um quadro do mapa-K sendo estes preenchidos pelos valores das saídas correspondentes a essas linhas e que cada quadro corresponde à intersecção de duas variáveis distintas. Então quando temos 1 Devido à complexidade de mapas de Karnaugh com mais de 4 variáveis, estes não serão estudados no presente texto. 37 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira na tabela verdade a condição A = 0 e B = 0, o valor da saída correspondente a está condição deve ser inserido no quadro onde há a intersecção das variáveis A e B . 6.2.2 Mapa-K para 3 Variáveis Da mesma forma que foi feito na seção 6.2.1 vamos montar um mapa-K de três variáveis a partir de uma tabela verdade genérica. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S S0 S1 S2 S3 S4 S5 S6 S7 Figura 6.2: Mapa-K para três variáveis Observe que as saídas da tabela verdade não são usadas na seqüência no preenchimento dos quadros do mapa-K. Isso se deve ao fato de que para o mapa-K funcionar, a mudança de um quadro para o outro, apenas um bit deve variar. Então para respeitar esta condição devemos, após preenchermos o mapa-K com quarta linha da tabela verdade, pular para a sétima linha seguir a seqüência até a oitava linha e depois voltar para quinta e sexta linhas. 6.2.3 Mapa-K para 4 Variáveis Vamos apresentar o mapa-K de quatro variáveis seguindo o mesmo procedimento descrito nas seções 6.2.1 e 6.2.2. Abaixo está apresentada uma tabela verdade de 4 variáveis e na figura 6.3 o mapa-K para quatro variáveis. 38 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 Figura 6.3: Mapa-K para quatro variáveis A seqüência de inserção das saídas no mapa-K de quatro variáveis também deve respeitar a variação de apenas um bit de quadro para quadro. 6.3 Simplificação pelo Mapa de Karnaugh A expressão para a saída de uma tabela verdade pode ser simplificada combinadose adequadamente os quadros do mapa-K que contenham 1. O processo de combinação desses 1s é denominado de agrupamento. 6.3.1 Agrupamento de 2 Quadros (pares) Agrupando-se um par de 1s adjacentes (verticalmente ou horizontalmente) em um mapa-K, elimina-se a variável que aparece nas formas complementada e nãocomplementada. Este procedimento é mostrado na figura 6.4(a-d). 39 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira (a) (b) (c) (d) Figura 6.4: Agrupamento de pares para mapa-K de 3 e 4 variáveis Na figura 6.4(a) agrupando os únicos 1s do mapa-K se verifica que a única variável que aparece na forma complementada e não-complementada é a A portanto a expressão simplificada obtida é a operação AND que tem por entrada as variáveis B e C (pois há intersecção dos quadros que elas pertencem), assim temos a expressão a = BC . No mapa-K da figura 6.4(b) eliminamos a variável C pelos mesmos motivos que eliminamos a variável A no mapa da figura 6.4(a), assim obtemos a expressão b = A B . No mapa-K da figura 6.4(c) retiramos a expressão c = B C . Na figura 6.4(d) temos um mapa-K de 4 variáveis e agrupando os 1s adjacentes encontramos duas operações AND d1 = A B C e então faremos uma soma OR destas duas expressões e obtemos d = A B C + AB D que é uma expressão na forma de soma de produtos. Sempre que um mapa-K gerar mais de um termo, devemos fazer uma soma OR entre eles. d 2 = AB D Exercício 6.1: Encontre a expressão simplificada a partir da tabela abaixo. A 0 0 1 1 B 0 1 0 1 S 1 1 0 0 Exercício 6.2: Encontre a expressão simplificada a partir da tabela abaixo. 40 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 1 1 0 0 0 0 1 1 6.3.2 Agrupamento de 4 Quadros (quartetos) No agrupamento de um quarteto de 1s adjacentes, eliminam-se duas variáveis que aparecem nas formas complementada ou não-complementada. O procedimento é descrito na figura 6.5(a-d). (a) (b) (c) (d) Figura 6.5: Agrupamento de quartetos para mapa-K de 3 e 4 variáveis O agrupamento de 1s no mapa-K da figura 6.5(a) vai gerar a expressão a = C , pois as variáveis A e B aparecem na sua forma complementada e não-complementada. No agrupamento do mapa-K da figura 6.5(b) obtemos a expressão b = AB . Para o mapaK da figura 6.5(c), o agrupamento gera a expressão c = AD e para o mapa-K da figura 41 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 6.5(d) a expressão obtida é d = B ⋅ D . Veja que a expressão d admite uma simplificação pelo 2° teorema de De Morgan gerando a expressão d = A + B . 6.3.3 Agrupamento de 8 Quadros (octetos) O agrupamento de oito quadros contendo 1s elimina três variáveis que aparecem na forma complementada e não-complementada. (a) (b) (c) (d) Figura 6.5: Agrupamento de octetos para mapa-K de 4 variáveis No mapa-K da figura 6.6(a) as variáveis eliminadas são: A, C e D. Com isso geramos a expressão a = B . Para o mapa-K da figura 6.6(b) geramos a expressão b = C , no da figura 6.6(c) temos a expressão c = B e para o da figura 6.6(d) a expressão é d =D. 6.3.4 Hierarquia de Agrupamentos O processo de simplificação deve usar o menor número de grupos para envolver todos os 1s, abaixo é proposto um roteiro de simplificação. • Para duas variáveis 42 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 1° Pares → Saída: uma variável 2° Termo isolado → Saída: operação AND de duas variáveis • Para três variáveis 1° Quartetos → Saída: uma variável 2° Pares → Saída: função AND de duas variáveis 3° Termo isolado → Saída: função AND de três variáveis • Para quatro variáveis 1° Octetos → Saída: uma variável 2° Quartetos → Saída: função AND de duas variáveis 3° Pares → Saída: função AND de três variáveis 4° Termo isolado → Saída: função AND de quatro variáveis Exercício 6.3: Encontre a expressão simplificada através do mapa-K para as saídas da tabela abaixo. A 0 0 1 1 B 0 1 0 1 S1 1 1 1 0 S2 1 0 1 1 S3 1 1 0 0 Exercício 6.4: Encontre a expressão simplificada através do mapa-K para as saídas da tabela abaixo. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S1 1 0 1 1 1 0 1 0 S2 0 1 0 1 1 1 1 0 6.4 Condições de Irrelevância (don’t-care) É chamada de condição irrelevante (don’t-care) a situação de entrada onde a saída pode assumir, indiferentemente, 0 ou 1. Esta condição, representada por X na saída, decorre da impossibilidade prática do caso, ou seja, são condições de entrada que nunca ocorrerão, dessa forma é indiferente se a saída assume 0 ou 1 para esses casos. O valor X=1 ou X=0 a ser adotado no mapa-K deve ser aquele que possibilita o melhor agrupamento e conseqüentemente maior simplificação. Convém ressaltar que, em uma tabela verdade, podemos ter várias condições irrelevantes que devem ser consideradas independentes. 43 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Exercício resolvido 6.1: Encontre a expressão simplificada a partir da tabela verdade abaixo. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S X 1 1 1 0 0 0 0 Transpondo os resultados da tabela verdade para o mapa-K, temos: Figura 6.6: Mapa-K para o exercício resolvido 6.1 Vemos pelo mapa-K que o melhor valor a ser dado à condição X é o 1, pois assim obtemos um quarteto em vez de dois pares quando X = 0, portanto encontramos a expressão S = A . Exercício 6.5: Encontre a expressão simplificada a partir da tabela verdade abaixo. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 0 0 X X 1 1 1 6.5 Agrupamento de Zeros A diferença do agrupamento de 0s é que se obtém o resultado complementado em relação ao agrupamento de 1s. Todo os métodos descritos para o agrupamento de 1s podem ser utilizados na simplificação de expressões usando o agrupamento de 0s. 44 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Exercício resolvido 6.2: Encontre a expressão simplificada negada a partir da tabela verdade abaixo. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 1 0 1 1 1 1 1 Transpondo os resultados da tabela verdade para o mapa-k, obtemos: Figura 6.7: Mapa-K para o exercício resolvido 6.2 A partir do agrupamento de 0s no mapa-k chegamos a expressão S = A C . Caso fosse agrupados 1s,a expressão seria S = A + C . Verifique. Exercício 6.6: Encontre, para a tabela abaixo, a expressão simplificada negada e nãonegada. Verifique se as expressões são verdadeiras (sugestão: monte uma tabela verdade a partir das expressões). A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 45 S 1 1 1 0 1 0 0 0 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 7 CARACTERÍSTICAS BÁSICAS DE CIs DIGITAIS Os CIs digitais podem ser classificados de acordo como o principal componente eletrônico usado nos seus circuitos. CIs bipolares tem como principal elemento de circuito, transistores bipolares (NPN e PNP); já os CIs unipolares são construídos tendo por base transistores unipolares de efeito de campo (MOSFETs canal P e canal N) como elemento principal. Os CIs digitais são, muitas vezes, classificados, também, de acordo com a complexidade de seus circuitos, medida pelo número de portas lógicas equivalentes na sua construção. Existem atualmente seis níveis de complexidade, conforme mostra a tabela abaixo. Complexidade Integração em pequena escala (SSI) Portas por CI menos de 12 Integração em média escala (MSI) entre 12 e 99 Integração em grande escala (LSI) entre 100 e 9.99 Integração em escala muito grande (VLSI) entre 10.000 e 99.999 Integração em escala ultragrande (ULSI) entre 100.000 e 999.999 Integração em escala giga (GSI) 1.000.000 ou mais 7.1 Família TTL A família TTL (lógica transistor – transistor) é a principal família de CIs digitais bipolares e teve como antecessoras as famílias ECL1, HTL, DTL, entre outras. A série 74 padrão (ou standart) foi a primeira série de CIs TTL. A família TTL foi a principal família de CIs nas categorias SSI e MSI, mas, gradualmente, vem sendo substituída pela família CMOS. A família lógica TTL é composta por várias subfamílias ou séries. As principais diferenças entre as séries de CIs TTL tem a ver com suas características elétricas: dissipação de potência e velocidade de comutação. Não há diferença na disposição dos pinos ou na operação lógica realizada pelos circuitos internos. Abaixo temos uma tabela que relaciona o nome de cada uma das séries com o prefixo usado para identificar os diferentes CIs. Série TTL Prefixo Exemplo de CI TTL padrão 74 7404 (seis inversores) TTL Schottky 74S 74S04 (seis inversores) TTL Schottky de baixa potência 74LS 74LS04 (seis inversores) TTL Schottky avançada 74AS 74AS04 (seis inversores) TTL Schottky avançada de baixa potência 74ALS 74ALS04 (seis inversores) 1 Embora a família ECL não seja mais produzida em série comercial, ainda é utilizada para fins específicos como, por exemplo, memórias de alta velocidade. 46 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 7.2 Família CMOS Os CIs digitais de grande escala são fabricados, predominantemente, com tecnologia CMOS (complementar metal – óxido – semicondutor) devido à simplicidade e a forma compacta dos circuitos construídos com essa tecnologia. Um exemplo sobre a simplicidade de um circuito lógico CMOS pode ser feito através da comparação de um inversor TTL, composto por 4 resistores, 2 diodos e 4 transistores bipolares, com um inversor CMOS, composto apenas por 2 diodos e 2 transistores de efeito de campo, como se vê o inversor TTL supera em número de componentes o inversor CMOS. Assim como a família TTL, a família CMOS também é composta por várias séries, conforme a tabela abaixo. Série CMOS Prefixo Exemplo de CI CMOS com porta de metal 40 4001 (4 portas NOR) Porta de metal compatível pino a pino com TTL 74C 74C02 (4 portas NOR) Porta de silício compatível pino a pino com TTL, alta velocidade 74HC 74HC02 (4 portas NOR) Porta de silício, alta velocidade, compatível pino a pino e eletricamente com TTL 74HCT 74HCT02 (4 portas NOR) CMOS de altíssimo desempenho, não é compatível pino a pino nem eletricamente 74AC com TTL 74AC02 (4 portas NOR) CMOS de altíssimo desempenho, não é compatível pino a pino, mas é compatível 74ACT eletricamente compatível com TTL 74ACT02 (4 portas NOR) A série 4000 é a mais antiga série CMOS e não é compatível nem pino a pino nem eletricamente coma a família TTL. Já os CIs da série 74HCT são compatíveis tanto pino a pino como eletricamente com a família TTL, permitindo a conexão direta com dispositivos TTL sem que seja necessário nenhum tipo de circuito de interface. 7.3 Alimentação e Terra Os CIs digitais dispõem de dois pinos para alimentação, um para alimentação CC (corrente contínua) e outro para o terra. Essas conexões são necessárias para o correto funcionamento do CI. Para os CIs TTL temos o pino designado por VCC para a alimentação CC e o pino designado por GND para a conexão como o terra. A alimentação CC nos CIs CMOS é conectada ao pino designado por VDD e o terra ao pino VSS. 7.4 Faixas de Tensão para os Níveis Lógicos 47 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Os dispositivos TTL operam com uma tensão nominal de +5V (VCC = +5V). Para os dispositivos CMOS, a tensão de alimentação (VDD) pode estar situada numa faixa que vai +3V a +18V, embora +5V seja a tensão mais usada. Os fabricantes de CIs indicam quais as faixas de tensão que garantem os níveis lógicos 1 e 0. Estas faixas podem ser visualizadas na figura 7.1 para circuitos TTL e para os circuitos CMOS na figura 7.2. 5,0V __ LÓGICO 1 VCC = 5V 2,0V __ 0,8V __ 0V __ Indeterminado LÓGICO 0 Figura 7.1: Níveis lógicos de entrada e as faixas de tensão para CIs TTL 5,0V __ LÓGICO 1 3,5V __ Indeterminado VDD = 5V 1,5V __ LÓGICO 0 0V __ Figura 7.2: Níveis lógicos de entrada e as faixas de tensão para CIs CMOS 7.5 Entradas Não-Conectadas Os CIs TTL e CMOS exibem comportamentos diferentes quando suas entradas estão desconectadas do circuito (entradas flutuantes). Um CI TTL com uma entrada flutuante se comporta exatamente como se esta entrada estivesse em nível lógico 1, ou seja, o CI responde como se na entrada estivesse sendo aplicado um nível lógico alto, além disso, um circuito TTL é extremamente suscetível a sinais de ruídos que provavelmente afetarão de forma adversa o funcionamento do circuito. Se uma entrada de um circuito CMOS for deixada flutuante os resultados podem ser desastrosos. O CI pode se superaquecer e possivelmente se danificar. Por esta razão, todas as entradas de um CI CMOS devem ser conectadas a um nível lógico (alto ou baixo) ou à saída de outro CI. O nível lógico na saída de um CI CMOS com entrada flutuante é imprevisível, podendo oscilar como resultado do ruído captado pela entrada flutuante. 48 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 7.6 Lógica Positiva e Lógica Negativa As entradas dos circuitos lógicos são, muitas vezes, conectadas a uma diversidade de sensores e chaves, mas todas têm algo em comum: acoplam a suas saídas um nível alto ou um nível baixo quando acionados(as). Quando um sensor (ou chave) ao ser acionado acoplar a sua saída um sinal em nível alto, dizemos que este trabalha em lógica positiva. Na figura 7.3 temos um exemplo de uma chave operando em lógica positiva. Chave Acionada (estado ativo) → Nível Alto Chave Não-Acionada (estado inativo) → Nível Baixo Figura 7.3: Chave operando em lógica positiva Quando um sensor (ou chave) ao ser acionado acoplar a sua saída um sinal em nível baixo, dizemos que este trabalha em lógica negativa. Na figura 7.4 temos um exemplo de uma chave operando em lógica negativa. Chave Acionada (estado ativo) → Nível Baixo Chave Não-Acionada (estado inativo) → Nível Alto Figura 7.4: Chave operando em lógica negativa É importante observar nas figuras 7.3 e 7.4 que a saída dos circuitos estão num nível alto ou baixo conforme o estado das chaves (nunca deixam a saída desacoplada), portanto são circuitos que satisfazem a condição fundamental dos CIs digitais: não deixar a entradas flutuando. Uma observação também importante é que um circuito que foi projetado inicialmente para trabalhar em lógica negativa pode se tornar um circuito que trabalha em lógica positiva bastando para isso que se negue as entradas (através de inversores) e vice-versa. Isto está exemplificado na figura 7.5. 49 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira (a) (b) Figura 7.5: Os circuitos das figuras (a) e (b) geram a mesma saída A lógica positiva é mais usual no projeto de circuitos digitais e apresenta a vantagem de ser reconhecida de forma natural pelo mapa-K. 50 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 8 PROJETO DE CIRCUITOS COMBINACIONAIS O circuito combinacional é aquele em que a saída depende única e exclusivamente das combinações de entrada. As combinações de entrada e as saídas podem ser apresentadas de forma conveniente através da tabela verdade. Os circuitos combinacionais podem ser utilizados para solucionar problemas em que precisamos de resposta a partir de certas condições de entrada. Para construirmos estes circuitos necessitamos de suas expressões características que podem ser obtidas a partir das tabelas verdades que representam as situações. Abaixo descrevemos o procedimento completo para o projeto de circuitos combinacionais. 1. Interprete o problema e construa tabela verdade para descrever o seu funcionamento1 2. Encontre a expressão simplificada a partir do mapa-K correspondente 3. Implemente o circuito para a expressão final Na figura 8.1 é apresentado o diagrama de blocos que ilustra o procedimento descrito. Figura 8.1: Diagrama de blocos para implementação de projetos Os exemplos a seguir ilustram o procedimento completo do projeto. Exemplo 8.1: Projete um circuito lógico com três entradas, A, B e C, cuja saída será nível ALTO apenas quando a maioria das entradas for nível ALTO. 1° Passo: construa a tabela verdade (vamos projetar para lógica positiva). A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 0 0 1 0 1 1 1 2° Passo: encontre a expressão simplificada através do mapa-K 1 Defina neste momento se o projeto funcionará com lógica positiva ou lógica negativa. 51 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 8.2: Mapa-K para o exemplo 8.1 A partir do mapa-K encontramos a expressão S = AB + AC + BC . 3° Passo: implemente o circuito. Figura 8.3: Exemplo 8.1 Exemplo 8.2: Veja a figura 8.4. Em uma simples máquina copiadora, um sinal de parada, S, é gerado para interromper a operação da máquina e ativar um sinal luminoso sempre que uma das condições a seguir ocorrer: (1) a bandeja de alimentação de papel estiver vazia, ou (2) ou as duas microchaves sensoras de papel estiverem acionadas, indicando atolamento de papel. A presença de papel na bandeja de alimentação é indicada por um nível ALTO no sinal lógico P. Cada uma das microchaves produz sinais lógicos (Q e R) que vão para o nível ALTO sempre que um papel estiver passando sobre a chave, que é ativada. Projete um circuito lógico que gere uma saída em nível ALTO para as condições estabelecidas e implemente usando o CI CMOS 4011 que contém quatro portas NAND de duas entradas. 52 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 8.4: Exemplo 8.2 Com base nos dados fornecidos no enunciado do problema e na figura 8.4, montamos a tabela verdade para o problema. P 0 0 0 0 1 1 1 1 Q 0 0 1 1 0 0 1 1 R 0 1 0 1 0 1 0 1 S 1 1 1 1 0 0 0 1 Transpondo a tabela verdade para o mapa-k, temos: Figura 8.5: Mapa-K para o exemplo 8.2 53 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A partir do mapa-K obtemos a expressão simplificada igual a S = P + QR . O primeiro circuito, obtido diretamente da expressão S, está exibido na figura 8.6. Figura 8.6: Circuito exemplo 8.2 (1) Como o problema sugere que o circuito seja implementado usando apenas as quatro portas NAND do CI 4011, necessitamos aplicar o procedimento descrito na seção 5.5 que trata de blocos lógicos equivalentes. O processo é descrito na figura 8.7. Figura 8.7: Circuito exemplo 8.2 (2) Como existem inversores em série, estes podem ser eliminados. Desta forma podemos implementar o circuito apenas com duas portas NAND. Na figura 8.8 temos o circuito definitivo considerando o CI 4011 e um LED ligado à saída. Figura 8.8: Circuito exemplo 8.2 (3) No circuito da figura 8.8 não foram usadas a portas C e D do CI 4011. Exemplo 8.3: A figura 8.9 mostra um diagrama para um circuito de alarme de automóvel usado para detectar uma determinada condição indesejada. As três chaves são usadas para indicar, respectivamente, o estado da porta do motorista, o estado da ignição e o 54 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira estado dos faróis. Projete um circuito lógico com essas três chaves como entrada, de forma que o alarme seja ativado sempre que ocorrer uma das seguintes condições: • Os faróis estão acesos e a ignição está desligada. • A porta está aberta e a ignição está ligada. Figura 8.9: Exemplo 8.3 A partir das informações fornecidas pelo enunciado do problema e do esquema do circuito montamos a tabela verdade para esse projeto. P 0 0 0 0 1 1 1 1 I 0 0 1 1 0 0 1 1 F 0 1 0 1 0 1 0 1 S 0 1 0 0 0 1 1 1 Transpondo a tabela verdade para o mapa-K, temos: 55 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 8.10: Mapa-K para o exemplo 8.3 Através do mapa-K chegamos a expressão S = PI + PF + I F . Na figura 8.11 temos o circuito lógico para este projeto. Figura 8.11: Circuito exemplo 8.3 Exercício 8.1: Projete um circuito lógico cuja saída seja nível ALTO apenas quando a maioria das entradas A, B e C for nível BAIXO. Exercício 8.2: Projete um circuito que produza uma saída em nível ALTO só quando todas as três entradas estiverem no mesmo nível.. Exercício 8.3: Projete um circuito lógico cuja saída seja nível ALTO sempre que A e B forem nível ALTO, enquanto C e D estiverem em nível BAIXO ou ambas em nível ALTO. 8.1 Códigos No campo da Eletrônica Digital existem vários códigos. Por exemplo, um número decimal pode ser representado por um número binário equivalente, sendo que os 0s e 1s do número binário podem ser entendidos como uma representação codificada do número decimal. Quando um número decimal é representado pelo seu número binário equivalente, dizemos que é uma codificação em binário puro. 56 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 8.1.1 Decimal Codificado em Binário Se cada dígito de um número decimal for representado pelo seu equivalente binário, o resultado será um código denominado decimal codificado em binário (BCD – binary-coded-decimal). Este é um código de quatro bits, pois o maior número decimal, 9, é representado por um número binário de quatro bits. Abaixo está a tabela que mostra relação entre os números decimais de 0 a 9 e seus respectivos códigos BCD. Decimal BCD B C 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 A 0 0 0 0 0 0 0 0 1 1 0 1 2 3 4 5 6 7 8 9 D 0 1 0 1 1 1 0 1 0 1 Exercício resolvido 8.1: Codifique em binário o número decimal 874. Para convertermos o numero 87410 devemos escrever cada digito decimal no seu correspondente binário de 4 bits, conforme visto abaixo: 8  1000 7  0111 4  0100 ⇐ decimal ⇐ BCD Portanto o numero 87410 é, em BCD, 100001110100. Exercício resolvido 8.2: Converta 0110100000111001 (BCD) em seu equivalente decimal. Para encontrarmos o número decimal correspondente a um número em BCD, devemos separar o número BCD em grupos de 4 bits e converta cada grupo em decimal. 0110  6 1000  8 0011  3 1001  9 ⇐ decimal ⇐ BCD Portanto o número BCD 0110100000111001 corresponde ao decimal 6839. 8.1.2 Código Gray 57 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira O código Gray tem a propriedade de apenas um bit mudar entre dois números sucessivos na seqüência. Abaixo está a tabela que mostra relação entre os números decimais de 0 a 9 e seus respectivos códigos Gray. Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 G3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Gray G2 G1 G0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 Exercício 8.4: Converta o número binário 100 para o código gray. Exercício 8.5: Idem exercício 8.4 para o número binário 111. 8.1.3 Relações entre as Representações Numéricas A tabela abaixo mostra a representação dos números decimais de 0 a 15 nos sistemas binário e hexadecimal e nos códigos BCD e Gray. Decimal 0 1 2 3 4 5 6 7 8 Binário 0 1 10 11 100 101 110 111 1000 Hexadecinal 0 1 2 3 4 5 6 7 8 58 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 GRAY 0000 0001 0011 0010 0110 0111 0101 0100 1100 (Continua) Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira (Continuação) Decimal Binário 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 Hexadecinal 9 A B C D E F BCD 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 GRAY 1101 1111 1110 1010 1011 1001 1000 8.2 Decodificadores Chamamos de decodificador o circuito combinacional que torna possível a passagem de um código desconhecido para outro conhecido. Por exemplo, podemos ter um decodificador que passe o código BCD para o decimal. Na série 40 CMOS, temos o CI 4028 responsável por essa decodificação. Abaixo é apresentada a tabela verdade com as e expressões para um decodificador BCD para decimal. A 0 0 0 0 0 0 0 0 1 1 B 0 0 0 0 1 1 1 1 0 0 C 0 0 1 1 0 0 1 1 0 0 D 0 1 0 1 0 1 0 1 0 1 S Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9           ABCD ABCD B CD B CD BC D BC D BCD BCD AD AD O circuito construído a partir da tabela é exibido na figura 8.12. 59 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 8.12: Circuito decodificador BCD para decimal 60 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Exercício 8.6: Projete um decodificador de três linhas para oito linhas. 8.3 Decodificador BCD para Display de 7 Segmentos O display de 7 segmentos (7-seg) permite escrevermos números decimais de 0 a 9 e alguns outros símbolos. A figura 8.13 representa uma unidade display genérica juntamente com os algarismos de 0 a 9 representados quando os segmentos (nomeados de a a g) são ativados de forma conveniente. Figura 8.13: Display de 7-seg genérico O display a ser estudado nesse texto é o display que tem cada segmento composto por um LED, chamado de display de LEDs. Existem dois tipos de display de LEDs: o de catodo comum e o de anodo comum. O display tipo catodo comum é aquele que possui todos os catodos dos LEDs interligados, sendo necessário aplicar nível 1 ao anodo do respectivo segmento para que ele acenda. Já o de anodo comum possui todos os anodos interligados, sendo necessário aplicar nível 0 ao catodo do respectivo segmento. Na figura 8.14 temos o diagrama de blocos do decodificador BCD para display de 7 segmentos. Figura 8.14: Decodificador BCD para display 7-Seg A tabela verdade para o decodificador da figura 8.14, usando um display de catodo comum, pode ser vista abaixo. Para acionar um display de anodo comum basta substituir os valores 1s por 0s em cada segmento. 61 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Caracteres BCD Display Código 7-seg A B C D a b c d e f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 7 0 1 1 1 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 Exercício 8.7: Construa o circuito lógico para um decodificador BCD para 7-seg, cujo acionamento é realizado por lógica positiva. Exercício resolvido 8.3: Construa um decodificador para escrever a seqüência F O C A S num display de 7-seg de catodo comum através de uma lógica positiva. Para resolver este exercício é necessário saber quantas condições de entrada são necessárias para escrever os cinco caracteres. Com dois bits é possível escrever quatros casos (22 = 4), insuficientes para o nosso problema. Com três bits podemos escrever oito casos (24 = 8), mais que suficientes. Portanto nosso quadro de possibilidades será alimentado por três bits que irão gerar oito casos dos quais apenas cinco será usado, conforme a tabela abaixo. 62 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Display B C D a b c d e f g 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 - 1 0 1 X X X X X X X - 1 1 0 X X X X X X X - 1 1 1 X X X X X X X Como o sexto, o sétimo e o oitavo caso não são de interesse, podemos preencher os segmentos com condições de irrelevância. Transpondo os valores desta tabela verdade para o mapa-K e o agrupando encontramos as seguintes expressões para cada segmento: a = 1 , b = C , c = A + C , d = A + B C + BC = A + B ⊕ C , e = A , f = 1 , g = BC + B C = B ⊕ C . De posse das expressões podemos implementar o circuito lógico, visto na figura 8.15. 63 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 8.15: Circuito exercício resolvido 8.3 Exercício 8.8: Projete o mesmo circuito do exercício resolvido 8.3, porém para lógica negativa e com display de anodo comum. 8.4 Codificadores Chamamos de codificador o circuito combinacional que faz o inverso do decodificador, ou seja, torna possível a passagem de um código conhecido para um desconhecido. Exercício 8.9: Projete um circuito combinacional que codifique o sistema decimal em um código binário puro. 64 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 9 OPERAÇÕES COM NÚMEROS BINÁRIOS Neste capítulo serão descritos os procedimentos para se efetuarem as operações de adição e subtração envolvendo números binários. 9.1 Adição Binária A operação de adição de dois números binários é realizada da mesma forma que a realizada para dois números decimais. Na soma de dois dígitos binários, que estejam em qualquer posição, apenas quatro casos podem ocorrer, conforme visto abaixo: 0+0= 1+0= 1+1= 1+1+1= 0 1 10 = 0 + carry1 de 1 para próxima posição 11 = 1 + carry de 1 para próxima posição O último caso ocorre quando dois bits de uma determinada posição estão em nível 1 e há um carry da posição anterior. Abaixo são apresentados alguns exemplos de adição de dois números binários (entre parênteses o decimal equivalente): 011 (3) + 110 (6) 1001 (9) 1001 (9) + 1111 (15) 11000 (24) 110 (6) + 111 (7) 1101 (13) Em sistemas digitais não é necessário considerar a adição de mais de dois números binários de uma só vez. Quando mais de dois números devem ser somados, o sistema soma os dois primeiros e ao resultado soma o terceiro número, e assim por diante. 9.2 Representação de Números com Sinal Como sistemas digitais realizam operações tanto com números positivos quanto negativos é necessário representar, de alguma forma, o sinal do número (-/+). Para isso é definido o bit de sinal que é acrescentado à esquerda do número. A convenção adotada é que um 0 no bit de sinal representa um número positivo e um 1 no bit de sinal representa um número negativo. Isso está ilustrado na figura 9.1 e na figura 9.2 A6 A5 A4 A3 A2 A1 A0 0 1 1 0 1 0 0 = +5210  Bit de sinal (+) Figura 9.1: Representação de um número binário com sinal positivo 1 Carry é operação de transporte de um bit 1 para próxima posição à esquerda do número. 65 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A6 A5 A4 A3 A2 A1 A0 1 1 1 0 1 0 0 = -5210  Bit de sinal (-) Figura 9.2: Representação de um número binário com sinal negativo Os números da figura 9.1 e da figura 9.2 são constituídos de um bit de sinal e seis bits de magnitude2. Esta representação de números com sinal é denominada sistema sinal-magnitude. 9.2.1 Números Binários na Forma de Complemento de 1 A obtenção do complemento de 1 de um número binário se dá pela troca de cada bit do número pelo seu complemento. Um exemplo desse processo é descrito abaixo: 1  0 0  1 1  0 1  0 0  1 1  0 número binário original complementa-se cada bit para obter o complemento de 1 Dessa forma o complemento de 1 de 101101 é 010010. 9.2.2 Números Binários na Forma de Complemento de 2 O complemento de 2 de um número binário é obtido somando-se 1 ao bit menos significativo (LSB) do seu complemento de 1. O processo é descrito abaixo: 101101 010010 + 1 010011 número binário original complementa-se cada bit para obter o complemento de 1 soma-se 1 para obter o complemento de 2 complemento de 2 do número binário original Desta forma o número 010011 é a representação em complemento de 2 do número binário original 101101. 9.2.3 Representação de Números com Sinal Usando Complemento de 2 O sistema de complemento de 2 é mais utilizado por sistemas digitais para a representação de números com sinais porque a implementação do circuito é menos complexa que no sistema sinal-magnitude. O sistema de complemento de 2 para representação de números com sinal funciona da seguinte forma: • 2 Se o número for positivo, a magnitude é representada na forma binária direta e um Os bits de magnitude correspondem ao equivalente binário direto do valor decimal representado. 66 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira bit de sinal 0 é colocado em frente ao bit mais significativo (MSB), conforme visto na figura 9.3 (a). • Se o número for negativo, a magnitude é representada na sua forma do complemento de 2 e um bit de sinal 1 é colocado em frente ao MSB, conforme visto na figura 9.3 (b). O sistema de complemento de 2 é usado para representar números com sinal porque, conforme será visto, nos permite realizar a operação de subtração efetuando, na verdade, uma adição. Isto é conveniente porque o sistema digital pode usar o mesmo circuito para a operação de soma e subtração. A6 A5 A4 A3 A2 A1 A0 0 1 1 0 1 0 0  = +4510 (a) = -4510 (b) Binário Verdadeiro Bit de sinal (+) A6 A5 A4 A3 A2 A1 A0 0 1 1 0 1 0 0  Complemento de 2 Bit de sinal (-) Figura 9.3: Representação de números com sinal na forma de complemento de 2 Exercício resolvido 9.1: Represente cada um dos seguintes números decimais com sinal como um número binário com sinal no sistema de complemento de 2. Use um total de 5 bits incluindo o bit de sinal. (a) +13 (b) -9 (c) -2 (a) Como o número é positivo, a magnitude (13) é representada na forma direta, anexando um bit de sinal, conforme visto abaixo: +13 = 01101 (em negrito o bit de sinal). (b) Para determinar a representação para -9, escreve-se a representação para +9, incluindo o bit de sinal, assim segue-se calculando o complemento de 2 a fim de obter a representação para -9, conforme descrito abaixo: +9 = 01001 10110 + 1 -9 = 10111 número binário original, incluindo bit de sinal complemento de 1d de cada bit, incluindo bit de sinal soma-se 1 ao LSB representação de -9 em complemento de 2 (c) Comece escrevendo +2 usando 5 bits: +2 = 00010 11101 1 + -2 = 11110 número binário original, incluindo bit de sinal complemento de 1 de cada bit, incluindo bit de sinal soma-se 1 ao LSB representação de -2 em complemento de 2 67 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 9.2.4 Negação Negação é a operação de conversão de um número positivo em seu equivalente negativo e vice-versa. Abaixo é descrito o procedimento de negação para o número decimal +9 no formato binário de oito bits: Iniciar com 00001001 Fazer o complemento de 2 (negação) 11110111 Negar novamente 00001001 +9 -9 +9 A operação de negação altera o número para seu equivalente de sinal oposto. Exercício resolvido 9.2: Cada um dos seguintes números é um número binário com sinal no sistema do complemento de 2. Determine o valor decimal em cada caso: (a) 01100 (b) 11010 (c) 10001 (a) Como o bit de sinal é 0, o número binário é positivo. Desta forma os outros quatro bits restantes representam a magnitude direta do número. Portanto 11002 = 1210, assim o número decimal é +12. (b) O bit de sinal neste caso é 1, indicando que o número binário é negativo, entretanto não podemos dizer qual sua magnitude sem antes fazer a negação para convertê-lo no seu equivalente positivo. Isto está descrito abaixo: 11010 00101 + 1 00110 número negativo original, incluindo bit de sinal complemento de 1 de cada bit, incluindo bit de sinal soma-se 1 ao LSB +6 Visto que o resultado da operação negação é 00110 = +6, o número original tem de ser equivalente a -6. (c) Seguindo o mesmo procedimento realizado em (b): 10001 01110 + 1 01111 número negativo original, incluindo bit de sinal complemento de 1 de cada bit, incluindo bit de sinal soma-se 1 ao LSB +15 Desta forma, 10001 = -15. 9.2.5 Caso Especial na Representação de Complemento de 2 Sempre que um número com sinal tiver um 1 no bit de sinal e todos os bits de magnitude forem 0, seu equivalente decimal será -2N, em que N é o número de bits da magnitude. Por exemplo: 68 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 1000 = -23 10000 = -24 100000 = -25 = -8 = -16 = -32 Por estes números estarem no limite negativo do intervalo de números que podem ser representados com esses bits, ao se tomar o complemento de 2 (negação) se produz o mesmo valor do número inicial. Quando o sinal destes números especiais são estendidos3 o processo formal de negação funciona. A faixa completa de valores que pode ser representada no sistema de complemento de 2 com N bits de magnitude é - 2N a + (2N - 1) Existe um total de 2N+1 diferentes valores, incluindo o zero. Na tabela abaixo estão relacionados todos os números com sinal que podem ser representados com quatro bits usando o sistema de complemento de 2. Valor Decimal Binário com Sinal Usando Complemento de 2 + 7 = 23 + 1 +6 +5 +4 +3 +2 +1 0 -1 -2 -3 -4 -5 -6 -7 - 8 = - 23 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 Exercício resolvido 9.3: Qual é faixa de valores de números decimais (a) sem sinal e (b) com sinal que pode ser representada com um byte? 3 Quando um número positivo tem um número de bits de magnitude menor do qual deve ser representado num sistema digital, pode-se estender o bit de sinal, i.é., acrescentar zeros à esquerda do número até satisfazer a condição do sistema. O mesmo pode ser feito com um número negativo que esteja nas mesmas condições acima descritas, porém em vez de acrescentar zeros, são acrescentados uns a esquerda do número. 69 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira (a) Como um byte corresponde a oito bits e o interesse é representar números sem sinal, todos estes oito bits são usados para representar a magnitude. Portanto a faixa de valores é 000000002 = 010 a 111111112 = 25510 Isso corresponde a um total de 28 = 256 valores diferentes. (b) Como o interesse é representar números de oito bits com sinal, a disponibilidade é de sete bits para a magnitude do número, visto que o MSB é destinado a representar o bit de sinal. Desta forma tem-se como maior valor negativo 100000002 = -27 = -12810 e como maior valor positivo 011111112 = +27 - 1 = +12710 Visto que existem sete bits de magnitude (N = 7), então existem 2N+1 = 27+1 = 256 valores diferentes. 9.3 Adição no Sistema de Complemento de 2 Passamos agora a analisar as operações de adição e subtração realizadas por sistemas digitais que fazem uso da representação de complemento de 2 para números negativos. Para essa análise serão apresentados cinco casos. É importante observar que sobre o bit de sinal de cada número é realizada a mesma operação que é feita sobre os bits de magnitude. Caso I: Dois números positivos. A adição de dois números positivos é feita diretamente. Considere a adição de +9 com +4: +9  0 1001 +4  0 0100 0 1101  Bits de sinal (1ª parcela) (2ª parcela) (soma = +13) Nas operações aritméticas realizadas no sistema de complemento de 2, as duas quantidades numéricas que estão sendo operadas sempre devem ter o mesmo número de bits, assim como o resultado. Isto é observado no exemplo acima, observe também que os bits de sinal da 1ª parcela e da 2ª parcela são ambos 0, logo o bit de sinal da soma também é 0, indicando que o resultado é positivo. Caso II: Um número positivo e um outro menor negativo. Considere a adição de +9 com -4. Lembre-se de que -4 deve ser representado na forma do complemento de 2. Assim, +4 (00100) têm de ser convertido para -4 (11011). 70 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira +9  -4  1 Estouro! Bit desconsiderado 0 1001 1 1100 0 0101  Bits de sinal (1ª parcela) (2ª parcela) (soma = +5) Como o número de bits na operação deve permanecer constante, o bit (carry) que extrapola a quantidade inicial sempre deve ser desconsiderado. Dessa forma sempre que a operação resultar na extrapolação do número de bits inicial (bits da parcelas), o carry gerado a partir do MSB sempre deve ser desconsiderado. Caso III: Um número positivo e outro maior negativo. Considere a adição de -9 com +4: -9  1 0111 +4  0 0100 1 1011  Bits de sinal (1ª parcela) (2ª parcela) Neste caso a soma gerou um bit de sinal 1 que indica um número negativo. Para se obter a magnitude da soma (aqui representada em complemento de 2) precisa-se fazer o processo de negação do número que resultou da soma usando apenas os bits de magnitude, ou seja, fazer o complemento de 2 do número binário 1011. Isto resulta em 0101 = 5, portanto o resultado da soma é -5. Caso IV: Dois números negativos. -9  -4  1 Estouro! Bit desconsiderado 1 0111 1 1100 1 0011  Bits de sinal (1ª parcela) (2ª parcela) Como no caso III, o resultado é um número negativo representado em complemento de 2, portanto o número resultante da operação 10011, então sobre seus bits de magnitude deve-se efetuar a negação, desta forma temos o resultado igual a -13. Caso V: Números iguais e de sinais opostos. -9  +9  1 Estouro! Bit desconsiderado 1 0111 0 1001 0 0000  Bits de sinal (1ª parcela) (2ª parcela) Evidentemente, o resultado é zero, conforme o esperado. Exercício 1: Efetue a soma dos seguintes pares de números com sinal. Expresse a soma como um número binário com sinal e como um número decimal. (a) 100111 + 111011 (b) 100111 + 011001 9.4 Subtração no Sistema de Complemento de 2 71 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A operação de subtração no sistema de complemento de 2, na verdade, já foi descrita nos casos apresentados na seção 9.3. Ao efetuar a subtração de um número binário (o subtraendo) de outro número binário (o minuendo), use os seguintes procedimentos: Faça a operação de negação do subtraendo. Isso mudará o subtraendo para o seu valor equivalente com sinal oposto. • Adicione esse número obtido ao minuendo. O resultado dessa adição representa a diferença entre o subtraendo e o minuendo. • Qualquer operação de subtração torna-se, na realidade, uma operação de adição quando é utilizado o sistema de complemento de 2. É importante ressaltar que em todas as operações aritméticas em complemento de 2, é necessário que os dois números tenham o mesmo número de bits em suas representações. 9.5 Overflow Aritmético Nas operações aritméticas de adição e subtração em complemento de 2, os dois números envolvidos, bem como o resultado, devem ter o mesmo número de bits. Podem ocorrer casos, como os vistos na seção 9.3, em que um bit 1 extrapola a quantidade de bits necessários para a representação do resultado correto e nesses casos basta desconsiderar este bit, pois ele não interfere no bit de sinal. Entretanto existem casos em que a soma gera um overflow (transbordamento) na posição do bit de sinal, isso ocorre quando o resultado da soma precisa de um número maior de bits que as parcelas para representar a sua magnitude. Abaixo é apresentado um exemplo em que ocorre um overflow: +9  1 1001 +8  0 1000 1 0001  magnitude incorreta sinal incorreto No exemplo a soma de dois números positivos está gerando um número negativo, que obviamente é incorreto. A resposta correta deveria ser +17, mas a magnitude 17 requer mais que quatro bits, portanto ocorreu um transbordamento na posição do bit de sinal. 9.5.1 Círculos de Números e Aritmética Binária O conceito de aritmética com sinal e overflow é melhor entendido fazendo uso do circulo de números apresentado na figura 1.3. Observe que há duas formas de olhar para esse circulo. Ele pode ser pensado como um círculo de números sem sinal (como mostra o anel externo), com um valor mínimo de 0 e máximo de 15, ou como números com sinal na forma de complemento de 2 (como mostra o anel interno), com valor máximo de 7 e mínimo de -8. Para somar usando o círculo de números, basta começar no valor da primeira parcela e avançar o número de casas indicado na segunda parcela ao redor do círculo no sentido horário. Para a operação de subtração, começa-se no valor do 72 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira minuendo e desloca-se, no sentido anti-horário, o número de casas indicadas no subtraendo. Qualquer operação de subtração entre números de quatro bits de sinal oposto que produza um resultado maior do que 7 ou menor que -8 é um overflow do formato de quatro bits e produz uma resposta incorreta. Figura 9.4: Circulo numérico de quatro bits. 73 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 10 CIRCUITOS ARITMÉTICOS A partir de agora serão estudados os circuitos responsáveis, dentro da eletrônica digital, por realizarem as operações aritméticas discutidas no capítulo anterior. Estes circuitos são denominados circuitos aritméticos. 10.1 Projeto de um Somador Completo O circuito aritmético denominado somador completo (Full Adder – FA) é um circuito que realiza a soma de dois números binários de um bit. Entretanto um FA tem, além das entradas A e B destinadas aos valores das parcelas, uma outra entrada CIN (carry in) que corresponde a um bit 1 de transporte proveniente de uma posição anterior ao número que esta sendo somado, isto ocorre quando os FAs estão conectados em cascata conforme veremos mais adiante no estudo do somador binário paralelo. Um FA tem uma saída S que é o resultado da soma dos bits e uma saída COUT (carry out) que corresponde a um transporte de saída que é gerado quando somamos dois bits cheios. Para implementarmos o circuito de um FA construímos a tabela abaixo: Entradas de bits da primeira parcela Entradas de bits da segunda parcela Entradas de bits do carry Saída de bits da soma Saída de bits do carry A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 CIN 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 COUT 0 0 0 1 0 1 1 1 A partir da tabela, aplicando o método da soma de produtos, chegamos a expressão para a saída S: S = A B CIN + A BC IN + AB C IN + ABC IN Fazendo uso do método algébrico para simplificação de expressões booleanas chegamos a expressão: S = A ⊕ [B ⊕ CIN ]. Agora é necessário encontrar a expressão booleana para a saída COUT, para isso usamos o mesmo método utilizado para encontrar a saída S: COUT = A BCIN + AB CIN + ABCIN + ABC IN Simplificando esta expressão chegamos a: 74 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira COUT = AB + ACIN + BCIN . A partir das expressões para S e COUT, podemos implementar o circuito de um somador completo, conforme visto abaixo na figura 10.1: Figura 10.1: Circuito para um somador completo Na figura 10.2 o somador completo está representado em bloco. Figura 10.2: Representação em bloco para um somador completo 10.1.1 Meio Somador Existem casos em que é necessário um circuito que some apenas dois bits de entrada, para gerar uma soma e um carry como saídas. Um circuito especial pode ser projetado para realizar a soma de dois bits, A e B, e gerar uma soma (S) e um carry 75 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira (COUT). Este circuito recebe o nome de meio somador (Half Adder – HA). A operação deste circuito é similar à do FA, apenas com a exceção de não ter a entrada CIN. A operação de um HA pode ser descrita através da tabela abaixo: Entradas de bits da primeira parcela Entradas de bits da segunda parcela Saída de bits da soma Saída de bits do carry A 0 0 1 1 B 0 1 0 1 S 0 1 1 0 COUT 0 0 0 1 A partir da tabela encontramos a seguinte expressão para S: S = A⊕B Para COUT a expressão obtida é: COUT = A ⋅ B A partir das expressões acima implementamos o circuito para um meio somador. O circuito pode ser visto na figura 10.3 e a representação em bloco na figura 10.4. Figura 10.3: Circuito para um meio somador Figura 10.4: Representação em bloco para um meio somador 76 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira 10.1.2 Somador Completo a Partir de Meio Somador A partir de dois meios somadores e uma porta OR é possível construir um somador completo. Um exemplo pode ser visto na figura 10.5. Figura 10.5: Somador completo a partir de meio somador Neste caso da construção de um somador completo a partir de meio somador, a expressão para o COUT é da forma: COUT = AB + ( A ⊕ B )C IN . Exercício 10.1: Mostre passo-a-passo a obtenção da expressão para o COUT para um somador completo a partir de meio somador. 10.2 Somador Binário Paralelo Em sistemas digitais estamos, muitas vezes, interessados em somar quantidades com mais de 1 bit (parcelas com mais de um bit), neste caso um único FA não é suficiente. Portanto é necessário interligar os FAs de maneira que se possa obter, por exemplo, a soma de dois numero de cinco bits. Figura 10.6: Processo típico de soma binária 77 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira A figura 10.6 nos fornece uma idéia de como interligar os FAs de maneira a se obter a soma de dois números de cinco bits, essa idéia é expressa na figura 10.7 onde mostra cinco FAs ligados em cascata formando um somador binário paralelo. Figura 10.7: Somador binário paralelo de cinco bits Embora a figura 10.7 represente um somador paralelo de cinco bits, podemos estender a capacidade de bits de cada parcela aumentando o número de faz. Na figura as saídas (S0 a S4) representam o valor da soma onde S0 representa o LSB e S4 representa o MSB , entretanto quando se está somando números sem sinal, o último carry (no caso C5) pode ser considerado como o MSB, podendo, então, o somador efetuar operações que extrapolem o número de bits das parcelas. Em geral o carry inicial assume o valor 0, mas existem situações, que veremos mais adiante, em que o carry inicial não é 0, podendo assumir o valor 1. 10.3 Somador Paralelo em Circuito Integrado Nesta seção será apresentado o circuito integrado 4008 que é um somador paralelo de quatro bits. Na figura 10.8 é apresentado o diagrama em bloco CI 4008. A ampliação do numero de bits pode ser realizada através da ligação em cascata de dois ou mais, conforme a necessidade, de CIs 4008. A conexão em cascata de dois CIs pode ser visualizada na figura 10.9 e a distribuição de pinos num encapsulamento dip16 na figura 10.10. 78 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 10.8: Representação em bloco do CI 4008 Figura 10.9: Conexão em cascata de dois 4008 Figura 10.10: Distribuição de pinos do CI 4008 79 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Na figura 10.9 o FA mais a esquerda é chamado de somador de alta ordem e o da direita de somador de baixa ordem. 10.4 Uso de Somadores Paralelos no Sistema de Complemento de 2 Como vimos usando o sistema de complemento de 2, a operação de subtração entre dois números binários na realidade se torna uma operação de soma. Desta forma podemos usar circuitos somadores para realizar as operações de soma e subtração. Como foi visto no capítulo 9 a operação de adição (ou subtração) em números com sinal é realizada também sobre o bit de sinal, portanto o resultado da operação deve ter o mesmo número de bits das parcelas, ou seja, se cada parcela é composta por quatro bits, incluindo o bit de sinal, a resposta da operação deve também ter quatro bits, incluindo o bit de sinal. 10.4.1 Adição A operação de adição é semelhante a vista na seção 10.3 com a diferença de não ser possível usar o último carry como MSB na soma de dois números positivos, pois o resultado da soma está limitada ao número de bits das parcelas, ou seja, a resposta não deve ser maior que 2N-1, onde N é o número de bits das parcelas, caso contrário ocorre um overflow. Um caso típico de transbordamento pode ser gerado quando, usando números com sinal, efetua-se a soma: 0111 + 0001 = 1000 Como sabemos, nesses números temos um bit de sinal e três bits de magnitude, portanto devemos ter como resultado da adição um número com quatro bits sendo um deles o que representa o sinal do resultado. Como se percebe o resultado da soma gerou um valor incorreto, pois o bit de sinal indica um número negativo como resposta e como sabemos a soma de dois números positivos não poder resultar em um número negativo. É importante observar que o carry de entrada deve ser 0. 10.4.2 Subtração Para se efetuar a operação de subtração, o subtraendo deve ser transformado em complemento de 2. Para relembrar, o complemento de 2 de um número se dá pela complementação de cada bit do número e a esse resultado soma se 12 ao LSB. Portanto se quisermos realizar a operação [A] – [B]1 no CI 4008 basta complementar os bits da entrada [B] e colocarmos o carry de entrada em nível alto. O circuito subtrator pode ser visto na figura 10.11. 1 Notação usual para registradores. Aqui usamos para representar o conjunto de bits da entrada de um somador paralelo. 80 Eletrônica Digital Combinacional Prof. Fernando Schuck de Oliveira Figura 10.11: CI 4008 como subtrator 10.4.3 Adição e Subtração Combinadas A partir de um CI somador é possível implementar um circuito que execute as operações de adição e subtração (subtração no sistema de complemento de 2) de dois números através de um sinal de controle ADD/SUB. Este circuito é mostrado na figura 10.12. Quando ADD/SUB for 1, o circuito somador/subtrator executará a operação de soma dos números [A] e [B], porém se ADD/SUB for 0, o circuito somador/subtrator realizará a operação [A] – [B]. Figura 10.12: Somador/subtrator paralelo (sistema de complemento de 2) 81