The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> Why resistors produce so much noise
https://designers-guide.org/forum/YaBB.pl?num=1283902372

Message started by vp1953 on Sep 7th, 2010, 4:32pm

Title: Why resistors produce so much noise
Post by vp1953 on Sep 7th, 2010, 4:32pm

I am running a transient simulation in Cadence Spectre with the tran noise option enabled. Settings are Fmax = 20G, Fmin = 1Mhz (leaving it blank does not make a difference), Noise Seed = 1.

The schematic consists of simply a 50 ohm port left open (I also terminated the port with a capacitor without any improvement at the frequencies of interest). The noise levels associated with the 50 ohm resistor seem huge. In the time domain the noise amplitudes (open circuit voltage) reach a peak of several mV and spectrally there seem to be noise components that have magnitudes of -95 to -105dBm pretty much at all frequencies.

What causes transient noise to produce so much noise?

Title: Re: Why resistors produce so much noise
Post by pancho_hideboo on Sep 8th, 2010, 10:20am


vp1953 wrote on Sep 7th, 2010, 4:32pm:
In the time domain the noise amplitudes (open circuit voltage) reach a peak of several mV
It is very natural result since you set Fmax = 20G.

Output Noise Voltage density is "4*k*T*R [Vrms2/Hz]" since your output is an open circuit voltage of resistor.

So expected RMS output noise voltage is "sqrt(4*k*T*R*Fmax)=0.13mVrms
However peak voltage could be enough larger than 4*0.13mV=0.52mV


vp1953 wrote on Sep 7th, 2010, 4:32pm:
spectrally there seem to be noise components that have magnitudes of -95 to -105dBm pretty much at all frequencies.
I think you are misunderstanding frequency bin width of FFT results.


vp1953 wrote on Sep 7th, 2010, 4:32pm:
The schematic consists of simply a 50 ohm port left open (I also terminated the port with a capacitor without any improvement at the frequencies of interest).
This is also very natural result.
But time domain amplitude must be smaller.

See attached figures.
I can get reasonable results for both time domain noise and noise spectrum.
Here expected RMS output noise voltage is "sqrt(k*T*R*Fmax)=sqrt(k*290*50*0.5MHz)=0.32uVrms".

"Netlist for Agilent ADSsim"
Quote:
simulator lang=spectre
global 0
R1 (vo 0) resistor r=50 isnoisy=yes
R2 (vo 0) resistor r=50 isnoisy=no

simulator lang=ads
Options ResourceUsage=yes Verbose=yes UseNutmegFormat=no TopDesignName="data"

Options:Options1 Temp=16.85 Tnom=27 TopologyCheck=yes GiveAllWarnings=yes \
   MaxWarnings=10

Tran:Tran1 StartTime=0 StopTime=10000u MaxTimeStep=1u IntegMethod=0 Mu=0.5 \
   TimeStepControl=0 ChargeTol=1.0e-14 TruncTol=7.0 LimitStepForTL=yes \
   ImpApprox=no ShortTL_Delay=1.0e-12 ImpMaxPts=4096 ImpRelTrunc=1.0e-4 \
   ImpAbsTrunc=1.0e-7 ImpInterpOrder=1 ImpMode=1 ImpWindow=0 \
   ImpNoncausalLength=32 CheckKCL=yes CheckOnlyDeltaV=yes MaxIters=10 \
   MaxItersDC=200 StatusLevel=2 OutputAllPoints=yes \
   NoiseBandwidth=1/(2*1u) NoiseScale=1 MaxOrder=4 HB_Sol=no HB_Window=no \
   OutputPlan[1]="GlobalOutputPlan" OutputPlan[2]="GlobalInhibitPlan"

OutputPlan:GlobalOutputPlan Type="Output" UseBuiltinRule=no \
   OverrideInhibitRule=no UseNodeNestLevel=yes NodeNestLevel=2 \
   UseCurrentNestLevel=yes CurrentNestLevel=999 \
   UseDeviceCurrentNestLevel=no NodeName[1]="vo"

OutputPlan:GlobalInhibitPlan Type="Inhibit" UseBuiltinRule=no \
   OverrideInhibitRule=no NodeRegExpr[1]="\.net[0-9]+$|^net[0-9]+$"


"Netlist for Cadence Spectre"
Quote:
simulator lang=spectre
global 0
R1 (vo 0) resistor r=50 isnoisy=yes
R2 (vo 0) resistor r=50 isnoisy=no

simulatorOptions options temp=16.85 tnom=27 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

tran tran stop=10000u noiseseed=1 noisefmax=1/(2*1u) noisescale=1 \
   maxstep=1u write="spectre.ic" writefinal="spectre.fc" annotate=status \
   maxiters=5

save vo
saveOptions options save=selected


Title: Re: Why resistors produce so much noise
Post by Ken Kundert on Sep 8th, 2010, 6:35pm

I recommend that you walk through the numbers. If you still think the noise is high, post your analysis and let people comment on it. That way if your making a mistake or a poor assumption, people can point the problem out.

-Ken

Title: Re: Why resistors produce so much noise
Post by vp1953 on Sep 20th, 2010, 6:45pm

Hi Pancho,

Thank you for the detailed explanation. I had missed seeing your post earlier.

I think the issue is large resolved but one thing I still need to check was : that when i did a dft for the time domain noise after running for a long time, there was a significant 1/f noise component - I need to verify this again just to make sure that I did not make any mistakes.

Title: Re: Why resistors produce so much noise
Post by raja.cedt on Sep 24th, 2010, 12:53am

hi vp1953,
sorry for the diversion in this post, i want to check the resister noise in transient simulation like you. For that i have kept 50ohm resister connected to a 1v dc voltage source. I did transient simulation with transient noise enabled. Option in transient noise is noiseseen=1and noisefmax=20M. But in the waveform i am not seeing any noise only dc current is coming but expected is expected is with noise. I am expecting some options i am missing. So please explain whats wrong.

Thanks.

Title: Re: Why resistors produce so much noise
Post by vp1953 on Sep 24th, 2010, 5:05pm

Hi Raja,

IN your schematic  - one end of the resistor is connected to DC supply an the other end to gnd? In this case you will not see any noise since both ends of the resistor are tightly clamped to fixed voltages.

connect the resistor to the dc source and leave the other end of the resistor open; now probe the voltage on the open end of the resistor to see the noise. Alternatively look at the setup Pancho has in one of the figures in this thread.

Title: Re: Why resistors produce so much noise
Post by vp1953 on Sep 25th, 2010, 9:25am

Hi Pancho


Quote:
No, noise should be included in observed current.


let me clarify - if a resistor is connected between a dc voltage source (ideal with 0 source resistance) and gnd, then no noise voltage will be seen. A noise current will be there as you say

Now the odd thing is that just as Raja says I dont see any noise current as well for the above case - something odd about Spectre?

Title: Re: Why resistors produce so much noise
Post by vp1953 on Sep 26th, 2010, 10:13am

Hi Pancho,

Which effective resistance is zero? If the resistor is modeled as a resistor with a noise current source in parallel (as you stated), then there should be a noise current measured.

Just curious as to why the temperature for your simulation is 16.85?

Title: Re: Why resistors produce so much noise
Post by raja.cedt on Sep 26th, 2010, 10:42pm

hi vp1953,
i did simulation with setup as you told. Please find the attached schematic. even though i have opened the one end of the resister i am not able to get the noise, still i am getting dc values. Could you please check my options in transient analysis. or please tell me how to get those noise as you shown in the above post (with dc as well as noise.)

@pancho_hideboo,
i have one basic doubt in simulations, while doing normal transient analysis on some block like op amp will the simulator  adds all device noise and give results or with out noise it will give? and in the above post in the resister schematic whats that " trise=isnoisy=yes"

Thanks for your time.

Title: Re: Why resistors produce so much noise
Post by sheldon on Sep 27th, 2010, 2:02am

Raja,

 Try using probes. select AC terminal currents --> yes
               in ADE Outputs --> Save All --> yes
               in Spectre netlist, saveOptions options useprobes=yes

                                                        Best Regards,

                                                          Sheldon

Title: Re: Why resistors produce so much noise
Post by pancho_hideboo on Sep 27th, 2010, 4:28am


vp1953 wrote on Sep 25th, 2010, 9:25am:
Now the odd thing is that just as Raja says I dont see any noise current as well for the above case
- something odd about Spectre?
Being different from you and Raja, I can surely see noise current even for R2=0 or vdc=0 in both conventional small signal noise analysis and transient noise analysis of Cadence Spectre.
And its value is almost coincident to theoretically expected value.

Show me your netlist.

But conventional small signal noise analysis of Cadence Spectre results in error when resistor value is zero,
regardless of http://www.designers-guide.org/Forum/YaBB.pl?num=1236837379/10#10.
Quote:
******************************************************
Noise Analysis `noise': freq = 1 GHz, r2 = (0 -> 50)
******************************************************

Internal error found in spectre during DC solution estimation, during DC analysis, during Noise analysis `noise'.  Please run `getSpectreFiles' or send the netlist, the spectre log file, the behavioral model files, and any other information that can help identify the problem to support@cadence.com.
   FATAL (SPECTRE-18): Segmentation fault.

On the other hand, there is no error even for R2=0 in both Agilent GoldenGate and Synopsys HSPICE.
Only Cadence Spectre can not run for R2=0.
See the followings.
http://www.designers-guide.org/Forum/YaBB.pl?num=1236837379/8#8
http://www.designers-guide.org/Forum/YaBB.pl?num=1236837379/11#11
http://www.designers-guide.org/Forum/YaBB.pl?num=1236837379/18#18

pancho_hideboo wrote on Mar 22nd, 2009, 8:52pm:

Andrew Beckett wrote on Mar 20th, 2009, 2:19pm:
Hopefully my response is a little more polite than some of the responses in this thread  ;)
I'm always very honest. :D

If I replace R2=0 with vdc=0, Cadence Spectre can give same noise value as R2=0.

Transient Noise Analysis of Cadence Spectre can run even for R2=0, although conventional small signal noise analysis of Cadence Spectre results in error.

Netlist
Quote:
// Generated for: spectre
// Generated on: Sep 27 18:58:15 2010
// Design library name: My_RFDE_Test
// Design cell name: test_Resistor_Noise
// Design view name: schematic
simulator lang=spectre
global 0
parameters r1=50 r2=50

// Library name: My_RFDE_Test
// Cell name: test_Resistor_Noise
// View name: schematic
IPRB0 (net015 net023) iprobe
H0 (Inoise 0) ccvs rm=1 probe=IPRB0
Vdummy (net06 0) vsource dc=1 mag=1 type=dc
Rdummy (net06 0) resistor r=50 isnoisy=no dtemp=-289.999
R1 (net023 0) resistor r=r1 isnoisy=yes
R2 (net015 0) resistor r=r2 isnoisy=no dtemp=-289.999
R10 (Inoise 0) resistor r=1T isnoisy=no dtemp=-289.999

simulatorOptions options temp=16.85 tnom=27 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

tran tran stop=10000u noiseseed=1 noisefmax=1/(2*1u) noisescale=1 \
   maxstep=1u write="spectre.ic" writefinal="spectre.fc" annotate=status \
   maxiters=5

noise ( Inoise 0 ) noise freq=1G param=r2 start=0.5 stop=50 lin=1 \
   values=[0 5] annotate=status

designParamVals info what=parameters where=rawfile
saveOptions options save=selected pwr=none


Attached figure is a schematic of test bench.
Here extra blocks and extra parameters are included for accomodation of Synopsys HSPICE and Agilent GoldenGate.

Title: Re: Why resistors produce so much noise
Post by pancho_hideboo on Sep 27th, 2010, 4:33am

Plots of results.

Noise current[Arms2] values are evaluated as RMS2 from results of Transient Noise Analysis.

Title: Re: Why resistors produce so much noise
Post by pancho_hideboo on Sep 27th, 2010, 4:39am

This is a summary.


raja.cedt wrote on Sep 26th, 2010, 10:42pm:
i have one basic doubt in simulations,
while doing normal transient analysis on some block like op amp will the simulator  adds all device noise
and give results or with out noise it will give?
I can't understand what you want to mean.


raja.cedt wrote on Sep 26th, 2010, 10:42pm:
and in the above post in the resister schematic whats that " trise=isnoisy=yes"
I can't understand what you want to mean.

Title: Re: Why resistors produce so much noise
Post by Geoffrey_Coram on Sep 27th, 2010, 6:08am


raja.cedt wrote on Sep 26th, 2010, 10:42pm:
@pancho_hideboo,
i have one basic doubt in simulations, while doing normal transient analysis on some block like op amp will the simulator  adds all device noise and give results or with out noise it will give?


Normal transient analysis does not include any noise; you can do transient noise or small-signal (ac) noise analysis.




Quote:
and in the above post in the resister schematic whats that " trise=isnoisy=yes"


Pancho's schematic interface has been set up so that certain instance parameters are displayed in the schematic for easy visibility.  "trise=" looks like no value was specified for trise, which I assume means "trise=0", the device will be simulated at the circuit temperature.   isnoisy=yes means the device will have noise in noise analyses; isnoisy=no can be used in noise figure simulations, where you want certain resistors in the testbench not to contribute to the output noise (easier to do this than try to subtract out that noise later).

Title: Re: Why resistors produce so much noise
Post by vp1953 on Sep 28th, 2010, 5:08pm

Hi Pancho,

In you analysis, can you take out R2 altogether (and not set it to 0) - and have a non-zero voltage source connected across a noisy resistor with one end of the resistor and voltage source connected to ground.

Do you get zero noise current in Cadence Spectre transient noise analysis? If yes, why is this?

Title: Re: Why resistors produce so much noise
Post by pancho_hideboo on Sep 28th, 2010, 8:19pm


vp1953 wrote on Sep 28th, 2010, 5:08pm:
In you analysis, can you take out R2 altogether (and not set it to 0)
- and have a non-zero voltage source connected across a noisy resistor with one end of the resistor and voltage source connected to ground.
Try by yourself.
Then show me your results and netlists.

I showed noise current RMS value evaluated from transient noise analysis when "R2=0" is replaced by "vdc=0".

I think simply you are wrong in obserbing noise current.
Obserbe "Inoise=Itotal-Idc" not "Itotal".

You have to consider difference of magnitude order between Idc and Inoise.
Inoise is very very very very very small comapred to Idc.

Also you have to set "reltol", "vabstol" and "iabstol" appropriately with considering Idc and Inoise magnitudes.

Title: Re: Why resistors produce so much noise
Post by Andrew Beckett on Jan 2nd, 2011, 3:33am


pancho_hideboo wrote on Sep 27th, 2010, 4:28am:
But conventional small signal noise analysis of Cadence Spectre results in error when resistor value is zero,
regardless of http://www.designers-guide.org/Forum/YaBB.pl?num=1236837379/10#10.
Quote:
******************************************************
Noise Analysis `noise': freq = 1 GHz, r2 = (0 -> 50)
******************************************************

Internal error found in spectre during DC solution estimation, during DC analysis, during Noise analysis `noise'.  Please run `getSpectreFiles' or send the netlist, the spectre log file, the behavioral model files, and any other information that can help identify the problem to support@cadence.com.
   FATAL (SPECTRE-18): Segmentation fault.

On the other hand, there is no error even for R2=0 in both Agilent GoldenGate and Synopsys HSPICE.
Only Cadence Spectre can not run for R2=0.

I just tested this in MMSIM72, and the simulation runs successfully, even with R2=0. No crash. Possibly a problem caused by some optimization where the zero-value resistor was removed causing a topology change. I did see in IC5141 spectre it gave an error about the conductance form being used for the zero-value resistor (but it didn't crash).

So whatever the problem was, it seems to be resolved now.

Regards,

Andrew.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.