• 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. editing input.scs not working

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 126
  • Views 18030
  • 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

editing input.scs not working

Rob Gregoire
Rob Gregoire over 11 years ago

Hi folks,

I'm running 6.1.5 and I ocasionally need to edit the simulation netlist (for example, to comment out a parasitic capacitance to debug). In the "old days" you would edit the input.scs and then hit simulation ->run and it would run without generating a new netlist. However, with this version it doesn't always use the input.scs - it seems to have one in memory that it uses. That is, if I go to simulation->netlist->display netlist I get the input.scs file that I modified, but the simulation uses the old one. (Editing the file "netlist" doesn't seem to help either.)

Occasionally I can get it to use the modified one, but I'm not sure exacly what I did to get it to do that. It is difficult to debug when you don't know what netlist is being used! So, what netlist is being used? How do I get it to use one that I've modified? 

 

Thanks, this problem is quite frustrating.

Rob

 

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Rob,

    I thought I'd sent this yesterday, but obviously neglected to hit the Post button...

    Anyway, this is not new - the spectre interface in ADE has always worked this way. The idea is that (by default) spectre is run from ADE in "interactive" mode. What this means is that when ADE launches the simulation, spectre is launched and then reads the netlist. It then goes "interactive" and control is passed to ADE. ADE can then ask it to run analyses or change parameters. The idea is that you can run a simulation, change a parameter in memory, run simulation again, and so on - all the time spectre keeps running, and there's no need for the additional overhead of starting simulation, checking out licenses each time, re-reading the netlist - when most of that work has been done.

    If the change is too significant (i.e. the schematic has been updated), then ADE tells spectre to exit and it is re-started, re-reading the new input.scs. 

    So what this means is that if spectre is already running, spectre will ignore any changes to the input.scs.

    You can solve this two ways:

    • Hit the stop button in ADE. This will force spectre to exit, and so the next run button will definitely re-read the input.scs
    • Set envSetVal("spectre.envOpts" "controlMode" 'string "batch") prior to starting ADE. This will mean that spectre's running in batch rather than "interactive" mode ("interactive" is the other available value). Each time spectre will start, read the netlist and checkout licenses, simulate, and exit. The downside of this is that with parametric analysis or quick design variable changes, you won't get the performance benefit. Note that if using APS, it always is in batch mode anyway.

    Hope that helps!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Rob Gregoire
    Rob Gregoire over 11 years ago

     You are the best Andrew! I'll give those a try.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tito80
    tito80 over 11 years ago

    If I understand your requirement correctly, you need to netlist, hack the netlist, then run simulation, and come back to ADE to continue other stuff, etc. Simulate won't help since it would renetlist either way. So there is another simple way. 

    1) Do your convetional netlisting 

    2) Open the netlist and modify it the way you want

    3) Now 'cd' to the netlist directory, open the runSimulation file, and execute the single whole line in that file on the command prompt as-is. That's what goes to simulation. For e.g. for me it is:

    a) cd /tmp/test/simulation/my_cell/spectre/schematic/netlist/

    b) vi runSimulation

    c) spectre  input.scs  +escchars +log ../psf/spectre.out  -format psfxl -raw ../psf   +aps +lqtimeout 900 -maxw 5 -maxn 5 -escchars  

    d) New psf data is generated. Now come back to ADE and continue stuff (for e.g. --> Plot after simulation: refresh, or open Waveform viewer, etc.)

    Hope this helps.

    - Tito 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Rob Gregoire
    Rob Gregoire over 11 years ago

     Thanks. I wondered if I could just execute that runSimulation file.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tito80
    tito80 over 11 years ago
    Yes, just source it --> It should work. I was just detailed so that u can take look at the file content.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Note that this (using runSimulation) won't actually work unless you take into account what I said earlier. If in "interactive" mode (which tito80 wasn't, because aps was being used, the script says:

    # runSimulation scripts generated for spectre interactive are not intended to be used for command line.
    spectre  input.scs +escchars +log ../psf/spectre.out +inter=mpsc +mpssession=spectre0_5417_1  -format psfxl -raw ../psf
    -I/home/username/demos/OCEAN/Models +lqtimeout 900 -maxw 5 -maxn 5

    You'd find that if you ran this, it would hang - because it is waiting to be controlled by ADE. You'd have to either generate the runSimulation script when in "batch" mode, or edit out the  +inter=mpsc +mpssession=spectre0_5417_1 part.

    So it wouldn't have worked for Rob unless the advice I gave had been taken into account.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tito80
    tito80 over 11 years ago

    Ok, Andrew, I tried your way (Stopping and rerunning, setting it to batch). But I am facing some problems. In the original scs, there are some parameters defined which I believe are picked up from spectre.ocn files in the netlist/ directory. However, when I execute "Run" for my modified scs (after killing Spectre in the previous run, and then modify orig.scs to modified.scs), it complains:

    ERROR (SFE-1997): "input.modified.scs" 3538: I78: parameter `vhigh': The parameter `vcc' is used but not set.

    And in my modified.scs, I have for the instance and paramter list:

    I78 (ctlesel\<2\> ctlesel\<1\> ctlesel\<0\>) bus3 setval=ctle vhigh=vcc vlow=0 

    ...

    parameters .... vcc ....

    Any pointer on how to solve this parameter unset problem? 

     

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

    Tito,

    That's because you presumably did not set a value for the design variable in ADE, and so you've just got:

    parameters ... vcc ...

    rather than:

    parameters ... vcc=1.2 ...

    Spectre would not read the "spectre.ocn" file at all; that's just a record of what got changed - it's not really used by anything.

    Regards,

    Andrew.

    • 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