IOBUFDS_ODDR - IOBUFDS_ODDR - 2025.1 English - Primitive: Differential Input/Output Buffer with ODDR MUX - UG1727

Versal Prime Series Gen 2 Libraries Guide (UG1727)

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

Primitive: Differential Input/Output Buffer with ODDR MUX

  • PRIMITIVE_GROUP: I/O
  • PRIMITIVE_SUBGROUP: BIDIR_BUFFER
Sheet.2 IOBUFDS IOBUFDS_ODDR Sheet.3 IO IO Dynamic connector.32 path10564 path10566 Sheet.7 path10564-8 path10566-3 Dynamic connector.33 path10571 path10573 Sheet.13 Sheet.14 Sheet.15 Sheet.16 Sheet.17 path10595 path10597 Sheet.20 path10602 path10604 path10612 path10614 Sheet.25 O path10623 path10625 O Sheet.28 Sheet.29 Sheet.30 path10639 path10641 Sheet.33 Sheet.34 Sheet.35 path10654 path10656 Sheet.38 Sheet.39 Sheet.40 path10669 path10671 Sheet.43 IOB IOB Dynamic connector.60 path10686 path10688 O/P invert Sheet.48 Sheet.49 Sheet.50 path10705 path10707 Sheet.53 path10712 path10714 Dynamic connector.78 path10720 path10722 Sheet.59 3-state input 3-state input Connector Dot Connector Dot.1 path10748 path10750 text10752 T T path85 path87 text89 I_0 I_0 path85-1 path87-8 text89-0 I_1 I_1 text89-0-6 C C path716

Introduction

The IOBUFDS_ODDR is a differential input/output buffer primitive and provides the unregistered ODDR MUX. A logic-High on the T pin disables the output buffer. When the output buffer is 3-stated (T = High), the input buffer and any on-die receiver termination (uncalibrated or DCI) are ON. When the output buffer is not 3-stated (T = Low), any on-die receiver termination (uncalibrated or DCI) is disabled.

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.

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 diff_p port to be connected directly to top-level inout port.
IOB Inout 1 Bidirectional diff_n 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<1:0> Input 2 Offset cancellation enable
T Input 1 3-state enable input signifying whether the buffer acts as an input or output.

Design Entry Method

Instantiation Yes
Inference No
IP and IP Integrator Catalog No

Available Attributes

Attribute Type Allowed Values Default Description
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;

-- IOBUFDS_ODDR: Differential Input/Output Buffer with ODDR MUX
--               Versal Prime Series Gen 2
-- Xilinx HDL Language Template, version 2025.1

IOBUFDS_ODDR_inst : IOBUFDS_ODDR
generic map (
   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: Diff_p inout (connect directly to top-level port)
   IOB => IOB,                       -- 1-bit inout: Diff_n 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,                 -- 2-bit input: Offset cancellation enable
   T => T                            -- 1-bit input: 3-state enable input
);

-- End of IOBUFDS_ODDR_inst instantiation

Verilog Instantiation Template


// IOBUFDS_ODDR: Differential Input/Output Buffer with ODDR MUX
//               Versal Prime Series Gen 2
// Xilinx HDL Language Template, version 2025.1

IOBUFDS_ODDR #(
   .SIM_INPUT_BUFFER_OFFSET(0), // Offset value for simulation (-50-50)
   .USE_IBUFDISABLE("FALSE")    // Enable/Disable the IBUFDISABLE pin (FALSE, TRUE, T_CONTROL)
)
IOBUFDS_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: Diff_p inout (connect directly to top-level port)
   .IOB(IOB),                       // 1-bit inout: Diff_n 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),                 // 2-bit input: Offset cancellation enable
   .T(T)                            // 1-bit input: 3-state enable input
);

// End of IOBUFDS_ODDR_inst instantiation