PHY Lite for Parallel Interfaces Intel® FPGA IP User Guide
A newer version of this document is available. Customers should click here to go to the newest version.
2.2.1.3. Input Path
Component | Description |
---|---|
Pipeline Registers | Represent pipeline stages in the input path |
Two RX FIFOs | Perform 2:1 rate conversion on the RX data
|
Shift Registers | Perform the following functions:
|
Phase Shift Logics | Perform the following functions:
|
There are five types of delay in the input path. The following table describes the delays:
Delay | Type | Description |
---|---|---|
Inherent latency | Static | Captured in pipeline stages from the assertion of rdata_en signal in core until internal signal, RcvEn, is asserted. |
RcvEn delay (internal signal generated from input signal rdata_en) | Dynamic |
|
Positive-edge strobe_in delay | Dynamic | |
Negative-edge strobe_in delay | Dynamic | |
read_enable_offset delay | Dynamic |
Feature | Description | Bit-field Description | Min | Max |
---|---|---|---|---|
RxRcvEnPiRank0 [10:7] |
|
Bit 10 to bit 7 represents integer number of VCO clock cycles to delay RcvEn signal. | 0 | 15 |
RxRcvEnPiRank0 [6:0] |
Bit 6 to bit 0 represents additional phase shift in RcvEn signal measured in 1/128 of VCO clock period. | 0 | 127 | |
RxDqsNDelayPi [6:0] |
|
Phase shift in the negative edge of the DQS for each pin measured in 1/128 of VCO clock period. | 0 | 127 |
RxDqsPDelayPi [6:0] |
Phase shift in the positive edge of the DQS for each pin measured in 1/128 of VCO clock period. | 0 | 127 | |
read_enable_offset [3:0] |
|
Delay before reading from the RX FIFO measured in number of PHY clock cycles. | 0 | 15 |
The preceding figure shows an example of RX data transfer in QR DDR. The data_to_core signal for each pin is eight bits wide. The PHY Lite for Parallel Interfaces IP uses DDR4 preamble settings, and expects one cycle of preamble by default. To set the PHY Lite for Parallel Interfaces IP to accept edge-aligned data, select 90 degrees in the Capture strobe phase shift parameter setting.
To ensure that the IP uses only clock edges associated with valid input data, gate the receiver off when PHY Lite for Parallel Interfaces IP is not accepting input data. If there are extra toggling signals or noise on the DQS port, use a refined version of the received strobe. The gating signal, RcvEn (receiver enable), is derived internally from the rdata_en signal. Use the RcvEn signal to ungate the DQS gate window by asserting RcvEn up to one cycle before the first rising edge of DQS, as shown in the following figure. You require no more than one cycle preamble in the strobe signal.
The process of shutting off the DQS gate happens automatically after the last burst ends. To shut off the DQS gate, use two modified versions of the RcvEn signal: RcvEnPiMod and RcvEnPre. The RcvEnPiMod signal is derived from RcvEnPi, which is the serializer output. The RcvEnPiMod signal turns on at the same time as RcvEnPi but with an adjusted falling edge. The RcvEnPre signal starts a burst counter that counts up to half of the burst length repeatedly. PHY Lite for Parallel Interfaces IP uses a burst length of 4. Consequently, the burst counter counts repeatedly from 0 to 1. RcvEnPiMod ends one cycle early. When RcvEnPiMod is low and the burst counter reaches the maximum count, RcvEnPre deasserts at the next negative edge of the DQS, shutting off the ungating circuit.
In the input path, program the on die termination (ODT) and sense amplifier (SA) when you dynamically reconfigure the RcvEn delay.
To save power in idle mode, gate off the ODT and SA using two enable signals tapped from the same shift register as RcvEn.
- DqsSenseAmpDelay
- DqsSenseAmpDuration
- DqSenseAmpDuration
- DqSenseAmpDelay
- DqOdtDuration
- DqOdtDelay
- DqsOdtDuration
- DqsOdtDelay
RxRcvEnPi[10:7]>>Gear4 2 | DqsOdtDelay | DqOdtDelay | Dq/Dqs SenseAmpDelay |
---|---|---|---|
0 | 2 | 3 | 3 |
1 | 3 | 4 | 4 |
2 | 4 | 5 | 5 |
3 | 5 | 6 | 6 |
4 | 6 | 7 | 7 |
5 | 7 | 8 | 8 |
6 | 8 | 9 | 9 |
7 | 9 | 10 | 10 |
When changing the RcvEn coarse delay or RxRcvEnPiRank0[10:7], Intel recommends that you update read_enable_offset to avoid receiving misaligned data in the core. The small values of read_enable_offset can cause RX FIFO underflow, while large values may cause an overflow.
RxRcvEnPiRank0[10:7] | Allowed values for read_enable_offset |
---|---|
0, 1, 4, 5, 8, 9, 12, 13 | 3, 5, 7, 9, 11 |
2, 3, 6, 7, 10, 11, 14, 15 | 4, 6, 8, 10, 12 |