Escriu una funció utilitzant & (AND), | (OR), ! (NOT).
L'ordinador llegeix la teva fórmula i crea un arbre d'operacions per entendre la jerarquia i la prioritat. Cada node representa una operació lògica abstracta.
Per entendre per què el següent pas genera tantes portes, hem de mirar com l'algorisme ingenu tradueix cada operació a NAND. Com que no sap compartir cables, clona subcircuits sencers (representats aquí com a X i Y).
NAND(X, X)
Cost: 1 porta extra. Problema: Clona tot el subcircuit X a les dues entrades.
NAND( NAND(X,Y), NAND(X,Y) )
Cost: 3 portes. Problema: Calcula NAND(X,Y) dues vegades de forma independent.
NAND( NAND(X,X), NAND(Y,Y) )
Cost: 3 portes. Problema: Clona el subcircuit X i clona el subcircuit Y.
Aplicant cegament les regles del pas anterior. Si una entrada ja era el resultat de 5 portes, i la regla diu que s'ha de posar dues vegades, l'algorisme reconstrueix aquelles 5 portes de nou. Observa la redundància.
Primera neteja. L'optimitzador detecta els patrons NOT(NOT(X)) i els destrueix connectant el cable directament. Menys portes, menys latència, menys consum d'energia.
S'eliminen agrupacions ineficients (com un AND seguit d'un NOT) col·lapsant-les en una sola porta NAND.
El pas més intel·ligent: en comptes de clonar els subcircuits X o Y a l'arrel, l'algorisme solda el cable i el divideix, transformant l'arbre matemàtic en un autèntic esquema elèctric.
La prova del cotó. Aquest és el comportament exacte del teu circuit un cop fabricat provant totes les combinacions de 0 (apagat) i 1 (encès).