Talk:XOR gate
This level-5 vital article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||
|
Building XOR with 3 gates
[edit]is it possible to build an XOR gate from less than 4 NAND gates? Pjbeierle (talk) 22:55, 14 April 2010 (UTC)
- yes, per this circuit in the article https://en.wikipedia.org/wiki/File:254px_3gate_XOR.jpg
- also can be implemented with 2 NOR gates and 1 AND gate, per https://www.righto.com/2023/12/386-xor-circuits.html
- A and B inputs are routed through a 2in-NOR out to C.
- A and B inputs are routed through a 2in-AND out to D.
- C and D intermediate outpus are routed through a 2in-NOR out to Y (final output).
Implementation
[edit]This page should show a transistor implementation of an xor gate. Fresheneesz 02:08, 19 October 2006 (UTC)
- Agreed. Although whether TTL or CMOS would be better, I'm not sure. I'd prefer CMOS because MOSFETs are easier to understand than bipolar transistors, but more people are familiar with bipolars... 87.75.164.162 21:09, 19 October 2006 (UTC)
XOR Gate Constructed Using Only NOR Gates - image
Doesn't the schematic actually depict a XNOR gate instead of a XOR gate like it should be?? maybe it's just to late. 130.88.165.70 05:15, 23 January 2007 (UTC)
I was thinking the same thing as "130.88.165.70 05:15, 23 January 2007 (UTC)" - that picture should have another NOR gate at the end. But I'm pretty new to the whole gate concept
I too agree. The depicted NOR gate logic is that of XNOR, the negative of XOR. Assuming positive logic, this difference is nontrivial. — Preceding unsigned comment added by Cswartzell (talk • contribs) 03:19, 25 January 2012 (UTC)
Three inputs revisited
[edit]That last edit was foolish. Exclusive or is not universally defined to give parity. Its definition is disputed. --ToobMug 16:38, 22 April 2007 (UTC)
I disagree. Parity for the sixteen boolean logic operators is a given, unless you like to think of there only being eight and their negatives, but this could lead to confusion if one is not careful — Preceding unsigned comment added by Cswartzell (talk • contribs) 03:16, 25 January 2012 (UTC)
Unique Properties
[edit]Xor has very interesting properties that give it very unique uses, and it would be relevant to mention these applications. For instance, since A^A = 0, xor can identify any numbers that are not duplicated given a string of integers (ie. A^B^C^A^B = C). Also, since A^B=C implies that C^B = A, it can be exploited to create a doubly linked list in which only one pointer is needed per node. Xor is also often used in simple cryptography appications. User:ypg1988 19:52, 3 October 2007 (UST)
Cryptography
[edit]I agree with ypg1988: this article should explain the use of XOR in cyptography.
Also, in case anyone feels like making another one of those diagrams, here's another way to make XOR logic out of other types of gates:
>>====OR--------------\
...\\...................................---AND----->
....\\===AND----NOT---/
how does xor gate function with cmos? —Preceding unsigned comment added by 41.204.170.69 (talk) 10:11, 16 October 2009 (UTC)
I added a circuit diagram for a cmos xor --Wikidood123456789 (talk) 10:14, 7 January 2010 (UTC)
Why is that CMOS?
[edit]I'm referring to the example CMOS implementation of an XOR gate.
On CMOS it says "The main principle behind CMOS circuits [...] to create paths to the output from either the voltage source or ground." But when both A and B are not set, there is no path from the output to the ground. So why is this still considered a CMOS circuit? 88.73.98.31 (talk) 08:31, 16 January 2010 (UTC)
I think you're right. In order for this to be a CMOS XOR gate, transistor connected to Vcc needs to be p-type, making the right two transistors into an inverter. 76.126.57.22 (talk) 05:13, 20 January 2010 (UTC) The bit on the right with 2 transistors is an inverter. —Preceding unsigned comment added by Wikidood123456789 (talk • contribs) 17:29, 5 February 2010 (UTC) im wondering if he vcc could be connected with to diodes to the inputs. Wikidood123456789 (talk) 17:36, 5 February 2010 (UTC) i see now it is a p-type mosfet with a differrent symbol i can upgrade the picture Wikidood123456789 (talk) 18:34, 5 February 2010 (UTC)
I would criticize this picture as being unnecessarily complex-looking. If you pull it apart it is easier to understand: just two pass transistors and a transmission gate (with an inverter for making ~A) —Preceding unsigned comment added by 136.152.148.147 (talk) 00:42, 13 March 2010 (UTC)
- I've been looking at that schematic as well - there are a number of problems with it. The fact that the output is undefined when the inputs are floating is not a problem in itself - logic circuits are only ever defined when the inputs are. This is true for CMOS where a floating input is meaningless, although TTL avoids the problem by defining a floating input as high.
- The problems I see are the schematic doesn't actually work. When A = 1 and B = 0 the output is linked to the A input, and any current drawn from the output is passed straight through to A. That limits the depth of logic you can implement and also has implications for fan out.
- Worse, when A = 0 and B = 1 the B input is connected to VCC. That means that whatever is driving that input is then unable to alter that input since the circuit is driving it itself. Sicne the only reference for this schematic points ot a simualtor as if to say "try it for yourself" (which is inherently OR anyway) I suggest it should be deleted. Crispmuncher (talk) 21:57, 25 June 2010 (UTC)
- The circuit implements the XOR function and it is CMOS - CMOS stands for Complemantary Metal Oxide Semiconductor. That means a CMOS circuit will use both nMOS and pMOS type transistors. What this circuit is, it's a pass transistor logic gate. And by the way, if you consider this circuit as part of a more complex system, its behaviour is according to the quote from the CMOS article "create paths to the output from either the voltage source or ground". If you consider the inputs of the gate generated by another CMOS gate (but not a pass transistor gate), the output will still be connected to either ground or power line for all input combinations, only that it's not connected inside this gate but on a previous one.212.77.163.102 (talk) 14:55, 30 September 2010 (UTC)Apass
- Sorry, I should have got back to this sooner but somehow I overlooked these comments at the time. I've only returned here since I notice the image has just been replaced by a SVG. The problem there is that without any gain if you link up a chain of ten of twenty such gates one after the other the resulting gate network won't work since the original input signal gets weaker and weaker as it passes through each gate. That goes against one of the core abstractions needed of a useful logic family. In any case, as I noted earlier, it does not work even in this minimal sense since some inputs cause the circuit to drive the input. I've shown this below, showing the state of each transistor and the resulting current path between input B and VCC. Once this path is set up the network attached to B is being driven by two different gates with all the problems that brings - the gate intended to drive B will in all probability be unable to deassert the input while it is still being driven high by the XOR gate.
- Since there are no sources for this gate, and no-one has come up with any meaningful defence for the circuit I am going to trim it now. Crispmuncher (talk) 17:14, 21 October 2011 (UTC).
- I agree that this particular schematic diagram appears unnecessarily complex-looking, and I encourage anyone to replace it with "the same" circuit redrawn in a way that is easier to understand.
- I agree that a link to a simulator is not a reliable source.
- I also agree that this 6-transistor circuit is more accurately called a pass transistor logic XOR gate.
- I don't see how it is relevant that "there are a number of problems with it" -- Wikipedia has thousands of other articles that discuss things that have problems, and yet people use those things every day.
- Rather than simply deleting all mention of things with problems, I think it is better for an encyclopedia to document what reliable sources say about those things, including their problems.
- I found a few sources that, as far as I can tell, show exactly the same 6-transistor circuit as shown above.
- Even though I am reverting Crispmuncher's edit, I'd like to say that he made the right decision at the time. There was only one "reference" associated with it, which didn't actually show that circuit, so at the time it seemed highly likely that there was an error in that diagram with no way of finding the "correct" arrangement.
- Now that we have more references, I think we should talk about this some more.
- In particular, the "A comparative performance analysis of various CMOS design techniques for XOR and XNOR circuits" reference lists many ways to implement XOR.
- I would be happy if someone remove the schematic I recently restored and replaced it with other, arguably better, XOR implementation(s) mentioned in that or other reliable sources.
- --DavidCary (talk) 17:09, 14 October 2015 (UTC)
- Oppose removing schematics. It's not that hard to figure how it works once you know how converters work and where the current is directed (don't confuse with a voltage). AXONOV (talk) ⚑ 09:36, 9 July 2022 (UTC)
Minimal implementation
[edit]Should we not mention the minimal three gate XOR gate? The inputs may be connected to a pair of AND gates with one inverting input each, and the outputs of those combined via an OR gate. The AND gate with an inverting input may not be a widely recognised gate but inverting an input in CMOS (and and most other logic families) is a simple re-wiring job, free in terms of components and area. Crispmuncher (talk) 21:57, 25 June 2010 (UTC)
- @Crispmuncher: Your wish is my command ;) - by using a bit of boolean logic: I have added a three standard gate solution using an AND, a NAND and a OR gate. I have also made a circuit diagram for it and added it to the article. --Crystallizedcarbon (talk) 22:09, 4 September 2014 (UTC)
Signal crossing
[edit]Is this really a practical solution to a real problem? Oli Filth(talk|contribs) 19:22, 7 April 2013 (UTC)
- As this is unsourced (and my half-arsed web search didn't reveal anything), I've removed this for now. Feel free to restore with a source. Oli Filth(talk|contribs) 18:47, 19 May 2013 (UTC)
- I've restored with a reference to the paper [1]. Calcyman (talk) 12:21, 17 April 2019 (UTC)
- Hello @Calcyman: I have removed it as there is no indication that it is a practical application or that its use is extended. As far as I know, all modern circuits allow multiple metal layers so it seems that it could be more of an academic exercise than a real common application for XOR gates. --Crystallizedcarbon (talk) 18:45, 24 April 2019 (UTC)
External links modified
[edit]Hello fellow Wikipedians,
I have just modified one external link on XOR gate. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
- Added archive http://web.archive.org/web/20160304062239/http://researchtrend.net/ijet/1_Shiv.pdf to http://researchtrend.net/ijet/1_Shiv.pdf
When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at {{Sourcecheck}}
).
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}}
(last update: 5 June 2024).
- If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
- If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—InternetArchiveBot (Report bug) 18:00, 20 July 2016 (UTC)
Inverters
[edit]Jul 8, 2022, 06:48 - «Undid revision 1096662588 by Alexander Davronov talk) The two gates on the left are not really an inverter. They look like one, but are not tied to Vdd or ground»
- @Crystallizedcarbon: Hi. There is source for that: [2] These are two inverters and one transmission gate. An example of the converter is given on the right. No need for a direct supply of voltage. The first converter (on the left) in the circuit in question is sourcing its supply from the base' of the
pnp
tranistor of the second inverter on the right side of the circuit.
AXONOV (talk) ⚑ 17:53, 8 July 2022 (UTC)
- Hello @Alexander Davronov: That is not an inverter. An inverter must always output a voltage representing the opposite logic-level to its input. That is not the case in that circuit, as it is conditional on the value of A. It behaves as an inverter only if A is at a logic high. --Crystallizedcarbon (talk) 08:11, 10 July 2022 (UTC)
- @Crystallizedcarbon: Checkout the sources [3][4][5]: 39 . All of them say that these are inverters that negate A and B inputs in two stages to realize the following formula:
- AXONOV (talk) ⚑ 08:33, 10 July 2022 (UTC)
- Hello @Alexander Davronov: The circuit in the first source is similar to the one in the article. If you read it carefully it does state that it is not connected to Vdd or GND and that it only behaves like an inverter some times. It depends on the value of A (for that one when A has a logic low). So it is similar to an inverter, but it is not an inverter. An inverter must always output a voltage representing the opposite logic-level to its input.
- Notice how the circuit on your second source does have two actual inverters, as they are both tied to Vdd and GND, but that is not the circuit in the article.
- Also, please notice that the implementations on your third source are completely different as well. The schematic in that third source does not include any inverters. The two inverters mentioned require 4 additional gates that are not shown and that would be needed to generate and . Regards. --Crystallizedcarbon (talk) 15:47, 10 July 2022 (UTC)
- @Crystallizedcarbon: Mate, the inverter can:
- 1. if the input is negative: sink a current (a power supply or output of something else) suppplied via
pnp
drain (top transistor) to the output - 2. if the input is positive: sink the output to the ground.
- 1. if the input is negative: sink a current (a power supply or output of something else) suppplied via
- That's how it works. You don't need Vdd actually to pass through pnp transistor.
[…] on your third source are completely different as well […]
The third source says that algebraic formula requires negation of inputs. You can't avoid inversion in anyway because that's what boolean math says. You need inverters for that. It's actually a matter of how they are connected. AXONOV (talk) ⚑ 16:31, 10 July 2022 (UTC)- @Alexander Davronov:, no something else, only the logic high voltage level (vdd), hence the definition of inverter. It inverts the input. If you tie the PMOS to something other than Vdd you have a different kind of circuit. Please notice that the truth table of that circuit has two inputs (as output depends on the values of both B and A) and inverters have only one. And what you defined as an inverter is not even a gate since when A is at logic low the output of those two transistors would be floating.
- As far as your comment on the third source, I don't see how that relates to the circuit on the article. That one does have two inverters and the one on your second source does as well (both with connections to Vdd and GND and with one input and one output), but the one in the article does not. Regards. --Crystallizedcarbon (talk) 17:47, 10 July 2022 (UTC)
- @Crystallizedcarbon: As I told you - you don't need Vdd for an inverter. This's pointless to discuss. Almost any signal can be inverted. Bring sources if you think you are right otherwise. I just made this circuit on the right for you so you can see yourself how A and B signals get inverted at both upper and lower circuits. There are basically two XORs on the top and at the bottom (dashed boxes). They just share common inputs. At the bottom XOR the inputs are sunk by an opposite PNP transistors when the opposite input is driven low. I think we shouldn't discuss this because inversion is evident from algebraic formula. You can't avoid it in anyway. AXONOV (talk) ⚑ 21:39, 12 July 2022 (UTC)
- Hello again @Alexander Davronov: I don't think you are understanding what I'm saying. The two leftmost transistors of circuit in the article do invert B, but only when A is at a logic high, so yes, there is inversion sometimes, but not always. In contrast, the output of the two rightmost transistors are always the at the opposite logic level of its input, so the latter can be properly labeled as an inverter while the former can not.
- All I'm saying is that you can not call it an inverter, as the output is not always the opposite of the input. An inverter by definition must have one input and one output and the output must always be at the opposite logic value of the input. Again, the two leftmost transistors in circuit in the article only behave like an inverter when A is at a logic high. If A is at a logic low the output does not get inverted.--Crystallizedcarbon (talk) 11:10, 13 July 2022 (UTC)
- I hope that you are satisfied by my explanation. If not, please feel free to review our policy on dispute resolution. Regards. --Crystallizedcarbon (talk) 11:10, 13 July 2022 (UTC)
- @Crystallizedcarbon:
All I'm saying is that you can not call it an inverter, as the output is not always the opposite of the input.
This doesn't justify your revert. It's still inverter cricuit, whether it condition the A input based on B or not. Stop WP:STONEWALLing. I ain't repeat my points again. I got source that basically say what I say. You can't avoid inverters for this particular circuit. I propose we keep my edit. AXONOV (talk) ⚑ 11:52, 13 July 2022 (UTC)
- @Crystallizedcarbon:
- @Crystallizedcarbon: As I told you - you don't need Vdd for an inverter. This's pointless to discuss. Almost any signal can be inverted. Bring sources if you think you are right otherwise. I just made this circuit on the right for you so you can see yourself how A and B signals get inverted at both upper and lower circuits. There are basically two XORs on the top and at the bottom (dashed boxes). They just share common inputs. At the bottom XOR the inputs are sunk by an opposite PNP transistors when the opposite input is driven low. I think we shouldn't discuss this because inversion is evident from algebraic formula. You can't avoid it in anyway. AXONOV (talk) ⚑ 21:39, 12 July 2022 (UTC)
- @Crystallizedcarbon: Mate, the inverter can:
- @Crystallizedcarbon: Checkout the sources [3][4][5]: 39 . All of them say that these are inverters that negate A and B inputs in two stages to realize the following formula:
- Hello @Alexander Davronov: That is not an inverter. An inverter must always output a voltage representing the opposite logic-level to its input. That is not the case in that circuit, as it is conditional on the value of A. It behaves as an inverter only if A is at a logic high. --Crystallizedcarbon (talk) 08:11, 10 July 2022 (UTC)
- WP:3O here. The design of the circuit started from which I hope we can agree requires inverters to implement. The circuit was then optimized with pass transistor logic and that's why the inverters are weird/unrecognizable. I think this means you're both right. The caption could avoid mention inverters to avoid opening this can of worms and taking readers on a tangent. Or we could embrace it and add a little more context for pass transistor logic. We're already headed down that path because we've linked to Pass transistor logic at the beginning of the section ~Kvng (talk) 20:48, 13 July 2022 (UTC)
- Right. I agree with Kvng, inversion is needed and it is done with one inverter on the right and with the circuit that performs a conditional inversion on the left, but again, it is not an inverter and it's not right to label it as such without additional context. I agree with the two solutions proposed by Kvng. With the right wording it could be added (something that describes that the inversion is conditional on A and that the output floats otherwise), but if so, I think that the circuit should be explained in full. For me, the text bellow the image, in the article's body, would be the right place for it. --Crystallizedcarbon (talk) 07:53, 14 July 2022 (UTC)
- @Crystallizedcarbon and Kvng: I propose that we say that lower stage-inverter is conditional and is
always zero-voltage if!A when B=1 and A if B=0. The far-right inverter is working as usual, no tricks. Are we okay to go with this? AXONOV (talk) ⚑ 12:57, 14 July 2022 (UTC)A
input is at also at ground (0, zero)- I don't think we need or want to explain the details about how the circuit optimization works, just say something like, The inverter function is optimized using pass transistor logic to reduce the transistor count. ~Kvng (talk) 14:42, 14 July 2022 (UTC)
- I propose: The two leftmost transistors perform an optimized conditional inversion of B when A is at a logic high using pass transistor logic to reduce the transistor count. The two in the middle are a pass gate that drives the output to the value of B when A is at a logic low and the two rightmost transistors are an inverter. You could add it to the text in the body below the image. Regards. --Crystallizedcarbon (talk) 16:20, 14 July 2022 (UTC)
- @Crystallizedcarbon is this detailed description supported by one of the sources? ~Kvng (talk) 21:32, 14 July 2022 (UTC)
- The elements are mentioned. You can change pass gate for transmission gate. But I don't think sourcing is needed as it is a simple circuit and should be covered by WP:CALC. --Crystallizedcarbon (talk) 08:36, 15 July 2022 (UTC)
- Most of this dispute has been about characterizing the details of the circuit. I was hoping to cool the dispute by reducing the amount of detail we present. If we don't have a source that presents what you've proposed in similar or greater detail, I think we need to back off on the detail. ~Kvng (talk) 17:44, 15 July 2022 (UTC)
- As I said before, either option is fine with me. It does not make much sense to go into detail about only one part of the circuit without explaining the rest. That the center transistors are a transmission gate is covered by WP:CALC and so is the fact that the rightmost are an inverter. The functionality of the leftmost transistors is described in the source given by Alexander Davronov. I think it clarifies the functionality and would improve the article, but I am not opposed to keeping the article as is if there is no consensus. Regards. --Crystallizedcarbon (talk) 08:07, 16 July 2022 (UTC)
- Most of this dispute has been about characterizing the details of the circuit. I was hoping to cool the dispute by reducing the amount of detail we present. If we don't have a source that presents what you've proposed in similar or greater detail, I think we need to back off on the detail. ~Kvng (talk) 17:44, 15 July 2022 (UTC)
- The elements are mentioned. You can change pass gate for transmission gate. But I don't think sourcing is needed as it is a simple circuit and should be covered by WP:CALC. --Crystallizedcarbon (talk) 08:36, 15 July 2022 (UTC)
- @Crystallizedcarbon is this detailed description supported by one of the sources? ~Kvng (talk) 21:32, 14 July 2022 (UTC)
- @Kvng: Well, the transmission gate is purely optional and can be omitted (givent that the analog transistors aren't bulk-biased with drain/source are properly aligned). It acts like a local XOR that ensures output is LOW when inputs are HIGH. The logic is CMOS, not the PTL. These are different logic families. We should be accurate. AXONOV (talk) ⚑ 17:13, 16 July 2022 (UTC)
- @Alexander Davronov, are you OK with what Crystallizedcarbon has proposed? ~Kvng (talk) 15:06, 17 July 2022 (UTC)
- @Kvng: Almost, I'm going to reply a bit later on that. I've seen his proposal. AXONOV (talk) ⚑ 17:05, 17 July 2022 (UTC)
- When A is at a logic high, the 2 leftmost transistors invert B and the transmission gate output floats so output is and when A is at a logic low the output of the 2 leftmost transistors floats and B passes through the transmission gate, so output is this is equivalent to The transmission gate (which includes the two transistors in the middle and the inverter in the right) is needed to implement the second term while the output of the 2 leftmost transistors is floating. Regards. --Crystallizedcarbon (talk) 16:47, 18 July 2022 (UTC)
- Perhaps this is more complete: The two leftmost transistors perform an optimized conditional inversion of B when A is at a logic high using pass transistor logic to reduce the transistor count. The two in the middle are a transmission gate that drives the output to the value of B when A is at a logic low and the two rightmost transistors form an inverter needed to generate and complete the transmission gate.
- Any suggestions for improvement are welcome. --Crystallizedcarbon (talk) 17:12, 18 July 2022 (UTC)
- @Crystallizedcarbon: Well it's quite detailed explanation for how entire circuit works but to resolve this dispute I propose to simply mention the fact (like I did in [Jul 10, 2022, 08:12]) that inverting circuits are used regardless of how they are employed in this particular case. Do you agree with this or still deny that inveting circuits are used? AXONOV (talk) ⚑ 11:12, 21 July 2022 (UTC)
- @Crystallizedcarbon: I think we are safe to mention the fact that the left-stage inverter is acting both like inveter and pass-transistor logic depending on input. I propose we discuss the exact way tha the circuit works in a separate discussion. Best. AXONOV (talk) ⚑ 08:45, 22 July 2022 (UTC)
- Hello @Alexander Davronov: We reached consensus that inversion is needed and that the 2 transistors in the left act like an inverter sometimes, depending on A, but can not be called an inverter, as an inverter has only one input and its output is always an inversion of its input. That was my problem with your edit. As I said: "Two inverters are used on the left and right sides of the circuit" would be incorrect for that reason. Just adding that inversion is needed and that it's performed in the right by an inverter and in the left by a pass-transistor logic circuit that inverts B when A is at a logic high, in the legend of the image, would be correct, but does not make too much sense to me. In my opinion, the legend of an image should summarize what it represents, and not go into just one detail of the design. That is why I suggested to add it along with a full description of the circuit functionality in the body. Your input is welcome if you want to expand or improve the proposed wording. Regards. --Crystallizedcarbon (talk) 08:36, 24 July 2022 (UTC)
- If there are no suggestions or objections I will add the proposed text to the body in a few days. --Crystallizedcarbon (talk) 19:57, 31 July 2022 (UTC)
- I still think simpler is better but if you and User:Alexander_Davronov have reached an agreement, I won't stand in the way of that. ~Kvng (talk) 18:08, 1 August 2022 (UTC)
- If there are no suggestions or objections I will add the proposed text to the body in a few days. --Crystallizedcarbon (talk) 19:57, 31 July 2022 (UTC)
- Hello @Alexander Davronov: We reached consensus that inversion is needed and that the 2 transistors in the left act like an inverter sometimes, depending on A, but can not be called an inverter, as an inverter has only one input and its output is always an inversion of its input. That was my problem with your edit. As I said: "Two inverters are used on the left and right sides of the circuit" would be incorrect for that reason. Just adding that inversion is needed and that it's performed in the right by an inverter and in the left by a pass-transistor logic circuit that inverts B when A is at a logic high, in the legend of the image, would be correct, but does not make too much sense to me. In my opinion, the legend of an image should summarize what it represents, and not go into just one detail of the design. That is why I suggested to add it along with a full description of the circuit functionality in the body. Your input is welcome if you want to expand or improve the proposed wording. Regards. --Crystallizedcarbon (talk) 08:36, 24 July 2022 (UTC)
- @Kvng: Almost, I'm going to reply a bit later on that. I've seen his proposal. AXONOV (talk) ⚑ 17:05, 17 July 2022 (UTC)
- @Alexander Davronov, are you OK with what Crystallizedcarbon has proposed? ~Kvng (talk) 15:06, 17 July 2022 (UTC)
- I propose: The two leftmost transistors perform an optimized conditional inversion of B when A is at a logic high using pass transistor logic to reduce the transistor count. The two in the middle are a pass gate that drives the output to the value of B when A is at a logic low and the two rightmost transistors are an inverter. You could add it to the text in the body below the image. Regards. --Crystallizedcarbon (talk) 16:20, 14 July 2022 (UTC)
- I don't think we need or want to explain the details about how the circuit optimization works, just say something like, The inverter function is optimized using pass transistor logic to reduce the transistor count. ~Kvng (talk) 14:42, 14 July 2022 (UTC)
@Crystallizedcarbon: Mate, first of all we got sources that basically say that inverter circuits are used. Secondly I propose we say that inverter circuits are used, but the first one works differently than one would expect. Alright? This is becoming quite lenghty. I don't want to waste time on this given the sources above. Let's mentione the fact that the second circuit is inverter circuit at least for the god sake. Best.
Upd: Checkout this version: [Aug 2, 2022, 12:40] AXONOV (talk) ⚑ 12:34, 2 August 2022 (UTC)
- Sorry @Alexander Davronov: But as I tried to explain in my previous comments, is that circuits that perform inversion of one input conditionally with the value of another input are not inverters. If they were, you could call the XOR gate itself an inverter. Since when A is high the output of the XOR gate is also . The only difference with the two transistors in the left is that when A is at a logic low its output floats while the XOR output is B (that is what the other half with the pass gate that includes the inverter on the right implements). We should not define an XOR gate an inverter circuit as it does more than just that and the same holds true for those two transistors. What we can do, is describe their functionality as I did in my proposed text. Please let me know if you have suggestions to improve it, or any objections to its current wording. Regards. --Crystallizedcarbon (talk) 18:01, 2 August 2022 (UTC)
RfC:XOR circuit inverters in image description
[edit]See previous discussion here.
I propose to update the article with the following draft below making a short description on parts of the scheme (image). Regardless of their function I just propose to mention that sub-circuits of the scheme resemble commonly used circuits in cMOS logic family. In order to avoid possible confusion, I also propose to say that the left-stage inveter (which is B-driven) circuit is not acting exactly like a NOT gate. The net-result of the entire scheme should be left out of scope of image caption. --AXONOV (talk) ⚑ 06:49, 2 November 2022 (UTC)
- Discussion
-
- Support as nom. Any details on functioning of the scheme are already given inside the body of the article so they are redundant in the caption.
- AXONOV (talk) ⚑ 21:41, 2 August 2022 (UTC)
- Oppose. I would prefer the more typical four-transitor XOR without the additions as simpler to discuss. As an aside, there is a typo at “right-stage inveter”. Cheers Markbassett (talk) 12:59, 3 August 2022 (UTC)
- Oppose The two transistors on the left are not an inverter (the output is not always the logical negation of the input) and should not be labeled as such. They perform inversion of B only if A is at a logic high, otherwise the output floats. That functionality is implemented through pass transistor logic since source and drain instead of being tied to Vdd and GND like in an actual inverter are connected to A and . The XOR itself behaves on a similar manner. It inverts one input when the other one is high and we don't label an XOR as an inverter circuit. Also the image caption should include a general description of the image not be partial or include inaccuracies that could confuse the reader. Images should help illustrate the text in the body of the article. The caption is not the place to go into a particular detail of the circuit. Since the title of the section is Pass-gate-logic wiring, it makes sense to describe the functionality of the circuit in detail there. I propose the following text that avoids using the label of inverter for the two transistors in the left: The two leftmost transistors perform an optimized conditional inversion of B when A is at a logic high using pass transistor logic to reduce the transistor count. The two in the middle are a transmission gate that drives the output to the value of B when A is at a logic low and the two rightmost transistors form an inverter needed to generate used by the transmission gate and the pass transistor logic circuit. --Crystallizedcarbon (talk) 09:02, 4 August 2022 (UTC)
- That fact there is so much wrangling about it suggests this is WP:OR. Sennalen (talk) 23:13, 8 August 2022 (UTC)
- I agree with Sennalen that labeling the two leftmost transistors an inverter, as proposed in this RfC, would be OR. The source Digital CMOS Circuit Design can be used to reference my proposed wording. It states that the two controversial transistors "act as an inverter which is conditionally activated" (bold mine) and that "when A is high the circuit behaves like an inverter ; when a is low, both transistors are off and the output is in the high impedance state" (bold mine). They are not labeled as an inverter, they just behave like one depending on another input. --Crystallizedcarbon (talk) 06:57, 10 August 2022 (UTC)
- If there are no objections I will expand the section to include other implementations and add the explanation with proper sourcing to the circuit. --Crystallizedcarbon (talk) 17:31, 26 October 2022 (UTC)
- @Sennalen: Has nothing to do with WP:OR IMO. The the source is given you can open and read it. AXONOV (talk) ⚑ 06:47, 2 November 2022 (UTC)
Analytical representation
[edit]Mar 2023 - I noticed a simple math inconsistency. I am not an authority on this topic. In this section the equation is: f(a,b)=a+b-2ab, which gives negative results. Although it shows positive output in the examples. Should it be: f(a,b)=2ab-(a+b) or 2ab-a-b, which produces the positive outputs shown? — Preceding unsigned comment added by 24.80.25.251 (talk) 22:01, 20 March 2023 (UTC)
- I think you are mistaken in you calculations.
- f(0,0)=0+0-2*0*0 = 0 (remember that the product has preference over addition and subtraction)
- f(0,1)=0+1-2*0*1 = 1 ( -2*0*1 = 0 )
- f(1,0)=1+0-2*1*0 = 1
- f(1,1)=1+1-2*1*1 = 0
- I hope this helps to clarify it. Regards. --Crystallizedcarbon (talk) 11:35, 22 March 2023 (UTC)