Capítulo 3 Álgebra de Bool Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture
Objectivos Compreender a relação entre lógica Booleana e os circuitos digitais dos computadores Aprender a desenhar circuitos lógicos simples Compreender como os circuitos digitais se combinam para formar sistemas computacionais complexos 27--28 Introdução aos Sistemas e Redes de Computadores 2
Introdução [] No final do século XIX, George Bool inflamou os filósofos e matemáticos quando sugeriu que o pensamento lógico poderia ser representado através de equações matemáticas Como é que alguém se atreve a sugerir que o pensamento humano pode ser encapsulado e manipulado como uma fórmula algébrica? Os computadores, como os conhecemos hoje, são implementações da Lei do Pensamento ( Law of thought ) de Bool 27--28 Introdução aos Sistemas e Redes de Computadores 3
Álgebra Booleana [] A álgebra booleana é um sistema matemático para a manipulação de variáveis que podem tomar apenas um de dois valores Na lógica formal, esses valores são Verdade e Falso Na lógica digital, esses valores são on e off ou e Expressões booleanas são criadas realizando operações em variáveis booleanas Operações booleanas comuns incluem E (AND), OU (OR) e NÃO (NOT) 27--28 Introdução aos Sistemas e Redes de Computadores 4
Álgebra Booleana [2] Um operador booleano pode ser descrito através de uma tabela de verdade À direita estão as tabelas de verdade dos operadores booleanos E (AND) e OU (OR) O operador E (conjunção) é também conhecido como o produto booleano O operador OU (disjunção) é também conhecido como a soma 27--28 booleana X AND Y X Y XY X OR Y X Y X+Y Introdução aos Sistemas e Redes de Computadores 5
Álgebra Booleana [3] À direita encontra-se a tabela de verdade do operador booleano NÃO (negação; NOT) Este operador é frequentemente representado como uma barra sobre o valor/variável, ou prefixando o valor/variável com um dos símbolos ~ ou, ou ainda colocando o sufixo e.g., ~X, X, X NOT X X X 27--28 Introdução aos Sistemas e Redes de Computadores 6
Álgebra Booleana [4] Uma função boolena tem Pelo menos uma variável booleana Pelo menos um operador booleano Pelo menos um input do conjunto {,} Produz um output também do conjunto {,} Agora é mais fácil perceber porque a base binária é tão útil nos sistemas digitais 27--28 Introdução aos Sistemas e Redes de Computadores 7
Álgebra Booleana [5] À direita temos a tabela de verdade de uma função boolena F(x,y,z) = x zʼ + y Para facilitar a avaliação F(X,Y,Z) = XZ+Y Y Z Z XZ XZ+Y da função boolena, a tabela contém colunas extra (sombreadas, no meio) para guardar valores parciais de sub-partes da função X 27--28 Introdução aos Sistemas e Redes de Computadores 8
Introdução aos Sistemas e Redes de Computadores 9 27--28 Álgebra Booleana [6] Tal como na aritmética comum, as operações booleanas têm regras de precedência: F(X,Y,Z) = XZ+Y Z Y X O NÃO (NOT) tem a precedência mais alta Depois, vem o E (AND) E por fim vem o OU (OR) Z XZ XZ+Y
Álgebra Booleana [7] Computadores digitais contêm circuitos que implementam funções booleanas Quanto mais simples conseguirmos exprimir uma função booleana, menor será o circuito que a implementa Circuitos mais simples são mais baratos de produzir, consomem menos energia, e executam mais depressa (que os circuitos mais complexos) 27--28 Introdução aos Sistemas e Redes de Computadores
Álgebra Booleana [8] Propriedades sobre operações boolenas Muitas têm formas diferentes para o operador E (produto) e para o operador OU (soma) Este primeiro conjunto é bastante intuitivo (elemento neutro) (elemento absorvente) (idempotência) (complemento) 27--28 Introdução aos Sistemas e Redes de Computadores
Álgebra Booleana [9] O segundo conjunto de propriedades que também deve ser familiar Comutatividade Associatividade Distributividade 27--28 Introdução aos Sistemas e Redes de Computadores 2
Álgebra Booleana [] O terceiro conjunto é derivado da teoria dos conjuntos e da lógica formal Lei da absorção Lei de Morgan Lei do duplo complemento 27--28 Introdução aos Sistemas e Redes de Computadores 3
Álgebra Booleana [] Podemos usar as propriedades booleanas para simplificar a função da seguinte forma 27--28 Introdução aos Sistemas e Redes de Computadores 4
Álgebra Booleana [2] Aplicação das propriedades Simplificação de equações Exemplo Distributiva Inversa/complemento Elemento neutro Elemento neutro Distributiva Elemento absorvente Elemento neutro 27--28 Introdução aos Sistemas e Redes de Computadores 5
Álgebra Booleana [3] Algumas vezes é mais económico construir um circuito que calcule o complemento de uma função (complementando depois o resultado obtido), que implementar a função directamente A Lei de Morgan disponibiliza um mecanismo fácil de determinar o complemento de uma função 27--28 Introdução aos Sistemas e Redes de Computadores 6
Álgebra Booleana [4] A Lei de Morgan pode ser estendida para qualquer número de variáveis Trocar cada variável pelo seu complemento Trocar todos os E por OU Trocar todos os OU por E O complemento de é 27--28 Introdução aos Sistemas e Redes de Computadores 7
Álgebra Booleana [5] Pelo(s) exemplo(s) de simplificação de expressões booleanas, depreende-se que há múltiplas maneiras de indicar a mesma expressão booleana Estas formas sinónimas são logicamente equivalentes! Expressões logicamente equivalentes têm tabelas de verdade iguais Para reduzir ao mínimo a confusão possível, apresenta-se as funções booleanas na sua forma normal ou canónica 27--28 Introdução aos Sistemas e Redes de Computadores 8
Álgebra Booleana [6] Há duas formas normais/canónicas para indicar expressões boolenas Soma de produtos Produto de somas 27--28 Introdução aos Sistemas e Redes de Computadores 9
Termos Mínimos A partir de uma tabela de verdade pode-se escrever uma função como uma soma de produtos lógicos Cada produto lógico que assume o valor para uma dada combinação de variáveis de entrada designa-se Termo produto Um produto lógico em que todas as variáveis de entrada aparecem exactamente uma vez (complementadas ou não) designa-se Termo mínimo 27--28 Introdução aos Sistemas e Redes de Computadores 2
Termos Mínimos 27--28 Introdução aos Sistemas e Redes de Computadores 2
Termos Mínimos Uma função pode ser definida como uma soma de termos mínimos Exemplo Será o mesmo que 27--28 Introdução aos Sistemas e Redes de Computadores 22
Álgebra Booleana [7] É fácil converter uma função numa soma-de-produtos, usando uma tabela de verdade Estamos interessados nos valores que tornam a função verdadeira (=) Usando a tabela de verdade, listamos os valores das variáveis que tornam o resultado da função verdadeiro Este grupo de variáveis é depois composto com um OU 27--28 F(X,Y,Z) = XZ+Y X Y Z XZ+Y Introdução aos Sistemas e Redes de Computadores 23
Álgebra Booleana [8] A nossa função anterior expressa como uma soma de termos mínimos é: Função simplificada: Note-se que a função não está simplificada. O objectivo é apenas escrevê-la como uma soma de termos mínimos! 27--28 Introdução aos Sistemas e Redes de Computadores 24
Mapas de Karnaugh Ferramenta útil para simplificação de funções e projecto de circuitos Geralmente utilizados quando se pretende obter uma função lógica a partir da tabela de verdade Representam-se no mapa os termos mínimos da função (com valor ou ) Obtém-se as funções lógicas através do agrupamento de termos mínimos com valor 27--28 Introdução aos Sistemas e Redes de Computadores 25
Mapas de Karnaugh Os termos mínimos são organizados de modo a que apenas mude um bit entre quadrados adjacentes (código binário reflectido código de Gray) X Y 27--28 Y Z Podem-se agrupar termos mínimos em que a função assume o valor lógico. Deste modo simplifica-se a função lógica! Introdução aos Sistemas e Redes de Computadores 26
Mapas de Karnaugh Exemplos de associação de termos mínimos 27--28 Introdução aos Sistemas e Redes de Computadores 27
Mapas de Karnaugh Exemplo de simplificação de função X YZ X A função simplifica-se para Z 27--28 Introdução aos Sistemas e Redes de Computadores 28
Mapas de Karnaugh Exemplo de obtenção dos termos produto ZW XY Z X Y W Y W F = XYW + Y W + Z 27--28 Introdução aos Sistemas e Redes de Computadores 29
Mapas de Karnaugh Quando uma determinada combinação de variáveis nunca ocorre é possível definir a função como não totalmente especificada X Os termos mínimos não especificados (representados com X) podem ser agrupados ao não, consoante dê mais jeito X X 27--28 Introdução aos Sistemas e Redes de Computadores 3
Capítulo 3 Portas Lógicas Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture
Portas lógicas [] Estudámos as funções booleanas em termos abstractos Iremos agora estudar a implementação das funções booleanas (em circuitos digitais) denominadas Portas Lógicas Uma porta lógica é um circuito digital que produz um resultado em função de dois ou mais valores de entrada Na realidade as portas lógicas são compostas por um conjunto de transístores Os circuitos integrados contêm conjuntos de portas lógicas 27--28 Introdução aos Sistemas e Redes de Computadores 32
Portas lógicas [2] As três portas lógicas mais simples são as portas E, OU e NÃO (AND, OR e NOT) Correspondem directamente às funções booleanas equivalentes Comprovar na tabela de verdade 27--28 Introdução aos Sistemas e Redes de Computadores 33
Portas lógicas [3] Outra porta lógica muito útil é a OU-EXCLUSIVO (XOR) A saída de uma porta XOR é verdade quando os seus valores de entrada diferem (são diferentes) Note-se o símbolo especial para a operação XOR 27--28 Introdução aos Sistemas e Redes de Computadores 34
Portas lógicas [4] Mais duas portas lógicas muito importantes: NAND e NOR As suas tabelas de verdade e representação estão indicadas à direita 27--28 Introdução aos Sistemas e Redes de Computadores 35
Portas lógicas [5] As portas NAND e NOR são conhecidas como portas universais Têm custo de construção reduzido Todas as outras funções booleanas podem ser realizadas usando apenas portas NAND ou apenas portas NOR 27--28 Introdução aos Sistemas e Redes de Computadores 36
Portas lógicas [6] As portas lógicas podem ter múltiplos inputs (entradas) Às vezes é disponibilizado um segundo output (saída) com o complemento da operação 27--28 Introdução aos Sistemas e Redes de Computadores 37
Portas lógicas [7] Não esquecer que combinações de portas lógicas implementam funções booleanas A função booleana pode ser implementada pelo seguinte circuito Simplificamos as expressões booleanas, de forma a criar circuitos mais simples 27--28 Introdução aos Sistemas e Redes de Computadores 38