What is the difference between a tristate buffer and a transmission gate?

Functionally, these two "blocks" seem to do the same thing: send input to output if enabled and present high impedance Z on the output if not. However, this answer seems to suggest a difference that I cannot follow.

My book presents the following implementation of a tri-state buffer. Again (given the double inversion) we see that these are functionally the same thing. Does the difference have to do with the restorative nature of the double inverters (buffer)? That is, while a transmission gate simply acts as a switch, the tri-state buffer actually drives the output to whatever the input is (i.e. in contrast, one could imagine an enabled transmission gate where the output drives the input)? In this sense, the difference between the two blocks is then a different in degree rather than a difference in kind?

• Your (b) device is a Tri-state buffer, if you remove the two series inverters that buffer the signal in one direction only you would be left with a transmission gate. The triangular symbols going in one direction allow buffering/GAIN in one direction the complex symbol with triangles in both directions allows signals to travel in either direction WITHOUT GAIN. The '245 bidirectional buffer mentioned in a comment has triangles/buffers in both directions but only one direction is enabled at a time or they would latch because they have GAIN. Dec 11, 2023 at 9:15

The tristate driver you present contains a transmission gate (you can count the top inverter too as part of it).

Without the buffer (formed by the two inverters) it will transmit signals in either direction. When a buffer is connected to one side, it can only transmit a 1 or a zero (in addition to the high Z state).

The transmission gate is not a logic element, and it is not directional. It's a switch that, when enabled. connects two circuit nodes together, forcing them to (nearly) the same voltage. That voltage need not represent a digital value: could be analog.

The tri-state driver, on the other hand, is unidirectional, and its input is intended to be digital. Its output is also digital when enabled, but an open circuit when disabled.

• Thank you for your very nice answer. I've gone with the other answer just because it was first, but the comment about t-gates being useful in analog contexts too was very helpful. Much appreciated!
– EE18
Dec 10, 2023 at 15:12
• A transmission gate is a solid state analog of a electromechanical relay. Since the original work on electronic logic was based on relays, I have to disagree that a transmission gate is not a logic element. It is just not the kind of logic you may be familiar with. Google "ladder logic" for more. Yes, a TG can be used for analog signals, but all electronic devices are analog at some level. What makes a circuit a "logic" circuit is the use to which it is put. Dec 10, 2023 at 16:34
• @MathKeepsMeBusy The trouble is that erasing the distinction here makes it harder to explain the difference. You are welcome to write a clearer answer to the question if you can. Dec 10, 2023 at 17:04

Transmission gates are transparent connections. They behave like low-resistance switches, connecting or disconnecting two signals. Current can flow in either direction. The signal it passes can be analog or digital, the t-gate doesn't care.

Transmission gates are often constructed from a pair of FETs: one p-type, one n-type, with opposite-phase control on each FET.

Here's a transmission gate in action (simulate it here):

It's also possible to make a transmission gate from a single FET, as FETs can conduct in both directions. This is used in level shifters such as the LSF0101:

From here: https://www.ti.com/product/LSF0101

In contrast, logic gates are unidirectional (such as a typical gate) or bidirectional (such as the '245 style octal buffer, which we'll come back to below.) But they are not transparent. That is, they don't pass signals directly through like t-gates. Instead, they re-power input signals with switches to power/ground on their output.

A non-inverting buffer in action (simulate it here):

Logic gates can be made 3-state in one of two ways:

• enabling / disabling the output drivers (typical for TTL)
• inserting a transmission gate between the logic gate and output pin (typical for CMOS)

Speaking of which, a CMOS non-inverting 3-state buffer in action (simulate it here):

The example you show is a non-inverting buffer with a t-gate added to its output to make it 3-state capable. If you tie two of these buffers, head-to-tail, with separate enables on each buffer enable, then you'd have a bidirectional buffer. Example: the 'HC245 octal buffer, which has two controls: 'OEn' (output enable) and 'DIR' (direction). The controls are gated together to manipulate the 3-state controls on each buffer set:

I'll pile on a bit and mention that logic, too, can be constructed from transmission gates. Obvious candidates include switch- and select-type functions like multiplexers, which naturally lend themselves to being built from transmission gates. Other functions like XOR / XNOR gates, and latches can also be built from t-gates.

Example: the XOR gate (simulate it here):

• Thanks very much for this interesting answer. Would it be possible to talk more about what precisely is meant by transparent, unidirectional, and bidirectional? Bidirectional in particular is something I'm not familiar with.
– EE18
Dec 10, 2023 at 16:39
• Transparent means that the switch passes signals in either direction, like a passive connection. Unidirectional means that signals pass in only one direction. Bidirectional means that signals can pass from one port to another, with direction determined by a separate signal (see the ‘hc245 for example.) Dec 10, 2023 at 20:33
• "with direction determined by a separate signal" This is I think what I was looking for. If I'm understanding correctly, there is (in general) a signal on $in$, $out$, and some $dir$ signal which is such that if $dir = 1$ (suppose this means that we want to send input to output) then am I to understand that no matter how strong $out$ is, we arrive at $out = in$?
– EE18
Dec 10, 2023 at 20:42

Does the difference have to do with the restorative nature of the double inverters (buffer)?

Yes.

the difference between the two blocks is then a different in degree rather than a difference in kind?

In terms of function, yes, the transmission gate can be considered as being more analogue than the tri-state buffer, but in terms of implementation, they are quite different: basically, the tri-state buffer is a transmission gate with a buffer stage added.

The transmission gate can be thought of as a voltage-controlled resistor linking it input to its output. The resistance value is controlled by the voltage at its control node (its gate, connected to signal "e" in the figure you posted); when e is ON the resistance value is low; when e is OFF the resistance increases by several orders of magnitude (see example below). Sometimes signal e may be considered an analog value, in which case the resistance is a function of e, but most often we consider e to be a digital value, either on or off.

The tri-state buffer is identical to the transmission gate, but it has an extra block: the buffer (either inverting or non-inverting).

Transmission gate example: the venerable CD4016B.
Input to output resistance:
State = ON, R~ 1kΩ (Vdd=15V, Vcontrol=Vdd, Vin ~Vdd/2).
State = OFF, R~10MΩ (<1uA of current flows between input & output, for Vin ~10V, Vdd=15V, Vcontrol=0V).

https://www.digikey.com.au/en/products/detail/texas-instruments/CD4016BM96/1690772

A "normal" logic device will, except for brief moments while it is switching, connect every one of its outputs to either the positive or negative supply rail, based upon the states of its inputs. Note that the output of a device will not be connected to any of the inputs, but merely to a supply rail, with the choice of the supply rail determined by the inputs to the device.

Further, most assemblages of such devices are designed in such a way that every input will be connected to exactly one supply rail, through exactly one device, except for brief moments when it is switching. If two or more devices' outputs were connected together, then in situations where the devices connected them to the same rail, at least one of the devices would be redundant, and in cases where they tried to drive to different rails the devices would together tie the rails to each other, effectively forming a short circuit.

A "tri-state" or "three-state" output is designed so that in addition to being able to connect an output to the positive rail, or connect it to the negative rail, it may also decline to do either. It's possible, and often useful, to connect multiple three-state outputs together, provided that at any given time at most one of the outputs will be "active" (i.e. tied via the device containing it to one of the supply rails), and some devices will attach both output and input circuitry to the same individual pins, but the device will only be able to usefully send data to other devices when its output is active, and only usefully receive data from other devices when its output is inactive.

A transmission gate acts like a switch which, rather than connecting part of the circuit to a supply rail, instead connects two parts of the circuit to each other. When the gate is active and one side is connected to a supply rail, the transmission gate will effectively tie the other side to that same supply rail. Unlike a tri-state driver or an "input/output pin" which is connected both to a three-state output and to an input, a transmission gate doesn't need to know or care which side of it will be supplying or receiving data, provide that at any given time at least one of the following is true:

1. The gate is inactive.
2. Neither side is connected to the positive rail.
3. Neither side is connected to the negative rail.

A disadvantage of a transmission gate is that it doesn't provide the current amplification that ordinary gates can provide. Even if the output of a logic gate is connected to 100 different logic elements, the device which drives it only needs to supply enough current to switch one. By contrast, if transmission gates were used to tie one logic output to 100 logic inputs, that output would need to supply enough current to drive all 100 inputs.

As a final note about transmission gates, most devices are designed using a process called CMOS, in which about half of the transistors are "NFETs", that turn on when the input is high, but can only switch signals that are lower than the input, and about half are "PFETs", which do the opposite. An inverter will have one NFET which connects the output to the negative rail when the input is high, and one PFET which connects the output to the positive rail when the input is low. The two transistors are turned on at opposite times, so a single logic input can be used to switch both. A transmission gate needs to have an NFET to be able to connect either side effectively to the negative rail, and a PFET to connect either side effectively to the positive rail, but in operation they should both be switched on simultaneously. To accommodate that, a transmission gate will need to have an active-high input to switch the NFET and an active-low input to switch the PFET. While there may be occasions where a gate might be usable even if only switches one or the other, they're fairly rare. Normally, if one side of a transmission gate is driven high and the PFET is off but the NFET is on, the other side will be connected to the positive rail well enough to cause trouble if it's also connected to the negative rail, but not well enough to reliably serve any useful purpose. Likewise, if one side is driven low when only the PFET is on.