Lab 2 - EE 421L

Design of a 10-bit digital-to-analog converter (DAC)

Michael Ghisilieri

ghisilie@unlv.nevada.edu

9/6/16

  

  

Pre-Lab:

  

The pre-lab for Lab 2 covers setting up of a library which contains the ADC and DAC that

will be simulated and used to also expand our knowledge of the simulation tools in Cadence.

 

1) Narrative of the steps from the pre-lab

  

The first thing to do is unzip our lab2.zip file to our working directory which can be seen in our CMOSedu folder.

 

unzipped.jpg

  

  

After our new folder, lab2, is in our working directory and the path has been added to the .cdsinit file,

we will be able to view the library and the cells within it in our Library Manager window. The file we will

be opening is the schematic of the cell sim_Ideal_ADC_DAC.

 

library_manager.jpg

  

  

Schematic of sim_Ideal_ADC_DAC.

 

schematic.jpg

  

  

Our initial simulation of the ADC-to-DAC provides a simple graph with input and output going from 0-5V,

but the background color, line type, and line thickness were all changed to show our understanding of the

simulation tools Cadence has to offer.

  

custom_graph.jpg

  

  

2) Provide and discuss different simulation results of the ADC and DAC

  

Changing the input voltage of the ADC to 1.5V amplitude and 1.5V offset along with a different frequency

of 1MHz will cause the input and output voltages to go from 0-3V rather than 0-5V. The period will also be

twice as long as a 2MHz frequency with a 1 microsecond period as shown below.

 

different_voltage.jpg  

 

3) Explain how the LSB of the ADCs input will work

  

The lab gives the equation 1 LSB = VDD/2^(# of bits) for determining the minimum voltage needed to change

the LSB bit of the ADC. For our ADC, a VDD of 5V is given and it is 10-bits. This gives 5V/1024 or roughly 4.88mV.

Based on this value, anything less than 4.88mV should not cause the ADC to trigger the LSB while anything above

will lead to an output from the DAC that is non-zero.

  

  

Setting the input voltage to 1mV, which is less than the minimum 4.88mV needed to change the LSB, will not

cause any of the bits to change and an output of zero should be expected from the Vout trace.

 

 1mv_schematic.jpg

 1mv_simulation.jpg

  

  

If we now give an input voltage of 5mV, it should be enough to change the LSB and cause a non-zero output.

  

 5mv_schematic.jpg

 5mv_simulation.jpg

  

 

 

Lab Work:

 
The post-lab will cover the creation of a 10-bit DAC while using symbols to simplify the schematic views and make
it easier to put together. Various simulations will be run to verify that the DAC works properly and to answer questions
regarding the DAC.
 
Design of a 10-bit DAC using R of 10k:
 
The 10-bit DAC will be created using 10k resistors with the 2R resistor being split up into two separate 10k resistors.
A single bit of the DAC will look like the schematic below with the symbol view of it shown on the right.
 
1_bit_dac_schematic.jpg1_bit_dac_symbol.jpg
 
 
The full schematic of the 10-bit DAC will simply make use of the 1-bit DAC created above but layered on top
of one another with bits 9 down to 0 as inputs and Vout as the only output in the schematic.
 
10_bit_dac_schematic.jpg
 
 
Creating a symbol view based on Ideal_10-bit_DAC symbol:
 
To create the symbol view of our own 10-bit DAC in place of the given Ideal_10-bit_DAC symbol, we will need
to navigate in our Schematic Editor to Create > Cellview > From Cellview as shown.
 
symbol_instr_1.jpg
 
 
The following menu will now open and after pressing OK, the location of the pins can be changed as well
as their name if desired (that window is not shown below).
 
symbol_instr_2.jpg
 
 
Once our symbol has been created, we can delete any unnecessary labels or boxes around our symbol while
just leaving the input and output pin names along with a helpful symbol name (10-bit_DAC in my case).
 
10_bit_dac_symbol.jpg
 
 
Simulation of DAC to verify that is functions correctly:
 
Now that we have created the symbol for our DAC, the Ideal_10-bit_DAC can be removed from the
sim_Ideal_ADC_DAC (a copy should be made of this) schematic and replaced with our own. The VDD
and GND pins will be removed but since our symbol is identical otherwise, it can be easily dropped in.
 
my_adc_dac.jpg  
 
 
This is the output of the simulation using my 10-bit DAC. It is very similar to the output given by the Ideal DAC.
 
my_adc_dac_simulation.jpg
 
 
Determining the output resistance of the DAC:
 
resistor_calc.jpg
 
 
DAC driving 3 different loads:
 
Explain what happens if the DAC drives a 10k load?
 
The first load that the DAC will drive is a resistor of 10K. Since the output resistance of the DAC is already equal to
10K and we are adding a 10K resistor in parallel, it will create a voltage divider where the output from the DAC will be
equal to roughly half of the input voltage. This proves to be true based on the simulation below.
 
r_sch.jpg
r_sim.jpg
 
 
The second load is a capacitor which will have a value of 1pF.
 
c_sch.jpg
c_sim.jpg
 
 
The third load is both a capacitor and resistor which I followed the schematic shown in the lab (Figure 30.14).
 
rc_sch.jpg
rc_sim.jpg
 
 
Delay and driving a load:

 
This part of the lab involves grounding all of the inputs of the DAC except for the MSB B9. A pulse wave is then
fed into as the input and a 10pF load is driven where we need to predict the delay using 0.7RC. As mentioned earlier,
our R value will be 10K and C will simply be the load of 10pF.
 
0.7RC = 0.7(10K*10pF) = 70nS
I added a 50nS delay to the pulse in this circuit so the delay in the simulation will be 120nS for 1/2*Vmax rather than 70ns.
 
delay_schematic.jpg
delay_sim.jpg
 
   
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.


If the switches offer a large resistance compared to R, then the equivalent resistance will be much less than R
since the continuous parallel resistors of a large resistance and 2R will continue to get smaller. This will cause
the RC value to go down which will decrease the time delay.
 
 

Return to EE 421L Labs