Application Note 1604 ISLA11xP50 Output Data Timing and Synchronization Overview Capturing data from the ISLA11xP50 ADC is easily accomplished with current FPGA technology. The source-synchronous LVDS interface provides DDR output data at up to 500MHz with a 250MHz clock. The clock and data are aligned within ±250ps providing a wide guaranteed data-valid region of 1.5ns over the full range of process, voltage and temperature at 500MSPS operation. Internally the input clock is immediately divided by two in order to clock the two ADC cores at half the output sample rate. Even though the 500MSPS output data stream is generated by two interleaved ADC cores, the output data is always delivered from a single ISLA11xP50 in a known sequence. Multiple ADCs with aligned input clock edges may not have aligned output clock edges due to the divide-by-two’s uncertain output phase. The CLKOUTP signal can be high or low at the rising edge of the input clock unless specifically forced to a known state. The ISLA11xP50 includes synchronization features making it easier to design systems requiring simultaneous sampling or further interleaved sampling. Synchronization may be as simple as using a single ADC output data clock or the CLKDIVRST pins to force synchronization. More complex approaches may use the PHASE_SLIP register to adjust timing. The best method will depend on many factors including the timing margin, the FPGA family, the FPGA design tools and printed circuit board (PCB) constraints. At 500MSPS operation the CLKDIVRSTP setup and hold timing may be challenging for some designs. These timing requirements may be effectively relaxed by gating the ADC input clock to provide additional margin. 4000ps This document is intended to provide basic guidance on the ISLA11xP50’s output timing and synchronization methods. Output Timing The ISLA11xP50 input clock and data propagate through the ISLA11xP50 with a similar delay path in order to relax data capture timing requirements. The ADC output DATA will transition from one sample to the next within ±250ps of the CLKOUTP signal; leaving a wide data-valid window of 1.5ns at 500MSPS. CLKOUTP will be delayed from CLKP by 2.6ns to 3.3ns at 1.8V and +25°C as shown in Figure 1 or by 2.0ns to 3.6ns over the entire recommended operating range of 1.7V to 1.9V from -40°C to +85°C. Internal Operation The interleaved operation of the ISLA11xP50 requires the 500MHz input clock to be divided by two so that each core samples at 250MSPS. Figure 2 shows a conceptual view of the ADCs internal clock circuitry. The clock divider normally comes out of power-on reset in a random state so the output clock phase (CLK_A, CLK_B in Figure 2) is indeterminate. In normal operation with a single ADC the unknown clock phase does not matter and the output sample order is always correct. This may not be the case when synchronizing multiple ADCs. The uncertainty in CLKOUTP phase means the CLKOUTP rising edges may not be aligned across multiple ADCs driven by the same clock source. This possible phase difference as shown in Figure 3 can lead to an unexpected difference in sample time and sequence in the captured data. 5000ps 6000ps 7000ps 8000ps 2ns, 500MHz CLKP Min tCPD = 2.6ns MIN CLKOUTP tDC =±250ps MIN DATA Max tCPD = 3.3ns MAX CLKOUTP tDC = ±250ps MAX DATA FIGURE 1. 1.8V AT +25°C ADC OUTPUT TIMING October 4, 2010 AN1604.0 1 CAUTION: These devices are sensitive to electrostatic discharge; follow proper IC Handling Procedures. 1-888-INTERSIL or 1-888-468-3774 | Intersil (and design) is a registered trademark of Intersil Americas Inc. Copyright Intersil Americas Inc. 2010. All Rights Reserved All other trademarks mentioned are the property of their respective owners. Application Note 1604 S1 S3 REG CLK_A CLK CLK/2 DATA 1 2 3 4 CLK_B ‘1’ CLKOUT REG S2 ‘0’ S4 FIGURE 2. ADC INTERNAL DATA CLOCKING SAMPLE CLOCK INPUT s1 L+td ANALOG INPUT (Note 1) s2 tRSTH CLKDIVRSTP (Note 2) tRSTS tRSTRT ADC1 OUTPUT DATA s0 s1 s2 s3 s0 s1 s2 s3 ADC1 CLKOUTP ADC2 OUTPUT DATA ADC2 CLKOUTP (PHASE 1) (Note 3) (Note 3) ADC2 CLKOUTP (PHASE 2) NOTES: 1. Delay equals fixed pipeline latency (L cycles) plus fixed analog propagation delay td 2. CLKDIVRSTP setup and hold times are with respect to input sample clock rising edge. CLKDIVRSTN is not shown, but must be driven, and is the compliment of CLKDIVRSTP. 3. Either Output Clock Phase (phase 1 or phase 2 ) equally likely prior to synchronization. FIGURE 3. MULTIPLE ADC CLKOUT PHASE UNCERTAINTY 2 AN1604.0 October 4, 2010 Application Note 1604 CLKP1 CLKDIVRSTP1 ADC1 CLKOUTP1 CK1 CK2 CK3 FPGA CLKP2 CLKDIVRSTP2 CLOCK SOURCE DATA1 CLKOUTP2 DATA2 ADC2 FIGURE 4. MULTIPLE ADC SYNCHRONIZATION CIRCUITRY Synchronization Multiple ADC Timing Margin The ISLA11xP50 provides two mechanisms to control the output clock phase: Device-to-device timing becomes important for two reasons when multiple devices are to be synchronized. 1. The CLKDIVRSTP pins offer the simplest method to synchronize multiple ADCs. When CLKDIVRSTP is set high within the datasheet setup and hold times the CLKOUTP signal will always be forced to a known phase. Routing CLKP and CLKDIVRSTP to multiple ADCs with equal PCB delays allows all ADCs to be simultaneously set to the same sample phase. Assertion of CLKDIVRSTP may cause the internal DLL to lose lock for up to 52µs. Valid data may be captured after this 52µs period. This process must be completed after each power cycle or ADC reset. 2. The PHASE_SLIP register (0x71) can be written to effectively invert the CLKOUTP signal. The User Test Mode allows a pair of known values to be output but using these values to identify the clock phase relationship requires more FPGA code than using CLKDIVRSTP. After synchronization with CLKDIVRSTP the PHASE_SLIP register can be used to delay the output data to further interleave multiple ADCs. If relaxed setup and hold times are required for CLKDIVRSTP the input clock can be gated off, CLKDIVRSTP set high then the clock re-enabled. Glitchless clock gating circuitry must be used to assure reliable operation. 1. In some cases it may be possible to synchronize multiple ADCs by only using a single clock. This eliminates the clock phase uncertainty since all the data is captured by a single clock. The downside is reduced timing margin since each ADC will have slightly different timing. The dtCPD specification can be used to quantify this uncertainty. 2. The FPGA must be able to manage the difference in clock delay through the ADCs in order to correctly capture the data. Managing timing where the clock may slip one or more cycles across the ADCs is simplified by current FPGA technology’s ability to automatically align input data streams with a known pattern. Design examples are available from Xilinx (XAPP1064) and Altera (AN236). Search their web pages for ‘source-synchronous ddr’ to find more examples. Each ADCs output data will transition within ±250ps of the CLKOUTP signal. CLKOUTP will be delayed from CLKP by 2.6ns to 3.3ns at 1.8V and +25°C as shown in Figure 5. When more than one ADCs output data is to be captured using a single CLKOUTP signal the valid data window is a minimum of 800ps (1.8V, +25°C). Figure 4 illustrates the connections necessary to synchronize two ADCs with CLKDIVRSTP. Note that any mismatch in the CLKP and CLKDIVRSTP traces must be accounted for in the timing budget. Additional ADCs may be synchronized by extending the circuitry in Figure 4 for as many ADCs as necessary. 3 AN1604.0 October 4, 2010 Application Note 1604 4000ps 5000ps 6000ps 7000ps 8000ps 2ns, 500MHz CLKP Min tCPD = 2.6ns (1.8V +25°C) CLKOUTP1 tDC = ±250ps DATA1 SAMPLE 1 Min tCPD = 3.3ns (1.8V, +25°C) CLKOUTP2 0.8/1.8ns DATA2 tDC = ±250ps SAMPLE 2 FIGURE 5. 1.8V AT +25°C MULTIPLE ADC TIMING SKEW 4000ps 5000ps 6000ps 7000ps 8000ps 2ns, 500MHz CLKP Min tCPD = 2ns (1.7V TO 1.9V, -40°C to +85°C) CLKOUTP1 tDC = ±250ps SAMPLE 1 DATA1 Min tCPD = 3.6ns (1.7V TO 1.9V, -40°C to +85°C) CLKOUTP2 -100ps/+900ps tDC =±250ps SAMPLE 2 DATA2 FIGURE 6. 1.7V TO 1.9V AT -40°C TO +85°C MULTIPLE ADC TIMING SKEW If the ADCs are at the opposite extremes of voltage and temperature (i.e. ADC1 sees 1.9V @ -40°C and ADC2 sees 1.7V at +85°C) the timing will be at the worst possible specified skew as shown in Figure 6. In this case, operation at 500MHz will most likely result in negative timing margin. This means a single ADCs output clock cannot be used to capture data from multiple ADCs without adjusting the FPGA capture for proper data sequence. Even when using each ADCs output clock the FPGA may have to tolerate a possible one cycle clock slip between devices. Relative Output Clock Delay Matching (dtCPD) A more realistic design will operate all the synchronized ADCs at the same voltage and temperature. This is the condition covered by the dtCPD specification. This specification says CLKOUTP from all devices at the same 4 voltage and temperature will fall with ±450ps of the nominal timing (CLKOUT_NOM) of CLKOUTP from any other ADC as shown in Figure 7. This means that both devices’ CLKOUTP will be within a 900ps window bounded by the tCPD specification over the full voltage and temperature range. Either device can lead or lag the nominal by up to 450ps so the FPGA must be able to manage up to a ±900ps delta between ADCs even when they are synchronized with CLKDIVRSTP. The ISLA11xP50’s fixed pattern capability works with the FPGA’s DDR capture circuitry to automatically enable robust data capture over a range of more than one clock cycle as described in application notes from Xilinx (XAPP1064) and Altera (AN236). The minimum valid data window for this condition is 600ps. The variation in the ±250ps data transition relative to the output clock is dominated by matching and is not correlated to the overall input to output clock delay. AN1604.0 October 4, 2010 Application Note 1604 4000ps 5000ps 6000ps 7000ps 2ns, 500MHz CLKP tCPD = 2.6ns (nominal) CLKOUT_NOM dtCPD = -0.45 TO 0.45 CLKOUTP1 -0.7, 0.7 DATA1 {-0.9, 0.9} dtCPD = -0.45 TO 0.45 CLKOUTP2 -1.4, 1.4 0.6, 3.4 DATA2 FIGURE 7. PART-TO-PART TIMING FOR ADCS, EQUAL VOLTAGE AND TEMPERATURE FPGA DDR RECEIVER ADC1_OUTPUT_DATA B B B1 ADC1_FPGA_DATA ADC 1 RECONSTRUCTION /2 A A TO FPGA FABRIC A1 ADC1_OUTPUT_CLK 500MHz ADC 2 ADC1_FPGA_CLK /2 0° CLOCK ADC 3 /2 DDR CLOCK RECEIVER (DLL OR PLL) 180° CLOCK ADC 4 /2 THE RECEIVER ABOVE DUPLICATED FOR EACH ADC FIGURE 8. FPGA DATA CAPTURE 5 AN1604.0 October 4, 2010 Application Note 1604 FPGA Data Capture One possible FPGA data capture implementation is shown in Figure 8. The DDR clock receiver is used to generate the 180° DDR clock. The incoming data and clock are aligned within ±250ps from the ISLA11xP50 so the FPGA must also shift the clock relative to the data for optimum data capture. The data from any one ADC may be offset up to 900ps from any other ADC when they operate at the same voltage and temperature. Care must be taken to provide sufficient timing margin since the 900ps offset can be in either direction possibly affecting the DDR receiver’s setup and hold time. Current FPGA data capture circuitry includes features that can simplify recovery of source synchronous DDR data streams. Note CLKP, CLKOUTP and CLKDIVRSTP all refer to the positive LVDS signals which also include the CLKN, CLKOUTN and CLKDIVRSTN complement signals. All LVDS signals must be routed as differential pairs. All timing numbers are for LVDS signals and are copied from the datasheet for convenience. The datasheet timing specifications take precedence in all cases since this document does not guarantee performance limits. Intersil Corporation reserves the right to make changes in circuit design, software and/or specifications at any time without notice. Accordingly, the reader is cautioned to verify that the Application Note or Technical Brief is current before proceeding. For information regarding Intersil Corporation and its products, see www.intersil.com 6 AN1604.0 October 4, 2010