• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. spectre nested sweep in MC run fails to "export" expres...

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 125
  • Views 6396
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

spectre nested sweep in MC run fails to "export" expression

kxlux
kxlux over 12 years ago

 Here is my netlist(analysis part of.., produced from ADEXL):

________________________________________________________________________________________

simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=70 \
    tnom=27 homotopy=dptran scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 \
    maxnotes=5 maxwarns=5 digits=5 cols=80 pivrel=1e-3 \
    sensfile="../psf/sens.output" checklimitdest=psf
mc1 montecarlo numruns=1 seed=12345 variations=all sampling=standard \
    donominal=no scalarfile="../monteCarlo/mcdata" \
    paramfile="../monteCarlo/mcparam" saveprocessparams=yes \
    processparamfile="../monteCarlo/processParam" \
    processscalarfile="../monteCarlo/processData" savemismatchparams=yes \
    mismatchparamfile="../monteCarlo/mismatchparam" \
    mismatchscalarfile="../monteCarlo/mismatchdata" \
    dumpdependency=mismatch \
    dependencymapfile="../monteCarlo/mismatchdependency" \
    savefamilyplots=yes savedatainseparatedir=yes firstrun=15 {
swp0 sweep param=EQ values=[0 1 2 3] {
dcOp0 dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo0 info what=oppoint where=rawfile
ac0 ac start=10K stop=10G lin=1 annotate=status
modelParameter0 info what=models where=rawfile
element0 info what=inst where=rawfile
outputParameter0 info what=output where=rawfile
designParamVals0 info what=parameters where=rawfile
primitives0 info what=primitives where=rawfile
export real Gain100k0=oceanEval("value((dB20((VF(\"VOP\") - VF(\"VON\"))) - dB20((VF(\"CHINP\") - VF(\"CHINN\")))) 1e+4)")
export real Gain13G0=oceanEval("value((dB20((VF(\"VOP\") - VF(\"VON\"))) - dB20((VF(\"CHINP\") - VF(\"CHINN\")))) 1.0e+10)")
}

}
mcOptions options genmcdep=yes
save V10CUR:p V33CUR:p VIP_IN VIN_IN I1.I1.CTLEOUT2 I1.I1.CTLEOUT2B VOP \
    VON CHINP CHINN I1.I1.I0.CTLEOUT1 I1.I1.I0.CTLEOUT1B I2.I15.M7:1 \
    I2.I15.M17:1
saveOptions options save=selected
__________________________________________________________________________________________________

 Here is files generated in psf dir:

artil.log       

logFile     

mc1_ac1.montecarlo  

mc1_dcOpInfo.montecarlo        

mc1_element.montecarlo        

mc1_outputParameter.montecarlo 

mc1_separate
ipvs_ui.msg.log 

mc1.mapping 

mc1_dcOp.montecarlo 

mc1_designParamVals.montecarlo 

mc1_modelParameter.montecarlo 

mc1_primitives.montecarlo      

spectre.out

_________________________________________________________________

The "mc1_separate"is a dir containing sweep result files:

 -rw-r--r-- 1 workareas        0 Aug 20 10:40 ipvs_ui.msg.log
-rw-r--r-- 1 workareas     1231 Aug 16 21:31 logFile
-rw-r--r-- 1 workareas     4872 Aug 16 21:30 mc1_swp-000_ac1.ac
-rw-r--r-- 1 workareas     4036 Aug 16 21:30 mc1_swp-000_dcOp.dc
-rw-r--r-- 1 workareas  4012008 Aug 16 21:30 mc1_swp-000_dcOpInfo.info
-rw-r--r-- 1 workareas   183276 Aug 16 21:30 mc1_swp-000_designParamVals.info
-rw-r--r-- 1 workareas  4437996 Aug 16 21:30 mc1_swp-000_element.info
-rw-r--r-- 1 workareas 32983396 Aug 16 21:30 mc1_swp-000_modelParameter.info
-rw-r--r-- 1 workareas  1109648 Aug 16 21:30 mc1_swp-000_outputParameter.info
-rw-r--r-- 1 workareas    13935 Aug 16 21:30 mc1_swp-000_primitives.info.primitives
-rw-r--r-- 1 workareas     4872 Aug 16 21:31 mc1_swp-001_ac1.ac
-rw-r--r-- 1 workareas     4036 Aug 16 21:31 mc1_swp-001_dcOp.dc
-rw-r--r-- 1 workareas  4012008 Aug 16 21:31 mc1_swp-001_dcOpInfo.info
-rw-r--r-- 1 workareas   183276 Aug 16 21:31 mc1_swp-001_designParamVals.info
-rw-r--r-- 1 workareas  4437996 Aug 16 21:31 mc1_swp-001_element.info
-rw-r--r-- 1 workareas 32983396 Aug 16 21:31 mc1_swp-001_modelParameter.info
-rw-r--r-- 1 workareas  1109648 Aug 16 21:31 mc1_swp-001_outputParameter.info
-rw-r--r-- 1 workareas    13935 Aug 16 21:31 mc1_swp-001_primitives.info.primitives
-rw-r--r-- 1 workareas     4872 Aug 16 21:31 mc1_swp-002_ac1.ac
-rw-r--r-- 1 workareas     4036 Aug 16 21:31 mc1_swp-002_dcOp.dc
-rw-r--r-- 1 workareas  4012008 Aug 16 21:31 mc1_swp-002_dcOpInfo.info
-rw-r--r-- 1 workareas   183276 Aug 16 21:31 mc1_swp-002_designParamVals.info
-rw-r--r-- 1 workareas  4437996 Aug 16 21:31 mc1_swp-002_element.info
-rw-r--r-- 1 workareas 32983396 Aug 16 21:31 mc1_swp-002_modelParameter.info
-rw-r--r-- 1 workareas  1109648 Aug 16 21:31 mc1_swp-002_outputParameter.info
-rw-r--r-- 1 workareas    13935 Aug 16 21:31 mc1_swp-002_primitives.info.primitives
-rw-r--r-- 1 workareas     4872 Aug 16 21:31 mc1_swp-003_ac1.ac
-rw-r--r-- 1 workareas     4036 Aug 16 21:31 mc1_swp-003_dcOp.dc
-rw-r--r-- 1 workareas  4012008 Aug 16 21:31 mc1_swp-003_dcOpInfo.info
-rw-r--r-- 1 workareas   183276 Aug 16 21:31 mc1_swp-003_designParamVals.info
-rw-r--r-- 1 workareas  4437996 Aug 16 21:31 mc1_swp-003_element.info
-rw-r--r-- 1 workareas 32983396 Aug 16 21:31 mc1_swp-003_modelParameter.info
-rw-r--r-- 1 workareas  1109648 Aug 16 21:31 mc1_swp-003_outputParameter.info
-rw-r--r-- 1 workareas    13935 Aug 16 21:31 mc1_swp-003_primitives.info.primitives
-rw-r--r-- 1 workareas     3432 Aug 16 21:31 mc1_swp_ac1.sweep
-rw-r--r-- 1 workareas     3432 Aug 16 21:31 mc1_swp_dcOp.sweep
-rw-r--r-- 1 workareas     3436 Aug 16 21:31 mc1_swp_dcOpInfo.sweep
-rw-r--r-- 1 workareas     3444 Aug 16 21:31 mc1_swp_designParamVals.sweep
-rw-r--r-- 1 workareas     3436 Aug 16 21:31 mc1_swp_element.sweep
-rw-r--r-- 1 workareas     3444 Aug 16 21:31 mc1_swp_modelParameter.sweep
-rw-r--r-- 1 workareas     3444 Aug 16 21:31 mc1_swp_outputParameter.sweep
-rw-r--r-- 1 workareas     3440 Aug 16 21:31 mc1_swp_primitives.sweep
_________________________________________________________________________________________

questions:

1. why the "export" was not executed?

2.  how to plot an expression from resultsdirectory?

 

what i am trying to achieve is do a DC followed by an AC within each MC run and nested with a sweep of a parameter.

 appreciate any feedbacks.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    I don't understand. In your original post, you had a sweep within monte carlo (sweeping EQ from 0 to 3 in steps of 1). That would do 4*100 simulations. In a later append, you said that you wanted the measurements at each value of EQ for each monte carlo point, so that's inherently iterations*sweep_points.

    So what are you really trying to do?

    Note that the actual number of invocations of the simulator will be dependent upon the setting of the "number of jobs" in ADE XL. With the corner sweep approach, the simulator will be invoked (at least) once per corner. With a sweep of 0:1:10, if the number of jobs is less than 11, you'll get 11 jobs each running 100 MC iterations - some in parallel if you have asked for more than 1 job. If you'd asked for 22 jobs, you'd get 22 simulations in parallel, each running 50 MC iterations, etc. This is assuming you only have a single test.

    If you are trying to run 100 MC iterations total, but include the effect of varying EQ, you could always define a statistics block in an include file to define the variation of the variable EQ (maybe with a uniform distribution - maybe you vary another variable with a continuous  uniform variation, and then set EQ to be the int(contVar) if it has to be an integer). That way you'd then include random values for EQ - although I'm not entirely sure that's terribly useful (it depends on what you really are trying to measure).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
<

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information