topquark wrote on Feb 9th, 2007, 5:15am:Hspice doesn't obey KCL?! :o
This's news to me...having raised on a diet of spice in all flavors in school.
The claim is that Spectre *enforces* KCL, and (most?) other simulators don't. All of them obey KCL, but only to within tolerances.
The problem with Spice is that it checks the *change* in the currents rather than the actual currents. Spice doesn't actually compute the currents themselves; it computes the Spice Right-Hand-Side vector, which is a combination of the currents and the Jacobian matrix times the V-vector on the current iteration. That way, when you solve the matrix, you get the next V vector directly.
If you compute the currents as the RHS, then you are solving for "deltaV", the update that needs to be added to the current V-vector.
You might want to write out the equations -- do a Taylor expansion of F(V) = 0 where F(V) is the vector of "currents" (also includes v-source branch voltages and such). J = Jacobian of F. So, you have V(k) on the kth iteration, solve for V(k+1).
Anyway, there are some cases where V changes only slightly between iterations (so the VNTOL check passes) and "deltaI" only changes slightly (so the ABSTOL check passes), but I is not close enough to zero.