The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 19th, 2024, 8:21pm
Pages: 1
Send Topic Print
corner simulation in Spectre (Read 11929 times)
tideblue
New Member
*
Offline



Posts: 8

corner simulation in Spectre
Apr 06th, 2009, 8:10am
 
Hello,
  I have spent quite some time on corner simulation in Spectre. But still I got a sort of "segmentation fault" .Below you can find three files:.ocn .pcf .dcf  for corner simulation. I hope someone can point out what is wrong in my script. Thanks!

corner.pcf:
corAddModelFileAndSectionChoices( "XX" "core_rf.lib.scs" '("ff" "fs" "tt" "sf" "ss") )
corAddModelFileAndSectionChoices( "XX" "rnnpo_rf_sf.lib.scs" '("max" "typ" "min") )
corAddModelFileAndSectionChoices( "XX" "rnhr_rf_sf.lib.scs"  '("max" "typ" "min") )
corAddModelFileAndSectionChoices( "XX" "mimcaps_rf2fF.lib.scs" '("max" "typ" "min") )
corAddModelFileAndSectionChoices( "XX" "diop_esd_rf.lib.scs"  '("max" "typ" "min") )
corAddModelFileAndSectionChoices( "XX" "diodn_esd_rf.lib.scs" '("max" "typ" "min") )
corAddModelFileAndSectionChoices( "XX" "pad_rf.lib.scs" '("max" "typ" "min") )
corAddModelFileAndSectionChoices( "XX" "l_cr20k_rf.lib.scs" '("max" "typ" "min") )


corAddCorner( "XX" "aa" )


corSetCornerGroupVariant( "XX" "aa" "l_cr20k_rf1.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "pad_rf.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "diodn_esd_rf.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "diop_esd_rf.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "mimcaps_rf2fF.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "rnhr_rf_sf.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "rnnpo_rf_sf.lib.scs" "typ" )
corSetCornerGroupVariant( "XX" "aa" "core_rf.lib.scs" "tt" )

corSetCornerRunTempVal( "XX" "aa" 27 )
corAddDesignVar( "prf" )
corSetDesignVarVal( "prf" "-30" )

corner.dcf:
corAddMeas( "pnoise gain" )
corSetMeasExpression( "pnoise gain" "getData(\"gain\" ?result \"noise\")" )
corSetMeasEnabled( "pnoise gain" t )
corSetMeasGraphicalOn( "pnoise gain" t )
corSetMeasTextualOn( "pnoise gain" nil )

corner.ocn:
ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(       "/xxx/spectre/schematic/netlist/netlist")
resultsDir( "/xxxx/spectre/schematic" )

analysis('noise ?start "1e8"  ?stop "1e10"  ?p "/net14"  
           ?n "/net13"  ?oprobe ""  ?iprobe "/PORT0"  )
desVar(        "prf" -30      )
temp( 27 )
loadDcf("/xxxx/cadence_work/corner.dcf")
loadPcf("/xxxx/cadence_work/corner.pcf")

cornerRun("aa")
cornerMeas()


corAddMeas( "pnoise gain" )
corSetMeasExpression( "pnoise gain" "getData(\"gain\" ?result \"noise\")" )
corSetMeasEnabled( "pnoise gain" t )
corSetMeasGraphicalOn( "pnoise gain" t )
corSetMeasTextualOn( "pnoise gain" nil )
Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: corner simulation in Spectre
Reply #1 - Apr 6th, 2009, 8:25am
 
I'm not sure what a 'sort of "segmentation fault"' is. Does it actually segmentation fault, or something else? What fails - is it spectre, or is it the icfb or ocean executable? What errors are given?

You've given the OCEAN script, but nothing is obviously wrong with that (and anyway it should never seg fault).

When you reply, please mention the IC subversion (type getVersion(t) at the prompt) and the spectre subversion (in the output log, also when you do "spectre -W" you'll get this).

Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
tideblue
New Member
*
Offline



Posts: 8

Re: corner simulation in Spectre
Reply #2 - Apr 7th, 2009, 12:01am
 
Hi,
Thanks for your reply Andrew.
My Cadence version is 5.1.0 06/29/2005
My spectre version is also 5.10.41
 
In my corner simulation, the spectreout  tells that many model parameters are alterd. Then there is several warnings like:
MO:instance length or width does not fit the given lmax-lmin or wmax-wmin range for the model ....
or
Parasitic resistor 'rad' has been deleted because its value of 200u was smaller than 'minr'

Then suddenly:
Internal error found in spectre during altergroup 'aa' please run '
Please run ‘getSpectreFiles’ or send the netlist, the spectre log file, identify the problem to support@cadence.com
Segmentation fault

Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: corner simulation in Spectre
Reply #3 - Apr 7th, 2009, 1:07am
 
That's rather an old version of spectre, and is using the old front end. A lot of improvements have been made since then, which particularly will affect altergroups.

Ideally you should use a more recent spectre version (spectre is now shipped in a stream called MMSIM - for example MMSIM71).

If however you can't use that, try putting:

Code:
envSetVal("spectre.envOpts" "useAltergroup" 'boolean nil) 



at the beginning of your OCEAN script - this tells the corners tool not to take advantage of spectre's altergroup mechanism, but instead run separate simulations for each corner.

Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
tideblue
New Member
*
Offline



Posts: 8

Re: corner simulation in Spectre
Reply #4 - Apr 7th, 2009, 1:38am
 
Thanks very much
This problem really bothers for some time.
Back to top
 
 
View Profile   IP Logged
papaLearner
New Member
*
Offline



Posts: 2

Re: corner simulation in Spectre
Reply #5 - Nov 29th, 2010, 9:47am
 
I have the same problem, and I want to know how to revise the script of the .psf file in order to make the corner simulation work.

Thank you very much!
Back to top
 
 
View Profile   IP Logged
ywguo
Community Fellow
*****
Offline



Posts: 943
Shanghai, PRC
Re: corner simulation in Spectre
Reply #6 - Nov 29th, 2010, 7:44pm
 
Hi PapaLearner,

I don't know what the script of the .psf file mean.

Yawei
Back to top
 
 
View Profile   IP Logged
papaLearner
New Member
*
Offline



Posts: 2

Re: corner simulation in Spectre
Reply #7 - Nov 29th, 2010, 8:25pm
 
Hi ywguo, thank you for your reply. I made a mistake, and it's not .psf but .pcf.
There are three kinds of corner files for corner simulation with different filename extensions which are .pcf .ocn and .dcf. I have the same problem with tideblue. When I operated the corner simulation, I got a sort of "segmentation fault". Andrew Beckett gave a sentence of code which is written at the beginning of the .ocn script to solve the problem above, but it's for the corner file with filename extension of .ocn. I want to know how to written the .pcf corner file to solve this problem, .because when I operate the corner simulation, I only write the .pcf file and load it in the corner analysis, which means I don't use the .ocn and .dcf files.
Thank you once more.
Back to top
 
 
View Profile   IP Logged
ywguo
Community Fellow
*****
Offline



Posts: 943
Shanghai, PRC
Re: corner simulation in Spectre
Reply #8 - Dec 3rd, 2010, 1:13am
 
It's a little complex. If you want to run corner analysis in ADE, you'd better setup your first corner analysis and then save it in .pcf file.

I have a note written in Chinese. If you can read, please send me your email.

Yawei
Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: corner simulation in Spectre
Reply #9 - Jan 2nd, 2011, 2:38am
 
You could put the envSetVal() call in your .cdsinit file - this would mean that it's loaded at startup of Virtuoso, and hence ADE and the corners tool would pick it up too.

Best Regards,

Andrew.
Back to top
 
 
View Profile WWW   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.