# Controlled Buffer/Inverter

Library: | Gates
Introduced: | 2.0 Beta 1
Appearance: |

## Behavior

The controlled buffer and inverter, often called three-state buffers/inverters, each have a one-bit "control" input pin on the south side. The value at this control pin affects how the component behaves:

- When the value on this pin is 1, then the component behaves just like the respective component (a buffer or a inverter (NOT gate)).
- When the value is 0 or unknown (i.e., floating), then the component's output is also floating.
- When the value is an error value (such as would occur when two conflicting values are being fed into the input), then the output is an error value.

Controlled buffers can be useful when you have a wire (often called a bus) whose value should match the output of one of several components. By placing a controlled buffer between each component output and the bus, you can control whether that component's output is fed onto the bus or not.

## Pins (assuming component faces east, control line right-handed)

West edge (input, bit width matches Data Bits attribute)
  The component input that will be used to compute the output if the control input is 1.
South edge (input, bit width 1)
  The component's control input.
East edge (output, bit width matches Data Bits attribute)
  The component's output, which will be floating if the control input is 0 or floating, the error value if the control input is the error value, and will be computed based on the west-side input if the control input is 1.

## 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).
Data Bits
  The bit width of the component's inputs and outputs.
Gate Size
  (Controlled inverter only) Determines whether to draw a larger or a smaller version of the component.
Control Line Location
  The location of the control line, imagining we are facing the output from the input: If the component faces east and is right-handed, the control line is to the south; but if it is left-handed, the control line is to the north.
Label
  The text within the label associated with the gate.
Label Font
  The font with which to render the label.

## Poke Tool Behavior

None.

## Text Tool Behavior

Allows the label associated with the gate to be edited.

Back to Library Reference