The XP5IO PHY is the high-performance I/O interface for an XP5IO bank. Every XP5IO bank has eleven nibbles. Each nibble is defined as six NIBBLESLICEs and its associated features. NIBBLESLICEs contain input and output logic and are composed of a serializer, deserializer, I/O delays, and a receiver FIFO. NIBBLESLICEs can operate as a transmitter, receiver, or bidirectional circuit. A nibble also performs the following functions/features:
- Built-in self-calibration (BISC) aids in alignment and uses voltage and temperature compensation (VTC) to adjust delay lines
- Generates clocks for the receiver and transmitter functions in the NIBBLESLICEs
- Gives access to the register interface unit (RIU) that provides access to all features of a PHY nibble
- Tristate control
- TX to RX loopback
- Serial mode, which supports receiver interfaces where the clock and data phase relationship is unknown (any interface that is not source-synchronous)
The layout of nibbles in an XP5IO bank is represented in the following figure.
The following figure is a detailed view of the previous figure, representing the relationship between a single nibble XP5IO bank.
For source-synchronous receive applications (RX), the XP5IO PHY uses inter-byte clocking and inter-nibble clocking to route the source synchronous capture clock (strobe) to the different nibbles within a bank. Inter-byte clocking forwards the capture clock from one nibble to an adjacent byte group but routing is restricted. The following table shows how the capture clock is routed using inter-byte clocking.
| Source Nibble | Destination Nibble (EN_CLK_TO_LOWER) | Destination Nibble (EN_CLK_TO_UPPER) |
|---|---|---|
| 0 | N/A | N/A |
| 1 | N/A | N/A |
| 2 | N/A | 0 |
| 3 | 5 | 1 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 8 | 4 |
| 7 | 10 | 9 |
| 8 | N/A | N/A |
| 9 | N/A | N/A |
| 10 | N/A | N/A |
After the capture clock is routed to a byte group, inter-nibble clocking routes the capture clock to either of the nibbles within the byte group. The byte groups are as follows:
- Byte group 0: NIBBLE0, NIBBLE1
- Byte group 1: NIBBLE2, NIBBLE3
- Byte group 2: NIBBLE4, NIBBLE5
- Byte group 3: NIBBLE6, NIBBLE7
- Byte group 4: NIBBLE8, NIBBLE9
- Byte group 5: NIBBLE10
Due to the routing restrictions of the inter-byte clocking, placement of the capture clock in a given nibble can restrict which nibbles can be used in a source-synchronous receive application. As shown in the following table, placing the capture clock in nibble 0 restricts the receiver application to nibbles 0 and 1. Moving the capture clock to nibble 5 allows the receiver application to be placed in any of the nibbles (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, or 10).
| Source Nibble (DQS_SRC = LOCAL) | Allowable Destination RX Nibbles |
|---|---|
| 0 | 0, 1 |
| 1 | 0, 1 |
| 2 | 0, 1, 2, 3 |
| 3 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
| 4 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| 5 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
| 6 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| 7 | 6, 7, 8, 9, 10 |
| 8 | 8, 9 |
| 9 | 8, 9 |
| 10 | 10 |
The following figure shows a NIBBLESLICE.