• 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. RF Design
  3. Insufficient memory in PNOISE simulation

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 63
  • Views 16892
  • 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

Insufficient memory in PNOISE simulation

Massoud THDN
Massoud THDN over 13 years ago
I'm trying to do phase noise analysis with PSS HB and PNOISE for post layout extracted netlist. I got the following error:
 

Mem Used: 12813.8 MB (Memory Exhausted)
Fatal error found by spectre at freq = 10 MHz during PNoise analysis `pnoise'.
    FATAL (CMI-2002): Insufficient memory available. To reduce memory, please refer to "spectre -h memory".

 

However, I have near 45GB free memory! Why PNOISE cannot use all the available memory? How can I reduce required memory?

I have already reduced parasitics in my netlist and by reducing more I will loose accuracy.

I'm Using Cadence 6.1.5 and MMSIM 10.11. I have enabled 64bits.

Here is my Circuit inventory:
              nodes 131756
              bsim4 1724 
          bsource_1 141  
          bsource_2 282  
          bsource_3 30   
          bsource_4 30   
          bsource_5 2    
          bsource_6 8    
          bsource_7 4    
          bsource_8 4    
          bsource_9 1    
          capacitor 1313 
              diode 35   
           inductor 322  
            isource 2    
    mutual_inductor 8    
           resistor 203266
            vsource 6 

 

 analysis('pss ?engine "Harmonic Balance"  ?flexbalance "yes"  ?oversamplefactor ""  
        ?fund "5G"  ?harms "50"  ?errpreset "conservative"  ?tstab "20n"  
        ?oscana t  ?p "/outn"  ?n "/outp"  ?oscmethod ""  
        ?step ""  ?write ""  ?writefinal ""  ?swapfile ""  
        ?checkpss ""  ?ppv ""  ?backtracking ""  )
analysis('pnoise ?sweeptype "relative"  ?relharmnum "1"  ?start "10M"  
        ?stop "100M"  ?dec "5"  ?maxsideband "20"  ?p "/b_outp"  
        ?n "/b_outn"  ?oprobe ""  ?iprobe ""  ?refsideband ""  
        ?solver "turbo"  ?oscsolver "turbo"  ?augmented ""  ?annotate "steps"  
        ?ppv ""  )

envOption(
    'cmd64bit  t
    'analysisOrder  list("pss" "pnoise")
)
option( ?categ 'turboOpts
    'numThreads  "5"
    'uniMode  "APS"
)

  • Cancel
  • Massoud THDN
    Massoud THDN over 13 years ago

     Hi Andrew,

    I'm Using Cadence 6.1.5 and MMSIM 10.11. I have enabled 64bits.

     

    I'm trying to do phase noise analysis with PSS HB and PNOISE for post layout extracted netlist. I got the following error:

     
    Mem Used: 12813.8 MB (Memory Exhausted)
    Fatal error found by spectre at freq = 10 MHz during PNoise analysis `pnoise'.
        FATAL (CMI-2002): Insufficient memory available. To reduce memory, please refer to "spectre -h memory".

     

    However, I have near 45GB free memory! Why PNOISE cannot use all the available memory? How can I reduce required memory?

     

    Here is my Circuit inventory:
                  nodes 131756
                  bsim4 1724 
              bsource_1 141  
              bsource_2 282  
              bsource_3 30   
              bsource_4 30   
              bsource_5 2    
              bsource_6 8    
              bsource_7 4    
              bsource_8 4    
              bsource_9 1    
              capacitor 1313 
                  diode 35   
               inductor 322  
                isource 2    
        mutual_inductor 8    
               resistor 203266
                vsource 6 

     

     analysis('pss ?engine "Harmonic Balance"  ?flexbalance "yes"  ?oversamplefactor ""  
            ?fund "5G"  ?harms "50"  ?errpreset "conservative"  ?tstab "20n"  
            ?oscana t  ?p "/outn"  ?n "/outp"  ?oscmethod ""  
            ?step ""  ?write ""  ?writefinal ""  ?swapfile ""  
            ?checkpss ""  ?ppv ""  ?backtracking ""  )
    analysis('pnoise ?sweeptype "relative"  ?relharmnum "1"  ?start "10M"  
            ?stop "100M"  ?dec "5"  ?maxsideband "20"  ?p "/b_outp"  
            ?n "/b_outn"  ?oprobe ""  ?iprobe ""  ?refsideband ""  
            ?solver "turbo"  ?oscsolver "turbo"  ?augmented ""  ?annotate "steps"  
            ?ppv ""  )

    envOption(
        'cmd64bit  t
        'analysisOrder  list("pss" "pnoise")
    )
    option( ?categ 'turboOpts
        'numThreads  "5"
        'uniMode  "APS"
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Tawna
    Tawna over 13 years ago

    Hi Massoud,

    You may want to contact Customer Support (http://support.cadence.com) and enter a Service Request.

    This error can come about for a number of reasons and talking directly with a Customer Support AE would likely be the quickest way to go.    They would want to see your complete spectre.out file and also the portions of your netlist (analysis statements, save statements, option statements, ports/frequency sources in the circuit, for example.)

    Some things to think about: 

    Do you need to simulate 50 harmonics?  (Do you really need frequency information to the 50th harmonic of the PSS fundamental?) 

    How many nets/nodes are you saving?

    What are the frequencies in your circuit?

    Try simulating with moderate accuracy for starters (errpreset=moderate) to see if that helps.  You can tighten tolerances as needed later.

    You may be better off simulating with QPSS (or HB) analysis.

    Also please look at the following solution on http://support.cadence.com .

    FAQ: 10 Tips for Reducing Memory Usage with SpectreRF

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;solutionNumber=11178356

    A similar version of these tips can also be seen by typing in an xterm window:

    spectre –h  rfmemory

    You may also want to look at the following solution. (How you have set your PSS harmonics and pnoise sidebands is not optimal):

    Guidelines for setting Pnoise/HBnoise sidebands to get accurate results.

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;solutionNumber=11732744

    Another thing to try is the latest subversion of MMSIM (at least MMSIM 11.1 ISR19 or later).  There has been at least one CCR on SpectreRF with regards to using aps, 64 bit, and pss analysis.

    best regards,

    Tawna


    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Massoud THDN
    Massoud THDN over 13 years ago

     Hi Tawna,

     

    I don't have any problem with PSS. It converges and I can see all the waveforms after it. The problem I explained was with  PNOISE which is runnig after PSS to calculate phase noise. So, by reducing PSS hamonics or reducing its accuracy or using QPSS, I cannot change memory requirement of PNOSIE analysis.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Tawna
    Tawna over 13 years ago

    Hi Massoud,

    Let me be try to be more clear… (This is an entire section of the SpectreRF customer course.)

    1.Because you are using harmonic balance, I assume that the circuit is mildly nonlinear. (If it is strongly nonlinear, you must use the shooting engine.) It is always important to give a description of the circuit that you are simulating when posting on the forum).

    2.Again, do you need to simulate 50 harmonics of PSS? Typically we recommend that the number of pnoise sidebands be set to the same as the number of harmonics in the PSS HB Choosing Analyses form. You have 50 harmonics set in the PSS and 20 sidebands in Pnoise. Why not use 20 harmonics?

    Now, moving on to pnoise….when hb is selected as the engine in the pss form, leave the Maximum sideband field

    blank or set it to the same number as the number of harmonics in the HB analysis. This specifies the noise that mixes with all the hb harmonics. (If you specify many harmonics and sidebands…you are going to use more memory. The two are not completely independent). I recommend reading the section on Harmonic Balance Noise Analysis (HBnoise) in the Virtuoso Spectre Circuit Simulator and Accelerated Parallel Simulator RF Analysis User Guide -- Frequency Domain Analyses: Harmonic Balance. It has a nice section that discusses how to set sidebands and harmonics.

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=/spectreRF/spectreRF11.1/Chap3.html

    So, basically what you want to start with is a reasonable number of harmonics and sidebands, run your pss/pnoise (or hb/hbnoise) analysis. Then, increase your harmonics/sidebands and rerun the simulation if necessary. (Rather than continue to directly quote the documentation further, I’ll direct you to the documentation to read at your leisure).

    3.How many nets/nodes are you saving? This is going to impact memory.

    4.Post-layout extracted netlists typically take a LOT of memory in simulation, in my experience. Spectre issued the message:

    Fatal error found by spectre at freq = 10 MHz during PNoise analysis `pnoise'.
    FATAL (CMI-2002): Insufficient memory available. To reduce memory, please refer to "spectre -h memory".

    Have you looked at spectre –h memory? And spectre –h rfmemory? And tried the recommended suggestions?

    5.This really is a question for Customer Support. They can more easily delve into why you are running out of memory. For example, is your setup ideal for your situation? (I can already tell that it is not). Are you using the proper engine for the job?

    The AEs who answer questions on this Forum do this “in addition to their regular job”. If you want detailed assistance and an AE to walk you through the steps, you need to file a Service Request with Customer Support. http://support.cadence.com .

    Best regards,

    Tawna

    • 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