Altifigence Academy

7 / 63 · Conceito

Álgebra booleana, transformações equivalentes e custo de implementação

Transforme circuitos por De Morgan e fatoração e distinga equivalência lógica de temporização.

Expressões equivalentes coincidem para todas as entradas

Simplificar um circuito combinacional não é apenas encurtar a expressão. Preservando a função, considere estágios lógicos, fan-in, fan-out e células disponíveis. Primeiro interprete ++ e o produto da álgebra booleanaÁlgebra booleana Álgebra de 0, 1 e das operações AND, OR e NOT. O sinal de soma costuma representar OR, portanto suas regras diferem das da soma de inteiros. como OR e AND.

A+AB=A,A+A‾B=A+BA+AB=A,\qquad A+\overline A B=A+B

A segunda identidade pode ser verificada por casos: com A=1A=1, ambos os lados valem 1; com A=0A=0, ambos valem BB. Você deve conseguir explicar uma identidade mesmo depois de aplicá-la de memória.

Leia estruturas NAND e NOR com De Morgan

AB‾=A‾+B‾,A+B‾=A‾ B‾\overline{AB}=\overline A+\overline B,\qquad \overline{A+B}=\overline A\,\overline B

Por exemplo, Y=AB+AC=A(B+C)Y=AB+AC=A(B+C). A primeira forma usa duas AND e uma OR; a segunda, uma OR e uma AND. Porém, diferenças na carga ou na chegada das entradas podem fazer a opção com menos portas não ser a mais rápida.

O teorema do consenso também é útil:

AB+A‾C+BC=AB+A‾CAB+\overline A C+BC=AB+\overline A C

Se BC=1BC=1, com A=0A=0 o termo A‾C\overline A C já vale 1; com A=1A=1, o termo ABAB já vale 1. Portanto, BCBC é redundante para a função estável. Eliminá-lo pode mudar os riscos de pulsos espúrios durante as transições, como veremos ao estudar atrasos.

Cada coluna abaixo representa uma combinação ABC, não a passagem do tempo. Confira que as duas saídas coincidem em todas elas: embora portas e caminhos sejam diferentes, a função para entradas 0/1 estáveis é a mesma.

Equivalência entre AB + AC e A(B + C)
Ver os dados da forma de onda
Dados da forma de onda: cada caractere é um intervalo; um ponto mantém o estado anterior; p representa um ciclo de clock.
SinalForma de ondaValores do barramento
ABC23452345000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
AB+AC0....1..
A(B+C)0....1..

Critério de verificação de equivalência

Chame de y_ref e y_opt as versões anterior e posterior e compare todas as entradas quando o espaço for pequeno. Passar em um ou dois exemplos não demonstra equivalência.

SystemVerilog
assign y_ref = (a & b) | (a & c);
assign y_opt = a & (b | c);
assign mismatch = y_ref ^ y_opt;

mismatch deve permanecer em 0 nas oito combinações 0/1. A simulação de quatro estados com X/Z e a equivalência sequencial exigem condições adicionais. Declarar o alcance exato do que foi demonstrado é uma base da revisão de projeto.

Experimente

Simplifique F=A‾B+AB+AB‾F=\overline A B+AB+A\overline B e indique quantas combinações devem ser verificadas.

Ler a explicação

Os dois primeiros termos dão B(A‾+A)=BB(\overline A+A)=B, portanto F=B+AB‾=A+BF=B+A\overline B=A+B. Há duas variáveis: devem ser verificadas quatro combinações. A equivalência das expressões não implica atrasos de propagação iguais.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.