In HP I/O banks, for a subset of I/O standards, the UltraScale architecture provides the option of canceling the inherent offset of the input buffers that occurs due to process variations (up to ±35 mV). This feature can be accessed through IBUFE3, IBUFDSE3, IOBUFE3, and IOBUFDSE3 primitives as shown in the following two figures. Offset calibration requires building control logic into your interconnect logic design.
Note: Receiver offset control is not available in HD I/O
or XP5IO I/O.
Figure 1. Offset Calibration Connections for Single-Ended I/O Standards
Figure 2. Offset Calibration Connections for Differential I/O Standards
- The offset cancellation feature is activated for the supported I/O
standards when:
- Offset control attribute OFFSET_CNTRL is set to FABRIC.
- OSC_EN port is set to
1'b1(single-ended I/O standards) or2'b11(for differential I/O standards).
Important: The value of2'b10or2'b01is illegal when using OSC_EN for differential I/O standards. - After the offset cancellation feature is activated, the input to the buffer is pulled-up to VREF (in differential I/Os, both legs are pulled-up to VREF). Based on the inherent offset of the buffer, the output (O) is either a logic 1 or 0. A logic 1 suggests a positive offset. A logic 0 suggests a negative offset. In simulation, this hardware behavior can be mimicked by setting the simulation-only attribute SIM_INPUT_BUFFER_OFFSET to a negative or positive value from –50 mV to +50 mV. This simulation-only attribute is supported with IBUFE3, IBUFDSE3, IOBUFE3, and IOBUFDSE3 primitives.
- Based on the value of O, the FABRIC calibration logic should sweep
OSC[3:0] in the positive or negative direction until O is seen to flip. The value where O
flips is the required offset to cancel the inherent offset of the buffer. The following
table shows the approximate amount of offset cancellation provided by each setting of
OSC.
Table 1. Approximate Amount of Offset Cancellation for Each Setting of OSC OSC[3:0] Estimated Offset Cancellation (mV) 00000 0001–5 0010–10 0011–15 0100–20 0101–25 0110–30 0111–35 10000 10015 101010 101115 110020 110125 111030 111135 For example, if the buffer input offset is 15 mV, setting OSC[3:0] =
1011cancels the offset. If the buffer input offset is –10 mV, setting OSC[3:0] =0010cancels the offset. - If O does not flip, even at the maximum possible offset (–35 mV or 35 mV),
OSC should be set to the maximum –35 mV (
0111) if O stays at a logic 1 throughout, or +35 mV (1111) if O stays at a logic 0 throughout and continue to step 5. - After the required offset is determined, OSC_EN should be turned off by
setting it to
1'b0(single ended I/O standards) or2'b00(differential I/O standards) and normal operation can resume.
Recommended: Offset calibration should not be
attempted on inputs with external bias or termination.
Important: OSC[3:0] is a shared bus among all
the I/Os within a half bank (26 consecutive I/Os in the top half or bottom half of a bank).
The I/O standards that support receiver offset control are shown in the following table.
| POD | DIFF_POD |
|---|---|
| POD12 | DIFF_POD12 |
| POD12_DCI | DIFF_POD12_DCI |