The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> RF Simulators >> Different VCO freq found by pss and transient
https://designers-guide.org/forum/YaBB.pl?num=1215208865

Message started by alexsoton on Jul 4th, 2008, 3:01pm

Title: Different VCO freq found by pss and transient
Post by alexsoton on Jul 4th, 2008, 3:01pm

I've designed a 5GHz LCVCO but the fundamental frequency found by pss and transient is 40MHz apart. Does this happen to you? Which one is right? I heard pss is more accurate but later I want to run transient for a PLL using this VCO. If transient is not accurate (I think 40MHz error is a pretty big), should I trust the transient results of my PLL, such as the transient of Vcontrol? Appreciate any suggestion on how I should approach the problem.  


Title: Re: Different VCO freq found by pss and transient
Post by Stefan on Jul 4th, 2008, 3:20pm

Did you do the PSS using shooting or harmonic balance method ?

You might try different initial settings or accuracy specs for the transient to see the influence on the stable operation. However, in my oppinion, 40 MHz @ 5 GHz is really much (around 1%).
Did you compare your control voltage for both solutions?

Title: Re: Different VCO freq found by pss and transient
Post by alexsoton on Jul 5th, 2008, 9:20am

I am using SpectreRF which I guess adopts shooting method. Control voltage and all other conditions are the same for my transient and pss analysis. I set moderate for the transient analysis accuracy (Changing it to conservative can narrow the frequency difference from 40MHz to 15MHz).  

I changed reltol from the default 1e-3 to 1e-6 and now pss and transient VCO freqs have no difference but at the cost of X6 longer simulation time and the annoyance of changing reltol whenever I worry about the transient accuracy. Is this about what I should do?  

I also read a VCO simulation tutorial from MIT opencourse website (http://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-776Spring-2005/28301B8C-5E28-4196-A616-34C4B5F328DA/0/spectre_tutorial.pdf). With SpectreRF default, their transient and pss VCO freq difference is 20MHz @ 4GHz.

Even more puzzling to me is that when I put the VCO into a PLL and first made VCO electrically unconnected with the rest of the PLL, the transient gave me different oscillation frequency, e.g. 10MHz difference. I could get the right pss oscillation frequency only after I changed reltol from the default to 1e-6.

Any comments would be appreciated.

Title: Re: Different VCO freq found by pss and transient
Post by Ken Kundert on Jul 6th, 2008, 5:42pm

In general, PSS should be more accurate as it acts to eliminate, or at least minimize, two sources of error, the initial transient and the measurement of the time interval.

PSS is capable of using either shooting methods or harmonic balance. The default is shooting methods.

These are relatively small timing differences, and you have to be very careful in how you make them. Can you describe the method you are using to measure the frequency? If is does not involve using a Verilog-A model to control the time step at the time interval boundaries, then the problem is likely in your frequency measurement technique.

-Ken

Title: Re: Different VCO freq found by pss and transient
Post by alexsoton on Jul 6th, 2008, 10:29pm

Thank you very much for your guys' replies.

There is no verilog-A model involved in my simulation.

I used the function, freq, to measure the oscillation frequency, which basically calculated every rising edge interval with 0 V as threshold for my differential output signal. I run a long transient and took the calculated frequency value after the transient was stable. The transient frequency is 40 MHz lower than my pss result of 5GHz.

If I set reltol to be 1e-3, how much difference is normal between pss and transient estimate of VCO frequency? 5MHz (i.e. 0.1% for my 5GHz VCO)?  

-Alex

Title: Re: Different VCO freq found by pss and transient
Post by Ken Kundert on Jul 6th, 2008, 10:56pm

The freq function is implemented in the calculator, outside of the simulator. As such it just has to accept what ever time steps the simulator has used and do linear interpolation to calculate the period. Linear interpolation is not very accurate.

-Ken

Title: Re: Different VCO freq found by pss and transient
Post by alexsoton on Jul 8th, 2008, 1:21pm

I think the linear interpolation is the answer to explain the difference between pss and transient results. Then what is the solution in case that I need good transient simulation results?

Specifically speaking, I designed a simple transistor-level PLL using the VCO mentioned here and wanted to see a reasonably accurate Vcont transient. The clock frequency at steady state was right at 5GHz. However, with the default reltol of 1e-3, the steady-state Vcont was 1V (my vdd is 1.3V), far away from the right value of 0.5V which I could obtain after adjusting reltol to 1e-6. Do people often adjust simulation accuracy setup in order to  get right transients for high-frequency PLL? If not, I might need to re-examine my circuit. Thanks.


-Alex

Title: Re: Different VCO freq found by pss and transient
Post by Ken Kundert on Jul 8th, 2008, 2:29pm

Verilog-A is the answer. Use one of the period or frequency measuring modules given at verilog-ams.com.

-Ken

Title: Re: Different VCO freq found by pss and transient
Post by alexsoton on Jul 9th, 2008, 9:44pm

Thank you very much for your previous reply.

Did you mean that verilog-a module, such as periods.va which I obtained from verilog-ams.com, would improve the frequency measurement accuracy? I've tried it but the transient result was still 40MHz @5GHz away from that of pss with the default reltol of 1e-3. I checked the verilog manual which says the last_crossing() function used in periods.va doesn't control the timestep and still uses linear interpolation to estimate crossing points. Any comments would be appreciated.

-Alex

Title: Re: Different VCO freq found by pss and transient
Post by Ken Kundert on Jul 9th, 2008, 10:06pm

last_crossing is used in conjunction with cross in periods.va. cross forces a time point very close to the threshold crossing, and last_crossing corrects for the small amount of error that remains.

-Ken

Title: Re: Different VCO freq found by pss and transient
Post by alexsoton on Jul 10th, 2008, 8:59am

I see but my freq calculation is still about 35MHz@5GHz away from my pss and transient results with reltol adjusted to 1e-6. I can see the smaller time step around the crossing point. I even reduced the tolerance of the cross() function but still there is this above difference.

-Alex

Title: Re: Different VCO freq found by pss and transient
Post by Ken Kundert on Jul 10th, 2008, 12:56pm

Yes, well maybe the remaining frequency error is due to the underlying simulation. What integration method are you using? Or maybe you have not yet reached steady state. Now that you are using periods.va, perhaps you can plot the period (or the frequency) as a function of time, and see if it has settled.

There are multiple possible errors. You just have to knock them off one at a time.

-Ken

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