Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

about a spectre simulations ( no convergence )!!!

Status
Not open for further replies.

mylihua

Junior Member level 2
Joined
Aug 23, 2004
Messages
20
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
292
homotopy spectre

Command line:
/eda/cadence/IC5141/tools.lnx86/spectre/bin/32bit/spectre -env \
artist5.1.0 +escchars +log ../psf/spectre.out +inter=mpsc \
+mpssession=spectre0_3242_21 -format sst2 -raw ../psf \
+lqtimeout 900 input.scs
spectre pid = 4524

Loading /eda/cadence/IC5141/tools.lnx86/cmi/lib/4.0/libinfineon_sh.so ...
Loading /eda/cadence/IC5141/tools.lnx86/cmi/lib/4.0/libnortel_sh.so ...
Loading /eda/cadence/IC5141/tools.lnx86/cmi/lib/4.0/libphilips_sh.so ...
Loading /eda/cadence/IC5141/tools.lnx86/cmi/lib/4.0/libsparam_sh.so ...
Loading /eda/cadence/IC5141/tools.lnx86/cmi/lib/4.0/libstmodels_sh.so ...
spectre (ver. 5.10.41_USR3.102405 -- 24 Oct 2005).
Includes RSA BSAFE(R) Cryptographic or Security Protocol Software from RSA
Security, Inc.

Simulating `input.scs' on lzh.localdomain at 11:03:39 PM, Sat Sep 29, 2007.
Opening directory /home/std/model/aaa.scs/controlelem.va.ahdlcmi/ (770)
Installed compiled interface for vcvsmodel.
Installed compiled interface for vcvs5model.
Installed compiled interface for vcvsmodelsysn.
Installed compiled interface for vcvsmodelsysp.
Installed compiled interface for p2vcvsmodel.
Installed compiled interface for p2vcrmodel.
Installed compiled interface for vcrmodel.
Installed compiled interface for rgdsmodel.
Installed compiled interface for ldmosvcrmodel.
Installed compiled interface for csmcmphatvccs.
Installed compiled interface for csmcmphatpccvs.

Warning from spectre during circuit read-in.
Q24: `area' is not a valid parameter for an instance of `npn10ba'.
Ignored.
Q0: `area' is not a valid parameter for an instance of `npn10ba'.
Ignored.
Warning from spectre in `npna', during circuit read-in.
Q9: `area' is not a valid parameter for an instance of `npn10ba'.
Ignored.
Q3: `area' is not a valid parameter for an instance of `npn10ba'.
Ignored.
Further occurrences of this warning will be suppressed.
Q10: `area' is not a valid parameter for an instance of `npn10ba'.
Ignored.
Further occurrences of this warning will be suppressed.


Circuit inventory:
nodes 121
equations 280
ahdl simulator 1
bjt 24
bsim3v3 22
capacitor 1
p2vcrmodel 5
pcccs 15
quantity 9
resistor 27
rgdsmodel 10
vcrmodel 25
vcvs5model 3
vcvsmodel 15
vcvsmodelsysn 3
vcvsmodelsysp 2
vsource 24


Warning from spectre.
8 warnings suppressed.

Entering remote command mode using MPSC service (spectre, ipi, v0.0,
c0_3242_21, ).

**********************************************
Transient Analysis `tran': time = (0 s -> 3 s)
**********************************************
Trying `homotopy = gmin' for initial conditions.
Trying `homotopy = source' for initial conditions.
Trying `homotopy = dptran' for initial conditions.
Trying `homotopy = ptran' for initial conditions.
Trying `homotopy = arclength' for initial conditions.

Error found by spectre during IC analysis, during transient analysis `tran'.
No DC solution found (no convergence).

The values for those nodes that did not converge on the last Newton iteration
are given below. Also given is the manner in which the convergence
criteria were not satisfied in the following form:
Failed test: | Value | > RelTol*Ref + AbsTol

V(net178) = 715.7 uV
update too large: | 67.5286 uV | > 3.5785 uV + 1 uV
V(net182) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(ZH7) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(ZH12) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M15.n1) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M15.n11) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M16.n1) = 715.7 uV
update too large: | 67.5286 uV | > 3.5785 uV + 1 uV
V(M16.n2) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M16.n101) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M16.n102) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M17.n2) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M17.n101) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M17.n102) = 651.273 uV
update too large: | 18.3352 uV | > 3.25636 uV + 1 uV
V(M18.n2) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M18.n101) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M18.n102) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M18.n112) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M19.n1) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(M19.n11) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(M20.n1) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M20.n2) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(M20.n101) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(M20.n102) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(M20.n112) = 457.835 uV
update too large: | 149.607 uV | > 2.28918 uV + 1 uV
V(M21.n1) = 715.7 uV
update too large: | 67.5286 uV | > 3.5785 uV + 1 uV
V(M21.n2) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M21.n101) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M21.n102) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV
V(M21.n112) = 829.701 uV
update too large: | 154.578 uV | > 4.14851 uV + 1 uV

The following set of suggestions may help you avoid these convergence
difficulties. Once you have a solution, write it to a nodeset file
using the `write' parameter, and read it back in on subsequent
simulations using the `readns' parameter.

1. Carefully evaluate and resolve any notice, warning or error messages.
2. Perform sanity checking on the parameter values using the parameter range
checker (use ``+param param-limits-file'' as a command line argument)
and heed any warnings. Print the minimum and maximum parameter value
using the `info' analysis. Assure that the bounds given for instance,
model, output, temperature-dependent, and operating-point (if possible)
parameters are reasonable.

3. Check the direction of both independent and dependent current sources.
Convergence problems can result if current sources are connected such
that they force current backward through diodes.

4. Enable diagnostic messages by setting option `diagnose=yes'.
5. Small floating resistors connected to high impedance nodes can cause
convergence difficulties. Avoid very small floating resistors,
particularly small parasitic resistors in semiconductors. Use voltage
sources or iprobes to measure current rather than small resistors.
6. If you have an estimate of what the solution should be, use nodeset
statements or a nodeset file and set as many nodes as possible.
7. Use realistic device models. Check all component parameters, particularly
nonlinear device model parameters, to assure that they are reasonable.
8. If simulating a bipolar analog circuit, assure the region parameter on all
transistors and diodes is set correctly.
9. Loosen tolerances, particularly absolute tolerances like `iabstol' (on
options statement). If tolerances are set too tight, they might
preclude convergence.
10. Increase the value of gmin (on options statement).
11. Use numeric pivoting in the sparse matrix factorization by setting
`pivotdc=yes' (on options statement). Sometimes it is also necessary
to increase the pivot threshold to somewhere in the range of 0.1 to 0.5
using `pivrel' (on options statement).
12. Try to simplify the nonlinear component models in order to avoid regions
in the model that may contribute to convergence problems.
13. Divide the circuit into smaller pieces and simulate them individually, but
be careful to assure that the results will be close to what they would
be if the rest of the circuit was present. Use the results to generate
nodesets for the whole circuit.
14. If all else fails, replace the DC analysis with a transient analysis and
modify all the independent sources to start at zero and ramp to their
DC values. Run the transient analysis well beyond the time when all
the sources have reached their final value (remember that transient
analysis is very cheap when all of the signals in the circuit are not
changing) and write the final point to a nodeset file. To make the
transient analysis more efficient set the integration method to
backward Euler (`method=euler') and loosen the local truncation error
criteria by increasing `lteratio', say to 50. Occasionally, this
approach will fail or be very slow because the circuit contains an
oscillator. Often times the oscillation can be eliminated for the sake
of finding the dc solution by setting the minimum capacitance from each
node to ground (`cmin') to a large value.

Analysis `tran' terminated prematurely due to error.
finalTimeOP: writing operating point information to rawfile.
Zero diagonal found in Jacobian at `M22.gdnoiseless:p_n_flow' and `ZH6'.
Reordering Jacobian.
Zero diagonal found in Jacobian at `M0.n1' and `M22.n1'.
Reordering Jacobian.
Trying `homotopy = gmin'.
Zero diagonal found in Jacobian at `M0.n1' and `net178'.
Reordering Jacobian.

******************
DC Analysis `dcOp'
******************
Important parameter values:
reltol = 1e-03
abstol(I) = 1 pA
abstol(V) = 1 uV
temp = 27 C
tnom = 27 C
tempeffects = all
gmin = 1 pS
maxrsd = 0 Ohm
mos_method = s
mos_vres = 50 mV
Convergence achieved in 2 iterations.
Total time required for dc analysis `dcOp' was 0 s.

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.

thanks.
 

spectre convergence update too large: |

tran analysis choose conservation.
 

no convergence in operating point

Make sure you set the delay on all of your pulses and sine wave inputs. If you don't do this sometimes you won't get convergence on complex circuits.
 
  • Like
Reactions: egni

    egni

    Points: 2
    Helpful Answer Positive Rating
spectre convergence

check models
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top