# Transmission Gate

Library: | Wiring
Introduced: | 2.7.0
Appearance: |

## Behavior

A transmission gate has three inputs, called source, n-gate, and p-gate; and it has one output, called drain. When diagrammed, the source input and drain output are drawn connected by two plates; Logisim draws an arrowhead to indicate the direction of flow from input to output. The two gate inputs are drawn as lines connected to plates parallel to each of the plates connecting source to drain. The p-gate input's line has a circle, while the n-gate input's line does not.

| p-gate |
source |  | drain
| n-gate |

The transmission gate is simply the combination of two complementary transistors. Indeed, the same behavior can be achieved in Logisim by using just one transistor. However, designers sometimes prefer to use matched pairs of transistors due to electrical issues with draining voltage that is more complex than Logisim attempts to simulate.

The values at n-gate and p-gate are expected to be opposite to each other. If p-gate is 0 while n-gate is 1, then the value found at source is transmitted to drain. If p-gate is 1 while p-gate is 0, then the connection is broken, so the value at drain is left floating. In all other cases, drain receives an error output — unless source is floating, in which case drain is floating as well. This behavior is summarized by the following table.

p-gate | n-gate | drain
--- | --- | ---
0 | 0 | X*
0 | 1 | source
1 | 0 | Z
1 | 1 | X*
X/Z | any | X*
any | X/Z | X*

* If source is Z, drain is Z; otherwise drain is X.

If the Data Bits attribute is more than 1, each gate input is still a single bit, but the gate values are applied simultaneously to each of the source input's bits.

## Pins (assuming component faces east, gate line top/left)

West edge (input, bit width matches Data Bits attribute)
  The component's source input that will transmit to the output if triggered by the p-gate and n-gate inputs.
North edge (input, bit width 1)
  The component's p-gate input.
South edge (input, bit width 1)
  The component's n-gate input.
East edge (output, bit width matches Data Bits attribute)
  The component's output, which will match the source input if p-gate is 0 and n-gate is 1, or it will be floating if p-gate is 1 and n-gate is 0. For all other values on p-gate and n-gate, the output is an error value.

## Attributes

When the component is selected or being added, Alt-0 through Alt-9 alter its Data Bits attribute and the arrow keys alter its Facing attribute.

Facing
  The direction of the component (its output relative to its input).
Gate Location
  The location of the gate input.
Data Bits
  The bit width of the component's inputs and outputs.

## Poke Tool Behavior

None.

## Text Tool Behavior

None.

Back to Library Reference