Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Can I create a random voltage source for Monte Carlo analysis in Cadence/Spectre/ADE?

Status
Not open for further replies.

stc_csr

Newbie level 2
Joined
Jul 4, 2012
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,301
Hi there,

I'm trying to model mismatch in a circuit - but instead of using the foundry mismatch model I want to put in data I've extracted from characterizing a test chip we've done.

I'd like to do this by having a bunch of voltage sources with a mean of zero and a sigma of 1V. I can then use VCCS's to add random currents into the nodes I'm concerned about. For those who are interested, one uses Cholesky decomposition of the co-variance matrix to work out the Gm factors.

I've figured out the maths but I'm clueless as to how to make the sigma=1 voltage sources. Can anyone help?

Thanks,

Simon
 

Hi there,

Thanks for your answer. I'm not sure if that exactly helps - I want to create a set of DC voltage sources such that in Monte Carlo analysis, each will have a random voltage. The random voltages on each should have a gaussian distribution with a sigma of one and a mean of zero, and they should all be uncorrelated.

From these I will create the random currents with appropriate distributions and correlations using ideal transconductors to the target nodes in question.

The link you have provided demonstrates how to create a gaussian pulse - which is not exactly the same thing, but interesting nonetheless. Thanks for that.

Actually I have done the hard work and figured it out myself. It requires typing netlist and "including" it - something I'd hoped to avoid - too bad I guess.

Here's the include file. It seems to work and produces two random voltages - you can add more easily if you want.

Code:
simulator lang=spectre

parameters VRANDX=0
inline subckt VRAND (A B)
    V0 (A B) vsource dc=VRANDX type=dc
ends VRAND
statistics {
    mismatch {
        vary VRANDX dist=gauss std=1
    }
}

vrand1 (vRand1 0) VRAND
vrand2 (vRand2 0) VRAND
 

Not bad at all! Thanks for reporting back!
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top