Linearization of Digital-to-Analog Converters (DACs) and Analog-to-Digital Converters (ADCs) and Associated Methods

20220006465 · 2022-01-06

Assignee

Inventors

Cpc classification

International classification

Abstract

Systems and methods for processing and storing digital information are described. One embodiment includes a method for linearizing digital-to-analog conversion including: receiving an input digital signal; segmenting the input digital signal into several segments, each segment being thermometer-coded; generating a redundant representation of each of the several segments, defining several redundant segments; performing a redundancy mapping for the several segments, defining redundantly mapped segments; assigning a probabilistic assignment for redundantly mapped segments; converting each redundantly mapped segment into an analog signal by a sub-digital-to-analog converter (DAC); and combining the analog signals to define an output analog signal.

Claims

1. A method for linearizing digital-to-analog conversion comprising: receive, at a digital-to-analog converter (DAC) an input digital word; decompose the input digital word into a plurality of segments; generate a redundant representation of each of the plurality of segments; generate a redundant mapping of the redundant representation of each of the plurality of segments, defining a plurality of redundantly mapped segments; assigning a first probability for selecting the plurality of segments; assigning a second probability for selecting the plurality of redundantly mapped segments; selecting, with the first probability, the plurality of segments and, with the second probability, the plurality of redundantly mapped segments; converting the selected segments into analog signals by a plurality of sub-DACs; and combining the analog signals to define an output analog signal.

2. The method of claim 1, further comprising selecting between a plurality of mappings with probabilities of each mapping determined based on a number of bits of the DAC.

3. The method of claim 1, wherein performing the redundancy mapping comprises performing a recursive redundancy mapping sequentially over pairs of segments.

4. The method of claim 3, wherein each intermediate segment undergoes two mappings x_k.fwdarw.u_k.fwdarw.v_k, with a first mapping as a most-significant-bit (MSB) segment and a second mapping as a least significant bit (LSB) segment of a two-segment pair.

5. The method of claim 4, wherein a resolution of an MSB sub-DAC is unchanged and a resolution of all other sub-DACs is increased by at least one bit.

6. The method of claim 1, wherein the DAC is a B-bit binary DAC with B binary weighted elements.

7. The method of claim 1, wherein each of the plurality of segments is thermometer-coded.

8. The method of claim 1, wherein each of the plurality of segments is converted into an analog signal with a sub-DAC, wherein a resolution of each sub-DAC associated with intermediate segment pairs is at least one bit greater than the resolution of a sub-DAC for a first segment pair.

9. The method of claim 1, wherein the DAC is at least one DAC selected from the group consisting of a binary DAC, a thermometer coded DAC, a dynamic element matching (DEM) DAC, and a segmented DAC.

10. A system for linearizing analog-to-digital conversion, comprising: a comparator positioned to receive an analog signal as a first input; a successive approximation register positioned to receive as an input the output of the comparator and configured to generate an output comprising B bits; and a digital-to-analog converter (DAC) configured to: receive, at a digital-to-analog converter (DAC) an input digital word; decompose the input digital word into a plurality of segments; generate a redundant representation of each of the plurality of segments; generate a redundant mapping of the redundant representation of each of the plurality of segments, defining a plurality of redundantly mapped segments; assigning a first probability for selecting the plurality of segments; assigning a second probability for selecting the plurality of redundantly mapped segments; selecting, with the first probability, the plurality of segments and with the second probability, the plurality of redundantly mapped segments; converting the selected segments into analog signals by a plurality of sub-DACs; and combining the analog signals to define an output analog signal.

11. The system of claim 10, further comprising selecting between a plurality of mappings with probabilities of each mapping determined based on a number of bits of the DAC.

12. The system of claim 10, wherein performing the redundancy mapping comprises performing a recursive redundancy mapping sequentially over pairs of segments.

13. The system of claim 12, wherein each intermediate segment undergoes two mappings x_k.fwdarw.u_k.fwdarw.v_k, with a first mapping as a most-significant-bit (MSB) segment and a second mapping as a least significant bit (LSB) segment of a two-segment pair.

14. The system of claim 13, wherein a resolution of an MSB sub-DAC is unchanged and a resolution of all other sub-DACs is increased by at least one bit.

15. The system of claim 10, wherein the DAC is a B-bit binary DAC with B binary weighted elements.

16. The system of claim 10, wherein each of the plurality of segments is thermometer-coded.

17. The system of claim 10, wherein each of the plurality of segments is converted into an analog signal with a sub-DAC, wherein a resolution of each sub-DAC associated with intermediate segment pairs is at least one bit greater than the resolution of a sub-DAC for a first segment pair.

18. The system of claim 10, wherein the DAC is at least one DAC selected from the group consisting of a binary DAC, a thermometer coded DAC, a dynamic element matching (DEM) DAC, and a segmented DAC.

Description

DESCRIPTION OF THE DRAWINGS

[0032] FIG. 1 are graphs of a typical DAC outputs (stepwise NRZ and RZ) and the resulting graph of the application of a low-pass filter as known in the art.

[0033] FIG. 2 is a graph of differential non-linearity and integral non-linearity as compared to an ideal transfer function as known in the art.

[0034] FIG. 3 is a diagram of a four-bit binary DAC as known in the art.

[0035] FIG. 4 is a three-bit thermometer DAC comprising seven-unit elements.

[0036] FIG. 5A is a two-segment six-bit DAC with a three-bit thermometer coded most significant bit and three-bit binary coded least significant bit.

[0037] FIG. 5B is a graph of the transfer function of the DAC of FIG. 5A.

[0038] FIG. 6 is an output spectrum of a Nyquist DAC with a single-tone sine-wave input.

[0039] FIG. 7 is an architecture for a single ended four-bit thermometer coded DAC.

[0040] FIG. 8 is a differential DAC architecture for a complementary output DAC to the architecture of FIG. 7.

[0041] FIG. 9 is a plotting of the multiple analog output values of a DAC.

[0042] FIG. 10 is a schematic view of a four-bit thermometer DEM DAC.

[0043] FIG. 11 is a graph of an ideal transfer function and a linearized DEM DAC.

[0044] FIG. 12 is a graph demonstrating a higher resolution DAC implemented by combining the outputs of several smaller sub-DACs.

[0045] FIG. 13 is a schematic view of an implementation of a multi-segment DAC.

[0046] FIG. 14 is a graph a DAC transfer function with normal mapping according to an embodiment of the invention.

[0047] FIG. 15 is a graph of a DAC transfer function with redundant mapping according to an embodiment of the invention.

[0048] FIG. 16 is a graph of the probabilistic assignment between DAC transfer functions with respective normal and redundant mapping according to an embodiment of the invention.

[0049] FIG. 17 is a schematic view of an implementation of a two-segment DAC with redundancy and probabilistic mapping according to an embodiment of the invention.

[0050] FIG. 18 is a schematic view of an implementation of four-segment linearization utilizing sequential pairwise operations according to an embodiment of the invention.

[0051] FIG. 19 is an architecture of a B-bit Successive Approximation Register ADC according to an embodiment of the invention.

[0052] FIG. 20 is a representation of the generation of SAR register values in a four-bit SAR Time Trellis from DAC voltages according to an embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0053] Turning now to the drawings, systems and methods for using redundancy mapping in DACs and ADCs in accordance with various embodiments of the invention are illustrated. In many embodiments, the system can select between multiple alternative mappings (at least two) with probabilities of each mapping determined based upon the number of bits of the DAC, and in a manner that can be independent of mismatch of the components. In many embodiments, the redundancy mapping probabilistic assignment can generate better linearity for the DACs as the linearization may not depend on component mismatches, and thus information about mismatches may not be needed as discussed in detail below. In particular, in many embodiments, mismatches can be converted to random noise that is distributed evenly over the Nyquist band. In certain embodiments, the linearization can be feed-forward and occur in the digital domain.

[0054] In many embodiments, the redundancy mapping techniques can be applied to ADCs, including Successive Approximation Register (SAR) ADCs. In many embodiments, the resolutions can range from 10 to 18 bits with speeds up to 20 MS/s. In many embodiments, a SAR architecture can result in low power consumption and small area and can be utilized for a wide variety of applications.

[0055] Different types of DACs and techniques to improve linearity have been used in the art, including conventional binary DACs, thermometer coded DACs, dynamic element matching (DEM) DACs, and segmented DACs, including two segment DACs, among others. A conventional DAC provides a binary architecture, where each binary input bit corresponds to a binary weighted element (voltage, current or charge). A B-bit Thermometer-coded DAC has 2B−1 unit elements, where the unit elements can be switched on or off in a certain sequence according to an input digital code, and can reduce INL/DNL. A DEM DAC may use a thermometer code that represents a natural number w with w ones followed by N-w zeros. A thermometer coded DAC may include N identical unit elements U.sub.1:N that can be turned on (activated) or off (deactivated) by N thermometer codes that represent the digital input word x. In a segmented DAC architecture, an input digital code is separated into multiple segments and each segment is converted into an analog signal with a sub-DAC. The segments are scaled and combined to create the overall transfer function.

[0056] As discussed in detail below, a problem of segmenting the bits to a sub-DACs can be a design compromise between complexity and performance. While a nearly-perfectly linear DAC can be realized by using only one segment and DEM, it may not be practical for high-resolution DACs. More bits in the DEM thermometer MSB sub-DAC can improve linearity but also increases the complexity. The benefits of using multiple thermometer segments with DEM can be greatly diminished as the inter-segment unit-element mismatch (β.sub.i≠β.sub.j) and the inter-segment scaling errors (N.sub.k′≠2.sup.B.sup.k) introduce nonlinearities. Thus, the most commonly used topology is a two segment DAC with a thermometer coded MSB segment and a binary coded LSB segment. Implementing high-speed DACs with nonlinearity better than 12-bits may be difficult.

[0057] There is an impact of mismatch in analog circuits. Thermal noise, quantization noise, mismatch and nonlinearity can be the main contributors to inaccuracies of analog circuits and impose minimum requirements on device area and power. Thermal noise is white and can benefit from averaging. Similarly, a well-designed quantizer has quantization noise that is white. Quantization noise also benefits from averaging and oversampling. Both thermal and quantization noise are expressed in dBc/Hz which is a measure of how the noise power is spectrally distributed over the Nyquist bandwidth. For narrow band systems, the integrated thermal and quantization noise over the receiver bandwidth is directly related to the receiver SNR. Typically, sources of nonlinearity are input buffers, amplifiers, and output drivers whose linearity can be modeled as a smooth polynomial function of lower order. The spurs caused by smooth polynomial approximations result in predictable harmonics at multiples of the fundamental frequency. Their effect in narrow band systems can be mitigated by proper frequency planning.

[0058] Mismatch is a phenomenon where identically designed devices (resistors, capacitors, MOS transistors) are not identical. Threshold voltage differences ΔVT and current factor differences Δβ are the dominant sources of mismatches in devices. Both ΔVT and Δβ are unknown during design but fixed (and still unknown) after fabrication. Anecdotal evidence and a wealth of measurement data show that mismatch generally improves with increased device area. Thus, quadrupling the area reduces mismatch by one bit. However, sizing current source transistors to match in excess of 14-bits may be impractical and can result in large parasitic capacitance.

[0059] Nonlinearity is mainly caused by mismatches that may be random, systematic, or a combination of both. The mismatches can be caused by differences between wafers, with a wafer, within a chip or between devices. The mismatches can be systematic (follow gradients) or are completely random. While systematic mismatches can usually be mitigated with layout methodologies and a choice of circuit architectures, the random mismatches due to the stochastic nature of physical geometry and doping cannot be avoided. Additionally, the current sources are strongly temperature dependent which can greatly exacerbate the problem. Random mismatches can result in performance that is predictably unpredictable.

[0060] In analog circuits, the receiver sensitivity is defined as the smallest signal that can be correctly processed in the presence of noise. Devices have to be sized to meet the RX sensitivity specifications. Increasing size negatively impacts speed and power because of larger capacitance. For a given bandwidth and accuracy, the limit on minimum power consumption imposed by device matching is about two orders of magnitude larger than the limit imposed by noise for deep submicron CMOS processes. Thus, it is device mismatch and not thermal noise that sets the limit on the smallest analog signal that can be processed.

[0061] Conventional DAC Architectures

[0062] In a binary architecture, each binary input bit corresponds to a binary-weighted element (voltage, current or charge). An advantage of binary architecture is its simplicity and low implementation cost. However, the large ratio between the least significant element and the most significant element may cause a large mismatch between them. This can result in large DNL and INL errors. A typical 4-bit binary DAC architecture is shown in FIG. 3. A way to improve non-linearity in a binary DAC architecture is to reduce mismatches of the unit elements.

[0063] To overcome drawbacks of the binary DAC architecture, a thermometer-coded DAC architecture has been developed. A B-bit thermometer-coded DAC has 2B−1 unit elements. For example, a 3-bit thermometer DAC with seven-unit elements is shown in FIG. 4. These unit elements are switched on or off in a certain sequence according to the input digital code. Compared to the binary-coded architecture, the thermometer coded architecture reduces the INL/DNL at the expense of significant increase of implementation cost.

[0064] In a segmented architecture, an input digital code is separated into multiple segments and each segment is converted into an analog signal with a sub-DAC. The segments are scaled and combined to create the overall transfer function. The transfer function of a 2-segment DAC (e.g. 6-bit DAC in FIG. 5A) is shown in FIG. 5B. The segmented architecture balances the pros and cons of LSB binary segment and a thermometer MSB segment and is a widely used architecture in DAC design. The unit elements can be current sources, capacitors, resistors, or a combination.

[0065] The output spectrum of a Nyquist DAC with a single-tone sine-wave input is shown in FIG. 6. As shown in the plot, there are harmonics at integer multiples of the fundamental frequency and a myriad of other frequency components which are due to the non-linearity (INL and DNL) of the DAC. The amplitude and location of the DNL spurs are unpredictable and depend on the input amplitude and frequency. Thus, non-linearity may be a key performance metric for DAC design.

[0066] Dynamic Element Matching

[0067] Much research has been devoted over the past several decades to improve the DAC non-linearity performance. It is well known that mismatches in the unit cells leads to unequal step sizes (DNL) in the DAC transfer function and causes spurs in the output spectrum. Dynamic Element Matching (DEM) is a well-known and widely used technique to linearize thermometer DACs and eliminate DNL in the presence of mismatches.

[0068] For DEM, a thermometer code T.sub.1:N represents a natural number w with w ones followed by N-w zeros. A thermometer coded DAC may comprise, or in some embodiments consists of, N identical unit elements U.sub.1:N that can be turned on (activated) or off (deactivated) by N thermometer codes that represent the digital input word x. In an unsigned representation x=w and in a signed representation x=2w−N. An example of the thermometer representation of a 3-bit natural number is shown in Table 1. The outputs of the N unit elements can be combined together in a DAC output network.

TABLE-US-00001 TABLE 1 3-bit Thermometer Code Representation Bits 000 001 010 011 100 101 110 111 w 0 1 2 3 4 5 6 7 T 0000000 100000 1100000 1110000 1111000 1111100 1111110 1111111 2w − N −7 −5 −3 −1 1 3 5 7

[0069] For a thermometer code of weight w, w unit elements are turned on or off by the thermometer codes representing the input x=w. The smallest output occurs when all unit elements are turned off and the largest output value occurs when all unit elements are turned on. In general, the unit cells will not be identical and can be represented as U.sub.k=U+ΔU.sub.k=U(1+ϵ.sub.k) where U is the nominal value, ΔU.sub.k is the deviation from the nominal value, and E.sub.k is the relative mismatch ΔU.sub.k/U.

[0070] In a single ended DAC each thermometer code represents a ‘1’ or a ‘0’ and each unit element is either switched to the load resistor or to ground as shown in FIG. 7. In the ideal case, all unit cells are identical and U.sub.k=U for all k. In the absence of mismatch, the single ended output is given by:


y=Σ.sub.k=1.sup.NT.sub.kU.sub.k=Σ.sub.k−1.sup.w(1)U+Σ.sub.k=w+1.sup.N(0)U=wU

[0071] The input-output transfer function is a linear function.

[0072] For a complementary output DAC shown in FIG. 8, each thermometer code represents a ‘1’ when activated or a ‘−1’ when deactivated, and the corresponding unit element is either switched to a positive or a negative load resistor. The complementary output is given by:


y=Σ.sub.k=1.sup.NT.sub.kU.sub.k=Σ.sub.k−1.sup.w(1)U+Σ.sub.k=w+1.sup.N(−1)U=(2w−N)U

[0073] In the ideal case, the complementary output is also a linear function of the input.

[0074] In DEM, different thermometer codes with the same weight ware used to represent successive occurrences of the same input in a random fashion. In other words, a different set of w elements

[00001] ( N w )

are activated on successive appearances of the same digital input code. As shown in FIG. 9, the same digital

[00002] ( N w )

input can potentially have multiple analog output values since there are

[00003] ( N w )

ways to activate w elements out of N elements. Scrambling ensures that the permutations are uniformly chosen in a random fashion. The ensemble averaged output of the permutations approximate and resemble a perfectly linear DAC. DEM linearizes the average transfer function by decorrelating the error in the DAC output and the input. It is the average transfer function that determines the spurs in the output spectrum. While DEM results in a slight degradation in SNR, the improvement in SFDR can be very significant.

[0075] A 4-bit DEM DAC is shown in FIG. 10. The 4-bit digital code is converted to a 15-bit thermometer code T.sub.1:15. The number of elements activated by the thermometer bits is proportional to the input digital code. The thermometer code is scrambled (a permutation operation) that randomizes the location of the active elements but keeps the number of active elements unchanged. The scrambled thermometer code activates and deactivates the corresponding unit elements. The unit elements are combined in the DAC Output Network to create the output.

[0076] The average transfer function of a DEM DAC will be described. Simple combinatorial analysis shows that there is a total of

[00004] ( N w )

ways to activate w elements out of N elements. The expected value of the output when w unit elements are activated can be found by first calculating the probability P.sub.w(T.sub.k=1) of activating a bit at the k.sup.th location and the probability P.sub.w(T.sub.k=0) of deactivating a bit at the k.sup.th location. There are

[00005] ( N - 1 w )

ways to activate an element at the k.sup.th location for a thermometer code of weight w. Since w elements always must be activated, this is equivalent to activating an additional w−1 elements at the remaining N−1 potential locations once the k.sup.th location is activated. Similarly, there are

[00006] ( N - 1 w - 1 )

ways to deactivate an element at the k.sup.th location of a thermometer code. This is equivalent to activating w elements at N−1 potential locations after the k.sup.th location is deactivated. Thus, one can calculate the probabilities of activating or deactivating the k.sup.th bit as:

[00007] P w ( T k = 1 ) = ( N - 1 w - 1 ) / ( N w ) = w N and P w ( T k = 0 ) = ( N - 1 w ) / ( N w ) = N - w N

[0077] The output of the DAC is given by:

[00008] y = .Math. k = 1 N T k .Math. U k

[0078] By performing the expectation over the

[00009] ( N w )

values, the average complementary output is:

[00010] y _ = E [ y ] = E [ .Math. k = 1 N T k .Math. U k ] = .Math. k = 1 N E [ T k ] .Math. U k = .Math. k = 1 N P w ( T k = 1 ) .Math. ( 1 ) .Math. U k + P k ( T k = 0 ) .Math. ( - 1 ) .Math. U k

[0079] Substituting for the probabilities P.sub.w(T.sub.k=1) and P.sub.w(T.sub.k=0) from equations (1) & (2) (found below) and noting that U.sub.k=U(1+ϵ.sub.k) to account for unit cell mismatches, it is obtained:

[00011] E [ y ] = ( 2 w - N ) .Math. U .Math. ( 1 + 1 N .Math. k = 1 N ϵ k ) = ( 2 w - N ) .Math. U .Math. ( 1 + α )

where

[00012] α = ( 1 N .Math. k = 1 N ϵ k ) or ( 2 ) y _ = x .Math. U .Math. ( 1 + α ) ( 3 )

[0080] Here, α is the average mismatch of the unit elements and is a constant for a given unit element mismatch profile. The average output of the DEM DAC is linearly proportional to its input x=2w−N. The scaling factor of (1+α) is a gain error when compared to the output of an ideal DAC. The ideal and DEM transfer functions of a 3-bit DAC are shown in FIG. 11. Since it is a linear system, the error is also proportional to the input. The unit element U is assumed to be 1 henceforth without any loss in generality.

[0081] Segmented DACs

[0082] A fully thermometer coded DAC with DEM is typically linear. A B-bit thermometer DAC requires 2.sup.B−1 unit elements. The cost and power of a fully thermometer coded DAC grows exponentially with the number of bits. So, a full thermometer implementation is seldom used beyond 8 bits. In a segmented DAC, the B-bit input digital word x is decomposed into m-segments x.sub.1, x.sub.2, . . . , x.sub.m with bits B.sub.1, B.sub.2, . . . , B.sub.m such that B=B.sub.1+B.sub.2+ . . . +B.sub.m. The first sub-DAC handles the first B.sub.1 bits, the second sub-DAC handles the next B.sub.2 bits, and the m.sup.th sub-DAC handles the last B.sub.m bits. The segmented DAC requires only (2.sup.B.sup.1−1)+(2.sup.B.sup.2−1)+ . . . +(2.sup.B.sup.m−1) unit elements. Thus, segmentation can result in a significant reduction in complexity. The higher resolution DAC is implemented by combining the outputs of several smaller sub-DACs as shown in FIG. 13.

[0083] The B-bit digital input x is associated with the inputs of the m-segments as a binary weighted summation:

[00013] x = x 1 + x 2 N 2 + x 3 N 2 .Math. N 3 + .Math. + x m N 2 .Math. N 3 .Math. N m ( 4 )

where N.sub.2=2.sup.B.sup.2, N.sub.3=2.sup.B.sup.3, . . . , N.sub.m=2.sup.B.sup.m and the output of the DAC is a weighted combination of the outputs of the m sub-DACs:

[00014] y _ = y _ 1 + y _ 2 N 2 + y _ 3 N 2 .Math. N 3 + .Math. + y _ m N 2 .Math. N 3 .Math. N m ( 5 )

[0084] When there are no mismatches, the output of each sub-DAC equals its input, and y.sub.k=x.sub.k∀k∈[1, . . . , m]. The output of the ideal DAC is equal to its B-bit digital input x

[00015] y ideal = x 1 + x 2 N 2 + x 3 N 2 .Math. N 3 + .Math. + x m N 2 .Math. N 3 .Math. N m = x

[0085] In the case of non-ideal implementations each, sub-DAC can employ DEM for linearization. The average output of i.sup.th sub-DAC is given by y.sub.i=x.sub.i.Math.(1+α.sub.i) where α.sub.i is the average mismatch of the unit elements in the i.sup.th sub-DAC. The output of the DAC is given by:

[00016] y _ = x 1 .Math. ( 1 + α 1 ) + x 2 + ( 1 + α 2 ) N 2 + x 3 .Math. ( 1 + α 3 ) N 2 .Math. N 3 + .Math. + x m .Math. ( 1 + α m ) N 2 .Math. N 3 .Math. N m y _ = x + x 1 .Math. α 1 + x 2 .Math. α 2 N 2 + x 3 .Math. α 3 N 2 .Math. N 3 + .Math. + x m .Math. α m N 2 .Math. N 3 .Math. N m .Math. x

[0086] Since the α.sub.i are different for each segment the error term ε is not linearly related to the input x, that is ε.sub.x≠kx for any k, hence, the output is not a linear function of x.

[0087] In the presence of mismatch, combining the output of the sub-DACs after segmentation re-introduces nonlinearity into the transfer function. Even though the individual thermometer segments are linearized by DEM, combining the outputs of the linear sub-DACs will not be linear. Therefore, for higher resolution DACs, a segmented architecture is a compromise approach that balances accuracy, speed, cost and power at the expense of nonlinearity.

[0088] The output of the DAC can also be written as:

[00017] y = y 1 + 1 N 2 ( y 2 + 1 N 3 ( y 3 + .Math. + 1 N m - 2 ( y m - 2 + 1 N m - 1 ( y m - 1 + y m N m ) ) Two Segment Two Segment ) ) ( 6 )

[0089] Each segment is scaled and combined with the segment preceding it. Thus, it is useful to analyze the performance of a two-segment DAC in the presence of mismatches. The results can be extended to multiple segments by the nested nature of the computations in Eq. (6).

[0090] Non-Linearity of Two Segment DAC

[0091] In a two segment DAC, the most significant B.sub.1 bits are associated with the first segment and the remaining least significant B.sub.2 bits are associated with the second segment. In the presence of mismatches, the outputs of the linearized sub-DACs are given by y.sub.i=x.sub.1(1+β.sub.1) and y.sub.2=x.sub.2(1+β.sub.2) where the βs represent the average unit-element mismatch in each segment. N.sub.2′=N.sub.2 (1+γ.sub.2) is the scaling factor with mismatch where γ.sub.2 represents the deviation from the ideal power-of-two values. The output of the DAC can be written as:

[00018] y = y 1 + y 2 N 2 = x 1 ( 1 + β 1 ) + x 2 ( 1 + β 2 ) N 2 ( 1 + γ 2 ) = ( 1 + β 1 ) ( x 1 + x 2 ( 1 + α 2 ) N 2 )

where α.sub.2 is a parameter that consolidates the impact of all the mismatches. (1+β.sub.1) is a gain factor that changes the full scale of the DAC but does not impact the linearity of the DAC. The transfer function of an m-segment DAC is shown in FIG. 12.

[0092] The problem of segmenting the bits to the sub-DACs is a design compromise between complexity and performance. While a nearly-perfectly linear DAC can be realized by using only one segment and DEM, it may not be practical for high-resolution DACs. More bits in the DEM thermometer MSB sub-DAC improves linearity but also increases the complexity. The benefits of using multiple thermometer segments with DEM are greatly diminished as the inter-segment unit-element mismatch (β.sub.i≠β.sub.j) and the inter-segment scaling errors (N.sub.k′≠2.sup.B.sup.k) introduce nonlinearities. Thus, the most commonly used topology is a two segment DAC with a thermometer coded MSB segment and a binary coded LSB segment. Implementing high-speed DACs with nonlinearity better than 12-bits may be difficult.

[0093] DAC with Redundancy Mapping

[0094] With reference to FIGS. 14-20, the system, device and method according to features of the present embodiments will be described. Many embodiments can significantly reduce a non-linearity of a DAC and remove the conventional trade-offs between performance and complexity.

[0095] In a two-segment DAC, the input x can be decomposed into two segments (x.sub.1, x.sub.2) and

[00019] x = f ( x 1 , x 2 ) = x 1 + x 2 N 2

(x.sub.1′, x.sub.2′) is a redundant representation of the input x if

[00020] f ( x 1 , x 2 ) = x 1 + x 2 N 2 = x

[0096] Consider the mapping (x.sub.1, x.sub.2).fwdarw.(x.sub.1′, x.sub.2′) defined as


x.sub.1′=x.sub.1+δx.sub.1.Math.sgn(x.sub.2)x.sub.2′=(|x.sub.2|−N.sub.2.Math.δx.sub.1).Math.sgn(x.sub.2)  (6)

[0097] Substituting for x.sub.1′ and x.sub.2′, the following is obtained

[00021] f ( x 1 , x 2 ) = x 1 + δ x 1 .Math. sgn ( x 2 ) x 1 + ( .Math. x 2 .Math. - N 2 .Math. δ x 1 ) .Math. sgn ( x 2 ) x 2 N 2 = x 1 + x 2 N 2 = x

[0098] x.sub.1 takes on values between −N.sub.1+1 and N.sub.1−1 in steps of 2. By choosing δx.sub.1=2 the mapping (x.sub.1, x.sub.2).fwdarw.x.sub.1′ is an increment or decrement operation. The mapping to x.sub.2′ is shown in the Table 2 for a 3-bit sub-DAC with N.sub.2=8 and N.sub.2.Math.δx.sub.1=16. Since |x.sub.2|<N.sub.2.Math.δx.sub.1, x.sub.2 and x.sub.2′ always have opposite signs.

TABLE-US-00002 TABLE 2 Redundancy Mapping x.sub.2 −7 −5 −3 −1 1 3 5 7 x′.sub.2 9 11 13 15 −15 −13 −11 −9 x′.sub.1 x.sub.1 − 2 x.sub.1 − 2 x.sub.1 − 2 x.sub.1 − 2 x.sub.1 + 2 x.sub.1 + 2 x.sub.1 + 2 x.sub.1 + 2

[0099] In a DAC output for redundant inputs, the output of the DAC for input x.fwdarw.(x.sub.1, x.sub.2) is given by:

[00022] y = ( 1 + β 1 ) .Math. ( x 1 + x 2 ( 1 + α 2 ) N 2 ) = ( 1 + β 1 ) .Math. ( x + α 2 N 2 .Math. x 2 e )

[0100] For a redundant representation x.fwdarw.(x.sub.1′, x.sub.2′), the output of the DAC is given by:

[00023] y = ( 1 + β 1 ) .Math. ( x 1 + x 2 ( 1 + α 2 ) N 2 ) = ( 1 + β 1 ) .Math. ( x + α 2 N 2 .Math. x 2 e )

[0101] The transfer functions for y 1400 and y′ 1500 are shown in FIGS. 14 and 15, respectively. Clearly, in a DAC with mismatches, y′≠y≠x although x′=x.

[0102] Let p be the probability of choosing the representation (x.sub.1, x.sub.2), and p′=1−p be the probability of choosing the redundant representation (x.sub.1′, x.sub.2′). For any input x, the output of the DAC can assume a value of y with a probability of p or a value of y′ with a probability of p′. The average value of the DAC output is given by the expected value of y

[00024] y avg = E [ y ] = p .Math. y + p .Math. y = ( 1 + β 1 ) .Math. [ x + α 2 N 2 .Math. ( p .Math. x 2 + p .Math. x 2 ) ]

[0103] As noted earlier, x.sub.2 and x.sub.2′ always have opposite polarities, so sgn(x.sub.2′)=−sgn(x.sub.2). Therefore, it is possible to find a set of non-negative weights w and w′ such that the weighted sum w.Math.x.sub.2+w′.Math.x.sub.2′=0. It is easy to see that, by choosing w=|x.sub.2′| and w′=|x.sub.2| and using the identity x=|x|.Math.sgn(x), the weighted sum becomes |x.sub.2|.Math.|x.sub.2′|.Math.[sgn(x.sub.2)+sgn(x.sub.2′)] which is always zero. Furthermore, normalizing the weights as

[00025] w = .Math. x 2 .Math. .Math. x 2 .Math. + .Math. x 2 .Math. and w = .Math. x 2 .Math. .Math. x 2 .Math. + .Math. x 2 .Math.

also results in a zero weighted sum, and w=1−w′.

[0104] By choosing the probabilities p and p′ as:

[00026] p = .Math. x 2 .Math. .Math. x 2 .Math. + .Math. x 2 .Math. .fwdarw. probability of choosing ( x 1 , x 2 ) p = 1 - p = .Math. x 2 .Math. .Math. x 2 .Math. + .Math. x 2 .Math. .fwdarw. probability of choosing ( x 1 , x 2 ) ( 7 )

with the sum p.Math.x.sub.2+p′.Math.x.sub.2′ is always zero and


y.sub.avg=E[y]=(1+β.sub.1).Math.x

[0105] Thus, by selecting (x.sub.1, x.sub.2) with a probability of p 1610 and selecting (x.sub.1′, x.sub.2′) with a probability of p′ 1620, the average output 1600 of the DAC may be perfectly linear as shown in FIG. 16. The DAC errors e and e′ are proportional to x.sub.2 and x.sub.2′. It follows that a zero weighted sum also results in a zero average DAC error. The linearization is achieved through a combination of redundant mapping and probabilistic assignment. The architecture for a 2-segment DAC accomplishing such linearization is shown in FIG. 17 and will be discussed hereinbelow.

[0106] The probability p depends only on the value of x.sub.2 and does not depend on the mismatches of the sub-DACs. Substituting for x we obtain:

[00027] p = .Math. x 2 .Math. N 2 .Math. δ x 1 p = 1 - p = N 2 .Math. δ x 1 - .Math. x 2 .Math. N 2 .Math. δ x 1

[0107] The probabilities p and p′ for a 1-bit DAC are shown in Table 1.

TABLE-US-00003 TABLE 1 Probability Assignment for a 1-bit sub-DAC x.sub.2 −1 1 x′.sub.2 3 −3 p 3/4 3/4 p′ 1/4 1/4

[0108] The probabilities p and p′ for a 2-bit DAC are shown in Table 2.

TABLE-US-00004 TABLE 2 Probability Assignment for a 2-bit sub-DAC x.sub.2 −3 −1 1 3 x′.sub.2 5 7 −7 −5 p 5/8 7/8 7/8 5/8 p′ 3/8 1/8 1/8 3/8

[0109] The probabilities p and p′ for a 3-bit DAC are shown in Table 3.

TABLE-US-00005 TABLE 3 Probability Assignment for a 3-bit sub-DAC x.sub.2 −7 −5 −3 −1 1 3 5 7 x′.sub.2 9 11 13 15 −15 −13 −11 −9 p 9/16 11/16 13/16 15/16 15/16 13/16 11/16 9/16 p′ 7/16  5/16  3/16  1/16  1/16  3/16  5/16 7/16

[0110] The probabilities p and p′ for a 4-bit DAC are shown in Table 4.

TABLE-US-00006 TABLE 4 Probability Assignment for a 4-bit sub-DAC x.sub.2 −15 −13 −11 −9 −7 −5 −3 −1 x′.sub.2 17 19 21 23 25 27 29 31 p 17/32 19/32 21/32 23/32 25/32 27/32 29/32 31/32 p′ 15/32 13/32 11/32  9/32  7/32  5/32  3/32  1/32 x.sub.2 1 3 5 7 9 11 13 15 x′.sub.2 −31 −29 −27 −25 −23 −21 −19 −17 p 31/32 29/32 27/32 25/32 23/32 21/32 19/32 17/32 p′  1/32  3/32  5/32  7/32  9/32 11/32 13/32 15/32

[0111] The probabilities p and p′ for a 5-bit DAC are shown in Table 5.

TABLE-US-00007 TABLE 5 Probability Assignment for a 5-bit sub-DAC x.sub.2 −31 −29 −27 −25 −23 −21 −19 −17 x′.sub.2 33 35 37 39 41 43 45 47 p 33/64 35/64 37/64 39/64 41/64 43/64 45/64 47/64 p′ 31/64 29/64 27/64 25/64 23/64 21/64 19/64 17/64 x.sub.2 −15 −13 −11 −9 −7 −5 −3 −1 x′.sub.2 49 51 53 55 57 59 61 63 p 49/64 51/64 53/64 55/64 57/64 59/64 61/64 63/64 p′ 15/64 13/64 11/64  9/64  7/64  5/64  3/64  1/64 x.sub.2 1 3 5 7 9 11 13 15 x′.sub.2 −63 −61 −59 −57 −55 −53 −51 −49 p 63/64 61/64 59/64 57/64 55/64 53/64 51/64 49/64 p′  1/64  3/64  5/64  7/64  9/64 11/64 13/64 15/64 x.sub.2 17 19 21 23 25 27 29 31 x′.sub.2 −47 −45 −43 −41 −39 −37 −35 −33 p 47/64 45/64 43/64 41/64 39/64 37/64 35/64 33/64 p′ 17/64 19/64 21/64 23/64 25/64 27/64 29/64 31/64

[0112] The probabilities p and p′ for a 6-bit DAC are shown in Table 6.

TABLE-US-00008 TABLE 6 Probability Assignment for a 6-bit sub-DAC x.sub.2 −63 −61 −59 −57 −55 −53 −51 −49 x′.sub.2 65 67 69 71 73 75 77 79 p  65/128  67/128  69/128  71/128  73/128  75/128  77/128  79/128 p′  63/128  61/128  59/128  57/128  55/128  53/128  51/128  49/128 x.sub.2 −47 −45 −43 −41 −39 −37 −35 −33 x′.sub.2 81 83 85 87 89 91 93 95 p  81/128  83/128  85/128  87/128  89/128  91/128  93/128  95/128 p′  47/128  45/128  43/128  41/128  39/128  37/128  35/128  33/128 x.sub.2 −31 −29 −27 −25 −23 −21 −19 −17 x′.sub.2 97 99 101 103 105 107 109 111 p  97/128  99/128 101/128 103/128 105/128 107/128 109/128 111/128 p′  31/128  29/128  27/128  25/128  23/128  21/128  19/128  17/128 x.sub.2 −15 −13 −11 −9 −7 −5 −3 −1 x′.sub.2 113 115 117 119 121 123 125 127 p 113/128 115/128 117/128 119/128 121/128 123/128 125/128 127/128 p′  15/128  13/128  11/128  9/128  7/128  5/128  3/128  1/128 x.sub.2 1 3 5 7 9 11 13 15 x′.sub.2 −127 −125 −123 −121 −119 −117 −115 −113 p 127/128 125/128 123/128 121/128 119/128 117/128 115/128 113/128 p′  1/128  3/128  5/128  7/128  9/128  11/128  13/128  15/128 x.sub.2 17 19 21 23 25 27 29 31 x′.sub.2 −111 −109 −107 −105 −103 −101 −99 −97 p 111/128 109/128 107/128 105/128 103/128 101/128  99/128  97/128 p′  17/128  19/128  21/128  23/128  25/128  27/128  29/128  31/128 x.sub.2 33 35 37 39 41 43 45 47 x′.sub.2 −95 −93 −91 −89 −87 −85 −83 −81 p  95/128  93/128  91/128  89/128  87/128  85/128  83/128  81/128 p′  33/128  35/128  37/128  39/128  41/128  43/128  45/128  47/128 x.sub.2 49 51 53 55 57 59 61 63 x′.sub.2 −79 −77 −75 −73 −71 −69 −67 −65 p  79/128  77/128  75/128  73/128  71/128  69/128  67/128  65/128 p′  49/128  51/128  53/128  55/128  57/128  59/128  61/128  63/128

[0113] The probabilities p and p′ for a 7-bit DAC are shown in Table 7.

TABLE-US-00009 TABLE 7 Probability Assignment for a 7-bit sub-DAC x.sub.2 −127 −125 −123 −121 −119 −117 −115 −113 x′.sub.2 129 131 133 135 137 139 141 143 p 129/256 131/256 133/256 135/256 137/256 139/256 141/256 143/256 p′ 127/256 125/256 123/256 121/256 119/256 117/256 115/256 113/256 x.sub.2 −111 −109 −107 −105 −103 −101 −99 −97 x′.sub.2 145 147 149 151 153 155 157 159 p 145/256 147/256 149/256 151/256 153/256 155/256 157/256 159/256 p′ 111/256 109/256 107/256 105/256 103/256 101/256  99/256  97/256 x.sub.2 −95 −93 −91 −89 −87 −85 −83 −81 x′.sub.2 161 163 165 167 169 171 173 175 p 161/256 163/256 165/256 167/256 169/256 171/256 173/256 175/256 p′  95/256  93/256  91/256  89/256  87/256  85/256  83/256  81/256 x.sub.2 −79 −77 −75 −73 −71 −69 −67 −65 x′.sub.2 177 179 181 183 185 187 189 191 p 177/256 179/256 181/256 183/256 185/256 187/256 189/256 191/256 p′  79/256  77/256  75/256  73/256  71/256  69/256  67/256  65/256 x.sub.2 −63 −61 −59 −57 −55 −53 −51 −49 x′.sub.2 193 195 197 199 201 203 205 207 p 193/256 195/256 197/256 199/256 201/256 203/256 205/256 207/256 p′  63/256  61/256  59/256  57/256  55/256  53/256  51/256  49/256 x.sub.2 −47 −45 −43 −41 −39 −37 −35 −33 x′.sub.2 209 211 213 215 217 219 221 223 p 209/256 211/256 213/256 215/256 217/256 219/256 221/256 223/256 p′  47/256  45/256  43/256  41/256  39/256  37/256  35/256  33/256 x.sub.2 −31 −29 −27 −25 −23 −21 −19 −17 x′.sub.2 225 227 229 231 233 235 237 239 p 225/256 227/256 229/256 231/256 233/256 235/256 237/256 239/256 p′  31/256  29/256  27/256  25/256  23/256  21/256  19/256  17/256 x.sub.2 −15 −13 −11 −9 −7 −5 −3 −1 x′.sub.2 241 243 245 247 249 251 253 255 p 241/256 243/256 245/256 247/256 249/256 251/256 253/256 255/256 p′  15/256  13/256  11/256  9/256  7/256  5/256  3/256  1/256 x.sub.2 1 3 5 7 9 11 13 15 x′.sub.2 −255 −253 −251 −249 −247 −245 −243 −241 p 255/256 253/256 251/256 249/256 247/256 245/256 243/256 241/256 p′  1/256  3/256  5/256  7/256  9/256  11/256  13/256  15/256 x.sub.2 17 19 21 23 25 27 29 31 x′.sub.2 −239 −237 −235 −233 −231 −229 −227 −225 p 239/256 237/256 235/256 233/256 231/256 229/256 227/256 225/256 p′  17/256  19/256  21/256  23/256  25/256  27/256  29/256  31/256 x.sub.2 33 35 37 39 41 43 45 47 x′.sub.2 −223 −221 −219 −217 −215 −213 −211 −209 p 223/256 221/256 219/256 217/256 215/256 213/256 211/256 209/256 p′  33/256  35/256  37/256  39/256  41/256  43/256  45/256  47/256 x.sub.2 49 51 53 55 57 59 61 63 x′.sub.2 −207 −205 −203 −201 −199 −197 −195 −193 p 207/256 205/256 203/256 201/256 199/256 197/256 195/256 193/256 p′  49/256  51/256  53/256  55/256  57/256  59/256  61/256  63/256 x.sub.2 65 67 69 71 73 75 77 79 x′.sub.2 −191 −189 −187 −185 −183 −181 −179 −177 p 191/256 189/256 187/256 185/256 183/256 181/256 179/256 177/256 p′  65/256  67/256  69/256  71/256  73/256  75/256  77/256  79/256 x.sub.2 81 83 85 87 89 91 93 95 x′.sub.2 −175 −173 −171 −169 −167 −165 −163 −161 p 175/256 173/256 171/256 169/256 167/256 165/256 163/256 161/256 p′  81/256  83/256  85/256  87/256  89/256  91/256  93/256  95/256 x.sub.2 97 99 101 103 105 107 109 111 x′.sub.2 −159 −157 −155 −153 −151 −149 −147 −145 p 159/256 157/256 155/256 153/256 151/256 149/256 147/256 145/256 p′  97/256  99/256 101/256 103/256 105/256 107/256 109/256 111/256 x.sub.2 113 115 117 119 121 123 125 127 x′.sub.2 −143 −141 −139 −137 −135 −133 −131 −129 p 143/256 141/256 139/256 137/256 135/256 133/256 131/256 129/256 p′ 113/256 115/256 117/256 119/256 121/256 123/256 125/256 127/256

[0114] The probabilities p and p′ for a 8-bit DAC are shown in Table 8.

TABLE-US-00010 TABLE 8 Probability Assignment for a 8-bit sub-DAC x.sub.2 −255 −253 −251 −249 −247 −245 −243 −241 x′.sub.2 257 259 261 263 265 267 269 271 p 257/512 259/512 261/512 263/512 265/512 267/512 269/512 271/512 p′ 255/512 253/512 251/512 249/512 247/512 245/512 243/512 241/512 x.sub.2 −239 −237 −235 −233 −231 −229 −227 −225 x′.sub.2 273 275 277 279 281 283 285 287 p 273/512 275/512 277/512 279/512 281/512 283/512 285/512 287/512 p′ 239/512 237/512 235/512 233/512 231/512 229/512 227/512 225/512 x.sub.2 −223 −221 −219 −217 −215 −213 −211 −209 x′.sub.2 289 291 293 295 297 299 301 303 p 289/512 291/512 293/512 295/512 297/512 299/512 301/512 303/512 p′ 223/512 221/512 219/512 217/512 215/512 213/512 211/512 209/512 x.sub.2 −207 −205 −203 −201 −199 −197 −195 −193 x′.sub.2 305 307 309 311 313 315 317 319 p 305/512 307/512 309/512 311/512 313/512 315/512 317/512 319/512 p′ 207/512 205/512 203/512 201/512 199/512 197/512 195/512 193/512 x.sub.2 −191 −189 −187 −185 −183 −181 −179 −177 x′.sub.2 321 323 325 327 329 331 333 335 p 321/512 323/512 325/512 327/512 329/512 331/512 333/512 335/512 p′ 191/512 189/512 187/512 185/512 183/512 181/512 179/512 177/512 x.sub.2 −175 −173 −171 −169 −167 −165 −163 −161 x′.sub.2 337 339 341 343 345 347 349 351 p 337/512 339/512 341/512 343/512 345/512 347/512 349/512 351/512 p′ 175/512 173/512 171/512 169/512 167/512 165/512 163/512 161/512 x.sub.2 −159 −157 −155 −153 −151 −149 −147 −145 x′.sub.2 353 355 357 359 361 363 365 367 p 353/512 355/512 357/512 359/512 361/512 363/512 365/512 367/512 p′ 159/512 157/512 155/512 153/512 151/512 149/512 147/512 145/512 x.sub.2 −143 −141 −139 −137 −135 −133 −131 −129 x′.sub.2 369 371 373 375 377 379 381 383 p 369/512 371/512 373/512 375/512 377/512 379/512 381/512 383/512 p′ 143/512 141/512 139/512 137/512 135/512 133/512 131/512 129/512 x.sub.2 −127 −125 −123 −121 −119 −117 −115 −113 x′.sub.2 385 387 389 391 393 395 397 399 p 385/512 387/512 389/512 391/512 393/512 395/512 397/512 399/512 p′ 127/512 125/512 123/512 121/512 119/512 117/512 115/512 113/512 x.sub.2 −111 −109 −107 −105 −103 −101 −99 −97 x′.sub.2 401 403 405 407 409 411 413 415 p 401/512 403/512 405/512 407/512 409/512 411/512 413/512 415/512 p′ 111/512 109/512 107/512 105/512 103/512 101/512  99/512  97/512 x.sub.2 −95 −93 −91 −89 −87 −85 −83 −81 x′.sub.2 417 419 421 423 425 427 429 431 p 417/512 419/512 421/512 423/512 425/512 427/512 429/512 431/512 p′  95/512  93/512  91/512  89/512  87/512  85/512  83/512  81/512 x.sub.2 −79 −77 −75 −73 −71 −69 −67 −65 x′.sub.2 433 435 437 439 441 443 445 447 p 433/512 435/512 437/512 439/512 441/512 443/512 445/512 447/512 p′  79/512  77/512  75/512  73/512  71/512  69/512  67/512  65/512 x.sub.2 −63 −61 −59 −57 −55 −53 −51 −49 x′.sub.2 449 451 453 455 457 459 461 463 p 449/512 451/512 453/512 455/512 457/512 459/512 461/512 463/512 p′  63/512  61/512  59/512  57/512  55/512  53/512  51/512  49/512 x.sub.2 −47 −45 −43 −41 −39 −37 −35 −33 x′.sub.2 465 467 469 471 473 475 477 479 p 465/512 467/512 469/512 471/512 473/512 475/512 477/512 479/512 p′  47/512  45/512  43/512  41/512  39/512  37/512  35/512  33/512 x.sub.2 −31 −29 −27 −25 −23 −21 −19 −17 x′.sub.2 481 483 485 487 489 491 493 495 p 481/512 483/512 485/12 487/512 489/512 491/512 493/512 495/512 p′  31/512  29/512  27/512  25/512  23/512  21/512  19/512  17/512 x.sub.2 −15 −13 −11 −9 −7 −5 −3 −1 x′.sub.2 497 499 501 503 505 507 509 511 p 497/512 499/512 501/512 503/512 505/512 507/512 509/512 511/512 p′  15/512  13/512  11/512  9/512  7/512  5/512  3/512  1/512 x.sub.2 1 3 5 7 9 11 13 15 x′.sub.2 −511 −509 −507 −505 −503 −501 −499 −497 p 511/512 509/512 507/512 505/512 503/512 501/512 499/512 497/512 p′  1/512  3/512  5/512  7/512  9/512  11/512  13/512  15/512 x.sub.2 17 19 21 23 25 27 29 31 x′.sub.2 −495 −493 −491 −489 −487 −485 −483 −481 p 495/512 493/512 491/512 489/512 487/512 485/512 483/512 481/512 p′  17/512  19/512  21/512  23/512  25/512  27/512  29/512  31/512 x.sub.2 33 35 37 39 41 43 45 47 x′.sub.2 −479 −477 −475 −473 −471 −469 −467 −465 p 479/512 477/512 475/512 473/512 471/512 469/512 467/512 465/512 p′  33/512  35/512  37/512  39/512  41/512  43/512  45/512  47/512 x.sub.2 49 51 53 55 57 59 61 63 x′.sub.2 −463 −461 −459 −457 −455 −453 −451 −449 p 463/512 461/512 459/512 457/512 455/512 453/512 451/512 449/512 p′  49/512  51/512  53/512  55/512  57/512  59/512  61/512  63/512 x.sub.2 65 67 69 71 73 75 77 79 x′.sub.2 −447 −445 −443 −441 −439 −437 −435 −433 p 447/512 445/512 443/512 441/512 439/512 437/512 435/512 433/512 p′  65/512  67/512  69/512  71/512  73/512  75/512  77/512  79/512 x.sub.2 81 83 85 87 89 91 93 95 x′.sub.2 −431 −429 −427 −425 −423 −421 −419 −417 p 431/512 429/512 427/512 425/512 423/512 421/512 419/512 417/512 p′  81/512  83/512  85/512  87/512  89/512  91/512  93/512  95/512 x.sub.2 97 99 101 103 105 107 109 111 x′.sub.2 −415 −413 −411 −409 −407 −405 −403 −401 p 415/512 413/512 411/512 409/512 407/512 405/512 403/512 401/512 p′  97/512  99/512 101/512 103/512 105/512 107/512 109/512 111/512 x.sub.2 113 115 117 119 121 123 125 127 x′.sub.2 −399 −397 −395 −393 −391 −389 −387 −385 p 399/512 397/512 395/512 393/512 391/512 389/512 387/512 385/512 p′ 113/512 115/512 117/512 119/512 121/512 123/512 125/512 127/512 x.sub.2 129 131 133 135 137 139 141 143 x′.sub.2 −383 −381 −379 −377 −375 −373 −371 −369 p 383/512 381/512 379/512 377/512 375/512 373/512 371/512 369/512 p′ 129/512 131/512 133/512 135/512 137/512 139/512 141/512 143/512 x.sub.2 145 147 149 151 153 155 157 159 x′.sub.2 −367 −365 −363 −361 −359 −357 −355 −353 p 367/512 365/512 363/512 361/512 359/512 357/512 355/512 353/512 p′ 145/512 147/512 149/512 151/512 153/512 155/512 157/512 159/512 x.sub.2 161 163 165 167 169 171 173 175 x′.sub.2 −351 −349 −347 −345 −343 −341 −339 −337 p 351/512 349/512 347/512 345/512 343/512 341/512 339/512 337/512 p′ 161/512 163/512 165/512 167/512 169/512 171/512 173/512 175/512 x.sub.2 177 179 181 183 185 187 189 191 x′.sub.2 −335 −333 −331 −329 −327 −325 −323 −321 p 335/512 333/512 331/512 329/512 327/512 325/512 323/512 321/512 p′ 177/512 179/512 181/512 183/512 185/512 187/512 189/512 191/512 x.sub.2 193 195 197 199 201 203 205 207 x′.sub.2 −319 −317 −315 −313 −311 −309 −307 −305 p 319/512 317/512 315/512 313/512 311/512 309/512 307/512 305/512 p′ 193/512 195/512 197/512 199/512 201/512 203/512 205/512 207/512 x.sub.2 209 211 213 215 217 219 221 223 x′.sub.2 −303 −301 −299 −297 −295 −293 −291 −289 p 303/512 301/512 299/512 297/512 295/512 293/512 291/512 289/512 p′ 209/512 211/512 213/512 215/512 217/512 219/512 221/512 223/512 x.sub.2 225 227 229 231 233 235 237 239 x′.sub.2 −287 −285 −283 −281 −279 −277 −275 −273 p 287/512 285/512 283/512 281/512 279/512 277/512 275/512 273/512 p′ 225/512 227/512 229/512 231/512 233/512 235/512 237/512 239/512 x.sub.2 241 243 245 247 249 251 253 255 x′.sub.2 −271 −269 −267 −265 −263 −261 −259 −257 p 271/512 269/512 267/512 265/512 263/512 261/512 259/512 257/512 p′ 241/512 243/512 245/512 247/512 249/512 251/512 253/512 255/512

[0115] The redundancy mapping and probability assignment is given by:

[00028] ( u , v ) = { ( x 1 , x 2 ) with probability p ( x 1 , x 2 ) with probability p

[0116] In several embodiments, pseudo-random numbers can be generated using Linear Feedback Shift Registers (LFSR). The L-bits in an L-bit LFSR represent a “state” and for properly designed feedback polynomials, the LFSR will cycle sequentially through 2L−1 states before repeating itself. Typically, the all-zeros or all-ones state is disallowed. By choosing a sufficiently large L, each bit in the LFSR assumes a ‘0’ or a ‘1’ with probability of ½. Thus, uniformly distributed random numbers can be generated by grouping together several bits of the LFSR. For example, four bits of the LFSR together represent a uniformly distributed random integer variable R∈[0:15] with uniform pdf of 1/16. That is, Prob(R<1)= 1/16, Prob(R<3)= 3/16, Prob(R<5)= 5/16, Prob(R<7)= 7/16 and so on. The probability assignment with probabilities p and p′ can be implemented by associating the selection with the outcome of the comparison between the random integer R and |x.sub.2| as follows:

[00029] ( u , v ) = { ( x 1 , x 2 ) with probability p = 1 - p ( x 1 , x 2 ) with probability p = Prob ( R < .Math. x 2 .Math. )

[0117] The peak amplitude of the input should be reduced such that the all zeros and all one's binary codes are never encountered in the MSB sub-DAC. This ensures that both x.sub.1 and x.sub.1′ can be represented by a B.sub.1-bit word with no overflows. The ranges before and after mapping are given by:


x.sub.1∈[−N.sub.1+2:2: N.sub.1−2]


x.sub.1′∈[−N.sub.1+1:2:N.sub.1−1]


and


x.sub.2∈[−N.sub.2+1:2: N.sub.2−1]


x.sub.2′∈[−2N.sub.2+1:2: −N.sub.2−1]∪[N.sub.2+1:2:2N−1]

[0118] For a 3-bit sub-DAC, as shown in FIG. 17, x.sub.2∈[−7, −5, −3, −1,1,3,5,7] and x.sub.2′∈[−15, −13, −11, −9]∪[9,11,13,15]. The normal and redundant representations do not overlap. But the range of x has doubled. Both x.sub.2 and x.sub.2′ can be implemented with a (B.sub.2+1)-bit sub-DAC with 2N.sub.2−1 unit elements.

[0119] An extension to multi-segment DACs is described below. In an m-segment DAC, the input digital word x is decomposed into m-segments x.sub.1, x.sub.2, . . . x.sub.m. The mapping is defined as:


x.fwdarw.(x.sub.1,x.sub.2, . . . ,x.sub.m)

[0120] The redundant mapping is given by:


v.fwdarw.(v.sub.p,v.sub.2, . . . ,v.sub.m)

[0121] A variable is first defined as:


x.sub.k,m.fwdarw.(x.sub.k,x.sub.k+1, . . . ,x.sub.m)

[0122] The value of x.sub.k,m is determined by segments k through m. That is:

[00030] x k , m .fwdarw. x k + x k + 1 N k + .Math. + x m N k .Math. N m

[0123] Based on the nested nature of the computations defined in Eqn. (6), the redundancy mapping can be performed sequentially over pairs of segments, commencing at the last segment x.sub.m and concluding at the first segment x.sub.1, as follows.

[0124] The computation for segment (m−1)-to-m is:

[00031] ( x m - 1 , x m ) .fwdarw. maps to ( u m - 1 , v m )

where

[00032] ( u m - 1 v m ) = { ( x m - 1 , u m ) with probability p m - 1 ( x m - 1 , u m ) with probability p m - 1

and u.sub.m−1 is an intermediate value to be used in the computation.

[00033] x m - 1 = x m - 1 + δ x m - 1 .Math. sgn ( x m ) x m = x m - N m .Math. δ x m - 1 .Math. sgn ( x m ) p m - 1 = 1 - p m - 1 = | x m | N m .Math. δ x m - 1

[0125] The computation for segment (k−1)-to-k is:

[00034] ( x k - 1 , u k ) .fwdarw. maps to ( u k - 1 , v k )

where

[00035] ( u k - 1 v k ) = { ( x k - 1 , u k ) with probability p k - 1 ( x k - 1 , u k ) with probability p k - 1 x k - 1 = x k - 1 + δ x k - 1 .Math. sgn ( x k , m ) x k = x k - N k .Math. δ x k - 1 .Math. sgn ( x k , m ) p k - 1 = 1 - p k - 1 = | u k | N k .Math. δ x k - 1

[0126] The recursive procedure ends when k=2 and (u.sub.1, v.sub.2) is mapped. Assign v.sub.1=u.sub.1 and (v.sub.1, v.sub.2, . . . , v.sub.m) is the final vector for the multi-segment DAC.

[0127] The sequential pairwise operations are shown in FIG. 18. Every intermediate segment 1810 undergoes two mappings x.sub.k.fwdarw.u.sub.k.fwdarw.v.sub.k, the first mapping 1802 as an MSB segment 1806 and the second mapping 1804 as an LSB segment of the two-segment pair 1806.

[0128] The resolution of the main MSB sub-DAC 1812 remains unchanged. However, the resolution of all other sub-DACs 1814, 1816, 1818 is increased by one bit. The unit elements of all the LSB sub-DACs 1814, 1816, 1818 add up to one LSB of the MSB sub-DAC 1812 based on the binary nature of the input decomposition. Therefore, the increase in complexity is equivalent to only one LSB of the MSB sub-DAC 1812. For example, for a design with a 4-bit MSB sub-DAC, the increase in hardware complexity may only be 6.25%.

[0129] An extension to binary DACs will now be discussed. A B-bit binary DAC requires B binary weighted elements. To achieve perfect linearity, ratios between weighted elements can be powers of 2. Any deviation from power of 2 ratios can result in DNL and INL error.

[0130] A B-bit binary DAC can be treated as a segmented DAC with B segments x.sub.2, . . . , x.sub.B. Each segment has 1 bit where x.sub.i takes values −1 and 1. The B-bit digital input x can be expressed as binary weighted summation of x.sub.i:

[00036] x = x 1 + x 2 2 1 + x 3 2 2 + .Math. + x B 2 B - 1

[0131] The output of the DAC can be expressed as follows:

[00037] y ¯ = y ¯ 1 + y ¯ 2 2 1 + y ¯ 3 2 2 + .Math. + y ¯ B 2 B - 1

[0132] In the case of non-ideal implementation y.sub.i=x.sub.1.Math.(1+α.sub.i), where α.sub.i is the ratio error for segment i. The output of the DAC is given by:

[00038] y ¯ = x 1 .Math. ( 1 + α 1 ) + x 2 .Math. ( 1 + α 2 ) 2 1 + x 3 .Math. ( 1 + α 3 ) 2 2 + .Math. + x B .Math. ( 1 + α B ) 2 B - 1

[0133] In redundant mappings DAC implementations, each 1-bit segment is replaced by 2-bit thermometer-coded segments. There are B segments v.sub.p v.sub.2, . . . v.sub.B. Each segment comprises, or alternatively consists of, 3 unit elements where v.sub.i takes value −3, −1, 1, and 3. Segments v.sub.p v.sub.2, . . . v.sub.B can be determined with the recursive procedure starting from the last segment v.sub.b, as follows.

[0134] The computation for segment (B-1)-to-B is:

[00039] ( x B - 1 x B ) .fwdarw. maps to ( u B - 1 v B )

where

[00040] ( u B - 1 v B ) = { ( x B - 1 , u B ) with probability p B - 1 ( x B - 1 , u B ) with probability p B - 1

and u.sub.B−1 is an intermediate value to be used in the next computation:

[00041] x B - 1 = x B - 1 + 2 .Math. sgn ( x B ) x B = x B - 4 .Math. sgn ( x B ) p B - 1 = 1 - p B - 1 = .Math. x B .Math. 4 v B , B = v B 2

[0135] The computation for segment (k−1)-to-k is:

[00042] ( x k - 1 u k ) .fwdarw. maps to ( u k - 1 v k )

where

[00043] ( u k - 1 v k ) = { ( x k - 1 , u k ) with probability p k - 1 ( x k - 1 , u k ) with probability p k - 1

and u.sub.k−1 is an intermediate value to be used in the next substitution:

[00044] x k - 1 = x k - 1 + 2 .Math. sgn ( u k + v k + 1 , B ) u k = u k - 4 .Math. sgn ( u k + v k + 1 , B ) p k - 1 = 1 - p k - 1 = | u k + v k + 1 , B | 4 v k , B = v k + v k + 1 , B 2

[0136] The recursive procedure ends when k=2 and (u.sub.1, v.sub.2) is mapped. Assign v.sub.1=u.sub.1 and (v.sub.1, v.sub.2, . . . , v.sub.B) is the final vector for the B segments DAC.

[0137] Accordingly, in many embodiments, a redundancy mapping probabilistic assignment can provide for more linear DACs. In particular, the linearization may not depend on component mismatches and the DAC can be linear by design. Thus, no information about the mismatches may be needed. However, the mismatches can be converted to random noise that is distributed evenly over the Nyquist band. The linearization can be feed-forward and occur in the digital domain. In many embodiments, linearity can be maintained over process, temperature and voltage variations.

[0138] Successive Approximation Register ADCs

[0139] The approach of the present embodiments includes an application to Successive Approximation Register (SAR) ADCs. The SAR ADC represents a significant portion of the medium to high resolution ADC market. Typical resolutions range from 10 to 18 bits with speeds up to 20 MS/s. The SAR architecture results in low power consumption and small area and is the architecture of choice for a wide variety of applications. Recently, lower resolution time-interleaved SARs have resulted in very efficient multi-gigasample ADCs.

[0140] A B-bit flash ADC uses a linear voltage ladder with a comparator at each of the N “rungs” of the ladder to simultaneously compare the input voltage to a set of equally spaced reference voltages. The output of these comparators is fed to a digital encoder which generates a binary value. The flash architecture is a highly parallel architecture with a fast conversion time of one cycle. The principal drawback is that the complexity typically increases exponentially with the number of bits since the B-bit ADC utilizes N reference voltages and N comparators.

[0141] At the other end of the spectrum is a digital ramp (counter) B-bit ADC that takes up to N cycles for conversion. The ramp counter increments by one LSB at each count. The B-bit count drives a DAC whose output is compared with the analog input. The counting process is terminated when the DAC output exceeds the analog input. While the architecture can highly sequential and may use only one comparator and a DAC, the sequential nature can result in exponentially slower conversion rates for high resolution ADCs.

[0142] An architecture of a B-bit SAR ADC, in accordance with an embodiment of the invention is illustrated in FIG. 19. The analog input voltage Vin 1902 is sampled and held 1904 for the duration of the conversion. A decision-directed search algorithm 1908 can sequentially select B-bit digital inputs 1910 that drive the output 1912 of the DAC 1904 to a value that is closest to the input voltage Vin. It is well known that a binary search algorithm may be the most efficient search and finds the closest code in B=log 2(N) steps.

[0143] The successive approximation register can be initialized so that only the most significant bit (MSB) is equal to a digital 1. This code can be fed to the DAC which supplies the analog equivalent

[00045] ( V F S 2 )

of this digital code to the comparator for comparison with the sampled input voltage. If this analog voltage exceeds Vin, the comparator can cause the SAR to reset this bit; otherwise, the bit is left at 1. Then the next bit is set to 1 and the DAC supplies the analog equivalent of the digital code as

[00046] ( 3 V F S 4 ) or ( 4 V F S 4 )

as shown in FIG. 20. Thus, in each cycle the ADC compares Vin with the most recent analog estimate and directs the search according to the polarity of the comparison. The binary search can be continued until every bit in the SAR has been exercised. The resulting code is the digital approximation of the sampled input voltage. Although FIG. 19 illustrates a particular B-bit SAR ADC architecture, any of a variety of SAR ADC architectures may be utilized as appropriate to the requirements of specific applications in accordance with embodiments of the invention.

[0144] Two important components of SAR ADCs implemented in accordance with various embodiments of the invention are the comparator and the DAC. The Sample and Hold block can typically be embedded in the DAC (for example in a Capacitive DAC) and may not be an explicit circuit. The noise in the comparator can be considered white and is not a source of nonlinearity. However, in the absence of amplification, the comparator may need to maintain an accuracy of B-bits, so the input referred noise of the comparator can be designed to be less than an LSB.

[0145] The SAR can create a “virtual” voltage reference ladder where each voltage rung is generated sequentially by the DAC. If the voltages generated by the DAC are not uniformly spaced apart, this can result in unequal step sizes (or bins) and the signal can be non-uniformly quantized. DNL is a measure of the difference of each step size from the nominal step size.

[0146] Typically, the DAC output as a function of time is monitored, and all its possible trajectories are mapped. These trajectories form a “time trellis” as shown in FIG. 20. The last stage of this time trellis may comprise, or in some embodiments consists of, a set of voltages that are uniformly spaced apart over the input voltage range. The linearity of the ADC can be a function of how accurately the DAC can generate this set of equally spaced voltages. Thus, the linearity of the ADC can be determined solely by the linearity of the DAC.

[0147] High resolution SAR ADCs tend to occupy a large area if the DAC unit element size is dictated by matching requirements for linearity rather than by thermal noise. Based on limitations on component matching (capacitor, resistor, current sources) high resolution SAR DACs may require trimming. However, trimming may not compensate for changes with voltage and temperature. Hence, on-line continuous calibration may be necessary during the normal operation.

[0148] Most DACs may use a segmented architecture to reduce the complexity. While DEM is typically used to linearize the MSB segment, mismatches in the bridge capacitor and the between capacitors in the coarse and fine segments gives rise to nonlinearities.

[0149] A DAC employing redundancy mapping and probabilistic assignment may be perfectly linear. Therefore, the redundant mappings DAC generates a set of reference voltages that are uniformly spaced apart which results in a perfectly linear ADC. The redundant mappings architecture can also maintain linearity continuously over process, temperature and/or voltage variations.

[0150] The components may be implemented by one or more processors or computers. It will be apparent that systems and/or methods, described herein, may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods were described herein without reference to specific software code—it being understood that software and hardware can be designed to implement the systems and/or methods based on the description herein.

[0151] The present invention may have also been described, at least in part, in terms of one or more embodiments. An embodiment of the present invention is used herein to illustrate the present invention, an aspect thereof, a feature thereof, a concept thereof, and/or an example thereof. A physical embodiment of an apparatus, an article of manufacture, a machine, and/or of a process that embodies the present invention may include one or more of the aspects, features, concepts, examples, etc. described with reference to one or more of the embodiments discussed herein. Further, from figure to figure, the embodiments may incorporate the same or similarly named functions, steps, modules, etc. that may use the same or different reference numbers and, as such, the functions, steps, modules, etc. may be the same or similar functions, steps, modules, etc. or different ones.

[0152] The above description provides specific details, such as material types and processing conditions to provide a thorough description of example embodiments. However, a person of ordinary skill in the art would understand that the embodiments may be practiced without using these specific details.

[0153] Some of the illustrative aspects of the present invention may be advantageous in solving the problems herein described and other problems not discussed which are discoverable by a skilled artisan. While the above description contains much specificity, these should not be construed as limitations on the scope of any embodiment, but as exemplifications of the presented embodiments thereof. Many other ramifications and variations are possible within the teachings of the various embodiments. While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best or only mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Also, in the drawings and the description, there have been disclosed exemplary embodiments of the invention and, although specific terms may have been employed, they are unless otherwise stated used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention therefore not being so limited. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item. Thus, the scope of the invention should be determined by the appended claims and their legal equivalents, and not by the examples given.