• 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. Mixed-Signal Design
  3. saving operating points

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 64
  • Views 24366
  • 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

saving operating points

Charanraj Mohan
Charanraj Mohan over 9 years ago

Hi,

I am writing something like this below,

'save M0,M1:all'

in the file saveop.scs and loading this in the model libraries setting of the ADE and getting the dc operating points in the simulation.

It worked well in AMS 0.35um, UMC 130nm, but not in ST 130nm :-(

Do you have an alternate way to this easier like above or to tackle this ??

I am using IC 6.1.6 130 version.


Thanks in advance.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Did you try using Outputs->To Be Saved->Select OP Parameters? This is the built-in interface in ADE to avoid the need for an include file.

    If that doesn't work, it may be because the models have hierarchy underneath them and so the operating points are not directly on the instances in question. Without access to the design kit, I can't tell that. So if this suggestion doesn't work, I'd suggest going to customer support so that a Cadence Application Engineer can look at this with you.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charanraj Mohan
    Charanraj Mohan over 9 years ago

    Thanks Andrew.
    When I do the built-in interface in ADE i.e. Outputs->To be saved->select OP Parameters. Cursor moves to the schematic and I choosed the transistor I want. And later I selected gm in the option, enabled plot and ran the simulation.

    I get error saying 'Unable to plot expression <OS(´/M0' 'gm'............directory)>
    because it does not evaluate to an object that can be plotted, like a waveform or
    parametric wave. See the Visualization & Analysis Tool documentation for information
    about the types of objects that can be plotted in Visualization & Analysis Tool. Only
    the expressions that evaluate to those objects can be plotted.

    Any idea of the error to tackle ?

    I checked for a transient simulation. I can see the operating point parameters in 'trans' of the Result browser. But in DC simulation it is not working. I need to plot some dc operating point parameters during a DC sweep.


    Thanks

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

    In the "Operating Points" field, there's a "..." button - did you press that? If you did, did you try the "get from simulation" button - and if so, did the list of operating points (including gm) appear? 

    Also, if you look in the results browser, is there any sign of the M0:gm result?  

    I suspect the models have hierarchy underneath, as I said. You'd have to look at the model files to know that though. If this happens the top step (using the "get from simulation" probably wouldn't work), and you'd need to use an include file with:

    save M0.Mint:gm // where Mint is whatever name the MOS device has within the subckt model

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charanraj Mohan
    Charanraj Mohan over 9 years ago
    Thanks Andrew,
    I selected gm in the options of the 'Operating parameter' and ran the simulation. And I do not get any plot. When I click 'plot Outputs' icon in ADE, I see the error, as mentioned in my previous reply along with a warning at last which says, Wave1 is not a waveform object that can be displayed and will be DELETED automatically.

    As you were talking about the models, the details of the model are as below-
    The model is a high voltage pMOSFET named 'pdomos50' in ST 130nm. I spotted a difference of these MOSFETs from other kits. When I select the MOSFET and press 'Q' to know its parameters, I can see an option called 'Model name' and under it I have 8 choices to select, as follows,

    1.EP5V0_BS3JU
    2.EP5V0_BS3JULEAK
    .
    .
    .
    .
    7.EP5V0_PSP
    8.user

    I think these are BSIM3 and Penn State Philips models. I choose the first one i.e. EP5V0_BS3JU and ran simulation. Are these details helpful in knowing whats happening ?

    Thanks.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    You didn't answer my question about what happened when  you used the "get from simulation" button.

    The message about it not being a waveform object which will be deleted simply means that it couldn't find the results when it tried to save it. The chances are there was a warning in the simulator log telling you that it couldn't save what you'd asked to be saved. Perhaps you could look there too?

    The list of model names is of no help; you need to look at what's in the model files - the names of the models themselves doesn't tell me anything. You can't share the model files here because they are part of ST's IP and you'd be breaking their license/NDA conditions. That's why I suggested customer support, because it gives us much more opportunity to find out more about what you're doing, what technology you're using, and to make relevant enquiries with a more rapid turnaround.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charanraj Mohan
    Charanraj Mohan over 9 years ago
    Thanks Andrew

    When I click 'get from simulation', i get this log



    Delete psf data in /mnt/cnm/mohan/trying_st130nm/simulation/working_with_MOSFETS/spectre/schematic/.tmpOPDataDir/psf.
    Load of Specific netlisting Procedure for H9A Process Load of Specific netlisting Procedure for H9A Process Begin Incremental Netlisting Aug 11 18:20:05 2016
    End netlisting Aug 11 18:20:05 2016

    The netlist is up to date.
    Time taken to compare the design with netlist: 0.0s

    Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
    Version 14.1.0.765.isr11 64bit -- 24 Jul 2015
    Copyright (C) 1989-2015 Cadence Design Systems, Inc. All rights reserved
    worldwide. Cadence, Virtuoso and Spectre are registered trademarks of
    Cadence Design Systems, Inc. All others are the property of their
    respective holders.

    Includes RSA BSAFE(R) Cryptographic or Security Protocol Software from RSA
    Security, Inc.

    User: mohan Host: xcad20 HostID: D6963506 PID: 8982
    Memory available: 134.3994 GB physical: 139.2047 GB
    CPU Type: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
    Processor PhysicalID CoreID Frequency Load
    0 0 0 1200.0 0.0
    1 0 1 1200.0 0.0
    2 0 2 1200.0 0.0
    3 0 3 1200.0 0.0
    4 0 4 1200.0 0.0
    5 0 5 2101.0 0.1
    6 1 0 1200.0 0.0
    7 1 1 1200.0 0.0
    8 1 2 1200.0 0.0
    9 1 3 1200.0 0.0
    10 1 4 1200.0 0.0
    11 1 5 1200.0 0.0
    12 0 0 1200.0 0.0
    13 0 1 1200.0 0.0
    14 0 2 1200.0 0.0
    15 0 3 1200.0 0.0
    16 0 4 1200.0 0.0
    17 0 5 1200.0 3.1
    18 1 0 1200.0 0.0
    19 1 1 1200.0 0.1
    20 1 2 1200.0 0.0
    21 1 3 1200.0 0.0
    22 1 4 1200.0 0.0
    23 1 5 2101.0 8.4


    Simulating `input.scs' on xcad20 at 6:20:05 PM, Thur Aug 11, 2016 (process id:
    8982).
    Current working directory:
    /mnt/cnm/mohan/trying_st130nm/simulation/working_with_MOSFETS/spectre/schematic/.tmpOPDataDir/netlist
    Command line:
    /cad/CADENCE_15/MMSIM14.10.765/tools/bin/spectre -64 input.scs \
    +escchars +log ../psf/spectre.out +inter=mpsc \
    +mpssession=spectre12_31827_39 -format psfxl -raw ../psf \
    +lqtimeout 900 -maxw 5 -maxn 5


    <Here i have 'Reading file' of some model files>



    Time for NDB Parsing: CPU = 391.939 ms, elapsed = 522.947 ms.
    Time accumulated: CPU = 427.933 ms, elapsed = 522.953 ms.
    Peak resident memory used = 41.9 Mbytes.

    Time for Elaboration: CPU = 42.995 ms, elapsed = 43.299 ms.
    Time accumulated: CPU = 470.928 ms, elapsed = 566.476 ms.
    Peak resident memory used = 48.6 Mbytes.


    Notice from spectre in `EN5V0_BS3JU':`M1', during hierarchy flattening.
    M1.m1_s: Terminals are connected together (to node `0').
    Notice from spectre in `EP5V0_BS3JU':`M0', during hierarchy flattening.
    M0.m1_s: Terminals are connected together (to node `net7').

    Time for EDB Visiting: CPU = 1 ms, elapsed = 1.23096 ms.
    Time accumulated: CPU = 472.927 ms, elapsed = 567.943 ms.
    Peak resident memory used = 49.1 Mbytes.


    Global user options:
    reltol = 0.001
    vabstol = 1e-06
    iabstol = 1e-12
    temp = 27
    tnom = 27
    scalem = 1
    scale = 1
    gmin = 1e-12
    rforce = 1
    maxnotes = 5
    maxwarns = 5
    digits = 5
    cols = 80
    pivrel = 0.001
    sensfile = ../psf/sens.output
    checklimitdest = psf
    save = allpub
    tnom = 27
    scalem = 1
    scale = 1

    Circuit inventory:
    nodes 3
    assert 44
    bsim3v3 2
    juncap 4
    vsource 3

    Analysis and control statement inventory:
    dc 1
    info 7

    Output statements:
    .probe 0
    .measure 0
    save 0

    Time for parsing: CPU = 136.979 ms, elapsed = 141.316 ms.
    Time accumulated: CPU = 609.906 ms, elapsed = 709.466 ms.
    Peak resident memory used = 57.8 Mbytes.

    ~~~~~~~~~~~~~~~~~~~~~~
    Pre-Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~
    Entering remote command mode using MPSC service (spectre, ipi, v0.0,
    spectre12_31827_39, ).
    Spectre Control Language log file is `input.scllog'.
    simulate...

    Warning from spectre.
    WARNING (SPECTRE-16707): Only tran supports psfxl format, result of other
    analyses will be in psfbin format.


    ******************
    DC Analysis `dcOp'
    ******************

    Notice from spectre during DC analysis `dcOp'.
    No checklimit analysis defined for asserts. A default checklimit analysis
    'SpectreChecklimitAnal' has been created with all asserts enabled.

    The following asserts will be enabled for all subsequent analyses until the
    next checklimit analysis statement is found:
    M1.soa_183 : ON
    M1.soa_184 : ON
    M1.soa_185 : ON
    M1.soa_186 : ON
    M1.soa_187 : ON
    M1.soa_188 : ON
    M1.soa_189 : ON
    M1.soa_190 : ON
    M1.soa_191 : ON
    M1.soa_192 : ON
    M1.soa_193 : ON
    M1.soa_194 : ON
    M1.soa_195 : ON
    M1.soa_196 : ON
    M1.soa_197 : ON
    M1.soa_198 : ON
    M1.soa_199 : ON
    M1.soa_200 : ON
    M1.soa_201 : ON
    M1.soa_202 : ON
    M1.soa_203 : ON
    M1.soa_204 : ON
    M0.soa_247 : ON
    M0.soa_248 : ON
    M0.soa_249 : ON
    M0.soa_250 : ON
    M0.soa_251 : ON
    M0.soa_252 : ON
    M0.soa_253 : ON
    M0.soa_254 : ON
    M0.soa_255 : ON
    M0.soa_256 : ON
    M0.soa_257 : ON
    M0.soa_258 : ON
    M0.soa_259 : ON
    M0.soa_260 : ON
    M0.soa_261 : ON
    M0.soa_262 : ON
    M0.soa_263 : ON
    M0.soa_264 : ON
    M0.soa_265 : ON
    M0.soa_266 : ON
    M0.soa_267 : ON
    M0.soa_268 : ON
    Important parameter values:
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    gmindc = 1 pS
    Convergence achieved in 2 iterations.
    Total time required for dc analysis `dcOp': CPU = 4 ms, elapsed = 7.35807 ms.
    Time accumulated: CPU = 616.906 ms, elapsed = 1.79749 s.
    Peak resident memory used = 58.9 Mbytes.

    dcOpInfo: writing operating point information to rawfile.
    modelParameter: writing model parameter values to rawfile.
    element: writing instance parameter values to rawfile.
    outputParameter: writing output parameter values to rawfile.
    designParamVals: writing netlist parameters to rawfile.
    primitives: writing primitives to rawfile.
    subckts: writing subcircuits to rawfile.
    INFO (ADE-3071): Simulation completed successfully.
    reading simulation data...
    ...successful.

    Aggregate audit (6:20:11 PM, Thur Aug 11, 2016):
    Time used: CPU = 693 ms, elapsed = 5.16 s, util. = 13.4%.
    Time spent in licensing: elapsed = 65.5 ms.
    Peak memory used = 60.3 Mbytes.
    Simulation started at: 6:20:05 PM, Thur Aug 11, 2016, ended at: 6:20:11 PM,
    Thur Aug 11, 2016, with elapsed time (wall clock): 5.16 s.
    spectre completes with 0 errors, 1 warning, and 3 notices.
    *WARNING* (icLic-3) Could not get license Analog_Design_Environment_L
    *WARNING* (icLic-21) License Analog_Design_Environment_L ("95200") is not available to run ADE L.
    Trying to check out the license Analog_Design_Environment_XL ("95210") instead.
    *WARNING* (icLic-3) Could not get license Analog_Design_Environment_XL
    *WARNING* (icLic-21) License Analog_Design_Environment_XL ("95210") is not available to run ADE L.
    Trying to check out the license Analog_Design_Environment_GXL ("95220") instead.
    *INFO* (icLic-25) License Analog_Design_Environment_GXL ("95220") was used to run ADE L.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    I really wanted to know if you ended up with a list of parameters on the form after having done the "get from simulation". If  you don't, the chances are that these are subckt models with the actual devices inside and so it can't see any parameters for the instances you have on the schematic.

    I was more interested in seeing a log file from the normal simulation and if there were warnings there. I wouldn't have expected to see warnings during the "get from simulation" run.

    Either way, I'm answering this in my "spare" time - and I don't have any more spare time to respond to this as I shall soon be on vacation for a couple of weeks. That was another reason for me suggesting you contact customer support...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charanraj Mohan
    Charanraj Mohan over 9 years ago
    Thanks Andrew.

    Firstly am sorry for pinging you during vacation.

    I understand your comments. I completely agree with your suspection of the model to have a sub-circuit inside it. I can see the subcircuit clearly in the model file .scs inside the FDK directory. I tried 'save: M0.subcircuit_name:gm', but it did not work. Is this format ok ?

    I can clearly see that the model name mentioned in the pMOS in schematic do not match with the model name in the .scs file in the FDK directory. Instead, it is the subcircuit name there. Will this be a cause of not accepting the saveop.scs file ?

    thanks
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    It wouldn't be save M0.subcircuit_name:gm so that doesn't surprise me that it doesn't work.

    In spectre netlists, you always have this form:

    instName (conn1 conn2 ... connN) componentName param1=val1 param2=val2 ...

    The componentName can be a model, a primitive device, a subckt, a verilog-a model and so on - it doesn't matter. It's different from SPICE where the first character of the instance name says what kind of thing it is you instantiate. This makes it very easy to create more complex models by using a subckt.

    So, the model name that you're specifying on the transistor corresponds to the subckt name in the model file. What you are specifying in the save statement is the hierarchical instance name of the device you want to get the info save for. So for example, if your subckt model looked like this:

    subckt emos25 (d g s b)
    parameters w=1u l=2u
    MN1 (dint g sint b) ench w=w l=l
    R1 (dint d) resistor r=0.2
    R2 (sint s) resistor r=0.2
    ends emos25

    Then in your netlist you have:

    M0 (a inp 0 0) emos25 w=1u l=0.1u

    then you'd need:

    save M0.MN1:gm

    You need to know what the instance name is within the subckt that you are interested in.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charanraj Mohan
    Charanraj Mohan over 9 years ago

    Thanks Andrew. I must honestly confess that no book or customer support would have explained me so elaborate than you did. As you said, I can see 'm1' in place of 'MN1' in you explanation context. And I tried the below for both the MOSFETS and it worked-

    save M0.m1:all

    save M1.m1:all

    Many thanks; once again :-)

    • 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