• 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. HBAC and HBXF for Oscillator Sensitivities Simulation

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 127
  • Views 10316
  • 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

HBAC and HBXF for Oscillator Sensitivities Simulation

sgcad
sgcad over 2 years ago

Hi,

I'm working on a Pierce crystal oscillator and would like to simulate the sensitivity to bias current changes (how many Hz does the frequency change if the bias current changes by one uA?). The direct method is straight forward to do by explicitly sweeping the current for a HB analysis:

sw sweep param=xibias start=95u stop=105u step=1u {
    hb ( vosc VSS ) hb oversample=[1] fundfreqs=[(xfreq)] \
        maxharms=[32] errpreset=moderate oscic=lin oscmethod=twotier \
        pinnode=vosc annotate=status
}

Taking the derivative of the HB fundamental frequency gives me a sensitivity of 673 mHz/uA.

But I'd prefer to us a small-signal analysis for this, as it seems more elegant and computes faster. I'm setting 'PAC magnitude' of the (ideal) bias current source to '1', and running a HBAC as follows:

hbac hbac sweeptype=absolute start=1m stop=1M dec=5 sidevec=[1] freqaxis=in annotate=status

When looking at the low-frequency portion of this AC sweep (harmonic +1) at the oscillator node and relating it to the large-signal fundamental amplitude at the same node, I get the very same sensitivity of 673 mHz/uA.

Now it would actually be nice to use HBXF, as with one simulation run I could derive other sensitivities of interest such as supply pushing and tuning gain. I'm using:

hbxf ( vosc VSS ) hbxf sweeptype=relative relharmvec=[1] start=1m stop=1M dec=5 sidevec=[-1] annotate=status

Comparing this sweep (harmonic -1) to the HBAC result as above I see:

So at AC frequencies in the kHz region, the two simulations match. But at lower frequencies, they deviate by approximately an order of magnitude. To me it is not clear why this is the case; so far I've thought of the XF/HBXF/PXF analyses simply as "reversed" AC/HBAC/PAC analyses that should give exactly the same result if one picks the correct transfer function. Obviously I'm missing something here.

Any help to get me back on track? Thanks very much for your input.

PS: I'm using Spectre 21.1.0.582.isr14 64bit

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 2 years ago

    Dear sgcad,

    I cannot provide a specific answer as I am not sure of your specific simulator and source settings. However, if you are trying to compare the HBAC and HBXF result, the latter using the same excitation source as HBAC analysis and the only active AC source in the schematic, I am not understanding why you chose sidevec =[-1] in the HBXF analysis and sidevec = [1] in the HBAC analysis.

    sgcad said:

    Now it would actually be nice to use HBXF, as with one simulation run I could derive other sensitivities of interest such as supply pushing and tuning gain. I'm using:

    hbxf ( vosc VSS ) hbxf sweeptype=relative relharmvec=[1] start=1m stop=1M dec=5 sidevec=[-1] annotate=status

    Comparing this sweep (harmonic -1) to the HBAC result as above I see:

    I cannot provide a specific answer as I am not sure of your specific simulator and schematic source settings. However, if you are trying to compare the HBAC and HBXF result, the latter using the same excitation source as HBAC analysis and the only active AC source in the schematic, I am not understanding why you chose sidevec =[-1] in the HBXF analysis and sidevec = [1] in the HBAC analysis.

    There is an example of the simulator settings to determine the power supply sensitivity of an oscillator using HBXF starting on page 629 of the "Spectre Circuit Simulator and Accelerated Parallel Simulator RF Analysis in ADE Explorer User Guide". In the example, there is no mention of setting sidevec to -1. The only time this setting is mentioned is when simulating a down-converter and looking at its lower sideband.

    I might suggest you try to follow the process and simulator settings shown in this Cadence example.

    https://support.cadence.com/apex/techpubDocViewerPage?xmlName=spectrerfinexplorer.xml&title=Spectre%20Circuit%20Simulator%20and%20Accelerated%20Parallel%20Simulator%20RF%20Analysis%20in%20ADE%20Explorer%20User%20Guide%20--%20Frequency%20Domain%20Analyses:%20Harmonic%20Balance%20-%20Conversion%20Gain%20From%20Power%20Supply%20to%20the%20Output%20Frequency&hash=pgfId-1373220&c_version=21.1&path=spectreRFinExplorer/spectreRFinExplorer21.1/Chap3.html#pgfId-1373220

    sgcad said:
    so far I've thought of the XF/HBXF/PXF analyses simply as "reversed" AC/HBAC/PAC analyses that should give exactly the same result if one picks the correct transfer function.

    I think you are intending to suggest that the HBXF analysis differs from the HBAC analysis in that the former uses the input to stimuli to determine the transfer function to the defined output while the latter assumes an output and determines the defined input to provide the resulting output. If so, I think your comment is basically correct.

    I know this may not specifically answer your question, for which I apologize, but it is the best I can do given my experience and the limited amount I can gather about your simulation from your Forum post!

    Shawn

    support.cadence.com/.../techpubDocViewerPage

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 2 years ago

    Dear sgcad,

    I cannot provide a specific answer as I am not sure of your specific simulator and source settings. However, if you are trying to compare the HBAC and HBXF result, the latter using the same excitation source as HBAC analysis and the only active AC source in the schematic, I am not understanding why you chose sidevec =[-1] in the HBXF analysis and sidevec = [1] in the HBAC analysis.

    sgcad said:

    Now it would actually be nice to use HBXF, as with one simulation run I could derive other sensitivities of interest such as supply pushing and tuning gain. I'm using:

    hbxf ( vosc VSS ) hbxf sweeptype=relative relharmvec=[1] start=1m stop=1M dec=5 sidevec=[-1] annotate=status

    Comparing this sweep (harmonic -1) to the HBAC result as above I see:

    I cannot provide a specific answer as I am not sure of your specific simulator and schematic source settings. However, if you are trying to compare the HBAC and HBXF result, the latter using the same excitation source as HBAC analysis and the only active AC source in the schematic, I am not understanding why you chose sidevec =[-1] in the HBXF analysis and sidevec = [1] in the HBAC analysis.

    There is an example of the simulator settings to determine the power supply sensitivity of an oscillator using HBXF starting on page 629 of the "Spectre Circuit Simulator and Accelerated Parallel Simulator RF Analysis in ADE Explorer User Guide". In the example, there is no mention of setting sidevec to -1. The only time this setting is mentioned is when simulating a down-converter and looking at its lower sideband.

    I might suggest you try to follow the process and simulator settings shown in this Cadence example.

    https://support.cadence.com/apex/techpubDocViewerPage?xmlName=spectrerfinexplorer.xml&title=Spectre%20Circuit%20Simulator%20and%20Accelerated%20Parallel%20Simulator%20RF%20Analysis%20in%20ADE%20Explorer%20User%20Guide%20--%20Frequency%20Domain%20Analyses:%20Harmonic%20Balance%20-%20Conversion%20Gain%20From%20Power%20Supply%20to%20the%20Output%20Frequency&hash=pgfId-1373220&c_version=21.1&path=spectreRFinExplorer/spectreRFinExplorer21.1/Chap3.html#pgfId-1373220

    sgcad said:
    so far I've thought of the XF/HBXF/PXF analyses simply as "reversed" AC/HBAC/PAC analyses that should give exactly the same result if one picks the correct transfer function.

    I think you are intending to suggest that the HBXF analysis differs from the HBAC analysis in that the former uses the input to stimuli to determine the transfer function to the defined output while the latter assumes an output and determines the defined input to provide the resulting output. If so, I think your comment is basically correct.

    I know this may not specifically answer your question, for which I apologize, but it is the best I can do given my experience and the limited amount I can gather about your simulation from your Forum post!

    Shawn

    support.cadence.com/.../techpubDocViewerPage

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to ShawnLogan

    You might also want to look at this rather old app note (it's talking about PSRR for oscillators, but you can use the same idea to look at tuning sensitivity). It's in the SPECTRE installations at: <SPECTREinstDir>/tools/spectre/examples/SpectreRF_workshop/Legacy/PSRR_Osc_AN.pdf .

    (to be honest, I didn't fully read it through to make sure it covers what you're trying to do - this is just a quick pointer for something that might be relevant).

    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