LogisimRevisited

Components / Gates

Controlled Buffer (Tri-State Buffer) in Logisim

Three-state bus driver that passes its input to the output when Enable is 1 and disconnects to high-impedance Floating (Z) when Enable is 0.

Default settings, facing east. Pins are the dots.
LibraryGates
Type nameControlled Buffer
Pins and defaultsin0 (-20, 0), en (-10, 10), out0 (0, 0), width 1..32

Try it in the app

How the Tri-State Buffer Works in Logisim

The Controlled Buffer (commonly called a Tri-State Buffer) allows multiple components to share a single bus wire without causing a short circuit. In addition to its data input (in0) and output (out0), it has a 1-bit Enable pin (en) on its bottom edge.

When Enable is High (1), the gate acts like a normal Buffer and drives its data input onto the output wire. When Enable is Low (0), the output enters the high-impedance Floating state (Z, drawn in blue), electrically disconnecting the gate from the wire so another tri-state driver can take control of the bus.

Ensure that your control logic enables at most one Controlled Buffer on a shared bus at any instant. If two Controlled Buffers have en = 1 at the same time and drive opposite bits, the bus turns red (E).

Tip: Pair Controlled Buffers with a Decoder on their Enable pins to guarantee that only one device drives a shared CPU data bus at a time.

Tri-State Buffer Pins & Pinout

PinDirectionWidthLocation & Role
in0 (in)Input (Left)1–32 bitsLocated at (-20, 0). Data signal to pass when enabled.
en (en)Input (Bottom)1 bitLocated at (-10, 10). Active-high Output Enable control pin.
out0 (out)Output (Right)1–32 bitsLocated at (0, 0). Outputs in0 when en=1, Z when en=0, or E if en is Z/E.

Tri-State Buffer Truth Table & Behavior

Controlled Buffer (Tri-State) truth table
Enable (en)Data Input (in0)Output (out0)
00, 1, Z, or EZ (floating / disconnected)
100
111
Z or EAnyE (invalid enable state)

Related Circuits & Components