Les circuits de profondeur 2 nécessitent une taille exponentielle pour calculer l'addition, car un circuit de profondeur 2 doit être DNF ou CNF et il est facile de vérifier qu'il existe de manière exponentielle de nombreux minterms et maxterms.
Attention : la partie ci-dessous est buggée . Voir les commentaires sous la réponse.
De la façon dont je le compte, l'addition peut être effectuée en profondeur 3. Supposons et b i sont les i ème bits des deux nombres, où 0 est l'indice du LSB et n du MSB. unejebjeje0n
Calculons le ème bit de la somme, s i de la manière standard avec report d'anticipation:jesje
sje= aje⊕ bje⊕ cje
où est XOR et c i est le portage calculé comme suit:⊕cje
cje= ⋁j ∣ j < i( gj∧ pj)
et signifie que le j ème emplacement "a généré" le report:gjj
gj= ( aj∧ bj)
et signifie que le report se propage de j à i :pjjje
pj= ⋀k ∣ j < k < i( unj∨ bj)
En comptant la profondeur, est la profondeur 2 et c i est la profondeur 3. Alors qu'il semblerait que s i soit la profondeur 4 ou 5, ce n'est vraiment que la profondeur 3 car il s'agit d'un calcul fanin borné de circuits de profondeur 3 donc un peut pousser les deux niveaux supérieurs vers le bas en utilisant des formules de-Morgan, tout en gonflant la taille du circuit d'une quantité polynomiale.pjcjesje