Analog Labs Manual: IC614 ASSURA410
Analog Labs Manual: IC614 ASSURA410
Analog Labs Manual: IC614 ASSURA410
Revision 1.0
IC614
ASSURA410
MMSIM 101
Developed By
University Support Team
Cadence Design Systems, Bangalore
You will start the lab by creating a library called “myDesignLib” and you will attach
the library to a technology library called “gpdk180”. Attaching a technology library will
ensure that you can do front to back design.
You will create a new cell called “Inverter” with schematic view and hence build the
inverter schematic by instantiating various components. Once inverter schematic is
done, symbol for “Inverter” is generated. Now you will create a new cell view called
“Inverter_Test”, where you will instantiate “Inverter” symbol. This circuit is verified
by doing various simulations using spectre. In the process, you will learn to use
spectre, waveform window options, waveform calculator, etc...
You will learn the Layout Editor basics by concentrating on designing an “Inverter”
through automatic layout generation. Then you will go ahead with completing the
other layouts. After that, you will run DRC, LVS checks on the layout, Extract
parasitics and back-annotate them to the simulation environment.
After completing the parasitic back- annotation flow, design is ready for generating
GDSII.
There are a number of things to consider before beginning these lab exercises.
Please read through this section completely, and perform any needed steps in order to
ensure a successful workshop. These labs were designed for use with Incisive Unified
Simulator82, IC613 and Assura32.
Before running any of these labs, ensure that you’ve set up IUS92, IC614, MMSIM101
and Assura41 correctly:
You will also need to ensure that the IUS92 is setup correctly for lab 5.
These labs were designed to be run using Cadence Virtuoso tool and Assura tool.
1. Log in to your workstation using the username and password.The home directory
has a cshrc file with paths to the Cadence installation.
2. In a terminal window, type csh at the command prompt to invoke the C shell.
>csh
>source cshrc
3. To verify that the path to the software is properly set in the cshrc file, type the
below command in the terminal window and enter:
>which virtuoso
>which spectre
>which assura
Use the installed database to do your work and the steps are as follows:
> cd ~/Database/cadence_analog_labs_613
Directory Directory
. /Solutions Contains a local copy of all the lab experiments including test
circuit for simulation.
The virtuoso or Command Interpreter Window (CIW) appears at the bottom of the
screen.
Ø These rules usually specify the minimum allowable line widths for physical
objects on-chip such as metal and polysilicon interconnects or diffusion areas,
minimum feature dimensions, and minimum allowable separations between two
such features.
Ø The main objective of design rules is to achieve a high overall yield and
reliability while using the smallest possible silicon area, for any circuit to be
manufactured with a particular process.
Ø The layout design rules which are specified for a particular fabrication process
normally represent a reasonable optimum point in terms of yield and density.
Ø A layout which violates some of the specified design rules may still result in an
operational circuit with reasonable yield, whereas another layout observing all
specified design rules may result in a circuit which is not functional and/or has
very low yield.
Ø To summarize, we can say, in general, that observing the layout design rules
significantly increases the probability of fabricating a successful product with
high yield.
Lambda-based layout design rules were originally devised to simplify the industry-
standard micron-based design rules and to allow scaling capability for various
processes. It must be emphasized, however, that most of the submicron CMOS
process design rules do not lend themselves to straightforward linear scaling. The use
of lambda-based design rules must therefore be handled with caution in sub-micron
Schematic Capture
Below steps explain the creation of new library “myDesignLib” and we will use the
same throughout this course for building various cells that we going to create in the
next labs. Execute Tools – Library Manager in the CIW or Virtuoso window to open
Library Manager.
Note: A technology file is not required if you are not interested to do the layouts for
the design.
4. In the next “Technology File for New library” form, select option Attach to an
existing techfile and click OK.
5. In the “Attach Design Library to Technology File” form, select gpdk180 from the
cyclic field and click OK.
6. After creating a new library you can verify it from the library manager.
7. If you right click on the “myDesignLib” and select properties, you will find that
gpdk180 library is attached as techlib to “myDesignLib”.
In this section we will learn how to open new schematic window in the new
myDesignLib” library and build the inverter schematic as shown in the figure at the
start of this lab.
3. Click OK when done the above settings. A blank schematic window for the Inverter
design appears.
1. In the Inverter schematic window, click the Instance fixed menu icon to display the
2. Click on the Browse button. This opens up a Library browser from which you can
select components and the symbol view .
You will update the Library Name, Cell Name, and the property values given in the
table on the next page as you place each component.
3. After you complete the Add Instance form, move your cursor to the schematic
window and click left to place a component.
Use the Edit— Move command if you place components in the wrong location.
You can rotate components at the time you place them, or use the Edit— Rotate
command after they are placed.
4. After entering components, click Cancel in the Add Instance form or press Esc with
your cursor in the schematic window.
2. Type the following in the Add pin form in the exact order leaving space between the
pin names.
vin Input
vout Output
Make sure that the direction field is set to input/output/inputOutput when placing
the input/output/inout pins respectively and the Usage field is set to schematic.
3. Select Cancel from the Add – pin form after placing the pins. In the schematic
You can also press the w key, or execute Create — Wire (narrow).
2. In the schematic window, click on a pin of one of your components as the first point
for your wiring. A diamond shape appears over the starting point of this wire.
3. Follow the prompts at the bottom of the design window and click left on the
destination point for your wire. A wire is routed between the source and destination
points.
4. Complete the wiring as shown in figure and when done wiring press ESC key in the
schematic window to cancel wiring.
1. Click the Check and Save icon in the schematic editor window.
In this section, you will create a symbol for your inverter design so you can place it in
a test circuit for simulation. A symbol view is extremelyimportant step in the design
process. The symbol view must exist for the schematic to be used in a hierarchy. In
addition, the symbol has attached properties (cdsParam) that facilitate the simulation
and the design of the circuit.
The Cellview From Cellview form appears. With the Edit Options function active, you
can control the appearance of the symbol to generate.
2. Verify that the From View Name field is set to schematic, and the To View Name
field is set to symbol, with the Tool/Data Type set as SchematicSymbol.
1. Move the cursor over the automatically generated symbol, until the green rectangle
is highlighted, click left to select it.
2. Click Delete icon in the symbol window, similarly select the red rectangle and
delete that.
7. Execute Create — Selection Box. In the Add Selection Box form, click
Automatic.A new red selection box is automatically added.
8. After creating symbol, click on the save icon in the symbol editor window to save
the symbol. In the symbol editor, execute File — Close to close the symbol view
window.
3. Click OK when done. A blank schematic window for the Inverter_Test design
appears.
1. Using the component list and Properties/Comments in this table, build the
Inverter_Test schematic.
Note: Remember to set the values for VDD and VSS. Otherwise, your circuit will have
no power.
Tip: You can also press the w key, or execute Create— Wire (narrow).
4. Click Create — Wire Name or press L to name the input (Vin) and output (Vout)
7. Leave your Inverter_Test schematic window open for the next section.
In this section, we will run the simulation for Inverter and plot the transient, DC
characteristics and we will do Parametric Analysis after the initial simulation.
Launch – ADE L
Choosing a Simulator
Set the environment to use the Spectre® tool, a high speed, highly accurate analog
simulator. Use this simulator with the Inverter_Test design, which is made-up of
analog components.
Setup— Simulator/Directory/Host.
The Model Library file contains the model files that describe the nmos and pmos
devices during simulation.
1. In the simulation window (ADE), Execute Setup - Model Libraries. The Model
Library Setup form appears. Click the browse button to add gpdk.scs if not
added by default as shown in the Model Library Setup form.
Remember to select the section type as stat in front of the gpdk.scs file. Your Model
Library Setup window should now looks like the below figure.
To view the model file, highlight the expression in the Model Library File field and
Choosing Analyses
This section demonstrates how to view and select the different types of analyses to
The Choosing Analysis form appears. This is a dynamic form, the bottom of the form
c. Click at the moderate or Enabled button at the bottom, and then click
Apply.
d. Double click the Select Component, Which takes you to the schematic
window.
f. Select “DC Voltage” in the Select Component Parameter form and click OK.
f. In the analysis form type start and stop voltages as 0 to 1.8 respectively.
Set the values of any design variables in the circuit before simulating. Otherwise, the
simulation will not run.
2. Click Copy From at the bottom of the form. The design is scanned and all variables
found in the design are listed. In a few moments, the wp variable appears in the Table
of Design variables section.
3. Set the value of the wp variable: With the wp variable highlighted in the Table of
Design Variables, click on the variable name wp and enter the following:
Click Change and notice the update in the Table of Design Variables.
2. Follow the prompt at the bottom of the schematic window, Click on output net
Vout, input net Vin of the Inverter. Press ESC with the cursor in the schematic after
selecting it.
1. Execute Simulation – Netlist and Run in the simulation window to start the
Simulation or the icon, this will create the netlist as well as run the simulation.
We can save the simulator state, which stores information such as model library file,
outputs, analysis, variable etc. This information restores the simulation environment
1. In the Simulation window, execute Session – Save State. The Saving State form
appears.
2. Set the Save as field to state1_inv and make sure all options are selected under
what to save field.
2. In the Loading State window, set the State name to state1_inv as shown
Parametric Analysis yields information similar to that provided by the Spectre® sweep
feature, except the data is for a full range of sweeps for each parametric step. The
Spectre sweep feature provides sweep data at only one specified condition.
You will run a parametric DC analysis on the wp variable, of the PMOS device of the
Inverter design by sweeping the value of wp.
Run a simulation before starting the parametric tool. You will start by loading the
state from the previous simulation run.
Run the simulation and check for errors. When the simulation ends, a single
waveform in the waveform window displays the DC Response at the Vout node.
A selection window appears with a list of all variables in the design that you can
sweep. This list includes the variables that appear in the Design Variables section of
the Simulation window.
The Variable Name field for Sweep 1 in the Parametric Analysis form is set to wp.
These numbers vary the value of the wp of the pmos between 1um and 10um at ten
evenly spaced intervals.
5. Execute Analysis—Start.
The Parametric Analysis window displays the number of runs remaining in the
analysis and the current value of the swept variable(s). Look in the upper right corner
of the window. Once the runs are completed the wavescan window comes up with the
plots for different runs.
proceeding to the next section of the lab. To do this use edit property option.
2. Select Create New option. This gives a New Cell View Form
LSW and a blank layout window appear along with schematic window.
1. Execute Connectivity – Generate – All from Source or click the icon in the
layout editor window, Generate Layout form appears. Click OK which imports the
schematic components in to the Layout window automatically.
3. To rotate a component, Select the component and execute Edit –Properties. Now
select the degree of rotation from the property edit form.
Making interconnection
2. Move the mouse pointer over the device and click LMB to get the connectivity
information, which shows the guide lines (or flight lines) for the inter connections of
the components.
3. From the layout window execute Create – Shape – Path/ Create wire or Create –
Shape – Rectangle (for vdd and gnd bar) and select the appropriate Layers from the
LSW window and Vias for making the inter connections
Creating Contacts/Vias
You will use the contacts or vias to make connections between two different layers.
1. Save your design by selecting File — Save or click to save the layout, and
layout should appear as below.
Assura DRC
Running a DRC
1. Open the Inverter layout form the CIW or library manger if you have closed that.
2. Select Assura - Run DRC from layout window. The DRC form appears. The Library
and Cellname are taken from the current design window, but rule file may be missing.
Select the Technology as gpdk180. This automatically loads the rule file.
4. A Progress form will appears. You can click on the watch log file to see the log
file.
5. When DRC finishes, a dialog box appears asking you if you want to view your
DRC results, and then click Yes to view the results of this run.
6. If there any DRC error exists in the design View Layer Window (VLW) and Error
Layer Window (ELW) appears. Also the errors highlight in the design itself.
8. You can refer to rule file also for more information, correct all the DRC errors and
9. If there are no errors in the layout then a dialog box appears with No DRC errors
In this section we will perform the LVS check that will compare the schematic netlist
and the layout netlist.
Running LVS
1. Select Assura – Run LVS from the layout window. The Assura Run LVS form
appears. It will automatically load both the schematic and layout view of the cell.
5. If the schematic and layout do not matches, a form informs that the LVS completed
successfully and asks if you want to see the results of this run.
6. Click Yes in the form LVS debug form appears, and you are directed into LVS debug
environment.
7. In the LVS debug form you can find the details of mismatches and you need to
correct all those mismatches and Re – run the LVS till you will be able to match the
schematic with layout.
Assura RCX
In this section we will extract the RC values from the layout and perform analog circuit
simulation on the designs extracted with RCX. Before using RCX to extract parasitic
devices for simulation, the layout should match with schematic completely to ensure
that all parasites will be backannoted to the correct schematic nets.
Running RCX
2. Change the following in the Assura parasitic extraction form. Select output type
under Setup tab of the form.
5. Click OK in the Assura parasitic extraction form when done. The RCX progress
form appears, in the progress form click Watch log file to see the output log file.
5. When RCX completes, a dialog box appears, informs you that Assura RCX run
Completed successfully.
6. You can open the av_extracted view from the library manager and view the
parasitic.
3. Click OK in create New File form. The Hierarchy Editor form opens and a New
Configuration form opens in front of it.
5. Change the Top Cell View to schematic and remove the default entry from the
Library List field.
The hierarchy editor displays the hierarchy for this design using table format.
2. In the form, turn on the both cyclic buttons to Yes and click OK.
The Inverter_Test schematic and Inverter_Test config window appears. Notice the
4. Now you need to follow the same procedure for running the simulation. Executing
Session– Load state, the Analog Design Environment window loads the previous
state.
The simulation takes a few seconds and then waveform window appears.
6. In the CIW, note the netlisting statistics in the Circuit inventory section. This
list includes all nets, designed devices, source and loads. There are no
2. From the functions select delay, this will open the delay data panel.
3. Place the cursor in the text box for Signal1, select the wave button and select the
input waveform from the waveform window.
4. Repeat the same for Signal2, and select the output waveform.
5. Set the Threshold value 1 and Threshold value 2 to 0.9, this directs the calculator
to calculate delay at 50% i.e. at 0.9 volts.
1. Open the same Hierarchy Editor form, which is already set for Inverter_Test config.
2. Select the Tree View icon: this will show the design hierarchy in the tree format.
A pull down menu appears. Select av_extracted view from the Set Instance view
menu, the View to use column now shows av_extracted view.
6. From the Analog Design Environment window click Netlist and Run to
7. When simulation completes, note the Circuit inventory conditions, this time the
list shows all nets, designed devices, sources and parasitic devices as well.
8. Calculate the delay again and match with the previous one. Now you can conclude
how much delay is introduced by these parasites, now our main aim should to
minimize the delay due to these parasites so number of iteration takes place for
making an optimize layout.
4. In the Virtuoso XStream Out form, click Translate button to start the stream
translator.
1. Select File – Import – Stream from the CIW menu and change the following
in the form.
4. In the Virtuoso XStream Out form, click Translate button to start the stream
translator.
5. From the Library Manager open the Inverter cellview from the GDS_LIB library and
notice the design.
6. Close all the windows except CIW window, which is needed for the next lab.
Schematic Capture
Use the techniques learned in the Lab2.1 to complete the schematic of NAND gate.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab2.1 to complete the symbol of NAND gate
Use the techniques learned in the Lab2.1 to complete the simulation of NAND gate,
ADE window and waveform should look like below.
Use the techniques learned in the Lab2.1 to complete the layout of NAND gate.
Use the techniques learned in the Lab2.1 to complete the schematic of XOR gate.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab2.1 to complete the symbol of XOR gate
Use the techniques learned in the Lab2.1 to complete the simulation of XOR gate, ADE
window and waveform should look like below.
Use the techniques learned in the Lab1 and Lab2 to complete the layout of XOR gate.
Schematic Capture
Objective: To create a new cell view and build A FULL ADDER gate
Use the techniques learned in the Lab2.1 to complete the schematic of FULL ADDER
gate.
This is a table of components for building the FULL ADDER gate schematic.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab2.1 to complete the symbol of FULL ADDER
Use the techniques learned in the Lab2.1 to complete the simulation of FULL ADDER,
ADE window and waveform should look like below.
Use the techniques learned in the Lab1 and Lab2 to complete the layout of FULL
ADDER.
Schematic capture
Use the techniques learned in the Lab2.1 to complete the schematic of LATCH.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab2.1 to complete the symbol of LATCH
Use the techniques learned in the Lab2.1 to complete the simulation of LATCH, ADE
window and waveform should look like below.
Use the techniques learned in the Lab1 and Lab2 to complete the layout of LATCH.
Schematic capture
Use the techniques learned in the Lab2.1 to complete the schematic of SRAM.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab2.1 to complete the symbol of SRAM
Use the techniques learned in the Lab1 and Lab2 to complete the layout of SRAM gate.
Schematic capture
Use the techniques learned in the Lab2.1 to complete the schematic of GREY TO
BINARY CODE CONVERTER.
This is a table of components for building the GREY TO BINARY CODE CONVERTER
schematic.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab2.1 to complete the symbol of GREY TO BINARY
CODE CONVERTER gate
END OF LAB 3
Analog lab manual 85
4. Introduction to SPICE Simulation and
coding of NMOS/PMOS Circuits.
SPICE is a powerful general purpose analog circuit simulator that is used to verify
circuit designs and to predict the circuit behavior. This is of particular importance for
integrated circuits. It was for this reason that SPICE was originally developed at the
Electronics Research Laboratory of the University of California, Berkeley (1975), as its
name implies:
V1 (2 0) vsource dc=10
type=dc
In which SRC name is the name of the source you want to vary; START and STOP are
the starting
And ending value, respectively; and STEP is the size of the increment.
Analog lab manual 86
3. Output statements: specifies what outputs are to be printed or plotted.
Ex: Save vout vin
Coding of MOS:
The MOS transistor name (Nname) has to start with a M; ND, NG, NS and
NB are the node numbers of the Drain, Gate, Source and Bulk terminals, respectively.
ModName is the name of the transistor model. L and W are the length and width of the
gate.
Spice code of NMOS: NMO (vout vin 0 0) nmos1 w= (2u) l=180n as=1.2p ad=1.2p
ps=5.2u pd=5.2u
m= (1)*(1)
Spice code of PMOS: PMO (vout vin vdd vdd) pmos1 w=(2u) l=180n as=1.2p ad=1.2p
ps=5.2u pd=5.2u m=(1)*(1)
pd and ps are the value of the perimeter of the source and drain.
End of lab 4
The home directory has a cshrc file with paths to the Cadence installation.
2. In a terminal window, type csh at the command prompt to invoke the C shell.
>csh
>source cshrc
> cd ~/Database/cadence_analog_labs_613
4. In the same terminal window, observe the code of inverter and close.
>spectre inverter.scs
>viva inverter.scs
> cd ~/Database/cadence_analog_labs_613
2) In the same terminal window, observe the spice code of differential amplifier and
close.
>spectre Diff_amplifier.scs
>viva Diff_amplifier.scs
Schematic Capture
Objective: To create a new cell view and build Common Source Amplifier
Use the techniques learned in the Lab1 and Lab2 to complete the schematic of
Common Source Amplifier.
This is a table of components for building the Common Source Amplifier schematic.
Type the following in the ADD pin form in the exact order leaving space between the
pin names.
vout Output
Use the techniques learned in the Lab1 and Lab2 to complete the symbol of cs-
amplifier
Frequency= 1K
Use the techniques learned in the Lab1 and Lab2 to complete the simulation of
cs_amplifier, ADE window and waveform should look like below.
Use the techniques learned in the Lab1 and Lab2 to complete the layout of
cs_amplifier.
END OF LAB 6
Analog lab manual 102
Lab7:Design of PLL:
A phase-locked loop (PLL) generates a clock that is in sync with an input
signal. If the input signal changes, the phase detector (PD) detects the
difference in frequency and phase between the input and the output and sends
a filtered voltage to a voltage-controlled oscillator (VCO) to either raise or lower
the output clock frequency as necessary to bring it back into sync with the
input signal. PLLs are used widely in data recovery and frequency generation.
The PLL in this lab was designed as a schematic with both schematic and
Verilog® views of the phase detector and the schematic and Verilog-AMS views
of the VCO. A configuration is used to tell the simulator to use Verilog views for
the phase detector and the schematic view of the VCO. Control of the
simulation is done using the Virtuoso® Analog Design Environment
(ADE), which may be familiar to analog designers.
Schematic:
1. Change to the ADElab directory. If the directory in which the AMS Designer
directory is located is not your login directory, then replace the ~ with the
correct path.
cd ~/AMSDesigner/ADElab
The contents of this directory are the design contained in the PLL_lib directory,
a model file in the models directory, a cds.lib file, a directory containing
Connect Modules and rules, and an .artist_states file which can be used to load
the ADE form to save time.
. /compileConnect
The Command Interpreter Window (CIW) appears. You may close the What’s
New window if it appears (File—Close).
2. Open the Library Manager from the CIW (Tools—Library Manager).
Select the radio buttons to open both the Configuration (Hierarch Editor) and
the Top Cell View (schematic) of the PLL1 cell and click OK.
Note: The simulator was set to ams by a line in the .cdsinit file:
Note also that this form allows you to change the output directory name and to
set up distributed hosts, if you have them available. For this lab, leave it set to
a local host.
c. In the Select Connect Rules form in the User-defined rules section, browse to
find ConnRules_5V_full in the myconnectLib library. Close the browser window
after highlighting
ConnRules_5V_full, which will copy it to the Select Connect Rules form.
d. Click on the Add button to add the ConnRules_5V_full Connect Rules to the
simulation. The form should look like this:
You may close the netlist and log files when the simulation is finished.
2. Change the analog traces to Strip mode by clicking on the Strip mode icon.
If all four analog strips are not displayed, select one of them, execute Trace—
Edit, and change Strip Chart Visible Rows to a higher number. This form also
allows you to change trace colors and style. After changing colors for better
printing, the ViVA display looks something like this:
Note how the vco_in voltage changes in response to pump-down pulses (the
positive-going pulses) and pump-up pulses (the negative-going pulses), and
finally settles out after 10 us when the pump-down and pump-up pulse areas
are approximately equal. That indicates that syncing to the input signal (in_ref)
has been achieved.
End of lab 7
Analog lab manual 108