Examples of the present disclosure generally relate to electronic circuits and, in particular, to a frequency detector for clock data recovery (CDR).
High-speed data communication systems frequently rely on circuits within the receiver rather than transmitting a reference dock with the data. For example, serial data communication may include the use of a serializer-deserializer (SerDes) at each end of a communication link. Within a SerDes, CDR circuitry may extract a dock that is embedded in the incoming data stream. Once the dock is recovered, it may then be used to sample the incoming data stream to recover individual bits. A conventional CDR implementation in a receiver includes a phase detector (PD), whose output splits into two paths, a first order phase path, and a second order frequency path. The two respective paths are then joined at a summer, and the output of the summer provided to a phase interpolator (PI). In a CDR locked state, the phase path tracks the instantaneous phase difference between the received data and the local clock within its loop bandwidth and loop gain range. Similarly, in the CDR locked state, the frequency path periodically updates the PI to track an averaged frequency offset within its tracking range. However, the CDR's PD only provides phase difference information, and can generally only track a small frequency difference, measured by parts per million (ppm). When the frequency difference between the transmitted signal and the local clock is outside the CDR's frequency capture range (typically near the CDR bandwidth at a few MHz, corresponding to a couple hundred ppm at 50+Gbps) using the PD, the CDR will lose lock due to limited CDR bandwidth and the link would fail. This is typical for analog to digital converter (ADC) based designs where the loop latency limits the CDR bandwidth. If the loop latency is high, then higher CDR bandwidth will cause the loop to become unstable.
What is desired is an improved CDR that has a broader frequency acquisition range.
Techniques for detecting a frequency offset, and using the frequency offset in clock recovery are described. In an example, a method of clock and data recovery (CDR) includes generating, in a set of slicers of a receiver, in addition to a data signal and a first error signal, at least one additional error signal. The method further includes receiving, at a frequency detector (FD) of a CDR unit of the receiver, the data signal, the first error signal, and the at least one additional error signal, and processing them to generate a FD output. The method still further includes multiplying the FD output by a user-defined FD gain, and adding the FD output, as multiplied by the FD gain, in a frequency path of the CDR unit.
In another example, a CDR circuit includes a set of slicers configured to receive a serial data stream and generate a data signal dk, a first error signal ek and at least one additional error signal. The CDR circuit further includes a phase detector coupled to the set of slicers, including an input configured to receive the data signal and the first error signal and an output coupled to a phase path and a frequency path. The CDR circuit still further includes a frequency detector (FD) coupled to the set of slicers, the FD configured to receive the data signal, the first error signal and the at least one additional error signal from the set of slicers, and to output a frequency vote. The CDR circuit yet further includes a multiplier, coupled to the FD and to the frequency path, configured to receive the frequency vote and multiply it by a pre-determined frequency detector gain, and output the frequency vote product to the frequency path.
In still another example, a method of CDR recovery includes receiving a pre-defined number of successive votes from a frequency detector (FD) of a second-order loop of a CDR circuit, and determining if the average value of the votes over the pre-defined number of successive votes indicates that the CDR circuit has locked onto, within a pre-defined threshold, a frequency of an incoming data stream. The method further includes, based at least in part on the determination, outputting a control signal to the CDR circuit.
These and other aspects may be understood with reference to the following detailed description.
So that the manner in which the above-recited features can be understood in detail, a more particular description, briefly summarized above, may be had by reference to example implementations, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical example implementations and are therefore not to be considered limiting of its scope.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements of one example may be beneficially incorporated in other examples.
Various features are described hereinafter with reference to the figures. It should be noted that the figures may or may not be drawn to scale and that the elements of similar structures or functions are represented by like reference numerals throughout the figures. It should be noted that the figures are only intended to facilitate the description of the features. They are not intended as an exhaustive description of the claimed invention or as a limitation on the scope of the claimed invention. In addition, an illustrated example need not have all the aspects or advantages shown. An aspect or an advantage described in conjunction with a particular example is not necessarily limited to that example and can be practiced in any other examples even if not so illustrated or if not so explicitly described. In one or more examples, a frequency offset may be detected and used in clock recovery in a SerDes system in asynchronous communications. In one or more examples, the extraction of timing information (e.g., where the locking point is) may be performed by creating extra error slicers to generate different CDR voting profiles, where these voting profiles differentiate in time. In one or more examples, frequency information may be extracted from the CDR voting profiles by dividing up the entire unit interval (UI) into different voting states and obtaining frequency offset information based on a detected change in voting state.
In one or more examples, CDR circuitry includes a frequency detector (FD) that can detect a frequency offset to a significantly greater extent than conventional CDRs. In one or more examples, the detectable frequency offset range is not limited by CDR bandwidth, and thus broadens the frequency acquisition range. Accordingly, in one or more examples a SerDes provided with the enhanced CDR circuitry may operate with greater robustness in an asynchronous communications system.
In some examples, CDR circuitry is augmented by additional logic to generate, in addition to a data signal and an error signal, at least two additional error signals. The additional error signals each add an offset to the DFE (or FFE, as the case may be) co-efficient in the standard error expression. In one or more examples, the CDR circuitry also has an FD configured to receive the data signal, the error signal and the at least two additional error signals, and output an FD signal, the FD signal added, after amplification, to a frequency path of the CDR circuitry.
Continuing with reference to
It is noted that the CDR PD 210 only provides the phase difference information, and can usually only track a small frequency difference, measured in parts per million (ppm). When the frequency difference between the transmitted signal and the local clock is outside of the CDR frequency capture range, which is typically near the CDR bandwidth at a few MHz, which corresponds to a couple hundred ppm at 50+Gbps, using the PD, the CDR will lose lock due to limited CDR bandwidth and the link will fail. In one or more examples, this problem may be remedied by adding a frequency detector, as well as additional logic to supply it with additional error signals, as next described.
In one or more examples, a frequency detector (FD) may be added to the second order loop, or frequency loop, of a CDR that can detect the frequency offset to a much larger amount, and that is not limited by CDR bandwidth. In one or more examples, as a result, the frequency acquisition range of a CDR is significantly broadened. Thus, in one or more examples, a SerDes may be made to work more robustly in an asynchronous system, by using an FD to achieve reliable frequency acquisition. In one or more examples, additional error information and frequency detection logic is also provided, to support the functionality of the FD.
Turning now to
dk205=dk,
ek206=sign[yk−dk+1*(h1)−dk*h0],
eke207=sign[yk−dk+1*(h1+h1e0)−dk*h0], and
ekl208=sign[yk−dk+1*(h1+h1l0)−dk*h0],
In one or more examples, h1e0 and h1l0 are system input parameters that can be programmed. Typical values for these offsets may be for example, +2 and −2 respectively. In general, the larger the offset, the wider are the state 2 and state 1 as shown in
It is noted that conventionally, an error signal such as ek is calculated for the case of a 1-tap DFE where yk is the kth received signal before DFE processing. If a given system does not have a DFE, then the error is generally calculated with h1=0 in the above provided equation. However, as noted above, in one or more examples, in addition to a data signal dk and a conventional error signal ek, at least two additional error signals are generated in addition to the standard data symbol (dk) and error symbol (ek) that a CDR may use for the baud-rate clock recovery. In one or more examples, as next described, the FD uses these two additional error symbols to detect the direction of the symbol slip (when there is a frequency offset between the transmitter and the receiver) and then generates a frequency vote. In one or more examples, the frequency vote is added in the frequency path of the CDR after being multiplied by a user-defined frequency detector gain (GFD). In some examples, the gain factor GFD may be from 2{circumflex over ( )}0 to 2{circumflex over ( )}15, for example.
In the example equations for two additional error signals provided above, an h1 offset is used because the CDR vote equation depends on the residual inter-signal interference (ISI) from the previous data. Thus, the additional offsets h1e0 and him are equivalent to adding extra residual ISI, and can therefore shift the locking locations. If the CDR equation is correlated to the residual ISI from other taps, then other taps may be added accordingly.
The example error equations provided above are for examples in which a DFE is used, as shown in
dk205=dk,
yk=yk,
ek206=sign[yk+yk+1*(f1)−dk*h0],
eke207=sign[yk+yk+1*(f1+f1e0)−dk*h0], and
ekl208=sign[yk+yk+1*(f1+f1l0)−dk*h0],
As may be seen by comparing the example DFE and FFE equations, in the example FFE equations provided above, dk+1 is replaced with yk+i, the DFE coefficient h1 is replaced with the FFE coefficient f1 and the DFE h1 offsets h1e0 and h1l0 are replaced with the FFE f1 offsets f1e0 and f1l0. In one or more examples, f1 may be from −5% to −40% of h0, which, as noted above, may be from 50 to 100 mV.
Continuing with reference to
Continuing still further with reference to
vote(k)=sign{ek*(d(k−1)−d(k+1))}
In one or more examples, FD 211 takes dk, and the additional error signals, in this example the two additional error signals eke and ekl, to generate the additional vote signals vote_e(k) and vote_l(k) using analogous voting logic, as follows:
vote_e(k)=sign{eke*(d(k−1)−d(k+1))}
vote_l(k)=sign{ekl*(d(k−1)−d(k+1))},
where the added offset in each of eke and ekl changes the “target” CDR locking point, and thus changes the CDR voting profile. This is illustrated in
It is first noted that although element 111 of
In such alternate examples, where no DFE or FFE is used, then in the equations presented above for the error measures ek, eke and ekl, h1 may simply be set to equal 0.
In one or more examples, given the existence of at least three vote signals, based on the corresponding at least three error signals, according to one or more examples, the UI shown in
Conceptually, the CDR vote equations express the difference between the error signal and either the previous or the future data. By adding an offset to the error slicer, the correlation between the error and the previous data is changed. Thus, for example, eke and ekl are associated with h1e0 and h1l0, respectively, and hence bias the voting curve ek, pushing it either to the left (to generate “early” curve 412) or to the right (to generate “late” curve 411), as shown in
It is noted with reference to
For example, if four additional slicers are added, then there would be a total of six states, namely 5|4|3|2|1|0. In such an example, a transition from state 5 to state 0, or from state 0 to state 5 would indicate a bit slip. Similarly, the “3” in
Referring once again to
Conceptually, given the example error signals of
On the other hand, if the state is switched from state 0 to state 3, that means the local clock is now too slow. Thus, it samples the data later and later, and eventually falls so behind so that it skips one datum, and does not sample it. The FD detects that and outputs a −1, which decreases the PI code, and, in turn, advances the clock phase, effectively speeding up the local clock, and bringing it closer to the actual clock of the received data.
In alternate examples, where more or less than two additional slicers are used, the procedure is equivalent. Thus, for example, for the case of one additional slicer, with reference to
It is noted that for PAM4 signaling, the phase detection logic is more complicated, but the same concept may still be applied. In one or more examples some pattern filtering might be needed to achieve the best voting profile segmentation. For example, one approach is to look for NRZ-like patterns, e.g., [1, 1, −1 or −3, −3, +3] and only use votes from those patterns for FD. In addition, in one or more examples, techniques according to the present disclosure may also be used for other modulation schemes besides NRZ and PAM4, such as, for example, PAM8, DSQ, duo binary, etc. In order to implement those, in one example the patterns that are desired to be used may be selected, and extra error slicers added that only target those levels. For example, for PAM8, one may select a 1,1,−1 transition and add extra two error slicers only associated with these levels.
From block 710 method 700 moves to block 720, where, at a FD of the CDR unit, the data signal, the first error signal, and the at least one additional error signal are received, and processed to generate an FD output. For example, as described above with reference to
From block 720 method 700 moves to block 730, where the FD output is multiplied by a pre-defined FD gain. For example, the FD gain may be user-defined, and may be a function of the PD gain. In some examples it is desired that the FD vote dominate the PD vote, and thus the FD gain be somewhat larger than the PD gain. In some examples, as the CDR gets frequency locked, the FD gain may be reduced, or even set to 0. Thus, the FD gain may also be a function of time. In one or more examples, as a precaution, the FD gain may be reduced as opposed to being completely shut-off just in case there is some instantaneous frequency perturbation or offset that the FD loop cannot immediately track. Thus, having the FD on, even with reduced gain, the frequency can recover more quickly than if only the PD is on.
From block 730 method 700 moves to block 740, where the FD output, as multiplied by the FD gain, is added in the frequency path of the CDR unit. For example, as shown in
ek=sign[yk−dk+1*(h1)−dk*h0],
eke=sign[yk−dk+1*(h1+h1e0)−dk*h0], and
ekl=sign[yk−dk+1*(h1+h1l0)−dk*h0],
where h1 is a co-efficient of the DFE, and h1e0 and h1l0 are early and late offsets, respectively, relative to h1. For example, the additional early and late error signals may be used to extract timing information, by generating different CDR profiles.
From block 810 method 800 moves to block 820, where a FD of the CDR receives each of the d(k), ek, eke and ekl signals, and respectively processes the early and late error signals to generate corresponding phase voting signals vote_e(k) and vote_l(k), as follows:
vote_e(k)=sign(eke*(dk−1−dk+1)) and
vote_l(k)=sign(ekl*(dk−1−dk+1)).
For example, the voting profiles vote_e(k_ and vote_l(k) differentiate in time, and may be used to facilitate obtaining frequency offset information of the incoming data signal.
From block 820 method 800 moves to block 830, where, in the FD a state is generated from the vote_e(k) and vote_l(k) signals in combination with a vote(k) signal=sign(ek*(dk−1−dk+1)), the vote(k) signal generated from the ek signal, wherein in a first state all three signals are negative, and in a second state all three signals are positive. For example, the first state may be state 0 of
From block 830 method 800 moves to block 840, where the FD generates an output of 1 when the state changes from the first state to the second state, −1 when the state changes from the second state to the first state, and 0 at all other times. For example, the FD output may be the FD output 605 of
From block 840 method 800 moves to block 850, where the FD output generated in block 840 is added to an integral path of the CDR. For example, as described above with reference to
As noted above, in one or more examples the FD gain GFD may be reduced, or the FD 211 turned off altogether, once frequency acquisition is completed. In such examples, frequency acquisition may be detected by the FD output having a zero average over time, for example, as measured by a pre-defined number of cycles. Once frequency acquisition is detected, the frequency tracking can be taken over solely by the phase detector of the CDR, and the FD automatically shut-off. As noted above, to implement this automatic shut-off, an optional FD lock detector may be added to the CDR circuitry of
In one or more examples, FD lock detect 214 may operate as follows. In one or more examples, for every cycle, there may be one FD vote. An accumulated sum called “FD_vote_sum” may store the sum of all of the FD votes for as many cycles as are provided by a pre-determined value “Cycle_thr”, which may be, for example, 10,000 cycles. With reference to
From block 910 method 900 moves to block 920, where the received FD vote is added to an accumulator. For example, the accumulator may be accumulator 214A of
From block 920 method 900 moves to query block 925, where it is determined if the counter has reached the value of “cycle_threshold” which is a pre-defined number of cycles needed for an accurate average measurement. If the query at block 925 returns a “Yes”, then process flow moves to query block 930, described below. However, if the return at query block 925 is “No”, then there are not a sufficient number of cycles for a detection, and process flow returns to block 920.
At query block 930 it is determined if the absolute value of the accumulated sum of all FD votes, over the number of cycles equal to “cycle_threshold” exceeds a pre-defined threshold “Sum_threshold.” If “Yes”, then the FD vote average is not equal to or near 0, and there is still some bit slip, and the FD cannot yet be turned off. As a result, both the cycle counter and the “FD_vote_Sum” values are reset to zero, and process flow returns to block 920.
However, if a “No” is returned at query block 930, then the average FD vote is zero, of sufficiently close to it, to indicate that there is no bit slip, and the CDR's local clock has in fact locked onto the correct frequency of the incoming data stream. Thus, process flow moves to block 950, where frequency detection is turned off. For example, as described above with reference to
Thus, in one or more embodiments, extra error slicers may be added to a CDR circuit, and the voltage/level information from these extra error slicers may be converted into timing (CDR locking location) information by a FD. The FD may then output a vote, based on a change in the values of all error slicers (both the conventional one, as well as the extra added ones) from all having negative values, to all having positive values, or vice versa. The vote is added to a second-order loop of the CDR circuit.
While the foregoing is directed to specific examples, other and further examples may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
This application is a continuation of U.S. non-provisional patent application Ser. No. 16/903,377 filed Jun. 17, 2020 of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
8582409 | Liu | Nov 2013 | B1 |
8923463 | Jenkins et al. | Dec 2014 | B1 |
8958513 | Novellini et al. | Feb 2015 | B1 |
9065601 | Jenkins et al. | Jun 2015 | B1 |
9209960 | Leung et al. | Dec 2015 | B1 |
9306730 | Shu et al. | Apr 2016 | B1 |
9313017 | Liao et al. | Apr 2016 | B1 |
9356775 | Xu et al. | May 2016 | B1 |
9378720 | Roebke | Jun 2016 | B2 |
9379880 | Xu et al. | Jun 2016 | B1 |
9397824 | Hoshyar | Jul 2016 | B1 |
9438409 | Liao et al. | Sep 2016 | B1 |
9455848 | Zhang et al. | Sep 2016 | B1 |
9698970 | Cho | Jul 2017 | B1 |
9882703 | Xu et al. | Jan 2018 | B1 |
9960902 | Lin et al. | May 2018 | B1 |
10038545 | Wu et al. | Jul 2018 | B1 |
10224937 | Wu et al. | Mar 2019 | B1 |
10256968 | Wu et al. | Apr 2019 | B1 |
10484167 | Zhuang et al. | Nov 2019 | B2 |
11245554 | Zhang | Feb 2022 | B1 |
20070258517 | Rollings | Nov 2007 | A1 |
20120109356 | Kong | May 2012 | A1 |
20130070835 | Sindalovsky et al. | Mar 2013 | A1 |
20150103961 | Malipatil et al. | Apr 2015 | A1 |
20180302264 | Liao | Oct 2018 | A1 |
20200092077 | Abramzon | Mar 2020 | A1 |
Entry |
---|
Ismail, Kareem et al., “Design and Implementation of CDR and SerDes for High Speed Optical Communication Networks Using FPGA”, 2016 18th International Conference on Transparent Optical Networks (ICTON), 2016, pp. 1-3. |
Understanding and Characterizing Timing Jitter, retrieved from https://www.tek.com/primer/understanding-and-characterizing-timing-jitter-primer, 24 pages. |
Baprawski, J. (Mar. 22, 2012), “SerDes System CTLE Basics”, retrieved from https://johnbaprawski.com/wp-content/uploads/2012/04/SerDes_System_CTLE_Basics.pdf, 10 pages. |
Number | Date | Country | |
---|---|---|---|
20220231889 A1 | Jul 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16903377 | Jun 2020 | US |
Child | 17665477 | US |