• 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. Mixed-Signal Design
  3. PSS failure for a ring VCO

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 64
  • Views 12989
  • 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

PSS failure for a ring VCO

subhadeepdatta
subhadeepdatta over 4 years ago

Hi Andrew/Shawn, 

I am doing a post-layout PSS+PNOISE for a 5-GHz 4-stage pseudo-differential ring oscillator. I tried,

  1. forcing complementary signals (ring-top voltage and VSS) to one of the ring output pairs from the test-bench level using ideal switches and analogLib pwl source.
  2. using "initial conditions" from ADEXL test to set complementary signals to one of the ring output pairs.

In both the cases, the output log shows that the PSS runs for some time and then it says that the voltage of the ring output is too small to reliably detect the period of the oscillator. Perhaps the nodes with insignificant signal levels were chosen, or perhaps the oscillator was never properly started. 

Analysis "pss" was terminated prematurely due to an error.

I understand that a 4-stage pseudo-differential ring has a stable operating point which might lead to latch-up problem but in transient, if I give the same set of initial conditions, I see proper oscillation of the ring. 

Can you tell me what is causing PSS not to converge in this case?

PSS settings used are as follows,

  • Accuracy defaults (errpreset): conservative
  • Run transient: Yes
  • Detect steady-state : unchecked
  • Stop time (tsab): 20n (when ran with 100n, that doesn't help either)
  • Oscillator: checked
  • Oscillator node+: One of the ring nodes
  • Oscillator node-: VSS
  • Calculate initial conditions (ic) automatically: unchecked
  • Method: gear2only
  • tstabmethod: gear2only

In the ADEXL test environment, I am using,

  • +dcopt
  • +postlayout = legacy_rf

Thanks and regards,

Subhadeep

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear Subhadeep,

    Thank you for the detailed description of your design and methodology - I found your description quite useful!

    subhadeepdatta said:
    Can you tell me what is causing PSS not to converge in this case?

    I canot be sure, of course, but I did notice one item that I might suggest you re-consider...let me know your thoughts...

    subhadeepdatta said:
    • forcing complementary signals (ring-top voltage and VSS) to one of the ring output pairs from the test-bench level using ideal switches and analogLib pwl source.
    • using "initial conditions" from ADEXL test to set complementary signals to one of the ring output pairs.

    Actually, if you consider what your two bullet items are doing, they are actually setting the gain of the VCO to zero. -which is exactly what you do not want to do to ensure a robust start-up process! Why do I note this? The fact that a differential pseudo-CMOS 4 stage ring oscillates is a result of one or more of the differential inverter stages being in or near its high gain region. When the output of one differential stage assumes a complementary logic state of "1" or "0", this merely limits the amplitude of the oscillations as it represents a very low gain and saturated state. In the course of a steady-state oscillation, some stages are close or near their high gain regions and others may be close to a complementary logic state. Therefore, to assure a robust start-up process, the most appropriate initial condition for the inverter stages is one where each stage is in its high gain region - where its outputs are far from their saturated states of a logic one or zero. In this fashion, any small amount of circuit or numerical noise will be amplified by each stage successively to build up to a steady-state oscillation determined by the propagation delay time of your inverter stages.

    It is rather common to find that, without forcing this high gain state at circuit power-up or the start of a transient simulation, a ring VCO may not start properly and result in no oscillations under some conditions. I believe this is why you happened to observe steady-state oscillation in your conventional transient simulation, but not in the tstab portion of the pss transient simulation. In many rings that I have designed, I purposefully add circuitry to enforce the high-gain region to exist in the inverter stages as actual ring VCO used in products must show a highly reliable start-up process. If this is not something you want to include Subhadeep, perhaps you can add initial conditions to set the input and output voltage nodes of your inverters to a value close to 50% of your supply voltage. In this fashion, the DC solution at the beginning of the tstab portion of the pss simulation will result in a relatively high gain for each stage of the ring. Hopefully, as the DC solution is released and the integration starts, the noise will be amplified sufficient;y to produce a steady-state oscillation. To verify the initial conditions are setting the gain sufficiently high as the simulation starts, you can run a set of AC tran simulations at several time points of a transient simulation and study the small-signal gain of your VCO versus time to assure that the gain is sufficiently high as the simulation starts.

    Let me know your thoughts Subhadeep. If my comments are not sufficiently clear to you, please let me know and I will try again!

    Shawn

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • subhadeepdatta
    subhadeepdatta over 4 years ago in reply to ShawnLogan

    Thanks Shawn for such an elaborate reply. I do agree with you that initializing the ring-VCO nets to mid-rail is going to be the best strategy for a robust start-up because this ensures that all of the inverters are in high-gain region and a small enough numerical noise in simulation or circuit noise in silicon will reliably start the VCO oscillation. You mentioned something related to having a certain circuitry to ensure this part, can you brief me more on that? What kind of circuit(s) do you use to do that? I have seen one start-up circuit technique where a differential kick is given to the other side of the ac-coupling cap of the VCO buffer which then couples it to the ring and starts it up.

    As far as the simulation is concerned, initializing ring nets to the mid-rail also did not help. Still having the same issue. Output log shows that the PSS runs for some time and then it says that the voltage of the ring output is too small to reliably detect the period of the oscillator. Perhaps the nodes with insignificant signal levels were chosen, or perhaps the oscillator was never properly started.

    Do you have any other suggestions? 

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

    I would say it's a fairly unusual way of getting a ring oscillator to start to initialise to mid-rail and hoping that numerical noise will start it. The normal DC algorithm is likely to do that anyway - because it could end up being a metastable state where everything sits at mid-rail. Unless something changes, there's no reason why a time-domain simulation would move away from that metastable state unless there's enough time steps and numerical noise to move away from that point. It will probably startup, but it would be slower to get there and need more time steps to encourage it to do so.

    The point of holding (with an initial condition) a node in the ring either high or low is that that inconsistency in the ring is not going to be sustainable - you've held it high, but having been through an odd number of inverters to get back to that point, it ought to be low  - and so when the initial condition is removed, it will immediately have to try to fix the inconsistency and that will normally cause the inversions to propagate through the ring oscillator.

    Anyway, I've not had time to reflect on anything else in this discussion as I'm going to be on vacation for 10 days or so, so I can't spend more time responding, sorry!

    Andrew

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

    I would say it's a fairly unusual way of getting a ring oscillator to start to initialise to mid-rail and hoping that numerical noise will start it. The normal DC algorithm is likely to do that anyway - because it could end up being a metastable state where everything sits at mid-rail. Unless something changes, there's no reason why a time-domain simulation would move away from that metastable state unless there's enough time steps and numerical noise to move away from that point. It will probably startup, but it would be slower to get there and need more time steps to encourage it to do so.

    The point of holding (with an initial condition) a node in the ring either high or low is that that inconsistency in the ring is not going to be sustainable - you've held it high, but having been through an odd number of inverters to get back to that point, it ought to be low  - and so when the initial condition is removed, it will immediately have to try to fix the inconsistency and that will normally cause the inversions to propagate through the ring oscillator.

    Anyway, I've not had time to reflect on anything else in this discussion as I'm going to be on vacation for 10 days or so, so I can't spend more time responding, sorry!

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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