Actually i crated a Memristor Model by using VerilogA code. Then i designed logic gates by using the same with different methodology and i got correct simulated output but when i combined all individual logic gates to make a simple 1 bit adder then i got convergence error. I did simulation for 40n sec but i am getting result upto 6-8 ns . Even i am not able to see input pulse. Please help me to short out this problem. Iam attaching my schematic and log file
Transient Analysis `tran': time = (0 s -> 40 ns)
Trying `homotopy = gmin' for initial conditions.
Trying `homotopy = source' for initial conditions.
Important parameter values:
start = 0 s
outputstart = 0 s
stop = 40 ns
step = 40 ps
maxstep = 800 ps
ic = all
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
Warning from spectre at time = 38.8734 ps during transient analysis `tran'.
WARNING (SPECTRE-16266): Error requirements were not satisfied because of convergence difficulties.
Warning from spectre at time = 46.4423 ps during transient analysis `tran'.
tran: time = 1.245 ns (3.11 %), step = 308.4 ps (771 m%)
tran: time = 3.06 ns (7.65 %), step = 93.55 ps (234 m%)
Warning from spectre at time = 3.10126 ns during transient analysis `tran'.
tran: time = 5.205 ns (13 %), step = 205.2 ps (513 m%)
Warning from spectre at time = 6.0115 ns during transient analysis `tran'.
Warning from spectre at time = 6.1008 ns during transient analysis `tran'.
Further occurrences of this warning will be suppressed.
tran: time = 7.109 ns (17.8 %), step = 204.3 ps (511 m%)
Error found by spectre at time = 8.03662 ns during transient analysis `tran'.
ERROR (SPECTRE-16192): No convergence achieved with the minimum time step specified. Last acceptable solution computed at 8.03662 ns.
The values for those nodes that did not converge on the last Newton iteration are given below. The manner in which the convergence criteria were not satisfied is also given.
Failed test: | Value | > RelTol*Ref + AbsTol
Top 10 Solution too large Convergence failure:
I(I9.R2:1) = 3.27345 uA, previously 3.28612 uA.
update too large: | -5.69514 uA | > 1.55317 uA + 1 pA
I(I9.I1:p_n_flow) = 3.27345 uA, previously 3.28612 uA.
I(I9.R1:1) = -6.63437 uA, previously -3.59126 uA.
update too large: | 5.63895 uA | > 1.55653 uA + 1 pA
I(I9.I0:p_n_flow) = -6.63437 uA, previously -3.59126 uA.
I(V3:p) = -508.065 uA, previously -508.099 uA.
update too large: | 5.69437 uA | > 2.05796 uA + 1 pA
Top 10 Residue too large Convergence failure:
residue too large: | 575.245 mV | > 5.45743 mV + 1 uV
The following set of suggestions might help you avoid convergence difficulties.
1. Evaluate and resolve any notice, warning, or error messages.
2. Use realistic device models. Check all component parameters, particularly nonlinear device model parameters, to ensure that they are reasonable.
3. Small floating resistors connected to high impedance nodes might cause convergence difficulties. Avoid very small floating resistors, particularly small parasitic resistors in semiconductors. Instead, use voltage sources or iprobes to measure current.
4. Ensure that a complete set of parasitic capacitors is used on nonlinear devices to avoid jumps in the solution waveforms. On MOS models, specify nonzero source and drain areas.
5. Perform sanity check 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. Ensure that the bounds given for instance, model, output, temperature-dependent, and operating-point (if possible) parameters are reasonable.
6. Check the direction of both independent and dependent current sources. Convergence problems might result if current sources are connected such that they force current backward through diodes.
7. Enable diagnostic messages by setting option `diagnose=yes'.
8. Use the `cmin' parameter to install a small capacitor from every node in the circuit to ground. This usually eliminates any jumps in the solution.
9. Loosen tolerances, particularly absolute tolerances like `iabstol' (on options statement). If tolerances are set too tight, they might preclude convergence.
10. Try to simplify the nonlinear component models in order to avoid regions in the model that might contribute to convergence problems.
Analysis `tran' was terminated prematurely due to an error.
finalTimeOP: writing operating point information to rawfile.
Trying `homotopy = gmin'.
Trying `homotopy = source'.
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.
Hi SameerFor convergence issues, I think it would be good if you can test if the problem still occurs using the latest version of MMSIM package. By the way, I think you had not provided any info on the version of spectre which you are using.terminal>spectre -WBest regardsQuek
Thanks for your response. Here i am udating complete log file detail in which all information available viz verion etc.. I got from googling they was telling about to change the value of Cmin but from where i will get this option..........Also some block told about to change integration methode to gear or euler but i am not getting thesse option. Shall i change value of RELTOL ABSTOL or other parameter..
Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
Version 10.1.0.204 32bit -- 14 Sep 2010
Copyright (C) 1989-2010 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.
Protected by U.S. Patents:
5,610,847; 5,790,436; 5,812,431; 5,859,785; 5,949,992; 5,987,238;
6,088,523; 6,101,323; 6,151,698; 6,181,754; 6,260,176; 6,278,964;
6,349,272; 6,374,390; 6,493,849; 6,504,885; 6,618,837; 6,636,839;
6,778,025; 6,832,358; 6,851,097; 6,928,626; 7,024,652; 7,035,782;
7,085,700; 7,143,021; 7,493,240; 7,571,401.
Includes RSA BSAFE(R) Cryptographic or Security Protocol Software from RSA Security, Inc.
User: root Host: cadence614 HostID: A0F02 PID: 14634
Memory available: 58.9127 MB physical: 820.8261 MB
CPU Type: Intel(R) Pentium(R) CPU P6100 @ 2.00GHz
Processor PhysicalID CoreID Frequency
Simulating `input.scs' on cadence614 at 11:40:37 PM, Sat Apr 19, 2014 (process id: 14634).
/Cadence/MMSIM10.1/tools.lnx86/spectre/bin/32bit/spectre input.scs \
+escchars +log ../psf/spectre.out +inter=mpsc \
+mpssession=spectre8_2568_46 -format sst2 -raw ../psf \
+lqtimeout 900 -maxw 5 -maxn 5
spectre pid = 14634
Loading /Cadence/MMSIM10.1/tools.lnx86/cmi/lib/5.0/libinfineon_sh.so ...
Loading /Cadence/MMSIM10.1/tools.lnx86/cmi/lib/5.0/libphilips_sh.so ...
Loading /Cadence/MMSIM10.1/tools.lnx86/cmi/lib/5.0/libsparam_sh.so ...
Loading /Cadence/MMSIM10.1/tools.lnx86/cmi/lib/5.0/libstmodels_sh.so ...
Time for NDB Parsing: CPU = 1.59876 s, elapsed = 2.67938 s.
Time accumulated: CPU = 1.59876 s, elapsed = 2.67938 s.
Peak resident memory used = 37 Mbytes.
Time for Elaboration: CPU = 369.944 ms, elapsed = 387.481 ms.
Time accumulated: CPU = 1.9687 s, elapsed = 3.07253 s.
Peak resident memory used = 57 Mbytes.
Time for EDB Visiting: CPU = 5.999 ms, elapsed = 7.19118 ms.
Time accumulated: CPU = 1.9747 s, elapsed = 3.08798 s.
Peak resident memory used = 57.3 Mbytes.
Notice from spectre during topology check.
Only one connection to the following 2 nodes:
Time for parsing: CPU = 14.998 ms, elapsed = 123.726 ms.
Time accumulated: CPU = 1.9897 s, elapsed = 3.21214 s.
Peak resident memory used = 58 Mbytes.
Entering remote command mode using MPSC service (spectre, ipi, v0.0, spectre8_2568_46, ).
Hi SameerYou are currently using spectre 10.1 which is already very out-dated. I think the current spectre 13.1 might resolve the convergence problem.Best regardsQuek
It's far more likely that the convergence issue is caused by your veriloga model or the connectivity of the circuit than it is by the version of the simulator you are using. I doubt changing to MMSIM 13.1 would solve this unless you got lucky. So please post your input.scs (so we can see the entire circuit) plus your memristor veriloga model.
Hii Quek & Andrew
Thanks for your responce. As per your guidline i simulate my libreries on updated version spectre13.1 and i got exactley what i want (Correct Output). But when i tried to resimulate then again same convergence error came in log window. I restarted my cadance 2-3 times then it worked again and later again same problem....Shall i change parameters what i discussed in privious post........