get nominal results from MC analysis

J

JD

Guest
Hi,

Although MC analysis will simulate at nominal by setting
donominal=yes, it seems there is no way to find out the results for
the nominal simulation.

Is there anyway to get the simulation results for the MC nominal
simulation?

Thanks,


JD
 
On Wed, 19 Sep 2007 17:02:52 -0000, JD <Jiandong.Ge@gmail.com> wrote:

Hi,

Although MC analysis will simulate at nominal by setting
donominal=yes, it seems there is no way to find out the results for
the nominal simulation.

Is there anyway to get the simulation results for the MC nominal
simulation?

Thanks,


JD
Yes, you can do this. Here's a quick cut and paste of my
experiments (with a spectreRF simulation, but that's not important):

results() gives:
(output "subckts-info.subckts" "element-info" "pss-td.pss" "pss-fi.pss"
subckts instance "modelParameter-info" "pss-fd.pss" variables
primitives designParamVals pss_td "outputParameter-info" model
"designParamVals-info" pss_fd "mc1_pss_fi-montecarlo"
"primitives-info.primitives"
)

and results(?noAlias t) gives:

("mc1_outputParameter-montecarlo" "subckts-info.subckts" "element-info"
"pss-td.pss" "pss-fi.pss"
"mc1_subckts-montecarlo" "mc1_element-montecarlo" "modelParameter-info"
"pss-fd.pss" "variables"
"mc1_primitives-montecarlo" "mc1_designParamVals-montecarlo"
"mc1_pss_td-montecarlo" "outputParameter-info" "mc1_modelParameter-montecarlo"
"designParamVals-info" "mc1_pss_fd-montecarlo" "mc1_pss_fi-montecarlo"
"primitives-info.primitives"
)

so consequently, the non monte-results are:

setof((x y) results() (results ?noAlias t) x==y)

("subckts-info.subckts" "element-info" "pss-td.pss" "pss-fi.pss"
"modelParameter-info"
"pss-fd.pss" "outputParameter-info" "designParamVals-info"
"mc1_pss_fi-montecarlo" "primitives-info.primitives"
)

(actually that's probably not right - you could just do
setof(x results(?noAlias t) !rexMatchp("^mc" x))
to get a better list)

So, for example, the normal PSS measurement I'm doing would
be:

db(harmonic(v("/IFp" ?result "pss_fd") 1))

whereas the nominal value would be:

db(harmonic(v("/IFp" ?result "pss-fd.pss") 1))

Put another way, the monte-carlo results get the aliased name, but the nominal
results don't - you need to use the direct name instead.

Regards,

Andrew.

--
Andrew Beckett
Senior Solution Architect
Cadence Design Systems, UK.
 
Thanks very much for the answer.

However, if I use

export output=oceanEval(....)

inside montecarlo loop, it seems in the mc.mcdata, there is no nominal
output available.

Is there a way to get the nominal output saved in mc.mcdata or some
other file in the .raw directory?

Thanks

JD

On Sep 20, 10:46 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
On Wed, 19 Sep 2007 17:02:52 -0000, JD <Jiandong...@gmail.com> wrote:
Hi,

Although MC analysis will simulate at nominal by setting
donominal=yes, it seems there is no way to find out the results for
the nominal simulation.

Is there anyway to get the simulation results for the MC nominal
simulation?

Thanks,

JD

Yes, you can do this. Here's a quick cut and paste of my
experiments (with a spectreRF simulation, but that's not important):

results() gives:
(output "subckts-info.subckts" "element-info" "pss-td.pss" "pss-fi.pss"
subckts instance "modelParameter-info" "pss-fd.pss" variables
primitives designParamVals pss_td "outputParameter-info" model
"designParamVals-info" pss_fd "mc1_pss_fi-montecarlo"
"primitives-info.primitives"
)

and results(?noAlias t) gives:

("mc1_outputParameter-montecarlo" "subckts-info.subckts" "element-info"
"pss-td.pss" "pss-fi.pss"
"mc1_subckts-montecarlo" "mc1_element-montecarlo" "modelParameter-info"
"pss-fd.pss" "variables"
"mc1_primitives-montecarlo" "mc1_designParamVals-montecarlo"
"mc1_pss_td-montecarlo" "outputParameter-info" "mc1_modelParameter-montecarlo"
"designParamVals-info" "mc1_pss_fd-montecarlo" "mc1_pss_fi-montecarlo"
"primitives-info.primitives"
)

so consequently, the non monte-results are:

setof((x y) results() (results ?noAlias t) x==y)

("subckts-info.subckts" "element-info" "pss-td.pss" "pss-fi.pss"
"modelParameter-info"
"pss-fd.pss" "outputParameter-info" "designParamVals-info"
"mc1_pss_fi-montecarlo" "primitives-info.primitives"
)

(actually that's probably not right - you could just do
setof(x results(?noAlias t) !rexMatchp("^mc" x))
to get a better list)

So, for example, the normal PSS measurement I'm doing would
be:

db(harmonic(v("/IFp" ?result "pss_fd") 1))

whereas the nominal value would be:

db(harmonic(v("/IFp" ?result "pss-fd.pss") 1))

Put another way, the monte-carlo results get the aliased name, but the nominal
results don't - you need to use the direct name instead.

Regards,

Andrew.

--
Andrew Beckett
Senior Solution Architect
Cadence Design Systems, UK.
 
On Thu, 20 Sep 2007 17:52:54 -0000, JD <Jiandong.Ge@gmail.com> wrote:

Thanks very much for the answer.

However, if I use

export output=oceanEval(....)

inside montecarlo loop, it seems in the mc.mcdata, there is no nominal
output available.

Is there a way to get the nominal output saved in mc.mcdata or some
other file in the .raw directory?

Thanks

JD
If you're running monte carlo either from ADE, or directly from a spectre
netlist, the nominal value of each expression is never written into the mcdata
(or any other ASCII file). You will however get all the PSF results of the
noninal run, and so you can always use OCEAN to evaluate the same
expressions again on the nominal data set. One of the main purposes
of the nominal run is to check the expressions are OK and to abort if they're
not - rather than running 50 sims and getting bad results for every point.

However, if you're running standalone (perhaps you are, since you refer to the
..raw directory), you could use spectremdl to run the monte-carlo simulations.
This is a rather nice flow for standalone use - there's examples in the
SpectreMDL workshop (in <MMSIMinstDir>/tools/spectre/examples )
of doing this. In the monte.mdl example, you can see what happens if you
set donominal='yes - you get the result of the "0" iteration in
the results files. In the MDL flow, it also outputs the mean and stddev and
so on rather than you having to compute it yourself. The other difference is
that your expressions are written in MDL rather than OCEAN - but that's not
a massive problem.

Regards,

Andrew.
--
Andrew Beckett
Senior Solution Architect
Cadence Design Systems, UK.
 

Welcome to EDABoard.com

Sponsor

Back
Top