Talk:Adder (electronics)

ripple carry adder
I made some argument about this. But I didn't do the job for my own because I'm not a native speaker of English. I want to see someone does that job. —Preceding unsigned comment added by Routitz (talk • contribs) 17:48, 5 April 2010 (UTC)

Overflow Detection for Adders
Would anyone object to putting overflow detection circuits for adder circuits in this article? The articles about overflow didn't seem quite the place to put information like this. Lordhatrus (talk) 16:32, 6 June 2008 (UTC)

Carry-Skip and Carry-Select
We should probably also link to Carry-skip and Carry-select adders too, since they lie between ripple adders and full lookahead adders.Symmetry 14:47, 18 January 2007 (UTC)


 * The article carry-skip adder now exists, it used to be called carry-bypass adder (see the talk page for details). I've edited this article, and renamed the instance of carry-bypass adder to carry-skip (although still mentioning the alternative nomenclature).  I didn't make any other changes, but want to point out that in the More complex adders section, there are duplicate links for the carry-skip and carry-select adders (they're mentioned in-line with the text, and on the line following which mentions "other adder designs". Bcastell (talk) 13:33, 10 December 2012 (UTC)

carry-lookahead vs carry-propagate
two questions: what is the difference between a carry-lookahead and a carry-propagate, which I have also heard of? Are they the same thing? Also, is the carrry select adder the same as the carry save adder? these can be confusing because they share the same acronym.

jUst wondering. Thanks for good work.


 * A carry-save adder is actually an architecture for adding more than 2 binary numbers together, like in a multiplier. I'm not certain, but I think a carry-propagate adder might be as well.

Ckape 03:03, 3 Jan 2005 (UTC)

GG and PG
What's the GG and PG leaving the carry lookahead at the end of the carry lookahead block? Why do you not just have a single carry out from the lookahead block? Cheers.

suggest changes
can i suggest some changes to the third paragraph:

The other type of single bit adder is the full adder which is like a half adder, but takes an additional input carry Ci. A full adder can be constructed from two half adders by connecting A and B (i.e. the inputs of the full adder) to the input of one half adder, connecting the sum from that to an input of the second adder, connecting Ci to the other input and taking the carry output of the full adder to be the or of the carry outputs of the two half adders. Equivalently, S could be made the three-bit xor of A, B, and Ci and Co could be made the three-bit majority function of A, B, and Ci. The output of the full adder is the two-bit arithmetic sum of three one-bit numbers.

i haven't changed the file myself as this is not really my area of expertise, but i think my changes make clearer the distinction between the full adder and the two half adders. otherwise there is some ambiguity. User:halio 13th dec 2005

i just looked further down the page and realised that the points i found confusing are better expressed by the diagrams than they are in the intro. perhaps this page needs a slight re-edit to create a more succinct intro, and to better integrate the more detailed explaination with the diagrams. User:halio 13th dec 2005

gah! why, on the image of the ripple carry adder, is the first line to the first 'B' crooked!?

Brent & Kung adder
I came to this page on a redirection from "Brent-Kung adder", but I see no reference to B&K. First of all, since the B&K cells are a way to implement a carry lookahead, the redirection should go there. Second, if it's not going to be discussed in the CLA adder page, then what's the point in a redirection?

BTW, a carry propagate adder is an adder where the carry is immediately added, as opposite to the carry save adder where two words (carry and sum) are kept separate till the end. All of the adders here described (ripple carry or lookahead) are carry propagate adders. And the carry select adder is a carry-propagate adder.

Full adder
full adder has three inputs inp1,inp2 and carry.

The one u have stated is a half adder.

In my Logic Design book, it says a full adder has two inputs - not three like this article says. Is this article wrong on that? Fresheneesz 07:28, 13 March 2006 (UTC)

Yes, it's wrong. 76.99.125.152 (talk) 23:44, 22 November 2011 (UTC)

Full adder picture OK?
Is the picture for the full adder really ok? For C_out it implements C_out = (A and B) or (C_in and (A xor B)), which is not equivalent to the stated expression C_out = (A and B) or (C_in and (A or B)). The latter puts a 1 for C_in in the last row of the truth table, whereas the former puts a 0 there.

Note also that the note under the truth table does not concern this problem; A and B can both be 1 simultaneously.

—Preceding unsigned comment added by 129.16.80.10 (talk) 10:40, 18 January 2008 (UTC)

Yes, it's OK, but I think the expression for C_in should be changed to C_out = (A and B) or (C_in and (A or B)) = (A and B) or (C_in and (A xor B)) since the last part of this is what's really implemented.

Full adder picture again
The full adder picture has no arrows or lines in it at all when I look at it in the article. On the description page, I still see no lines. When I click the actual image URL I see the lines. What gives? Is it a browser error? (happens for me in Safari or Firefox 3 in MacOS X) Staecker (talk) 22:01, 10 December 2008 (UTC)

I see the lines fine -- must be something client-side. I agree that the full adder picture should be replaced, but on the grounds that it doesn't clearly show how it can be constructed of two half-adders and an OR gate. 152.78.170.144 (talk) 16:59, 23 January 2009 (UTC)

Is there any way this could be written in more layman terms? Thanks for the info! —Preceding unsigned comment added by 192.195.249.152 (talk) 03:50, 10 February 2010 (UTC)

-Basically it doesn't show that the full adder can be constructed out of half adders. —Preceding unsigned comment added by 91.109.163.67 (talk) 13:59, 13 March 2011 (UTC)

Comments in the Article
From the article revision History:


 * The layout of ripple carry adder is simple, which allows for fast design time; however, the ripple carry adder is relatively slow, since each full adder must wait for the carry bit to be calculated from the previous full adder.
 * The gate delay can easily be calculated by inspection of the full adder circuit.
 * Each full adder requires three levels of logic. In a 32-bit [ripple carry] adder, there 32 full adders, so the critical path (worst case) delay is $$32*3=96$$ gate delays. 

I guess this part should be checked. The critical path doesn't occur in that path. Although that is the worst case in this situation, serially connected adders doesn't suffer from that path, because A OR B can be evaluated as soon as the signals come. The critical path occurs through the $$ C_o $$ to $$ C_i $$ root, which is the very signal that cannot be evaluated unless the previous stage is finished. The critical path delay of stage i is $$ 2*i + 1$$, where i > 0. And the first adder is stage 0 in this case.

My reference is "Contemporary Logic Design" which is written by Randy H. Katz.

written by User:Routitz moved to discussion by MichaelFrey (talk) 17:42, 7 April 2010 (UTC)

pyramid of half adders
i have no idea what the official name is, but it is possible to make an effective adder by putting half adders into a pyramid. —Preceding unsigned comment added by 178.109.166.32 (talk) 18:07, 12 January 2011 (UTC)

a mistake
The formula for carry and the picture  are not same. There is an OR between (x.y) and the other part not XOR. Marmzok (talk) 08:24, 24 June 2011 (UTC)
 * In this circuit, the net logic is identical with the lower-right gate being OR or XOR, since the two inputs can never both be high. Both are correct, independently of how the logic formula is written. Dicklyon (talk) 05:46, 23 October 2021 (UTC)

Vandalism and Partial Reverts starting Sept 22nd turning into a mess
Ok, this is turning into a mess so I brought this to the attention of the talk page so I don't jump in and make things worse without first verifying I understand what's going on here. If I understand correctly: What do you feel would be the best coarse of action here? -- T he l azy l eo  ( talk ) 09:09, 24 September 2012 (UTC)
 * 1) At 5:59am we have a vandalizer.
 * 2) At 6:10am we have the same vandalizer striking again.
 * 3) At 7:25am we have a prompt reverter which undid the 6:10 edit but not to the 5:59 edit.
 * 4) Then on Sept 23rd at 10:15pm someone noticed this then attempted to undo the 5:59 edit but only accomplished what appears to be a partial revert.
 * If you see something wrong and you can fix it, Be Bold and fix it. Wikipedia didn't used to debate every comma and non-breaking space...--Wtshymanski (talk) 17:58, 24 September 2012 (UTC)

The alternate form for the Carry Out seems to be the same form as the original Carry Out
The two methods for calculating Cout are the same. Both list the method as $$C_{out} = (A \cdot B) + (C_{in} \cdot (A \oplus B))$$ The text of the artical sates ''Using only two types of gates is convenient if the circuit is being implemented using simple IC chips which contain only one gate type per chip. In this light, Cout can be implemented as'' and it then lists the same methods above $$C_{out} = (A \cdot B) + (C_{in} \cdot (A \oplus B))$$. The second method contains 3 types of logic gates: AND, OR, and XOR.

This change caused some sort of parser error and then the math code was changed again. This is the point where the two methods to calculate Cout became the same.

Maxximillian (talk) 21:57, 7 March 2013 (UTC)

As per the text the two methods shouldn't be the same as one is an alternate (simpler in terms of less type of logic gates) 96.244.142.3 (talk) 15:05, 8 March 2013 (UTC)

critical path of a full adder: T_c = 2 D
isn't it T_c = 2 D + 1T_XOR = 5D? anyway, I am reading that for 1 single full (half) adder, internal (connection and logic gate) delays are dominated by I/O (package) delays; internal delays get propagated and therefore become relevant as several full adders are cascaded;

Is "1-bit full adder" the correct term?
I saw it at transistor count (28 transistors for it) and looked here and saw in the picture. 28 transistor seems to be a degenerate case.. 1 bit+1 bit->2-bit right? [Wouldn't half adder do for one bit?] Should the that article (and the picture here) say "full adder (for every bit)"? Even if this is true this is the only example for adders and should be clarified and maybe half adders adden and more complex schemes that save compared to multi-bit full-adders (x28). And (ignoring the last bit and overflow etc) as that the transistor count you get - by multiplying by 28, the schematic picture for ripple-carry implies that if there is no overhead? Can you do even better with full adders? Anyone know best case for non-ripple for say 32 or 64 bit? comp.arch (talk) 09:59, 22 October 2014 (UTC)


 * Yes, "1 bit full adder" is the right term for a function that takes 3 input bits (often called A, B, and Cin) and outputs the sum as 2 output bits (the sum bit S and the carry bit Cout) as described in adder (electronics). That function cannot be implemented with only a single half adder.


 * Using "conventional" standard static CMOS with only pull-up and pull-down transistors, my understanding is that 28 transistors is the minimum number of transistors to implement a "1 bit full adder".


 * (As those references point out, people have found a variety of ways to make such full adders using fewer transistors, such as using pass gates, also called transmission gates, and dynamic logic, etc. -- but each of these approaches has its own drawbacks).


 * Yes, you could implement a 16-bit ripple-carry adder out of such 28-transistor full adders using 16 full adders, using 16*28 = 448 transistors with no overhead.

Rename this article Binary adder, or something not related to electronics
I came here by going through the Full adder redirect, and added the Quantum full adder section. Then I noticed that the article's name was Adder (electronics). A full adder does not need to use electronics, it just need to be something that can implement boolean arithmetic expressions, as in my case, a quantum circuit. There are binary adders in multiple models of computation, such as cellular automata, as well. Also: Notice that the binary substraction (Subtractor) and multiplication (Binary multiplier) articles does not say they are about electronics.

Suggestion: Rename this article Binary adder, or something like that. · · · Omnissiahs hierophant (talk) 16:06, 6 August 2021 (UTC)

No-one neither oppose nor support this idea..? If no-one has anything at all to say about this, I will eventually move the article to Binary adder with the following motivation: "1) Adder (electronics) is about binary addition, the main/only section is named "Binary adders". 2) Binary addition does not have to be done by electronics. Binary addition can also be done by various cellular automata, quantum circuits, pneumatic "circuits", et.c.. The important thing is the boolean logic, not what implements the logic! 3) The sibling articles Binary multiplier and Subtractor does not say in the article title that it is specific about electronics."

I will make this happen in a month from now, unless someone opposes this idea. · · · Omnissiahs hierophant (talk) 14:59, 15 October 2021 (UTC)
 * Oppose. What do the sources call it? They talk about "adders", never "binary adders". --Wtshymanski (talk) 04:59, 23 October 2021 (UTC)
 * Oppose. Based on W's comment, I checked sources, thinking that maybe "binary adder" was a good alternative.  What I found was that the term is used almost exclusively in the context of "n-bit binary adder", such as the old 4-bit binary adder TTL MSI chips.  That is, the term is used when adding binary numbers, but not for the basic adder cells and low-level circuit strategies that this article is mostly about. Dicklyon (talk) 05:22, 23 October 2021 (UTC)


 * Support, albeit to other name or refactor. The introduction says digital circuit, it is part of the Arithmetic logic circuits series, the bulk of the article focuses on logic gates, more specifically boolean ones. The series' articles prefixes with binary, bitwise or bits, but only when disambiguation is necessary, and have the same boolean focus with varying terminology. A CMOS transistor implementation example is given and analog has a paragraph, not enough to justify "electronics" in the title. And there are adders in other domains too. IMO the article should embrace the whole concept and drop the qualifier, as long as just one aspect is the bulk of it. If not, focus on binary and be named as such.
 * "Logic circuits gates" being just one implementation.
 * "Boolean" being just the abstract.
 * "Bit" being just a piece.
 * "Digital" meaning just numbers.
 * Musaran (talk) 21:43, 26 October 2023 (UTC)

Split out "Full Adder"
"Full adder" certainly deserves its own page, possibly removing some information in this article. --Trex4321 (talk) 07:55, 6 September 2021 (UTC)
 * Oppose. It's a couple of paragraphs here - it could be tightened up without all the textbook-style lecturing. Better one article that briefly and accurately surveys the topic than a forest of highly-similar articles to explain every variant and flavor. Just how much effort do we expect the reader to expend in picking out the minute shards of explanation from the deep shag carpet of Wikipedia to re-assemble the souvenir ashtray of knowledge? --Wtshymanski (talk) 20:21, 7 September 2021 (UTC)
 * Oppose. I also oppose this! Because it would totally gut the article, leaving not that much remaining. Also it is somewhat contrary to my suggestion to just rename this article (see section above). If people wish to write much more on the topic of full adders then just add more sections, its okay if the article grows · · · Omnissiahs hierophant (talk) 01:28, 8 September 2021 (UTC)
 * Oppose – the current coverage with half adders and full adders and ways of building on them seems about right. Dicklyon (talk) 05:23, 23 October 2021 (UTC)

Block diagram for carry-lookahead adder seems incorrect


The adder blocks shouldn't be called a "full adder" when it doesn't output a carry on its own, but rather has P and G outputs. Instead, the adder with P and G as outputs is completed as a full adder with the carry-lookahead block. The label on the adder blocks should be changed to make it less confusing. 2601:703:280:9C80:C993:D992:C34E:4AE0 (talk) 02:22, 25 January 2023 (UTC)