Aprenda › Tema 1
Portas lógicas: NOT, AND, OR, NAND, NOR, XOR e XNOR
Leitura de 7 min · Equipe bitGateLab
Toda a eletrônica digital, de um semáforo a um processador, é construída com alguns poucos blocos que tomam decisões com zeros e uns: as portas lógicas. Aqui você vai conhecer as sete portas básicas, como são desenhadas, como são escritas na álgebra de Boole e qual é a tabela-verdade de cada uma. No final, verá por que, com um único tipo de porta, NAND ou NOR, é possível montar todas as outras.
Níveis lógicos: o que significam o 0 e o 1
Em um circuito digital, cada sinal só pode estar em um de dois estados. A tensão baixa (próxima de 0 V) é chamada de 0 lógico ou falso, e a tensão alta (próxima da alimentação, por exemplo 5 V ou 3.3 V) é chamada de 1 lógico ou verdadeiro. Uma porta recebe uma ou mais entradas e entrega uma saída que depende unicamente do valor atual das entradas: ela não se lembra de nada. Por isso se diz que as portas formam a lógica combinacional.
A forma mais completa de descrever uma porta é a sua tabela-verdade: uma lista de todas as combinações possíveis de entradas com a saída correspondente a cada uma. Com n entradas há 2n combinações, de modo que uma porta de duas entradas tem 4 linhas e uma de três entradas tem 8.
As três portas fundamentais
NOT (inversor)
Tem uma única entrada e entrega o contrário: se entra 0, sai 1, e se entra 1, sai 0. Escreve-se Y = A (você também verá A' ou ¬A). Seu símbolo é um triângulo com uma bolinha na ponta; essa bolinha é a marca universal de "aqui há inversão".
| A | Y = A |
|---|---|
| 0 | 1 |
| 1 | 0 |
AND (E)
A saída vale 1 somente quando todas as entradas valem 1. Escreve-se como um produto: Y = A·B ou simplesmente Y = AB. Pense em duas chaves em série: a lâmpada só acende se as duas estiverem fechadas.
OR (OU)
A saída vale 1 quando pelo menos uma entrada vale 1. Escreve-se como uma soma: Y = A + B. Equivale a duas chaves em paralelo. Atenção: na álgebra de Boole 1 + 1 = 1, e não 2.
Portas derivadas: NAND, NOR, XOR e XNOR
NAND é uma AND seguida de um inversor: Y = AB. Sua saída é 0 somente quando todas as entradas são 1. NOR é uma OR invertida: Y = A + B, e vale 1 somente quando todas as entradas são 0. No símbolo, ambas levam a bolinha na saída.
XOR (OU exclusivo) vale 1 quando as entradas são diferentes: Y = A ⊕ B = AB + AB. Com mais de duas entradas, a XOR vale 1 quando há uma quantidade ímpar de uns; por isso é usada para calcular bits de paridade. XNOR é o seu complemento, Y = A ⊕ B = AB + A B, e vale 1 quando as entradas são iguais: é um comparador de igualdade de um bit.
Esta é a tabela-verdade conjunta das seis portas de duas entradas:
| A | B | AND | OR | NAND | NOR | XOR | XNOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
Exemplo: avaliar um circuito pequeno. Calcule Y = (A + B) · C para A = 0, B = 1, C = 1.
- OR: A + B = 0 + 1 = 1.
- Inversão: 1 = 0.
- AND com C: 0 · 1 = 0.
Resultado: Y = 0. Com A = 0, B = 0, C = 1, a OR dá 0, o inversor dá 1 e a AND dá 1, portanto Y = 1.
NAND e NOR: portas universais
Uma porta é universal se, apenas com cópias dela, você consegue construir NOT, AND e OR e, portanto, qualquer função lógica. NAND e NOR têm essa propriedade. Isso tem uma consequência prática: um fabricante pode produzir um único tipo de célula e montar com ela todo o projeto, e você pode resolver um circuito completo com um único chip da família 74HC (por exemplo, o 74HC00 traz quatro NAND de duas entradas).
Tudo com NAND
- NOT: una as duas entradas de uma NAND. Se A entra em ambas, A·A = A.
- AND: uma NAND seguida de uma NAND usada como inversor: AB = AB.
- OR: inverta cada entrada com uma NAND e junte-as em uma terceira NAND: A·B = A + B (por De Morgan).
Tudo com NOR
- NOT: una as entradas de uma NOR: A + A = A.
- OR: uma NOR seguida de uma NOR inversora.
- AND: inverta cada entrada com uma NOR e junte-as em outra NOR: A + B = AB.
Exemplo: XOR com quatro NAND. Seja N1 = AB, N2 = A·N1, N3 = B·N1 e Y = N2·N3. Confira os quatro casos:
| A | B | N1 | N2 | N3 | Y |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
A coluna Y coincide com a da XOR. Quatro portas, um único chip.
Erros comuns
- Pensar que 1 + 1 = 2 em uma OR. Na lógica booleana a soma satura: 1 + 1 = 1.
- Confundir AB (NAND, uma barra sobre tudo) com A B (duas barras separadas, o que equivale a uma NOR). O comprimento da barra muda o resultado.
- Achar que a XOR de três entradas vale 1 "quando uma única entrada é 1". Na verdade, ela vale 1 com uma quantidade ímpar de uns, e isso inclui o caso 1, 1, 1.
- Deixar entradas desconectadas em um chip CMOS real. Uma entrada flutuante pode ser lida como 0 ou como 1 ao acaso; conecte-a ao terra ou à alimentação.
Experimente no simulador
A melhor forma de memorizar essas tabelas é gerá-las você mesmo. No editor de circuitos você pode colocar uma porta, mudar as entradas e ver a saída na hora; depois, compare com a tabela-verdade que a ferramenta calcula.
- Coloque duas entradas, uma porta NAND e uma saída, e conecte-as.
- Mude as entradas pelas quatro combinações e anote a saída em cada caso.
- Gere a tabela-verdade do circuito e compare-a com a deste artigo.
- Monte a XOR com quatro NAND do exemplo e verifique se a tabela dela coincide com a de uma única XOR.
- Se quiser levá-la para a protoboard virtual, coloque um chip NAND da família 74HC, alimente-o e observe o LED de saída.
Exercícios
- Escreva a tabela-verdade de Y = A + B.
Resposta
Para AB = 00, 01, 10, 11 a saída é 1, 0, 1, 1. Só vale 0 quando A = 0 e B = 1.
- Quantas linhas tem a tabela-verdade de uma AND de 4 entradas e em quantas delas a saída vale 1?
Resposta
24 = 16 linhas; a saída vale 1 em apenas uma (1111).
- Obtenha a saída de uma XOR de três entradas com A = 1, B = 1, C = 1.
Resposta
1 ⊕ 1 = 0 e 0 ⊕ 1 = 1. A saída é 1, porque há três uns (quantidade ímpar).
- De quantas portas NOR você precisa, no mínimo com este método, para formar uma AND de duas entradas?
Resposta
Três: duas NOR usadas como inversores (uma para A e outra para B) e uma terceira NOR que recebe A e B, cuja saída é A + B = AB.
Para transformar e simplificar expressões com essas portas, continue com a álgebra de Boole.