IOBUFDS_DIFF_OUT_ODDR - IOBUFDS_DIFF_OUT_ODDR - 2025.1 English - Primitive: Differential Input/Output Buffer Primitive with Complementary Outputs for the Input Buffer 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: Differential Input/Output Buffer Primitive with Complementary Outputs for the Input Buffer and ODDR MUX

  • PRIMITIVE_GROUP: I/O
  • PRIMITIVE_SUBGROUP: BIDIR_BUFFER
Sheet.1 IOBUFDS_DIFF_OUT IOBUFDS_DIFF_OUT_ODDR Dynamic connector.32 path5525 path5527 Sheet.5 path5525-1 path5527-9 Sheet.8 Sheet.9 path5544 path5546 text5548 I_0 I_0 text5548-9 I_1 I_1 text5548-9-1 C C path5555 path5557 3-state inputfrom master path85 path87 path85-1 path87-8 path716 Sheet.23 Sheet.24 Sheet.25 path5573 path5575 Sheet.28 Sheet.29 Sheet.30 path5588 path5590 Sheet.33 Sheet.34 Sheet.35 path5603 path5605 Sheet.38 IO IO Dynamic connector.60 path5620 path5622 Sheet.42 Sheet.43 path5632 path5634 Sheet.46 path5639 path5641 Dynamic connector.106 path5646 path5648 Sheet.52 path5660 path5662 text5666 3-state input from slave 3-state inputfrom slave Sheet.56 TM TM Sheet.57 IOB IOB Dynamic connector.101 path5689 path5691 Sheet.61 Sheet.62 path5701 path5703 Sheet.65 path5708 path5710 O/P invert.85 Sheet.69 O path5722 path5724 O Sheet.72 OB path5733 path5735 OB O/P invert.113 Sheet.76 TS TS Connector Dot.1 Connector Dot.2 Sheet.79 X27140-091922 X27140-091922

Introduction

The IOBUFDS_DIFF_OUT_ODDR is a differential input/output buffer primitive with complementary outputs (O and OB) that 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. TM and TS must be connected to the same input from the interconnect logic for this primitive to have the expected behavior that is specific to the architecture.

I/O attributes that do not impact the logic function of the component, such as IOSTANDARD, DIFF_TERM, and IBUF_LOW_PWR, should be supplied 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
I_0 Input 1 Parallel data input 0
I_1 Input 1 Parallel data input 1
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.
OB Output 1 Output path of the buffer.
TM Input 1 3-state enable input for the p-side or master side signifying whether the buffer acts as an input or output. This pin must be connected to the same signal as the TS input.
TS Input 1 3-state enable input for the n-side or slave side signifying whether the buffer acts as an input or output. This pin must be connected to the same signal as the TM input.

Design Entry Method

Instantiation Recommended
Inference No
IP and IP Integrator Catalog No

Available Attributes

Attribute Type Allowed Values Default Description

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_DIFF_OUT_ODDR: Differential Input/Output Buffer Primitive with Complementary Outputs for the Input Buffer and ODDR MUX
--                        Versal Prime Series Gen 2
-- Xilinx HDL Language Template, version 2025.1

IOBUFDS_DIFF_OUT_ODDR_inst : IOBUFDS_DIFF_OUT_ODDR
port map (
   O => O,     -- 1-bit output: Buffer diff_p output
   OB => OB,   -- 1-bit output: Buffer diff_n output
   C => C,     -- 1-bit input: Clock controlled ODDR MUX select
   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
   TM => TM,   -- 1-bit input: 3-state master enable input
   TS => TS    -- 1-bit input: 3-state slave enable input
);

-- End of IOBUFDS_DIFF_OUT_ODDR_inst instantiation

Verilog Instantiation Template


// IOBUFDS_DIFF_OUT_ODDR: Differential Input/Output Buffer Primitive with Complementary Outputs for the Input Buffer and ODDR MUX
//                        Versal Prime Series Gen 2
// Xilinx HDL Language Template, version 2025.1

IOBUFDS_DIFF_OUT_ODDR IOBUFDS_DIFF_OUT_ODDR_inst (
   .O(O),     // 1-bit output: Buffer diff_p output
   .OB(OB),   // 1-bit output: Buffer diff_n output
   .C(C),     // 1-bit input: Clock controlled ODDR MUX select
   .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
   .TM(TM),   // 1-bit input: 3-state master enable input
   .TS(TS)    // 1-bit input: 3-state slave enable input
);

// End of IOBUFDS_DIFF_OUT_ODDR_inst instantiation