The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> corner simulation in Spectre
https://designers-guide.org/forum/YaBB.pl?num=1239030639

Message started by tideblue on Apr 6th, 2009, 8:10am

Title: corner simulation in Spectre
Post by tideblue on Apr 6th, 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 )

Title: Re: corner simulation in Spectre
Post by Andrew Beckett on 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.

Title: Re: corner simulation in Spectre
Post by tideblue on 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


Title: Re: corner simulation in Spectre
Post by Andrew Beckett on 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.

Title: Re: corner simulation in Spectre
Post by tideblue on Apr 7th, 2009, 1:38am

Thanks very much
This problem really bothers for some time.

Title: Re: corner simulation in Spectre
Post by papaLearner on 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!

Title: Re: corner simulation in Spectre
Post by ywguo on Nov 29th, 2010, 7:44pm

Hi PapaLearner,

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

Yawei

Title: Re: corner simulation in Spectre
Post by papaLearner on 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.

Title: Re: corner simulation in Spectre
Post by ywguo on 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

Title: Re: corner simulation in Spectre
Post by Andrew Beckett on 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.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.