This invention relates to generating clock signals for electronic devices and more particularly to generating clock signals using digital phase-locked loops.
A typical clock generator utilizes a digital phase-locked loop supplied with a reference signal from a source such as a crystal oscillator to generate output clock signals having frequencies consistent with a target application. Spurious energy can be introduced into an output of the digital phase-locked loop by various coupling mechanisms, e.g., time-to-digital converter gain error and non-linearity, fractional divider periodicity (e.g., delta-sigma modulator tones), phase error introduced by truncating a phase accumulator, aliasing within the Nyquist band of quantization distortion errors, etc. Spurs are harmonic components in the phase noise spectrum that resemble vertical spikes on the data in a phase noise plot. The ideal mathematical model of a spur in a frequency domain is a Dirac delta function (i.e., a unit impulse function) multiplied by the spur amplitude. The number of spurs observed in a phase noise plot corresponds to the number of undesirable periodic tones that accompany an output clock signal. A low-spur or spur-free digital phase-locked loop is desirable because it reduces or eliminates mixing unwanted signals, prevents emission mask violations, and reduces jitter from the clock source. Suppressing these spurs can improve the output of the timing circuits. Accordingly, techniques for suppressing spurious tones are desirable.
In at least one embodiment, a method for generating a clock signal using a digital phase-locked loop includes filtering a digital signal of the digital phase-locked loop using an all-zero filter having P weights. The P weights correspond to P zeros of the all-zero filter at frequencies of P spurs in the digital signal. P is an integer greater than one.
In at least one embodiment, a digital phase-locked loop includes a time-to-digital converter configured to generate a digital signal based on an input clock signal. The digital phase-locked loop is configured to generate a phase-adjusted clock signal based on the digital signal and a feedback clock signal using a frequency-divided clock signal. The digital phase-locked loop includes an all-zero filter coupled between the time-to-digital converter and an output of the digital phase-locked loop. The all-zero filter has P weights. The P weights correspond to P zeros at frequencies of P spurs in the digital signal. P is an integer greater than one.
In at least one embodiment, a method for generating a clock signal using a digital phase-locked loop includes determining P weights of an all-pole transfer function having P poles corresponding to locations of spurious energy in a digital signal of the digital phase-locked loop. The P weights are determined based on the digital signal. P is an integer greater than one.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
A linear prediction technique determines the location of spurious content in a digital phase-locked loop and suppresses the spurious content from propagating to an output of the digital phase-locked loop. In at least one embodiment, the linear prediction technique implements a die-area-efficient iterative (e.g., recursive) circuit. The linear prediction technique does not require a priori configuration or system information. The technique converges faster and collects less data than conventional techniques and can suppress multiple spurs simultaneously using the same hardware. In at least one embodiment, the linear prediction technique adapts to different phase-locked loop configurations and environmental changes without user intervention. Unlike conventional techniques (e.g., dithering) the linear prediction technique estimates the location(s) of spurious energy and suppresses that energy without increasing the noise floor of the digital phase locked loop.
Digital phase-locked loop 105 is an outer digital phase-locked loop that includes time-to-digital converter 118, phase/frequency detector 120, digital loop filter 122, frequency divider 126 (e.g., a fractional divider), and uses digital phase-locked loop 104 as a digitally controlled oscillator for phase-locked loop 105. The digitally controlled oscillator is responsive to divider value MR, which may be a fractional divide value provided by digital loop filter 122. Phase/frequency detector 120 receives timestamps based on clock signal CLKIN1 and feedback timestamps provided by time-to-digital converter 124 based on a feedback clock signal generated by frequency divider 126. The feedback clock signal may be based on a frequency-divided version of clock signal CLKVCO. Digital phase/frequency detector 120 provides a digital phase error signal reflecting the difference between clock signal CLKIN1 and the digital feedback clock signal. The frequency of clock signal CLKVCO is determined by the frequency of clock signal CLKIN1 and the divider value MR provided by digital loop filter 122 and provided to feedback divider 114 (e.g., a fractional divider) in the feedback path of inner digital phase-locked loop 104. Digital phase-locked loop 105 adjusts divider value MR to match the frequency of clock signal CLKVCO to a multiple of the frequency of clock signal CLKIN1 implemented using frequency divider 126 and frequency divider 116 (e.g., frequency(CLKIN1)=frequency(CLKVCO)/MA NB). The frequency of CLKOUT1 provided by frequency divider 112 is based on the frequency of clock signal CLKVCO and divider value NA.
Digital phase-locked loop 107 receives a clock signal CLKIN2 and configures output interpolative divider 128 as a digitally controlled oscillator to generate clock signal CLKOUT2 using clock signal CLKVCO as a low-jitter reference clock signal. Clock signal CLKOUT2 has a frequency determined by the frequency of clock signal CLKIN2 and the divider value MB provided to frequency divider 138. Time-to-digital converter 136 provides feedback timestamps to digital phase/frequency detector 132. Digital loop filter 134 provides a digital control signal to output interpolative divider 128 based on the digital phase error signal reflecting the difference between clock signal CLKIN2 and the feedback clock signal. The digital control signal causes output interpolative divider 128 to match the frequency of clock signal CLKOUT2 to a multiple of the frequency of clock signal CLKIN2. Circuits that may introduce spurs in an output clock signal include circuit 106, time-to-digital converter 118, time-to-digital converter 124, time-to-digital converter 130, time-to-digital converter 136, feedback divider 114, output interpolative divider 128. Accordingly, application of the spur suppression technique at outputs of one or more of those circuits can attenuate or eliminate spurious energy in an output clock signal.
Time/phase measurement circuit 206 generates an indication of time difference EDGE_DELTA between edges of clock signal TDC SAMPLING CLOCK and clock signal INPUT CLOCK 206. That difference is digitized by analog-to-digital converter 208, which provides a digital version of that difference as fractional time code TC_FRAC. In an embodiment, the fractional time code is a residue that can range from 0 to 1 unit interval (UI) of the sampling clock. Clock signal INPUT CLOCK has input frequency
where N corresponds to the integer number of the integer number of full cycles of clock signal TDC SAMPLING CLOCK in a period of clock signal INPUT CLOCK and a corresponds to the residue. The residue has a periodicity of α*Fin and is sampled at Fin. Quantization error occurs due to the conversion of the residue into digital codes and produces time/phase noise in the power spectral density. The periodicity of the quantization error introduces spurious information into the output digital signal since this error follows a sawtooth wave. In addition, non-linearity of time-to-digital converter circuit 200 can produce a periodic time error that may be different from sawtooth in nature, contributing to spur generation on the output digital signal that is being generated inside the digital phase-locked loop.
A linear predictive coding technique estimates a transfer function for injection of spurious energy. That transfer function is used to determine weights (e.g., a set of coefficients) that are applied to digital signals (i.e., samples) generated in the digital phase-locked loop, e.g., timestamps generated by a time-to-digital converter, divider codes provided to a digitally controlled oscillator, or a divider code provided to an output interpolative divider.
Referring to
All-pole model 304 represents unknown sources that generate undesired spurious tones in the system as poles in transfer function. The DC component and random noise associated with the source is not of interest and can be removed by high pass filtering to prevent interference with the linear prediction technique. The spur suppression technique addresses the unwanted tones that appear above the noise that appear in-band after filtering (e.g., by a loop filter). In at least one embodiment, gain is applied to the spurious energy in the data chain. Linear predictor 306 is used to generate an error sequence between the signal and a predicted signal. The error sequence is used to generate coefficients for an all zero-filter.
The transfer function of an all-pole system is defined as follows:
The value P determines the number of poles in the transfer function and is predetermined according to a target number of spurs to be suppressed. The selection of P approximates frequency content or excitation by a P pole system. The transfer function above corresponds to a linear difference equation that predicts future data from a linear combination of weighted past samples:
The prediction error can be represented as A(z)=1−P(z) where A(z) is an inverse filter of H(z) and is defined as all-zero filter. All-zero filters nullify the energy of the frequency content defined by the measured coefficients that originally generated the excitation that is modelled as the all-pole filter. However, if too many poles are included in the model, the model will include harmonics and becomes distorted.
Solving for the pole coefficients of the transfer function from the previous digital samples, the pole coefficients are used to inverse-filter future digital samples to suppress spurs. The pole coefficients may be determined by minimizing the error sequence e(n). This error sequence provides information regarding the spurious excitation only, while removing other harmonic peaks that are fundamental to the clock characteristics. This technique allows accurate measurement of spur location by identifying the error energy. If no spurious energy is present, then there are no errors, and a future digital code is the same as a linear combination of past digital codes. Accordingly, the sum of the error squared can be obtained and expanded as follows:
After minimization, solving for P equations provides coefficients ak.
Σk=1PakΣn=1Ns(n−k)s(n−i)=Σn=1Ns(n)s(n−i), for i=1,2,3, . . . ,P.
The expansion includes P linear simultaneous equations to solve for P unknown coefficients ak. The above error-squared equations can be re-written as an autocorrelation function. Minimizing the sum of the error squared is performed by setting the partial differentiation of the error equal to zero (i.e.,
with every P coefficient from E) to find the optimal coefficients of the linear predictor. The P simultaneous equations can be rewritten as auto-correlation function R:
The above P simultaneous equations written in matrix form with autocorrelation values is [R][ak]=[R′], where R is P×P matrix, and ak is a P×1 matrix and R′ is a P×1 matrix. In at least one embodiment, an autocorrelation technique with optimized hardware and fast convergence is used. Matrix inversion of R and a multiply with R′ are required to solve for ak.
From the above error-squared minimization problem, we can write the below equation where R(i) is the autocorrelation of data sample with lag of i for i=1, 2, . . . , P:
Σi=1pakR(k−i)=r(i), for i=1,2, . . . ,P and R(i)=Σn=1N└s(n)s(n−i┘1.
These equations implicitly express the optimal linear predictive coding coefficients implicitly, and in terms of autocorrelation functions of the observed random data samples and of deterministic unit sample response.
Where P=2, expanding for a second order predictor obtains the following matrix that can be solved for a1 and a2:
where R(i) is the autocorrelation of a digital code with a lag of i, for i=1, 2, . . . , P. This matrix form is a Toeplitz matrix (i.e., the matrix is symmetric and all elements in the main diagonal are equal) and can be solved recursively (e.g., using Levinson-Durbin recursion, which is explained further below). The recursive solution predicts the coefficients in a hardware-efficient manner, especially when P is much greater than two.
Levinson-Durbin recursion, is a hardware-efficient technique for generating the predicted coefficients for a Toeplitz matrix. The recursive technique is based on two basic operations: determining the autocorrelation from observed samples and the matrix operation to determine the coefficients.
For example, where P=2:
Solving for coefficients a1 and a2 via matrix inversion and multiplication:
Solving for coefficients a1 and a2 via Levinson-Durbin recursion:
Referring to
E=(Σn=1Ne(n)2)=Σn=1N└s(n)−Σk=1Paks(n−k)┘2.
The block has a length that corresponds to a duration of samples that need to contain the frequencies of spurs that are being predicted. For example, if a spur is located around 1 kHz, then length N corresponding to a duration of 3-4 ms (i.e., 3-4 times 1/1000 Hz) is used in block framing. If the frame under analysis contains few spur periods, then N>>P and the spectral accuracy improves because linear prediction models the spectral envelope well for the spur frequencies in the sample history that includes the excitation.
In at least one embodiment, the output of block framing 602 is provided to autocorrelation circuit 604, which provides autocorrelated values for a digital signal to coefficient generator 606. In at least one embodiment, those functions are integrated into shared circuitry. The block framing can be fine-tuned based on the target application. For example, an embodiment of coefficient generator 502 removes a DC component before predicting spurs of interest or windowing the digital codes to remove edge effects that would otherwise corrupt the analysis. In some applications, a pre-emphasis operation boosts a region of spectral content to amplify spurs of interest for effective cancellation.
The computation of matrix correlation values and recursive solution of coefficients can be combined for a simpler hardware implementation of the optimized filter. Rather than calculate the actual coefficients, intermediate partial correlation coefficients (k) are used to realize the implementation of
In at least one embodiment, coefficient generator 702 implements the following steps described above with respect to Levinson-Durbin recursion:
a
j
(i)
=a
j
(i-1)
−k
i
a
i-j
(i-1); and
a
i
(i)
=k
i.
Thus, coefficient generator 702 is configured to iteratively determine the ith order filter Ai(z):
A
i(z)=Ai-1(z)−kiz−iAi-1(z−1).
The first term is the z-transform of the forward prediction error for the (i−1)th order predictor, ei-1(m), and similarly, the second term is the backward prediction error for the (i−1)th order predictor, bi-i (m−1).
To predict future samples of the digital signal, s(n−i), the technique uses i samples of the digital signal, s(n). Although the equations above seem causal in some sense, causality can be considered as removed by adding delayed samples. Alternatively, if we have enough sample history, the same set of samples is used to predict backward prediction error for the sample at s(n−i) and forward prediction error at s(n).
In the time domain, the forward prediction error for the ith order predictor in terms of the corresponding prediction errors of an (i−1)th using past backward prediction error is:
e
i(m)=ei-1(m)−kibi-1(m−1).
The backward prediction error is:
b
i(m)=bi-1(m−1)−kiei-1(m).
In at least one embodiment of the lattice filter formulation, the initial state of the forward prediction error e0 is the current sample itself and the initial state for the backward prediction error b0 is the same. Thus, lattice filter 704 uses the initial state s(n) and the ki determined by coefficient generator 702. The lattice filter implementation has the benefit of not needing autocorrelation data to be available thus reducing circuit requirements.
In at least one embodiment, the technique uses linear prediction to adaptively suppress spurs for different phase-locked loop configurations or under varying environmental conditions. Referring to
a
k(n+1)=ak(n)+c×e(n)×s(n−k),
where c is a learning rate between 0<c<1 and k is between 1≤k≤P. In at least one embodiment, the learning rate is fine-tuned (e.g., experimentally) in order to reduce issues in finding a global minimum.
In at least one embodiment, the digital phase-locked loop implementing linear prediction techniques described above is included in a network communication box that uses timing protocols to ensure time of day (ToD) counters in the network are synchronized. SYNC signals are used to update time of day counters at the same time in the network. Any delay/offset and process, voltage, temperature (PVT) variation between the SYNC lines being supplied to the ToD counters in each line card in the network box results in an error that is classified as Continuous Time Error (CTE). Network communications are used to communicate various status and information regarding the system.
The exact position of the SYNC edge is derived using a precision time protocol (PTP) servo loop that uses time information inside the incoming Synchronous Ethernet (SyncE) packet stream to slave line card 1101 on input DATA_IN 1116 of physical interface 1123. The timestamps exchange allows determination of one-way delay (OWD) and error offset between the upstream PHY and the downstream PHY. That time stamp exchange allows the slave line card to determine the correct time provided by the upstream PHY even with delays between the upstream PHY and the downstream PHY. Note that the high level description of the PTP servo loop is provided as background information to provide context in which various embodiments of the digital phase-locked loop described herein can be utilized.
Slave line card 1101 and master timing card 1103 also have a closed loop PTP servo system in accordance with the IEEE 1588 protocol that corrects the position of the SYNC signal over process, voltage, and temperature (PVT) and aligns the SYNC signals distributed by the master timing card 1103 to the timing of the incoming packet stream to the slave line card. The servo loop ensures that the slave line card and the master timing card are synchronized. The slave line card 1101 and the master timing card 1103 exchange information in the closed loop system to adjust the CLK and SYNC pair on the master timing card such that the slave line card ToD is aligned with the network ToD of the chosen incoming data stream on DATA_IN 1116. The PTP servo loop adjusts the timing of SYNC by adjusting DPLL 1117 so that the slave line card ToD is aligned in frequency and phase to the upstream ToD received by the slave line card on input DATA_IN 1116. The distributed system clock signal SYSCLK is distributed and supplied as a reference clock to DPLL 1121 within each of the line cards and the line card digital phase-locked loops generate a local system clock signal SYSCLK and SYNC signal that is phase and frequency aligned with the distributed system clock signal SYSCLK and SYNC signal. The master line cards 1105 are duplicates (up to 64 copies) of the slave line card 1101 but without the closed loop PTP servo loop. In other words, the distribution of the CLK/SYNC pair to the master line cards 1105 is open loop (i.e., without the PTP closed loop adjustments). The timing card and various line cards communicate, at least in part, utilizing a serial communication bus (not shown in
Thus, linear prediction techniques that determine the location of spurious content in a digital phase-locked loop and suppress the spurious content from propagating to an output of the digital phase-locked loop have been described. The description of the invention set forth herein is illustrative and is not intended to limit the scope of the invention as set forth in the following claims. For example, while the invention has been described in an embodiment in which the digital phase-locked loop has a multi-loop architecture, one of skill in the art will appreciate that the teachings herein can be utilized with digital phase-locked loops having single loop architectures or other multi-loop architectures. The terms “first,” “second,” “third,” and so forth, as used in the claims, unless otherwise clear by context, is to distinguish between different items in the claims and does not otherwise indicate or imply any order in time, location or quality. For example, “a first received signal,” “a second received signal,” does not indicate or imply that the first received signal occurs in time before the second received signal. Variations and modifications of the embodiments disclosed herein may be made based on the description set forth herein, without departing from the scope of the invention as set forth in the following claims.
This application claims the benefit of U.S. Provisional Application No. 63/250,532, entitled “LINEAR PREDICTION TO SUPPRESS SPURS IN A DIGITAL PHASE-LOCKED LOOP,” naming Kannanthodath V. Jayakumar as inventor, filed on Sep. 30, 2021, which application is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63250532 | Sep 2021 | US |