Interface Electronics06 DAC Architectures and ErrorProf. Dr. Jörg Vollrath05 DAC Architectures |
Länge: 01:06:27 |
0:2:25 Charge scaling DAC 0:5:36 Binary split array charge scaling DAC 0:8:25 Subcircuit 0:10:53 Equivalent circuit 0:14:10 VD1 Second circuit 0:23:26 Vint1 0:26:46 LTSPICE simulation 0:31:1 DAC Errors 0:31:27 Mismatch and Probability Density 0:33:16 Gaussian distribution 0:34:4 Realization 0:34:31 Unit R-string mismatch dDNL = dR 0:36:56 INL with mismatch dINL = 0.5 sqrt(2^B) dR 0:43:30 Binary weighted dINL = 0.5 sqrt(2^B) dR 0:46:0 dDNL = 2 * dINL 0:47:3 Summary of INL, DNL with mismatch 0:53:4 LTSPICE Simulation with errror 0:57:17 Digital error correction and calibration 0:59:54 Example start 1:1:43 Calibration 6 codes 1:3:26 Calibration 4 codes 1:4:44 Lookup table codex and code 1:6:53 DAC digital calibration summary |
A real 3-Bit resistor string DA converter with Vref= 4V has some error due to R mismatch.
The switches are closed when the control signal is ‘1’. b signals are the inverted signals.
What is the maximum output voltage and the average step size? (3 points)
Fill the table for the transfer function, the INL and DNL ?
Vmax = Vref/800*700 = 3.5V
LSB = 4V/8 = 0.5V
|
Version 4 SHEET 1 1884 680 WIRE -304 -464 -304 -480 WIRE -208 -416 -208 -448 WIRE -304 -368 -304 -384 WIRE -240 -368 -304 -368 WIRE -96 -368 -176 -368 WIRE -304 -352 -304 -368 WIRE -64 -352 -64 -448 WIRE -144 -304 -144 -448 WIRE -96 -304 -96 -368 WIRE 32 -304 -32 -304 WIRE -304 -256 -304 -272 WIRE -176 -256 -304 -256 WIRE -96 -256 -96 -304 WIRE -96 -256 -112 -256 WIRE -304 -240 -304 -256 WIRE 64 -240 64 -448 WIRE -208 -192 -208 -416 WIRE 32 -192 32 -304 WIRE 176 -192 96 -192 WIRE -304 -144 -304 -160 WIRE -240 -144 -304 -144 WIRE -96 -144 -176 -144 WIRE -16 -144 -16 -448 WIRE -304 -128 -304 -144 WIRE -96 -96 -96 -144 WIRE -48 -96 -96 -96 WIRE 32 -96 32 -192 WIRE 32 -96 16 -96 WIRE -144 -80 -144 -304 WIRE -304 -32 -304 -48 WIRE -176 -32 -304 -32 WIRE -96 -32 -96 -96 WIRE -96 -32 -112 -32 WIRE -304 -16 -304 -32 WIRE 176 16 176 -192 WIRE 240 16 176 16 WIRE 288 16 240 16 WIRE -208 32 -208 -192 WIRE 240 64 240 16 WIRE -304 80 -304 64 WIRE -240 80 -304 80 WIRE -96 80 -176 80 WIRE -64 80 -64 -352 WIRE -304 96 -304 80 WIRE -96 128 -96 80 WIRE 32 128 -32 128 WIRE -144 144 -144 -80 WIRE 240 160 240 128 WIRE -304 192 -304 176 WIRE -176 192 -304 192 WIRE -96 192 -96 128 WIRE -96 192 -112 192 WIRE 128 192 128 -448 WIRE -304 208 -304 192 WIRE 32 240 32 128 WIRE 96 240 32 240 WIRE 176 240 176 16 WIRE 176 240 160 240 WIRE -208 256 -208 32 WIRE -304 304 -304 288 WIRE -240 304 -304 304 WIRE -96 304 -176 304 WIRE -16 304 -16 -144 WIRE -304 320 -304 304 WIRE -96 352 -96 304 WIRE -48 352 -96 352 WIRE 32 352 32 240 WIRE 32 352 16 352 WIRE -144 368 -144 144 WIRE -304 416 -304 400 WIRE -176 416 -304 416 WIRE -96 416 -96 352 WIRE -96 416 -112 416 WIRE -304 432 -304 416 FLAG -304 432 0 FLAG -304 -480 VREF FLAG -208 -448 D0 FLAG -144 -448 D0b FLAG -64 -448 D1 FLAG -16 -448 D1b FLAG 64 -448 D2 FLAG 128 -448 D2b FLAG 288 16 Vout FLAG 240 160 0 SYMBOL Switch -144 416 M0 SYMATTR InstName X5 SYMBOL res -320 192 R0 SYMATTR InstName R1 SYMATTR Value 100 SYMBOL res -320 80 R0 SYMATTR InstName R2 SYMATTR Value 130 SYMBOL res -320 -32 R0 SYMATTR InstName R3 SYMATTR Value 100 SYMBOL res -320 -144 R0 SYMATTR InstName R4 SYMATTR Value 100 SYMBOL res -320 -256 R0 SYMATTR InstName R5 SYMATTR Value 90 SYMBOL res -320 -368 R0 SYMATTR InstName R6 SYMATTR Value 100 SYMBOL res -320 -480 R0 SYMATTR InstName R7 SYMATTR Value 100 SYMBOL res -320 304 R0 SYMATTR InstName R0 SYMATTR Value 80 SYMBOL Switch -208 304 M0 SYMATTR InstName X7 SYMBOL Switch -144 192 M0 SYMATTR InstName X8 SYMBOL Switch -208 80 M0 SYMATTR InstName X9 SYMBOL Switch -144 -32 M0 SYMATTR InstName X10 SYMBOL Switch -208 -144 M0 SYMATTR InstName X11 SYMBOL Switch -144 -256 M0 SYMATTR InstName X12 SYMBOL Switch -208 -368 M0 SYMATTR InstName X13 SYMBOL Switch -64 128 M0 SYMATTR InstName X14 SYMBOL Switch -64 -304 M0 SYMATTR InstName X15 SYMBOL Switch -16 -96 M0 SYMATTR InstName X16 SYMBOL Switch -16 352 M0 SYMATTR InstName X17 SYMBOL Switch 64 -192 M0 SYMATTR InstName X18 SYMBOL Switch 128 240 M0 SYMATTR InstName X19 SYMBOL cap 224 64 R0 SYMATTR InstName C1 SYMATTR Value 1n TEXT -352 -584 Left 2 !.model CD4007N NMOS(LEVEL=1 KP=1123u VT0=0.5 LAMBDA=0.018)\n.model CD4007P PMOS(LEVEL=1 KP=1123u VT0=-0.5 LAMBDA=0.018) TEXT 168 -504 Left 2 !.global VDD\n.include opamp.sub\nV4 d2b 0 PULSE(0 5 0 1n 1n 3999n 8000n)\nV1 d2 0 PULSE(5 0 0 1n 1n 3999n 8000n) TEXT 232 -144 Left 2 !.tran 18000n TEXT 160 -392 Left 2 !V2 d0b 0 PULSE(0 5 0 1n 1n 999n 2000n)\nV5 d0 0 PULSE(5 0 0n 1n 1n 999n 2000n)\nV6 d1 0 PULSE(5 0 0 1n 1n 1999n 4000n)\nV7 d1b 0 PULSE(0 5 0 1n 1n 1999n 4000n)\nVDD Vref 0 DC 4 |
Real components have random variations Discrete resistors: 0.1%, 1%, 10% Integrated resistors: Manufacturing step variations Model for random variations: Probability density function Constant probability of variation. Mixing of probability functions gives a gaussian distribution |
![]() |
Equation: p(x) = \frac{1}{\sigma \sqrt{2 \pi }} e^{- \frac{1}{2} \left( \frac{x-\mu}{\sigma} \right)^2 } µ expected value σ standard deviation σ2 variance This distribution has no bounds. The higher the number of components, more components are out of a certain bound. Manufacturing a resistance or capacitance will also result in variations of value. This causes INL and DNL errors for data converter and can lead to bad faulty devices. Width of two, four and six standard deviations have 68.27%, 95.45% and 99.73% of the population. |
In integrated circuits all elements have a gaussian distribution around the designed value. Since good data converters must meet strict requirements for INL and DNL, high variations of circuit elements can cause bad INL and DNL. What variation of circuit elements can be tolerated? How does mismatch influence INL and DNL?
Example: 0.1% resistor tolerance |
Only random error: Iref: reference current Rnom: nominal resistance \Delta_i = I_{ref} \cdot R_i DNL_{i} = \frac{\Delta_i - \Delta}{\Delta} = \frac{ R_i - R_{nom}}{R_{nom}} \approx \frac{dR}{R_i} \sigma_{DNL} = \sigma_{R} 1% tolerance in resitance gives 1% = 0.01 DNL. |
![]() |
\sigma_{INL}^2 = (1 - r)^2 \cdot \sigma_{A}^2 + r^2 \sigma_{B}^2
\sigma_{INL}^2 = (1 - r)^2 \cdot x \cdot \sigma_{\epsilon}^2 + r^2 \cdot (N-x) \cdot \sigma_{\epsilon}^2
\sigma_{INL}^2 = x \cdot \left( 1 - \frac{x}{N} \right) \cdot \sigma_{\epsilon}^2 \sigma_{INL}^2 = (x - 2 \cdot x \cdot r + x \cdot r^2 + r^2 \cdot N - x \cdot r^2) \cdot \sigma_{\epsilon}^2 \sigma_{INL}^2 = (x - 2 \cdot \frac{x^2}{N} + \frac{x^2}{N} ) \cdot \sigma_{\epsilon}^2 \sigma_{INL}^2 = (x - 2 \cdot \frac{x^2}{N} + \frac{x^2}{N} ) \cdot \sigma_{\epsilon}^2 |
![]() |
Only random error: \sigma_{INL}^2(x) = x (1 - \frac{x}{N}) \cdot \sigma_{\epsilon}^2 \sigma_{INL}(x) = \sqrt{x (1 - \frac{x}{N})} \cdot \sigma_{\epsilon} Maximum: \frac{\sigma_{INL}^2}{dx} = 0 1 - \frac{2 x}{N} = 0 x = \frac{N}{2} \sigma_{INLmax} = \sqrt{\frac{N}{2} (1 - \frac{N}{2 \cdot N})} \cdot \sigma_{\epsilon} \sigma_{INLmax} = \frac{1}{2} \sqrt{ N } \cdot \sigma_{\epsilon} = \frac{1}{2} \sqrt{ 2^{B} -1 } \cdot \sigma_{\epsilon} |
Example: N = 63 |
![]() |
![]() INL same as unit element INL. \sigma_{INLmax} = \frac{1}{2} \sqrt{ 2^{B} -1 } \cdot \sigma_{\epsilon} \approx \frac{1}{2} \cdot 2^{\frac{B}{2}} \cdot \sigma_{\epsilon} Switching in the center: Half devices on, half minus one devices off DNL: Switching at center position: 011111..100000 \sigma_{DNLmax}^2 = \left( 2^{B-1} - 1 \right) \cdot \sigma_{\epsilon}^2 + \left( 2^{B-1} \right) \cdot \sigma_{\epsilon}^2 \sigma_{DNLmax} \approx 2^{\frac{B}{2}} \cdot \sigma_{\epsilon} = 2 \sigma_{INLmax} |
Binary weighted topologyR2R:\sigma_{INLmax} \approx \frac{1}{2} \cdot 2^{\frac{B}{2}} \cdot \sigma_{\epsilon} DNL: \sigma_{DNLmax} \approx 2^{\frac{B}{2}} \cdot \sigma_{\epsilon} \sigma_{DNLmax} \approx 2 \sigma_{INLmax} B, 2B, 3B elements |
![]() |
Unit element topologyR-string:\sigma_{INLmax} \approx \frac{1}{2} \cdot 2^{\frac{B}{2}} \cdot \sigma_{\epsilon} DNL: \sigma_{DNLmax} = \sigma_{\epsilon} 2B elements |
Version 4 SHEET 1 1884 680 WIRE -304 -480 -304 -496 WIRE -112 -480 -112 -496 WIRE -304 -384 -304 -400 WIRE -240 -384 -304 -384 WIRE -112 -384 -112 -400 WIRE -48 -384 -112 -384 WIRE 128 -384 96 -384 WIRE 240 -384 208 -384 WIRE -304 -368 -304 -384 WIRE -112 -368 -112 -384 WIRE 448 -368 416 -368 WIRE 560 -368 528 -368 WIRE 128 -304 96 -304 WIRE 240 -304 240 -384 WIRE 240 -304 208 -304 WIRE -304 -272 -304 -288 WIRE -240 -272 -304 -272 WIRE -112 -272 -112 -288 WIRE -48 -272 -112 -272 WIRE 448 -272 416 -272 WIRE 560 -272 560 -368 WIRE 560 -272 528 -272 WIRE -304 -256 -304 -272 WIRE -112 -256 -112 -272 WIRE 128 -224 96 -224 WIRE 240 -224 240 -304 WIRE 240 -224 208 -224 WIRE 272 -224 240 -224 WIRE 448 -192 416 -192 WIRE 560 -192 560 -272 WIRE 560 -192 528 -192 WIRE -304 -160 -304 -176 WIRE -240 -160 -304 -160 WIRE -112 -160 -112 -176 WIRE -48 -160 -112 -160 WIRE -304 -144 -304 -160 WIRE -112 -144 -112 -160 WIRE 128 -128 96 -128 WIRE 240 -128 208 -128 WIRE 448 -112 416 -112 WIRE 560 -112 560 -192 WIRE 560 -112 528 -112 WIRE 592 -112 560 -112 WIRE -304 -48 -304 -64 WIRE -240 -48 -304 -48 WIRE -112 -48 -112 -64 WIRE -48 -48 -112 -48 WIRE 128 -48 96 -48 WIRE 240 -48 240 -128 WIRE 240 -48 208 -48 WIRE -304 -32 -304 -48 WIRE -112 -32 -112 -48 WIRE 448 -16 416 -16 WIRE 560 -16 528 -16 WIRE 128 32 96 32 WIRE 240 32 240 -48 WIRE 240 32 208 32 WIRE 272 32 240 32 WIRE -304 64 -304 48 WIRE -240 64 -304 64 WIRE -112 64 -112 48 WIRE -48 64 -112 64 WIRE 448 64 416 64 WIRE 560 64 560 -16 WIRE 560 64 528 64 WIRE -304 80 -304 64 WIRE -112 80 -112 64 WIRE 128 128 96 128 WIRE 240 128 208 128 WIRE 448 144 416 144 WIRE 560 144 560 64 WIRE 560 144 528 144 WIRE -304 176 -304 160 WIRE -240 176 -304 176 WIRE -112 176 -112 160 WIRE -48 176 -112 176 WIRE -304 192 -304 176 WIRE -112 192 -112 176 WIRE 128 208 96 208 WIRE 240 208 240 128 WIRE 240 208 208 208 WIRE 448 224 416 224 WIRE 560 224 560 144 WIRE 560 224 528 224 WIRE 592 224 560 224 WIRE -304 288 -304 272 WIRE -240 288 -304 288 WIRE -112 288 -112 272 WIRE -48 288 -112 288 WIRE 128 288 96 288 WIRE 240 288 240 208 WIRE 240 288 208 288 WIRE 272 288 240 288 WIRE -304 304 -304 288 WIRE -112 304 -112 288 WIRE -304 400 -304 384 WIRE -240 400 -304 400 WIRE -112 400 -112 384 WIRE -48 400 -112 400 WIRE -304 416 -304 400 WIRE -112 416 -112 400 FLAG -304 416 0 FLAG -304 -496 VREF FLAG -112 416 0 FLAG -112 -496 VREF FLAG -240 64 VA3 FLAG -240 -48 VA4 FLAG -48 -48 VB4 FLAG -48 64 VB3 FLAG -240 176 VA2 FLAG -240 288 VA1 FLAG -240 400 VA0 FLAG -240 -160 VA5 FLAG -240 -272 VA6 FLAG -240 -384 VA7 FLAG -48 176 VB2 FLAG -48 288 VB1 FLAG -48 400 VB0 FLAG -48 -160 VB5 FLAG -48 -272 VB6 FLAG -48 -384 VB7 FLAG 96 -224 VD0 FLAG 96 -304 VD1 FLAG 96 -384 VD2 FLAG 272 -224 VCout FLAG 96 32 V0 FLAG 96 -48 V0 FLAG 96 -128 V1 FLAG 272 32 VEout FLAG 96 288 V1 FLAG 96 208 V1 FLAG 96 128 V0 FLAG 272 288 VFout FLAG 416 -112 V0 FLAG 416 -192 V0 FLAG 416 -272 V0 FLAG 592 -112 VGout FLAG 416 224 V1x FLAG 416 144 V1x FLAG 416 64 V1x FLAG 592 224 VHout FLAG 416 -368 V1x FLAG 416 -16 V0 SYMBOL res -320 176 R0 SYMATTR InstName R1 SYMATTR Value 90 SYMBOL res -320 64 R0 SYMATTR InstName R2 SYMATTR Value 90 SYMBOL res -320 -48 R0 SYMATTR InstName R3 SYMATTR Value 110 SYMBOL res -320 -160 R0 SYMATTR InstName R4 SYMATTR Value 90 SYMBOL res -320 -272 R0 SYMATTR InstName R5 SYMATTR Value 90 SYMBOL res -320 -384 R0 SYMATTR InstName R6 SYMATTR Value 90 SYMBOL res -320 -496 R0 SYMATTR InstName R7 SYMATTR Value 90 SYMBOL res -320 288 R0 SYMATTR InstName R0 SYMATTR Value 90 SYMBOL res -128 176 R0 SYMATTR InstName R11 SYMATTR Value 90 SYMBOL res -128 64 R0 SYMATTR InstName R12 SYMATTR Value 90 SYMBOL res -128 -48 R0 SYMATTR InstName R13 SYMATTR Value 90 SYMBOL res -128 -160 R0 SYMATTR InstName R14 SYMATTR Value 110 SYMBOL res -128 -272 R0 SYMATTR InstName R15 SYMATTR Value 110 SYMBOL res -128 -384 R0 SYMATTR InstName R16 SYMATTR Value 110 SYMBOL res -128 -496 R0 SYMATTR InstName R17 SYMATTR Value 110 SYMBOL res -128 288 R0 SYMATTR InstName R10 SYMATTR Value 90 SYMBOL res 224 -400 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RCD2 SYMATTR Value 100 SYMBOL res 224 -320 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RCD1 SYMATTR Value 200 SYMBOL res 224 -240 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RCD0 SYMATTR Value 400 SYMBOL res 224 -144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED3 SYMATTR Value 90 SYMBOL res 224 -64 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED4 SYMATTR Value 220 SYMBOL res 224 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED5 SYMATTR Value 440 SYMBOL res 224 112 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD1 SYMATTR Value 90 SYMBOL res 224 192 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD2 SYMATTR Value 220 SYMBOL res 224 272 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD6 SYMATTR Value 440 SYMBOL res 544 -288 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED1 SYMATTR Value 110 SYMBOL res 544 -208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED2 SYMATTR Value 220 SYMBOL res 544 -128 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED6 SYMATTR Value 440 SYMBOL res 544 48 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD3 SYMATTR Value 110 SYMBOL res 544 128 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD4 SYMATTR Value 220 SYMBOL res 544 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD5 SYMATTR Value 440 SYMBOL res 544 -384 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RED7 SYMATTR Value 45 SYMBOL res 544 -32 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName RFD7 SYMATTR Value 45 TEXT -728 -344 Left 2 !;tran 100n TEXT -744 -272 Left 2 !VREF VREF 0 DC 0.8\nVD2 VD2 0 DC 0.7\nVD1 VD1 0 DC 0\nVD0 VD0 0 DC 0\nV1 V1 0 DC 0.7\nV0 V0 0 DC 0\nV1x V1x 0 DC 1.5 TEXT -736 -312 Left 2 !.op TEXT -728 -536 Left 2 ;Unit Element A: \nDNLmax = 2*dVR\nINLmax = dVR\nUnitElement B:\nDNLmax = dVR\nINLmax = (2^(NBit/2))/2 dVR TEXT -752 48 Left 2 ;Binary Element E:\nDNLmax = 2 * INLmax\nINLmax = (2^(NBit/2))/2 dVR TEXT -744 168 Left 2 !.save V(VA4) V(VA3)\n.save V(VB3) V(VB4) V(VB5)\n.save V(VCout) V(VEout) V(VFout)\n.save V(VHout) V(VGout) TEXT -744 312 Left 2 ;10% Worst Case Error Investigation\nLSB = 0.1 V TEXT 72 -488 Left 2 ;3 Bit Binary DAC TEXT 368 -488 Left 2 ;4 Bit Binary DAC
Undercutting Non uniformities Unit elements Ratio area to edge is constant. Common centroid design Systematic vertical and horizontal variations cancel out. Dummy elements |
![]() Capacitances |
![]() Resistors |
![]() |
![]() |
Lookup table, equation
![]() |
![]() |
Lookup table, equation
|
![]() |
Lookup table, equation
|
![]() |
Lookup table, equation
|
![]() |
Version 4 SymbolType BLOCK LINE Normal -16 0 -33 0 LINE Normal 16 0 -15 -16 LINE Normal 33 0 16 0 LINE Normal 0 -8 0 -46 LINE Normal -7 -31 0 -8 LINE Normal 0 -8 7 -32 PIN -32 0 NONE 8 PINATTR PinName in PINATTR SpiceOrder 1 PIN 32 0 NONE 8 PINATTR PinName out PINATTR SpiceOrder 2 PIN 0 -48 NONE 8 PINATTR PinName ctrl PINATTR SpiceOrder 3