Lab 1 - ECE 421L

Created and edited by Michael Parker

Email : parkem3@unlv.nevada.edu
Last updated : August 31 2021



Pre-Lab

    - Prior to the first day of lab, but not to exceed one week before the lab, request a CMOSedu account from Dr. Baker.

    - Review material given for editing webpages. (material found here)



Lab Overview

    The purpose of this lab is to familiarize yourself with setting up Cadence, creating a new library, drafting a circuit, and simulating that circuit.


Lab Procedures


    As we began the lab we were to download the NCSU Cadence Design Kit (CDK) and extract it to our home folder. With this accomplished, we were to edit our .bashrc file
and the cds.lib file with the following respectively.

export SPECTRE_DEFAULTS=-E

export CDS_Netlisting_Mode=Analog

export CDS_LOAD_ENV=CWDElseHom 



                                             fig.1

    DEFINE analogLib /usr/cadence/IC615/tools.lnx86/dfII/etc/cdslib/artist/analogLib
       DEFINE functional /usr/cadence/IC615/tools.lnx86/dfII/etc/cdslib/artist/functional
       DEFINE sbaLib /usr/cadence/IC615/tools.lnx86/dfII/etc/cdslib/artist/sbaLib


                                                  fig. 2

    One final piece of setup was needed for us to be up and running. There is an error with the rule files in the ami06 tech library and we needed to fix that by replacing the old files with new downloaded files.


   
                        fig. 3

    In order to accomplish this we navigated to the rule files in the ami06 tech library found in our home directory under
$HOME/ncsu-cdk-1.6.0.beta/lib/NCSU_TechLib_ami06.Once inside that directory we deleted divaDRC.rul, divaEXT.rul, and divaLVS.rul and replaced them with the new files from here. (fig. 3)

    Now that we had set up everything that we needed to get started with cadence we could open up our terminal window navagate to the CMOSedu directory and typed virtuoso & in order to launch Cadence. If Cadence launches correctly you should be greeted with the image below (fig. 4). Our next step was to create a new library for our schematic to be created in, and we did this by selecting file > new > libreary at the top of the libreary manager window. This will popped up a new window (fig. 5) where we named our library, attached the AMI06 tech library to it, and selected OK. This can be checked by navigating to your cds.lib and seeing the image below (fig. 6) defining that library.


   
                                             fig. 4                                                                       fig. 5


 

                               fig. 6

    Now that we have our library we are going to start creating our schematic. With our created library selected in the manager window, we selected File > New > Cell View and the next window (fig. 7) popped up allowing us to name the cell etc.


  
                     fig. 7

    With the cell window open we could start drafting our circuit. First two resistors were needed one horizontal and one verticle. This was achieved by hitting the I key in order to pull up the component window, selecting R L C from the analog menu and selecting res for resistor. This popped out a new window that allowed us to input the resistance of each resistor. Once the parameters were set all that was needed was a simple left click to set the resistor or a right click to rotate it before setting it (fig. 8). Next, we added a ground in the same way, added a 1V voltage source (fig. 9), added wires connecting everything, and finally namec the input voltage node (in) and output voltage node (out) (fig. 10).


 
                                 fig. 8                                                      fig. 9



                                     fig. 10

    After all of the previous design steps were completed we had a schematic that looked like this (fig. 11).



                              fig. 11

    Next was the simulation of the circuit. First I saved and checked the circuit for any errors (fig. 12). With that complete I opened the ADE L, but there was anerror and it launched ADE XL instead (fig. 13).



                                               fig. 12



                                                fig. 13

    The first thing I needed to do was to select the type of simulation that i wanted to run. I selected transient and one second (fig. 14). Then i selected the nodes to be plotted and saved the state (fig. 15) in order to save time when running the simulation in the future. I then ran the simulation which outputted the final results (fig. 16).



                 fig. 14                                  fig. 15



                                          fig.16


Periodic Backup

    During the course of a lab and writing my lab report I want to be able to protect my work from possible loss or error. I backed everything up by saving all of my files to a single folder, zipping that folder (fig. 17) and emailing it to myself periodically, about once every 30 minutes (fig. 18). 



                         fig. 17                                                             fig.18