Authored by Jonathan Young on September 14, 2015
Email: youngj1ATunlv.nevada.edu
Design of a 10-bit digital-to-analog converter (DAC).
1. Provide a narrative of the steps seen in Lab 2 directions.
2. Provide and discuss cadence
simulation results, which are different from those illustrated in the Lab 2 directions to
demonstrate understanding of the ADC and DAC.
3. Explain how to determine the least significant
bit (LSB, the minimum voltage change on the ADC's input to see a change in the digital code B[9:0])
of the converter. Use simulations to back up answer.
Download the lab2.zip file and extract it to to Cadence for use in this lab. The following images will demonstrate this process.
The general concept of the Analog to Digital Converter (ADC) is to convert the input voltage (sin
wave, in this case) to a digital output. This output is then sent as B[9:0] to the Digital to Analog
Converter (DAC), which in turns generates an analog output (its best representation of the sine
wave, but is a very small step function that closely corresponds to a sin wave). This is seen in
Figure 7, above.
Varying of the input voltages that exceed the acceptable range or are negative will affect what the
ADC and DAC will handle. Thus, since our convert only handles 0V to 5V, anything outside of this
specific range will result in the DAC having a steady straight line at the corresponding voltage
line. Example, as seen below: When the input voltage is at 6 Volts, the DAC only outputs 5V as its
max and remains a steady flat line. This is because the 6V is outside the range of the convert by
1V. Thus, the simulation above in Figure 7 is different than below as the DAC does not closely
follow the input sin wave.
The least significant bit is the smallest bit value that is handled by a circuit, such as our
converter above being B[0]. Anytime the input changes, it causes a corresponding output which
affects this value. This is controlled by voltage values. In this case we need to know the smallest
amount of voltage value that will affect this output bit, which is determined by the following:
1/(2^(10))=1/1024. Note: This is a fraction, which corresponds to 1 bit over the total number of
bits, since a bit can be on or off this is binary (2). To determine the voltage, we take the
fraction of all the bits and multiply by the maximum input voltage the circuit accepts (5 in this
case), which gives us the following: 5/1024= 0.0048828125. This value is the smallest voltage value
that will cause a change in a single bit, thus anything around 5mV will see B[0] output a value of
1.
A side note, to change the first and second values to 1, B[1:0], 00000011, the following voltage
will need to be applied: 5/1024 * (1+2)= 0.0146484375, which is roughly 14.6mV.
1. Design a 10-bit DAC using n-well R of 10k resistors, using the resistor topology from the CMOS textbook. For the 2R
resistors, use two separate 10k resistors in series. For R, use a single 10k resistor.
2. Discuss how to find the output
resistance of the 10-bit DAC, with the final result being R by combining resistors in parallels and series.
3. Drive a
load on the 10-bit DAC. Ground all inputs, except for B9, which connects a pulse input. Show and calculate the delay
through the 10-bit DAC with a 10pF capacitor load. Verify the simulation matches calculations.
4. Create a symbol view
of the 10-bit DAC, using a copy of the 10-bit DAC provided in the lab2.zip download. The only changes that need to be
made are with the schematic. Simulate and verify that the 10-bit resistor topology DAC functions correctly.
5. Create
new schematics and simulations to test the load of a resistor, capacitor, and both in parallel. Explain what happens
with the resistor load, specifically related to voltage.
6. Discuss what happens if the resistance of the switches is
not small compared to R.
7. Back up your work.
For this lab, we are going to be using resistors to create a DAC unit. The DAC should function similar to that in the Pre-Lab. To accomplish this tasks, the use of 10k resistors will be used for every instance of R and two 10k resistors will be in series will be used for every instance of 2R in the schematic below. Once this is accomplished, a symbol will be created reflecting these resistors. This symbol will then be used to place the resistors as our DAC unit, with a new symbol being created to reflect this. We will directly tie the input pins (b0..b9), b9 being the most significant bit, into the resistor network. In the resistor based DAC design, the VDD as shown below in Figure 9 will not be used. The last 2R resistor will be tied to ground, note this will be a 20k resistor since two 10k resistors are in series.
The resistors at the bottom of Figure 11 are calculated via joining the resistors in series and in parallel. This process keeps repeating from the bottom of Figure 9 to the top of Figure 9 until the final total resistance is just R. This resistant (R) is what is added to the bottom right of Figure 11, ie the connection to ground. Note: The calculation for the 2R resistors in parallel is as follows:
This process is demonstrated below:
Using the schematic from Figure 15, the B9 point outputs a binary output 2 to the power of 9 (since is is in 10th place) which is 512. The voltage output from the 10-bit DAC is 5V(Vin) * (512/1024)=2.5V. The delay for this circuit is given by td=0.7RC=0.7*10kohm*10pF=70ns. Note: This delay is the half-way point of the output and thus the output at 70ns should be 2.5V/2=1.25V.
Prompt: In a real circuit the switches seen above (the outputs of the ADC) are implemented with transistors
(MOSFETs). Discuss what happens if the resistance of the switches isn't small compared to R.
The resistance of the switches in the circuit must be small compared to R, otherwise the switch resistance would affect the R/2R ladder network. In other words, if the switch resistance is too large it would become a resistor in series with the 2R input and thus change 2R to 2R plus switch resistance. This would affect the scaling and LSB of the 10-bit DAC.