All 52 pins in a bank are capable of bidirectional operation using the same component primitives.
For bidirectional signaling with 3-state support, for the output and 3-state path use the solutions as discussed in ODDRE1. Note the 3-state path driving the T input for the IOBUF does not support simple registered outputs such as FDCE/FDPE/FDRE/FDSE. Registers for FDCE/FDPE/FDRE/FDSE for the 3-state path are implemented in internal logic.
For designs using an OSERDES, the following figure shows an example bidirectional pin with IDELAY and ODELAY. The OSERDES only supports combinatorial 3-state controls for the T input of the IOBUF.
Bidirectional support varies by I/O bank. The following table lists the recommended bidirectional logic. When unsupported, the Vivado tool can borrow resources from additional I/Os.
| Input Datapath | Output Datapath | Tristate Control | I/O Banks |
|---|---|---|---|
| Fabric Logic | Fabric Logic | Fabric Logic | HDIO/HPIO |
| IFD | OFD | Fabric Logic | HDIO/HPIO |
| IFD | OFD | OFD | HDIO |
| IDDRE1 | ODDRE1 | Fabric Logic | HPIO |
| IDDE1 | ODDRE1 | ODDRE1 | HPIO |
| ISERDES3 | OSERDESE3 | Fabric Logic | HPIO |
| ISERDES3 | OSERDESE3 | OSERDESE3 | Not supported |