• 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. speeding up .hb at a certain stage

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 126
  • Views 11062
  • 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

speeding up .hb at a certain stage

FredWang
FredWang over 3 years ago

For a fairly large design, my .pss/.hb simulation spends hours calculating something after the initial transient and before printing the memory estimate. It is not using the multiple processors it is allocated at this certain stage, yet it is taking the multi-core licenses. Does anyone know what spectre is doing, and is there a chance to speed it up? 

I am using Version 20.1.0.186.isr5 64bit -- 27 Mar 2021. 

  • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago

    Dear FredWang,

    FredWang said:

    my .pss/.hb simulation spends hours calculating something after the initial transient and before printing the memory estimate. It is not using the multiple processors it is allocated at this certain stage, yet it is taking the multi-core licenses. Does anyone know what spectre is doing, and is there a chance to speed it up? 

    0. For the memory estimate feature available in for an Harmonic Balance pss analysis, the memory estimate is made based on a "short" simulation that the harmonic balance engine performs. After printing the memory estimate in the log file, the Harmonic Balance engine exits. Perhaps you are referring to the time to perform this "short" simulation?

    Examining your memory estimate of 8G to 14G, just in case if you have not seen the On-line support article regarding the memory estimate at URL:

    https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-tech-tips-spectre-x-for-rf-analyses-introduction

    Cadence does not recommend using the memory estimator for designs whose memory estimates are less than 500 MB - and perhaps the overhead time required for the memory estimate in your specific case is significant relative to your simulation time expectations.

    1. It appears your pss solution has found a periodic solution corresponding to a frequency of 9.5666 GHz. If this happens to be a VCO, are you following your harmonic balance based pss analysis simulation a phase noise simulation? If so, is there any chance the time delay you are observing is between the pss convergence time and the initial reporting of phase noise versus frequency data in the log file?

    2. What are your simulation and spectre settings?

    a. Is your netlist based on an extracted view (i.e., post-layout based) of the RF cell under study?

    b. In other words, might you post the specific pss and potential following-up simulation sections of the input.scs file from the netlist directory?

    c. To understand which type of spectre simulation you have selected, might you also post the specific spectre run line contained in the "runSImulation" file also in the netlist directory?

    i. I am wondering specifically if you are using plain spectre, spectre +aps, spectre ++aps, or spectre X. As detailed in the Cadence Blog at URL:

    community.cadence.com/.../spectre-tech-tips-spectre-x-for-rf-analyses-introduction

    for a post-layout based netlist, spectre X shows similar accuracy, but less simulation time and less memory than spectre +aps

    Anyway, I thought I might try to provide a few comments on your question if they are helpful in spurring any insight on your further reducing your simulation time and simulation time question. No need to respond if I have misunderstood your question or your needs!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FredWang
    FredWang over 3 years ago in reply to ShawnLogan

    Hi Shawn

    Thanks for the quick response. I am concerned with the specific stage marked in the screenshot, whereas tstab and hb iterations are pretty quick. For a 4-hour wall time simulation, 2 hours is spent at that stage. 

    Below are answers to your questions. 

    0. I didn't turn on memory estimate. I also tried both yes and no, and memory estimate was printed regardless of my setting. 

    1. This is a driven circuit at 28.7G/3 Hz. The slow stage is after tstab and before hb iterations, so my wild guess is, is it calculating fft from time-domain waveform? 

    2. There is no extracted view. But it does have a long chain of RF blocks. 


    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to FredWang

    Dear FredWang,

    Thank you for so diligently and quickly providing some of your added insights to my questions! All of your responses are helpful, to me anyway, in both understanding the nature of your time delay and the simulation!

    A couple of added comments if you have the patience and interest...

    FredWang said:
    0. I didn't turn on memory estimate. I also tried both yes and no, and memory estimate was printed regardless of my setting. 

    1.  This is rather surprising to me. If the memory estimator is not enabled in the Harmonic Balance "Misc" options tab, there is not supposed to be a memory estimate performed nor reported in the output log.  Figure 1 outlines the discussion of the feature's enable/disable feature from a recent version of the SpectrRF manual. Hence, if you disabled it and the memory estimate is still both performed and reported, this is worth discussing further.

    FredWang said:
    1. This is a driven circuit at 28.7G/3 Hz. The slow stage is after tstab and before hb iterations, so my wild guess is, is it calculating fft from time-domain waveform? 

    The Fourier analysis to compute the frequency components is performed after the pss simulation as it uses the pss time domain solution to compute the response. Hence, I think the Harmonic Balance convergence must be achieved before the resulting pss Fourier analysis is performed.

    2. One item of potential concern that is also noted in the manual is an error in the tilmestep algorithm where the tilmestep is reduced to zero or a very small number. Figure 2 provides a additional arguments set of options to try to minimize this undesirable effect. As noted in Figure 2, if you are using any veriloga elements in your simulation, this may be a more likely error. Irrspective of your thoughts as to whether the use of any of these additional parameters is worth setting, a useful way to study the simulator's behavior more closely during the lapse in time you are experiencing is to enable the diagnostic mode. This feature will increase the length of your spectre.out log file, but will included added information that will make it easier to view what spectre is doing during the lapse in apparent progress you are observing. The added information will make it very clear if, for example, the tilmestep is being reduced to an excessively small value. Figure 3 shows the means to enable the added diagnostic comments from the spectre Environment GUI.

    Anyway, enough of my "rambling"...feel free to pursue any of my comments if you care to...I am sure you are busy with your own debugging efforts and don't want you to feel obligated to any of my suggestions FredWang!

    Shawn

    Figure 1

    Figure 2

    flex_balance_additional_options_sml_121221.pdf

    Figure 3

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to FredWang

    It's pretty hard to diagnose this without more information. Please contact customer support.

    I was going to suggest that the memory estimate is nothing to do with turning on the memory estimation - it does that anyway. I've no idea from what you've posted how large the circuit is, but it would need to be doing FFT at that phase to compute the start point for the frequency domain analysis. I'm not sure I'd expect it to be that slow though.

    Not sure why you have steadyratio=10 or itres=0.01 set - I'd remove those (it would be pretty unusual to set those). Also, do you really need cmin set? I'd remove that too.

    Andrew

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

    Shawn,

    Our replies were at the same time, but I should point out some things in your reply that aren't quite right:

    Unknown said:
    1.  This is rather surprising to me. If the memory estimator is not enabled in the Harmonic Balance "Misc" options tab, there is not supposed to be a memory estimate performed nor reported in the output log.  Figure 1 outlines the discussion of the feature's enable/disable feature from a recent version of the SpectrRF manual. Hence, if you disabled it and the memory estimate is still both performed and reported, this is worth discussing further.

    Actually, it does include some level of memory estimation whether you ask for it or not in current versions. There's nothing to be concerned about here.

    Unknown said:
    The Fourier analysis to compute the frequency components is performed after the pss simulation as it uses the pss time domain solution to compute the response. Hence, I think the Harmonic Balance convergence must be achieved before the resulting pss Fourier analysis is performed.

    Not really. If you use the transient assist (or tstab) with harmonic balance analyses (including PSS in harmonic balance mode) then the final period of the transient is analysed using a Fourier analysis to help with an initial starting point for the harmonic balance analysis. The hb analysis solves the frequency domain equations for the circuit, and even during the iterations of that it will do repeated inverse Fourier, time-domain solve, and then normal Fourier to convert back into the frequency domain. At the end, the time-domain solution (if output) is generated using an inverse Fourier analysis from the frequency domain result.

    Unknown said:
    2. One item of potential concern that is also noted in the manual is an error in the tilmestep algorithm where the tilmestep is reduced to zero or a very small number.

    I'm not sure small time steps have anything to do with this. The pause here is in the pre-conditioning stage prior to the harmonic balance algorithm itself starting - and as I mentioned in my previous reply, it's very hard to know what's going on without more detail - hence my suggestion to contact customer support (as well as remove some of the options which I think have no place being there).

    Andrew

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

    Dear Andrew,

    My sincere thank you for correcting a number of my misunderstandings....my apologies - yet again...sigh

    Shawn

    • 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