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.
| Library | Gates |
|---|---|
| Type name | Controlled Buffer |
| Pins and defaults | in0 (-20, 0), en (-10, 10), out0 (0, 0), width 1..32 |
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
| Pin | Direction | Width | Location & Role |
|---|---|---|---|
| in0 (in) | Input (Left) | 1–32 bits | Located at (-20, 0). Data signal to pass when enabled. |
| en (en) | Input (Bottom) | 1 bit | Located at (-10, 10). Active-high Output Enable control pin. |
| out0 (out) | Output (Right) | 1–32 bits | Located 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
| Enable (en) | Data Input (in0) | Output (out0) |
|---|---|---|
| 0 | 0, 1, Z, or E | Z (floating / disconnected) |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| Z or E | Any | E (invalid enable state) |