® November 2002, ver. 1.2 Using CDS in APEX II Devices Application Note 157 Introduction Expansion in the telecommunications market and growth in Internet use is creating a demand to move more data faster than ever. To meet this demand, system designers rely on solutions such as differential signaling, and emerging high-speed interface standards such as RapidIO, POS-PHY 4, and Utopia IV. Preliminary Information The high-speed interface I/O pins in APEX II devices integrate differential I/O into the programmable logic device (PLD) to quickly move data. They also utilize a state-of-the-art CMOS process that consumes far less power than GaAs devices, the other high-speed alternative. AN 166: Using High-Speed I/O Standards in APEX II Devices provides information on APEX II device high-speed I/O standard features and functions. This document also explains how system designers can take advantage of these standards to increase system efficiencies and bandwidth. Clock-Data Synchronization APEX II devices offer four high-speed differential I/O banks, two transmitter banks, and two receiver banks. Each bank contains 18 channels and one clock. Each channel is designed to transfer data at rates up to 1 gigabyte per second (Gbps) and support several topologies. When distributing clocks at high speeds and supporting multiple topologies, a solid solution is needed for clock-to-data skew. Trace lengths, trace capacitive loading, variations in threshold voltages, and transmission-line terminations may cause clock and data signals to arrive too early or too late, causing skew. This problem can cause inaccurate data transmission from one point to another and interrupt communication between components within the system. A system running at lower speeds may not require synchronization since skew is not a major factor in the overall cycle time. However, synchronization becomes important with high-speed systems as timing budgets become tighter. Altera Corporation AN-157-1.2 1 AN 157: Using CDS in APEX II Devices Preliminary Information In general, a clock-data synchronization (CDS) solution is highly desirable because it provides superior flexibility to system designers. CDS synchronizes the incoming data stream to the system clock regardless of what the skew may be between the clock signal and data stream. CDS can compensate for as much as 50% of skew in single-bit mode and can compensate for unlimited skew in multi-bit mode. APEX II High-Speed Interface Bus Topologies The term topology refers to the physical or logical arrangement of a network or a telecommunications system. The APEX II high-speed interface enables multiple system topologies. The APEX II high-speed interface structure can receive clocks from up to two sources. Several APEX II devices can share a single clock source to create a variety of system configurations. This section describes popular system topologies that the APEX II device’s high-speed interface supports. Point-to-Point Topology In a point-to-point topology, two devices are connected to each other (see Figure 1). In this configuration, the clock is forwarded to the destination where it deserializes the transmitted serial data stream. This is usually the simplest form of transmission, since the electrical components, from one point to another, are easily measured and the resulting skew is easily analyzed. Point-to-point topology can use single-bit CDS to compensate for skews as great as 50% of the data-bit period. Figure 1. Point-to-Point Topology Data Signals APEX II Device APEX II Device Clock Signal Single-Clock Synchronous Topology The single-clock synchronous topology uses a single master clock to synchronize all devices. This clock can be shared by two or more devices or used throughout the entire system. 2 Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices Since elements such as unequal PCB trace routing, device-to-device delay variation, clock duty cycle, or package-trace skew create or increase skew when this topology is utilized, the data will not arrive at the same time as the clock. Multi-bit CDS uses internal circuits to adjust for the phase difference between the incoming clock signal and the data stream. However, the receiver and transmitter must have the same frequency. Figure 2 shows a hypothetical scenario where clock frequency is at 100 MHz and the deserialization factor is set to 10. Data may not be captured correctly because the skew between clock source and data lines is more than the allowed receiver skew margin (RSKM). The APEX II device’s CDS system solves these system problems. Figure 2. Single-Clock Synchronous Topology APEX II Device 1 Data Data APEX II Device 2 Data APEX II Device 3 APEX II Device 4 Clock Signal Switch Topology The switch topology utilizes a central point of control (see Figure 3). Each station or device in the telecommunications system communicates via point-to-point wiring to this central link. The central control switch receives data from each node and then routes it to the node addressed to the data. Altera Corporation 3 AN 157: Using CDS in APEX II Devices Preliminary Information When designing a system based on a switch topology, designers typically must keep track of clock duty-cycle, variations in threshold, edge-rate mismatch between clock-and-data output cells, and the overall skew between data and clock. All of these variables make it difficult for a designer to create a board layout. However, the APEX II device’s multi-bit CDS solves these issues by eliminating skew between the clock and data for each device and each channel. Figure 3. Switch Topology Data Data APEX II Device APEX II Device Data Data Data APEX II Device Data APEX II Device Data APEX II Device Data Clock Signal Matrix or Mesh Topology A matrix or mesh topology is a communications network where at least two pathways run between each node (see Figure 4). This topology is typically used for a small network. However, the APEX II device’s CDS feature allows designers to implement a matrix or mesh topology in a larger network. 4 Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices Figure 4. Matrix Topology Data APEX II Device Data Data Data Data Data APEX II Device APEX II Device Data Data Data Data Data Data APEX II Device Clock Signal CDS Functionality To use the CDS feature, turn the CDS circuit on, then transmit a known data pattern (the training pattern). The CDS feature uses the training pattern to synchronize the data to the clock. CDS can compensate for skew up to 50% of the bit period with single-bit synchronization or unlimited skew with multi-bit synchronization by choosing an appropriate phase of the internal bit clock. See Figure 5. The APEX II high-speed interface uses an internal over sampling circuit to precisely capture the data stream. The data for each channel is captured by five or eight internally generated clock signals (depending on the CDS mode). This captured data is then compared against a pre-selected pattern. Altera Corporation 5 AN 157: Using CDS in APEX II Devices Preliminary Information Figure 5. CDS Flow Clock Signals APEX II Input Buffers APEX II Input Registers CDS Data Pattern Data Pattern Examination Select Clock Phase CDS Synchronization Three synchronization techniques are offered in APEX II devices: singlebit, multi-bit, and pre-programmed CDS. The synchronization techniques are user selectable for each channel. Single-Bit CDS Synchronization In single-bit synchronization, a known data pattern is transmitted to the receiver device(s) for a minimum of three clock cycles. Within the receiver’s CDS circuitry, the incoming clock input is replicated five times, each with 90° of phase shift relative to the previously replicated clock. All five clocks capture the training pattern. The clock that captured the training pattern most accurately is selected for capturing the actual data. Figure 6 shows the relationship between the incoming receiver clock, data, and the five internally generated clocks. 6 Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices Figure 6. Single-Bit CDS Clocks & Data Input Clock Input Data Input Clock A Clock B Clock C Clock D Clock A’ Multi-Bit CDS Synchronization Multi-bit synchronization requires an alternating ones and zeros pattern. Similar to the single-bit circuitry, various internal phase clocks are generated. Since the intention is to correct for more than a full bit of skew, the input clock is replicated eight times to extend the sampling window into the next bit. Unlike the single-bit synchronization, byte alignment is not preserved using multi-bit synchronization. Internal function must be created from logic elements (LEs) for byte alignment. Figure 7 shows the relationship between the incoming receiver clock, data, and the eight internally generated clocks. Altera Corporation 7 AN 157: Using CDS in APEX II Devices Preliminary Information Figure 7. Multi-Bit CDS Clocks & Data Input Clock Input Data Input Clock A Clock B Clock C Clock D Clock A’ Clock B’ Clock C’ Clock D’ Synchronization Implementation Before implementing clock-to-data synchronization, designers should evaluate system requirements and select the CDS method which fits the design. For example, the pre-programmed CDS method is the simplest and fastest because no training pattern is required. However, this method may not be useful for systems where measure skew is difficult. Pre-Programmed CDS Designers can use time domain reflection (TDR) techniques, a simple signal integrity software, or a PCB layout tool to calculate clock-to-data skew. The skew number can be used to determine which clock best captures the incoming data stream. CDS may be pre-programmed for each channel, eliminating the need to send training patterns. Pre-programmed CDS is useful for systems that cannot send a training pattern. For example, when a network tester is plugged into a network, it immediately receives data and cannot transmit a training pattern. 8 Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices The pre-programmed CDS method can compensate for clock-to-data skew up to 50% of a bit period without using extra alignment circuitry. The resolution of pre-programmed CDS is 25% of the data bit. Because pre-programmed CDS is used when the amount of board skew is known, designers can choose the appropriate clock phases to successfully capture the streaming data at the receiver. Five clock phases (–180º, –90º, 0º, 90º, or 180º) may be selected for each channel. Figure 8 shows three possible scenarios. The third waveform in Figure 8 shows when skew is larger than + 50% of the data bit period. Design connection from the receiver to internal logic must account for data misalignment. —180o —90o o 0 o 90 o 180 Figure 8. Clock Phase Settings X1 CLOCK Skew: 0% CDS Setting: 0… 0 1 Skew: 50% CDS Setting: 180… Skew: 125% CDS Setting: 90… 9 0 1 2 1 7 8 9 0 7 8 9 8 4 5 6 2 4 5 6 7 3 5 6 3 4 2 3 2 Single-Bit Synchronization Implementation This mode is best utilized when the skew between clock and data is estimated or measured to be less than 50% of a bit period. The single-bit synchronization is then employed to correct a fixed skew by up to 50% of the data period. A calibration pattern is required to phase-align the clock with the incoming data. The calibration data length depends on the operating mode of the PLL or the W value. W must equal J to use the single-bit synchronization mode. The calibration pattern is shown in Table 1. Table 1. Calibration Data Pattern for CDS Single-Bit Circuitry (Part 1 of 2) PLL ClockBoost Multiplication/Deserialization Factor Altera Corporation Calibration Pattern 10 0000011111 9 000001111 8 00001111 7 0000111 9 AN 157: Using CDS in APEX II Devices Preliminary Information Table 1. Calibration Data Pattern for CDS Single-Bit Circuitry (Part 2 of 2) PLL ClockBoost Multiplication/Deserialization Factor Calibration Pattern 6 000111 5 00011 4 0011 A dual-purpose CDS pin places all 36 high-speed channel inputs into calibration mode. The calibration pattern must be driven in for at least three clock cycles while the CDS pin is set high. The CDS pin is sampled on the rising edge of the input clock. Each channel is calibrated separately to compensate for differences in routing as a result of the PCB layout. To reduce down time, all channels are calibrated simultaneously. When all channels have been successfully calibrated, the data channels are ready to receive data. In this mode, the inputs are byte-aligned, so additional byte alignment is not required. The timing relationship between the RX_CDS_ENA pin, clock input, and data is illustrated in Figure 9. Figure 9. Single-Bit CDS in ×10 Multiplication Minimum Cycles RX_CDS_ENA Clock Input Receiver Data Input x x 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 Calibration Pattern Generation An APEX II device transmitter or third-party device can send calibration patterns to receiver data inputs, however, transmitter output bit orientation may not be aligned with the clock rising edge. Designers should anticipate misalignment and generate the correct pattern at the transmitter’s parallel input. For example, the APEX II serializer transmits parallel data with the first two bits of the previous cycle. The input for the transmitter should be 00111100 when the serialization factor is eight. Figure 10 shows the bit orientation relative to the rising edge of the clock. 10 Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices Figure 10. Bit Orientation of the Transmitter’s Output 0 0 1 1 1 1 0 0 Serilization Circuit 11110000 Multi-Bit Synchronization Mode Multi-bit synchronization mode is utilized when skew between clock and data is unknown or estimated to be more than one full bit period or when two or more devices drive into one APEX II differential receiver block. Multi-bit synchronization allows designers to correct any fixed clock-todata skew. In single-bit CDS, the receiver device distinguishes and correctly aligns the incoming byte boundaries. In multi-bit CDS mode, only the skew between the clock and data is corrected, and a separate procedure must be implemented to realize the byte boundaries. The procedures for correcting skew between clock and data in multi-bit CDS is similar to the single-bit CDS procedure, except that the training pattern alternates ones and zeros for three clock cycles or more, depending on the estimated skew between clock and data channels. For example, if the skew is estimated to be in the range of five to six ns and the data period is only one ns, the training pattern should be repeated for at least six times to ensure that all channels have received the training pattern and that the correct clock phase has been selected. Table 2 shows that the training pattern may start with a zero or a one and W and J do not have to be equal. Table 2. Calibration Training Pattern for Multi-Bit Circuitry PLL ClockBoost Multiplication/Deserialization Factor Calibration Pattern 1, 2, 4 to 10 0101010101 1, 2, 4 to 10 1010101010 Figure 11 displays the timing relationship between an RX_CDS_ENA pin, clock input, and a data pin when a ×10 multiplication rate is utilized. Altera Corporation 11 AN 157: Using CDS in APEX II Devices Preliminary Information Figure 11. Multi-Bit CDS Timing Including RX_CDS_ENA Signal Minimum Cycles RX_CDS_ENA Clock Input x x 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Receiver Data Input Multi-Bit Byte Alignment Circuit The multi-bit byte alignment circuit determines the byte boundaries of the parallel data (see Figure 12). The circuit uses the hexidecimal number A1 (10100001 in binary) as the alignment pattern. The device implements the multi-bit byte alignment circuit in LEs. f For a sample design written in VHDL, visit the Altera web site at http://www.altera.com. The byte alignment circuit is divided into five main sections with five tasks: ■ ■ ■ ■ ■ Register the parallel data for comparison against the A1 alignment pattern Compare the parallel data against the A1 alignment pattern Control the flow of data by acting as a state machine Act as a barrel shifter to align data Transfer data for the logic array interface Figure 12. Byte Alignment Circuit Block Diagram Serial In Parallel Out LE Register A Initiate Internal Logic 12 Compare Data vs. 10100011 State Machine Detect 10100011 Barrel Shifter & Data Transfer APEX II Core Enable Pattern Found Internal Logic Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices Register The parallel data outputs of the serializer and deserializer are connected to the inputs of an eight input register. The output signals from the serializer, deserializer, and register A are connected to the comparator block. Figure 13 illustrates the connection between the two blocks. Figure 13. Data Flow Between Two Blocks Serial Data Q[7..0] Serializer/ Deserializer A[7..0] Register A Clock Compare Incoming Data vs. HEX A1 D[7..0] B[7..0] Register B Compare The comparator’s circuit consists of eight identical AND gates. The AND gates are configured so that their output is set high only when a hexadecimal A1 (binary 10100001) value is detected on their input pins. Every shifted possibility of the hexadecimal value A1 is detected by at least one of the eight AND gates. Table 3 shows the possible shifted versions of hexadecimal A1, which are transmitted by the serializer and deserializer circuit and examined by the compare circuit. Table 3. Possible Hex A1 Combinations (1) Altera Corporation Q[7..0] A[7..0] Result 10100001 10100001 Aligned x1010000 1xxxxxxx 1 bit late xx101000 01xxxxxx 2 bits late xxx10100 001xxxxx 3 bits late xxxx1010 0001xxxx 4 bits late xxxxx101 00001xxx 5 bits late xxxxxx10 100001xx 6 bits late xxxxxxx1 0100001x 7 bits late 13 AN 157: Using CDS in APEX II Devices Preliminary Information Note to Table 3: (1) An x denotes a “don’t-care” bit. The output of one of these eight AND gates is stored in register B and used to trigger the state machine which starts the selection process. Figure 14 shows the parallel data flow into register A and into the eight comparators. State Machine The state machine consists of a user-control input pin, a counter, and a mux, which control the flow of data from the output of the deserializer to the core logic. The control input pin notifies the state machine that the byte alignment sequence has begun. It then stays in its initiate mode until the calibration pattern has been found, at which point, it generates an output signal indicating that the pattern has been found. Figure 14. State Machine Initiate Start byte alignment Search Search for A1 to appear and exit when it is found Send Send signal to multiplexer circuit to allow data flow into logic array Barrel Shifter & Data Transfer The multiplexer circuit is the interface circuit between Register B and the APEX II logic array. The state machine output is connected to the enable pins of eight identical flip-flops shown in Figure 15. These flip-flops send signals to the select input pins of eight identical multiplexers. When the eight flip-flops are enabled by the state machine, the correct multiplexer is turned on. The data present on that particular multiplexer is then sent into the logic array. 14 Altera Corporation Preliminary Information AN 157: Using CDS in APEX II Devices Figure 15. Flip-Flops Controlled By State Machine B0 B1 D Q D B7 Q D DB[7..0] Connect to Mux Select Lines S[7..0] Q Figure 16 shows the connection to one of the eight multiplexers. In Figure 16, the multiplexers receive information from the state machine and rearrange the incoming data. The reconstructed data is then sent to core logic. Figure 16. Data Multiplexer DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 S0 S1 Q0 Q1 S2 S3 S4 S5 S6 S7 Q2 Core 0 Q3 Q4 Q5 Q6 Q7 Using CDS & Byte Alignment Circuit Altera Corporation Since the byte alignment circuit is required only when byte boundaries are not defined, byte alignment is used only when multi-bit alignment is used. For single-bit alignment, follow the below steps: 1. Build a receiver block using the Quartus II MegaWizardTM Plug-In manager. 15 AN 157: Using CDS in APEX II Devices Preliminary Information 2. Choose USE Single Bit Mode or Multi-Bit Mode (Clock Data Synchronization (CDS) option). 3. Assert CDS pin to a high (1) state for a minimum of three clock cycles. 4. Send the required CDS pattern to the receiver. 5. De-assert the CDS pin. If the device is programmed for multi-bit mode, the byte-alignment circuit must be used to find byte boundaries. Follow the below steps: 1. Set the module’s reset input pin high. This pin clears the byte alignment circuit. 2. Set the alignment pin high for one clock cycle. This command signal tells the byte alignment logic to look for hexidecimal pattern A1 when performing a byte alignment. An output signal from the byte alignment circuit goes high when the A1 pattern has been found and the barrel shifter has been set to align for data. When the A1 pattern has been detected, the byte_align_done signal changes state. You can begin sending data. The byte alignment circuit reconstructs the data and then transfers it to the core logic. Figure 17 shows the output of the ModelSim® software vector simulation. For simulation purposes, the A1 pattern and the proceeding data were misaligned by seven bits. The byte_align signal was asserted high for one clock cycle. The circuit detected, corrected, and reported the A1 pattern misalignment by setting the output byte_align_done signal to high. Alignment may be repeated at any time during the operation by asserting the align pin high. Figure 17. ModelSim Vector Simulation 16 Altera Corporation AN 157: Using CDS in APEX II Devices Preliminary Information The byte alignment circuit and Quartus II software implementation information is available at http://www.altera.com. The reference design is implemented for an 8-bit wide circuit but can easily be modified for other widths. Summary The APEX II device CDS system reduces the time designers spend on timing issues caused by clock-to-data skew. The APEX II device’s highspeed I/O interface allows versatility and a true solution to clock-to-data skew through the CDS feature. Revision History The information contained in AN 157: Using CDS in APEX II Devices version 1.2 supersedes information published in previous versions. Version 1.2 The following changes were made to AN 157: Using CDS in APEX II Devices version 1.2: changed CDS signal name to RX_CDS_ENA. Version 1.1 The following changes were made to AN 157: Using CDS in APEX II Devices version 1.1: ■ ■ Figure 9 has been updated Figure 11 has been updated ® 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 http://www.altera.com Applications Hotline: (800) 800-EPLD Literature Services: lit_req@altera.com 17 Copyright © 2002 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Altera Corporation
© Copyright 2025 Paperzz