Primitive: 3-State Output Buffer
- PRIMITIVE_GROUP: I/O
- PRIMITIVE_SUBGROUP: OUTPUT_BUFFER
Introduction
The generic 3-state output buffer OBUFT typically implements 3-state outputs or bidirectional I/O.
I/O attributes that do not impact the logic function of the component, such as IOSTANDARD, DRIVE, and SLEW, should be supplied to the top-level port via an appropriate property.
Logic Table
| Inputs | Outputs | |
|---|---|---|
| T | I | O |
| 1 | X | Z |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
Port Descriptions
| Port | Direction | Width | Function |
|---|---|---|---|
| I | Input | 1 | Input of OBUF. Connect to the logic driving the output port. |
| O | Output | 1 | Output of OBUF to be connected directly to top-level output port. |
| T | Input | 1 | 3-state enable input. |
Design Entry Method
| Instantiation | Yes |
| Inference | Recommended |
| IP and IP Integrator Catalog | No |
VHDL Instantiation Template
Unless they already exist, copy the following two statements and paste them before the entity declaration.
Library UNISIM;
use UNISIM.vcomponents.all;
-- OBUFT: Single-ended 3-state Output Buffer
-- 7 Series
-- Xilinx HDL Language Template, version 2026.1
OBUFT_inst : OBUFT
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")
port map (
O => O, -- Buffer output (connect directly to top-level port)
I => I, -- Buffer input
T => T -- 3-state enable input
);
-- End of OBUFT_inst instantiation
Verilog Instantiation Template
// OBUFT: Single-ended 3-state Output Buffer
// All devices
// Xilinx HDL Language Template, version 2026.1
OBUFT #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFT_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of OBUFT_inst instantiation
Related Information
- 7 Series FPGAs SelectIO Resources User Guide (UG471)