The noise analysis in spectre (and indeed other simulators) compute primarily the noise at the output of the circuit, from all noise sources in the circuit. The only reason for noise not being included is if the noise on that component has been specifically disabled (for example, the instance parameter isnoisy=no has been set). The way it works is to compute the magnitude of the noise at the noise source (i.e. at the device) based on the bias point (if that matters - for example, for shot noise), and also compute the transfer function from the noise source (i.e. at the device) to the output. The noise powers at the output are then summed, and the total output noise computed.
The input referred noise (which is a secondary output) is computed by taking the total output noise, and dividing it by the gain from the output back to the input that you specified on the noise analysis.
If your circuit has attenuation, then the input referred noise at the input will be larger than at the output.
You can use the noise contribution table (Results->Print->Noise Contributions) or the results browser to look at the noise contributions (at the output of the circuit) from each noise source in the circuit. This is a useful debugging tool to find out where the noise is coming from (or not!).
You could also compare the gain with (say) an xf analysis to see what the gain is in the circuit, so you can see if it is attenuating. If it's not meant to attenuate, maybe you specified the wrong nodes, or maybe the circuit is not biased properly (so check the operating point; it's amazing how often people don't check that, and commonly do things like forget to connect the supplies up. We've all done it!)
In reply to Andrew Beckett:
hi Andrew, i found this post to be very similar to the question i have on hand so I am replying to it.(please let me know if i should start a new thread)Question: in the noise simulation, is there anyway to retreive the original device noise itself.for example, the simulation noise summary can report M1 contribute 2.5e-22 to the output, but how can i found out what the M1 device noise is itself before it is multiplied by the transfer function ? thanksFrank
In reply to potsticker:
The pnoise analysis has a feature called "noise separation" which does precisely this - gives you the noise contribution from each sideband, but also gives the noise at the device, plus the gain from the device to the output as separate quantities. Conventional "ac" noise analysis doesn't provide this unfortunately - you only get the noise contribution at the output.
thank you very much Andrew.
I understand that this is not available from the GUI, but if you know of any function or script i can use to retreieve individual device noise from the ac. noise sim I would appreciate it. I assume the ac. noise sim does indeed calaculate indivdual noise first?
i did ended up running pss and pnoise on the circuit and was able to retrieve the individual device noise. thanks Andrew
potstickerI understand that this is not available from the GUI, but if you know of any function or script i can use to retreieve individual device noise from the ac. noise sim I would appreciate it. I assume the ac. noise sim does indeed calaculate indivdual noise first?
Whilst this is computed inside the simulator, there's no option to output the date. You'll need to contact customer support to request this enhancement (which seems quite sensible and consistent to have to me).
Glad you managed to use pss/pnoise as an alternative.
I know this is an old thread but just wanted to give it a shot. For some of us that don't have access to the ADE in cadence, can you please elucidate how to write the code to do noise analysis in spectre. So for example i have a TIA (inverter with resistor feedback) driven by an ideal current source to model the reversed biased diode current, if i wanted to do a noise analysis as a function of frequency to computer the input referred noise current, do i insert an "iprobe" at the input between the ideal current source and gate of the inverter? And how exactly do i set instance parameter isnoisy=no for the feedback resistor for example. say my netlist looks like this for example (used spice syntax for device definitions)
Mn out in1 VSS VSS
Mp out in1 VDD VDD
Rfb out in1 300
Idriver int VSS 10u
ip (int in1) iprobe
Did i specify the iprobe correctly?
How do i specify noise analysis to be included in my AC frequency sweep (I am not using ADE, purely spectre netlist)
How do i specify not to include the noise contribution of the resistor feedback Rfb using isnoisy=no ?
If i need to use pnoise analysis please address the questions similarly.
In reply to Lanre Ayo:
Posting on the end of an old thread clearly didn't get a quick answer - I don't know why you did this (the forum guidelines explain why you shouldn't)?
Your transistors don't have model names or sizes defined, but I assume this is just to illustrate what you're doing.
For pnoise, you'd have to also set up a pss analysis too. Look at "spectre -h pss" and "spectre -h pnoise" for details on using these analyses. Or for some command line examples, you could look at: Simulating switched-capacitor filters with SpectreRF