Álgebra de Boole e portas lógicas

Tabelas de verdade, identidades, formas canónicas e implementação com portas universais.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Uma lâmpada só acende quando os dois interruptores estão ligados. Com entradas A e B a indicar cada interruptor, a regra é Y=ABY=AB; esta função booleana associa uma saída de 0 ou 1 a cada combinação das entradas, e a expressão, a tabela de verdade e o circuito descrevem a mesma regra.

Operações

Escrevemos AND por justaposição ou ponto, OR por ++ e NOT por uma barra; aqui ++ é OR, não a soma dos inteiros. XOR, A⊕BA\oplus B, é 1 quando as entradas diferem, enquanto XNOR é 1 quando são iguais.

AABBABABA+BA+BA⊕BA\oplus BA⊕B‾\overline{A\oplus B}
000001
010110
100110
111101

Sem parênteses, aplica primeiro NOT, depois AND, depois OR. Por exemplo, A+BCA+B C é A+(BC)A+(BC), enquanto (A+B)C(A+B)C exige que C=1C=1; uma letra negada continua a representar um bit, não um número negativo.

NAND é AB‾\overline{AB} e NOR é A+B‾\overline{A+B}. O círculo numa entrada ou saída de uma porta indica negação. Não confundas uma saída ativa a 0 com uma saída que nunca pode ser 1.

Simplificar sem mudar a função

As identidades permitem substituir expressões equivalentes:

RegraANDOR
Elemento neutroA⋅1=AA\cdot1=AA+0=AA+0=A
Elemento absorventeA⋅0=0A\cdot0=0A+1=1A+1=1
IdempotênciaAA=AAA=AA+A=AA+A=A
ComplementoAA‾=0A\overline A=0A+A‾=1A+\overline A=1
AbsorçãoA(A+B)=AA(A+B)=AA+AB=AA+AB=A

A distributividade vale nas duas direções: A(B+C)=AB+ACA(B+C)=AB+AC e A+BC=(A+B)(A+C)A+BC=(A+B)(A+C). A dualidade troca AND por OR e 0 por 1 numa identidade válida.

Por exemplo, com

AB+AB‾C=A(B+B‾C)=A(B+C),AB+A\overline BC=A(B+\overline BC)=A(B+C),

onde a passagem interior usa B+B‾C=(B+B‾)(B+C)=B+CB+\overline BC=(B+\overline B)(B+C)=B+C. O circuito pode usar uma OR de B,CB,C seguida de uma AND com AA, em vez de dois produtos separados.

De Morgan diz AB‾=A‾+B‾\overline{AB}=\overline A+\overline B e A+B‾=A‾ B‾\overline{A+B}=\overline A\,\overline B. Ao negar uma expressão, troca todas as operações do nível abrangido e nega os operandos: A+BC‾=A‾(B‾+C‾)\overline{A+BC}=\overline A(\overline B+\overline C).

Formas canónicas

Com nn entradas, a tabela tem 2n2^n linhas. Na ordem A,B,CA,B,C, o índice da linha é o inteiro binário ABC; um mintermo contém todas as variáveis e vale 1 numa só linha. O mintermo 5, 101, é AB‾CA\overline BC.

Suponhamos F=1F=1 nos índices 1, 3, 5 e 6. A soma de mintermos é

F=Σm(1,3,5,6)=A‾B‾C+A‾BC+AB‾C+ABC‾.F=\Sigma m(1,3,5,6)=\overline A\overline BC+\overline ABC+A\overline BC+AB\overline C.

As linhas onde F=0F=0 são 0, 2, 4 e 7. Um maxtermo vale 0 numa só linha: coloca a variável direta se o bit dessa linha for 0, e negada se for 1, logo

F=ΠM(0,2,4,7)=(A+B+C)(A+B‾+C)(A‾+B+C)(A‾+B‾+C‾).F=\Pi M(0,2,4,7)=(A+B+C)(A+\overline B+C)(\overline A+B+C)(\overline A+\overline B+\overline C).

A soma de produtos simplificada pode omitir variáveis; a forma canónica não. Um termo BCBC reúne duas linhas e não é um mintermo de uma função de três entradas.

NAND, NOR e seleção

Para implementar H=AB+CDH=AB+CD só com NAND, calcula u=AB‾u=\overline{AB} e v=CD‾v=\overline{CD}; uma terceira NAND dá

H=uv‾=AB‾ CD‾‾=AB+CD,H=\overline{uv}=\overline{\overline{AB}\,\overline{CD}}=AB+CD,

pois De Morgan transforma a negação do produto das duas saídas numa OR dos produtos originais. Por exemplo, com AB=1 e CD=0, os nós são u=0, v=1 e H=1; uma negação isolada é A‾=NAND⁡(A,A)\overline A=\operatorname{NAND}(A,A). NAND permite assim construir NOT, AND e OR, por isso é universal, tal como NOR.

A expansão de Shannon separa os casos de uma entrada, com

F=A‾ F(0,B,C)+A F(1,B,C),F=\overline A\,F(0,B,C)+A\,F(1,B,C),

onde as duas subfunções, chamadas cofatores, fixam A em 0 e em 1. Esta forma escolhe entre os dois cofatores conforme A; um multiplexador faz exatamente esta seleção e será estudado nos módulos combinatórios. Retomamos F=Σm(1,3,5,6)F=\Sigma m(1,3,5,6) das formas canónicas:

SeleçãoLinhas usadasCofatorValor com A fixo
A=0Índices 0 a 3B‾C+BC=C\overline BC+BC=CCC
A=1Índices 4 a 7B‾C+BC‾=B⊕C\overline BC+B\overline C=B\oplus CB⊕CB\oplus C

Quando A=0, só o primeiro produto de Shannon contribui; quando A=1, só o segundo. Um multiplexador selecionado por A escolheria assim o cofator correspondente sem alterar F.

Confirma uma simplificação em todas as linhas, sobretudo nas que ficaram fora dos termos escolhidos, porque a igualdade num único exemplo não prova que os circuitos implementam a mesma função.

Exercícios

Justificar a absorção

Simplifica F=A‾B+AB+AB‾F=\overline AB+AB+A\overline B e indica uma entrada em que a saída é 0.

Pista

Agrupa os dois termos que contêm B.

Mais uma pista

B+A B̄ pode ser reduzido por distributividade.

Solução

F=B(A‾+A)+AB‾=B+AB‾=(B+A)(B+B‾)=A+BF=B(\overline A+A)+A\overline B=B+A\overline B=(B+A)(B+\overline B)=A+B. A saída é 0 apenas para A=B=0, ou seja, os termos originais cobrem as outras três linhas.

Confere a tua resposta:

  • Obtém A+B por identidades válidas.
  • A saída só é zero para A=B=0.

Erros frequentes

Não elimines uma variável num termo sem mostrar o grupo complementar.

Voltar à explicação
Mintermos e maxtermos

Para F(A,B,C)=1F(A,B,C)=1 nos índices 0,2,7, escreve a SOP canónica e o maxtermo do índice 5.

Pista

O índice é a leitura binária ABC.

Mais uma pista

Uma soma maxtermo tem de ser 0 na linha correspondente.

Solução

F=A‾B‾C‾+A‾BC‾+ABCF=\overline A\overline B\overline C+\overline AB\overline C+ABC. O índice 5 é 101; o seu maxtermo é (A‾+B+C‾)(\overline A+B+\overline C), que nessa linha vale 0+0+0. Esse maxtermo integra a POS da função porque a linha 5 tem saída 0.

Confere a tua resposta:

  • Escreve três mintermos com todas as variáveis.
  • Maxtermo 5: A negado + B + C negado.

Erros frequentes

Nos maxtermos, bit 1 exige variável negada; não uses a regra dos mintermos.

Voltar à explicação
Só portas NAND

Implementa F=A+BCF=A+BC usando apenas NAND de duas entradas. Indica os nós intermédios.

Pista

Aplica De Morgan à OR final.

Solução

Calcula u=NAND⁡(A,A)=A‾u=\operatorname{NAND}(A,A)=\overline A e v=NAND⁡(B,C)=BC‾v=\operatorname{NAND}(B,C)=\overline{BC}. Depois F=NAND⁡(u,v)=A‾ BC‾‾=A+BCF=\operatorname{NAND}(u,v)=\overline{\overline A\,\overline{BC}}=A+BC. São três NAND, sem uma OR escondida.

Confere a tua resposta:

  • Duas NAND calculam A negado e BC negado.
  • Uma terceira NAND combina-as em A+BC.

Erros frequentes

Não uses a saída NAND de BC como se fosse o produto BC, porque essa saída já vem negada.

Voltar à explicação
Cofatores e seleção

Para F(A,B,C)=Σm(1,3,5,6)F(A,B,C)=\Sigma m(1,3,5,6), com índices na ordem ABC, calcula F(0,B,C) e F(1,B,C). Implementa a função com um MUX 2:1 e lógica auxiliar. Indica a seleção e verifica a saída em ABC=110.

Pista

Substitui A por 0 e por 1 na soma de mintermos.

Mais uma pista

F(0,B,C)=¬BC+BC=C; F(1,B,C)=¬BC+B¬C=B⊕C.

Solução

Com A=0, as linhas a 1 são BC=01 e 11, dando B‾C+BC=C\overline BC+BC=C. Com A=1, são BC=01 e 10, dando B‾C+BC‾=B⊕C\overline BC+B\overline C=B\oplus C. Liga S=A, I0=C e I1 à saída de uma XOR de B com C. Em ABC=110, seleciona I1=1 XOR 0=1, como exige o mintermo 6. O MUX sozinho não produz a XOR: essa porta faz parte da implementação.

Confere a tua resposta:

  • Calculaste os dois cofatores
  • Ligaste a seleção ao MUX

Erros frequentes

Estes cofatores pertencem a Σm(1,3,5,6), não a AB+CD.

Voltar à explicação

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.