• 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. Accessing power results from transient analysis in spec...

Stats

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

Accessing power results from transient analysis in spectremdl

iamKarthikBK
iamKarthikBK over 3 years ago

Hello.

I want to be able to access power/energy results obtained form a transient analysis and be able to pass them to an mvarsearch.
How can I do this? I don't seem to be able to access the power using :pwr within the measurement alias.

Thanks in advance!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    This seems like a bug. I tried using the example in the <SPECTREinstDir>/tools/spectre/examples/MDL_workshop/MDL_workshop.tar.gz - in the "optimize" directory. I adapted it as follows:

    //  mvarpwr.mdl
    //  (C) 2008 Cadence Design Systems, Inc.
    //
    // This example is to find optimal values of design parameters 
    // by running a multi-parameter, multi-goal search function
    //
    
    // alias measurement definition
    alias measurement trans {
    
      // definition of transient analysis with autostop turned on
      run tran( stop=1u, autostop='yes )
    
         // computation of risetime for signal V(out) from 10% to 90%
         export real rise=risetime(sig=V(out), initval=0.5, \
                          finalval=3.0)
    
         //computation of falltime for signal V(out) from 90% to 10%
         export real fall=falltime(sig=V(out), initval=3.0, \
                          finalval=0.5)
    
         export real max_pwr = max(abs(i0.mn0:pwr))
    
    }
    
    // Print results to a specified file beginning with "to=" keyword
    print fmt ("\n****Intermediate Results of Optimization Searching****\n\n") to="mvar.print"
    
    // continue to print in user-format with "addto=" keyword
    print fmt ("%-15s%-15s%-15s%-15s%-15s\n", "pw","nw","rise","fall","max_pwr") addto="mvar.print"
    
    // workaround - uncomment this and then the power gets properly measured in the subsequent
    // mvarsearch (seems like a bug)
    //run trans
    
    // definition of a mvarsearch function
    mvarsearch {
    
             // definition of multiple optimization goals
       	 option {
    	    //method='lm
       	    accuracy = 1e-3     // convergence tolerance of trans
       	    deltax = 1e-3       // step length
       	    maxiter = 100       // limit to 100 iterations
       	 }
    
             //  definition of multiple parameters to be optimized
       	 parameter {
       	    {pw, 2u, 0.05u, 10u} //init_val, lower_val, upper_value
       	    {nw, 2u, 0.05u, 10u} //init_val, lower_val, upper_value 
       	 }
    
             // execution of the measurement alias
       	 exec {
                print fmt("%-15e%-15e", pw, nw) addto="mvar.print"
       	    run trans
                print fmt("%-15e%-15e%-15e\n", trans->rise,trans->fall,trans->max_pwr) \
                          addto="mvar.print"
       	 }
    
             // definition of goal values to be minimized
       	 zero {
       	    tmp1 = trans->rise-25p
       	    tmp2 = trans->fall-25p 
    // uncomment to add this power goal (doesn't work with this alone as the power is always 0)
    //	    tmp3 = trans->max_pwr-0.5m
       	 }
    }

    If I run this:

    spectremdl -design invs.scs -batch mvarpwr.mdl

    then I get the max_pwr reported as 0 in each simulation and in the summary. Uncommenting the line in the zero section doesn't help - it then finds a different solution but given that the goal is not working, it's not right. I found a workaround by adding a "run trans" (see the comment about a workaround above). Then it works properly and you see the max_pwr appearing in each individual run and in in the resulting optimisation.

    I filed a change request (CCR) 2578561 for this. I suggest that you contact customer support and ask for a duplicate to be filed so that it can be associated with a real customer rather than just appearing as an internal request.

    Let me know if the workaround works for you too (assuming you're seeing the same problem). I tried with the latest SPECTRE20.1 and 21.1 versions.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • iamKarthikBK
    iamKarthikBK over 3 years ago in reply to Andrew Beckett

    Hello.

    Thank you for your reply. I seem to be able to use this workaround, meanwhile I have asked my admin to file a change request.
    I have another problem right here though.

    I define my measurement alias exactly as you have, but the log files tell me that the rise time is not found.
    Here is exactly how I define my measurement alisas:

    ```

    alias measurement trans {

    // definition of transient analysis with autostop turned on
    run tran( stop=1u, autostop='yes )

    // computation of risetime for signal V(out) from 10% to 90%
    export real rise=risetime(sig=V(OUT), initval=0.0, inittype='y, finalval=0.35, finaltype='y, theta1=10, theta2=90)

    //computation of falltime for signal V(out) from 90% to 10%
    export real fall=falltime(sig=V(OUT), initval=0.35, inittype='y, finalval=0.0, finaltype='y, theta1=90, theta2=10)

    export real max_pwr = max(abs(I2.NM0:pwr))

    }

    ```



    This is what my input.measure file tells me:
    ```

    Exported variables from results directory: ././input.raw/

    date : 8:26:43 PM, Mon Nov 29, 2021
    design : // Generated for: spectre
    simulator : spectre
    version : 19.1.0.396.isr8


    Measurement Name : trans
    Analysis Type : tran
    fall = 1.30558e-07
    max_pwr = 4.22013e-08
    rise = NaN


    Swept Measurements :
    Measurement Name : trans-meas_optimize
    Analysis Type : tran
    fall WP @ 1e-07
    WN @ 1.03162e-07 = 1.30742e-07
    max_pwr WP @ 1e-07
    WN @ 1.03162e-07 = 4.218e-08
    rise WP @ 1e-07
    WN @ 1.03162e-07 = NaN

    ```



    This is how my test bench is being created, part of the spectre netlist that goes as an input to spectremdl:
    ```
    // View name: schematic
    I2 (0 IN OUT net7) char
    V0 (IN 0) vsource dc=0 type=pulse val0=0 val1=350m period=100n delay=0 \
    rise=100p fall=100p
    C0 (OUT 0) capacitor c=20f
    V1 (net7 0) vsource dc=350m type=dc
    simulatorOptions options psfversion="1.4.0" 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=500n 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
    saveOptions options save=all pwr=all
    ```

    I am using SPECTRE 19.1
    Can you tell me if I am doing something wrong?

    Thanks in advance!


    Drop here!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to iamKarthikBK

    Can you share a plot (in ViVA) of the OUT signal?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • iamKarthikBK
    iamKarthikBK over 3 years ago in reply to Andrew Beckett

    This is how the waveform looked earlier:



    After increasing the period in vpulse, this is how it looks:



    This is the updated testbench:

    // View name: schematic
    I2 (0 IN OUT net7) char
    V0 (IN 0) vsource dc=0 type=pulse val0=0 val1=350m period=10u delay=0 \
    rise=100p fall=100p
    C0 (OUT 0) capacitor c=20f
    V1 (net7 0) vsource dc=350m type=dc
    simulatorOptions options psfversion="1.4.0" 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=20u 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
    saveOptions options save=all pwr=all



    This is the entire log file:


    Spectre ® Circuit Simulator
    Version 19.1.0.396.isr8 64bit -- 19 Jun 2020
    Copyright © 1989-2020 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence and Spectre are registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective holders.

    Includes RSA BSAFE® Cryptographic or Security Protocol Software from RSA Security, Inc.

    User: VLSI_ANALOG Host: cad19 HostID:Hidden PID: 29669
    Memory available: 895.8935 MB physical: 3.9327 GB
    Linux : Red Hat Enterprise Linux Server release 6.9 (Santiago)
    CPU Type: Intel® Core™ i5-2320 CPU @ 3.00GHz
    All processors running at 1600.0 MHz
    Socket: Processors
    0: 0, 1, 2, 3

    System load averages (1min, 5min, 15min) : 4.2 %, 3.8 %, 1.5 %


    Simulating `./input.scs' on cad19 at 11:51:54 PM, Mon Nov 29, 2021 (process id: 29669).
    Current working directory: /home/VLSI_ANALOG/UMC180/Designkits/Cadence_6.1/lowpower28/spectremdl/new
    Command line:
    /home/installs/SPECTRE191/tools.lnx86/bin/spectre -64 =mdl \
    input.mdl ./input.scs

    Loading /home/installs/SPECTRE191/tools.lnx86/cmi/lib/64bit/5.0/libinfineon_sh.so ...
    Loading /home/installs/SPECTRE191/tools.lnx86/cmi/lib/64bit/5.0/libphilips_o_sh.so ...
    Loading /home/installs/SPECTRE191/tools.lnx86/cmi/lib/64bit/5.0/libphilips_sh.so ...
    Loading /home/installs/SPECTRE191/tools.lnx86/cmi/lib/64bit/5.0/libsparam_sh.so ...
    Loading /home/installs/SPECTRE191/tools.lnx86/cmi/lib/64bit/5.0/libstmodels_sh.so ...
    Loading /home/installs/SPECTRE191/tools.lnx86/spectre/lib/64bit/mdl/libSpectreEH_sh.so ...
    Reading file: /home/VLSI_ANALOG/UMC180/Designkits/Cadence_6.1/lowpower28/spectremdl/new/input.mdl
    Reading file: /home/VLSI_ANALOG/UMC180/Designkits/Cadence_6.1/lowpower28/spectremdl/new/input.scs
    Reading file: /home/installs/SPECTRE191/tools.lnx86/spectre/etc/configs/spectre.cfg
    Reading file: /home/VLSI_ANALOG/UMCLib/pdk/UMC/28/_G-01-LOGIC_MIXED_MODE28N-HPC/Designkits/Cadence_IC6/G-9FD-LOGIC_MIXED_MODE28N-HPC_UM028FDKHCC0000OA-FDK-Ver.A14_PB/UM028FDKHCC0000OA_A14_DESIGNKIT/UM028FDKHCC0000OA_A14_PB/Models/Spectre/l28hpc_mm_v1201.lib.scs
    Reading file: /home/VLSI_ANALOG/UMCLib/pdk/UMC/28/_G-01-LOGIC_MIXED_MODE28N-HPC/Designkits/Cadence_IC6/G-9FD-LOGIC_MIXED_MODE28N-HPC_UM028FDKHCC0000OA-FDK-Ver.A14_PB/UM028FDKHCC0000OA_A14_DESIGNKIT/UM028FDKHCC0000OA_A14_PB/Models/Spectre/l28hpc_rf_v017.lib.scs
    Time for NDB Parsing: CPU = 4.75028 s, elapsed = 5.16018 s.
    Time accumulated: CPU = 4.90225 s, elapsed = 5.16019 s.
    Peak resident memory used = 213 Mbytes.


    Warning from spectre during hierarchy flattening.
    WARNING (SFE-1131): Scope option `scalefactor' specified with scope `TopCircuit' at line `680' has also been specified at line `729' in file `/home/VLSI_ANALOG/UMCLib/pdk/UMC/28/_G-01-LOGIC_MIXED_MODE28N-HPC/Designkits/Cadence_IC6/G-9FD-LOGIC_MIXED_MODE28N-HPC_UM028FDKHCC0000OA-FDK-Ver.A14_PB/UM028FDKHCC0000OA_A14_DESIGNKIT/UM028FDKHCC0000OA_A14_PB/umc28hpc/../Models/Spectre/l28hpc_rf_v017.lib.scs'. As a result, the last specified value will be used for simulation.

    Time for Elaboration: CPU = 71.988 ms, elapsed = 71.0611 ms.
    Time accumulated: CPU = 4.97424 s, elapsed = 5.23144 s.
    Peak resident memory used = 226 Mbytes.


    Warning from spectre during hierarchy flattening.
    WARNING (SPECTRE-17101): The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.


    Time for EDB Visiting: CPU = 1 ms, elapsed = 952.959 us.
    Time accumulated: CPU = 4.97524 s, elapsed = 5.23256 s.
    Peak resident memory used = 227 Mbytes.


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

    Scoped user options:

    Circuit inventory:
    nodes 3
    bsim4 2
    capacitor 1
    diode 1
    vsource 2

    Analysis and control statement inventory:
    info 7
    tran 1

    Output statements:
    .probe 0
    .measure 0
    save 0

    Time for parsing: CPU = 3 ms, elapsed = 75.556 ms.
    Time accumulated: CPU = 4.97824 s, elapsed = 5.30823 s.
    Peak resident memory used = 229 Mbytes.

    ~~~~~~~~~~~~~~~~~~~~~~
    Pre-Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~

    ************************************************
    Transient Analysis `trans': time = (0 s -> 1 us)
    ************************************************
    DC simulation time: CPU = 1 ms, elapsed = 874.996 us.

    Opening the PSFXL file ./input.raw/trans.tran.tran ...
    Important parameter values:
    start = 0 s
    outputstart = 0 s
    stop = 1 us
    step = 1 ns
    maxstep = 20 ns
    ic = all
    useprevic = no
    skipdc = no
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    errpreset = moderate
    method = traponly
    lteratio = 3.5
    relref = sigglobal
    cmin = 0 F
    gmin = 1 pS


    Output and IC/nodeset summary:
    save 2 (current)
    save 10 (voltage)
    others 5


    Notice from spectre at time = 533.602 ps during transient analysis `trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 963.045 ps during transient analysis `trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 1.82193 ns during transient analysis `trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 3.5397 ns during transient analysis `trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Notice from spectre at time = 6.28397 ns during transient analysis `trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Further occurrences of this notice will be suppressed.

    ......9......8......7......6......5......4......3......2......1......0
    Number of accepted tran steps = 72

    Notice from spectre during transient analysis `trans', during task `MDLControl'.
    Trapezoidal ringing is detected during tran analysis.
    Please use method=trap for better results and performance.


    Maximum value achieved for any signal of each quantity:
    V: V(I2.PM0:int_d) = 350.7 mV
    I: I(V0:p) = 613.3 nA
    If your circuit contains signals of the same quantity that are vastly different in size (such as high voltage circuitry combined with low voltage control circuitry), you should consider specifying global option `bin_relref=yes'.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Post-Transient Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - To further speed up simulation, consider
    add ++aps on command line
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    During simulation, the CPU load for active processors is :
    0 (5.3 %) 1 (92.2 %) 2 (4.8 %) 3 (2.5 %)
    Total: 104.8%
    Initial condition solution time: CPU = 1 ms, elapsed = 977.039 us.
    Intrinsic tran analysis time: CPU = 15.998 ms, elapsed = 50.0469 ms.

    Warning from spectre during transient analysis `trans', during task `MDLControl'.
    WARNING (MDL-2034): line `18': risetime - Rise Time Not Found

    Total time required for tran analysis `trans': CPU = 21.997 ms, elapsed = 55.702 ms.
    Time accumulated: CPU = 5.00624 s, elapsed = 5.37057 s.
    Peak resident memory used = 232 Mbytes.


    Notice from spectre during task `MDLControl'.
    41 notices suppressed.
    Warning from spectre.
    WARNING (SPECTRE-17101): The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.
    WARNING (SPECTRE-17101): The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.


    Opening the PSF file ./input.raw/trans.optimize ...

    **********************************************************
    Transient Analysis `trans-000_trans': time = (0 s -> 1 us)
    **********************************************************
    DC simulation time: CPU = 1 ms, elapsed = 611.067 us.

    Opening the PSFXL file ./input.raw/trans-000_trans.tran.tran ...
    Important parameter values:
    start = 0 s
    outputstart = 0 s
    stop = 1 us
    step = 1 ns
    maxstep = 20 ns
    ic = all
    useprevic = no
    skipdc = no
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    errpreset = moderate
    method = traponly
    lteratio = 3.5
    relref = sigglobal
    cmin = 0 F
    gmin = 1 pS


    Output and IC/nodeset summary:
    save 2 (current)
    save 10 (voltage)
    others 5


    Notice from spectre at time = 533.602 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 963.045 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 1.82193 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 3.5397 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Notice from spectre at time = 6.28397 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Further occurrences of this notice will be suppressed.

    ......9......8......7......6......5......4......3......2......1......0
    Number of accepted tran steps = 72

    Notice from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    Trapezoidal ringing is detected during tran analysis.
    Please use method=trap for better results and performance.


    Maximum value achieved for any signal of each quantity:
    V: V(I2.PM0:int_d) = 350.7 mV
    I: I(V0:p) = 613.3 nA
    If your circuit contains signals of the same quantity that are vastly different in size (such as high voltage circuitry combined with low voltage control circuitry), you should consider specifying global option `bin_relref=yes'.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Post-Transient Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - To further speed up simulation, consider
    add ++aps on command line
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    During simulation, the CPU load for active processors is :
    0 (5.7 %) 1 (90.5 %) 2 (5.0 %) 3 (2.7 %)
    Total: 103.9%
    Initial condition solution time: CPU = 1 ms, elapsed = 696.898 us.
    Intrinsic tran analysis time: CPU = 18.997 ms, elapsed = 46.9458 ms.

    Warning from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    WARNING (MDL-2034): line `18': risetime - Rise Time Not Found

    Total time required for tran analysis `trans-000_trans': CPU = 22.997 ms, elapsed = 51.2409 ms.
    Time accumulated: CPU = 5.07723 s, elapsed = 5.55397 s.
    Peak resident memory used = 233 Mbytes.


    Notice from spectre during task `MDLControl'.
    41 notices suppressed.
    Warning from spectre.
    WARNING (SPECTRE-17101): The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.


    **********************************************************
    Transient Analysis `trans-000_trans': time = (0 s -> 1 us)
    **********************************************************
    DC simulation time: CPU = 0 s, elapsed = 340.939 us.

    Opening the PSFXL file ./input.raw/trans-000_trans.tran.tran ...
    Important parameter values:
    start = 0 s
    outputstart = 0 s
    stop = 1 us
    step = 1 ns
    maxstep = 20 ns
    ic = all
    useprevic = no
    skipdc = no
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    errpreset = moderate
    method = traponly
    lteratio = 3.5
    relref = sigglobal
    cmin = 0 F
    gmin = 1 pS


    Output and IC/nodeset summary:
    save 2 (current)
    save 10 (voltage)
    others 5


    Notice from spectre at time = 533.602 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 963.045 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 1.82193 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 3.5397 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Notice from spectre at time = 6.2846 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Further occurrences of this notice will be suppressed.

    ......9......8......7......6......5......4......3......2......1......0
    Number of accepted tran steps = 72

    Notice from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    Trapezoidal ringing is detected during tran analysis.
    Please use method=trap for better results and performance.


    Maximum value achieved for any signal of each quantity:
    V: V(I2.PM0:int_d) = 350.7 mV
    I: I(V0:p) = 618.1 nA
    If your circuit contains signals of the same quantity that are vastly different in size (such as high voltage circuitry combined with low voltage control circuitry), you should consider specifying global option `bin_relref=yes'.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Post-Transient Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - To further speed up simulation, consider
    add ++aps on command line
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    During simulation, the CPU load for active processors is :
    0 (6.0 %) 1 (89.5 %) 2 (5.1 %) 3 (3.2 %)
    Total: 103.8%
    Initial condition solution time: CPU = 0 s, elapsed = 385.046 us.
    Intrinsic tran analysis time: CPU = 14.998 ms, elapsed = 50.4689 ms.

    Warning from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    WARNING (MDL-2034): line `18': risetime - Rise Time Not Found

    Total time required for tran analysis `trans-000_trans': CPU = 16.997 ms, elapsed = 52.7952 ms.
    Time accumulated: CPU = 5.11322 s, elapsed = 5.62573 s.
    Peak resident memory used = 233 Mbytes.


    Notice from spectre during task `MDLControl'.
    41 notices suppressed.
    Warning from spectre.
    WARNING (SPECTRE-17101): The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.
    WARNING (SPECTRE-17101): The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.


    **********************************************************
    Transient Analysis `trans-000_trans': time = (0 s -> 1 us)
    **********************************************************
    DC simulation time: CPU = 0 s, elapsed = 352.859 us.

    Opening the PSFXL file ./input.raw/trans-000_trans.tran.tran ...
    Important parameter values:
    start = 0 s
    outputstart = 0 s
    stop = 1 us
    step = 1 ns
    maxstep = 20 ns
    ic = all
    useprevic = no
    skipdc = no
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    errpreset = moderate
    method = traponly
    lteratio = 3.5
    relref = sigglobal
    cmin = 0 F
    gmin = 1 pS


    Output and IC/nodeset summary:
    save 2 (current)
    save 10 (voltage)
    others 5


    Notice from spectre at time = 533.637 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 963.115 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 1.82207 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 3.53998 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Notice from spectre at time = 6.29002 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Further occurrences of this notice will be suppressed.

    ......9......8......7......6......5......4......3......2......1......0
    Number of accepted tran steps = 72

    Notice from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    Trapezoidal ringing is detected during tran analysis.
    Please use method=trap for better results and performance.


    Maximum value achieved for any signal of each quantity:
    V: V(I2.PM0:int_d) = 350.7 mV
    I: I(V0:p) = 618.9 nA
    If your circuit contains signals of the same quantity that are vastly different in size (such as high voltage circuitry combined with low voltage control circuitry), you should consider specifying global option `bin_relref=yes'.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Post-Transient Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - To further speed up simulation, consider
    add ++aps on command line
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    During simulation, the CPU load for active processors is :
    0 (5.9 %) 1 (89.3 %) 2 (5.0 %) 3 (3.2 %)
    Total: 103.5%
    Initial condition solution time: CPU = 0 s, elapsed = 398.874 us.
    Intrinsic tran analysis time: CPU = 11.997 ms, elapsed = 43.3631 ms.

    Warning from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    WARNING (MDL-2034): line `18': risetime - Rise Time Not Found

    Total time required for tran analysis `trans-000_trans': CPU = 14.997 ms, elapsed = 45.732 ms.
    Time accumulated: CPU = 5.16421 s, elapsed = 5.70751 s.
    Peak resident memory used = 233 Mbytes.


    Notice from spectre during task `MDLControl'.
    41 notices suppressed.


    **********************************************************
    Transient Analysis `trans-000_trans': time = (0 s -> 1 us)
    **********************************************************
    DC simulation time: CPU = 1 ms, elapsed = 353.813 us.

    Opening the PSFXL file ./input.raw/trans-000_trans.tran.tran ...
    Important parameter values:
    start = 0 s
    outputstart = 0 s
    stop = 1 us
    step = 1 ns
    maxstep = 20 ns
    ic = all
    useprevic = no
    skipdc = no
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    errpreset = moderate
    method = traponly
    lteratio = 3.5
    relref = sigglobal
    cmin = 0 F
    gmin = 1 pS


    Output and IC/nodeset summary:
    save 2 (current)
    save 10 (voltage)
    others 5


    Notice from spectre at time = 533.637 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 963.115 ps during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 1.82207 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node I2.NM0:int_s.
    Notice from spectre at time = 3.53998 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Notice from spectre at time = 6.29002 ns during transient analysis `trans-000_trans', during task `MDLControl'.
    Found trapezoidal ringing on node V0:p.
    Further occurrences of this notice will be suppressed.

    ......9......8......7......6......5......4......3......2......1......0
    Number of accepted tran steps = 72

    Notice from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    Trapezoidal ringing is detected during tran analysis.
    Please use method=trap for better results and performance.


    Maximum value achieved for any signal of each quantity:
    V: V(I2.PM0:int_d) = 350.7 mV
    I: I(V0:p) = 618.9 nA
    If your circuit contains signals of the same quantity that are vastly different in size (such as high voltage circuitry combined with low voltage control circuitry), you should consider specifying global option `bin_relref=yes'.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Post-Transient Simulation Summary
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - To further speed up simulation, consider
    add ++aps on command line
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    During simulation, the CPU load for active processors is :
    0 (6.2 %) 1 (88.7 %) 2 (5.0 %) 3 (3.2 %)
    Total: 103.1%
    Initial condition solution time: CPU = 1 ms, elapsed = 396.967 us.
    Intrinsic tran analysis time: CPU = 17.997 ms, elapsed = 50.3759 ms.

    Warning from spectre during transient analysis `trans-000_trans', during task `MDLControl'.
    WARNING (MDL-2034): line `18': risetime - Rise Time Not Found

    Total time required for tran analysis `trans-000_trans': CPU = 21.996 ms, elapsed = 54.163 ms.
    Time accumulated: CPU = 5.18721 s, elapsed = 5.76322 s.
    Peak resident memory used = 233 Mbytes.


    Notice from spectre during task `MDLControl'.
    41 notices suppressed.


    Aggregate audit (11:52:00 PM, Mon Nov 29, 2021):
    Time used: CPU = 5.32 s, elapsed = 5.96 s, util. = 89.3%.
    Time spent in licensing: elapsed = 355 ms, percentage of total = 5.95%.
    Peak memory used = 233 Mbytes.
    Simulation started at: 11:51:54 PM, Mon Nov 29, 2021, ended at: 11:52:00 PM, Mon Nov 29, 2021, with elapsed time (wall clock): 5.96 s.
    spectre completes with 0 errors, 12 warnings, and 36 notices.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to iamKarthikBK

    Er, this seems kind of obvious. Your transient time is only 1us (the log file shows this, and the MDL earlier shows "run tran( stop=1u, autostop='yes )"). From your ViVA plot and your revised netlist, there's no rise until 5us, so clearly it won't find a rise time after the stop time!

    The rise time seems very slow for a 20f load capacitance, but presumably that's your circuit. I suggest changing the stop in the MDL to (say) 20u and then it should work.

    Andrew 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • iamKarthikBK
    iamKarthikBK over 3 years ago in reply to Andrew Beckett

    Oops! Sorry about that. I did change it in the ADE window and regenerate the netlist, I missed the stop time in the mdl control file.
    This works :)

    Thank you so much!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to iamKarthikBK
    Andrew Beckett said:
    I filed a change request (CCR) 2578561 for this. I suggest that you contact customer support and ask for a duplicate to be filed so that it can be associated with a real customer rather than just appearing as an internal request.

    A quick update - R&D have already fixed this based on my report. I just tested it, and now it works well without needing to have the additional run statement.

    The fix will be in SPECTRE21.1 ISR4, which is due out around the 21st January 2022.

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 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