• 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. Spectre: How to get rid of spectre.ic and spectre.fc?

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 125
  • Views 19452
  • 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

Spectre: How to get rid of spectre.ic and spectre.fc?

dontpanic
dontpanic over 8 years ago

Hi! I am running batch simulations over a large extracted design, so I need to trim down the size of the results directories to the bare minimum. The spectre.ic and spectre.fc occupy almost 50MB each, so I want to avoid generating them, but I haven't been able to figure out how...

-In my transient sim setup, tab "State file" I removed the text "spectre.ic"  and "spectre.fc" in the fields "write" and "writefinal", respectively, but the simulator seems to ignore this.

-In the "enviroment" options I have checked "Save state (ss)" and "Recover (rec)" to "n", but this also doesn't seem to have any effect.

Any ideas on how to achieve this? I'm using spectre version 15.1.0.679.isr14 64bit.

Thanks and regards,

Jorge.

P.S. I also noticed that even though I made sure to have no outputs selected for saving/plotting, and my "save all" setup is as in shown below, a "tran.tran.tran.dat" is still generated in the results directory. When I check its contents with the Results Browser tool, I see that one voltage node of my circuit is still being saved. Is this a bug, or spectre must by all means save at least one circuit node?

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Jorge,

    I don't see how the simulator can ignore this - if you don't' specify what file to write these to, it doesn't write them. Double check the tran statement in the netlist - if they're really not there, they shouldn't get written. I assume you're not just seeing the files from a previous run of spectre in the same netlist directory? (check the dates, or try deleting them before simulation).

    I can't see what you had on the form because it's missing in  your post, but if you do pick "save=none" then it will indeed save a single signal. That's because the output is initialised, and so it has to save something in the file so that the results data is not invalid. If you really don't want to save anything, then leave all of the choices for "save" blank on the Outputs->Save All form (i.e. nothing checked) and then go to the Simulation->Options->Analog form, go to the Miscellaneous tab, and then at the bottom in the Additional arguments field, enter "save=nooutput". That will stop it writing anything from any analysis.

    Not sure if that's what you want though, because presumably you want some output from the simulator because otherwise it's a  bit of a waste of time simulating it! Perhaps you're saving data via Verilog-A?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 8 years ago
    Hi Andrew, thanks so much for your prompt reply! (Indeed I missed the snapshot in my post; I've added it for completeness--might be helpful to other users in the future). Both issues are solved now:

    1) [Short reply:] You're right, leaving the empty the "write" and "writefinal" fields causes their respective files not to be produced. [Long reply: I got lost in my sea-of-simulations and was looking at the results of a "clon" adexl view running on another server, where I hadn't cleared these fields yet! I'm in tapeout-mode currently, so the quality of my wakefulness is pretty low, sorry!).
    2) The "save=nooutput" totally makes the trick of no signal at all being written to the "tran.tran.tran.dat" file! :)

    Now, that being solved, my simulation run directories are still considerably big due to 2 files in the netlist directory : "input.scs" and "netlist" (~50MB each). Is there an easy way to tell ADE-XL to delete these after the run is complete? Maybe with a SKILL procedure installed as a post-simulation trigger somehow?

    Thanks so much again for your help!
    Cheers,
    Jorge.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Jorge,

    You can control this via Options->Save in ADE XL. This controls whether it deletes the raw simulation data and/or the netlists after each point run is completed.

    You can also cut down the numbers of copies of the netlist (and the size of the input.scs) by setting these two env vars in your .cdsinit:

    envSetVal("adexl.simulation" "singleNetlistForAllPoints" 'boolean t)
    envSetVal("adexl.simulation" "includeStatementForNetlistInSimInputFile" 'boolean t)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 8 years ago
    Thanks for the information, Andrew! Unchecking "Save Netlists" in Options->Save improved a lot the situation, but a reference netlist directory is still created common to all run points (digging in the manual I found: "[...]To save only the results, and not the netlist, for each design point, deselect Save Netlists and select only Save Simulation Data. With these of options, a reference netlist directory is created. The point-specific netlist is not saved and the netlist directory for every point is replaced with a symbolic link to the reference netlist directory.)

    Since during design validation dozens of runs are easily needed, keeping these netlist directories still yields results directories occupying some gigabytes. Do you think a skill procedure+post-simulation trigger approach could be used to delete these directories, or maybe it could break some causality order (i.e. delete stuff while the tool still expects it to exist)? I've never worked with post-simulation triggered procedures, so I don't know how difficult would be to implement this.

    Thanks and regards,
    Jorge
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Jorge,

    I don't understand. There would only be one netlist directory for each test, regardless of how many points you ran in the verification. So why would it be gigabytes of data? You already turned off the simulation output (not sure how you're actually getting any output from the simulator - presumably you have to output something somewhere otherwise there's no point in running the simulation). If  you want to cut it down altogether, you can check the "Save Simulation Data" too which will delete the contents of the psf dir and then not save a shared netlist either. This doesn't  delete any measurement outputs which have resulted in a scalar value in the ADE XL outputs table, but those would have been dependent on having some psf results before the data got deleted (which doesn't match with your intent to use save=nooutput earlier).

    Trying to write post-simulation triggers shouldn't be necessary here - mainly because I just don't understand why the built-in capability doesn't do what you want.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 8 years ago

    Oh, the problem is that the reference netlist directory is generated on a per-run basis, instead of a per-test basis. From the experiments I've quickly ran I see that unchecking "Save Netlists" in Options->Save keeps the following shared netlist directory:

    [results_dir]/[libname]/[cellname]/[adexl view name]/results/data/[run name. e.g. "Interactive.XYW"]/psf/[test name]/netlist

    This folder is still created for every run, even after unchecking "Save Simulation Data". I also can't use this latter option altogether because I rely on separate results directories for each point to dump the actual outputs of interest to disk by means of a verilog-A module in my testbench, which I later postprocess in Matlab (I forgot to mention all this, sorry about that!); unfortunately unchecking that option breaks this functionality, so the post-simulation trigger seemes to me the easiest workaround to try...

    Cheers,
    Jorge.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Jorge,

    However, if you're doing sweeps and corners (which I assumed you were), turning off the Save Netlists checkbox means that rather than having a full netlist directory per sweep point and corner (i.e. under the 1, 2, 3 directories within the Interactive.XX), you only have one.

    Are you running lots of separate "Interactive" runs? If so, why?

    In general this netlist directory has to be partially kept because of the need for the mapping data in the directory - otherwise plotting wouldn't work. In this case you don't care about that, but that's why in general there's no mechanism to completely remove the netlist dir unless you're not keeping the simulation directory.

    I wonder whether a simpler solution might not be to get your veriloga to write the file to one level higher (i.e. add "../" to the beginning of the path) and then delete the simulation data and netlist? I've not tested this...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dontpanic
    dontpanic over 8 years ago

    Well, normally I define the corners as parameter sweeps, the tests as testbenches grabbing different config views (e.g. schematic, pex CCc, pex RCc, etc) and the interactive runs I mainly use for (in actual order in my design flow): (1) normal iterations over the design, (2) incremental simulation time / accuracy / number of corners simulated (i.e. I'll ran first few corners over smaller FFTs and relaxed maxstep and if results look ok then re-run more corners with larger FFTs and higher accuracy), and finally (3) simulations with transient noise. So after all these I easily end up with tens of interactive runs (and I do keep the history of the simulations for reporting/comparison purposes). So, within this usage context, it's common for me to receive disk quota warnings when dealing with large PEX netlists :\

    The saving to one level higher approach does work for the wave dumping issue, but I remembered my postprocessing scripts also read other results files (mainly spectre.out and designParamVals.info) from the results directory, and what's worse, I noticed I also read the .modelFiles FROM THE netlist DIRECTORY for getting the device model used in the runs! Thus I see that I do rely on the netlist directory to exist! So really the only option for me is to find an automated way to delete just the actual netlist file.

    For the time being the one-netlist-per-run solution is good enough, though. I cannot change my postprocess flow right now, but I'll see if I can come up with a clean solution after my tapeout. Will definitely get back to this thread by then! :D

    As usual, thanks so much for your help, Andrew!

    Cheers,
    Jorge.

    • 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