Lab 1 - EE 421L 

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

Start date: 08/30/2023

Due date: 09/06/2023

   

Pre-lab work:

 

Lab description:

We will familiarize ourselves with Cadence by following Tutorial 1 seen here up to the 25th image.

We will also use an Xterm (written and video) as discusssed in class and NOT a remote desktop as used in the tutorial.

  

Lab procedures:

 

After setting Cadence up we need to go to the following directory: $HOME/ncsu-cdk-1.6.0.beta/lib/NCSU_TechLib_ami06

Then select and delete the divaDRC.rul, divaEXT.rul, and divaLVS.rul files.

Open directory for diva files and delete them

 

Once those files are gone, extract files from diva_rul_files.zip and upload them into the $HOME/ncsu-cdk-1.6.0.beta/lib/NCSU_TechLib_ami06 directory.

Upload extracted diva files

Upon completion of this we will be able to use DRC, Extract, and LVS on our layouts.

   

   

Now we can start Cadence's Virtuoso editing tool by typing cd CMOSedu to enter the proper directory and virtuoso & to open the editing tool.

Open Cadence Virtuoso

  

Doing so causes Virtuoso to open as the Command Interpreter Window (bottom right) then the Library Manager (left), all while keeping our terminal window open in the background.

Virtuoso CIW and Library Manager open over the terminal

  

Now we can create a new library. To begin, go back to the Library Manager and select File -> New -> Library to have a window to create a new library pop up. We'll name the library Tutorial_1 then under the Technology Library select "Attach to exisiting tech library" and find the AMI 0.60u C5N (3M, 2P, high-res) selection. Once selected hit Apply then OK.

Create a new library

 

Any time a library is created, we need to define it in our cds.lib file. To do so, go back into the CMOSedu directory and open the cds.lib file. Scroll to the very bottom of the file and add DEFINE Tutorial_1 /home/paperi1/CMOSedu/Tutorial_1.

Define library w/ arrow

  

Now go back to the Library Manager and select the Tutorial_1 library that we created. Once selected go to File -> New -> Cell View and enter the information seen below. Then hit OK.

Create a new Cell View

   

Once we hit OK a new window pops up that allows us to add components (instances) by going to Create -> Instance (or using the Bindkey I).

Add a component (instance)

  

Doing so brings two new pop up menus. In the Add Instance menu we can select which library we want to use, right now we will use the NCSU_Analog_Parts library. This would automatically update the Component Browser menu to show all components within the selected library. In the Component Browser select R_L_C then res and the Add Instance menu will expand with more options. Looking back at the Add Instance menu, change the resistance value to 10k as seen below. To finish it all off, hide the Add Instance menu and minimize the Component Browser menu.

Create a resistor

  

Add the two resistors as seen below. Right click the mouse (or use the Bindkey R) to rotate a symbol and press Esc to leave the Add Instance mode. To quickly fit the display, use the bindkey F. A list of all the Bindkeys can be found here.
Place two resistors

   

To change the resistor's value after it has already been placed, select the resistor and use Edit -> Properties -> Objects (or use the Bindkey Q). Press Esc a few times to ensure that no commands are active.

Change the resistor's properties

   

Next add ground to the schematic by pressing I (add instance), selecting Supply_Nets and gnd as seen below. If we know the name and Library of the instance we are adding, we can select them directly in the Add Instance menu without needing to use the Component Browser menu. Then use F to fit all components in the window again.

Add ground

    

Now we'll add a 1-V DC power source. In the Component Browser menu, under Voltage_Sources, select the symbol name vdc. Then in the Add Instance menu make sure to set the DC voltage to 1V.

Add 1V DC power source

 

After placing all our symbols we need to wire them together as seen below. This can be done using the Bindkey W or the menu item circled below. 

Add wires to connect the circuit

   

We can lebel wires with signal names by using the bindkey L or the menu item circled below. Let's add labels as seen below.

Add wire names

  

We're almost ready to simulate the circuit now. We just need to do a "Check and Save" first. This needs to be done any time we edit the schematic, otherwise all attempts to simulate it will fail. In the Command Interpreter Window we can see if the check was successful or not, if it was not successful then we would not be able to simulate the schematic.

Check and save schematics

  

Now we can begin the simulation by going to Launch -> ADE L as seen below.

Open simulation menu

  

This will pop open a new menu, the Virtuoso Analog Design Environment (ADE). Before we simulate we need to change our simulator to Spectre (Cadence's SPICE simulator) by going to Setup -> Simulator/Direcory/Host and changing the simulator to Spectre if it is not already.

Set the simulator to Spectre

   

Next we need to pick our simulation analysis type by going to Analyses -> Choose. Here we will select a transient analysis (tran) with a stop time of 1 second and Enable it as seen below.

Select schematic analysis type

  

Then we need to select which signals we want to plot. To do so, go to Outputs -> To Be Plotted -> Select On Schematic.

How to select signals to plot

 

From here, go to your schematic and select the wires as seen below.

Selecting signals to plot

  

Looking back at the ADE, we should see the following.

Prepared simulator

  

We are finally ready to simulate the circuit and can do so by pressing the green "Netlist and Run" button. However, before we run the simulation it is best to save this information so future simulations of this circuit would not need to go through all these steps again. In the ADE menu go to Session -> Save State and select Cellview then hit OK.

Save the prepared simulation

 

To load this state we would select, in the ADE menu, Session -> Load State and make sure to select Cellview then OK.

How to load states

   

Finally we can hit the green play button and run the simulation to get the following results.

Simulation results

This concludes the portion of Tutorial 1 that we are meant to cover.

   

   

Throughout this lab, and all future labs, I have contsantly backed up my lab after every couple steps. To ensure the most accurate protection, I have backed up my lab work by zipping it all up and sharing it with myself in two different ways.

  

First off, I have all my work saved to my desktop before even attempting to upload it to the CMOS website. After every couple steps I zip up everything in my lab folder and save it to my desktop.

zipping my lab work
   

Once all my work is zipped up I open up my UNLV email and send it to myself with a breif update on what steps have been completed since the last backup.

Emailing my zipped lab work to myself

   

Finally, just to be safe, I also upload both my zipped lab work and all lab work in my desktop folder to my Google Drive.

Saving my lab work to Google Drive

     

     

Return to EE421L Lab listings