Altifigence Academy

7 / 63 · Concetto

Algebra booleana, equivalenza e costo d’implementazione

Trasformare circuiti con De Morgan e fattorizzazione, distinguendo equivalenza logica e temporizzazione.

Espressioni equivalenti producono la stessa uscita per ogni ingresso

Semplificare un circuito combinatorio non significa soltanto accorciare una formula. Occorre mantenere la funzione considerando livelli logici, fan-in, fan-out e celle realmente disponibili. Leggiamo anzitutto ++ e moltiplicazione dell'algebra booleanaAlgebra booleana Algebra di 0,1, AND, OR e NOT. Il simbolo più indica normalmente OR e segue regole diverse dall’addizione intera. come OR e AND.

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

La seconda identità si verifica per casi: con A=1A=1 entrambi i membri valgono 1; con A=0A=0 valgono entrambi BB. Anche dopo aver applicato un'identità memorizzata bisogna saperne spiegare il significato.

Leggere strutture NAND e NOR con De Morgan

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

Per esempio, Y=AB+ACY=AB+AC equivale ad A(B+C)A(B+C). La prima forma si disegna con due AND e una OR, la seconda con una OR e una AND. Tuttavia, con tempi d'arrivo o carichi diversi, la soluzione con meno porte non è sempre più veloce.

È utile anche il teorema del consenso:

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

Quando BC=1BC=1, se A=0A=0 è già 1 il termine A‾C\overline A C, mentre se A=1A=1 è già 1 ABAB. Quindi BCBC è ridondante per la funzione a regime. Eliminarlo può però modificare gli hazard durante le transizioni; vedremo questa differenza nella lezione sui ritardi.

Ogni colonna rappresenta una combinazione ABC, non il trascorrere del tempo. Controllate che le due uscite coincidano in tutte le colonne. Numero di porte e cammini possono differire, ma la funzione per ingressi 0/1 stabili è uguale.

Equivalenza di AB + AC e A(B + C)
Mostra i dati della forma d’onda
Dati della forma d’onda: ogni carattere è un intervallo; il punto mantiene lo stato precedente; p è un ciclo di clock.
SegnaleForma d’ondaValori del bus
ABC23452345000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
AB+AC0....1..
A(B+C)0....1..

Criterio per verificare l'equivalenza

Chiamate y_ref e y_opt le versioni prima e dopo la trasformazione e, per spazi d'ingresso piccoli, confrontate tutte le combinazioni. Uno o due casi verificati con successo non bastano a concludere l'equivalenza.

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

In tutte le otto combinazioni 0/1, mismatch deve essere sempre 0. Una simulazione a quattro stati con X/Z o l'equivalenza di circuiti sequenziali richiede condizioni aggiuntive. Dichiarare l'ambito effettivamente dimostrato è fondamentale nella revisione del progetto.

Prova tu

Semplificate F=A‾B+AB+AB‾F=\overline A B+AB+A\overline B e indicate quante combinazioni d’ingresso verificare.

Leggi la spiegazione

I primi due termini danno B(A‾+A)=BB(\overline A+A)=B, quindi F=B+AB‾=A+BF=B+A\overline B=A+B. Due variabili richiedono quattro combinazioni. L’equivalenza delle formule non implica uguali ritardi di propagazione.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.