Home > Community > Forums > Custom IC Design > Transient simulation taking too much memory

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: *

 Transient simulation taking too much memory 

Last post Wed, Jun 6 2012 1:58 AM by vshssvs7. 20 replies.
Started by vshssvs7 30 May 2012 02:25 AM. Topic has 20 replies and 7577 views
Page 1 of 2 (21 items) 1 2 Next >
Sort Posts:
  • Wed, May 30 2012 2:25 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Transient simulation taking too much memory Reply

    Sir,

    I have to run a transient simulation of a transistor-level Charge Pump PLL. I have noticed that it is taking too much memory. icfb got shutdown by itself with this message at the terminal:

    ERROR: Unable to allocate memory for transition file slice variable transition index level (read).

    The simulation was not complete and it shutdown in between. The size of tran.tran.trn is around 40 GB.

    Note that I have already done this: In Analog Design Environment, Outputs -> Save All, I have checked "selected" option in "select signals to output (save)" and Outputs -> to be saved -> select on schematic and selected few nets that I wanted to save

    But even after doing the above, it is still saving every net (because I'm able to plot those nets) which is the reason for such a huge tran.tran.trn file. What more should I do to stop it from saving every net? (and only save the nets that I select) 

     

    • Post Points: 20
  • Wed, May 30 2012 10:32 AM

    • Tawna
    • Top 25 Contributor
    • Joined on Fri, Jul 11 2008
    • Snohomish, WA
    • Posts 209
    • Points 5,565
    RE: Transient simulation taking too much memory Reply
    Hi vshssvs7,

    Try setting the following environment variable and restart your virtuoso session.

    setenv CDS_AUTO_64BIT ALL

    You can also add this to your .cshrc   (You'll need to source your .cshrc and restart the software as well for it to take effect).

    This is documented in Solution 11715812 (COS) ViVA fails with error "Unable to allocate memory...."

    If this doesn’t help, you need to let us know

    • What output format you are using.  (psfbin, psfxl, sst2, etc.)
    • What subversion of software that you are using.  IC5.1.41 or IC6.1.5, MMSIM11.1, etc.
    • What does your output statement in your netlist look like.

     
    Best regards,
    Tawna
    Best regards, Tawna Wilsey Staff Support AE, Global Customer Support Cadence Design Systems, Inc.
    • Post Points: 20
  • Wed, May 30 2012 11:48 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: Transient simulation taking too much memory Reply

    Madam,

    1. I use .bashrc to start my cadence. Could you please give the equivalent of that for .bashrc?

    2. My cadence subversion as obtained from typing "spectre -W" in ubuntu terminal is: sub-version 7.2.0.373.isr13

    3. I can increase size of my hard disk to say 1 TB to get rid of "unable to allocate memory..." error, but my doubt is how to stop Virtuoso ADE from saving every net in the transient simulation even after doing the above mentioned steps (as in my previous post)?

    Thanks.

    • Post Points: 20
  • Wed, May 30 2012 12:18 PM

    • Tawna
    • Top 25 Contributor
    • Joined on Fri, Jul 11 2008
    • Snohomish, WA
    • Posts 209
    • Points 5,565
    RE: RE: Transient simulation taking too much memory Reply
    Hi vshssvs7,

    1. setenv/unsetenv are commands that are built into the csh family

    of shells. Under bash the equivalent built ins are export and unset.  

    For example:

    CSH:  setenv name value

    BASH: export name=value

    CSH:  unsetenv name

    BASH: unset name

    (This was found using a simple Google search.  I personally only use csh.)

    2.  You are using a very old version of Spectre.  I recommend upgrading to MMSIM 11.1.  You can download the latest MMSIM11.1 ISR

    From http://downloads.cadence.com.

    3. What is the output of the command “icms –W”  or “virtuoso –W” ?

    4.  As I mentioned in my previous post:

    What does your output statement in your netlist look like?

    I want to see what information is passed to the simulator from ADE.  That way I can tell if your settings are appropriate.

    5. Technically ubuntu is not supported with Cadence tools.  It may work ok…but there are no guarantees.

    I recommend looking at the following link, which will tell you the platforms and OS that Cadence tools support.

    You must be a Cadence Customer on Maintenance to access Cadence Online Support.

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=wp;q=ProductInformation/LifeCycle/platform.html

     

    best regards,

     

    Tawna
    Best regards, Tawna Wilsey Staff Support AE, Global Customer Support Cadence Design Systems, Inc.
    • Post Points: 20
  • Thu, May 31 2012 1:18 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: RE: Transient simulation taking too much memory Reply

    Respected Madam,

    Thanks for replying. It was already late night when I replied to your last post, so I couldn't reply immediately.

    1. I tried adding "export CDS_AUTO_64BIT ALL" to my .bashrc, sourcing it and then restarting it the cadence, but it didn't work. Still ADE is saving every net.

    2. I'm only a student in the university, so I don't have any admin rights. But I'll inform the authorities here to update the cadence to latest version. But it would take a lot of time.

    3. Output of 'icms -W' -> sub-version 5.10.41_USR6.127.29,  'virtuoso -W' -> virtuoso: command not found

    5. I have tried in debian also, the problem is still there. Currently I can use cadence spectre only in debian or ubuntu.

    4. I didn't understand what is the "output statement" in the netlist. So I'm pasting the netlist here. This nelist doesn't correspond to the one where I got that "Unable to allocate memory..." error. This netlist is of a different circuit generated from Virtuoso ADE after selecting the nets to be saved. I have deliberately removed some lines corresponding to circuit elements since the netlist is large.

     

    // Generated for: spectre

    // Generated on: May 31 13:01:10 2012

    // Design library name: myddp

    // Design cell name: divby2_vco

    // Design view name: schematic

    simulator lang=spectre

    global 0

    include "/cad/tools/cadencetools/IC5141_USR6/tools/dfII/samples/artist/ahdlLib/quantity.spectre"

    include "/cad/library/UMC65/Designkits/Cadence/Models/Spectre/L65LL_V111.lib.scs" section=tt_ll_lvt12

    include "/home/ee07b070/UMC_CAD/cadence.scs"

     

    // Library name: myddp

    // Cell name: divby2_vco

    // View name: schematic

    E0 (net025 gnda clk gnda) vcvs gain=-1.0

    V0 (clkb net025) vsource dc=800.0m type=dc

    V7 (gnda 0) vsource dc=0 type=dc

    V8 (vdd 0) vsource dc=1.2 type=dc

    V6 (clk gnda) vsource type=sine sinedc=400m ampl=400m freq=4.8G

    NM8 (n2 clk n1 gnda) n_12_lllvt l=60n w=5u sa=1.6e-07 sb=1.6e-07 nf=1 \

            mis_flag=1 sd=0 as=800f ad=800f ps=10.32u pd=10.32u sca=5.17799 \

            scb=3.30657m scc=557.825u m=1 mf=1

    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \

        tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \

        digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \

        checklimitdest=psf 

    tran tran stop=2n errpreset=conservative write="spectre.ic" \

        writefinal="spectre.fc" annotate=status maxiters=5 

    finalTimeOP info what=oppoint where=rawfile

    modelParameter info what=models where=rawfile

    element info what=inst where=rawfile

    outputParameter info what=output where=rawfile

    designParamVals info what=parameters where=rawfile

    primitives info what=primitives where=rawfile

    subckts info what=subckts  where=rawfile

    save n1 

    saveOptions options save=selected currents=nonlinear useprobes=yes 

     

     

    Thanks. 

    • Post Points: 20
  • Thu, May 31 2012 2:27 AM

    • JustinTaylor86
    • Top 500 Contributor
    • Joined on Tue, Mar 6 2012
    • Ballymena, Antrim
    • Posts 31
    • Points 545
    Re: RE: RE: Transient simulation taking too much memory Reply

    Hi,

     

    When you click on "save all" from the "options" menu in the ADE, unclick the selected (referring to your first post)

    Even if you "select on schematic" to save your desired outputs make sure all the selected nodes are turned off.

     

    • Post Points: 35
  • Thu, May 31 2012 3:20 AM

    Re: RE: RE: Transient simulation taking too much memory Reply

    The default in spectre is "selected", so if you uncheck everything on the  "Select signals to output" line, it will be the same as explicitly picking "selected".

    What "selected" does is to only save the nets marked to be saved in the outputs pane - which corresponds to the "save" statements at the bottom of the input.scs. If no nets are saved, it saves all nets (i.e. all voltages). Note it's nothing to do with what is currently selected in the schematic.

    In your case, you have selected currents=nonlinear - which will end up saving a lot of data for all the currents. I'd leave device currents as blank (or selected) - that will make the data set much smaller.

    Regards,

    Andrew.

    • Post Points: 20
  • Thu, May 31 2012 4:36 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: RE: Transient simulation taking too much memory Reply
    As pointed by Andrew I found that checking "selected" is same as leaving everything unchecked. Could you please say what do you mean by "turned off"
    • Post Points: 20
  • Thu, May 31 2012 4:45 AM

    Re: RE: RE: Transient simulation taking too much memory Reply

    Did you uncheck the "device currents" on the save all form (you had it set to nonlinear on the excerpt you sent).

    On the case with the real problem, can you maybe post the bottom part of the input.scs (from the simulationOptions line to the end of the file)?

    Regards,

    Andrew.

    • Post Points: 5
  • Thu, May 31 2012 4:52 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: RE: Transient simulation taking too much memory Reply

    Sir,

    As you have seen in my netlist the last but one line is "save n1" which means it should save only net n1, but I found that after the simulation is over, I'm still able to plot other nets which I didn't want it to save. To reduce size of data I would do as you said - uncheck everything in "select device currents (currents)" line. But my question is what are the settings to be done to stop ADE from being able to plot certain nets which are not selected as "saved'. It will be able to plot only if it saves it somewhere which means it occupies data.

    The settings that I mentioned in the first post actually worked in my friend's system. It showed an error when trying to plot the nets which are NOT saved in the outputs pane. I want similar thing. I want it to be able to plot only the nets which are shown as "to be saved" in the outputs pane. I don't know why it's not working in my system even when using the same settings OR am I missing something else? 

    • Post Points: 20
  • Thu, May 31 2012 4:57 AM

    Re: RE: RE: Transient simulation taking too much memory Reply

    Please post the information we've asked for. We ask for it for a good reason, as it helps to understand what is going wrong. I am unaware of the simulating output information when it's been asked to only save a few nets - since you already said that the netlist was not the one you had a problem with, I'd sooner see the real data and then work backwards from that.

    It's hard to know what you're missing if you don't show us what we've asked for...

    Regards,

    Andrew.

    • Post Points: 20
  • Thu, May 31 2012 5:14 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: RE: Transient simulation taking too much memory Reply

    Sorry sir, I posted that message before I saw your reply.

    I (re)started the simulation again yesterday itself with strobe period as 10n in transient analysis options to reduce the data. The simulation is going on currently. I'm not sure what I checked/unchecked in 'save device currents' line when the problem occured (first time simulation). But currently input.scs file is as follows:

    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27.0 \

        tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \

        digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \

        dochecklimit=yes checklimitdest=psf 

    tranCheckLimit checklimit checkallasserts=yes severity=none

    tran tran stop=30u errpreset=moderate write="spectre.ic" \

        writefinal="spectre.fc" annotate=status save=selected strobeperiod=10n \

        maxiters=5 

    finalTimeOP info what=oppoint where=rawfile

    designParamVals info what=parameters where=rawfile

    primitives info what=primitives where=rawfile

    subckts info what=subckts  where=rawfile

    asserts info what=assert  where=rawfile

    save vctl 

    saveOptions options save=none pwr=none useprobes=no

    ahdl_include "/cad/tools/cadencetools/IC5141_USR6/tools/dfII/samples/artist/ahdlLib/vco/veriloga/veriloga.va" 

    • Post Points: 20
  • Thu, May 31 2012 5:27 AM

    Re: RE: RE: Transient simulation taking too much memory Reply

    Here you have chosen the signals to be output as "none". You really don't want that, because that will save only a single (arbitrarily chosen) signal - it was a historical limitation in spectre that it was hard to turn off the outputs completely, so "none" just picks one at random to get the results small.

    You want "selected". 

    It should only be saving vctl then.

    Andrew.

    • Post Points: 20
  • Thu, May 31 2012 9:34 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: RE: Transient simulation taking too much memory Reply

    Sir, even though it should save only 'vctl', I'm still able to plot other nets (Results -> Direct plot -> transient signal). Why is that so? (If it didn't save other nets, how is it able to plot them?) I hope you understood my doubt.

    Thanks. 

    • Post Points: 5
  • Sat, Jun 2 2012 4:02 AM

    • vshssvs7
    • Not Ranked
    • Joined on Wed, May 30 2012
    • Posts 11
    • Points 190
    Re: RE: RE: Transient simulation taking too much memory Reply
    Could someone please reply to my doubt....Even though I want it to save only certain nets, spectre is saving every net clogging my hard disk. I cannot run a transistor level PLL with this problem.....please help.
    • Post Points: 20
Page 1 of 2 (21 items) 1 2 Next >
Sort Posts:
Started by vshssvs7 at 30 May 2012 02:25 AM. Topic has 20 replies.