Home > Community > Forums > RF Design > Insufficient memory in PNOISE simulation

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

  Insufficient memory in PNOISE simulation 

Last post Wed, May 30 2012 3:41 PM by Tawna. 4 replies.
Started by Massoud THDN 29 May 2012 02:42 PM. Topic has 4 replies and 4847 views
Page 1 of 1 (5 items)
Sort Posts:
  • Thu, May 24 2012 10:24 PM

    • Massoud THDN
    • Not Ranked
    • Joined on Fri, May 25 2012
    • Delft, Netherlands
    • Posts 3
    • Points 45
    Re: Insufficient memory Reply

     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"
    )

    • Post Points: 5
  • Tue, May 29 2012 2:42 PM

    • Massoud THDN
    • Not Ranked
    • Joined on Fri, May 25 2012
    • Delft, Netherlands
    • Posts 3
    • Points 45
    Insufficient memory in PNOISE simulation Reply
    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"
    )

    • Post Points: 20
  • Tue, May 29 2012 3:39 PM

    • Tawna
    • Top 25 Contributor
    • Joined on Thu, Jul 10 2008
    • Snohomish, WA
    • Posts 212
    • Points 5,625
    RE: Insufficient memory in PNOISE simulation Reply

    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


    Best regards, Tawna Wilsey Staff Support AE, Global Customer Support Cadence Design Systems, Inc.
    • Post Points: 35
  • Wed, May 30 2012 2:34 PM

    • Massoud THDN
    • Not Ranked
    • Joined on Fri, May 25 2012
    • Delft, Netherlands
    • Posts 3
    • Points 45
    Re: RE: Insufficient memory in PNOISE simulation Reply

     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.

    • Post Points: 20
  • Wed, May 30 2012 3:41 PM

    • Tawna
    • Top 25 Contributor
    • Joined on Thu, Jul 10 2008
    • Snohomish, WA
    • Posts 212
    • Points 5,625
    RE: RE: Insufficient memory in PNOISE simulation Reply

    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

    Best regards, Tawna Wilsey Staff Support AE, Global Customer Support Cadence Design Systems, Inc.
    • Post Points: 5
Page 1 of 1 (5 items)
Sort Posts:
Started by Massoud THDN at 29 May 2012 02:42 PM. Topic has 4 replies.