IOBUFE3_ODDR - IOBUFE3_ODDR - 2025.1 English - Primitive: Bidirectional I/O Buffer with Offset Calibration, VREF Tuning and ODDR MUX - UG1727

Versal Prime Series Gen 2 Libraries Guide (UG1727)

Document ID
UG1727
Release Date
2025-05-29
Version
2025.1 English

Primitive: Bidirectional I/O Buffer with Offset Calibration, VREF Tuning and ODDR MUX

  • PRIMITIVE_GROUP: I/O
  • PRIMITIVE_SUBGROUP: BIDIR_BUFFER
Sheet.2 IOBUFE3 IOBUFE3_ODDR Sheet.3 T T Sheet.4 OSC_EN OSC_EN Sheet.5 OSC[3:0] OSC[3:0] Sheet.6 I I Buffer.30 Sheet.9 O O Dynamic connector.33 Sheet.11 Sheet.12 VREF VREF Sheet.13 Sheet.14 Sheet.15 Sheet.16 Sheet.17 DCITERMDISABLE DCITERMDISABLE Sheet.18 IBUFDISABLE IBUFDISABLE Sheet.42 Sheet.43 Sheet.44 path9335-1 path9337-6 path9380 path37-1 path85 path87 text89 I_0 I_0 path85-1 path87-8 text89-0 I_1 I_1 text89-0-6 C C path716 Buffer.31

Introduction

The bidirectional input/output buffer primitive (IOBUFE3_ODDR) is only supported in X5IO I/O banks and provides the unregistered ODDR MUX. This primitive has functions similar to the IOBUF_DCIEN along with controls for offset calibration and VREF tuning with input buffer disable (IBUFDISABLE) and on-die input termination control (DCITERMDISABLE) for the input buffer. The offset calibration feature is accessed using the OSC_EN and OSC[3:0] ports. The VREF scan feature is accessed using the XPIO_VREF primitive in conjunction with IOBUFE3.

I/O attributes that do not impact the logic function of the component such as IOSTANDARD, DRIVE and IBUF_LOW_PWR should be supplied in XDC or to the top-level port via an appropriate property. For details on applying such properties to the associated port, see the Vivado Design Suite Properties Reference Guide (UG912).

Port Descriptions

Port Direction Width Function
C Input 1 Clock controlled ODDR MUX select
DCITERMDISABLE Input 1 Control to enable/disable DCI termination. This is generally used to reduce power in long periods of an idle state.
I_0 Input 1 Parallel data input 0
I_1 Input 1 Parallel data input 1
IBUFDISABLE Input 1 Disables input path through the buffer and forces to a logic Low. This feature is generally used to reduce power at times when the I/O is idle for a period of time.
IO Inout 1 Bidirectional port to be connected directly to top-level inout port.
O Output 1 Output path of the buffer.
OSC<3:0> Input 4 Offset cancellation value
OSC_EN Input 1 Offset cancellation enable
T Input 1 3-state enable input signifying whether the buffer acts as an input or output.
VREF Input 1 Vref input from HPIO_VREF

Design Entry Method

Instantiation Yes
Inference No
IP and IP Integrator Catalog No

Available Attributes

Attribute Type Allowed Values Default Description
SIM_DEVICE STRING "VERSAL_PRIME2_RF" "" Set the device version for simulation functionality.
SIM_INPUT_BUFFER_OFFSET DECIMAL -50 to 50 0 Offset value for simulation purposes.
USE_IBUFDISABLE STRING "FALSE", "T_CONTROL", "TRUE" "FALSE" Set this attribute to "TRUE" to enable the IBUFDISABLE pin.

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;

-- IOBUFE3_ODDR: Bidirectional I/O Buffer with Offset Calibration, VREF Tuning and ODDR MUX
--               Versal Prime Series Gen 2
-- Xilinx HDL Language Template, version 2025.1

IOBUFE3_ODDR_inst : IOBUFE3_ODDR
generic map (
   SIM_DEVICE => "VERSAL_PRIME2",  -- Set the device version for simulation functionality (VERSAL_PRIME2)
   SIM_INPUT_BUFFER_OFFSET => 0, -- Offset value for simulation (-50-50)
   USE_IBUFDISABLE => "FALSE"    -- Enable/Disable the IBUFDISABLE pin (FALSE, TRUE, T_CONTROL)
)
port map (
   O => O,                           -- 1-bit output: Buffer output
   C => C,                           -- 1-bit input: Clock controlled ODDR MUX select
   DCITERMDISABLE => DCITERMDISABLE, -- 1-bit input: DCI Termination Disable
   IBUFDISABLE => IBUFDISABLE,       -- 1-bit input: Buffer disable input, high=disable
   IO => IO,                         -- 1-bit inout: Buffer inout (connect directly to top-level port)
   I_0 => I_0,                       -- 1-bit input: Parallel data input 0
   I_1 => I_1,                       -- 1-bit input: Parallel data input 1
   OSC => OSC,                       -- 4-bit input: Offset cancellation value
   OSC_EN => OSC_EN,                 -- 1-bit input: Offset cancellation enable
   T => T,                           -- 1-bit input: 3-state enable input
   VREF => VREF                      -- 1-bit input: Vref input from HPIO_VREF
);

-- End of IOBUFE3_ODDR_inst instantiation

Verilog Instantiation Template


// IOBUFE3_ODDR: Bidirectional I/O Buffer with Offset Calibration, VREF Tuning and ODDR MUX
//               Versal Prime Series Gen 2
// Xilinx HDL Language Template, version 2025.1

IOBUFE3_ODDR #(
   .SIM_DEVICE("VERSAL_PRIME2")  // Set the device version for simulation functionality (VERSAL_PRIME2)
   .SIM_INPUT_BUFFER_OFFSET(0), // Offset value for simulation (-50-50)
   .USE_IBUFDISABLE("FALSE")    // Enable/Disable the IBUFDISABLE pin (FALSE, TRUE, T_CONTROL)
)
IOBUFE3_ODDR_inst (
   .O(O),                           // 1-bit output: Buffer output
   .C(C),                           // 1-bit input: Clock controlled ODDR MUX select
   .DCITERMDISABLE(DCITERMDISABLE), // 1-bit input: DCI Termination Disable
   .IBUFDISABLE(IBUFDISABLE),       // 1-bit input: Buffer disable input, high=disable
   .IO(IO),                         // 1-bit inout: Buffer inout (connect directly to top-level port)
   .I_0(I_0),                       // 1-bit input: Parallel data input 0
   .I_1(I_1),                       // 1-bit input: Parallel data input 1
   .OSC(OSC),                       // 4-bit input: Offset cancellation value
   .OSC_EN(OSC_EN),                 // 1-bit input: Offset cancellation enable
   .T(T),                           // 1-bit input: 3-state enable input
   .VREF(VREF)                      // 1-bit input: Vref input from HPIO_VREF
);

// End of IOBUFE3_ODDR_inst instantiation