The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 22nd, 2024, 7:35pm
Pages: 1
Send Topic Print
How to extract Monte Carlo iteration on Spectre (Read 2961 times)
lief
New Member
*
Offline



Posts: 1
Orlando, FL
How to extract Monte Carlo iteration on Spectre
Feb 14th, 2007, 8:39pm
 
I am using Spectre to run Monte Carlo on gate cells (built from bsim4 nfets and pfets) to simulate mismatch conditions.  I would like to extract the gate model for the worst case iteration (in this case, delay).  I should then be able to use that specific gate for non-Monte-Carlo simulation.

What is the best approach to extracting the information?  Right now I am using the 'info' command to grab the 'instance' and 'model' parameters - from which I create new nfet and pfet models for each of the transistors in the cell.  However, using this method, I still have not been able to match the delay numbers that I measured during the Monte Carlo run.  Do I need to set up any other parameters?

Also, is there another easy way to measure and print delays in Spectre (transient analysis) besides the 'oceanEval()' command inside of the Monte-Carlo body or the use of the MDL file?
Back to top
 
 
View Profile   IP Logged
Scott Flinchbaugh
Junior Member
**
Offline



Posts: 14

Re: How to extract Monte Carlo iteration on Spectr
Reply #1 - Feb 21st, 2007, 12:48pm
 
Lief,

The easiest way to do this is to utilize the spectreMDL montecarlo flow.

Specifically, run your normal montecarlo iterations using spectreMDL.  SpectreMDL will then generate
an output file that contains the scalar data for each measurement performed along with some statistical
figures of merit for the montecarlo loop that was run.  It should be noted that you may have to use the
"seed" parameter to ensure that you can duplicate your montecarlo run later.

In this file you will notice the first column is named "iteration".  This iteration number represents
the montecarlo iteration that produced the row of measurement results.  From this data you can
identify which run provides your worst case performance.

Now, in either spectre or spectreMDL construct a montecarlo run using the same "seed" value if necessary, with the
"firstrun" parameter set to the worst case iteration number, and the "numruns" parameter set to "1".  
Inside this montecarlo loop add the analyses you want to run (and any measurements if you are using
spectreMDL).  This will cause the process and mismatch variation to duplicate the worst case process/mismatch
variation that you determined from your initial run.  It also will save you quite a bit of time.

Hope this helps,
-scott F.
Back to top
 
 
View Profile flinchba   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.