Una funzione logica descrive un risultato a partire da uno, due o più ingressi. Gli ingressi e il tipo di operazione logica (AND, OR, NOR, NAND ecc ecc) determinano il numero e il tipo di porte logiche da utilizzare per implementare la funzione. Tali porte logiche (solitamente realizzate con tecnologia CMOS) inseriscono dei ritardi nella propagazione dei segnali, quindi ci sarà un ritardo tra l'applicazione dell'ingresso e la lettura dell'uscita, e tali ritardi sono tanto maggiori quanto maggiore è il numero di porte logiche connesse in cascata (cioè nelle quali l'uscita di una è l'ingresso dell'altra). Inoltre tali porte hanno un costo, che se pure di un infinitesimo, in quantità enormi (si consideri che un chip di un processore contiene all'incirca 4 milioni di porte) risulta non trascurabile.
Un ultimo problema è determinato dall'assorbimento di potenza elettrica, che in totale (per l'intero chip) non è affatto irrisorio.
Risulta chiaro che quindi minimizzare un circuito risulta vantaggioso sotto tutti i punti di vista.