• 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. Monte Carlo simulation of noise contributions using SpectreMDL...

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 125
  • Views 12417
  • 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

Monte Carlo simulation of noise contributions using SpectreMDL: #2

svcher
svcher over 5 years ago

Hello,

I'd like to obtain values of noise contributions in the circuit for each Monte Carlo run using SpectreMDL.

Andrew Beckett came up with a solution when I asked this question on Apr 19 2019 (see test1.mdl below).
It worked fine  at the time, but now I see these warnings in the log file:

> spectre =mdl test1.mdl test.scs

WARNING (SPECTRE-16045): r1: Undefined parameter name `total'.
WARNING (SPECTRE-16045): r2: Undefined parameter name `total'.

Simulation does produce the result file test.raw/scalar though, and I think it is valid.
I simply would like to confirm that these warnings above are harmless, don't think I saw them before.

Also, Spectre reports errors when I toss around export statements in the MDL file.
For example, it happens if I move "export real noi_total=noi_meas:out;" to the end of the alias block, see test2.mdl below:

ERROR (SPECTRE-16045): r1: Undefined parameter name `total'.
ERROR (SPECTRE-16045): r2: Undefined parameter name `total'.

In such case data in test.raw/scalar shows NaN for noi_r1 and noi_r2.
I suppose there is a rule to always have *:out export statement first in the block?
Please confirm.

The mmsim version I use is 19.1.0.237.isr3 64bit -- 3 Jan 2020.

Thanks!

test.scs
=======================================
simulator lang=spectre
r1 (1 0) res_model l=10e-6 w=2e-6
r2 (2 1) res_model l=15e-6 w=2e-6
vr (2 0) vsource dc=1.0 mag=1
model res_model resistor rsh=100 kf=1e-20*exp(dkf)
parameters dkf=0
statistics {
  process {
    vary dkf dist=gauss std=0.5
  }
}
noi (1 0) noise freq=1
=======================================

test1.mdl
=======================================
alias measurement noi_meas {
  run noi;
  export real noi_total=noi_meas:out;
  export real noi_r1=r1:total;
  export real noi_r2=r2:total;
}
run montecarlo(numruns=10,variations='process,scalarfile="scalars") {
  run noi_meas;
}
=======================================

test2.mdl
=======================================
alias measurement noi_meas {
  run noi;
  export real noi_r1=r1:total;
  export real noi_r2=r2:total;
  export real noi_total=noi_meas:out;
}
run montecarlo(numruns=10,variations='process,scalarfile="scalars") {
  run noi_meas;
}
=======================================

  • 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