Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 FACULDADE DE ENGENHARIA DE SOROCABA ENGENHARIA ELÉTRICA CIRCUITOS LÓGICOS SISTEMAS DE NUMERAÇÃO CIRCUITOS LÓGICOS COMBINATÓRIOS PROFº FERREIRA email: ferreira@facens.br 2011 2 ÍNDICE 1. SISTEMAS DE NUMERAÇÃO .................................................................................... 5 1.1 – SISTEMA DECIMAL ............................................................................................... 5 1.2 – SISTEMA BINÁRIO ................................................................................................ 6 1.3 – SISTEMA OCTAL E HEXADECIMAL ...................................................................... 8 1.4 – REPRESENTAÇÃO OCTAL E HEXADECIMAL ...................................................... 8 1.5 – CONVERSÃO ENTRE BASES ............................................................................... 9 1.5.1 – CONVERSÃO ENTRE AS BASES 2, 8 E 16 ......................................................... 9 1.5.1.1 – CONVERSÃO BINÁRIO-OCTAL ....................................................................... 9 1.5.1.2 – CONVERSÃO OCTAL-BINÁRIO ..................................................................... 10 1.5.1.3 – CONVERSÃO BINÁRIO-HEXADECIMAL ....................................................... 10 1.5.1.4 – CONVERSÃO HEXADECIMAL-BINÁRIO ....................................................... 10 1.5.1.5 – CONVERSÃO BASE QUALQUER PARA DECIMAL ....................................... 11 1.5.1.6 – CONVERSÃO DECIMAL PARA BASE QUALQUER ....................................... 11 1.5.1.7 – CONVERSÃO DE NÚMEROS ENTRE DUAS BASES QUAISQUER .............. 13 2. ARITMÉTICA DE NÚMEROS BINÁRIOS E HEXADECIMAL ................................... 14 2.1 – OPERAÇÕES ARITMÉTICAS BINÁRIA ............................................................... 14 2.1.1 – ADIÇÃO BINÁRIA .............................................................................................. 14 2.1.2 – SUBTRAÇÃO BINÁRIA ..................................................................................... 15 2.1.3 – MULTIPLICAÇÃO BINÁRIA ............................................................................... 16 2.1.4 – DIVISÃO BINÁRIA ............................................................................................. 17 2.2 – OPERAÇÕES ARITMÉTICAS HEXADECIMAL .................................................... 18 2.2.1 – ADIÇÃO HEXADECIMAL ................................................................................... 18 2.2.2 – SUBTRAÇÃO HEXADECIMAL .......................................................................... 19 3. COMPLEMENTO DE 2 ............................................................................................. 20 3.1 – REPRESENTAÇÃO DE NÚMEROS COM SINAL ................................................. 20 3.2 – COMPLEMENTO DE 2 ......................................................................................... 20 3 3.3 – SUBTRAÇÃO NO SISTEMA DE COMPLEMENTO DE 2 ...................................... 21 4. FUNÇÕES E PORTAS LÓGICAS............................................................................. 22 4.1 – INTRODUÇÃO ...................................................................................................... 22 4.2 – VARIÁVEIS E FUNÇÕES BOOLEANAS ............................................................... 23 4.7 – FUNÇÃO OU(OR) ................................................................................................. 25 4.8 – FUNÇÃO NOT(NÃO – PORTA INVERSORA) ....................................................... 26 5. CIRCUITOS LÓGICOS COMBINATÓRIOS .............................................................. 29 5.1 – INTRODUÇÃO ...................................................................................................... 29 5.2 – CIRCUITOS LÓGICOS OBTIDOS DE EXPRESSÕES BOOLEANAS .................. 31 6. CIRCUITOS LÓGICOS COMBINATÓRIOS .............................................................. 32 7. FUNÇÕES E PORTAS LÓGICAS OU EXCLUSIVO (XOR) E COINCIDÊNCIA ....... 34 8. ÁLGEBRA DE BOOLE ............................................................................................. 36 8.6 – UNIVERSALIDADE DAS PORTAS NAND E NOR ............................................... 42 INVERSOR COM NAND OU NOR ................................................................................ 43 9. ÁLGEBRA DE BOOLE ..................................................................................... 45 9.1 – INTRODUÇÃO ...................................................................................................... 45 9.2 – VARIÁVEIS E FUNÇÕES BOOLENAS ................................................................. 45 9.3 – POSTULADOS, REGRAS E TEOREMAS PARA A SIMPLIFICAÇÃO DE EXPRESSÕES BOOLEANAS ....................................................................................... 45 9.4 – EXERCÍCIOSOS RESOLVIDOS DE SIMPLIFICAÇÃO ......................................... 48 9.5 – EXERCÍCIOS ....................................................................................................... 53 10. MAPA DE KARNAUGH .................................................................................... 53 4 10.1 – MAPA DE KARNAUGH PARA 02 VARIÁVEIS ............................................................... 54 10.2 – MAPA DE KARNAUGH PARA 03 VARIÁVEIS ............................................................... 55 10.3 – MAPA DE KARNAUGH PARA 04 VARIÁVEIS ............................................................... 57 10.4 – MAPA DE KARNAUGH PARA 05 VARIÁVEIS ............................................................... 58 11. CIRCUITOS COMBINACIONAIS ...................................................................... 61 11.1 – INTRODUÇÃO .................................................................................................... 61 11.2 – EXEMPLO DE CIRCUITO COM 02 VARIÁVEIS.................................................. 62 5 1. SISTEMAS DE NUMERAÇÃO 1.1 – SISTEMA DECIMAL O sistema numérico com o qual estamos acostumados a trabalhar e pensar é o sistema decimal. Neste sistema os números são formados por algarismos correspondentes as unidades, dezenas, centenas, milhares,etc.... É um sistema baseado na analogia de contagem com os dedos da mão, ou seja, dez. A raiz ou base desse sistema é dez e seus algarismos são: 0 1 2 3 4 5 6 7 8 9 O método ao qual estamos acostumados usa um sistema de numeração posicional. Isso significa que a posição ocupada por cada algarismo em um número altera seu valor de uma potência de 10 (na base 10) para cada casa à esquerda (parte inteira) e à direita (parte fracionária). Para representar uma número maior que 9 utilizamos os mesmos algarismos que são combinados ocupando posições diferentes no número que são representados pelas potências de 10. O número decimal 234, por exemplo, é obtido pela soma apresentada a seguir: 234=200+30+4 ou 234=2 x 100 + 3 x 10 + 4 x 1 ou 234=2 x 102 + 3 x 101 + 4 x 100 Os números menores que 1 são representados através da notação em potências de dez, com as potências negativas. O número 0,52 por exemplo, é obtido pela soma apresentada a seguir: 0,52=0,5+0,02 ou 0,52=5x0,1+2x0,01 ou 0,52=5x10¯ ¹ +2x10¯ ² Generalizando, representamos uma quantidade N qualquer, numa dada base b, com um número tal como segue: Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b- 1 + a-2.b- 2 + .... + a-n.b- n sendo que 6 an.bn + .... + a2.b2 + a1.b1 + a0.b0 é a parte inteira e a-1.b- 1 + a-2.b- 2 + .... + a-n.b- n é a parte fracionária. 1.2 – SISTEMA BINÁRIO A base de um sistema é a quantidade de algarismos disponível na representação. A base 10 é usualmenteempregada, embora não seja a única utilizada. Os computadores utilizam a base 2 (sistema binário) e os profissionais de hardware e software por facilidade, usam em geral uma base que seja uma potência de 2, tal como 24 (base 16 ou sistema hexadecimal) ou eventualmente ainda 23 (base 8 ou sistema octal). No estudo dos sistemas digitais trabalhar com o sistema decimal não é conveniente. Utilizando o sistema binário de numeração, podemos representar uma informação com apenas dois valores. Os valores 0 e 1 são utilizados para representar situações lógicas. O estado lógico 0 e o estado lógico 1 são utilizados no estudo de sistemas físicos que assumem dois estados de funcionamento, representando situações como: ABERTO FECHADO DESLIGADO LIGADO SEM TENSÃO COM TENSÃO Se 0 representa uma determinada situação, então 1 representa a situação complementar, porém estamos mais acostumados a trabalhar com lógica positiva,como por exemplo: Nível lógico 0 Nível lógico 1 aberto fechado sem tensão com tensão desligado ligado apagado aceso 7 Em eletrônica digital a representação dos níveis discretos de tensão se faz utilizando os algarismos do sistema binário de numeração. No caso da conversão de números fracionários em binário Sistema binário de numeração No sistema binário somente dois algarismos são utilizados: O e 1 Quando os símbolos 0 e 1 são usados para representar números binários, cada símbolo é chamado de dígito binário, ou simplesmente de bit. O número binário 1012 é chamado de número binário de três dígitos ou de número binário de três bits. As regras de formação de um número em binário são as mesmas que foram utilizadas para o sistema decimal, com exceção de que no sistema binário a base é igual a 2. O resultado da soma é igual ao equivalente no sistema decimal 101 = (1 x 22) + (0 x 21) + (1 x 20) 101 = (1 x 4) + (0 x 2) + (1 x 1) 101 = 4 + 0 + 1 = basta usar o método do exemplo abaixo: 0.011 = (0 x 2- 1 ) + (1 x 2- 2 ) + (1 x 2- 3 ) ou 0.011 = (0 x .5) + (1 x 0.25) + (1 x .125) ou 0.011 = 0 + 0.25 + 1.125 = 0.37510 Em resumo a posição dos dígitos em um número binário têm os seguintes pesos: Binário Decimal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 8 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 1.3 – SISTEMA OCTAL E HEXADECIMAL O sistema de números octais tem a base igual a 8, o que indica o uso de oito algarismos, sendo todos equivalentes aos do sistema decimal. Os algarismos usados neste sistema são: 0, 1, 2, 3, 4, 5, 6, 7 O sistema de números hexadecimal usa a base 16, o que indica o uso de dezesseis símbolos, sendo os mesmos símbolos usados no sistema decimal mais as seis primeiras letras do alfabeto. Os algarismos utilizados no sistema hexadecimal são: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F As seis primeiras letras do alfabeto, utilizadas no sistema hexadecimal como números representam as seguintes quantidades: A=10 B=11 C=12 D=13 E=14 F=15 1.4 – REPRESENTAÇÃO OCTAL E HEXADECIMAL O sistema de números hexadecimais é muito usado em projetos de hardware e software, já que estes representam grupos de dígitos binários, facilitando a representação de códigos binários. É usual representar quantidades usando sistemas em potências do binário, para reduzir o número de algarismos da representação. No sistema octal (base 8), três bits são representados por apenas um algarismo octal (de 0 a 7). No sistema hexadecimal (base 16), quatro bits são representados por apenas um algarismo hexadecimal (de 0 a F). A tabela a seguir mostra uma comparação entre números decimais, binários, octais e hexadecimais. decimal binário octal hexadecimal 0 0000 0 0 9 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1 010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 1.5 – CONVERSÃO ENTRE BASES 1.5.1 – CONVERSÃO ENTRE AS BASES 2, 8 e 16 1.5.1.1 – CONVERSÃO BINÁRIO-OCTAL Como 23 = 8, separando os bits de um número binário em grupos de três bits (começando sempre da direita para a esquerda para a parte inteira) e convertendo cada grupo de três bits para seu equivalente em octal, teremos a representação do número em octal. Exemplo: 101010012 = (x) 8 Separando em grupos de 3 bits 10101001 = 010 101 001 10 Sabemos que 0102 = 28; 1012 = 58; 0012 = 18 e portanto, 101010012 = 2518 1.5.1.2 – CONVERSÃO OCTAL-BINÁRIO A conversão inversa se faz convertendo cada dígito octal por um grupo de três dígitos binários. Exemplo: 17658=(x) 2 1 7 6 5 001 111 110 101 Portanto, 17658=0011111101012 1.5.1.3 – CONVERSÃO BINÁRIO-HEXADECIMAL Como 24= 16, basta separarmos em grupos de 4 bits (começando sempre da direita para a esquerda para a parte inteira) e converter cada grupo para seu equivalente em hexadecimal. Exemplo: 110101011012 = (x) 16 Separando em grupos de 4 bits 0110 1010 1101 Cada grupo de 4 bits é então substituído pelo equivalente hexadecimal, então: 1102 = 616; 10102 = A16 ; 11012 = D16 Portanto, 110101011012 = 6AD16. 1.5.1.4 – CONVERSÃO HEXADECIMAL-BINÁRIO 11 A conversão inversa se faz convertendo cada dígito hexadecimal por grupos de dígitos de quatro dígitos binários. Exemplo: 3F516 = (x) 2 3 F 5 0011 1111 0101 Portanto, 3F516 = 11111101012 1.5.1.5 – CONVERSÃO BASE QUALQUER PARA DECIMAL Para se determinar o equivalente decimal de um número escrito numa base b usamos: Nb = an.b n + .... + a2.b 2 + a1.b 1 + a0.b 0 + a-1.b -1 + a-2.b -2 + .... + a-n.b -n Exemplos: 1011012 = 45 1011012 = 1x2 5 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 45 4F516 = 1269 4x162 + 15x161 + 5x160 = 1269 1.5.1.6 – CONVERSÃO DECIMAL PARA BASE QUALQUER Conversão de Números da Base 10 para uma Base b qualquer Parte inteira O número decimal deverá ser dividido sucessivas vezes pela base, sendo que o resto de cada divisão será igual a um algarismo do novo número. O exemplo mostra a conversão do número 30 para a base 2. 12 30/2 = 15 0 Bit menos significativo 15/2 = 7 1 7/2 = 3 1 3/2 = 1 1 1/2 = 0 1 Bit mais significativo Portanto: 30 = 111102 Parte fracionária O processo para a parte fracionária consiste de uma série de multiplicações sucessivas do número fracionário a ser convertido pela base. A parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária e a parte fracionária será de novo multiplicada pela base e assim por diante, até o resultado ser igual a zero ou até encontrarmos o número de casas decimais desejado. Por exemplo, vamos converter 0,65 para a base 2, com 5 e com 10 algarismos fracionários: Aproximação com 5 dígitos Aproximação com 10 dígitos 0,65x2= 1,3 0,3 x2= 0,6 0,6 x2= 1,2 0,2 x2= 0,4 0,4 x2= 0,8 0,8 x2= 1,6 0,6 x2= 1,2 0,2 x2= 0,4 0,4 x2= 0,8 0,8 x2= 1,6 Número equivalente 0,65= 0,101002 Número equivalente 0,65= 0,10100110012 13 1.5.1.7 – CONVERSÃO DE NÚMEROS ENTRE DUAS BASES QUAISQUER Para converter números de uma base b para uma outra base bx qualquer, o processo prático utilizado é converter da base b dada para a base 10 e depois da base 10 para a base bx pedida. Exemplo de conversão de hexadecimal para decimal (520)10 = ( )16 ⇒ 520 | 16 8 32 | 16 0 2 Portanto: 520 = 208h (526)10 = ( )16 ⇒ 526 | 16 14 32 | 16 0 2 Portanto: 526 = 20Eh 14 2. ARITMÉTICADE NÚMEROS BINÁRIOS E HEXADECIMAL 2.1 – OPERAÇÕES ARITMÉTICAS BINÁRIA 2.1.1 – ADIÇÃO BINÁRIA A adição de dois números binários é semelhante a soma decimal veja o exemplo abaixo: 1 3 7 1 + 1 4 1 5 1 2 No primeiro dígito temos uma soma igual a 2. Os dígitos da segunda posição são somados produzindo um resultado igual a 11, que gera um carry (vai um) que vale para a próxima posição. Produzindo desta maneira na terceira posição um resultado igual a 5. De uma maneira geral os mesmos passos são seguidos na adição binária. Mas de uma maneira mais simples, pois somente quatro casos podem ocorrer. Estes casos são: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 => O resultado é 0 indo 1 para a próxima posição (VAI UM) Exemplos: 1 1 a) 101 +101 1010 15 Veja no primeiro dígito 1 + 1 = 0 e vai um para o próximo dígito, no segundo dígito 1 + 0 = 1, finalmente 1 + 0 = 1, no terceiro dígito 1 + 1 = 0 e vai um para o próximo dígito. Desta forma o resultado da adição é 10102. 11 1 b) 1101 +1101 11010 111 1 c) 11,011 3,375 +10,110 2,750 110,001 6,125 2.1.2 – SUBTRAÇÃO BINÁRIA A subtração de dois números binários é semelhante à subtração decimal vejamos o exemplo abaixo: 3 7 1 - 1 4 9 _1___ 2 2 2 No primeiro dígito temos uma subtração igual a 2, mas como 1 é menor que 9 produz um carry (vem um), para o próximo dígito para ser subtraído. Os dígitos da segunda posição são subtraídos produzindo um resultado igual a 3, subtraindo também o carry resulta em 2. Na terceira posição temos uma subtração igual a 2. De uma maneira geral os mesmos passos são seguidos na subtração binária. Mas de uma maneira mais simples, pois somente quatro casos podem ocorrer. Estes casos são: 0 - 0 = 0 0 - 1 = 11 => O resultado é 1 indo 1 para a próxima posição (VEM UM) 1 - 0 = 1 1 - 1 = 0 16 Exemplos: a) 101 -101 000 Veja no primeiro dígito 1 - 1 = 0, no segundo dígito 0 - 0 = 0, no terceiro dígito 1 - 1 = 0. Desta forma o resultado da subtração é 0002. b) 1101 -0101 1000 c) 0001 -0101 11_____ 11100 => Observe que o resultado é uma dízima, qual é o valor do resultado em decimal? (Veja a frente o sistema complemento de 2) d) 11,011 3,375 10,110 - 2,750 1_____ 00,101 0,625 2.1.3 – MULTIPLICAÇÃO BINÁRIA Quatro casos podem ocorrer na multiplicação. Estes casos são: 0 X 0 = 0 0 X 1 = 0 1 X 0 = 0 1 X 1 = 1 17 Exemplo: a) 101 X 10 000 +101__ 1010 2.1.4 – DIVISÃO BINÁRIA O processo de dividir um número binário por outro é o mesmo seguido para números decimais, o que chamamos de divisão longa, mas em números binários isso é mais simples vejamos o exemplo abaixo: Exemplo: a) 1000112 /1012 100011 /101 - 101 111 111_ 00111 101 0101 101 000 No primeiro passo analisamos os 3 primeiros bits do dividendo e vemos que ele é menor do que o divisor, então pegamos os 4 primeiros bits do dividendo e vemos que dessa vez ele é maior. Então 1000 / 101 resulta em 1, 1 X 101 = 101, finalmente 1000 – 101 igual a 0011. Agora baixamos 1 do dividendo, 111 / 101 = 1, 1 X 101 = 101, 111 – 101 = 010, baixamos novamente 1 do dividendo, 101 / 101 = 1, 1 X 101 = 101, 101 – 101 = 0. A divisão termina aí, veja que dividimos 35 por 5, resultando em 7. 18 b) 1001112 / 1102 100111 /110 110 110,1 00111 110 0011 0000 0110 0110 0000 2.2 – OPERAÇÕES ARITMÉTICAS HEXADECIMAL 2.2.1 – ADIÇÃO HEXADECIMAL Os números em hexadecimal são largamente utilizados na programação em linguagem de máquina e principalmente nas especificações de endereços de memória, então as operações aritméticas são bastante úteis, principalmente a adição e a subtração. A adição em hexadecimal é basicamente similar a adição em decimal, bastando lembrarmos que o maior número decimal é 9 e o maior número hexadecimal é F. Procedimentos para a soma em hexadecimal: • Se a soma for inferior ou igual a 15, o resultado será expresso em apenas um único dígito. • Se a soma for superior a 15, subtraia 16 e transporte 1 para o próximo dígito. Exemplos: a) 68h +24h 8Ch 1 19 b) 58h +4Dh A5h 1 c) 3A8h +23Eh 5E6h 2.2.2 – SUBTRAÇÃO HEXADECIMAL Procedimentos para a subtração em hexadecimal: • Converta o subtraendo para binário e faça seu complemento de 2 e converta novamente para hexadecimal, depois é só somar o minuendo e o subtraendo. Desconsidere o vai um. • Podemos também subtrair como fazemos no sistema decimal, quando o minuendo for menor que o subtraendo podemos emprestar da casa hexadecimal subseqüente, no sistema decimal quando fazíamos isso o número vinha com peso dez vezes maior, no sistema em hexadecimal esse número vem com peso dezesseis vezes maior. Podemos fazer isso também com o sistema octal de numeração. Veja os exemplos abaixo. Exemplos: 1 a) 68h 68h -24h +DCh 44h 44h 41 como foi emprestado b) 58h 58h 58h 1 (vira dezesseis + oito) -4Dh +B3h -4Dh (vinte quatro menos treze) 0Bh 0 Bh 20 3. COMPLEMENTO DE 2 3.1 – REPRESENTAÇÃO DE NÚMEROS COM SINAL O bit de sinal é usado para indicar se um números é positivo ou negativo, veja o exemplo abaixo, temos um número de 08 bits, o bit 7 chamamos de bit de sinal. A7 A6 A5 A4 A3 A2 A1 A0 0 1 0 1 0 0 0 1 O equivalente decimal é 81 A7 A6 A5 A4 A3 A2 A1 A0 1 1 0 1 0 0 0 1 O equivalente decimal é –81 Chegamos a conclusão que um número binário representado por 08 bits, podemos representar o decimal –128 a 127, ou seja, em binário: 10000000002= -128 011111112= 127 3.2 – COMPLEMENTO DE 2 Quando o número é positivo, a magnitude é representada de forma direta, um bit de sinal 0 é colocado em frente ao bit mais significativo. Se o número é negativo, a magnitude é representada em forma de complemento de dois, um bit de sinal 1 é colocado em frente ao bit mais significativo. Para obter o complemento de 2 de um número binário, façamos o seguinte: a) Negamos todos os bits, ou seja, o bit 0 se torna 1 e o bit 1 se torna 0. b) Ao resultado desse número “negado” somamos 1, o resultado dessa soma chamamos de complemento de 2. 21 Veja o exemplo: Complemento de 1 Complemento de 2 00000001 => 11111110 => 11111111 As máquinas digitais utilizam o complemento de 2 para as operações de adição e subtração. Vejamos agora outro exemplo, mas de uma subtração binária, utilizando um número binário de 08 bits e com representação de sinal. 00000001 -00000010 11111111 Veja que se transformar esse número binário para decimal, sem considerarmos o sinal, chegaremos a 255. Mas considerando obit sinal, vemos que o bit mais significativo é igual a 1, então o número é negativo, então faremos o complemento de 2 desse resultado. Complemento de 1 Complemento de 2 00000000 => 11111111 => 00000001 Portanto o resultado em decimal é –1. Obviamente, pois se repararmos o minuendo é 1 e o subtraendo é 2, o resultado é –1. 3.3 – SUBTRAÇÃO NO SISTEMA DE COMPLEMENTO DE 2 A operação na verdade envolve a operação de adição. Façamos a negação do subtraendo e somamos um a essa negação. Vejamos: Complemento de 1 Complemento de 2 00100 => 11011 => 11100 22 Agora façamos a soma do minuendo ao complemento de 2 do subtraendo: 01001 +11100 00101 Vemos que no bit mais significativo 1 + 1 = 0 e vai um, o vai um quando utilizamos o complemento de 2 é desconsiderado. Observe que o bit mais significativo é o sinal 4. FUNÇÕES E PORTAS LÓGICAS 4.1 – INTRODUÇÃO Por volta de 1850, o matemático inglês George Boole propôs através da publicação do trabalho intitulado “An investigation of the laws of thought”, numa notação numérica e algébrica, aquilo que até aquele momento somente era tratado de modo discursivo: a lógica. Somente em 1938, essa álgebra passou a ser utilizada na análise de circuitos com relês, na área de telefonia por Claude Shannon. A álgebra de Boole é caracterizada por uma estrutura muito simples, que consiste em atribuir o valor 1 a uma proposição verdadeira e o valor 0, a uma proposição falsa. Aplicando-se esse conceito a um circuito elétrico por exemplo, pode-se associar: Nível lógico 0 Nível lógico 1 aberto fechado sem tensão com tensão desligado ligado apagado aceso Quando ocorre uma associação desse tipo, com a tensão ou corrente associada ao valor 1, maior que a associada ao valor zero, dizemos que a lógica é positiva. Em caso contrário, temos lógica negativa. 23 4.2 – VARIÁVEIS E FUNÇÕES BOOLEANAS Qualquer sistema digital é definido por uma série de variáveis e funções booleanas, que correspondem as suas saídas e entradas. Essas variáveis são indicadas utilizando-se letras do alfabeto (A,B,C.....) e admitem somente os dois valores binários 0 e 1. As variáveis que correspondem às saídas do sistema são uma conseqüência ou função das entradas. 4.3 – FUNÇÕES BOOLEANAS E, OU E NÃO Todas as complexas operações de um sistema digital acabam sendo combinações de simples operações aritméticas e lógicas básicas, como soma, complementação, comparação, movimentação de bits. Estas operações são fisicamente realizadas por circuitos eletrônicos, chamados circuitos lógicos, constituídos de portas lógicas e outros dispositivos. As três funções básicas conhecidas como E(AND),OR(OU) e NÃO(NOT) serão apresentadas a seguir através da análise de um circuito elétrico bastante simples. 4.4 – FUNÇÃO LÓGICA E(AND) No circuito a lâmpada acende quando a chave A e a chave B estiverem fechadas. 24 4.5 – TABELA DE COMBINAÇÕES OU TABELA VERDADE Uma tabela de combinações ou tabela verdade é um quadro onde todas as situações possíveis são analisadas. O número de combinações possíveis é igual a onde n é igual ao número de entradas(variáveis de entrada) do sistema analisado. Considerando o circuito analisado, suponha as seguintes situações possíveis, associadas aos valores binários 0 e 1. Chave aberta = 0 lâmpada apagada = 0 Chave fechada = 1 lâmpada acesa = 1 A tabela verdade do circuito elétrico mostrado, fica apresentada da seguinte maneira: Chave A Chave B lâmpada aberta aberta apagada aberta fechada apagada fechada aberta apagada fechada fechada acesa A tabela verdade montada com valores binários representa genericamente a função E associada às situações possíveis do sistema em estudo. A B S 0 0 0 0 1 0 1 0 0 1 1 1 Dizemos que a função E(AND) realiza a operação de multiplicação lógica das variáveis de entrada. A expressão algébrica para a função, considerando duas variáveis A e B é escrita como: S=(A.B). O operador lógico representado pelo símbolo (.) deve ser lido como (e). 25 4.6 – PORTA LÓGICA E A porta lógica é o sistema físico que realiza a operação dada pela função lógica, sendo representada por um bloco. A seguir podemos ver o símbolo utilizado para a representação da porta lógica E e sua expressão algébrica. 4.7 – FUNÇÃO OU(OR) No circuito apresentado abaixo, a lâmpada acende quando a chave A ou a chave B ou ambas estiverem fechadas. A tabela verdade para o circuito da porta lógica OU é mostrada a seguir: A B S 0 0 0 0 1 1 1 0 1 1 1 1 Dizemos que a função OU(OR) realiza a operação de adição lógica das variáveis de entrada. A expressão algébrica para a função, considerando duas variáveis A e B é 26 escrita como: S=(A+B). O operador lógico representado pelo símbolo (+) deve ser lido como (ou). 4.8 – FUNÇÃO NOT(NÃO – PORTA INVERSORA) No circuito apresentado a abaixo a lâmpada acende somente quando a chave A estiver desligada. A tabela verdade para o circuito da porta lógica Não é mostrada a seguir: Dizemos que a função NÃO(NOT) realiza a operação de inversão ou complementação lógica da variável de entrada. A expressão algébrica para a função, considerando a variável A é escrita como: S=A´ (chamamos de A “ barrado”). O operador lógico representado pelo símbolo (´) deve ser lido como (NÃO),ou simplesmente complemento. A S 0 1 1 0 27 Baseado na álgebra de Boole as portas lógicas executam funções básicas que podem ser combinadas. A seguir são mostradas outras portas lógicas obtidas pela combinação das portas lógicas básicas. A função NÃO E(NAND) corresponde ao complemento da função E, cuja tabela verdade é apresentada a seguir: A função lógica NÃO E é também obtida através do circuito equivalente apresentado a seguir: A B S 0 0 1 0 1 1 1 0 1 1 1 0 28 A função NÃO E(NAND) corresponde ao complemento da função E, cuja tabela verdade é apresentada a seguir: A B S 0 0 1 0 1 0 1 0 0 1 1 0 A função lógica NÃO OU é também obtida através do circuito equivalente apresentado a seguir: Observação: As funções e portas lógicas E,OU,NÃO-OU e NÃO-E são generalizadas para n entradas. De acordo com a ANSI/IEEE std 91-1984 e IEC Publication 617-12 os símbolos para as portas lógicas estão apresentados na tabela abaixo: 29 5. CIRCUITOS LÓGICOS COMBINATÓRIOS 5.1 – INTRODUÇÃO Todo circuito lógico combinatório, por mais complexo que seja é o resultado da interligação de blocos que executam funções booleanas. Na figura a seguir é mostrado um circuito lógico e a expressão lógica que executa. 30 Podemos fazer a análise desse circuito escrevendo expressões parciais na saída de cada porta lógica, como se mostra no exemplo: Então,substituindo-se os termos na expressão se obtém: Portanto, Montando uma tabela da verdade para o circuito, podemos conhecer o resultado em todos os pontos. A B C D X=A+B Y=C . D Z=Y´ S=X . Z 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 31 5.2 – CIRCUITOS LÓGICOS OBTIDOS DE EXPRESSÕES BOOLEANAS Podemos obter um circuito lógico a partir de uma expressão booleana qualquer. O procedimento para resolução do problema consiste em se identificar as portas lógicas a partir da funções básicas que aparecem na expressão e desenhá-las com as respectivas ligações a partir das variáveis deentrada. Deve-se respeitar a hierarquia das operações para que o circuito lógico realize fielmente a expressão desejada. Como exemplo, vamos obter o circuito lógico que gera a função lógica dada a seguir: Primeiro identificamos na expressão as operações prioritárias: Depois utilizamos os blocos lógicos que já conhecemos que realizam essas operações: Em seguida, completamos o circuito,respeitando sempre a hierarquia das operações. 32 Por fim, o circuito lógico completo pode ser desenhado interligando as partes anteriores. 6. CIRCUITOS LÓGICOS COMBINATÓRIOS 6.1 – FORMAS CANÔNICAS A partir de uma tabela verdade podemos obter à expressão que representa o comportamento do circuito, e em seguida construir o circuito, usando as portas lógicas já estudadas. O processo básico de obtenção da expressão lógica é chamado forma canônica, que consiste na representação das condições de entrada assumindo os valores binários 0 ou 1. São portanto, duas as formas canônicas: uma representa as condições que produzem saída igual a 1 (soma de produtos), a outra representa as condições que produzirão saída 0 (produto de somas). 6.2 – SOMA DE PRODUTOS É obtida a partir da tabela verdade da seguinte maneira: a) um termo para cada linha da tabela verdade (que representa uma combinação de valores de entrada) em que a saída é 1. b) cada um desses termos é formado pelo produto (função AND) das variáveis de entrada, sendo que: X=0 => escreva a variável como X´ 33 X=1 => escreva a variável como X c) a função booleana será encontrada, unindo-se os termos obtidos por uma função OR. exemplo: A B C S Soma de Produtos 0 0 0 0 0 0 1 1 A´.B´.C 0 1 0 1 A´.B.C´ 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 A.B.C´ 1 1 1 0 S= A´.B´.C + A´B´C + ABC´ 6.3 – PRODUTO DE SOMAS É obtida a partir da tabela verdade da seguinte maneira: a) um termo para cada linha da tabela verdade (que representa uma combinação de valores de entrada) em que a saída é 0, b) cada um desses termos é formado pela soma lógica (função OR) das variáveis de entrada, sendo que: X=0 => escreva a variável como X´ X=1 => escreva a variável como X c) a função booleana será encontrada, unindo-se os termos obtidos (ou maxitermos) por uma função AND exemplo: 34 A B C S Produto de Somas 0 0 0 0 A + B + C 0 0 1 1 0 1 0 1 0 1 1 0 A + B´ + C´ 1 0 0 0 A´ + B + C 1 0 1 0 A´ + B + C´ 1 1 0 1 1 1 1 0 A´ + B´ + C´ S = (A+B+C). (A+B´+C´). (A´+B+C). (A´+B+C´). (A´+B´+C´) As duas formas canônicas podem ser obtidas da mesma tabela , resultando em expressões lógicas diferentes, porém equivalentes. S= A´.B´.C + A´B´C + ABC´ e S = (A+B+C). (A+B´+C´). (A´+B+C). (A´+B+C´). (A´+B´+C´) 7. FUNÇÕES E PORTAS LÓGICAS OU EXCLUSIVO (XOR) E COINCIDÊNCIA 7.1 – PORTA OU EXCLUSIVO A função ou exclusivo é aquela que apresenta a seguinte tabela verdade: A B S 0 0 0 0 1 1 1 0 1 1 1 0 35 A partir da tabela e usando soma de produtos, obtemos a função lógica: S= A´.B + A.B´ Essa função é denominada ou exclusivo e pode ser representada, escrevendo- se a função utilizando o operador lógico ⊕. S= A ⊕ B A função lógica OU Exclusivo é gerada pela porta lógica que tem seu símbolo representado a seguir: 7.2 – PORTA COINCIDÊNCIA A função coincidência apresenta a seguinte tabela verdade: A B S 0 0 1 0 1 0 1 0 0 1 1 1 A partir da tabela e usando soma de produtos, obtemos a função lógica: S= A´.B´ + A.B Essa função é denominada coincidência (XNOR) e é o complemento da função Ou exclusivo S= (A ⊕ B)´ A função lógica Coincidência é gerada pela porta lógica que tem seu símbolo representado a seguir: 36 8. ÁLGEBRA DE BOOLE 8.1 – INTRODUÇÃO Todo circuito lógico executa uma expressão booleana, e, por mais complexo que seja, é formado pela interligação de portas lógicas básicas que executam as funções lógicas. 8.2 – VARIÁVEIS E FUNÇÕES BOOLEANAS Qualquer sistema digital é definido por uma série de variáveis e funções booleanas, que correspondem as suas saídas e entradas. Essas variáveis são indicadas utilizando-se letras do alfabeto (A,B,C.....) e admitem somente os dois valores binários 0 e 1. As variáveis que correspondem as saídas do sistema são uma conseqüência ou função das entradas. 8.3 – FUNÇÕES BOOLENAS A seguir, faremos um breve estudo da álgebra de Boole com o objetivo de fazer simplificações em expressões booleanas, isto é, reduzir o número de termos numa expressão algébrica, para que o circuito lógico obtido a partir dessa seja mais simples. 8.4 – POSTULADOS, REGRAS E TEOREMAS PARA A SIMPLIFICAÇÃO DE EXPRESSÕES BOOLENAS Postulado da Inversão ou complementação 37 38 Utilizando os conceitos da Álgebra de Boole podemos simplificar expressões. Lembrando que a cada circuito corresponde uma expressão, veremos que simplificação de expressões implicam simplificações de circuitos. Para efetuarmos essas simplificações basta colocarmos em prática os postulados, identidades, teoremas e propriedades até aqui estudados. exemplo: 1 - evidenciamos o termo A: 2 - teorema de De Morgan 3 - Chamemos de Y, logo ,teremos então: como , logo: portanto: Circuito Antes da Simplificação: 39 Circuito depois da simplificação: Notamos que o circuito pode ser substituído por um fio. 8.5 – EXERCÍCIOS RESOLVIDOS DE SIMPLIFICAÇÃO 40 41 42 8.6 – UNIVERSALIDADE DAS PORTAS NAND E NOR Qualquer expressão lógica pode ser implementada usando apenas portas NAND ou portas NOR. Isso porque podemos representar portas OR, AND ou NOT usando apenas portas NAND ou NOR. 43 INVERSOR COM NAND OU NOR 44 FACULDADE DE ENGENHARIA DE SOROCABA ENGENHARIA ELÉTRICA CIRCUITOS LÓGICOS SIMPLIFICAÇÕES E CIRCUITOS COMBINACIONAIS PROFº FERREIRA email: ferreira@facens.br 2010 45 9. ÁLGEBRA DE BOOLE 9.1 – INTRODUÇÃO Todo circuito lógico executa uma expressão booleana, e, por mais complexo que seja, é formado pela interligação de portas lógicas básicas que executam as funções lógicas. 9.2 – VARIÁVEIS E FUNÇÕES BOOLENAS Qualquer sistema digital é definido por uma série de variáveis e funções booleanas, que correspondem as suas saídas e entradas. Essas variáveis são indicadas utilizando-se letras do alfabeto (A,B,C.....) e admitem somente os dois valores binários 0 e 1. As variáveis que correspondem as saídas do sistema são uma conseqüência ou função das entradas. A seguir, faremos um breve estudo da álgebra de Boole com o objetivo de fazer simplificações em expressões booleanas, isto é, reduzir o número de termos numa expressão algébrica, para que o circuito lógico obtido a partir dessa seja mais simples. 9.3 – POSTULADOS, REGRAS E TEOREMAS PARA A SIMPLIFICAÇÃO DE EXPRESSÕES BOOLEANAS Postulado da Inversão ou complementação 46 Utilizando os conceitos da Álgebra de Boole podemos simplificar expressões. Lembrando que a cada circuito corresponde uma expressão, veremos que simplificação de expressões implicam simplificações de circuitos. Para efetuarmos essas simplificações basta colocarmos em prática os postulados, identidades, teoremas e propriedades até aqui estudados. 47 EXEMPLO: 1 - evidenciamos o termo A: 2 – Aplicando teorema de De Morgan 3 - Chamemos de Y, logo ,teremos então: como , logo: portanto: Circuito Antes da Simplificação: 48 Circuito depois da simplificação:Notamos que o circuito pode ser substituído por um fio. 9.4 – EXERCÍCIOSOS RESOLVIDOS DE SIMPLIFICAÇÃO 49 50 51 52 9) S = A . C + B . D + A’ . C + A . B . C => variável de entrada C em evidência S = C . (A + A’ + A . B) + B . D => como A + A’ = 1 S = C ( 1 + AB) + B.D => 1 + AB = 1 S = C + B . D 10) Dado a tabela verdade abaixo, encontre a expressão boolenas e simplifique aplicando a álgebra boolena A B C S 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 PARA ENCONTRAR A EXPRESSÃO BOOLEANA ABAIXO FOI UTILIZADO SOMA DE PRODUTOS S = A'B'C'+A'B'C+A'BC'+AB'C'+AB'C+ABC' => colocando A’B’, BC’ e AB’ em evidência temos S = A’B’ (C’ + C) + BC’ (A’ + A) + AB’ (C’ + C) => C’ + C = 1, A’ + A = 1 S = A’ B’ + B C’ + A B’ => B’ em evidência temos S = B’ (A’ + A) + B C’ => A’ + A = 1 S = B’ +B C’ => aplicando o teorema de absorção temos 53 S = B’ + C’ 9.5 – EXERCÍCIOS a) (A + B) . (A + C) + B . C b) D.AB.CD.C.B ++ c) A . D + A . B . C + .A D + .A B.C d) A . B + .A .B C e) A . B + C.B.A .D+ A . B . C . D f) .A B . C + A . ( .A C + B .C ) g) D . (B + C . D) + .B D h) .A B . C . D + A . B . C . D RESPOSTAS a) A + B . C b) C . (D +B ) c) D + B . C d) B . ( A + C) e) A . B f) B . ( .A C + A . C ) g) D h) B . C . D 10. MAPA DE KARNAUGH Uma forma alternativa de simplificações de expressões boolenas é o Mapa de Karnaught. É um método gráfico de obter a simplificação de uma expressão boolena. 54 10.1 – Mapa de Karnaugh para 02 variáveis Considerando a tabela verdade a seguir: A B S 0 0 1 0 1 1 1 0 0 1 1 0 • O primeiro passo é preencher o Mapa de Karnaugh, como segue abaixo: � Podemos ver pela tabela verdade que quando A=0 e B=0 => S=1. Podemos ver que na intersecção de A=0 e B=0 o valor da célula (espaço) será preenchido com o valor 1. � Podemos ver pela tabela verdade que quando A=0 e B=0 => S=1. Podemos ver que na intersecção de A=0 e B=1 o valor da célula (espaço) será preenchido com o valor 1. � Podemos ver pela tabela verdade que quando A=0 e B=0 => S=1. Podemos ver que na intersecção de A=1 e B=0 o valor da célula (espaço) será preenchido com o valor 0. � Podemos ver pela tabela verdade que quando A=0 e B=0 => S=1. Podemos ver que na intersecção de A=1 e B=1 o valor da célula (espaço) será preenchido com o valor 0 • O segundo passo é circundar os vizinhos que possuem valores iguais a 1, sempre em pares, quartetos, octetos, etc. Podemos observar sempre juntando as vizinhanças em potência de 2. Quando não houver vizinhança devemos circundar a célula de forma isolada, dessa forma teremos também potência de 2. Quando todas as células valerem 1, a 55 resposta será S=1. Quando todas as células valerem 0, a resposta será S=0. Casos que não admitirem simplificação estudaremos adiante. Valores que a Variável A pode assumir Valores que a Variável B pode assumir Podemos verificar que para as células circundadas o valor da entrada boolena B muda de estado, ou seja, de 0 para 1, mas o valor da variável de entrada se manteve em 0. A variável A não muda de estado A variável B muda de estado de 0 para 1 Como a variável de entrada B muda de estado, podemos desconsiderá-las na resposta. Portanto a resposta para a saída S é: A Obs.: A variável de entrada A é “barrada”, pois o valor da linha onde fizemos o par, a variável de entrada A vale 0, se ela valesse 1 a resposta seria A. 10.2 – Mapa de Karnaugh para 03 variáveis Para 03 variáveis de entrada a forma de se utilizar o mapa de Karnaugh é idêntica. 56 Considerando a tabela verdade a seguir: Podemos definir então: � Par 1 => variável C muda de estado, portanto o resultado é: A .B, pois a variável de entrada A vale 0 para o par e a variável de entrada B vale 1 para o par � Quarteto 1 => Variáveis A e B mudam de estadao, portanto o resultado é: C, pois a variável de entrada C vale 1 para o quarteto. O resultado final para a saída S é: S = A .B + C A B C S 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 57 10.3 – Mapa de Karnaugh para 04 variáveis Para 04 variáveis seguimos da mesma forma. Considerando a tabela verdade a seguir: A B C D S 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 Podemos definir então: 58 � Par 1 => variável D muda de estado, portanto o resultado é: A .B.C, pois a variável de entrada A vale 0 para o par e a variável de entrada B e C valem 1 para o par � Quarteto 1 => variáveis A, C mudam de estado, portanto o resultado é: A .D � Quarteto 2 => Variáveis A e C mudam de estado, portanto o resultado é: B.D O resultado final para a saída S é: S = A .B.C + A .D + B.D 10.4 – Mapa de Karnaugh para 05 variáveis Com 05 variáveis o formato gráfico do Mapa de Karnaugh muda, mas a idéia é a mesma. Considerando tabela verdade a seguir: A B C D E S 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 59 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 60 Par 3 Par 1 Par 2 Par 4 Quadra 1 AA Quadra 2 Par 5 Podemos definir então: � Par 1 => A .B .D .E � Par 2 => A .B .D.E � Par 3 => A .B.D.E � Par 4 => A .B.C D � Par 5 => A.C.DE � Quarteto 1 => C.D .E � Quarteto 2 => A.B.C O resultado final para a saída S é: S = A .B.C + A .D + B.D 61 11. CIRCUITOS COMBINACIONAIS 11.1 – INTRODUÇÃO Circuitos combinacionais são aqueles em que a saída depende única e exclusivamente das combinações entre as variáveis de entrada. O circuito lógico combinacional é utilizado para solucionar problemas em que é necessária uma resposta diante de determinadas situações representadas pelas variáveis de entrada. Procedimentos para a construção de um circuito lógico Um circuito lógico obtido pode possuir diversas entradas e diversas saídas. Veja o diagrama abaixo. 62 11.2 – EXEMPLO DE CIRCUITO COM 02 VARIÁVEIS Projetar um circuito lógico para automatizar um hipotético semáforo entre os cruzamentos das ruas A e B, veja o desenho abaixo. � Descritivo de funcionamento: 1) Quando houver carros transitando somente na Rua B, o semáforo 2 deverá permanecer verde. 2) Quando houver carros transitando somente na Rua A, o semáforo 1 deverá permanecer verde. 3) Quando houver carros transitando nas Ruas A e B, o semáforo da Rua A deverá estar verde, pois é preferencial. � Estabelecendo Convenções: a) Existência de carro na Rua A: A=1 b) Não existência de carro na Rua A: A=0 c) Existência de carro na Rua B : B=1 d) Não existência de carro na Rua B: B=0 e) Verde do sinal 1 aceso: V1=1 f) Verde do sinal 2 aceso: V2=1 g) Quando V1 = 1 - Vermelho do semáforo 1 apagado: =0 - Verde do semáforo 2 apagado: V2=0 63 - Vermelho do semáforo 2 aceso: =1 � Montando a tabela verdade ENTRADAS SAÍDAS A B V1 Vm1 V2 Vm2 0 0 X X X X 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 o Mapa de Karnaugh para V1 A � Mapa de Karnaugh paraVm1 A � Mapa de Karnaugh para V2 B B A X 0 A 1 1 B B A X 1 A 0 0 64 A � Mapa de Karnaugh para Vm2 A Portanto podemos ver que V1=Vm2 e V2=Vm1 Circuito Lógico correspondente B B A X 1 A 0 0 B B A X 0 A 1 1
Compartilhar