Lab 2 - EE 421L

Design of a 10-bit DAC 

Authored by Isabella Paperno, paperi1@unlv.nevada.edu

Start date: 09/05/2023

Due date: 09/13/2023

   

Pre-lab work:

Uploading lab2 zip file to Cadence
Unzip and define lab2 directory
Open the schematic
Load simulation state
Run simulation and view results
   
To calculate the least significant bit (LSB), we can use the equation provided in Fig. 30.14 from the CMOS book: 1 LSB = VDD/2^N
Should I want to find the LSB calculation of the DAC in Fig. 30.14 I would use 5 for N and could pick any VDD such as 5V.
However if I wanted to find the LSB calculation of the Ideal_DAC and compare it with the simulation results, I would use 5V as VDD and 10 as N, for the 10-bit DAC.
LSB Calculation
Through this hand-calculation, I found the LSB for a 10-bit DAC with VDD at 5V to be 4.88mV.

 

Lab description:

We will use n-well resistors to implement a 10-bit DAC based upon the components used in Fig. 30.14 from the CMOS book (seen below). The inputs to the DAC come from the ADC found on the left side of the 2R resistors.

Fig. 30.14 5-bit DAC from the CMOS textbook

    

Lab procedures:

   

Creating schematics and symbols: 

I first started the lab by creating a 10k n-well resistor (voltage divider). Since this required 2R along the input wire, I made sure to implement it using two separate 10k resistors in series. Now, this voltage divider can act as 1-bit needed for the 10-bit DAC.

Creating a 10k n-well resistor (voltage divider)

   

This was then converted into a symbol with an input, output, and an inout connection for the next bit. This next_bit inout connection will be used for connecting multiple 1-bit symbols to create the 10-bit DAC.

Creating a symbol for the voltage divider of 10k resistance

   

Now that the 1-bit symbol is completed, I can begin working on the 10-bit DAC. I created a new schematic where I added 10 of the 1-bit connectors and wired them all together to create the 10-bit DAC. The top-right connection represents bit 9 and is connected to the output while the bottom-left connection represents bit 0 and is connected to ground with a 10k resistor in between. A closer view of the bottom half of the 10-bit DAC is besides (to the right of) the full image.

Displaying the full schematic of the 10-bit DAC         Showing a closer image of the bottom half of the 10-bit DAC

The 10k resistor underneath the b0 connection is necessary to ensure that the 10-bit DAC has 2R going out to ground.

     

Finally, a symbol can be created for the 10-bit DAC.

Symbol for 10-bit DAC

   

    

Hand Calculations:

Now that the 10-bit DAC is finished, it needs to be tested to check if it was done correctly. For this test, all inputs except B9 have been grounded and B9 is connected to a pulse source (0 to VDD). To verify it was done correctly, I will preform hand calculations to compare the simulation results to.

I have drawn out the pathing of the voltage under the specified condition above and found that the output voltage is expected to be half of the input voltage. I have also preformed hand calculations to predict the output of this 10-bit DAC using 0.7RC to find the delay of the DAC when it has a 10pF load and found it to be 70ns.

Calculating output voltage for a 10-bit DAC when only B9 is high

Calculating the time delay of the RC circuit

   

   

Simulations: 

This first simulation will performing under the same conditions as the hand calculations to check the validity of the 10-bit DAC. Again, the conditions are that all inputs except B9 have been grounded and B9 is connected to a pulse source (0 to VDD). For the sake of the simulation, I chose VDD to be 5V.

Schematic for 1st simulation (simulating everything except B9 grounded)Transient analysis of 1st simulation

This simulation confirms my hand calculations that, with everything except B9 grounded, the output voltage is half of the input voltage as the 2.5V output is exactly half of the 5V input.

    

Now that I know my 10-bit DAC works properly, I can connect it to the provided Ideal ADC component and run the provided simulation.

Replaced the Ideal DAC to use my 10-bit DAC

    

When I tried running the given simulation I ran into a few errors so I had to force the simulation to converge by going into the ADE Simulation -> Options -> Analog and setting the values as seen below.

Changing values to force the simulation to converge

   

Once that was completed I still had errors running the simulation. So I ended up changing the VDD from 5V to 4.99V, changing my schematic as seen below.

Full schematic after change

   

Then I was able to successfully run the provided simulation and obtained the following outputs, which match the outputs from the Ideal DAC simulation performed in the prelab.

Transient analysis of given simulation

    

Next, I added a 10k resistive load to the output of the previous schematic and ran the same simulation. 

Here, I am expecting the output voltage to be half of the input voltage as seen in my hand calculations.

Adding a 10k resistive load to the previous schematic

Transient analysis results after adding the 10k resistive load

And these results display exactly what was predicted: the output voltage is exactly half of the input voltage.

    

Then I replaced the 10k resistive load with a 10pF load.

Here, I am expecting the output voltage to lag behind the input voltage by 70ns as seen in my hand calculations.

Replacing the 10k resistive load with a 10pF load

Transient results of using a 10pF load

    

Finally, I am testing both the 10k resistive load and 10pF load in parallel with each other.

With this, I am expecting both of the previous results to occur simultaneously.

10-bit DAC with a 10k resistive load and 10pF load

Transient results of 10-bit DAC with a 10k resistive load and 10pF load

And this graph does resemble the expected results. The output voltage is just about half of the input voltage and is lagging behind by about 70ns.

   

   

Questions: 

When the DAC drives a 10k load the output voltage becomes half of the input voltage, as seen in the simulations above. This is due to the additional 10k load creating a voltage divider at the output of the 10-bit DAC.
In a real circuit, should the resistance of the switches be larger than they are currently when compared to R then the DAC would not be able to function accurately. The voltage division could possibly be influenced by the resistance of the switches, resulting in an output voltage that can vary drastically depending on how much larger the switch resistances are compared to R.

Conclusion:
In this lab, I was able to successfully create a 10-bit DAC and produce simulations that lined up with my hand calculated predictions. Through the simulations I was able to understand exactly how a DAC works by viewing the output voltage without any loads, using just a resistive load, using just a normal load, and using both a resistive and normal capacitive load. Without any load, the output is the exact same as the input just jagged due to the large amount of resistors. However adding one more resistor for the resistive load changes the output by becoming a voltage divider, effectively making the output voltage half of the input voltage while still being jagged. If a capacitor is used instead of a resistor for the load then the output voltage smooths out and lags due to the charging/discharging of the capacitor. Ultimately, adding both a capacitor and resistor as the load combines those effects, smoothening the output voltage while making it half of the input voltage and lag behind the input by 70ns.
     
     
Backing Up Lab Work:
zipping up my lab work
Emailing zipped lab work to myself

     

     

Return to EE421L Lab listings