Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DIGITAIS UNIDADE 1 – SISTEMAS DE NUMERAÇA� O Introdução Olá, caro estudante! Seja bem-vindo à unidade 1 de Sistemas Digitais. Aqui, abordaremos como são construı́dos os sistemas digitais, porém, para isso, vamos passar por alguns pontos conceituais antes. Um desses pontos relaciona-se aos sistemas de numeração. Mas por que devemos passar pelos sistemas de numeração? Bem, lembre-se de que os computadores manipulam somente números; números para representar as instruções e números para representar as informações que serão processadas. Temos, então, que abstrair a forma com que as informações numéricas são manipuladas. Avançando nossa abstração um pouco mais, para que possamos entender a manipulação, devemos saber como os valores são representados, ou seja, o que são os sistemas de numeração. Será que existem apenas os sistemas decimal e binário? Saiba, desde já, que não: existem vários outros sistemas de numeração, mas os sistemas decimal e binário são, digamos, os principais. Mas se o computador manipula apenas os sistemas binários, porque existem outros? Os sistemas de numeração servem também para a nossa abstração e para facilitar a manipulação numérica em algumas situações, as quais demandam representar os números de forma particular. Se o computador manipula informações numéricas, existe alguma álgebra por trás disso? Sim, a manipulação de valores binários é regida por uma álgebra denominada “álgebra booleana”. Assim, para conversarmos sobre sistemas numéricos e álgebra booleana, esta unidade abordará, inicialmente, os sistemas de numeração e a conversão entre eles. Veremos, ainda, algumas variações do sistema binário de representação. Depois de averiguarmos os sistemas numéricos, enveredaremos pela álgebra booleana, suas simbologias e teoremas. Preparado para iniciar o caminho, abordando os sistemas de numeração? Então, vamos lá! 1.1 Conversão entre sistemas de numeração Antes de iniciarmos nossa conversa sobre conversão entre sistemas de numeração, convém falarmos sobre o que vem a ser um sistema de numeração e quais são os principais, do ponto de vista computacional. De acordo com (TOCCI; WIDMER; MOSS, 2018), os sistemas numéricos mais comuns, sob o ponto de vista computacional, são: decimal; hexadecimal; octal; e binário. E o que eles têm em comum? E� o que você saberá a seguir, com a leitura deste tópico. 1.1.1 Sistemas de numeração Sistemas de numeração representam como um valor numérico é formalizado, ou seja, representa as regras para a representação de um número. Assim, retomando: o que os sistemas decimal, hexadecimal, octal e binário têm em comum é que todos eles podem ser fatorados. Por exemplo, caso tenhamos um número “Q” de quatro dı́gitos representado por meio de uma base hipotética qualquer denominada B, esse número poderia ser decomposto nos seguintes fatores: Q * B + Q * B + Q * B + Q * B Sendo Q o dı́gito mais signi�icativo e, consequentemente, Q o dı́gito menos signi�icativo. Para �icar mais claro, vamos supor um número de quatro dı́gitos na forma decimal de representação: 3546 = 3 * 10 + 5 * 10 + 4 * 10 + 6 * 10 3 3 2 2 1 1 0 0 3 0 3 2 1 0 gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Citando o exemplo acima de decomposição de um número, acabamos de mencionar a “base decimal”. Tenha em mente que a base decimal é a base que estamos acostumados a manipular em nosso cotidiano. Iniciando a nossa conversa pela base decimal, �ica mais fácil abstrair dois conceitos: os sı́mbolos admissı́veis e sua quantidade. Os computadores não são e�icientes para manipular valores na base decimal em função de sua forma de implementação, que é baseada em sistemas lógicos digitais. Em função de sua estrutura eletrônica, em que se admite apenas dois valores possı́veis de seus sinais internos, utiliza-se a “base binária”. E o que vem a ser sinais internos? Chamamos de “sinais internos”, no caso dos circuitos eletrônicos, os valores que trafegam nos �ios e componentes eletrônicos que compõem o computador. Esses valores são vinculados às voltagens aplicadas sobre uma determinada parte do circuito. Geralmente, podemos associar a presença de tensão elétrica positiva como “nı́vel lógico 1”, e a ausência de tensão elétrica como “nı́vel lógico 0”. A �igura a seguir ilustra esses dois nı́veis. Observe! Na �igura, a lâmpada representa um dı́gito de um valor binário — o chamado “bit” (Binary digIT, ou dı́gito binário). Em tal situação, a lâmpada estará representando o nı́vel “1” quando estiver acesa ou o nı́vel “0” quando apagada. Assim, temos (clique para ler): quantidade de sı́mbolos admissı́veis: 2. sı́mbolos admissı́veis: 0, 1. Quantidad e de símbolos admissíve is A quantidade de sı́mbolos que podemos usar em cada dı́gito é derivado do próprio nome da base. Na base decimal, por exemplo, podemos representar um dı́gito com um dos 10 sı́mbolos (ou valores) possı́veis Símbolos admissíve is 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Figura 1 - Analogia dos nı́veis lógicos “0” e “1” com a tensão inserida em uma lâmpada. Lâmpada acesa denota que está recebendo o nı́vel “1”, ao passo que se estiver apagada, o nı́vel lógico “0”. Fonte: Elaborada pelo autor, 2019. • • gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Sinais Internos - Definição gilso Realce Podemos falar que um número binário é formado por vários bits. O conjunto de bits, chamamos de “palavra”. Por exemplo, uma palavra de 8 bits tem o tamanho (ou largura) de 1 byte. Mas, então, podemos realizar a decomposição sobre um valor escrito em binário? A base binária não foge à regra de decomposição em fatores. Por exemplo, supondo o valor binário 1101 , temos: 1101 = 1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 Entendemos o que é um sistema de numeração, mas como realizar a conversão entre valores representados por bases numéricas distintas? Isso é o que veremos a seguir. 1.1.2 Conversão entre bases numéricas Acabamos de falar sobre a decomposição de um valor na base binária. Retomando o exemplo: 1101 = 1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 O que podemos abstrair dessa decomposição? Inicialmente, podemos usar os valores de 2 para de�inir o nome dessa representação binária: BCD8421. O nome “BCD” signi�ica “decimal codi�icado em binário” (binary-coded decimal). O valor 8421 é obtido pelas exponenciações (2 = 8 ; 2 = 4 ; 2 = 2 ; 2 = 1). Voltando à decomposição acima, podemos realizar outra abstração: qual é o resultado obtido se realizarmos a soma ”1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 ”? O resultado da expressão é 13. Então, podemos falar que: 1101 = 13 Esse processo pode ser aplicado para qualquer base de numeração quando desejamos transformar o número expresso em base decimal. Para demonstrar isso, vamos falar sobre dois outros sistemas de numeração: o sistema hexadecimal e o sistema octal. O sistema hexadecimal é muito utilizado pelos programadores e projetistas de sistemas computacionais por representar um número de forma mais condensada em relação ao sistema decimal ou ao sistema binário de representação numérica. Quantidade de sı́mbolos admissı́veis: 16. (2) (2) 3 2 1 0 (2) 3 2 1 0 n 3 2 1 0 VOCÊ QUER LER? Existem outras formas de representação numérica usando sistema binário. Para se adequar a outras aplicações ou circunstâncias, um valor numérico pode ser representado de formas distintas por meio de outros sistemas de representação binários. Para saber mais sobre o assunto, acesse o link: https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07 (https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07). 3 2 1 0 (2) (10) • https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07 gilso Comentário do texto Podemos falar que um número binário é formado por vários bits.gilso Comentário do texto O conjunto de bits gilso Realce gilso Comentário do texto “decimal codificado em binário” (binary-coded decimal) Gilson Melo Realce gilso Realce gilso Realce gilso Realce gilso Realce Sı́mbolos admissı́veis: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Observando os sı́mbolos admissı́veis, você notará a presença das letras “A” a “F”. Nesse caso, se �izermos uma correspondência direta com o sistema decimal, temos a faixa de “A”, representando o valor 10, até a letra “F”, denotando o valor “15”. A conversão de hexadecimal para decimal segue o mesmo processo de decomposição. Vamos supor o valor: 3A8C : 3A8C = 3 * 16 + 10 * 16 + 8 * 16 + 12 * 16 = 12288 + 2560 + 128 + 12 = 14988 Por �im, vamos demonstrar que esse processo de decomposição também serve para realizar a conversão de um valor representado na base octal para binário. O sistema octal foi muito usado pelos programadores e projetistas de sistemas computacionais quando a capacidade dos equipamentos era extremamente menor em relação aos recursos computacionais atualmente disponı́veis. Por esse motivo, grave bem, o sistema octal cedeu espaço para o sistema hexadecimal. Em relação às suas caracterı́sticas básicas, temos: quantidade de símbolos admissíveis: 8. símbolos admissíveis: 0, 1, 2, 3, 4, 5, 6, 7. Para proceder à conversão, vamos supor o valor 5461 : 5461 = 5 * 8 + 4 * 8 + 6 * 8 + 1 * 8 = 2560 + 256 + 48 + 1 = 2865 Até o momento, falamos sobre o processo de conversão da base “Q” para a base decimal. Mas como realizar o processo contrário? Como converter um valor expresso na base decimal para a base Q? Basta realizar divisões sucessivas do valor decimal pela base em questão. A �igura a seguir ilustra o processo de conversão dos valores acima calculados para as suas bases de origem. Con�ira! • (16) (16) 3 2 1 0 (10) • • (8) (8) 3 2 1 0 (10) Figura 2 - Processo de divisão de números representados na base decimal para as bases binária, hexadecimal e octal, utilizando-se divisões sucessivas. Fonte: Elaborada pelo autor, 2019. gilso Realce gilso Realce gilso Realce gilso Realce Na �igura anterior, podemos notar que o valor resultante da conversão é construı́do coletando-se o último quociente e todos os restos da divisão na ordem inversa de aparição. Mencionamos que as bases octal e hexadecimal são usadas principalmente por programadores e projetistas de sistemas computacionais, certo? Como elas são mais próximas do sistema binário, será que existe uma forma mais fácil para realizar a conversão entre binário para hexadecimal, octal e hexadecimal ou de octal para binário? Para respondermos essa questão, vamos analisar a quantidade de bits necessária para representarmos um valor em hexadecimal ou octal: Assim, cada dı́gito hexadecimal gerará uma sequência de quatro bits, e cada dı́gito octal será convertido em três bits. A �igura a seguir exempli�ica o processo de conversão entre essas bases de representação numérica, tomando como exemplo o valor binário de 16 bits: “1011011010101101”. Na �igura, perceba que há relação entre os agrupamentos de quatro ou três bits para cada dı́gito hexadecimal ou octal, respectivamente. O valor binário é representado de acordo com o padrão BCD8421. Mas o computador manipula números binários representando valores positivos e negativos. Como ele consegue diferenciar essas faixas de valores? Para responder essa questão, chegou a hora de mencionarmos que dentro da representação binária um sistema conhecido como “complemento 2” merece destaque. Para uma melhor abstração, vamos começar a falar sobre complemento 2 exempli�icando com o tipo “char” da linguagem “C” de programação. Esse tipo comumente é representado por uma palavra de 8 bits (1 byte). Assim, temos 2 valores possı́veis, ou seja, 256 valores que podem ser representados em uma variável do tipo “char”. Mas quais são esses valores? Por que essa faixa vai de -127 a 128? Porque que se utilizássemos na criação da variável o modi�icador de tipo “unsigned” (�icando “unsigned char”), a faixa iria de 0 a 255? Tudo isso ocorre devido ao fato de que o bit mais signi�icativo (MSB – Most Signi�icant Bit), nos casos em que não há a utilização do “unsigned”, representa o sinal. Dessa forma, dos oito bits do “char”, temos um bit de sinal e sete contendo a informação propriamente dita. Consequentemente, 2 denota que temos 128 valores possı́veis: 128 valores negativos (de -128 a -1) e 128 valores positivos (de 0 a 127). Hexadeci mal Quantidade de sı́mbolos admissı́veis: 16 Quantidade de bits necessários para cada dı́gito: log2(16) = 4 Octal Quantidade de sı́mbolos admissı́veis: 8 Quantidade de bits necessários para cada dı́gito: log2(8) = 3 Figura 3 - Conversão entre a base binária e as bases hexadecimal e octal. O processo de agrupamento de 4 ou 3 bits é realizado nos dois sentidos da conversão. Fonte: Elaborada pelo autor, 2019. 8 7 gilso Realce gilso Realce gilso Realce gilso Realce O nome “BCD” significa “decimal codificado em binário” (binary-coded decimal). O valor 8421 é obtido pelas exponenciações (2 = 8 ; 2 = 4 ; 2 = 2 ; 2 = 1). gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce E como representar um valor negativo? Bem, vamos tomar como exemplo prático, para facilitar a apresentação e os cálculos, um valor de quatro bits “1110 ”. De acordo com o que foi apresentado, temos: Bit MSB (bit sinal): “1” → indicando que o valor é negativo. Caso o MSB fosse 0, o número representado seria positivo. Valor propriamente dito: “110 ”. Caso o bit sinal fosse 0 (indicando um número positivo), poderíamos aplicar o BCD8421 diretamente sobre “110 ”. Porém, como o bit sinal vale “1”, não podemos falar que o valor representado é “-6 ”. Nesse caso, com o bit sinal indicando um valor negativo, para se conhecer o valor, temos que aplicar dois passos: Passo 1: inverte-se todos os bits do valor representado: “1110 ” → “0001 ”. Passo 2: soma-se ao valor obtido da inversão dos bits: “0001 ” + “0001 ” = “0010 ” (1 + 1 = 2). Assim, entendemos que o valor “1110 ” equivale a “-2 ”. Para achar o correspondente negativo a partir de um valor positivo ou para achar o correspondente positivo a partir de um valor negativo, devemos seguir os mesmos dois passos apresentados. Porém, tenha em mente que o computador não precisa realizar tais operações. O valor em complemento 2 já é diretamente obtido em suas operações de subtração, por exemplo. Como mencionamos, um computador manipula palavras expressas no sistema binário de representação numérica. Assim, como temos uma álgebra matemática para manipularmos o nosso sistema decimal, deve haver uma álgebra adequada para a manipulação de valores binários. A seguir, conversaremos sobre a álgebra booleana. (2) • • (2) (2) (10) • (2) (2) • (2) (2) (2) (2) (10) VAMOS PRATICAR?Agora é a sua vez de converter os valores a seguir. Os números sobrescrit parênteses representam as bases numéricas: gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce 1.2 Álgebra booleana: simbologia e teoremas Conhecer a álgebra booleana não somente é importante para abstrair o funcionamento dos sistemas computacionais, mas também para quando estivermos modelando os sistemas digitais. A princı́pio, um sistema digital pode ser representado por meio de uma expressão booleana, além de podermos utilizar outros elementos que serão vistos oportunamente. 1.2.1 Variáveis e expressões booleanas De acordo com Vahid e Laschuk (2008), uma álgebra objetiva a representação de valores por meio de letras e sı́mbolos. Mas o que são tais letras e sı́mbolos? Para facilitar nossa abstração, vamos supor um exemplo prático: imagine que a iluminação de um cômodo de uma casa tenha acendimento automático. Isso se dá de acordo com a seguinte condição: Se (alguém_presente_no_cômodoE já_anoiteceu) então luz = acesa Senão luz = apagada No nosso trecho apresentado de pseudocódigo, podemos identi�icar variáveis de entrada e saı́da. Note que todos os itens envolvidos manipulam valores binários. Então, poderemos reescrever o pseudocódigo usando uma expressão booleana: S = P “AND” L Dessa forma, podemos identi�icar os primeiros elementos da álgebra booleana: Expressão booleana: S = P “AND” L Variáveis booleanas: S ; P ; L Operador lógico: AND Variáveis de entrada As variáveis de entrada poderão, nesse caso, ser relacionadas a um sensor de presença (P) e um sensor de luminosidade (L). Ambos os sensores entregarão, ao sistema digital, valores binários. Variável de saída Essa variável é associada a uma saı́da (S) conectada a uma lâmpada, que será acesa ou permanecerá apagada. • • gilso Realce gilso Realce Mencionamos, há pouco, o termo “operador lógico”. Mas o que vem a ser um operador lógico? Conversaremos sobre isso a seguir. 1.2.2 Operadores lógicos O que vem a ser operador lógico? Um operador lógico realiza a conexão entre duas variáveis para que seja estabelecido um resultado. Os operadores lógicos básicos são: NOT, AND, OR, e, em sistemas digitais, são representados pelas “portas lógicas”. Assim, podemos falar que as portas lógicas são os elementos de abstração de mais baixo nı́vel em sistemas digitais. VOCÊ O CONHECE? Sistemas lógicos digitais, e a computação como um todo, são baseados na manipulação de valores binários. Valores binários remetem à lógica booleana e seria impossıv́el falar de álgebra booleana sem falar sobre George Boole, o idealizador da álgebra booleana. Para saber um pouco sobre a vida dele, você poderá ler a dissertação de Sousa (2005), disponıv́el em: https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf (https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf ). https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce portas lógicas são os elementos de abstração de mais baixo nível em sistemas digitais. gilso Realce Antes de falarmos sobre as propriedades e teoremas da álgebra booleana, vamos conversar sobre as portas lógicas. Convém mencionarmos que toda porta lógica estará associada a uma representação em diagrama esquemático (a notação utilizada no desenho do circuito), uma simbologia na álgebra booleana (para representar a porta nas expressões booleanas) e uma tabela-verdade (que contempla todas as combinações possı́veis dos valores que poderão ser assumidos pelas variáveis de entrada). Assim, para antecipar, podemos, também, representar o exemplo dado anteriormente (do acendimento automático da luz) por meio da expressão booleana, diagrama esquemático e tabela-verdade. Tais elementos são contemplados na �igura a seguir. Observe! CASO Um desenvolvedor de sistemas computacionais recebeu um projeto para automati a irrigação de uma pequena área. Tal irrigação levava em conta apenas a umidade solo, umidade medida em quatro pontos por intermédio de sensores. O prime pensamento que lhe veio à mente consistiu em implementar a solução microcontroladores (tais como PIC ou Arduino). Logo em seguida, ele re�letiu projeto é extremamente simples e, caso fosse utilizado algum microcontrolador, e �icaria subaproveitado. Além disso, os componentes utilizados para atuar na abert da água e a coleta do nıv́el de umidade seriam os mesmos caso implementasse u solução baseada em microcontroladores, ou baseada simplesmente na eletrôn digital. Dessa forma, ele resolveu, então, desenvolver a solução baseada na eletrôn digital. Para tanto, desenvolveu seu sistema lógico digital a partir das express booleanas que mapeavam o comportamento desejado para o sistema, de modo q fossem atendidas as funcionalidades da irrigação. gilso Comentário do texto Um desenvolvedor de sistemas computacionais recebeu um projeto para automatizar a irrigação de uma pequena área. Tal irrigação levava em conta apenas a umidade do solo, umidade medida em quatro pontos por intermédio de sensores. O primeiro pensamento que lhe veio à mente consistiu em implementar a solução em microcontroladores (tais como PIC ou Arduino). Logo em seguida, ele refletiu: o projeto é extremamente simples e, caso fosse utilizado algum microcontrolador, este ficaria subaproveitado. Além disso, os componentes utilizados para atuar na abertura da água e a coleta do nível de umidade seriam os mesmos caso implementasse uma solução baseada em microcontroladores, ou baseada simplesmente na eletrônica digital. Dessa forma, ele resolveu, então, desenvolver a solução baseada na eletrônica digital. Para tanto, desenvolveu seu sistema lógico digital a partir das expressões booleanas que mapeavam o comportamento desejado para o sistema, de modo que fossem atendidas as funcionalidades da irrigação. gilso Realce gilso Realce gilso Realce gilso Realce Na �igura, perceba, temos a tabela-verdade, a expressão booleana e o diagrama esquemático do sistema lógico digital para o acendimento automático da luz em função das variáveis “P” (presença de alguma pessoa no recinto) e “L” (intensidade da luminosidade do dia). Para que a luz se acenda, deve haver alguma pessoa no recinto “E” e a luminosidade externa ao recinto deve estar baixa. Note, ainda, que a tabela-verdade (à esquerda da �igura) representa todas as combinações possı́veis das variáveis de entrada — combinação 0 até combinação 3. O número de linhas da tabela-verdade é representado por 2 , em que “n” é o número de variáveis de entrada envolvidas. Os valores inseridos na tabela representam o próprio BCD8421. Mas o que realmente representam tais sı́mbolos? Descubra a seguir. Figura 4 - Tabela-verdade, expressão booleana e diagrama esquemático do sistema lógico digital para o acendimento automático da luz. Fonte: Elaborada pelo autor, 2019. n VOCÊ QUER VER? Podemos dizer que a base para a implementação de sistemas lógicos digitais é a construção da tabela-verdade. A tabela-verdade re�lete os resultados da expressão booleana, levando-se em conta todas as combinações possıv́eis das variáveis de entrada. Para saber um pouco mais sobre como preencher uma tabela-verdade, assista ao vıd́eo: https://www.youtube.com/watch?v=mVJXZit3msA (https://www.youtube.com/watch?v=mVJXZit3msA). https://www.youtube.com/watch?v=mVJXZit3msA gilso Realce Porta “NOT” A porta NOT realiza a inversão (ou complemento) da variável apresentada à sua entrada. Trata-se, portanto, de uma porta unária, ou seja, é representada por uma função que envolve apenas uma variável de entrada. Simbologias: A �igura a seguir ilustra o diagrama esquemático e a tabela-verdade referente à porta NOT. Saiba que o diagrama esquemático da porta NOT também pode ser denotado apenas com a circunferência quando associado a alguma outra estrutura ou porta lógica. Portas “AND” e “OR” A porta AND é uma porta binária, ou seja, para externar o seu valor de saı́da, são necessárias duas variáveis de entrada. A saı́da será “1” apenas se as duas entradas também forem “1” simultaneamente. Simbologias da porta AND: Na simbologia da porta AND, o sı́mbolo de “.” pode ser omitido. Assim, por exemplo, a expressão S = A . B também poderá ser escrita na forma S = AB. Por sua vez, a porta OR é, assim como a porta AND, uma porta binária. A saı́da será “0” apenas se as duas entradas também forem “0” simultaneamente. Simbologias da porta OR: A �igura a seguir ilustra os diagramas esquemáticos e as tabelas-verdade referentes às portas AND e OR. • Figura 5 - Diagrama esquemático e tabela-verdade de uma porta NOT. Fonte: Elaborada pelo autor, 2019. • • gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce As portas AND e OR poderão ser conectadas a uma porta NOT em suas saı́das,gerando as portas universais NAND e NOR, respectivamente. Saiba mais sobre elas a seguir! Portas “NAND” e “NOR” Como mencionado anteriormente, as portas NAND e NOR são portas ditas “universais”, ou seja, podemos usar somente portas NAND ou somente portas NOR para implementar nosso sistema lógico digital. Os valores de saı́da das suas tabelas-verdade são, portanto, os valores complementados das saı́das das portas AND e OR, respectivamente. A �igura a seguir ilustra os diagramas esquemáticos e as tabelas-verdade referentes às portas NAND e NOR. Figura 6 - Tabelas-verdade e diagramas esquemáticos relativos às portas AND e OR. Fonte: Elaborada pelo autor, 2019. gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Como você pode notar nos diagramas esquemáticos da �igura anterior, o sinal da negação anexado às saı́das das portas AND e OR consiste apenas na circunferência. Como mencionado anteriormente, caso a negação esteja atrelada a alguma outra estrutura, para se representar a negação, basta utilizar a circunferência sem a seta indicativa da direção do �luxo do sinal (entrada → saı́da). Portas “XOR” e “XNOR” Por �im, temos as portas EXCLUSIVE-OR (OU-EXCLUSIVO ou XOR) e a porta COINCIDE�NCIA (ou XNOR). A porta XOR apresenta a saı́da valendo 1 se, e somente se, tivermos um único valor “1” representado pelas suas entradas. Por outro lado, a porta XNOR retrata o inverso da porta XOR, ou seja, a saı́da será “1” caso os dois valores de entrada sejam iguais. A �igura a seguir ilustra os diagramas esquemáticos, as simbologias e as tabelas-verdade referentes às portas XOR e XNOR. gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Na �igura anterior, podemos observar o diagrama esquemático da porta XNOR como sendo a porta XOR complementada. Porém, podemos encontrar também a porta XNOR sendo representada como uma porta AND com linha dupla junto às suas entradas. VOCÊ SABIA? Você sabia que a maioria dos operadores vistos aqui podem ser aplic programação para realizar a manipulação “bit-a-bit”? Essa técnica, deno “bitwise” permite que, por exemplo, bits sejam alterados dentro de uma v Para saber mais, você poderá acessar a apostila escrita por Roberto Renna disponıv́el https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apo _programacao_arduino.pdf (https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/ap e_programacao_arduino.pdf ). https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apostila_de_programacao_arduino.pdf gilso Realce gilso Realce gilso Comentário do texto Você sabia que a maioria dos operadores vistos aqui podem ser aplicados na programação para realizar a manipulação “bit-a-bit”? Essa técnica, denominada “bitwise” permite que, por exemplo, bits sejam alterados dentro de uma variável. Para saber mais, você poderá acessar a apostila escrita As portas aqui mencionadas farão parte das expressões booleanas (representando os operadores lógicos ou operadores booleanos). Para que possamos manipular as expressões, teremos que aplicar os teoremas da álgebra booleana, os quais veremos a seguir. 1.2.3 Teoremas da álgebra booleana Os teoremas da álgebra booleana nortearão a manipulação das expressões booleanas para, por exemplo, desenhar o diagrama esquemático ou calcular o valor resultante a partir da combinação dos valores das variáveis de entrada. Para começarmos, podemos mencionar a precedência dos operadores: 1º: parênteses 2º negação 3º operador AND 4 º operador OU, XOR, XNOR Assim, ao nos depararmos com, por exemplo, a expressão booleana “S = (~A + B) . C”, teremos o diagrama esquemático e a tabela-verdade ilustrados a seguir. Con�ira! VAMOS PRATICAR?Para uma melhor memorização do comportamento dos operadores lógic suas respectivas simbologias frente aos diagramas esquemáticos, con tabela-verdade e indique a simbologia dos operadores a seguir: a) NAND b) XOR c) OR d) Coincidência e) AND • • • • gilso Realce gilso Realce gilso Realce A �igura anterior ilustra a tabela-verdade e o diagrama esquemático relativo à expressão “S = (~A + B) . C”. Perceba que a ordem de manipulação dos operadores segue a precedência da álgebra booleana. A presença de uma inversão ligada a uma variável faz com que, no caso, a coluna relativa a “~A” receba o complemento de “A”. Em função dos parênteses, a primeira operação a ser realizada consiste no operando OR (marcado em azul e denotado por “1º”). Após o preenchimento da coluna referente ao resultado do operador OR, efetua-se o operador AND — marcado na cor vermelha e referenciado como o 2º passo a ser tomado. A coluna referente ao resultado do operador AND (delimitada pelo retângulo vermelho) representa os resultados da expressão booleana, tendo em vista todas as combinações possı́veis envolvendo as variáveis de entrada “A”, “B” e “C”. Além das precedências, temos que nos atentar para o fato de que, assim como a álgebra matemática, a álgebra booleana também apresenta propriedades comutativa, associativa e distributiva, as quais você entenderá melhor a seguir! • Propriedade Comutativa: a ordem das variáveis não interfere no resultado produzido. Exemplos: A . B = B . A A + B = B + A A ⊕ B = B ⊕ A • Propriedade Associativa: caso tenhamos variáveis conectadas por meio do mesmo tipo de operador, poderemos criar grupos (associar) para que possamos de�inir a ordem de manipulação. Exemplos: ( A . B ) . C = A . ( B . C ) = A . B . C ( A + B ) + C = A + ( B + C ) = A + B + C ( A ⊕ B ) ⊕ C = A ⊕ ( B ⊕ C ) = A ⊕ B ⊕ C Figura 7 - Tabela-verdade e diagrama esquemático relativos à expressão S = (~A + B) . C. Fonte: Elaborada pelo autor, 2019. gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce • Propriedade Distributiva: na propriedade distributiva, procedemos à distribuição não somente da variável, mas também do operador associado à variável. Exemplos: A . ( B + C ) = A . B + A . C A + B . C = ( A + B ) . ( A + C ) Além das propriedades citadas, uma quarta propriedade merece destaque na manipulação de expressões booleanas. Trata-se do “Teorema de De Morgan”. Este teorema pode ser aplicado quando um operador “NOT” incidir, além das variáveis, sobre o próprio operador “AND” ou “OR”. Nesse caso, temos que proceder, além da inversão das variáveis, à alteração do próprio operador, trocando o “AND” pelo “OR” e vice-versa: a) ~( A + B ) = ~A . ~B b) ~( A . B ) = ~A + ~B Nesses casos, temos, em (a), a incidência da negação sobre o operador “OR”. Nota-se que, após a aplicação do Teorema de De Morgan, o operador OR foi alterado para AND e as variáveis foram complementadas. Em (b), a negação abrange o operador AND, razão pela qual apareceu, após a aplicação do teorema, o operador OR. Além dos teoremas e das propriedades, a álgebra booleana também contempla os postulados (IDOETA; CAPUANO, 2012): complemento; idempotência; identidade; elemento neutro; elemento de absorção. Con�ira! Pode ser aplicado sobre um valor booleano ou envolvendo operadores. No caso de valores lógicos e das portas AND e OR, temos: ~0 = 1 ~1 = 0 A . ~A = 0 A + ~A = 1 Envolve a aplicação de um número par de negações, resultando na própria variável envolvida: ~(~ A ) = A Ao aplicarmos um operador “AND” ou “OR” sobre apenas uma variável, temos, como resultado, a própria variável: A + A = A A . A = A • • • • Complemento Idempotência Identidade Elemento neutro gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Se aplicarmos as propriedades e postulados citados, podemos abstrair as seguintes propriedades: A + A . B = A A + ~A . B =A + B (A + ~B) . B = A . B A . B + A . ~B = A (A + B) . (A + ~B) = A A . (A + B) = A A . (~A + B) = A . B A .B + ~A . C = (A + C) . (~A + B) Juntando o Teorema de De Morgan com a idempotência, conseguimos uma aplicabilidade prática: reescrever a expressão de forma mais simples. Por exemplo, imagine que temos a seguinte expressão lógica: S = ~A . ~B Nessa expressão, temos operador NOT sendo aplicado a cada variável. Assim, podemos aplicar os seguintes passos: ~A . ~B = ~(~(~A . ~B)) → nega-se a expressão duas vezes para que, de acordo com a idempotência, não se altere seu valor. ~(~(~A . ~B)) = ~(~~A + ~~B) → aplica-se o Teorema de De Morgan na inversão mais interna. ~(~~A + ~~B)= ~(A + B) → aplica-se a idempotência nas inversões que precedem as variáveis “A” e “B”. S = ~(A + B) → expressão reescrita usando apenas um operador NOR. Foi mencionado, anteriormente, que operadores NAND e NOR são ditos como universais. Dessa forma, aplicando os princı́pios vistos aqui, vamos representar os operadores básicos utilizando somente NAND e NOR: Operador NOT: S = ~A → S = ~(A . A) S = ~A → S = ~(A + A) Operador AND: S = A . B → ~( ~(A . B) . ~(A . B)) S = A . B → ~( ~(A + A) + ~(B + B)) Operador OR: S = A + B → ~( ~(A . A) . ~(B . B)) O elemento neutro representa o valor lógico (0 ou 1) que, quando aplicado a um operador, não modi�ica o valor resultante: A + 0 = A A . 1 = A O elemento de absorção, ao ser aplicado sobre um operador, faz com que, independentemente do valor da variável envolvida, o operador resulte no próprio valor aplicado: A + 1 = 1 A . 0 = 0 • • • • • • • • Elemento de absorção gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce S = A + B → ~( ~(A + B) + ~(A + B)) Para �inalizar, convém mencionar um fato interessante na álgebra booleana: o princı́pio da dualidade. Esse princı́pio menciona que a partir de uma expressão booleana, ao efetuarmos a troca dos operadores lógicos (de AND para OR e vice-versa), além de trocarmos os valores de “0” para “1” e vice-versa, mantemos a equivalência entre as duas expressões booleanas. Como exemplos, podemos citar as expressões booleanas abaixo: A + 0 = A ↔ A . 1 = A A + 1 = 1 ↔ A . 0 = 0 A + A = A ↔ A . A = A A + ~A = 1 ↔ A . ~A = 0 Com a aplicação das propriedades citadas, já começamos a enveredar pelo campo da otimização, simpli�icação ou otimização de expressões booleanas. Simpli�icar uma expressão resulta em várias melhorias ao realizarmos a implementação fı́sica dos sistemas lógicos digitais. VAMOS PRATICAR?Conversamos sobre como preencher uma tabela-verdade produzindo, inc resultado da expressão booleana para cada combinação das variáveis de Construa a tabela-verdade das expressões a seguir: a) S = A + ~B.C b) S = A.(B + C) + ~A(C + ~D) c) S = A + ~A.B d) S = (A ⊕ B).(A + ~B) Síntese Chegamos ao �im desta unidade. Nesse nosso diálogo, você teve o primeiro contato com o mundo dos sistemas lógicos digitais. Inicialmente, abordamos os sistemas de numeração e como fazemos para realizar a conversão dentre os sistemas mais importantes do ponto de visto computacional: decimal; hexadecimal; octal; e binário. Como você pôde ver, essa área é baseada na manipulação de palavras cujos elementos (dı́gitos) são representados por bits. Por ser baseado na manipulação de bits, temos que conhecer, entender e manipular a álgebra booleana, seus operadores, propriedades e postulados. Na parte prática, os operadores lógicos são representados pelas portas lógicas, componentes básicos da eletrônica digital. gilso Realce gilso Realce gilso Realce Nesta unidade, você teve a oportunidade de: ter um contato inicial com sistemas de numeração; conhecer, compreender e manipular informações utilizando a álgebra booleana; construir tabelas-verdade para representar o comportamento de uma expressão booleana em função de todas as combinações possíveis de suas variáveis de entrada; identificar e saber utilizar as propriedades, operadores e postulados. • • • • Bibliografia CANAL CEFOR. Criação de Tabela-verdade, 12 maio 2014. Disponı́vel em: (https://www.youtube.com/watch?v=mVJXZit3msA)https://www.youtube.com/watch?v=mVJXZit3msA (https://www.youtube.com/watch?v=mVJXZit3msA). Acesso em 16/09/2019. IDOETA, I. V.; CAPUANO, F. G. Elementos de Eletrônica Digital. 41. ed. São Paulo: E� rica, 2012. INSTITUTO FEDERAL DE SANTA CATARINA. DIG222802 AULA07, 01 jun. 2016. Disponı́vel em: (https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07)https://wiki.sj.ifsc.edu.br/wiki/index.php/ DIG222802_AULA07 (https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07). Acesso em: 16/09/2019. RENNA, R. B. Apostila de Tópicos Especiais em Eletrônica II: Introdução ao microcontrolador Arduino. Niterói: Universidade Federal Fluminense, 2014. Disponı́vel em: (https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apostila_de_programacao_arduino.pdf )https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apostila_de_programacao_arduino.pdf (https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apostila_de_programacao_arduino.pdf ). Acesso em: 16/09/2015. SOUSA, G. S. Uma reavaliação do pensamento lógico de George Boole à luz da história da Matemática. Dissertação (Mestrado) – Departamento de Pós-graduação em Educação, Universidade Federal do Rio Grande do Norte, Natal, 2005. Disponı́vel em (https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf)https://repositorio.ufrn.br/j spui/bitstream/123456789/14224/1/GiselleCS.pdf (https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf). Acesso em: 16/09/2019. TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas Digitais: Princípios e Aplicações. 12. ed. São Paulo: Pearson Education do Brasil, 2018. VAHID, F.; LASCHUK, A. Sistemas Digitais: Projeto, otimização e HDLs. Porto Alegre: Bookman, 2008. https://www.youtube.com/watch?v=mVJXZit3msA https://www.youtube.com/watch?v=mVJXZit3msA https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07 https://wiki.sj.ifsc.edu.br/wiki/index.php/DIG222802_AULA07 https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apostila_de_programacao_arduino.pdf https://www.telecom.uff.br/pet/petws/downloads/apostilas/arduino/apostila_de_programacao_arduino.pdf https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf https://repositorio.ufrn.br/jspui/bitstream/123456789/14224/1/GiselleCS.pdf SISTEMAS DIGITAIS UNIDADE 2 - PORTAS LO� GICAS Fernando Cortez Sica Introdução Olá, prezado estudante! Bem-vindo à segunda unidade de Sistemas Digitais. Você sabe como representar um circuito lógico, propriamente dito, a partir de uma expressão booleana? Nesta unidade, abordaremos a maneira pela qual podemos obter circuitos lógicos usando componentes reais. Uma outra questão que pode ocorrer é: as propriedades e leis da álgebra booleana serão empregadas neste estudo? Sim, a álgebra booleana será necessária para que possamos utilizar as portas lógicas, que constituem a abstração mais básica dos sistemas digitais, representando os operadores lógicos. Saiba que a álgebra digital será útil para, por exemplo, realizarmos simpli�icações de expressões booleanas. Mas como montar a expressão lógica (booleana) para construir um circuito que atenda a um certo objetivo? Falaremos também sobre como extrair a expressão booleana de uma tabela-verdade, por exemplo, que representa o comportamento do circuito a ser criado. Para que possamos caminhar por esses pontos, iniciaremos com a implementação de circuitos lógicos a partir de expressões booleanas conhecidas. Quando estivermos familiarizados com a forma de implementar circuitos, migrando as expressões para um mundo mais prático, será o momento de extrairmos as expressões a partir de tabelas-verdade. Como a extração de expressões pode implicar em expressões não otimizadas,fecharemos esta unidade falando sobre como otimizar, ou simpli�icar, as expressões usando a álgebra booleana, e, por �im, usando os mapas de Karnaugh. Com essa etapa de simpli�icação, obteremos circuitos reduzidos e otimizados. Preparado para colocar as mãos na massa, ou melhor, nos circuitos? Então, vamos lá! 2.1 Obtenção do circuito lógico a partir de expressões booleanas Você já deve saber como transformar as expressões em diagramas esquemáticos usando as portas lógicas básicas (“NOT”, “AND”, “OR”, “NAND”, “NOR”, “XOR” e “XNOR”), certo? Vamos, contudo, dar uma reforçada nesse ponto, pois é a base para a implementação fı́sica dos sistemas lógicos digitais. Acompanhe! 2.1.1 Famílias lógicas Para a implementação fı́sica, vamos relembrar da precedência na álgebra booleana, pois teremos que segui-la para poder proceder à interligação das portas lógicas. Dessa forma, as ligações ocorrerão na seguinte ordem (TOCCI; WIDMER; MOSS, 2018), clique para ler: 1º: parênteses; 2º negação (operador NOT); • • gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce 3º operador AND; 4 º operador OU, XOR, XNOR. Em segundo lugar, é interessante conhecermos quais os componentes que utilizaremos para a montagem de nossos circuitos. Em linhas práticas e gerais, existem dois grandes grupos de circuitos integrados (componentes eletrônicos que encapsulam vários transistores e, no nosso caso, implementam os operadores lógicos): os componentes baseados na tecnologia TTL (“Transitor-transitor Logic”, ou Lógica de transitor- transitor) e os baseados em CMOS (“Complementary Metal-Oxide Semiconductors” – Semicondutor de metal- óxido complementar). Além dessas duas famı́lias, podemos citar: ECL (emitter-coupled logic); BiCMOS (bipolar complementary metal-oxide semicondutor); GaAs (arseneto de gálio). Cada tecnologia tem as suas caracterı́sticas básicas, como a velocidade de trabalho, a potência dissipada e a voltagem requerida para seu funcionamento. • • VOCÊ SABIA? Você sabia que existem simuladores de circuitos lógicos que podem ser b em computadores e celulares, e que também podem ser manipulados onl dos simuladores que merecem destaque é o Tinkercad, que poderá ser a em: tinkercad.com. Com ele, você poderá montar soluções baseadas em s lógicos e na utilização do Arduino. • • • gilso Realce gilso Realce gilso Comentário do texto (“Transitor-transitor Logic”, ou Lógica de transitortransitor) gilso Comentário do texto (“Complementary Metal-Oxide Semiconductors” – Semicondutor de metalóxido complementar). gilso Comentário do texto Você sabia que existem simuladores de circuitos lógicos que podem ser baixados em computadores e celulares, e que também podem ser manipulados online? Um dos simuladores que merecem destaque é o Tinkercad, que poderá ser acessado em: tinkercad.com. Com ele, você poderá montar soluções baseadas em sistemas lógicos e na utilização do Arduino. gilso Comentário do texto emitter-coupled logic gilso Comentário do texto (bipolar complementary metal-oxide semicondutor) gilso Comentário do texto (arseneto de gálio). gilso Realce gilso Realce gilso Realce gilso Realce Em função de praticidade, utilizaremos a linha TTL, que apresenta os seguintes parâmetros básicos: Fan-out (número de portas lógicas que poderemos conectar à saída de outra porta): geralmente 10; Tensão de alimentação: 5V; Faixas de tensões para a representação dos níveis lógicos: Nível lógico “0”: de 0V a 0.8V. Nível lógico “1”: de 2.4V a 5V. Outro motivo para se adotar o TTL consiste na sugestão da utilização do Tinkercad para que possamos testar os circuitos implementados. O ambiente em questão contempla um simulador online de circuitos, facilitando seu manuseio em diversas situações e locais. Antes de iniciarmos nossa montagem, é interessante mencionar sobre as “pinagens” dos circuitos integrados que poderão ser utilizados. A �igura a seguir ilustra dois circuitos integrados da linha TTL: o 7404 (implementa portas “NOT”) e o 7408 (que contempla portas “AND”). VOCÊ QUER LER? Em função das caracterıśticas distintas entre TTL e CMOS, os circuitos lógicos não devem misturar essas duas tecnologias, ou seja, utiliza-se apenas TTL ou apenas CMOS. Porém, caso haja realmente a necessidade de “interfacear” circuitos CMOS ↔ TTL, você pode saber como proceder por meio da leitura do artigo do IFSC (2018). Disponıv́el em: https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_16_- _Eletr%C3%B4nica_Digital_1_-_Gradua%C3%A7%C3%A3o (https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_16_- _Eletr%C3%B4nica_Digital_1_-_Gradua%C3%A7%C3%A3o). • • • • • https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_16_-_Eletr%C3%B4nica_Digital_1_-_Gradua%C3%A7%C3%A3o gilso Comentário do texto (“Transitor-transitor Logic”, ou Lógica de transitortransitor) gilso Realce gilso Comentário do texto (“Transitor-transitor Logic”, ou Lógica de transitortransitor) gilso Realce gilso Realce gilso Realce Na �igura, podemos observar que os circuitos integrados 7404 e 7408 possuem 14 pinos, sendo que o pino 7 deve ser ligado ao terra (GND – Ground) e o pino 14 ao terminal positivo da alimentação (VCC). Os pinos são numerados no sentido anti-horário e iniciam sua contagem no lado esquerdo de uma marca (chanfro – componente visto por cima). Observa-se, ainda, que o 7404 possui, encapsuladas, seis portas inversoras, e o 7408, quatro portas “AND”. Mas, como implementar, de fato, as expressões booleanas utilizando-se portas lógicas? Conversaremos sobre isso a seguir. 2.1.2 Implementação de sistemas lógicos digitais a partir de expressões booleanas Para iniciar nossa trajetória implementando circuitos a partir de expressões booleanas, vamos supor que desejamos construir um circuito cuja expressão booleana hipotética consiste em: S = A . B + C . (~A + B) Usando a sequência de precedência, teremos os passos listados a seguir. Con�ira! 1º Passo: aplicar a negação na variável “A”, para depois poder usar a saída da porta “NOT” na parcela “~A + B”. 2º Passo: desenvolver, paralelamente, as parcelas “A . B” e “(~A + B)”. 3º Passo: utilizar uma porta “AND” para integrar a variável “C” e a saída de “(~A + B)”. 4º Passo: utilizar uma porta “OR”, recebendo as saídas da porta “AND” do terceiro passo com a saída da porta “AND” da parcela “A . B”. Figura 1 - Diagrama das pinagens dos circuitos integrados TTL modelos 7404 (com seis portas NOT) e 7408 (com quatro portas AND). Fonte: Elaborada pelo autor, 2019. • • • • gilso Comentário do texto (“Transitor-transitor Logic”, ou Lógica de transitor transitor) gilso Nota Pino 7 Ligado no Terra (GND – Ground) gilso Nota Pino 7 Ligado no Terra (GND – Ground) gilso Realce gilso Realce gilso Nota Pino 14 Ligado na Alimentação ( VCC ) gilso Nota Pino 14 Ligado na Alimentação ( VCC ) gilso Realce gilso Realce gilso Realce gilso Realce gilso Nota Possui, encapsuladas, seis portas inversoras gilso Nota Possui, encapsuladas, 4 portas AND Por meio da aplicação da sequência exposta acima, temos o diagrama esquemático presente na �igura a seguir. A �igura contém as ligações realizadas no simulador “tinkercad.com”, em que foram utilizados os circuitos integrados tais quais são encontrados no mercado. Na �igura anterior, temos o diagrama esquemático e as ligações fı́sicas relativas à expressão S = A . B + C . (~A + B). No diagrama esquemático, os números associados às portas lógicas representam os números dos pinos associados aos circuitos integrados (7404 = portas NOT; 7432 = portas OR; 7408 = portas AND). As colunas (linhas verticais) do protoboard (placa para ligações) são barramentos, ou seja, constituem os mesmos pontos para ligações. Os �ios em laranja são as entradas e o �io verde, a saı́da “S”. Os demais �ios são responsáveis pelas ligações entre as portas. Por exemplo, o �io azul, ligado no pino 2 do 7404, representa a saı́da de uma portaNOT. A outra extremidade do �io azul está conectada ao pino 1 do 7432, ou seja, em uma entrada de uma das portas OR encapsuladas nesse circuito integrado. Figura 2 - Diagrama esquemático e ligações fı́sicas (feitas no simulador tinkercad.com) relativos à expressão booleana S = A . B + C . (~A + B). Fonte: Elaborada pelo autor, 2019. gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Já que mencionamos a implementação em simuladores, mencionamos aqui uma dica de como produzir os valores das variáveis por meio de um botão. O circuito a seguir ilustra uma das formas que poderá ser usada no circuito. No caso, seriam necessários três circuitos idênticos, cada um produzindo uma das variáveis. CASO Um projetista e implementador de sistemas lógicos digitais foi incumbido de reali um certo projeto. Porém, ele deseja fazer um teste do circuito produzido a �im veri�icar se o circuito funciona como de�inido em relação às questões de tempo e propagação de sinais. Ele também deseja testar algumas versões distintas do proj envolvendo tecnologias distintas de circuitos integrados e também envolvendo u versão desenvolvida em HDL (Hardware Description Language – Linguagem Descrição de Hardware). Como existem várias alternativas, e para não perder tempo e dinheiro construin vários circuitos lógicos antes de tomar a decisão, ele resolveu simular todas possibilidades. Com o resultado da simulação, pôde veri�icar o verdade comportamento das versões implementadas. Como lição desse caso, sugerimos q independentemente da complexidade e tamanho do circuito a ser produzido conveniente realizar simulações prévias do circuito sob desenvolvimento. Figura 3 - Forma de inserir um botão para gerar os nı́veis lógicos “1” ou “0” relativos a uma variável a ser manipulada pelo circuito digital. Fonte: Elaborada pelo autor, 2019. gilso Comentário do texto Um projetista e implementador de sistemas lógicos digitais foi incumbido de realizar um certo projeto. Porém, ele deseja fazer um teste do circuito produzido a fim de verificar se o circuito funciona como definido em relação às questões de tempo e de propagação de sinais. Ele também deseja testar algumas versões distintas do projeto, envolvendo tecnologias distintas de circuitos integrados e também envolvendo uma versão desenvolvida em HDL (Hardware Description Language – Linguagem de Descrição de Hardware). Como existem várias alternativas, e para não perder tempo e dinheiro construindo vários circuitos lógicos antes de tomar a decisão, ele resolveu simular todas as possibilidades. Com o resultado da simulação, pôde verificar o verdadeiro comportamento das versões implementadas. Como lição desse caso, sugerimos que, independentemente da complexidade e tamanho do circuito a ser produzido, é conveniente realizar simulações prévias do circuito sob desenvolvimento. gilso Realce Perceba que quando o botão for pressionado, a tensão de +5V é externada do circuito, fazendo com que a variável represente o nı́vel lógico “1”. Por outro lado, quando o botão não estiver pressionado, o circuito produzirá o nı́vel lógico “0”, em que o referencial de terra é externado por intermédio do resistor de 300 ohms. Tal resistor é denominado como “pull-down” (em uma tradução literal, “puxar para baixo”) devido à sua derivação do referencial terra (GND - Ground). Até aqui, �izemos a implementação de uma expressão booleana que já se encontrava formada. Mas como obter uma expressão booleana? E� o que você saberá a seguir. Continue acompanhando! VAMOS PRATICAR?Para essas sugestões, crie uma conta no Tinkercad e implemente as se expressões booleanas: a) S = (~(A + B) . (C + D)) . B b) S = (A + ~(B.C)) + (B . ~(A.C)) 2.2 Obtenção da expressão booleana pela interpretação do circuito lógico Você já deve saber que uma tabela-verdade representa o comportamento de um sistema lógico diante de todas as combinações possı́veis das variáveis de entrada envolvidas, certo? Mas como efetivamente extrair uma expressão booleana a partir da tabela-verdade para, depois, implementar �isicamente o circuito? Veremos esse ponto a seguir, porém, antes, conversaremos sobre formas padrões das expressões booleanas. 2.2.1 Formas padrões de expressões booleanas Antes de conversarmos sobre o processo de obtenção da expressão, vamos colocar o conceito de formas padrões: soma de produtos e produto de somas (IDOETA; CAPUANO, 2012). • Soma de produtos gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Quando temos todas as variáveis presentes em todas as parcelas (mesmo que elas apareçam de forma complementadas), dizemos que a expressão está em sua forma canônica. Expressões derivadas diretamente de tabelas-verdade (antes de qualquer manipulação algébrica) sempre estarão em sua forma canônica. Exemplos e contraexemplos de formas canônicas: Exemplos de expressões canônicas: S = A.B.C + ~A.B.C + ~A.B.~C S = (A+B+C) . (~A+~B+C) . (A+~B+C) Contraexemplos de expressões canônicas: S = A.B.C + ~A.B.C + ~A.~C S = (A+B+C) . (~A+C) . (A+~B+C) Mas como obter a expressão a partir da tabela-verdade? Dialogaremos, agora, sobre essa questão. 2.2.2 Extração da expressão booleana a partir da tabela-verdade Conversamos sobre tabelas-verdade e sobre formas padrões de representação das expressões booleanas. Mas como juntar esses dois assuntos para que possamos extrair expressões a partir de tabelas-verdade? Cada linha da tabela-verdade gera um “mintermo” ou um “maxtermo”, conforme ilustra a tabela a seguir, em que temos uma tabela-verdade de duas variáveis. A expressão booleana representada na forma de soma de produtos é constituı́da pela interconexão, via porta OR, de parcelas. Cada parcela, denominada “mintermo”, é formada por variáveis interconectadas por portas AND. Como exemplo, temos: S = A.B.C + ~A.B.C + A.~B.C. A expressão booleana representada na forma de produto de somas é constituı́da pela interconexão, via porta AND, de parcelas. Cada parcela, denominada “maxtermo”, é formada por variáveis interconectadas por portas OR. Como exemplo, temos: S = (A+B+C) . (~A+B+C) . (A+~B+C). • • • • • • • Tabela 1 - Mintermos e maxtermos associados a cada linha de uma tabela-verdade envolvendo duas variáveis. Fonte: Elaborada pelo autor, 2019. Produto de somas gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Podemos notar, na tabela-verdade, que para construirmos um mintermo, temos que complementar as variáveis que estiverem associadas ao valor lógico “0” — deixando sem inverter as variáveis que estiverem sinalizadas como “1”. Por outro lado, para construirmos um maxtermo, temos que complementar as variáveis que estiverem associadas ao valor lógico “1”, deixando sem inverter as variáveis que estiverem sinalizadas como “0”. Para exempli�icarmos o processo de obtenção de uma expressão booleana a partir de uma tabela-verdade, imagine que há a necessidade de criar um circuito que produzirá o resultado de uma votação envolvendo três pessoas votantes “A”, “B” e “C”. O primeiro passo será a criação da tabela-verdade. Em tal tabela-verdade, vamos fazer algumas considerações: Para cada votante, o valor “0” denota um voto contrário, e, portanto, “1” representa o voto a favor. Para o resultado, o resultado valendo “1” significa que o assunto votado foi aprovado, já o valor “0” indica a rejeição do ponto apreciado na votação. A partir dessas considerações, vamos construir a tabela-verdade. Aproveitando a oportunidade para facilitar nossa conversa, já associaremos o mintermo e o maxtermo a cada linha da tabela-verdade. A �igura a seguir mostra a tabela-verdade resultante. Na tabela-verdade, perceba, temos a saı́da “V” sinalizada em “1” quando dois ou mais votantes votarem a favor (nı́vel lógico “1”). Para extrairmos a expressão booleana, escolhemos aslinhas que tiverem resultado em “V” sinalizado em “1” para obter a expressão na forma de soma de produtos, ou escolhemos as linhas cujo valor “V” seja “0” para extrairmos a expressão na forma de produto de somas. A cada linha escolhida, faremos com que o mintermo ou o maxtermo integre a expressão resultante. Assim, teremos: • • Tabela 2 - Mintermos e maxtermos associados a um circuito para a exibição do resultado de votação envolvendo três pessoas votantes (“A”, “B” e “C”). Fonte: Elaborada pelo autor, 2019. Soma de produtos gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Como mencionado anteriormente, toda expressão obtida da tabela-verdade é uma expressão escrita em sua forma canônica. Assim, é passı́vel de simpli�icação. Veremos, a seguir, como poderemos simpli�icá-la. Linhas escolhidas: 3, 5, 6 e 7. Expressão resultante: V = ~A.B.C + A.~B.C + A.B.~C + A.B.C Produto de somas Linhas escolhidas: 0, 1, 2 e 4. Expressão resultante: V = (A+B+C).(A+B+~C).(A+~B+C).(~A+B+C) gilso Realce VAMOS PRATICAR?Suponha uma tabela-verdade de 8 linhas (envolvendo as variáveis “A”, “B cuja coluna de saıd́a é: 01101101 (o bit “0” mais à esquerda corresponde “A=0”, “B=0” e “C=0” e, consequentemente, o valor “1” mais à direita, corre à linha “A=1”, “B=1” e “C=1”). Extraia a expressão a partir da tabela-verd forma de soma de produtos e, depois, na forma de produto de somas. 2.3 Simplificação de circuitos lógicos O processo de simpli�icação de circuitos lógicos visa diminuir o número de portas lógicas ou tentar, pelo menos, diminuir o tempo de transição do sinal entre os componentes que fazem parte do circuito. Uma redução do número de portas ou da extensão do caminho que o sinal deverá trafegar gera várias consequências, como: diminuição no custo dos circuitos; diminuição do espaço utilizado pelo circuito; diminuição do consumo e da potência dissipada; possibilidade de utilizar frequências mais altas de operação. Veremos, a seguir, como poderemos proceder à simpli�icação, utilizando as propriedades da lógica booleana e aplicando o mapa de Karnaugh. • • • • gilso Realce 2.3.1 Simplificação pela aplicação de propriedades e teoremas da álgebra de Boole Como efetuar a simpli�icação do circuito? Aplicando os teoremas e propriedades da lógica booleana. Em algumas ocasiões, vale também o bom senso para aplicar as propriedades, como: tentar colocar os termos complementados juntos. Dessa forma, conseguimos obter: “~A+A=1” ou “~A.A=0”. tentar fazer com que apareça alguma variável isolada de modo a colocá-la em evidência e anular as demais parcelas nas quais tal variável se faz presente. Vamos iniciar a exempli�icação da simpli�icação, tomando por base o nosso circuito da votação entre três votantes. Para tanto, vamos partir da expressão obtida pelo uso dos mintermos, ou seja, a expressão na forma de soma de produtos. V = ~A.B.C + A.~B.C + A.B.~C + A.B.C Inicialmente, podemos observar que alguns membros são comuns a algumas parcelas. Assim, poderemos colocar em evidência: (I) V = ~A.B.C + A.~B.C + A.B.~C + A.B.C (II) V = ~A.B.C + A.~B.C + A.B.~C + A.B.C (III)V = ~A.B.C + A.~B.C + A.B.~C + A.B.C Notamos que existem três possibilidades de colocação em evidência. Em (I), podemos colocar em evidência “B.C”; em (II), podemos colocar “A.C”; e, em (III), podemos evidenciar “A.B”. Será que podemos fazer uso das três possibilidades? A resposta é sim! Lembrando da propriedade da identidade: “A+A=A”, podemos fazer o caminho contrário, ou seja, “A=A+A”. Assim, poderemos replicar a parcela que é referenciada três vezes na evidência (“A.B.C”): V = ~A.B.C + A.~B.C + A.B.~C + A.B.C + A.B.C + A.B.C Agora, poderemos colocar em evidência “B.C”, “A.C” e “A.C”: V = ~A.B.C + A.~B.C + A.B.~C + A.B.C + A.B.C + A.B.C V = B.C(~A + A)+ A.C(~B + B)+ A.B(C + ~C) Observando o conteúdo dos parênteses, notamos que as variáveis aparecem de forma complementada, portanto, poderemos aplicar o postulado do complemento “~x+x=1”: V = B.C.1 + A.C.1 + A.B.1 Por �im, aplicamos o postulado do elemento neutro “x.1=x”: V = B.C + A.C + A.B Nesse ponto, temos a expressão �inal simpli�icada para o circuito de votação envolvendo três votantes: V = B.C + A.C + A.B • • gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Propriedade da identidade Ao aplicarmos um operador “AND” ou “OR” sobre apenas uma variável, temos, como resultado, a própria variável: A + A = A A . A = A gilso Realce gilso Comentário do texto O elemento neutro representa o valor lógico (0 ou 1) que, quando aplicado a um operador, não modifica o valor resultante: A + 0 = A A . 1 = A Para melhor apresentarmos o processo de simpli�icação, vamos partir para outro exemplo de expressão booleana passı́vel de ser otimizada: S = ~X . (X + Y) + ~Z + Z.Y Inicialmente, a �im de colocarmos juntos termos complementados, podemos aplicar a distribuição do termo “~X” sobre “(X+Y)” e, também, aplicar a distributiva “~Z + Z.Y”: S = ~X . (X + Y) + ~Z + Z.Y S = ~X . X + ~X.Y + (~Z + Z).(~Z + Y) Aplica-se o postulado do complemento em “~X . X” e em “(~Z + Z)”: S = ~X . X + ~X.Y + (~Z + Z).(~Z + Y) S = 0 + ~X.Y + (1).(~Z + Y) Podemos retirar os elementos neutros (“0” no operador OR e “1” no operador AND): S = 0 + ~X.Y + (1).(~Z + Y) S = ~X.Y + (~Z + Y) S = ~X.Y + ~Z + Y Agora, podemos colocar o “Y” em evidência: S = ~X.Y + ~Z + Y S = Y(~X + 1) + ~Z Por �im, aplicamos o postulado da absorção sobre o operador OR no termo “~X + 1”: S = Y(~X + 1) + ~Z S = Y + ~Z Para realizar a simpli�icação de uma expressão booleana, podemos ainda utilizar outra técnica de simpli�icação: o “mapa de Karnaugh” — assunto que debateremos no próximo item! 2.3.2 Simplificação pela aplicação de Mapa de Karnaugh VOCÊ QUER VER? Para efetuar simpli�icações de expressões lógicas, existem diversas ferramentas automáticas disponıv́eis, tanto gratuitas quanto pagas. A videoaula disponibilizada por Maganha (2017) aborda algumas alternativas para facilitar a vida dos projetistas/desenvolvedores de circuitos baseados em lógica digital. Con�ira em: https://www.youtube.com/watch?v=H9qKIHYHV8k. (https://www.youtube.com/watch?v=H9qKIHYHV8k.) https://www.youtube.com/watch?v=H9qKIHYHV8k. gilso Comentário do texto • Propriedade Distributiva: na propriedade distributiva, procedemos à distribuição não somente da variável, mas também do operador associado à variável. Exemplos: A . ( B + C ) = A . B + A . C A + B . C = ( A + B ) . ( A + C ) gilso Comentário do texto • Propriedade Distributiva: na propriedade distributiva, procedemos à distribuição não somente da variável, mas também do operador associado à variável. Exemplos: A . ( B + C ) = A . B + A . C A + B . C = ( A + B ) . ( A + C ) gilso Comentário do texto Complemento Pode ser aplicado sobre um valor booleano ou envolvendo operadores. No caso de valores lógicos e das portas AND e OR, temos: ~0 = 1 ~1 = 0 A . ~A = 0 A + ~A = 1 gilso Comentário do texto O elemento neutro representa o valor lógico (0 ou 1) que, quando aplicado a um operador, não modifica o valor resultante: A + 0 = A A . 1 = A gilso Realce gilso Comentário do texto Elemento de absorção O elemento de absorção, ao ser aplicado sobre um operador, faz com que, independentemente do valor da variável envolvida, o operador resulte no próprio valor aplicado: A + 1 = 1 A . 0 = 0 Como mencionamos há pouco, podemos utilizar o mapa de Karnaugh para simpli�icar expressões escritas como soma de produtos. Mas o que vem a ser o mapa de Karnaugh? De acordo com Vahid e Laschuk (2011), os mapas de Karnaugh constituem uma ferramenta visual, na forma de uma matriz, para a simpli�icação de expressões que possuem poucas variáveis. Para expressões que manipulam cinco ou mais variáveis, torna-se inviável a utilização dessa ferramenta. Os mapas de Karnaugh permitem um entendimento básico de outros métodos existentes para a simpli�icaçãode expressões booleanas. O mapa de Karnaugh faz um mapeamento direto da tabela-verdade. Cada célula da matriz representada pelo mapa corresponde a uma linha da tabela-verdade. A �igura a seguir ilustra os mapas para 2, 3 e 4 variáveis. VOCÊ SABIA? Tenha em mente que o problema de otimização pode ser resolvido por técnicas e ferramentas além dos mapas de Karnaugh. Uma alternati simpli�icar expressões com um número maior de variáveis consiste na u do método de Quine-McCluskey. Porém, a simpli�icação pode ir além, i empregando técnicas baseadas em inteligência arti�icial. No traba monogra�ia de Oliveira (2015), você encontrará uma solução basea evolução arti�icial. Disponıv́el http://bdm.unb.br/bitstream/10483/11045/1/2015_VitorCoimbraDeOli df (http://bdm.unb.br/bitstream/10483/11045/1/2015_VitorCoimbraDeO df ). http://bdm.unb.br/bitstream/10483/11045/1/2015_VitorCoimbraDeOliveira.pdf gilso Comentário do texto A expressão booleana representada na forma de soma de produtos é constituída pela interconexão, via porta OR, de parcelas. Cada parcela, denominada “mintermo”, é formada por variáveis interconectadas por portas AND. Como exemplo, temos: S = A.B.C + ~A.B.C + A.~B.C. gilso Realce gilso Realce gilso Realce gilso Comentário do texto Tenha em mente que o problema de otimização pode ser resolvido por diversas técnicas e ferramentas além dos mapas de Karnaugh. Uma alternativa para simplificar expressões com um número maior de variáveis consiste na utilização do método de Quine-McCluskey. Porém, a simplificação pode ir além, inclusive empregando técnicas baseadas em inteligência artificial. No trabalho de monografia de Oliveira (2015), você encontrará uma solução baseada em evolução artificial. Disponível em: http://bdm.unb.br/bitstream/10483/11045/1/2015_VitorCoimbraDeOliveira.pdf. Para realizar simpli�icações utilizando o mapa de Karnaugh, precisamos conhecer a ideia de “vizinhança” e de “grupo”. Para isso, tomemos um mapa para quatro variáveis, conforme ilustrado a seguir. Na �igura anterior, perceba que a linha “~C.~D” é vizinha da linha “C.~D” e a coluna “~A.~B” é vizinha da coluna “A.~B”. Isso porque o mapa de Karnaugh não é plano, ou seja, é como se criássemos uma esfera conectando as extremidades. Assim, cada célula terá, no caso do mapa para quatro variáveis, sempre quatro Figura 4 - Mapas de Karnaugh para 2, 3 e 4 variáveis. A sequência das variáveis é �ixa, podendo apenas as células serem rotacionadas sem alterar o sentido de células vizinhas. Fonte: Elaborada pelo autor, 2019. Figura 5 - Exemplos de vizinhos em um mapa para quatro variáveis. As vizinhanças são exibidas pelas colorações das setas. Por exemplo, a célula “~A.B.~C.D” tem como vizinhos: “~A.~B.~C.D”, “A.B.~C.D”, “~A.B.~C.~D” e “~A.B.C.D”. Fonte: Elaborada pelo autor, 2019. vizinhos. A ideia de conectar as colunas da extremidade também se aplica aos mapas para 2 e 3 variáveis. Outro conceito relacionado aos mapas de Karnaugh é relacionado à formação de grupos. Veremos que serão transpostos os valores “1” presentes na coluna de saı́da da tabela-verdade. Os agrupamentos a serem realizados terão o objetivo de envolver as células que contiverem o valor “1”. Considerando, ainda, um mapa para quatro variáveis, veremos a ideia de grupos na �igura a seguir. VOCÊ O CONHECE? Muito se fala dos Mapas de Karnaugh para realizar o processo de simpli�icação de expressões booleanas. Para saber um pouco mais sobre seu idealizador, Maurice Karnaugh, leia o artigo de Martins (2009), disponıv́el em: https://mauromartins.wordpress.com/2009/05/31/maurice-karnaugh-e-os-mapas- de-karnaugh/ (https://mauromartins.wordpress.com/2009/05/31/maurice- karnaugh-e-os-mapas-de-karnaugh/). https://mauromartins.wordpress.com/2009/05/31/maurice-karnaugh-e-os-mapas-de-karnaugh/ gilso Realce gilso Realce Na �igura, temos exemplos de alguns agrupamentos em um mapa de Karnaugh para quatro variáveis. Algumas observações poderão ser feitas em relação à construção dos grupos: cada grupo pode ter 2 elementos “1”, ou seja, cada grupo poderá ser formado por um elemento “1” sozinho, por 2, 4, 8 ou 16 integrantes; um grupo não pode ter “arestas”, por exemplo, ou a forma da letra “L” e nem a forma da letra “T”; cada elemento “1” pode pertencer a mais de um grupo, desde que ele agrupe algum outro “1” que não foi ainda englobado por outro grupo; cria-se o menor número de agrupamentos e cada grupo deve ter o maior número possível de elementos “1”. Cada grupo representará uma parcela na expressão simplificada resultante, e em cada parcela serão eliminadas k variáveis. Sendo k=log (N), em que N representa a quantidade de elementos “1” dentro do grupo. A partir das observações feitas, vamos, agora, apresentar a sequência de passos que devem ser feitos para o processo de simpli�icação de uma expressão booleana. Con�ira! Figura 6 - Exemplos de agrupamentos em um mapa de Karnaugh para quatro variáveis. Nota-se que um elemento “1” pode pertencer a mais de um grupo. Fonte: Elaborada pelo autor, 2019. i • • • 2 gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Passo 1: transcrever os valores “1” da coluna de saída da tabela- verdade. Cada valor “1” deverá ser colocado na célula correspondente à coordenada de sua linha. Passo 2: formar grupos com os elementos vizinhos, observando- se as regras descritas anteriormente. Passo 3: em cada grupo, eliminar as variáveis que apareçam de forma complementada, ou seja, preservar aquelas que apareçam de forma idêntica em todas as células envolvidas. Por exemplo, caso tivermos uma dupla nas coordenadas “~A.B.~C.D” e “A.B.~C.D”, deve-se eliminar 1 variável (k=log (2)=1). No caso, a variável “A” aparece negada em uma célula e não negada na outra. Assim, o resultado da simplificação dessa dupla é “B.~C.D”. Outro exemplo, caso tivéssemos uma quádrupla formada pelas células “~A.B.~C.D”, “A.B.~C.D”,“~A.B.C.D” e “A.B.C.D”, encontramos “A” e “C” como variáveis que aparecem complementadas, eliminando- as. A partir dessa eliminação de “A” e “C”, restarão somente as variáveis “B.D” na composição final da parcela. Nesse segundo caso, como formamos uma quádrupla, foram eliminadas duas variáveis (log (4)=2). Vamos, agora, voltar ao exemplo da votação envolvendo quatro votantes. A seguir, na �igura, temos a tabela- verdade, o mapa de Karnaugh e o diagrama esquemático do circuito relacionado ao projeto. • • • 2 2 gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Perceba que a célula com a coordenada “A.B.C” pertence a três agrupamentos; exatamente o que acontece quando simpli�icamos a expressão por meio da álgebra booleana, replicando a parcela para que aparecesse três vezes. Nos sistemas lógicos digitais, além dos nı́veis “0” e “1”, também podemos usar a identi�icação de valores “X” e “Z”. Mas o que são eles? Para um melhor esclarecimento, vamos apresentar um caso no qual é utilizado o valor lógico “X”. Imagine um sistema que manipula duas variáveis (“A” e “B”) e que, por questões de implementações externas, nunca receberá essas duas variáveis valendo “1” simultaneamente. Desse modo, o projetista do circuito não precisa se preocupar com a situação com “A=1” e “B=1” simultaneamente. A �igura a seguir ilustra a tabela-verdade, o mapa de Karnaugh e o diagrama esquemático desse circuito hipotético. Figura 7 - Processo de simpli�icação do circuito de votação retratando a tabela-verdade, o mapa de Karnaugh, além da expressão e o diagrama esquemático do circuito resultante. Fonte: Elaborada pelo autor, 2019. Valor lógico “X” Esse valor, também chamado de “tanto faz”, serve para identi�icar casos nos quais uma certa informação é irrelevante para o resultado da expressão lógica e, consequentemente, para o circuito. Valor lógico “Z”: o “Z” Indica oestado de “alta impedância”, ou seja, um desacoplamento de parte do circuito com o restante. Esse estado é utilizado, por exemplo, em sistemas de memória em que encontramos os “buffers 3-state”. Os três estados são representados por: “operação de leitura”, “operação de escrita” e “não utilizado/desacoplado”. Esse último estado é exatamente o estado “Z”. gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce Perceba que o valor “X” foi utilizado para auxiliar na simpli�icação da célula “~A.B”. Porém, caso a célula vizinha já tivesse sido englobada por algum outro agrupamento, ou caso o elemento “X” estivesse isolado, farı́amos com que o “X” valesse “0”. Assim, podemos ressaltar que o elemento “X” somente valerá “1” caso ele seja útil na simpli�icação de algum elemento “1” que faça vizinhança. Para possibilitar uma melhor abstração de quando é viável a utilização do “X” no processo de agrupamentos, vamos analisar a �igura a seguir, que contempla uma tabela-verdade de um circuito hipotético que manipula três variáveis: Figura 8 - Tabela-verdade, mapa de Karnaugh e diagrama esquemático de um circuito hipotético em que as variáveis de entrada nunca assumirão o valor “1” simultaneamente. Fonte: Elaborada pelo autor, 2019. gilso Realce gilso Realce Na �igura, o “X” localizado na coordenada “A.B.C” foi utilizado como elemento “1”, pois ele possibilita uma maior otimização dos itens presentes nas coordenadas “~A.B.~C”, “A.B.~C” e “~A.B.C”, estabelecendo-se, assim, uma quádrupla. Por outro lado, caso tivéssemos feito o “X” presente na coordenada “~A.~B.~C”, farı́amos com que aparecesse uma parcela a mais na expressão resultante otimizada. Essa parcela seria redundante, pois a célula contendo o “1” da coordenada “~A.B.~C” já pertenceria a um agrupamento. Como mencionado, o mapa de Karnaugh é ideal para manipular um número pequeno de variáveis, pois a partir da quinta variável, um novo plano deve ser aberto, de modo que teremos que identi�icar grupos de elementos “1” vizinhos nos planos que estão sendo manipulados. Para �inalizar, é conveniente passar a dica de que podemos realizar agrupamentos dos elementos “0” em vez de agrupamentos de “1”. Porém, nesse caso, deveremos inverter a expressão resultante. Esse macete é útil quando se tem uma grande quantidade de elementos “1” e poucos elementos “0” bem posicionados. Por exemplo, imagine que em um mapa de quatro variáveis (16 células) temos apenas dois elementos “0”, formando uma dupla. Podemos obter a expressão booleana dessa dupla, e, depois, complementar a expressão resultante. Figura 9 - Dois momentos da utilização do valor booleano “X” (“tanto faz”) no processo de simpli�icação, utilizando mapa de Karnaugh. Fonte: Elaborada pelo autor, 2019. gilso Comentário do texto serve para identificar casos nos quais uma certa informação é irrelevante para o resultado da expressão lógica e, consequentemente, para o circuito. gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce gilso Realce VAMOS PRATICAR?a) Extraia a expressão na forma de soma de produtos e na forma de pro somas a partir de uma tabela-verdade de 8 linhas (envolvendo as variá “B” e “C”) cuja coluna de saıd́a é: 11101010 (o bit “1” mais à e corresponde à linha “A=0”, “B=0” e “C=0”, e, consequentemente, o valor “0 direita, corresponde à linha “A=1”, “B=1” e “C=1”). Extraia a expressão a p tabela-verdade na forma de soma de produtos e, depois, na forma de pro somas. Após extrair as duas expressões, aplique as propriedades da booleana para provar que as duas expressões são equivalentes. b) Utilizando o mapa de Karnaugh, simpli�ique a expressão booleana cuja verdade é expressa pela seguinte coluna de saıd́a: 10X011010010XX0 “1” mais à esquerda corresponde à linha “A=0”, “B=0”, “C=0” e “D consequentemente, o valor “X” mais à direita corresponde à linha “A=1 “C=1” e “D=1”). Síntese Chegamos ao �im desta unidade. Nessa nossa conversa, pudemos colocar um pouco de prática em nossos circuitos, pois vimos como passar os sistemas lógicos digitais das expressões para os circuitos propriamente ditos. Pudemos, ainda, extrair as próprias expressões booleanas a partir das tabelas-verdade para, depois, aplicarmos técnicas de simpli�icação de modo a otimizar os circuitos obtidos. Com os pontos abordados, você está apto a desenvolver os seus primeiros circuitos digitais, podendo comprovar suas funcionalidades por meio de simuladores, ou realizando a sua implementação fı́sica. Nesta unidade, você teve a oportunidade de: ter um contato inicial com os componentes físicos que implementam os componentes básicos da eletrônica digital; colocar em prática as teorias vistas até o momento em Sistemas Digitais; saber identificar e manusear os componentes da eletrônica digital; • • • gilso Comentário do texto a) Extraia a expressão na forma de soma de produtos e na forma de produto de somas a partir de uma tabela-verdade de 8 linhas (envolvendo as variáveis “A”, “B” e “C”) cuja coluna de saída é: 11101010 (o bit “1” mais à esquerda corresponde à linha “A=0”, “B=0” e “C=0”, e, consequentemente, o valor “0” mais à direita, corresponde à linha “A=1”, “B=1” e “C=1”). Extraia a expressão a partir da tabela-verdade na forma de soma de produtos e, depois, na forma de produto de somas. Após extrair as duas expressões, aplique as propriedades da álgebra booleana para provar que as duas expressões são equivalentes. b) Utilizando o mapa de Karnaugh, simplifique a expressão booleana cuja tabela-verdade é expressa pela seguinte coluna de saída: 10X011010010XX0X (o bit “1” mais à esquerda corresponde à linha “A=0”, “B=0”, “C=0” e “D=0”, e, consequentemente, o valor “X” mais à direita corresponde à linha “A=1”, “B=1”, “C=1” e “D=1”). projetar e modelar circuitos por meio de suas tabelas-verdade e expressões booleanas; aplicar as teorias acerca da lógica booleana para simplificar expressões lógicas. • • Bibliografia GV ENSINO. Eletrônica Digital #61: Software para simpli�icar expressões booleanas, 22 maio 2017. Disponı́vel em (https://www.youtube.com/watch?v=H9qKIHYHV8k)https://www.youtube.com/watch? v=H9qKIHYHV8k (https://www.youtube.com/watch?v=H9qKIHYHV8k). Acesso em: 16/09/2019. IDOETA, I.V.; CAPUANO, F. G. Elementos de Eletrônica Digital. 41 Ed. São Paulo: E� rica, 2012. INSTITUTO FEDERAL DE SANTA CATARINA. Aula 16 – Eletrônica Digital 1 – Graduação. Disponı́vel em: (https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_16_-_Eletr%C3%B4nica_Digital_1_- _Gradua%C3%A7%C3%A3o)https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_16_- _Eletr%C3%B4nica_Digital_1_-_Gradua%C3%A7%C3%A3o (https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_16_-_Eletr%C3%B4nica_Digital_1_- _Gradua%C3%A7%C3%A3o). Acesso em: 16/09/2019. MARTINS, M. Maurice Karnaugh e os Mapas de Karnaugh. Publicado em 31/05/2009. Disponı́vel em: (https://mauromartins.wordpress.com/2009/05/31/maurice-karnaugh-e-os-mapas-de- karnaugh/)https://mauromartins.wordpress.com/2009/05/31/maurice-karnaugh-e-os-mapas-de-karnaugh/ (https://mauromartins.wordpress.com/2009/05/31/maurice-karnaugh-e-os-mapas-de-karnaugh/). Acesso em: 16/09/2019. OLIVEIRA, V. C. Projeto e otimização de circuitos digitais por técnicas de evolução arti�icial. Monogra�ia (Graduação em Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas, Universidade de Brası́lia, Brası́lia, 2015. Disponı́vel em: (http://bdm.unb.br/bitstream/10483/11045/1/2015_VitorCoimbraDeOliveira.pdf)http://bdm.unb.br/bitstre am/10483/11045/1/2015_VitorCoimbraDeOliveira.pdf (http://bdm.unb.br/bitstream/10483/11045/1/2015_VitorCoimbraDeOliveira.pdf). Acesso em: 16/09/2019. TINKERCAD. Homepage. Disponı́vel em: tinkercad.com. Acesso em: 16/09/2019. TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas Digitais: Princípios e Aplicações. 12. ed. São Paulo: Pearson Education do Brasil,
Compartilhar