PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NGSPICE Fehler doAnalyses: iteration limit reached



Markus_87
14.01.2011, 23:06
Hallo,

will mir ein 4 Bit R-String DA-Wandler in NGSPICE simulieren und hab mir dazu eine Netzliste geschrieben. Ich will eine Transientenanalyse durchführen, also Spannungsverlauf an verschiedenen Knoten über der Zeit. Wenn ich die Netzliste lade bekome ich keinen Fehler, also sollte sie ja in Ordnung sein - zumindest für Spice. Wenn ich die Simulation per RUN Befehl starte gibt er mir ein paar Berechnungen aus und dann kommt die Fehlermeldung: [highlight=red:e7a9b836aa]doAnalyses: iteration limit reached[/highlight:e7a9b836aa]

Also ich geh mal davon aus dass der Fehler nichts mit der eigendlichen Schaltung zu tun hat sondern das er generell ein Problem mit der Simulation hat ? Wobei ich dazu sagen muss das eine andere Schaltung auch mit dieser Analyseart prima funktioniert...

Hier mal die Netzliste und die Ausgabe von Spice:

Netzliste:



4 Bit R-String DA-Wandler

.incl mietec035_ngspice.txt

Vref 9 0 DC 1

VAo 1 0 PULSE(0 3 0 0.01n 0.01n 2.5ns 5ns)
VAon 5 0 PULSE(3 0 0 0.01n 0.01n 2.5ns 5ns)

VA1 2 0 PULSE(0 3 0 0.01n 0.01n 5ns 10ns)
VA1n 6 0 PULSE(3 0 0 0.01n 0.01n 5ns 10ns)

VA2 3 0 PULSE(0 3 0 0.01n 0.01n 10ns 20ns)
VA2n 7 0 PULSE(3 0 0 0.01n 0.01n 10ns 20ns)

VA3 4 0 PULSE(0 3 0 0.01n 0.01n 20ns 40ns)
VA3n 8 0 PULSE(3 0 0 0.01n 0.01n 20ns 40ns)

.subckt X 50 51 52
R1 50 51 7
M1 50 1 52 0 EN3 W=7u L=1u
M2 51 5 52 0 EN3 W=7u L=1u
.ends


X1 9 10 24 X
R2 10 11 7
X2 11 12 25 X
R3 12 13 7
X3 13 14 26 X
R4 14 15 7
X4 15 16 27 X
R5 16 17 7
X5 17 18 28 X
R6 18 19 7
X6 19 20 29 X
R7 20 21 7
X7 21 22 30 X
R8 22 23 7
X8 23 0 31 X

M3 24 2 32 0 EN3 W=7u L=1u
M4 25 6 32 0 EN3 W=7u L=1u
M5 26 2 33 0 EN3 W=7u L=1u
M6 27 6 33 0 EN3 W=7u L=1u
M7 28 2 34 0 EN3 W=7u L=1u
M8 29 6 34 0 EN3 W=7u L=1u
M9 30 2 35 0 EN3 W=7u L=1u
M10 31 6 35 0 EN3 W=7u L=1u

M11 32 3 36 0 EN3 W=7u L=1u
M12 33 7 36 0 EN3 W=7u L=1u
M13 34 3 37 0 EN3 W=7u L=1u
M14 35 7 37 0 EN3 W=7u L=1u

M15 36 4 38 0 EN3 W=7u L=1u
M16 37 8 38 0 EN3 W=7u L=1u

C1 38 0 100p
E1 39 0 38 0 1

.tran 1n 2000n


Hier die Ausgabe:


ngspice 3 -> run
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000

Warning: Pd = 0 is less than W.
Warning: Ps = 0 is less than W.
Warning: va3n: no DC value, transient time 0 value used
Warning: va3: no DC value, transient time 0 value used
Warning: va2n: no DC value, transient time 0 value used
Warning: va2: no DC value, transient time 0 value used
Warning: va1n: no DC value, transient time 0 value used
Warning: va1: no DC value, transient time 0 value used
Warning: vaon: no DC value, transient time 0 value used
Warning: vao: no DC value, transient time 0 value used
Warning: singular matrix: check nodes x1.1 and x1.1

Note: starting dynamic Gmin stepping
Trying gmin = 1.0000E-03 Note: One successful Gmin step
Trying gmin = 1.0000E-04 Note: One successful Gmin step
Trying gmin = 1.0000E-05 Note: One successful Gmin step
Trying gmin = 1.0000E-06 Note: One successful Gmin step
Trying gmin = 1.0000E-07 Note: One successful Gmin step
Trying gmin = 1.0000E-08 Note: One successful Gmin step
Trying gmin = 1.0000E-09 Note: One successful Gmin step
Trying gmin = 1.0000E-10 Note: One successful Gmin step
Trying gmin = 1.0000E-11 Note: One successful Gmin step
Trying gmin = 1.0000E-12 Note: One successful Gmin step
Trying gmin = 1.0000E-12 Note: One successful Gmin step
Warning: singular matrix: check nodes x1.1 and x1.1

Warning: Dynamic Gmin stepping failed
Note: starting source stepping
Supplies reduced to 0.0000% Warning: singular matrix: check nodes x1.1 and x1.1


Trying gmin = 1.0000E-02 Note: One successful Gmin step
Trying gmin = 1.0000E-03 Note: One successful Gmin step
Trying gmin = 1.0000E-04 Note: One successful Gmin step
Trying gmin = 1.0000E-05 Note: One successful Gmin step
Trying gmin = 1.0000E-06 Note: One successful Gmin step
Trying gmin = 1.0000E-07 Note: One successful Gmin step
Trying gmin = 1.0000E-08 Note: One successful Gmin step
Trying gmin = 1.0000E-09 Note: One successful Gmin step
Trying gmin = 1.0000E-10 Note: One successful Gmin step
Trying gmin = 1.0000E-11 Note: One successful Gmin step
Trying gmin = 1.0000E-12 Note: One successful Gmin step
Note: One successful source step
Supplies reduced to 0.1000% Warning: singular matrix: check nodes x1.1 and x1.1

Supplies reduced to 0.0000% Warning: singular matrix: check nodes x1.1 and x1.1

Warning: source stepping failed

Transient solution failed -

Last Node Voltages
------------------

Node Last Voltage Previous Iter
---- ------------ -------------
9 0 0
1 0 0
5 0 0
2 0 0
6 0 0
3 0 0
7 0 0
4 0 0
8 0 0
10 -1.93709e-81 0
x1.1 0 0
24 3.21909e-71 0
x1.5 0 0
11 -3.60424e-81 0
12 -5.00275e-81 0
x2.1 0 0
25 3.21084e-71 0
x2.5 0 0
13 -6.13262e-81 0
14 -6.98073e-81 0
x3.1 0 0
26 3.3326e-71 0
x3.5 0 0
15 -7.5471e-81 0
16 -7.83028e-81 0
x4.1 0 0
27 3.34174e-71 0
x4.5 0 0
17 -7.83028e-81 0
18 -7.5471e-81 0
x5.1 0 0
28 3.34174e-71 0
x5.5 0 0
19 -6.98073e-81 0
20 -6.13261e-81 0
x6.1 0 0
29 3.3326e-71 0
x6.5 0 0
21 -5.00274e-81 0
22 -3.60423e-81 0
x7.1 0 0
30 3.21084e-71 0
x7.5 0 0
23 -1.93708e-81 0
x8.1 0 0
31 3.21909e-71 0
x8.5 0 0
32 -8.52978e-71 0
33 -8.70274e-71 0
34 -8.70274e-71 0
35 -8.52978e-71 0
36 1.42939e-70 0
37 1.42939e-70 0
38 -1.54829e-70 0
39 -1.54829e-70 0
e1#branch 0 0
va3n#branch 0 0
va3#branch 0 0
va2n#branch 0 0
va2#branch 0 0
va1n#branch 0 0
va1#branch 0 0
vaon#branch 0 0
vao#branch 0 0
vref#branch -3.15289e-82 0


doAnalyses: iteration limit reached

run simulation(s) aborted
ngspice 4 ->

Währe cool wenn mir da jemand helfen könnte.

Gruß Markus

Namenlos
21.01.2011, 20:09
Um diesen Fehler zu beheben solltes du deine Schaltung einmal einhängen.
Diesen Fehler erhält man wenn LTSpice zu viel rumrechnet und nicht aus die Pötte kommt.

Beheben kann man diesen Fehler (oft) in dem man Widerstände einfügt damit der Simulator weiß was er tun soll.
z.B wenn man einen Operationsverstärker direkt mit Spannungsquellen
verbindet. Verlässt man dann den Gleichtakteingangsspannungsbreich
sollen angeblich mehrere 1000A durch einen OPV Eingang fließen.
#-o

StEndres
30.01.2011, 18:06
hat bei mir nie richtig funktioniert. Es kam immer mal wieder auch bei banalen Sachen zu Konvergenzfehlern und ähnliches, wo z.B. LTSpice nur drüber lacht. Also am besten Finger weg und Nerven schonen ;-)

holgerv
05.06.2011, 12:36
Markus,

etwas spät, aber:

Der Fehler hat mit Deiner Schaltung zu tun:
im Subcircuit X stehen die Knoten 1 und 5. Diese sind, wie alle Knoten eines Subcircuit, lokal. Das heißt, sie sind in Deiner Schaltung nicht verbunden.

Die Fehlermeldung
Warning: singular matrix: check nodes x1.1 and x1.1
weist darauf hin, dass ngspice ein Problem mit dem Knoten 1 in X1 hat.

Abhilfe kann schaffen, diese Knoten 1 und 5 global zu machen, d.h. sie in allen subcircuits unter den Namen 1 und 5 verfügbar zu machen. Dies geht, indem Du die Zeile
.global 1 5
zum Input-File hinzufügst.

Gruß

Holger