// Build DAC lookup tables for 12-bit DACs. // MOS 6581: 2R/R ~ 2.20, missing termination resistor. build_dac_table(model_dac[0], 12, 2.20, false); // MOS 8580: 2R/R ~ 2.00, correct termination. build_dac_table(model_dac[1], 12, 2.00, true);
// The SID DACs are built up as follows: // // n n-1 2 1 0 VGND // | | | | | | Termination // 2R 2R 2R 2R 2R 2R only for // | | | | | | MOS 8580 // Vo --R---R--...--R---R-- --- // // // All MOS 6581 DACs are missing a termination resistor at bit 0. This causes // pronounced errors for the lower 4 - 5 bits (e.g. the output for bit 0 is // actually equal to the output for bit 1), resulting in DAC discontinuities // for the lower bits. // In addition to this, the 6581 DACs exhibit further severe discontinuities // for higher bits, which may be explained by a less than perfect match between // the R and 2R resistors, or by output impedance in the NMOS transistors // providing the bit voltages. A good approximation of the actual DAC output is // achieved for 2R/R ~ 2.20. // // The MOS 8580 DACs, on the other hand, do not exhibit any discontinuities. // These DACs include the correct termination resistor, and also seem to have // very accurately matched R and 2R resistors (2R/R = 2.00).