Lab 2 – EE-421L
Authored by Matthew Daniel McDonagh
EE-421 Fall 2021
email: mcdonm6@unlv.nevada.edu
Lab description: In this lab we will be using n-well resistors to
implement a 10-bit DAC. This is a laboratory introduction to digital-to-analog-converters
as well as analog-to-digital converters. The design in this lab will be based
upon the topology seen in the figure below, which is also in the CMOS book.
CMOS technology allows multiple important implementations of these devices. The
controlling input bits in the figure below are from the ADC, meaning that the
inputs to the DAC are the left side of the 2R resistors. Implementation here is
achieved with the R-2R ladder:
Pre-lab work:
Continuing on with tutorial 1, place all files
in the proper directories using mobaXterm or terminal
application of choosing. The conceptual behavior behind the converters can be
elaborated on with a few short descriptions. Simple DAC
are implemented with R-24 string in voltage mode. For an ADC to collect
external information, analog signals must be converted to digital signals,
which is completed by sampling. An analog signal can be sampled without
aliasing (an effect that causes different signals to become indistinguishable).
The ADC range is max input to input, its precision is the number of
distinguishable inputs 2^N (where N is the number of bits). The ADC resolution
is the smallest distinguishable change in input V_in.max
/ 2^N where a change in input causes output to change by 1. Clock speed will
determine how quickly the converter can sample.
The accuracy of the sampling is computed in the following formula:
0.5 LSB / Full scale range (V_DD) = V_DD / 2^(N+1) * 1 / V_DD and the time
constant associated with the DAC and the capacitive load is r = RC_L. The
output formula for Vout = Vout.final(1-e^(-t/t))
the required setting time, t_setting = RC_L *
ln(2^N+1) and the max clock frequency, f_clk.max = 1/t_setting.
Opening the sim_Ideal_ADC_DAC schematic
under cell menu:
After running a simulation (following launchàADE LàSessionàLoad stateàCellviewàOKàGreen start button (simulation
of input of sin and no load):
The simulation results above show the relationship between Vin and
B[9:0] is that the ADC takes the input from the Vin
and converts this input to a digital signal that produces a 10-bit binary value
which is then received by the DAC and outputs an analog signal Vout. To discover the least significant bit (LSB) we simply
use the equation shown below where we plug in our VDD and N: LSB = Vred / 2^N which delivers a value of Vout
to be around 5mV. That value represents the LSB and graph below:
This concludes the pre-lab portion.
Part 1: Creating a Digital-to-Analog Converter
Beginning by creating a new schematic to fill in the ladder and
chain the 10 together:
Then creating a symbol for the schematic from cellview:
Using the symbol above to fill in a new schematic for the 10-bit
DAC:
topbottom
To re-use the symbol which was created for the lab 2’s ideal
10-bit DAC, I copied it into the custom 10-bit DAC schematic. This is the
result:
Now to calculate output resistance
Rout:
Next calculating the delay with all
the pins to ground barring B9 with a capacitance of C = 10pF. The formula is: t_d = (0.7)RC à t_d = (0.7)(10k ohms)(10pF) = 70ns. The
maximum output voltage for this node is determined by the following formula: Vout.max = Vin*(R/(R+R)) = ½ * Vin where Vout = ½ Vout.max. By setting 2V
= Vin, at halfing that, we should see Vout.max = 1V and Vout = ½ Vout.max = 0.5V when the delay t_d
= 70ns.
Here is the DAC design:
Corresponding circuit:
Now creating sim2_ideal_DAC and
replacing the DAC component with our own:
Here is the circuit under no load and
its simulation result:
Here is the circuit under a 10k
resistive load and its simulation result:
Here is the circuit under a 10pF
capacitive load and its simulation result:
Here is the circuit under both a 10k
resistive and 10pF capacitive load, and the resulting simulation:
Conclusion: Compared to the value of
the resistance R, if the switches are transistors or the resistance value of
the switches is larger than R, there would be a different equivalent resistance
of DAC. An equivalent resistance value that is larger than R would be caused by
the resistances in series being higher themselves. The smaller output voltage
value (Vout) would be caused by a higher resistance
from the larger voltage drop across the transistor. Each new equivalent
resistance value must be calculated and considered for the load of the 10-bit
DAC. These simulations show that the DAC works as expected. Without a load there
is simply a tiny lag, with a resistive load only the output is halved, with a
capacitive load only the output resolves smoothly with a delay, and when both
are present the DAC’s output experiences minimal lag and a reduced voltage
value.
I will back the work up on my google
drive as instructed.