Portas Lógicas Tiago Alves de Oliveira Introdução • Em lógica, existem apenas duas condições possíveis para qualquer entrada ou saída: • Verdadeira • Falsa • O sistema binário de numeração utiliza apenas dois dígitos, por isso é perfeito para representar relações lógicas. •1 •0 Introdução • Os circuitos lógicos digitais usam faixas de tensões predeterminadas para representar esses estados binários. • Por meio desses conceitos, é possível criar circuitos feitos com pouco mais que areia e fios combinados que tomam decisões coerentes, inteligentes e lógicas. • É de vital importância ter um método para descrever as decisões lógicas tomadas por esses circuitos. • Resumindo: precisamos descrever como eles operam. Introdução • A vida está repleta de exemplos de circunstâncias em que se pode dizer que se está em um estado ou em outro. • Por exemplo: • • • • uma pessoa está viva ou morta, uma luz está acesa ou apagada, uma porta está fechada ou aberta, agora está chovendo ou não. • Verificando isso George Boole criou a lógica booleana. Introdução • A principal utilidade dessas expressões lógicas e: • Descrever o relacionamento entre as saídas do circuito lógico (as decisões) e as entradas (as circunstâncias). • Estudaremos os circuitos lógicos mais básicos: as portas lógicas. • Portas lógicas são os blocos fundamentais a partir dos quais todos os outros circuitos lógicos e sistemas digitais são construídos. Relembrando Álgebra Booleana • Valores possíveis. •0 •1 • Variáveis. • Letras maiúsculas. • Operações: • • • • AND -> . OR -> + NOT -> ഥ XOR -> ⊕ Álgebra Booleana • A álgebra booleana tem, de fato, apenas três operações básicas: • OR (OU), • AND (E) • e NOT (NÃO). • Essas operações operações lógicas. básicas são denominadas Álgebra Booleana • Os circuitos digitais, denominados portas lógicas, podem ser construídos a partir de diodos, transistores e resistores interconectados de modo que a saída do circuito seja o resultado de uma operação lógica básica (OR, AND ou NOT) realizada sobre as entradas. • Usaremos a álgebra booleana, primeiramente, para descrever e analisar essas portas lógicas básicas, depois, para analisar e projetar circuitos combinacionais de portas lógicas. Tabela Verdade • Uma tabela-verdade é uma técnica para descrever como a saída de um circuito lógico depende dos níveis lógicos presentes nas entradas do circuito. Tabela Verdade 1. Qual será́ o estado lógico da saída para o circuito de quatro entradas representado na figura ao lado quando todas as entradas, exceto a B, forem nível 1? 2. Repita a Questão 1 para as seguintes condições de entrada: A = 1, B = 0, C = 1 e D = 0. 3. Quantas linhas deve ter uma tabela que representa um circuito de cinco entradas? Operação OR (OU) • Um exemplo dessa operação é o que acontece no forno de cozinha. • A lâmpada dentro do forno deve se acender se o interruptor for acionado OU (OR) se a porta do forno for aberta. • A letra A pode ser usada para representar interruptor acionado (verdadeiro ou falso) e a letra B, porta do forno aberta (verdadeiro ou falso). • A letra x pode representar lâmpada acesa (verdadeiro ou falso) Operação OR (OU) • A tabela-verdade mostra o que acontece quando duas entradas lógicas, A e B, são combinadas usando uma operação OR para produzir a saída x. • A tabela mostra que x será́ um nível logico 1 para cada combinação de níveis de entradas em que uma ou mais entradas forem 1. • O único caso em que x é um nível 0 acontece quando ambas as entradas são 0. Operação OR (OU) • A expressão booleana a operação OR é: 𝑥 = 𝐴 + 𝐵 • A expressão x = A + B é lida como ‘x é igual a A ou B’, o que significa que x será 1 quando A ou B for 1. • A mesma maneira, a expressão x = A + B + C é lida como ‘x é igual a A ou B ou C’, o que significa que x será 1 quando A ou B ou C ou qualquer combinação delas for 1. Porta OR • Em circuitos digitais, uma porta OR é um circuito que tem duas ou mais entradas e cuja saída é igual à combinação das entradas por meio da operação OR. • A porta OR opera de modo que sua saída será ALTA (nível lógico 1) se a entrada A ou B ou ambas forem nível logico 1. A saída de uma porta OR será nível BAIXO (nível lógico 0) apenas se todas as entradas forem nível 0. Resumo da operação OR • Os pontos importantes a serem lembrados em relação à operação OR e às portas OR são: 1. A operação OR gera um resultado (saída) 1 sempre que quaisquer das entradas for 1. Caso contrário, a saída é 0. 2. Uma porta OR é um circuito lógico que realiza uma operação OR sobre as entradas do circuito. 3. A expressão x = A + B é lida ‘x é igual a A ou B ’. Operação AND (E) • Como exemplo do uso do lógico AND, considere uma secadora de roupas que só opera se o temporizador estiver acima de zero AND (E) a porta estiver fechada. • Digamos que a letra A representa temporizador acima de zero, que B representa porta fechada, e x, aquecedor e motor ligados. Operação AND (E) • tabela-verdade mostra o que acontece quando duas entradas lógicas, A e B, são combinadas usando uma operação AND para gerar a saída x. • A tabela mostra que x será nível lógico 1 apenas quando A e B forem 1. Para qualquer outro caso em que uma das entradas for 0, a saída será 0. Operação AND (E) • A expressão booleana a operação AND é: 𝑥 = 𝐴 .𝐵 • A expressão x = A . B é lida ‘x é igual a A e B’, o que significa que x será 1 somente quando A e B forem, ambas, nível 1. • A mesma maneira, a expressão x = A . B . C é lida como ‘x é igual a A e B e C’, o que significa que x será 1 quando A, B e C forem iguais a 1. Porta AND • Em circuitos digitais, uma porta AND é um circuito que tem duas ou mais entradas e cuja saída é igual à combinação das entradas por meio da operação AND. • A porta AND opera de modo que sua saída será ALTA (nível lógico 1) se a entrada A e B forem nível logico 1. A saída de uma porta AND será nível BAIXO (nível lógico 0) quando uma das entradas forem nível 0. Resumo da Porta AND 1. A operação AND é realizada da mesma maneira que a multiplicação convencional de 1s e 0s. 2. Uma porta AND é um circuito lógico que realiza uma operação AND sobre as entradas do circuito. 3. A saída de uma porta AND será 1 somente quando todas as entradas forem 1; para todos os outros casos, a saída será 0. 4. A expressão x = AB é lida como ‘x é igual a A e B’. Operação NOT (NÃO) • A operação NOT, também denominada INVERSÃO, é diferente das operações OR e AND pelo fato de poder ser realizada sobre uma única variável de entrada. • Por exemplo, se a variável A for submetida à operação de inversão, o resultado x pode ser expresso como: 𝑥 = 𝐴ҧ • onde a barra sobre o nome da variável representa a operação de inversão. Operação NOT (NÃO) • Essa expressão é lida como ‘x é igual a A negado’, o ‘x é igual ao inverso de A’ ou ‘x é igual ao complemento de A’. • Cada uma dessas expressões é usada comumente, e todas indicam que o valor lógico de x = A é o oposto do valor lógico de A. Operação NOT (NÃO) • A tabela-verdade esclarece isso para os dois casos: A = 0 e A = 1. • Isto é • 0 = 1ത porque 0 é 1 NEGADO • 1 = 0ത porque 1 é 0 NEGADO Circuito NOT (Inversor) • A Figura abaixo mostra o símbolo para o circuito NOT, mais comumente denominado INVERSOR. • Esse circuito tem sempre apenas uma entrada, e seu nível lógico de saída é o oposto ao nível lógico de entrada. Resumo das Operações Booleanas • As regras para as operações OR, AND e NOT podem ser resumidas como a seguir: DESCREVENDO CIRCUITOS LÓGICOS ALGEBRICAMENTE • Qualquer circuito lógico, independente de sua complexidade, pode ser descrito usando-se as três operações booleanas básicas. • Isso acontece porque as portas OR, AND e INVERSOR são os blocos fundamentais dos sistemas digitais. Circuitos Lógicos • Por exemplo, considere o circuito da Figura abaixo o qual tem três entradas (A, B e C ) e uma única saída (x). Usando as expressões booleanas de cada porta, podemos determinar facilmente a expressão lógica da saída. Precedência de Operador • Ocasionalmente, pode haver alguma confusão em determinar qual operação deve ser realizada primeiro em uma expressão. • A expressão: 𝐴 · 𝐵 + 𝐶 • pode ser interpretada de duas maneiras diferentes: 1. 2. operação OR de A · B com C operação AND de A com a soma lógica B + C. • Para evitar essa confusão, deve ficar entendido que se uma expressão tiver operações AND e OR, a operação AND é realizada primeiro, a menos que existam parênteses na expressão. • Nesse caso, a operação dentro dos parênteses é realizada primeiro. Essa regra para determinar a ordem das operações é a mesma usada na álgebra convencional. Circuitos com INVERSORES lógicos • Sempre que um INVERSOR estiver presente em um circuito lógico, a expressão para a saída do INVERSOR será igual à expressão de entrada com uma barra sobre ela. Circuitos com INVERSORES lógicos AVALIANDO AS SAÍDAS DOS CIRCUITOS LÓGICOS • De posse da expressão booleana para a saída de um circuito, podemos obter o nível lógico da saída para qualquer conjunto de níveis lógicos de entrada. • Por exemplo, suponha que desejemos saber o nível lógico da saída x para o circuito da Figura abaixo para o caso em que A = 0, B = 1, C = 1 e D = 1. AVALIANDO AS SAÍDAS DOS CIRCUITOS LÓGICOS • Assim como na álgebra convencional, o valor de x pode ser encontrado com a ‘substituição’ dos valores das variáveis na expressão e realizando a operação indicada, conforme mostrado a seguir: ҧ 𝑥 = 𝐴𝐵𝐶(𝐴 + 𝐷) 𝐴=0 𝐵=1 𝐶=1 𝐷=1 AVALIANDO AS SAÍDAS DOS CIRCUITOS LÓGICOS • Em geral, as regras a seguir têm de ser obedecidas quando avaliamos uma expressão booleana: 1. Primeiro, realize as inversões de termos simples; ou ത seja, 0 = 1ത ou 1 = 0. 2. Em seguida, realize as operações dentro de parênteses. 3. Realize as operações AND antes das operações OR, a menos que os parênteses indiquem o contrário. 4. Se uma expressão tiver uma barra sobre, realize a operação indicada pela expressão e, em seguida, inverta o resultado. IMPLEMENTANDO CIRCUITOS A PARTIR DE EXPRESSÕES BOOLEANAS • Quando a operação de um circuito é definida por uma expressão booleana, podemos desenhar o diagrama do circuito lógico diretamente a partir da expressão. • Por exemplo, se precisarmos de um circuito definido por 𝑥 = 𝐴 · 𝐵 · 𝐶, saberemos imediatamente que precisamos de uma porta AND de três entradas. • Se precisarmos de um circuito definido por 𝑥 = 𝐴 + ത poderemos usar uma porta OR de duas entradas 𝐵, com um INVERSOR em uma das entradas. • O mesmo raciocínio pode ser estendido para circuitos mais complexos. IMPLEMENTANDO CIRCUITOS A PARTIR DE EXPRESSÕES BOOLEANAS • Suponha que desejemos construir um circuito cuja ҧ saída seja 𝑦 = 𝐴𝐶 + 𝐵 𝐶ҧ + 𝐴𝐵𝐶. Exercício • Desenhe o diagrama do circuito que implemente a expressão: 𝑥 = 𝐴 + 𝐵 𝐵ത + 𝐶 Exercícios 1. Transforme as expressões booleanas em circuitos lógicos: a) b) c) d) e) f) 𝐴𝐵 𝐴𝐵𝐶 𝐴+𝐵+𝐶 𝐴𝐵 + 𝐵𝐶 𝐴+𝐵 (𝐴 + 𝐵 + 𝐶). 𝐸 Perguntas?