• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. HB Analysis on PLL

Stats

  • Locked Locked
  • Replies 20
  • Subscribers 125
  • Views 23066
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

HB Analysis on PLL

fortune100worse
fortune100worse over 4 years ago

Dear Cadence SpectreRF Experts:

I am running HB analysis on a PLL. PLL reference is 20MHz and its output is 240MHz. Its VCO operates at 480MHz and there is a fixed divide-by-2 at the VCO output and a feedback divider that divides by 12. The total divide ratio is therefore 24. At this stage, I am only interested to have a HB analysis of the PLL to have its periodic steady state.

I use HB analysis and the setting I am using is as attached in the picture. The convergence is achieved and the simulation is successfully finished.

However, the problem is, the PLL output and the feedback divider output are all at 0 and the VCO output is at VDD/2 (about 720mV) from HB td results. The only signal that appears to be periodic is the reference which has a correct period of 1/20MHz. I have attached a picture of the output.

Can you explain why is the outputs (VCO, PLL, and feedback divider) flat at 0?

Thanks!

Br, 

  • Cancel
  • fortune100worse
    fortune100worse over 4 years ago in reply to Andrew Beckett

    Thanks for your detailed reply. 

    I understand well that harmonics count has a much more pronounced effect on the HB analysis as it basically tries to find a weighted combination of the available harmonics to represent all periodic signals within the circuit and if not enough harmonics are specified, then the accuracy of representation can be affected. My point was even with 50 or 200 that I tried, I expected to see at least the DC component of the VCO or PLL outputs (which should be 750mV or VDD/2) but I saw flat out 0v; and this result was with convergence.

    I am not using oscillator mode, it is a PLL and it is a driven circuit hence oscillator option is turned off. 

    The divider is made of div23 cells (5 of those): two cells are configured as divide by 2 and 1 as divide by 3 hence 2x2x3=12 and 2 are not dividing (or divide by 1). However, you are absolutely right that some unforeseen frequencies within the  divider maybe the root cause, that is what I am currently investigating.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to fortune100worse

    I realised (in the middle of the night, as you do...) that you'd already shown in your responses yesterday that you weren't using oscillator mode. Sorry about that - I was on a bit of a roll when I wrote my last reply!

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • fortune100worse
    fortune100worse over 4 years ago in reply to Andrew Beckett

    In the meantime, I discovered the feedback divider made of 2/3 dividers was designed to cover a wide range of divide ratios besides the simulated one of 12; this capability caused the feedback divider to produce other frequencies: in this particular simulated case I explained earlier, the feedback divider also produced a 20MHz/3 (6.67MHz) tone. 

    After changing fundamental from 20MHz to 20MHz/3 (I exactly put 20M/3 in the entry box); the Shooting method still complained but the HB analysis using oversampling of 10, harmonics count of 120, and very importantly maxperiods of 200 (default appears to be 100), converged and produced the attached picture. Clearly the reference and output are periodic.

    I repeated and increased the number of harmonics to 180, 240, and even 600 in HB analysis keeping the over sampling still at 10:  log file reported " WARNING (SPCRTRF-15319" too small number of harmonics in the case of 180 and 240 (also earlier for the 120) but for 600 it didn't (seems like 600 harmonics are sufficient). However, all HB simulations failed convergence (only 120 harmonics converged; 180, 240, 600 all failed). 

    HB complained on few signals in the flip-flip cells of the feedback divider coming from a standard cell library; the convergence norm for these signals is about 50 to 100 (so not too big but also not getting any smaller). The waveform of such signals is also attached below. I wonder if these waveforms are not periodic or how the simulator will react to such waveforms?! 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to fortune100worse

    With your new fundamental frequency, 120 harmonics is still too low (that's equivalent to 40 with your older setup with 20MHz fundamental, so even worse than before), and oversample=10 is a crutch - that also indicates that you have insufficient harmonics. Given that convergence is not improving with more harmonics, and that it still doesn't converge with shooting (which I think would be more appropriate), I wonder whether you've really identified the true lowest common frequency.

    I can't see from the last plot whether it appears to be periodic or not because it's truncated.

    Debugging this kind of thing in the forum is very hard - can you contact customer support?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fortune100worse
    fortune100worse over 4 years ago in reply to Andrew Beckett

    Hi Andrew,

    I got the HB converged with 600 and 900 harmonics (4.8GHz and 6GHz), this is more than enough even if I were to do a HBNOISE with >=20 sidebands (please correct me if I am wrong). 

    HB converged when I set cmin=3f for 600 harmonics and when I set cmin=4f for 900 harmonics. Obviously I cannot increase cmin arbitrarily because it affects the circuit at some point (which implies a limit on the maximum harmonics I can use).

    Now my question to Cadence: how does increasing cmin improve HB convergence at higher harmonics?? How come cmin=3f converged with 600 harmonics but cmin=4f was needed for 900 harmonics?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to fortune100worse

    Dear fortune100worse,

    I am sorry I did not respond earlier - but for some reason did receive copies of all your correspondences with Andrew concerning your continual convergence issue! You wrote something in your post of 12 days ago...

    fortune100worse said:
    The divider is made of div23 cells (5 of those): two cells are configured as divide by 2 and 1 as divide by 3 hence 2x2x3=12 and 2 are not dividing (or divide by 1).

    and then...

    fortune100worse said:
    In the meantime, I discovered the feedback divider made of 2/3 dividers was designed to cover a wide range of divide ratios besides the simulated one of 12; this capability caused the feedback divider to produce other frequencies: in this particular simulated case I explained earlier, the feedback divider also produced a 20MHz/3 (6.67MHz) tone. 

    I have  a lot of experience with div23 cells in simulations. I think the reason, indeed, you are experiencing harmonic balance related convergence is that the frequency components in the response are not integrally related due to the nature of the div23 cell. If your end goal is to estimate the steady-state response of your PLL, have you considered performing a standard transient analysis and allowing it to approach staady-state?

    This is the approach we use for multi-modulus, LC VCO, based PLL (i.e., contains div23 cells in feedback divider of PLL) with much success. The simulation times to reach steady-stae for loop bandwidths on the order of MHz are quite reasonable for netlists composed even from extracted views of PLL components using spectre X with very conservative levels of post layout optimization. The aperiodic behavior is quite evident in the simulated results and useful to study in Fourier analyses.

    Let me know if I can better clarify my comments.

    fortune100worse said:
    Now my question to Cadence: how does increasing cmin improve HB convergence at higher harmonics?? How come cmin=3f converged with 600 harmonics but cmin=4f was needed for 900 harmonics?

    I do not believe the improvement you are observing is a direct result of changing coin. There is a nice discussion of what cmin does in a transient simulation in the On-line support article at URL:

    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nSkmEAE&pageName=ArticleContent

    Often, as noted in the article, the use of a larger cmin "masks" model related discontinuities and other simulation artifiacts (for example, ideal transition times limited only by simulator tilmestep). I would consider re-examining your models and other netlist parameters to make sure none of these exist. Even if they do not, I, personally, do not think the HB simulation methodology is well suited for a circuit containing a fractional divider based circuit element and would still suggest the use of a conventional transient analysis. If you want to re-start the simulation close to its steady-state in a second simulation, you might consider saving the simulation state and re-starting to avoid much of the low frequency behavior of the loop and rapidly approach a new steady-state. If you are not familiar with this process, it is also detailed in your spectre manual, or the On-line support article at URL:

    Spectre Circuit Simulator Reference -- Other Simulation Topics - Checkpoint - Restart (checkpoint)

    I just wanted to add a few of my personal thoughts to, possibly, provide some possible insight and help to you fortune100worse (hope they do!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fortune100worse
    fortune100worse over 4 years ago in reply to ShawnLogan

    Hi Shawn,

    Thanks for your valuable feedback.

    My final goal is to avoid lengthy transient noise simulation for checking phase noise and jitter of the PLL. I want to have a converged steady state and do a hbnoise or pnoise. I have done this task before using company internal simulators (Philips, Motorola) without problem, even AFS from BDA did a good job but with Spectre I usually face convergence issues. 

    I have checked all signals inside the feedback divider and for the case of reference=20MHz and divide ratio=12; the lowest frequency inside the feedback divider is 20MHz/3 (6.67MHz). 

    As with cmin, obviously setting cmin avoids sudden (ultra fast) voltage variations and smooths out such variations which makes it easier to converge. Assuming the same cmin (the same level of smoothing) the simulator should have better time converging with higher harmonics than lower harmonics (am I right here?) so why do I need to increase cmin to get convergence for higher harmonics? That is precisely my question. 

    Br, fortune100worse

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to fortune100worse
    fortune100worse said:
    My final goal is to avoid lengthy transient noise simulation for checking phase noise and jitter of the PLL. I want to have a converged steady state and do a hbnoise or pnoise. I have done this task before using company internal simulators (Philips, Motorola) without problem, even AFS from BDA did a good job but with Spectre I usually face convergence issues.

    I'm not sure you're comparing like with like here, as RF simulation technology has very different convergence criteria than (say) transient. Particularly trying to converge a harmonic balance with the very small number of harmonics you were trying to do initially did not make sense for the reasons I outlined at the beginning, and I still think that shooting would be a more appropriate solution here. For a switching circuit it should normally be much easier to obtain an accurate solution and I wouldn't expect such difficulties in convergence either.

    I would not expect you to have to use cmin at all here - it's possible that you are just damping down the numerical noise at the higher frequencies - this might be an instability, or it may be some residual inaccuracy if the 480MHz frequency is pretty square - even with 900 harmonics of your 20MHz/3 fundamental, that's only 12 harmonics of 480MHz - which is not very many for a good square wave. For example, 12 harmonics of a square wave (converted back into the time domain) would look like this:

    Now, if the square wave is squarer than that (I assume it probably doesn't have anything like that ripple) then there are presumably harmonics beyond the 12/13th harmonics with significant energy. With harmonic balance, it is trying to ensure that the harmonics are balanced into each node, and so the energy from the missing harmonics has to go somewhere - if that energy is significant enough, it causes convergence difficult - some level of filtering might damp that uncertainty down a bit, and that's probably what you're seeing with cmin - it's crutch and this dampening is hiding the true problem, which is that even 900 harmonics are not enough for this (assuming you really have got the fundamental right).

    I'm a little surprised that shooting is not converging, because that should capture the entire content of the waveform - but PLL convergence can also be problematic if you have (say) dead bands in the phase detector, or having the wrong fundamental again.

    I really would suggest that you contact customer support - trying to figure out what is going wrong without being able to see the data is very hard. Trying to infer what's going on from the results of setting a simulator parameter (cmin) that is probably not wise to use anyway is also not easy - I doubt there is a strong correlation between the value of cmin and the number of harmonics; there's an element of luck (well, it's not really luck) if you are trying to squeeze the energy of lots of harmonics into too few harmonics, which is one fo the downsides of harmonic balance with heavily non-linear circuits; it's always important to ensure you have sufficient harmonics to capture all harmonics with significant energy (not just the harmonics you're interested in). Shooting is (usually) more forgiving because it is closer to a transient and the number of harmonics is just how many you want to observe; shooting is less good though with a highly linear system that can be represented accurately with a small number of harmonics because it doesn't have the dynamic range that harmonic balance does.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fortune100worse
    fortune100worse over 4 years ago in reply to Andrew Beckett

    Hi Andrew,

    I started to play with cmin per advise from Spectre after failing to converge Shooting.

    12 Harmonics are more than enough to construct 480MHz VCO output. Why? Because VCOs (oscillators) oscillate at one frequency (given by the Barkhausen criteria); the harmonic distortion in VCOs is rather small, VCOs are not wideband, so few harmonics are sufficient to represent the 480MHz well (see below VCO output with 900 Harmonics comparison between hb_tran and hb_td). However, the VCO output goes to a div2 (240MHz) and then into the feedback divider and those logic cells tend to add a lot more harmonics (Gibb's effect may be more pronounced there or specially in the reference generated by an ideal source with linear edges). 

    The PLL uses a dead zone free PFD design (it locks with an intentional small phase difference, ensuring there is no dead zone). Shooting not converging has to do with something else, Shooting fails convergence even with cmin=3f or 4f! 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to fortune100worse

    Whether harmonic distortion in VCOs is rather small or not does rather depend on what kind of VCO it is; if it had been a current-starved ring oscillator, then it would have had a large number of harmonics, or if the output of a sinusoidal VCO went into a buffer that squared up the output before the input of the divider, it could also need a lot of harmonics to represent. Similarly after an initial divide by 2 (as you said) then there could also be a significant number of harmonics. Either way, I didn't know - debugging this in a forum is rather like being blindfolded and with one hand tied behind your back - there's not really enough to go on. That's why I've been steering you towards customer support.

    Typically I wouldn't use cmin to help with PSS convergence issues unless you were seeing issues likely to be related to discontinuities in models, and even then it's mostly a crutch to fix poor models rather than something that should be necessary. Some of the advice is a bit generic - and it rather depends on the nature of the convergence failure.

    I don't really know why shooting is failing to converge - without even seeing a log file I simply cannot just guess -  most of my responses so far have just been guesswork based around the typical failures and the snippets of information you have been able to provide in a public forum.

    So please do contact customer support!

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
<

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information