The present invention relates to analog-to-digital conversion, and more particularly, to a method for achieving high-speed analog-to-digital conversion without degrading accuracy, and to an associated apparatus.
According to the related art, a circuitry of high complexity is typically required for implementing an analog-to-digital converter (ADC) with high accuracy. In addition, the speed of analog-to-digital conversion of such an ADC with high accuracy is typically too slow to satisfy the requirements of many applications. In order to implement an ADC with low complexity and high speed, a conventional method typically utilizes a slow ADC of high accuracy as a tool to calibrate the ADC with low complexity. However, when using the conventional method, high tooling and labor costs are needed. A novel method for reducing the tooling and labor costs is required.
It is therefore an objective of the claimed invention to provide a method for achieving high speed analog-to-digital conversion without degrading accuracy, and to provide an associated apparatus, in order to solve the above-mentioned problem.
An exemplary embodiment of a method for analog-to-digital conversion comprises: receiving digital outputs of a plurality of pipelined analog-to-digital converters (ADCs) that perform analog-to-digital conversion on a same analog signal; and performing digital calculations on the digital outputs to generate a calibrated digital output.
An exemplary embodiment of an apparatus for analog-to-digital conversion comprises: a digital module arranged to receive digital outputs of a plurality of pipelined ADCs that perform analog-to-digital conversion on a same analog signal. In addition, the digital module comprises a plurality of digital calculation paths respectively corresponding to the pipelined ADCs, wherein each digital calculation path corresponding to an associate pipelined ADC of the pipelined ADCs is electrically connected to the associate pipelined ADC. Additionally, the digital module performs digital calculations on the digital outputs to generate a calibrated digital output.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. Also, the term “couple” is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Please refer to
In this embodiment, the number of pipelined ADCs shown in FIG. 1 is two, and the digital module comprises a first digital calculation path corresponding to the pipelined ADC 114A, and further comprises a second digital calculation path corresponding to the pipelined ADC 114B. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to a variation of this embodiment, the number of pipelined ADCs is more than two, and the digital module comprises respective digital calculation paths corresponding to the pipelined ADCs.
According to this embodiment, each digital calculation path corresponding to the associate pipelined ADC of the pipelined ADCs comprises an estimation unit, an adaptive processing unit (such as the Least Mean Square (LMS) adaptive processing unit shown in
More particularly, in this embodiment, the estimation block 120A comprises a linear estimation sub-unit 122A (“Error Est. _linear”) and a nonlinear estimation sub-unit 124A (“PWL Error Est. _nonlinear”), while the LMS block 130A comprises a linear LMS adaptive processing sub-unit 132A (“LMS_GD, Ai”) and a nonlinear LMS adaptive processing sub-unit 134A (“LMS_ρD, A”) respectively corresponding to the linear estimation sub-unit 122A and the nonlinear estimation sub-unit 124A. Similarly, the estimation block 120B comprises a linear estimation sub-unit 122B (“Error Est. _linear”) and a nonlinear estimation sub-unit 124B (“PWL Error Est. _nonlinear”), while the LMS block 130B comprises a linear LMS adaptive processing sub-unit 132B (“LMS_GD, Bi”) and a nonlinear LMS adaptive processing sub-unit 134B (“LMS_ρD, B”) respectively corresponding to the linear estimation sub-unit 122B and the nonlinear estimation sub-unit 124B.
As shown in
In addition, at least a portion of the digital module can be implemented with hardware circuits and/or a controller executing a program code. For example, at least a portion of the digital module can be implemented with a controller executing a read only memory (ROM) code. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to a variation of this embodiment, at least a portion of the digital module can be implemented with a micro processing unit (MPU) executing a software code. According to another variation of this embodiment, at least a portion of the digital module can be implemented with a micro control unit (MCU) executing a firmware code.
In Step 910, the digital module receives digital outputs of the plurality of pipelined ADCs that perform analog-to-digital conversion on a same analog signal. In particular, the digital module is implemented with a controller executing a ROM code, and the controller executing the ROM code receives the digital outputs of the plurality of pipelined ADCs 114A and 114B that perform analog-to-digital conversion on the same analog signal.
In Step 920, the digital module performs digital calculations on the digital outputs to generate a calibrated digital output Dcal. In particular, the digital module is implemented with the controller executing the ROM code as mentioned in Step 910, and the controller executing the ROM code performs the digital calculations on the digital outputs to generate the calibrated digital output Dcal.
According to this embodiment, the SHA 112 performs a sample and hold operation on an analog input signal Vin of the apparatus 100 to generate a derivative of the analog input signal Vin for the pipelined ADCs 114A and 114B, where the pipelined ADCs 114A and 114B perform analog-to-digital conversion on a same analog signal such as the derivative of the analog input signal Vin. As shown in
Please note that the pipelined ADCs 114A and 114B are operated in different residue modes, e.g. Mode A and Mode B, respectively. For example, Mode A and Mode B are predetermined modes defined within the apparatus 100. In another example, Mode A and Mode B are selected by selection signals received from outside the apparatus 100.
As shown in
In this embodiment, the digital module is arranged to receive the digital outputs of the plurality of pipelined ADCs (e.g. the pipelined ADC 114A and 114B), and is arranged to perform the digital calculations on the digital outputs to generate the calibrated digital output Dcal. More particularly, the first and second digital calculation paths mentioned above are arranged to respectively receive the digital outputs of the pipelined ADC 114A and 114B and perform a considerable portion of the digital calculations accordingly, and the difference calculation unit 150 (labeled “Diff.”) is arranged to calculate a difference ΔX between latest values of respective outputs DA, out and DB, out of the first and second digital calculation paths, where the difference ΔX serves as error information for the first and second digital calculation paths. In addition, the average unit 160 (labeled “Avg.”) is arranged to average the latest values of the respective outputs DA, out and DB, out of the first and second digital calculation paths, in order to generate the calibrated digital output Dcal.
Regarding the aforementioned considerable portion of the digital calculations, some implementation details of the first and second digital calculation paths are further described as follows.
According to this embodiment, the estimation unit such as the estimation block 120A is arranged to estimate coefficients {LEAi|i=1, 2, . . . , etc.} and NEA corresponding to errors of the associate pipelined ADC 114A according to the digital codes {DAi|i=1, 2, . . . , etc.} respectively corresponding to the stages 1, 2, . . . , etc. of the pipelined ADC 114A. Here, LEAi (in which LE stands for Linear Error) represents the coefficient corresponding to the linear error of the ith stage of the pipelined ADC 114A, and NEA (in which NE stands for Nonlinear Error) represents the coefficient corresponding to the nonlinear error of the pipelined ADC 114A. More particularly, the linear estimation sub-unit 122A (labeled “Error Est. _linear”) estimates the coefficients {LEAi|i=1, 2, . . . , etc.} according to the digital codes {DAi|i=1, 2, . . . , etc.}, and the nonlinear estimation sub-unit 124A (labeled “PWL Error Est. _nonlinear”) estimates the coefficient NEA according to the digital codes {DAi|i=1, 2, . . . , etc.}. The LMS adaptive processing unit such as the LMS block 130A utilizes the estimated coefficients {LEAi|i=1, 2, . . . , etc.} and NEA to perform LMS adaptive processing.
In practice, the LMS adaptive processing unit such as the LMS block 130A performs the LMS adaptive processing according to the difference ΔX, in order to generate the latest digital estimation values {GD, Ai|i=1, 2, . . . , etc.} of gain values {GAi|i=1, 2, . . . , etc.} of the stages 1, 2, . . . , etc. of the pipelined ADC 114A respectively, and to further generate the latest digital estimation value ρD, A of the nonlinear parameter ρA of the pipelined ADC 114A. More particularly, the linear LMS adaptive processing sub-unit 132A (“LMS_GD, Ai”) generates the latest digital estimation values {GD, Ai|i=1, 2, . . . , etc.} according to the estimated coefficients {LEAi|i=1, 2, . . . , etc.} and the difference ΔX, respectively. In addition, the nonlinear LMS adaptive processing sub-unit 134A (labeled “LMS_ρD, A”) generates the latest digital estimation value ρD, A according to the estimated coefficient NEA and the difference ΔX.
The digital code combination unit 140A (labeled “Digital code combination”) performs a digital code combination on the latest digital estimation values {GD, Ai|i=1, 2, . . . , etc.} of the gain values {GAi|i=1, 2, . . . , etc.}, the latest digital estimation value ρD, A of the nonlinear parameter PA, and the respective digital codes {DAi|i =1, 2, . . . , etc.} of the associated digital output corresponding to the associate pipelined ADC 114A, in order to perform calibration on the aforementioned first digital calculation path.
Similarly, the estimation unit such as the estimation block 120B is arranged to estimate coefficients {LEBi|i=1, 2, . . . , etc.} and NEB corresponding to errors of the associate pipelined ADC 114B according to the digital codes {DBi″i=1, 2, . . . , etc.} respectively corresponding to the stages 1, 2, . . . , etc. of the pipelined ADC 114B. Here, LEBi (in which LE stands for Linear Error) represents the coefficient corresponding to the linear error of the ith stage of the pipelined ADC 114B, and NEB (in which NE stands for Nonlinear Error) represents the coefficient corresponding to the nonlinear error of the pipelined ADC 114B. More particularly, the linear estimation sub-unit 122B (“Error Est. _linear”) estimates the coefficients {LEBi|i=1, 2, . . . , etc.} according to the digital codes {DBi|i=1, 2, . . . , etc.}, and the nonlinear estimation sub-unit 124B (“PWL Error Est. _nonlinear”) estimates the coefficient NEB according to the digital codes {DBi|i=1, 2, . . . , etc.}. The LMS adaptive processing unit such as the LMS block 130B utilizes the estimated coefficients {LEBi|i=1, 2, . . . , etc.} and NEB to perform LMS adaptive processing.
In practice, the LMS adaptive processing unit such as the LMS block 130B performs the LMS adaptive processing according to the difference ΔX, in order to generate the latest digital estimation values {GD, Bi|i=1, 2, . . . , etc.} of gain values {GBi|i=1, 2, . . . , etc.} of the stages 1, 2, . . . , etc. of the pipelined ADC 114B respectively, and to further generate the latest digital estimation value ρD, B of the nonlinear parameter ρB of the pipelined ADC 114B. More particularly, the linear LMS adaptive processing sub-unit 132B (“LMS—GD Bi”) generates the latest digital estimation values {GD, Bi|i=1, 2, . . . , etc.} according to the estimated coefficients {LEBi|i=1, 2, . . . , etc.} and the difference ΔX, respectively. In addition, the nonlinear LMS adaptive processing sub-unit 134B (“LMS_ρD, B”) generates the latest digital estimation value ρD, B according to the estimated coefficient NEB and the difference ΔX.
The digital code combination unit 140B (labeled “Digital code combination”) performs a digital code combination on the latest digital estimation values {GD, Bi|i=1, 2, . . . , etc.} of the gain values {GBi|i =1, 2, . . . , etc.}, the latest digital estimation value ρD, B of the nonlinear parameter ρB, and the respective digital codes {DBi|i=1, 2, . . . , etc.} of the associated digital output corresponding to the associate pipelined ADC 114B, in order to perform calibration on the aforementioned second digital calculation path.
In this embodiment, the nonlinear estimation and the nonlinear LMS adaptive processing are involved. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to a variation of this embodiment, the nonlinear estimation sub-unit 124A (“PWL Error Est. _nonlinear”) and the nonlinear LMS adaptive processing sub-unit 134A (“LMS_ρD, A”) are omitted, where the digital code combination unit 140A of this variation performs the digital code combination on the latest digital estimation values {GD, Ai|i=1, 2, . . . , etc.} of the gain values {GAi|i=1, 2, . . . , etc.} and the respective digital codes {DAi|i=1, 2, . . . , etc.} of the associated digital output corresponding to the associate pipelined ADC 114A, in order to perform calibration on the aforementioned first digital calculation path. Similarly, in this variation, the nonlinear estimation sub-unit 124B (“PWL Error Est. _nonlinear”) and the nonlinear LMS adaptive processing sub-unit 134B (“LMS_ρD, B”) are omitted, where the digital code combination unit 140B of this variation performs the digital code combination on the latest digital estimation values {GD, Bi|i=1, 2, . . . , etc.} of the gain values {GBi|i=1, 2, . . . , etc.} and the respective digital codes {DBi|i=1, 2, . . . , etc.} of the associated digital output corresponding to the associate pipelined ADC 114B, in order to perform calibration on the aforementioned second digital calculation path.
For better comprehension, some details of the method shown in
For example, the linear error analysis model is applied to the pipelined ADC 114A. The notations GA1 and GA2 shown in
In another example, the linear error analysis model is applied to the pipelined ADC 114B. The notations GA1 and GA2 shown in
According to this embodiment, the notations Vres1 and Vres2 represent respective residue values corresponding to the sub-stages 1 and 2. In addition, the backend stages starting from the sub-stage next to the sub-stage 2 are modeled with a block labeled “Backend stages”, which sums up an error term εb and the residue value Vres2 to generate a backend digital value Db. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to a variation of this embodiment, the linear error analysis model may incorporate more than two stages, for example, the sub-stages 1, 2, . . . , W, where the backend stages starting from the sub-stage next to the sub-stage W are modeled with the block labeled “Backend stages”, which sums up the error term εb and the residue value Vres
In this embodiment, the output Dout can be described with the following equation:
D
out
=D
1
+D
2
/G
D1
+D
b/(GD1*GD2) (1);
where Db/(GD1*GD2) can be expressed as follows:
D
b/(GD1*GD2)=(1/(GD1*GD2))*(((Vin−D1)*GA1−D2)*GA2+εb).
If GD1=GA1 and GD2=GA2, then an equation representing ideal AD conversion can be obtained as follows:
D
out
=V
in+εb/(GD1*GD2).
Suppose that GD1 does not match GA1 and GD2 does not match GA2, for example:
G
D1
=G
A1*(1+ε1); and
G
D2
=G
A2*(1+ε2).
Then, Equation (1) can be rewritten as follows:
D
out
=D
1
+D
2/(GA1*(1+ε1))+Db/(GA1*GA2*(1+ε1)*(1+ε2)).
For approximation purpose, certain terms of the above equation can be re-written by using a Taylor expansion as follows:
1/(GA1*(1+ε1))=(1/GA1)*(1−ε1+ε12); and
1/(GA2*(1+ε2))=(1/GA2)*(1−ε2+ε22).
And therefore,
1/(GA1*GA2*(1+ε1)*(1+ε2))=(1/(GA1*GA2))*(1−ε1−ε2+ε12+ε1*ε2+ε22).
As a result, Equation (1) can be re-arranged as follows:
By introducing the following definitions:
D
correct
=D
1
+D
2
/G
A1
+D
b/(GA1*GA2);
LE
1
=D
2
/G
A1
+D
b/(GA1*GA2); and
LE
2
=D
b/(GA1*GA2);
Equation (1) can be rewritten as follows:
D
out
=D
correct−(ε1−ε2)*LE1−(ε2−(ε1*ε2+ε22))*LE2 (2).
For example, when the linear error analysis model is applied to the pipelined ADC 114A, the coefficients {LEAi|i=1, 2, . . . , etc.} are equal to {LEi|i=1, 2, . . . , etc.}, respectively. In another example, when the linear error analysis model is applied to the pipelined ADC 114B, the coefficients {LEBi|i=1, 2, . . . , etc.} are equal to {LEi|i=1, 2, . . . , etc.}, respectively.
According to this embodiment, each ADC output contains the correct codes (e.g. Dcorrect) and the errors stemmed from wrong code weightings such as (1+ε1) and (1+ε2). By adjusting digital weighting taps such as the latest digital estimation values {GD, Ai|i=1, 2, . . . , etc.} and the latest digital estimation values {GD, Bi|i=1, 2, . . . , etc.}, the digital module equalizes the linear errors of the gain values of the pipelined ADCs.
Please note that Equation (2) can be rewritten respectively for the pipelined ADCs 114A and 114B as follows:
D
A, out
=D
A, correct−(εA1εA12)*LEA1−(εA2−(εA1*εA2+εA22))*LEA2; and
D
B, out
=D
B, correct−(εB1−εB12)*LEB1−(εB2−(εB1*εB2+εB22))*LEB2.
In addition, the difference ΔX of this embodiment can be expressed as follows:
ΔX=DB, out−DA, out=f(LEA1, LEA2, LEB1, LEB2, εA1, εA2, εB1, εB2);
where f represents a function.
In general, the difference ΔX can be written as f(LEA1, LEA2, etc., LEB1, LEB2, . . . , etc., εA1, εA2, . . . , etc., εB1, εB2, . . . , etc.). Regarding the LMS adaptive processing mentioned above, the digital module can perform negative gradient estimation according to {LEi|i=1, 2, . . . , etc.}. More particularly, the iterations of the negative gradient estimation can be described according to the following equation:
εi(new)=εi(old)+μi*ΔX*g(LEi, εi(old));
where g represents the negative gradient estimation.
Please note that a1 and a3 represent linear and nonlinear terms with respect to the output voltage Vo1 of the sub-stage 1, respectively. According to the nonlinear error analysis model, the following equations can be obtained:
V
res1
=a
1
*V
o1
−a
3
V
o1
3; and
V
o1
=V
in
−D
1.
For ideal backend analog-to-digital conversion,
Db≅Vres1.
The correction can be expressed as follows:
D
out
=D
1
+G
D
−1*(Db+p*(V̂o1)3) (3).
In addition, for error-free digital outputs, the following conditions are required:
V̂o1≅Vo1, where the arrowhead symbol “̂” represents the estimate value of Vo1;
p=a
1
*a
3; and
GD=a1.
The nonlinear error analysis can be simplified by using a piecewise linear (PWL) module, which divides a curve into several sections and approximates the curve within each section by a linear line, in order to lower the computation complexity.
The target function (i.e. the nonlinear error equation) can be expressed as follows:
G
A1(X)=y=a1*x+a3*x3;
where a3<0 in this embodiment.
Considering the case where x is greater than or equal to ¼, the digital module divides a domain of GA1(X) into three regions, such as Region 1, Region 2, and Region 3.
y=a
1
*x, where ¼≦x<½. For Region 1:
y=(a1+a3/16)*x, where ½≦x<¾. For Region 2:
y=(a1+a3/2)*x−(a3/8), where ¾≦x<1. For Region 3:
Due to the odd symmetry nature of the target function GA1(X), the value of x that falls within the interval [−1, −¼] can be well applied to the above equations with a unary minus modification. In this embodiment, when the value of x falls between −¼ and ¼, it is considered error-free since the corresponding amount of nonlinear error is insignificant.
According to this embodiment, there exists discontinuity between Region 2 and Region 3 for the sake of easier hardware implementation. In practice, a discontinuity value Edis is utilized for covering the discontinuity mentioned above, where the discontinuity value Edis can be expressed as follows:
E
dis=(a3/64).
As the values of x should be estimated during the error correction, the inverse function of GA1(X) is required, and can be expressed as follows:
x=y/a
1 for Region 1;
x=y/(a1+a3/16) for Region 2; and
x=(y+a3/8)/(a1+a3/2) for Region 3.
According to this embodiment, a plurality of estimated values â1 and â3 respectively corresponding to a1 and a3 are generated from an LMS loop of the digital module (e.g. the first digital calculation path or the second digital calculation path mentioned above). The estimated values â1 and â3 are inputted into a digital threshold generator (“Digital threshold gen.”) and a three-line approximation unit (“Three-line approximation”), while the estimated value â3 is further inputted into a cubic look up table (“Cubic L.U.T”). As shown in
More particularly, in this embodiment, the digital threshold generator generates a plurality of digital thresholds, and provides the three-line approximation unit with the digital thresholds, where the digital thresholds are utilized for dividing the domain of GA1(X) into the three regions, such as Region 1, Region 2, and Region 3. In addition, the three-line approximation unit performs the piecewise linear compensation scheme according to the backend digital value Db and the digital thresholds from the digital threshold generator, in order to generate the estimated value V̂o1 corresponding to the output voltage Vo1. Then, the cubic look up table performs a look-up operation according to the estimated value V̂o1 and the estimated value â3 to generate an estimated error Ê. As a result, an adder sums up the estimated error Ê and the backend digital value Db to generate Dcorrect, which represents a correct code in this embodiment.
Regarding the nonlinear error correction, Equation (3) can be written as follows:
where:
LE
a1=(Db/a1); and
NE
a=(a3/a1)*(V̂o1)3.
Similarly, the difference ΔX of this embodiment can be expressed as follows:
ΔX=DB, out−DA, out=fn(LEA1, NEA, LEB1, NEB, εa1, εa3, εb1, εb3);
where fn represents a function.
In addition, the associated iterations can be described according to the following equation:
εa,b 3(new)=εa,b 3(old)+μ*ΔX*gn(NEA, NEB, εa,b 3(old)).
where gn represents the negative gradient estimation.
In contrast to the related art, the present invention method and apparatus can achieve high speed during analog-to-digital conversion without degrading accuracy.
It is another advantage of the claimed invention that the present invention method and apparatus can be implemented in a cost-efficient manner.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention.