The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 19th, 2024, 6:43am
Pages: 1 2 
Send Topic Print
simulating phase noise of differential LC-VCO in spectre (Read 6486 times)
oermens
Community Member
***
Offline



Posts: 86

simulating phase noise of differential LC-VCO in spectre
Dec 02nd, 2008, 9:56am
 
sorry if this has been covered before, i searched but did not find an answer. i am wondering how to set up pss and pnoise in spectre. i have a 2.4ghz differential lcvco and i want to mesaure the phasenoise at 1mhz offset. right now the settings i have are as follows and ijust want to make sure htey are correct:

pss:
Beat frequency: 2.4G
# of harmonics: 10
Accuracy: Conservative
tstab: 100n (vco reaches steadystate after ~20ns)
saveinit: yes
oscillator node: Vo+
reference node: Vo- (is this correct or should be /gnd! ?)

pnoise:
sweeptype: default
Relative harmonic: blank (should be 1?)
Start-stop: 0.01M to 100M
Logarithmic sweep, 10 points per decade
Max sideband: 10
Positive output node: Vo+
Negative output node: Vo- (again, is this correct?)
Input source: none

I didnt change any of the additional options for pss/pnoise. If someone could validate or correct my settings, it would be appreciated.
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #1 - Dec 2nd, 2008, 10:34pm
 
oermens wrote on Dec 2nd, 2008, 9:56am:
sorry if this has been covered before, i searched but did not find an answer.

If you read Cadence Spectre documents surely, you can find all answers to your questions easilly.

oermens wrote on Dec 2nd, 2008, 9:56am:
pss:
Beat frequency: 2.4G

If you use Shooting Newton PSS, you have to set fundamental frequency lesser than actual steady state oscillation frequency.

oermens wrote on Dec 2nd, 2008, 9:56am:
pss:
Accuracy: Conservative

You should set Accuracy=Moderate in your first simulation.
With Accuracy=Conservative, you might encounter convergence problem in PSS.

oermens wrote on Dec 2nd, 2008, 9:56am:
pss:
oscillator node: Vo+
reference node: Vo- (is this correct or should be /gnd! ?)

You had better set reference node as Vo-.
But even though you set reference node as /gnd!, there is no problem.

oermens wrote on Dec 2nd, 2008, 9:56am:
pnoise:
sweeptype: default
Relative harmonic: blank (should be 1?)

When master PSS analysis is autonomous, sweeptype is relative and Relative harmonic=1 by your setting. This is implicit setting.
If you are still worried, you may set sweeptype=relative and Relative harmonic=1 clearly.

oermens wrote on Dec 2nd, 2008, 9:56am:
pnoise:
Positive output node: Vo+
Negative output node: Vo- (again, is this correct?)

You had better set Negative output node as Vo-.
But even though you set Negative output node as /gnd!, phase noise results is not changed if you set reference node as Vo- in pss setting.

oermens wrote on Dec 2nd, 2008, 9:56am:
I didnt change any of the additional options for pss/pnoise. If someone could validate or correct my settings, it would be appreciated.

Basically there is no critical problem in your settings.

http://www.designers-guide.org/Forum/YaBB.pl?num=1223659963/0#1
Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
oermens
Community Member
***
Offline



Posts: 86

Re: simulating phase noise of differential LC-VCO in spectre
Reply #2 - Dec 3rd, 2008, 7:46am
 
Thank you. I have another question. I initiate oscillation by putting an initial condition on Vo+ and Vo- of 1fV. When transient analysis starts (either in pss or tran) I get convergence errors, Vbox errors and imelt errors. I look at the waveform of transient result, the voltage starts at 5V for few nanoseconds but my initial condition is just fV!! Should I ignore this?
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #3 - Dec 3rd, 2008, 4:01pm
 
Explain in detail and correctly.

oermens wrote on Dec 3rd, 2008, 7:46am:
When transient analysis starts (either in pss or tran) I get convergence errors, Vbox errors and imelt errors.

Does the above mean that simulation fails ?

oermens wrote on Dec 3rd, 2008, 7:46am:
I look at the waveform of transient result, the voltage starts at 5V for few nanoseconds but my initial condition is just fV!! Should I ignore this?

It seems simulation itself can complete without fail. Right ?
Back to top
 
« Last Edit: Dec 3rd, 2008, 8:56pm by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
oermens
Community Member
***
Offline



Posts: 86

Re: simulating phase noise of differential LC-VCO in spectre
Reply #4 - Dec 3rd, 2008, 5:17pm
 
the simulation does not fail, just for the first 1 or 2 ns many convergence/vbox/imelt errors show up but then the oscillation is normal afterwards. is there any explanation for this kind of 'startup transient'? is it just the simulator/model characteristic or something related to the circuit?
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #5 - Dec 3rd, 2008, 8:34pm
 
Again explain correctly.

oermens wrote on Dec 3rd, 2008, 5:17pm:
the simulation does not fail, just for the first 1 or 2 ns many convergence/vbox/imelt errors show up but then the oscillation is normal afterwards.

Error is different from Warning.
Does Spectre report "convergence errors" and "Error" regarding  "imelt" and "vbox" truely ?
Actually Spectre report like following, doesn't it ?

   WARNING (CMI-2377): I50.I_left.I0.I39.I11.I5.g4_N5: Vgd has exceeded the oxide breakdown voltage of `vbox' = 8.673 V.

   WARNING (CMI-2139): I50.I_left.I0.I39.I11.I5.g3_N2: The bulk-source junction current exceeds `imelt'.  The results computed by Virtuoso(R) Spectre(R) are now incorrect because the junction current model has been linearized.

   WARNING (CMI-2144): I50.I_left.I0.I39.I11.I5.g4_N5: The bulk-drain junction current exceeds `imax'.

If so, these are warning.
If these are reported only during shooting newton iterations, generally you can ignore these warnings.

If Spectre report "Errors", spectre simulation will fail and not complete.

oermens wrote on Dec 3rd, 2008, 7:46am:
I look at the waveform of transient result, the voltage starts at 5V for few nanoseconds but my initial condition is just fV!! Should I ignore this?

Voltage at time=0 is truely 5V ?
Show me your result graph around time=0.

Back to top
 
« Last Edit: Dec 4th, 2008, 6:40am by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
oermens
Community Member
***
Offline



Posts: 86

Re: simulating phase noise of differential LC-VCO in spectre
Reply #6 - Dec 4th, 2008, 7:32am
 
I am not at campus now so I can not give the waveform. But 5V was not correct, it goes to about 1.8 or 2V from 0 within few ps, then the simulator complains until about 200-300ps at whihc point it goes to the proper DC point. The waveform is linear during the time the warnings are being reported, and goes in a 'shooting' fashion as the algorithm name suggests.

i get some new interesting errors now. when I do pss, i sometimes get an error about the V(Vout) is too small to reliably detect the period. I saw on another post in this forum that this error was resolved in a previous release of cadence (im using 5.1.41 USR5). Changing the initial guess of the fundamental frequency (even by 10MHz) sometimes solves this. Other times, I don't get the error but the PSS will hang and not do any simulation - i have to terminate it manually. Is is a problem with my convergence settings? i have reltol=1e-6 vabstol=1e-9, iabstol=1e-13, gmin=1e-14 and cmin=1f.
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #7 - Dec 4th, 2008, 6:25pm
 
Your post is usage of specific EDA vendor's simulator not "Phase Noise and Jitter Measurements".
Please post to "The Designer's Guide Community Forum ≫ Simulators ≫ RF Simulators".

oermens wrote on Dec 4th, 2008, 7:32am:
But 5V was not correct, it goes to about 1.8 or 2V from 0 within few ps, then the simulator complains until about 200-300ps at whihc point it goes to the proper DC point.

I want to know voltage value at time=0.
So show me waveform during time=0~500psec.

oermens wrote on Dec 4th, 2008, 7:32am:
i get some new interesting errors now. when I do pss, i sometimes get an error about the V(Vout) is too small to reliably detect the period.

Is it truely "Error" not "Warning" this time ?
Such reports from Cadence Spectre are very common in Cadence Shooting Newton PSS.

oermens wrote on Dec 4th, 2008, 7:32am:
Changing the initial guess of the fundamental frequency (even by 10MHz) sometimes solves this.

Again the initial guess of the fundamental frequency must be lesser than steady state oscillation frequency.

oermens wrote on Dec 4th, 2008, 7:32am:
Other times, I don't get the error but the PSS will hang and not do any simulation - i have to terminate it manually.

Maybe internal time step is too small and very large memeory is consumed due to convergence difficulty, so simulation is almost hang.
We often encounter such convergence problem in Cadence Shooting Newton PSS.

Increase tstab value.
Loosen your accuarcy setting.
Or try autonomous HB analysis.

Back to top
 
« Last Edit: Dec 4th, 2008, 9:24pm by pancho_hideboo »  
View Profile WWW Top+Secret Top+Secret   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #8 - Dec 6th, 2008, 6:15am
 
Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: simulating phase noise of differential LC-VCO in spectre
Reply #9 - Dec 6th, 2008, 1:30pm
 
I would go farther than simply saying you should loosen your tolerances. I would say that the tolerances you using are very extreme, so extreme that they may be the cause of some of your problems. By default you should use the default tolerances, and only tighten them if , after simulation, you find you are not getting the accuracy you need. The default tolerances were chosen for a reason, because they work in most cases and provide a reasonable tradeoff between accuracy and efficiency. In my experience a large percentage of the problems people have with SpectreRF are self-induced by use of extremely tight tolerances. In addition to creating unnecessary convergence problems, simulations are running 5-10x slower than they need to because people are so conservative in setting the tolerances.

SpectreRF issues the message "V(Vout) is too small to reliably detect the period" when the oscillation dies during the tstab interval. You need to do a better job of starting the oscillator.

Trying to set initial conditions on an LC tank is fraught with problems. In particular, if you try to set the voltage on the capacitor, the inductor interferes and the result is a very large initial current through the inductor. A similar problem occurs if you try to set the current through the inductor. I discuss this issue in some depth in my "Spice and Spectre" book. The end result is you either end up with unexpectedly large initial conditions, which results in "melting" and "vbox" messages, or very small initial conditions, which results in the "too small" message.

You should tell Spectre to save the waveforms during the tstab interval and display them, and then adjust your initial condition and tstab settings to assure that you are getting a good strong oscillation at the end of the tstab interval, and that frequency estimate you give the PSS analysis is roughly correct (there is no constraint that it be greater than or less than the actual frequency, only that it be close, and by close I mean within 10% or so should be plenty).

You might consider starting the oscillator with a damped sinusoidal current source. I find that works best on oscillators with parallel LC resonators.

-Ken



Back to top
 
 
View Profile WWW   IP Logged
oermens
Community Member
***
Offline



Posts: 86

Re: simulating phase noise of differential LC-VCO in spectre
Reply #10 - Dec 6th, 2008, 2:26pm
 
thanks for the replies. i keep mistakenly referring to warnings as errors, as pointed out by pancho_hideboo.

well I set the initial condition of 1f on the two output nets since the passive components in my kit don't have an option for initial condition (although i could take a 0 F cap from analogLib and put IC on that). i do select save initial transient in pss, and the waveform for the first < 1ns looks like a triangle starting from 0V, peaking around 1.8-2V and then going back down to 0V, after which oscillation starts. Again i forgot to take a screenshot to show.

regarding tstab, my oscillator reaches steady state oscillations in < 25ns, and my tstab is 150ns. the problem seemed to lie with this initial guess of the frequency. For example, 2.42GHz may give the 'too small' error, but 2.43GHz would work or pss would hang. i will try the damped sinusoidal current source and see how that works out. i will reduce the tolerances to default as well. as i understand, conservative errpreset multiples all the tolerances by 0.1 also?

thanks again for the help. i appreciate it.
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #11 - Dec 9th, 2008, 6:22am
 
oermens, I suggested you not to set Accuracy=Conservative as first answer to your question like following.
Do you read my post surely. And why do you refer "Warning" as "Error" ?
pancho_hideboo wrote on Dec 2nd, 2008, 10:34pm:
oermens wrote on Dec 2nd, 2008, 9:56am:
pss:
Accuracy: Conservative

You should set Accuracy=Moderate in your first simulation.
With Accuracy=Conservative, you might encounter convergence problem in PSS.


But we can't often get reasonable results at all in Cadence Shooting Newton PSS or QPSS even though we loosen accuracy setting.
Such issues are well known between RF guys who have other simulators than Cadence Spectre.

http://www.designers-guide.org/Forum/YaBB.pl?num=1220476173/0
Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: simulating phase noise of differential LC-VCO in spectre
Reply #12 - Dec 9th, 2008, 8:37am
 
That has not been my experience. I almost always get good results with default tolerances in SpectreRF. In fact, my experience has been the opposite. Harmonic balance simulators do not automatically control the number of harmonics and so can get results that are pretty far off, while the shooting methods in SpectreRF are transient-based and automatically controls the time step for accuracy, and so is unlikely to give such inaccurate results.

-Ken
Back to top
 
 
View Profile WWW   IP Logged
oermens
Community Member
***
Offline



Posts: 86

Re: simulating phase noise of differential LC-VCO in spectre
Reply #13 - Dec 9th, 2008, 10:48am
 
i have set the tolerances to defaults (reltol=1e-3, vabstol=1e-6, iabstol=1e-12) and moderate accuracy preset. my simulations no longer give the convergence warnings and as Ken mentioned, they complete much faster. the results are also consistent with the higher tolerance's results.  it is my understanding that flexbalance was made available in MMSIM6.2. we are using MMSIM6.1 so we don't have flexbalance option, i will talk to our network admin about upgrading to 6.2 (we don't download via sourcelink, we get our tools from 3rd party)

---
i just read another post related to flex balance, it seems we did not have the environment variable CDS_SPECTRERF_FBENABLE in our setup script. i will try flexbalance now.
--------

sorry if i'm squeezing too many things into one topic, but i set the environment variable but when i run pss it says 'flexbalance' is not a valid parameter for an instance of 'pss'. Ignored. any idea how to correct this?
Back to top
 
« Last Edit: Dec 9th, 2008, 12:22pm by oermens »  
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: simulating phase noise of differential LC-VCO in spectre
Reply #14 - Dec 9th, 2008, 3:43pm
 
oermens wrote on Dec 9th, 2008, 10:48am:
it is my understanding that flexbalance was made available in MMSIM6.2. we are using MMSIM6.1 so we don't have flexbalance option,

Again not correct.
HB analysis is available since MMSIM6.0USR1.
If your version of MMSIM is 6.1 truely, you can use HB analysis.

oermens wrote on Dec 9th, 2008, 10:48am:
i just read another post related to flex balance, it seems we did not have the environment variable CDS_SPECTRERF_FBENABLE in our setup script.

You don't have to set CDS_SPECTRERF_FBENABLE if you use MMSIM after 6.0USR3.

oermens wrote on Dec 9th, 2008, 10:48am:
but i set the environment variable but when i run pss it says 'flexbalance' is not a valid parameter for an instance of 'pss'. Ignored.

Is it true that you are using MMSIM6.1 ?

Show me version of MMSIM in logfile of Spectre according with netlist regarding pss statement.

Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
Pages: 1 2 
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.