The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> insufficient memory for ac simulation
https://designers-guide.org/forum/YaBB.pl?num=1271037610

Message started by ray_wang on Apr 11th, 2010, 7:00pm

Title: insufficient memory for ac simulation
Post by ray_wang on Apr 11th, 2010, 7:00pm

Hi,
  I am trying ac simulation using "corner" tool and it says "insufficient memory".
  If I use "corner" tool for just one corner simulation, it is Ok. And I look at the memory. This simulation takes just 3.5% of all the memory.
  If I'm using "corner" tool for more than one corner simulation. The first corner ac simulation is going well but the second one starts and simulates for a long time (I think it might be calculating dc operating point) until it runs out of memory. The output log stops at the message below and then prints "insufficient memory".

********************************************
AC Analysis `ac': freq = (-80 MHz -> 80 MHz)
********************************************

  So I'm cofused about the "corner" tool. Definitely I can run corner simuation one by one, but it is troublesome. Here is the circuit inventory. Is there some suggestion? Thank you for that.

            nodes 36327
         equations 78448
            iprobe 6    
    ahdl simulator 1    
           bsim3v3 19920
         bsource_1 1120  
        bsource_33 17744
        bsource_98 8872  
           isource 10    
              port 2    
          quantity 9    
          resistor 102  
              vcvs 6    
           vsource 23
   

Title: Re: insufficient memory for ac simulation
Post by Andrew Beckett on Apr 12th, 2010, 9:43am

What version of the simulator are you using? Note that if you're running 32 bit spectre (which is the default), your machine may have plenty of memory, but you would still run out at somewhere around 4Gb memory usage>

Regards,

Andrew.

Title: Re: insufficient memory for ac simulation
Post by ray_wang on Apr 12th, 2010, 6:51pm

Thank you, Andrew.
I monitor the memory usage in simulation. It is not like PSS. In PSS simulation, you can see the memory usage grows very fast to 4Gb limit in around 5 minutes. This has nothing to do with "corner" tool because it is so in normal simulation. Moreover, I have the option of "swap file".
But this one is special. In corner simulation, it takes only 6 minutes for the first corner simulation to take up 3.5% of memory and finish,  but more than 60 minutes for the second simulation to compute until it takes up all the memory. In normal simulation, it is quite like the first corner simulation. There might be some problems with "corner" tool.

Title: Re: insufficient memory for ac simulation
Post by Andrew Beckett on Apr 13th, 2010, 2:27am

It's unlikely to be the corner tool itself - more likely to be a bug with the version of spectre you're using.

You didn't answer my question about the version of spectre you're using.

Anyway, one likely workaround (if you're using the corners tool in IC5141) would be to do:

envSetVal("spectre.envOpts" "useAltergroup" 'boolean nil)

in the CIW before starting ADE. This will tell the corners tool not to use spectre's "altergroup" feature and instead run separate simulations for each corner - which end up being like individual simulations.

I'd still like to know which spectre version you're using though, to see if it's a known problem which may have been fixed.

Regards,

Andrew.

Title: Re: insufficient memory for ac simulation
Post by ray_wang on Apr 14th, 2010, 11:46pm

Hi, Andrew,
 Thanks for your reply. My icfb version is 5.10.41. I actually don't understand the mechanism of corner tools.
 I have seen two typical cases of corner tool.
1)
In CIW window, there is something like"
Delete psf data in /home/wangrui/simulation/filter_spmod_tb/spectreVerilog/config/psf.
  ... Corner simulation #15/25 finished with status=ok, corner="slow_hot2" ...
Delete psf data in /home/wangrui/simulation/filter_spmod_tb/spectreVerilog/config/psf.
  ... Corner simulation #16/25 finished with status=ok, corner="typ3" ...
"
The output log looks like a normal simulation.
but refreshing itself after a new corner begins.

2)
nothing in CIW window.
The output log has something like
"
***********************
Alter Group `fast_best'
***********************
       device "I453.I496.M123.m0" is altered
       device "I453.I496.M124.m0" is altered
       device "I453.I496.M132_1.m0" is altered
       device "I453.I496.M132_2.m0" is altered
       device "I453.I496.M132_3.m0" is altered
       device "I453.I496.M18.m0" is altered
       .......
"
The first one is very robust but the second one is prone to failure,.

My simulation output used to be like case 2. It refuses to work and that's why I posted here for help. Then I deleted some variables and used a even larger circuit, the simluation looks like case1 and it works. But I am still confused.

Title: Re: insufficient memory for ac simulation
Post by Andrew Beckett on Apr 15th, 2010, 1:58am

If you call the function I gave, it won't use altergroups and so you won't see the output as shown in your second point - it will run each corner separately, rather than invoking spectre once and switching the corner in memory.

I thought it still gave feedback in the CIW as to the progress, but I can't remember (and can't test right now - bit busy - I haven't used corners in IC5141 for a little while - it's done completely differently in IC61 under ADE XL).

Anyway, try the function I gave to disable altergroups and see if that helps (although maybe your problem has gone away anyway?)

Regards,

Andrew.

Title: Re: insufficient memory for ac simulation
Post by ray_wang on Apr 28th, 2010, 12:24am

Andrew,
  I came across case 2 recently and I called the function as you told me and the output became case 1. Amazing!  :)
  Thank you!

Ray
 

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.