• 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. DCop inconsistency

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 126
  • Views 16471
  • 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

DCop inconsistency

Ahmed Okasha
Ahmed Okasha over 4 years ago

I'm designing  a low voltage BGR circuit and for the last 4 days i was getting non realistic results from cadence.
In the first 2 pics. I'm perorming a temperature DC sweep and i'm getting results that is not expected.

Fullscreen 1.txt Download
Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
Version 14.1.0.138 64bit -- 28 Sep 2014
Copyright (C) 1989-2014 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: cadence   Host: berkeley   HostID: 7F0100   PID: 25528
Memory  available: 7.3759 GB  physical: 10.1192 GB
CPU Type: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
          Processor PhysicalID CoreID Frequency Load
              0         0        0     2904.0     8.8
              1         2        0     2904.0     8.0


Simulating `input.scs' on berkeley at 4:55:31 PM, Sat Oct 3, 2020 (process id: 25528).
Current working directory: /home/cadence/simulation/BGR/spectre/schematic/netlist
Environment variable:
    SPECTRE_DEFAULTS=-E
Command line:
    /usr/local/cadence/MMSIM141/tools/bin/spectre -64 input.scs  \
        +escchars +log ../psf/spectre.out +inter=mpsc  \
        +mpssession=spectre1_21754_23 -format psfxl -raw ../psf  \
        +lqtimeout 900 -maxw 5 -maxn 5
spectre pid = 25528

Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libinfineon_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libphilips_o_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libphilips_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libsparam_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libstmodels_sh.so ...
Reading file:  /home/cadence/simulation/BGR/spectre/schematic/netlist/input.scs
Reading file:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/configs/spectre.cfg
Reading file:  /usr/include/stdc-predef.h
Reading file:  /home/cadence/tsmc65nm/models/spectre/crn65gplus_2d5_lk_v1d0.scs
Reading file:  /home/cadence/tsmc65nm/models/spectre/mosCAPrf_ahdl.va
Reading link:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading link:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading file:  /home/cadence/tsmc65nm/models/spectre/mosCap_ahdl.va
Time for NDB Parsing: CPU = 1.144 s, elapsed = 1.1556 s.
Time accumulated: CPU = 1.16 s, elapsed = 1.15561 s.
Peak resident memory used = 120 Mbytes.

Time for Elaboration: CPU = 296 ms, elapsed = 293.254 ms.
Time accumulated: CPU = 1.456 s, elapsed = 1.44908 s.
Peak resident memory used = 137 Mbytes.

Time for EDB Visiting: CPU = 96 ms, elapsed = 95.737 ms.
Time accumulated: CPU = 1.552 s, elapsed = 1.54502 s.
Peak resident memory used = 144 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 3641
                bjt 2     
              bsim4 10    
     bsource_572a4a 2424  
     bsource_e911f3 1212  
          capacitor 3030  
            vsource 1     

Analysis and control statement inventory:
                 dc 2     
               info 7     

Output statements:
             .probe 0     
           .measure 0     
               save 1     

Time for parsing: CPU = 32 ms, elapsed = 32.531 ms.
Time accumulated: CPU = 1.584 s, elapsed = 1.57775 s.
Peak resident memory used = 147 Mbytes.

~~~~~~~~~~~~~~~~~~~~~~
Pre-Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~
Entering remote command mode using MPSC service (spectre, ipi, v0.0, spectre1_21754_23, ).

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


******************
DC Analysis `dcOp'
******************
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 13 iterations.
Total time required for dc analysis `dcOp': CPU = 120 ms, elapsed = 119.421 ms.
Time accumulated: CPU = 1.708 s, elapsed = 1.76332 s.
Peak resident memory used = 151 Mbytes.

dcOpInfo: writing operating point information to rawfile.

*****************************************
DC Analysis `dc': temp = (-40 C -> 125 C)
*****************************************
Important parameter values:
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = -40 C
    tnom = 27 C
    tempeffects = all
    gmindc = 1 pS
    dc: temp = -33.4 C        (4 %), step = 3.3 C           (2 %)
    dc: temp = -30.1 C        (6 %), step = 3.3 C           (2 %)
    dc: temp = -26.8 C        (8 %), step = 3.3 C           (2 %)
    dc: temp = -23.5 C       (10 %), step = 3.3 C           (2 %)
    dc: temp = -20.2 C       (12 %), step = 3.3 C           (2 %)
    dc: temp = -16.9 C       (14 %), step = 3.3 C           (2 %)
    dc: temp = -13.6 C       (16 %), step = 3.3 C           (2 %)
    dc: temp = -10.3 C       (18 %), step = 3.3 C           (2 %)
    dc: temp = -7 C          (20 %), step = 3.3 C           (2 %)
    dc: temp = -3.7 C        (22 %), step = 3.3 C           (2 %)
    dc: temp = -400 mC       (24 %), step = 3.3 C           (2 %)
    dc: temp = 2.9 C         (26 %), step = 3.3 C           (2 %)
    dc: temp = 6.2 C         (28 %), step = 3.3 C           (2 %)
    dc: temp = 9.5 C         (30 %), step = 3.3 C           (2 %)
    dc: temp = 12.8 C        (32 %), step = 3.3 C           (2 %)
    dc: temp = 16.1 C        (34 %), step = 3.3 C           (2 %)
    dc: temp = 19.4 C        (36 %), step = 3.3 C           (2 %)
    dc: temp = 22.7 C        (38 %), step = 3.3 C           (2 %)
    dc: temp = 26 C          (40 %), step = 3.3 C           (2 %)
    dc: temp = 29.3 C        (42 %), step = 3.3 C           (2 %)
    dc: temp = 32.6 C        (44 %), step = 3.3 C           (2 %)
    dc: temp = 35.9 C        (46 %), step = 3.3 C           (2 %)
    dc: temp = 39.2 C        (48 %), step = 3.3 C           (2 %)
    dc: temp = 42.5 C        (50 %), step = 3.3 C           (2 %)
    dc: temp = 45.8 C        (52 %), step = 3.3 C           (2 %)
    dc: temp = 49.1 C        (54 %), step = 3.3 C           (2 %)
    dc: temp = 52.4 C        (56 %), step = 3.3 C           (2 %)
    dc: temp = 55.7 C        (58 %), step = 3.3 C           (2 %)
    dc: temp = 59 C          (60 %), step = 3.3 C           (2 %)
    dc: temp = 62.3 C        (62 %), step = 3.3 C           (2 %)
    dc: temp = 65.6 C        (64 %), step = 3.3 C           (2 %)
    dc: temp = 68.9 C        (66 %), step = 3.3 C           (2 %)
    dc: temp = 72.2 C        (68 %), step = 3.3 C           (2 %)
    dc: temp = 75.5 C        (70 %), step = 3.3 C           (2 %)
    dc: temp = 78.8 C        (72 %), step = 3.3 C           (2 %)
    dc: temp = 82.1 C        (74 %), step = 3.3 C           (2 %)
    dc: temp = 85.4 C        (76 %), step = 3.3 C           (2 %)
    dc: temp = 88.7 C        (78 %), step = 3.3 C           (2 %)
    dc: temp = 92 C          (80 %), step = 3.3 C           (2 %)
    dc: temp = 95.3 C        (82 %), step = 3.3 C           (2 %)
    dc: temp = 98.6 C        (84 %), step = 3.3 C           (2 %)
    dc: temp = 101.9 C       (86 %), step = 3.3 C           (2 %)
    dc: temp = 105.2 C       (88 %), step = 3.3 C           (2 %)
    dc: temp = 108.5 C       (90 %), step = 3.3 C           (2 %)
    dc: temp = 111.8 C       (92 %), step = 3.3 C           (2 %)
    dc: temp = 115.1 C       (94 %), step = 3.3 C           (2 %)
    dc: temp = 118.4 C       (96 %), step = 3.3 C           (2 %)
    dc: temp = 121.7 C       (98 %), step = 3.3 C           (2 %)
    dc: temp = 125 C        (100 %), step = 3.3 C           (2 %)
Total time required for dc analysis `dc': CPU = 12.488 s, elapsed = 12.5376 s.
Time accumulated: CPU = 14.468 s, elapsed = 14.5776 s.
Peak resident memory used = 153 Mbytes.

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.

But if i sweep the temperature backwards (125 to -40) i get the results i'm expecting.

Fullscreen 2.txt Download
Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
Version 14.1.0.138 64bit -- 28 Sep 2014
Copyright (C) 1989-2014 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: cadence   Host: berkeley   HostID: 7F0100   PID: 25630
Memory  available: 7.3686 GB  physical: 10.1192 GB
CPU Type: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
          Processor PhysicalID CoreID Frequency Load
              0         0        0     2904.0     8.8
              1         2        0     2904.0     8.0


Simulating `input.scs' on berkeley at 4:59:03 PM, Sat Oct 3, 2020 (process id: 25630).
Current working directory: /home/cadence/simulation/BGR/spectre/schematic/netlist
Environment variable:
    SPECTRE_DEFAULTS=-E
Command line:
    /usr/local/cadence/MMSIM141/tools/bin/spectre -64 input.scs  \
        +escchars +log ../psf/spectre.out +inter=mpsc  \
        +mpssession=spectre1_21754_24 -format psfxl -raw ../psf  \
        +lqtimeout 900 -maxw 5 -maxn 5
spectre pid = 25630

Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libinfineon_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libphilips_o_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libphilips_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libsparam_sh.so ...
Loading /usr/local/cadence/MMSIM141/tools.lnx86/cmi/lib/64bit/5.0/libstmodels_sh.so ...
Reading file:  /home/cadence/simulation/BGR/spectre/schematic/netlist/input.scs
Reading file:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/configs/spectre.cfg
Reading file:  /usr/include/stdc-predef.h
Reading file:  /home/cadence/tsmc65nm/models/spectre/crn65gplus_2d5_lk_v1d0.scs
Reading file:  /home/cadence/tsmc65nm/models/spectre/mosCAPrf_ahdl.va
Reading link:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading link:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /usr/local/cadence/MMSIM141/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading file:  /home/cadence/tsmc65nm/models/spectre/mosCap_ahdl.va
Time for NDB Parsing: CPU = 1.168 s, elapsed = 1.17971 s.
Time accumulated: CPU = 1.184 s, elapsed = 1.17972 s.
Peak resident memory used = 121 Mbytes.

Time for Elaboration: CPU = 276 ms, elapsed = 277.906 ms.
Time accumulated: CPU = 1.464 s, elapsed = 1.45781 s.
Peak resident memory used = 137 Mbytes.

Time for EDB Visiting: CPU = 100 ms, elapsed = 101.166 ms.
Time accumulated: CPU = 1.564 s, elapsed = 1.55921 s.
Peak resident memory used = 144 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 3641
                bjt 2     
              bsim4 10    
     bsource_572a4a 2424  
     bsource_e911f3 1212  
          capacitor 3030  
            vsource 1     

Analysis and control statement inventory:
                 dc 2     
               info 7     

Output statements:
             .probe 0     
           .measure 0     
               save 1     

Time for parsing: CPU = 36 ms, elapsed = 41.8222 ms.
Time accumulated: CPU = 1.6 s, elapsed = 1.60144 s.
Peak resident memory used = 147 Mbytes.

~~~~~~~~~~~~~~~~~~~~~~
Pre-Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~
Entering remote command mode using MPSC service (spectre, ipi, v0.0, spectre1_21754_24, ).

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


******************
DC Analysis `dcOp'
******************
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 13 iterations.
Total time required for dc analysis `dcOp': CPU = 112 ms, elapsed = 111.633 ms.
Time accumulated: CPU = 1.712 s, elapsed = 1.76409 s.
Peak resident memory used = 151 Mbytes.

dcOpInfo: writing operating point information to rawfile.

*****************************************
DC Analysis `dc': temp = (125 C -> -40 C)
*****************************************
Important parameter values:
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 125 C
    tnom = 27 C
    tempeffects = all
    gmindc = 1 pS
    dc: temp = 118.4 C        (4 %), step = -3.3 C          (2 %)
    dc: temp = 115.1 C        (6 %), step = -3.3 C          (2 %)
    dc: temp = 111.8 C        (8 %), step = -3.3 C          (2 %)
    dc: temp = 108.5 C       (10 %), step = -3.3 C          (2 %)
    dc: temp = 105.2 C       (12 %), step = -3.3 C          (2 %)
    dc: temp = 101.9 C       (14 %), step = -3.3 C          (2 %)
    dc: temp = 98.6 C        (16 %), step = -3.3 C          (2 %)
    dc: temp = 95.3 C        (18 %), step = -3.3 C          (2 %)
    dc: temp = 92 C          (20 %), step = -3.3 C          (2 %)
    dc: temp = 88.7 C        (22 %), step = -3.3 C          (2 %)
    dc: temp = 85.4 C        (24 %), step = -3.3 C          (2 %)
    dc: temp = 82.1 C        (26 %), step = -3.3 C          (2 %)
    dc: temp = 78.8 C        (28 %), step = -3.3 C          (2 %)
    dc: temp = 75.5 C        (30 %), step = -3.3 C          (2 %)
    dc: temp = 72.2 C        (32 %), step = -3.3 C          (2 %)
    dc: temp = 68.9 C        (34 %), step = -3.3 C          (2 %)
    dc: temp = 65.6 C        (36 %), step = -3.3 C          (2 %)
    dc: temp = 62.3 C        (38 %), step = -3.3 C          (2 %)
    dc: temp = 59 C          (40 %), step = -3.3 C          (2 %)
    dc: temp = 55.7 C        (42 %), step = -3.3 C          (2 %)
    dc: temp = 52.4 C        (44 %), step = -3.3 C          (2 %)
    dc: temp = 49.1 C        (46 %), step = -3.3 C          (2 %)
    dc: temp = 45.8 C        (48 %), step = -3.3 C          (2 %)
    dc: temp = 42.5 C        (50 %), step = -3.3 C          (2 %)
    dc: temp = 39.2 C        (52 %), step = -3.3 C          (2 %)
    dc: temp = 35.9 C        (54 %), step = -3.3 C          (2 %)
    dc: temp = 32.6 C        (56 %), step = -3.3 C          (2 %)
    dc: temp = 29.3 C        (58 %), step = -3.3 C          (2 %)
    dc: temp = 26 C          (60 %), step = -3.3 C          (2 %)
    dc: temp = 22.7 C        (62 %), step = -3.3 C          (2 %)
    dc: temp = 19.4 C        (64 %), step = -3.3 C          (2 %)
    dc: temp = 16.1 C        (66 %), step = -3.3 C          (2 %)
    dc: temp = 12.8 C        (68 %), step = -3.3 C          (2 %)
    dc: temp = 9.5 C         (70 %), step = -3.3 C          (2 %)
    dc: temp = 6.2 C         (72 %), step = -3.3 C          (2 %)
    dc: temp = 2.9 C         (74 %), step = -3.3 C          (2 %)
    dc: temp = -400 mC       (76 %), step = -3.3 C          (2 %)
    dc: temp = -3.7 C        (78 %), step = -3.3 C          (2 %)
    dc: temp = -7 C          (80 %), step = -3.3 C          (2 %)
    dc: temp = -10.3 C       (82 %), step = -3.3 C          (2 %)
    dc: temp = -13.6 C       (84 %), step = -3.3 C          (2 %)
    dc: temp = -16.9 C       (86 %), step = -3.3 C          (2 %)
    dc: temp = -20.2 C       (88 %), step = -3.3 C          (2 %)
    dc: temp = -23.5 C       (90 %), step = -3.3 C          (2 %)
    dc: temp = -26.8 C       (92 %), step = -3.3 C          (2 %)
    dc: temp = -30.1 C       (94 %), step = -3.3 C          (2 %)
    dc: temp = -33.4 C       (96 %), step = -3.3 C          (2 %)
    dc: temp = -36.7 C       (98 %), step = -3.3 C          (2 %)
    dc: temp = -40 C        (100 %), step = -3.3 C          (2 %)
Total time required for dc analysis `dc': CPU = 12.34 s, elapsed = 12.4091 s.
Time accumulated: CPU = 14.316 s, elapsed = 14.4389 s.
Peak resident memory used = 153 Mbytes.

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.

I can live with that problem. But there's a bigger one. The DCop that cadence give me when i ran at a specific temperature is from the wrong graphs. And I need to run AC and Transient analysis at the nominal 27 temperature.

  • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear Ahmed,

    In looking over your question and very helpful log files and plots, a thought came to mind immediately that I wanted to verify with you. As I am sure you know, bandgap circuits do not always start up in the desired state. In essence, the data can be one that produces a near 0 output and a state that produces the desired output. I am not sure if you are plotting the actual bandgap outputs or any of its internal nodes. Have you verified in those cases were your result does not fall within your expectations that the DC operating point of the bandgap is at its non-zero state? In essence, is your startup circuit working properly over all temperatures and starting the bandgap reference to its non-zero state? Sometimes the start-up circuit will only show issues over a specific temperature range.

    I also compared the temperatures at which your forward and reverse simulations were performed (to within the accuracy of the log file temperatures) and found a couple of differences - which may be a clue as to the range where a start-up circuit is not consistently working as desired.

    This may be obvious to you (please excuse my comment if it is!), but I thought I would at least mention it based on my experiences simulating this type of circuit.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ahmed Okasha
    Ahmed Okasha over 4 years ago in reply to ShawnLogan

    Dear Shawn, 
    Thanks for your reply. At the first I should mention that I'm a 2nd year student and don't know cadence that much. My circuit has it's working startup circuit that I verified using DC sweeps and ramping in transient analysis. I didn't really understand what you mean in your note about log temperature .

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ahmed Okasha
    Ahmed Okasha over 4 years ago in reply to ShawnLogan

    And the outputs in the plots are the output voltage and the current in the output branch and the current produced fom the bandgap core.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Ahmed Okasha

    Dear Ahmed,

    Ahmed Okasha said:
    My circuit has it's working startup circuit that I verified using DC sweeps and ramping in transient analysis. I didn't really understand what you mean in your note about log temperature .

    Thank you for verifying your start-up circuit is working correctly, Ahmed! What I meant was that if you compare the temperatures of your simulation where temperature is increasing with those where the temperature is decreasing, some temperatures only appear in one sweep. For example, 36.7 degrees is only simulated in one case. My thought that the reason the simulation results differed was that at the simulation were the temperature only occurred in one direction, the bandgap may not have started at that specific temperature.

    A few thoughts to possibly help...

    1. Are you including an initial condition statements? If so, this will potentially produce undesirable results. I would recommend you remove those statements. You can verify there are none by examine your netlist (input.scs file in the /netlist directory) and search for lines starting ic). If you are not comfortable locating the command, you might post the input.scs file.

    2. You might consider-doing your two simulations except change the sweep setting from "Automatic" to "Linear" and then choose a step size of, for example, 5 degrees for the positive going simulation and -5 degrees for the negative going simulation. This will force the simulations to use exactly the same temperature on both runs. In this case, I would absolutely expect the same simulation results for both the positive and negative temperature directions.

    3. If you still see conflicting results, change your temperature sweep to a smaller temperature interval centered about the temperature where your results are different to determine of the difference is at just one temperature.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ShawnLogan

    I agree with Shawn - the symptoms you are seeing are almost certainly (I'd be very surprised if there was any other reason) that the circuit has multiple stable operating points, which which you get depends a little on the starting point. I tend to use the analogy of a ball at the peak of a mountain - depending on very small differences it could roll into one of two valleys - both answers are correct, but one may be more desirable than others. Just because one is more desirable doesn't mean that the other doesn't exist...

    Unfortunately it's to simulate circuits with multiple stable operating points; you can use node sets to encourage it to start nearer to one solution than the other. Even this is not guaranteed to find one solution over the other though. I'm sure both results at high temperature are "correct". I think that if you did the sweep from low to high temperature, and used the writefinal option to write to a file, and then simulated just at high temperature (changed the default temperature from Setup->Temperature to 125) and used readns on the DC analysis to read the file produced by writefinal, you'd get that result. 

    To answer your earlier question, if you do a sweep and enable the dc operating point output, the dc operating point output is saved at the nominal conditions, not the first (or last) point in whatever sweep you're doing. So the dcOp would be done at the temperature set under Setup->Temperature.

    Regards,

    Andrew. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ahmed Okasha
    Ahmed Okasha over 4 years ago in reply to ShawnLogan

    1- I don't include initial conditions or netsets

    2- Didn't give me the same results

    3- Didn't give me the same results

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ahmed Okasha
    Ahmed Okasha over 4 years ago in reply to Andrew Beckett

    I need to run corners and the negative corner is ruined because of that.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ahmed Okasha
    Ahmed Okasha over 4 years ago in reply to ShawnLogan

    The results doesn't improve untill I increase the supply voltage to about 1.21V. but if I use my nominal value or my lowest corner it gives me the results in the main thread.

    My supply spec: 0.99-1.1-1.21 V

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Ahmed Okasha

    Dear Ahmed,

    Thank you for considering and trying the suggestions! However, I must agree with Andrew. that I honestly believe your bandgap has multiple stable states and your multiple DC solutions at the same temperature are totally consistent with this hypothesis. The presence of multiple operating points in a bandgap is quite common - which also makes me suspect that is the issue.

    Please keep in mind that, in addition to the need for a robust start-up circuit, you must also verify any feedback loop in your bandgap is stable. The presence of an unstable feedbacl loop could also result in multiple operating states. I believe you mentioned you ran some transient analyses. Verify that they were run long enough so that they might show any instabilities near the loop bandwidth.

    Without studying your circuit details, I cannot be specific about where the issue might lie to further validate my hypothesis - sorry!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to Ahmed Okasha

    All of this indicates a problem with the design, not the simulation setup or the simulator. You need to investigate why your circuit has this other (undesirable) stable operating point which maybe only occurs at low supply voltage. 

    • 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