Simulating a Design Using Eldo
Eldo is an analog circuit simulator that allows you to test the design you created in Design Architect in a Spice flavor fashion. By just substituting the lowest level gate cell in the spice netlist, it is quite convenient to perform timing analysis using the same gate design. A CMOS inverter is going to be used as an example to illustrate the steps for building and verifying analog components. Since procedures for DC and AC analysis are similar to those of time transient analysis, transient analysis and DC sweep analysis will be focused in this tutorial.
Note: Section added after Sweep Analysis for Monte Carlo analysis.
1. Setting the Working Directory
4. Setting up a Transient Analysis
10. Setting up Sweep Analysis:
1. Setting the Working Directory
From the UNIX
terminal, navigate to the directory where your Design Architect Schematic is
located. In this case we have called the
design “inv” and it should be located in your home directory, i.e. just under
your user name.
disk2/acc/xxx
Where “xxx” represents your user name.
If you
are not already in this directory, navigate to this directory. Set this as the working directory using the “swd” command.
Invoke “daic” from your working directory using the following command
adk_daic
To open your design select
file -> open
Navigate to the appropriate filename and click “ok” to accept the design.
Once design architect has opened open your design by navigating to
simulation -> ami05
This will create your design viewpoint.
_files/image002.jpg)
Next click “ok” when prompted for a simulation configuration.
_files/image004.jpg)
Click “ok” again when prompted again to accept default configuration settings.
Right click on the hierarchy window
and select “open schematic.”
Your schematic should now be open in the simulator window.
Once you have the schematic open in simulator mode you must complete a few tasks to configure the simulator.
Witch your cursor anywhere in the schematic window type the following command.
dofile
$ADK/unh_eldo_ami05.dofile
_files/image010.jpg)
This file sets parameters such as lambda for the simulator to use to interpret your schematic.
Press “enter” to execute the dofile.
The next step is to link to the spice models necessary for the simulator to interpret devices such as the transistors.
To link to these models go to
Library/ Temp/Include Files->Libraries
Browse to the following library path
$ADK/technology/accusim/ami05.mod
_files/image012.jpg)
Now choose:
Library/ Temp/Include Files->Include Files
Browse to the following file:
$ADK/technology/accusim/unh_vdd.spi
This include file defines the value of the VDD symbol.
_files/image014.jpg)
Click “ok” to accept this choice.
Change the name of the GROUND to GND in the spice netlister.
In the right hand palette menu go to
Session->Netlister
change GROUND to GND
_files/image016.jpg)
Finally go to
Session ->
Simulator/Viewer
In the dialog box that follows click the “advanced” button
The following dialog box should appear. Make sure your dialog box looks exactly like the one below.
If “MGC_WD” is not entered enter in the location shown below.
_files/image018.jpg)
4. Setting up a Transient Analysis
Click the “analysis” button
Choose “transient” as the type of analysis to perform.
Choose the “setup”
button.
Setup your transient analysis as shown
below, and select “ok.”
_files/image022.jpg)
Select the input signal within the schematic window.
In the right hand palette window go to.
Forces/Ics -> Add
The following dialog should now be displayed. Choose the “Pulse” tab.
Set up the input signal according to the values shown below. This should create a pulse signal with a 50% duty cycle.
_files/image024.jpg)
To add waveforms to the “ezwave” viewer select
When prompted with the save all dialog click “ok.”
_files/image026.jpg)
Click the “Run Eldo” button. Check the simulation log for errors.
_files/image028.jpg)
To invoke Ezwave select.
View Waves -> New
Window
Ezwave should appear featuring the IN and OUT signals as shown below.
Note: If the signal come out plotted on the same axis, simply delete them and reselect them one at a time from the left hand selection.
_files/image030.jpg)
“EZWave” has many useful features including a measurement tool.
Click on the signal you wish to measure.
Select the Input Signal from the wave window.
Invoke the measurement tool by clicking
Tools ->
Measurement Tool
The following dialog box will appear.
Select the signal you wish to measure from the drop down box.
Check all measurement boxes so that all types are measured.
_files/image032.jpg)
Click apply to begin measuring.
The image below shows the wave with min, max, average and peak to peak values.
_files/image030.jpg)
Clear the signal of all measurements by deleting the measurement text boxes.
Go back to the measurement tool and select “rise time” from the pull down menu.
Select “apply” to measure the rise time. Repeat this process with “fall time” selected.
_files/image035.jpg)
The rise and fall times are now displayed in text boxes as shown below.
_files/image030.jpg)
To find the delay time between the two signals, double click the input signal on the left hand pane. This should bring the input signal back into the wave viewer.
Next go back to the measurement tool and select “Delay” from the pull down menu.
Select V(IN) for signal #1
Select V(OUT) for signal #2
_files/image038.jpg)
Click the “Apply” button to generate the delay measurement.
The delay between the two signals should appear as below.
_files/image030.jpg)
10. Setting up Sweep Analysis:
A sweep analysis
varies the parameters of a given device over time.
To set up a sweep
analysis choose.
Multiple Runs -> Sweep
The following dialog will be displayed.
_files/image041.jpg)
Choose the “Add Sweep” button.
Setup the sweep by varying the width of the MP1 transistor from 2u to 10u. Increment in units of 1u.
_files/image043.jpg)
Make sure that newly created sweep is enabled.
Click “OK” to save changes.
_files/image045.jpg)
Press the “Run Eldo” button to rerun the simulator with all 9 runs.
To add waveforms to the “ezwave” viewer select
When prompted with the save all dialog click “ok.”
To invoke Ezwave select.
View Waves -> New
Window
Ezwave should appear, with 9 versions of every signal, representing the 9 different outcomes of varying the transistor width.
The image below shows the 9 output signals on the left hand palette.
_files/image030.jpg)
To set up a Monte Carlo analysis session you must perform a number of steps that are not part of the normal "push button"
command sequence in Eldo. The SPICE netlist file will be changed by editing the command file which coordinates all
the inputs to the SPICE netlist file.
Set up a transient analysis as previous done in the instructions above.
Instead of including the library file ami05.mod include the library file ami05_no_capacitor_model.mod as shown below. This model file does not have the model for the capacitor which will be added manually.
_files/no_cap.gif)
Choose the ADK SIM PALETTE from the command buttons in the right palette.
_files/adk_sim.gif)
Choose Commands under the Setup Other section. See below.
_files/adk_menu.gif)
Add two lines to the dialog box that opens
.model notchedrow c dev=50%
.mc 20 all
Ignore the other line for now which varies the transistor widths during a Monte Carlo analysis. The first line (.model notchedrow c dev=50%) replaces the .model line for the capacitor that was removed from the ami05.mod file. The dev=50% instructs the simulator to vary the capacitance value by 50%. The second line ( .mc 20 all) instructs the simulator to do a Monte Carlo analysis with 20 runs.
_files/other_commands.gif)
Under the ADK palette choose Write under Netlist section to create the netlist.
Under the ADK palette choose Run under the Simulation section to run the simulation.
Then open the wave window as was done in the past analysis.
Navigate to the V(OUT) waveform and highlight all the waveforms with the left mouse button and shift key.
Then activate the right mouse button and choose Plot (Overlaid)
_files/view_wave.gif)
The results on the Monte Carlo analysis will be shown as seen below.
_files/view_wave_1.gif)
To vary the transistor's widths using the Monte Carlo analysis:
Activate the Netlist command in the ADK palette (no not activate this command again because the netlist which will be edited by hand will be overwritten)
Edit the netlist file using the MGC->Notepad application (top pull-down menu). The file is located under the directory $MGC_WD/your_design_directory/ami05a and will be named design_name_ami05a.spi.
Change the W=5u values to a name such as my_width as shown below. ( you may use any name you like and each transistor can have a unique name).
Save and exit the Notepad.
_files/netlist.gif)
Choose Commands under the Setup Other section. See below.
Add the line .param my_width=gauss(5u,0.2,1) This line instructs the simulator to vary the transistor widths using a Gaussian distribution centered around 5 micro-meters with a standard deviation of (5u * 0.2 / 1.0).
Under the ADK palette choose Run under the Simulation section to run the simulation.
Then open the wave window as was done in the past analysis.
Navigate to the V(OUT) waveform and highlight all the waveforms with the left mouse button and shift key.
Then activate the right mouse button and choose Plot (Overlaid).
The plot will show the effects of varying both the capacitance and transistor widths. Any combination of values can be added to the Monte Carlo analysis using the technique presented. Individual transistor widths can be assigned unique names for the Monte Carlo analysis.
Click here to continue to Schematic Driven Layout Using IC - Station