Ken Kundert
|
Here is the problem. Spectre uses a nodal formulation, where we add together the admittance of each component at a node. The admittance of the large capacitors is jwC, or at 10GHz with c=1e19 the admittance is Y=j1e29. When you add such a large number to a small number on a computer with finite precision, the small number will be lost. Such a large admittance would completely swamp out any other admittance connected to the same node.
You can avoid this problem by replacing the large capacitors with the an instance of the following subckt.
subckt bigcap (p n) parameters c T1 (p n a 0) transformer n1=1 n2=1 C1 (a 0) capacitor c=c ends
In this case, we separate the large capacitors from the other components and give them their own nodes. Then we count on the pivoting algorithms in the sparse matrix package to keep the errors under control.
Ken
|