Design of 12-Bit Adc: End-Term Project, 6.775
Design of 12-Bit Adc: End-Term Project, 6.775
Design of 12-Bit Adc: End-Term Project, 6.775
Y. Chiu, P. R. Gray and B. Nicolic, A 14-b 12-MS/s CMOS Pipeline ADC With Over 100-dB SFDR IEEE Journal of
Solid-State Circuits, vol. 39, pp. 2139 - 2151, December 2004
phi1
phi1
C
phi1
Vin
C
Vout
+
C
Opamp
phi2
0.9
comp
comp
Comparator
1.2V
0.6V
2. Comparator: A simple comparator was used in this project. It contains the first gain
stage of our mid-term opamp followed by a fast CMOS digital latch. A latch is used
for two purposes: A, To increase the speed of the comparator, B. The comparator
makes the decision in the sampling phase and keeps that value in the multiply by two
stage. The comparator is shown in Fig. 3. We planned to use digital error correction
to correct for the comparator offset and the scheme performed well. The comparator
can be further optimized for power, speed and accuracy. We didnt spend time on it,
since that was the not the main goal of the project. We wanted to see whether the
ADC could be made to work by using simple off-the-shelf blocks.
VCC
phi1
M12
M11
M13
I1
Ibias
R1
I1
I2
M7
M1
M2
phi2
phi2
M7
VCC
M3
M4
M6
OUT
M5
R2
M7
M7
M8
M20
phi1
LATCH
phi1
phi1
C
phi1
Vin
C
Vout
+
C
Opamp
phi2
0.9
comp
comp
Comparator
1.2V
0.9V
b3_b
b1
b2
b6_b
b3_a
b4
b5
b6_a
Vin
Stage (X2)
Stage (X2)
Stage (X1)
Stage (X2)
Stage (X2)
Stage (X2)
Stage (X1)
Stage (X2)
Stage (X2)
Stage (X1)
Stage (X2)
Stage (X2)
Stage (X2)
b7
b8
b9_a
b9_b
b10
b11
Stage (X2)
b12
(through
comparator)
measured by an analog circuit and converted into digital values. A digital circuit then
pairs capacitors from each group, according to how well they match with one another,
and produces the necessary control signals to connect the respective capacitors to each
stage. Stages are assigned pairs in the order that they appear in the pipeline so that the
first stage receives the best matching pair and the last receives the worst.
The feasibility of this scheme was tested in MATLAB. Fourteen pairs of mismatched
capacitor (valued around 0.5pF) were generated, sorted and then inserted into each stage
using the scheme described above. Each stage was then tested for an accuracy of
1/2^(b+1-i). In 1000 simulations, 230 capacitor-pairs failed to meet this requirement,
giving an acceptable yield of more than 75%. With a faster opamp facilitating the use of
higher value capacitors such as 1pF, the yield increases to more than 95%.
A single capacitor with MOS switches would appear as shown in Fig. 6. (with three
switches shown) We call this a Capacitor-Switch Array.
c1
c1
1 CAP 2
n1
M2
c2
n2
M2
c2
n1
n1b
CAP
n2
n2b
M2
c3
M2
c3
n1c
n2c
M2
M2
In Fig. 6, 7 and 8, pmos have been drawn. These are actually nmos. The error is regretted.
the MOSFETs should be kept small, just more than the required for charging the
capacitors and settling the op-amp in the clock frequency.
2. The capacitances of MOS would also bring about some coupling between the two
points connected through an OFF MOS. This capacitance may change the
behavior of the circuit and also lead to charge re-distribution through the 14 MOS
capacitances (even if one is not significant, in total they may become significant).
3. In shrinking technologies, where leakage power becomes significant, this big
array of switched of MOS on each node may sink considerable amount of current
discharging capacitors and requiring refresh or high clock frequency.
4. In the present approach, we cannot scale down the capacitor sizes as we move to
the stages representing LSB. This shall result in area and power penalty.
5. The array of MOSFETs required to control a capacitor will be immense (28*14).
Though this seems to be a huge area penalty, it isnt so. There are many
techniques which use two FD-op-amps per stage to average out capacitor
mismatch. A properly designed FD-opamp requires around 20 MOS devices
where sizes could be much bigger than those here. Thus it can be concluded that
this scheme shall approximately take the same area as by a capacitor-averaging
scheme using two op-amps per stage.
6. The number of switches and area maybe decreased by using clever techniques
informed by statistical data. For instance, one can use fixed scaled capacitors in
the later stages and only use the above scheme with the first n stages, where n is
decided through MATLAB simulations.
7. SPICE Implementation of Error Correction Scheme
For SPICE simulations, it was assumed that the ordering of the capacitor will be already
known. So the ordering of the capacitor was done using MATLAB, which were then
plugged into SPICE subckts using a PERL script. [Refer to the MATLAB and Perl scripts
in the Appendix]
For SPICE simulations, one should put the switches exactly how they would appear in
the circuit. This would mean that each capacitor will be connected to all the 14 ADC
stages through mos switches. This generates an extremely densely coupled network,
which is computationally very expensive to simulate with SPICE.
To reduce this complexity, we did the following. For each capacitor, we connected node
n1, n2, 1 and 2 each with 13 capacitors, apart from the one inside the circuit of the
current stage. The other end of the switched-off transistors were connected to an arbitrary
waveform oscillating between 0 to 1.8V generated using the pulse command. This
waveform was expected to model the voltage variations that would occur on the other
terminal of the MOS. This is shown in Fig. 7. Only two MOSFETs are shown instead of
13 for clarity. Here c1 is high, while c2 is low.
n1
n2
c1
c1
1 CAP 2
M2
c2
M2
c2
c2
c2
M2
M2
M2
M2
c2
c2
M2
c2
M2
c2
M2
M2
Voltage Variations
n2
c1
c1
1 CAP 2
c2
M2
c2
M2
c2
c2
M2
M2
M2
M2
Voltage Variations
This is not equivalent in terms of layout parasitics which change when these many MOSFETs are
replaced by a single mos. (routing parasitics, etc.)
4
Though we have actually used ideal switches for all MOS switches in the multiplier (except the ones in
the capacitor model, which are actual mos), we replaced all switches by MOS 0f 0.5u to see if it settled. It
settled in the required range of 100ns.
8. Simulation Results
Simulation was done around the three MSB transition points for the three ADCs: ADC
with no capacitor mismatch, ADC with capacitor mismatch and ADC with capacitor
mismatch with error connection.
Simulation was done across 7 points around the 3 MSB transitions with a least count of
1/2LSB. At some readings, the precision was further increased to get a better idea of the
characteristics.
8.1 ADC with no capacitor mismatch
Results of simulation are tabulated in Table 1. It shows the input voltage and the
corresponding digital output is shown. As it may be observed from the table, the ADCs
behavior is decent and well-structured. Figure 9 shows 3 graphs for the MSB transitions.
The X-axis represent the input voltage while the y-axis shows the digital output. A
horizontal line has been drawn on each graph to indicate the size of 1 LSB.
From the table, it can be inferred that the INL is in the range of 1LSB. One can say
with surety that the DNL is in the range of 1/2LSB for the given points. Due to the wellbehaved nature of the curve, we can mathematically show that the step size is between
0.5 and 1.5. This can be concluded as follows. Consider 0111-1111-1110 to 0111-11111111 and 0111-1111-1111 to 1000-0000-0000 transition. The first transition here
happens in a range of 0 to 0.5 LSB, then there is a constant code for 0.5 LSB and then the
next transition also ranges between 0 to 0.5LSB. Thus the difference between the two
transitions has to be between 0.5LSB to 1.5LSB. (This argument is on the assumption
that the curve is monotonic between the points observed)
Table 1: Results for ADC with no capacitor mismatch
Voltage Representation Voltage
Code
0.6
0.6
0000-0000-0000
0.9 1.5LSB
0.8997802734375000
0111-1111-1110
0.9 LSB
0.8998535156250000
0111-1111-1111
0.9 0.5LSB
0.8999267578125
0111-1111-1111
0.9
0.9
1000-0000-0000
0.9 + 0.5LSB
0.90007324218750
1000-0000-0000
0.9 + LSB
0.9001464843750
1000-0000-0001
0.9 + 1.5*LSB
0.9002197265625
1000-0000-0001
0.75 1.5LSB
0.7497802734375
0011-1111-1110
0.75 LSB
0.749853515625
0011-1111-1111
0.75 0.5LSB
0.7499267578125
0011-1111-1111
0.75
0.75
01000-0000-000
0.75 + 0.5LSB
0.75007324218750
01000-0000-000
0.75 + LSB
0.7501464843750
0100-0000-0001
0.75 + 1.5*LSB
0.7502197265625
0100-0000-0001
0.675 1.5LSB
0.6747802734375
0001-1111-1110
0.675 LSB
0.674853515625
0001-1111-1111
0.675 0.5LSB
0.6749267578125
0001-1111-1111
0.675
0.68
0010-0000-000
0.675 + 0.5LSB
0.675073242187
0010-0000-000
0.675 + LSB
0.6751464843750
0010-0000-0001
0.675 + 1.5*LSB
0.6752197265625
0010-0000-0001
1.2
1.2
1111-1111-1111
Code
0.6
0.6
0000-0000-0000
0.9 + 1.5*LSB
0.9002197265625
0111-1111-1110
0.9 + 2.0*LSB
0.90029296875000
0111-1111-1111
0.9 + 3.0*LSB
0.9003662109375
0111-1111-1111
0.9 + 3.5*LSB
0.900439453125
1000-0000-0000
0.9 + 4.0*LSB
0.9005126953125
1000-0000-0000
0.75 - 5.5*LSB
.749194335937
0100-0000-0111
1.2
1.2
1-0000-0000-0011
1.2 1.5LSB
1.1997802734375
1-0000-0000-0000
One may observe that the DNL is in the range of 1LSB. Though one can say with
confidence that the DNL is in the range of 0.5LSB for the points arounf 0.675V, we can
only make a claim that the DNL around 0.9V and 0.75V is in the range of 1LSB. To
find out whether it is in 0.5LSB range, we need to look at values between the current
considered values. A binary search in-between the points can then be done to find out the
range of DNL, however it is not clear if such a search is bounded for the number of
iterations required. We did one iteration of binary search to give a better estimate of the
situation. The addition values considered are marked in grey in the table.
One may deduce after finding the new values, that the step size lies between 0.5 and 1.5,
and thus the DNL is in the specified range. This may be easily concluded from the table
using the methology in Section 8.1.
Table 3: Results for ADC with capacitor mismatch with correction
Voltage Representation Voltage
Code
0.6
0.6
0000-0000-0000
0.9 1.5LSB
0.8997802734375000
0111-1111-1110
0.9 1.25LSB
.89981689453125000000 0111-1111-1111
reqd)
0.9 LSB
0.8998535156250000
0111-1111-1111
0.9 0.5LSB
0.8999267578125
0111-1111-1111
0.9 0.25LSB
.89996337890625
1000-0000-0000
0.9
0.9
1000-0000-0000
0.9 + 0.25LSB
.900036621093750
1000-0000-0000
0.9 + 0.5LSB
0.90007324218750
1000-0000-0001
0.9 + LSB
0.9001464843750
1000-0000-0001
0.9 + 1.25*LSB
0.90018310546875
1000-0000-0001
reqd)
0.9 + 1.5*LSB
0.9002197265625
1000-0000-0010
0.75 1.5LSB
0.7497802734375
0011-1111-1110
0.75 LSB
0.749853515625
0011-1111-1111
(not
(not
0.75 0.5LSB
0.7499267578125
0011-1111-1111
0.75 0.25LSB
.74996337890625
0100-0000-0000
0.75
0.75
0100-0000-0000
0.75 1.25LSB
.75003662109375
0100-0000-0000
0.75 + 0.5LSB
0.75007324218750
0100-0000-0001
0.75 + LSB
0.7501464843750
0100-0000-0001
0.75 + 1.5*LSB
0.7502197265625
0100-0000-0001
0.75 + 1.75*LSB
0.750256340
0100-0000-0010
0.75 + 2.00*LSB
.75029296
0100-0000-0010
0.675 1.5LSB
0.6747802734375
0001-1111-1110
0.675 LSB
0.674853515625
0001-1111-1111
0.675 0.5LSB
0.6749267578125
0001-1111-1111
0.675
0.675
0010-0000-0000
0.675 + 0.5LSB
0.675073242187
0010-0000-0000
0.675 + LSB
0.6751464843750
0010-0000-0001
0.675 + 1.5*LSB
0.6752197265625
0010-0000-0001
1.2
1.2
1-0000-0000-0000
1.2 0.5LSB
1.1999267578125
1111-1111-1111
1.2 - LSB
1.1998535156250
1111-1111-1111
proposed and tested. It meets the performance criteria in present experiments. The issues
and suggestions of improvement for the current approach have been summarized in
Section 7. Future work maybe motivated in the following directions.
The exact capacitor measurement technique and the composition of the digital block
have not been dealt with in this project. They should be investigated.
More accurate simulations are required to be confident about this approach. A rough
model of the capacitor with mos-switches has been used to decrease simulation time.
An exact model should be used to do simulations. Also, extra connections to the
capacitor for measurement circuitry has been ignored.
To improve this technique one can consider better switch arrays to plug-in and plugout capacitors which decrease the parasitic capacitance on the node (for e.g.,
multiplexer). Also, one can be informed by statistical data to get the scheme working
with lesser number of switches.
APPENDIX
*The master file which contains the ADC structure
* Different subcircuits are shown for different stages, all these stages have different capacitor values due to
mismatch. Same subckt is used for ADC without mismatch
* Two representative measure statements are shown. For each simulation 7 voltage conversions can be
measured.
.include stage1_2
.include stage1_5
.include stage1_8
.include stage_1
.include stage_10
.include stage_11
.include stage_12
.include stage_2
.include stage_3
.include stage_4
.include stage_5
.include stage_6
.include stage_7
.include stage_8
.include stage_9
.include cap_switch_subc
* Vin Vout Vbit V+ V- Vc Vr1 Vr2 Clk1 Vclk2
x1 40 41 60 13 0 10 50 51 3 31 stage_1
x2 41 42 61 13 0 10 50 51 31 3 stage_2
x2a 42 421 62 13 0 10 50 10 3 31 stage1_2
x3 421 43 621 13 0 10 50 51 31 3 stage_3
x4 43 44 63 13 0 10 50 51 3 31 stage_4
x5 44 45 64 13 0 10 50 51 31 3 stage_5
x51 45 451 65 13 0 10 50 10 3 31 stage1_5
x6 451 46 651 13 0 10 50 51 31 3 stage_6
x7 46 47 66 13 0 10 50 51 3 31 stage_7
x8 47 48 67 13 0 10 50 51 31 3 stage_8
x8a 48 481 68 13 0 10 50 10 3 31 stage1_8
x9 481 49 681 13 0 10 50 51 31 3 stage_9
x10 49 410 69 13 0 10 50 51 3 31 stage_10
x11 410 411 610 13 0 10 50 51 31 3 stage_11
x12 411 412 611 13 0 10 50 51 3 31 stage_12
.param v1= .8997802734375000
.param v2= 0.8998535156250000000
.param v3= 0.8999267578125000
.param v4= 0.9
.param v5= 0.90007324218750
.param v6= 0.90014648437500000000
.ends
*SPICE files for comparator and opamp have not been added due to space constraints. They maybe
requested.