kb/data/en.wikipedia.org/wiki/Canonical_normal_form-3.md

3.6 KiB
Raw Blame History

title chunk source category tags date_saved instance
Canonical normal form 4/4 https://en.wikipedia.org/wiki/Canonical_normal_form reference science, encyclopedia 2026-05-05T14:45:04.681873+00:00 kb-cron

The description of the bottom-up development mentions co as an output but not co. Does that design simply never need the direct form of the carry out? Well, yes and no. At each stage, the calculation of co depends only on ci, x and y, which means that the carry propagation ripples along the bit positions just as fast as in the canonical design without ever developing co. The calculation of u, which does require ci to be made from ci by a 1-input NOR, is slower but for any word length the design only pays that penalty once (when the leftmost sum digit is developed). That's because those calculations overlap, each in what amounts to its own little pipeline without affecting when the next bit position's sum bit can be calculated. And, to be sure, the co out of the leftmost bit position will probably have to be complemented as part of the logic determining whether the addition overflowed. But using 3-input NOR gates, the bottom-up design is very nearly as fast for doing parallel addition on a non-trivial word length, cuts down on the gate count, and uses lower fanouts ... so it wins if gate count and/or fanout are paramount! We'll leave the exact circuitry of the bottom-up design of which all these statements are true as an exercise for the interested reader, assisted by one more algebraic formula: u = ci(x XOR y) + ci(x XOR y)]. Decoupling the carry propagation from the sum formation in this way is what elevates the performance of a carry-lookahead adder over that of a ripple carry adder.

== Application in digital circuit design == One application of Boolean algebra is digital circuit design, with one goal to minimize the number of gates and another to minimize the settling time. There are sixteen possible functions of two variables, but in digital logic hardware, the simplest gate circuits implement only four of them: conjunction (AND), disjunction (inclusive OR), and the respective complements of those (NAND and NOR). Most gate circuits accept more than 2 input variables; for example, the spaceborne Apollo Guidance Computer, which pioneered the application of integrated circuits in the 1960s, was built with only one type of gate, a 3-input NOR, whose output is true only when all 3 inputs are false.

== See also == List of Boolean algebra topics

== References ==

== Further reading == Bender, Edward A.; Williamson, S. Gill (2005). A Short Course in Discrete Mathematics. Mineola, NY: Dover Publications, Inc. ISBN 0-486-43946-1. The authors demonstrate a proof that any Boolean (logic) function can be expressed in either disjunctive or conjunctive normal form (cf pages 56); the proof simply proceeds by creating all 2N rows of N Boolean variables and demonstrates that each row ("minterm" or "maxterm") has a unique Boolean expression. Any Boolean function of the N variables can be derived from a composite of the rows whose minterm or maxterm are logical 1s ("trues") McCluskey, E. J. (1965). Introduction to the Theory of Switching Circuits. NY: McGrawHill Book Company. p. 78. LCCN 65-17394. Canonical expressions are defined and described Hill, Fredrick J.; Peterson, Gerald R. (1974). Introduction to Switching Theory and Logical Design (2nd ed.). NY: John Wiley & Sons. p. 101. ISBN 0-471-39882-9. Minterm and maxterm designation of functions

== External links ==

Boole, George (1848). "The Calculus of Logic". Cambridge and Dublin Mathematical Journal. III. Translated by Wilkins, David R.: 183198.