Computer-Aided Circuit Simulation and Verification CSE245 – Fall 2004 Professor:Chung-Kuan Cheng Administration • Lectures: 5:00pm ~ 6:20pm TTH HSS 2152 • Office Hours: 4:00pm ~ 4:45pm TTH APM 4256 • Textbook Electronic Circuit and System Simulation Methods T.L. Pillage, R.A. Rohrer, C. Visweswariah, McGrawHill • TA: Zhengyong (Simon) Zhu (zzhu@cs.ucsd.edu) Circuit Simulation Input and setup Circuit Simulator: Solve dx/dt=f(x) numerically Output Types of analysis: – – – – DC Analysis DC Transfer curves Transient Analysis AC Analysis, Noise, Distortion, Sensitivity Program Structure (a closer look) Models Input and setup Numerical Techniques: –Formulation of circuit equations –Solution of ordinary differential equations –Solution of nonlinear equations –Solution of linear equations Output CSE245: Course Outline • Formulation – – – – RLC Linear, Nonlinear Components,Transistors, Diodes Incident Matrix Nodal Analysis, Modified Nodal Analysis K Matrix • Dynamic Linear System – – – – S domain analysis, Impulse Response Taylor’s expansion Moments, Passivity, Stability, Realizability Symbolic analysis, Y-Delta, BDD analysis • Matrix Solver – LU, KLU, reordering – Mutigrid, PCG, GMRES CSE245: Course Outline (Cont’) • Integration – – – – – – Forward Euler, Backward Euler, Trapezoidal Rule Explicit and Implicit Method, Prediction and Correction Equivalent Circuit Errors: Local error, Local Truncation Error, Global Error A-Stable Alternating Direction Implicit Method • Nonlinear System – Newton Raphson, Line Search • Transmission Line, S-Parameter – FDTD: equivalent circuit, convolution – Frequency dependent components • Sensitivity • Mechanical, Thermal, Bio Analysis Lecture 1: Formulation • KCL/KVL • Sparse Tableau Analysis • Nodal Analysis, Modified Nodal Analysis *some slides borrowed from Berkeley EE219 Course Formulation of Circuit Equations • Unknowns – B branch currents (i) – N node voltages (e) – B branch voltages (v) • Equations – N+B Conservation Laws – B Constitutive Equations Branch Constitutive Equations (BCE) Ideal elements Element Resistor Capacitor Inductor Voltage Source Current Source VCVS VCCS CCVS CCCS Branch Eqn v = R·i i = C·dv/dt v = L·di/dt v = vs, i = ? i = is, v = ? vs = AV · vc, i = ? is = GT · vc, v = ? vs = RT · ic, i = ? is = AI · ic, v = ? Conservation Laws • Determined by the topology of the circuit • Kirchhoff’s Voltage Law (KVL): Every circuit node has a unique voltage with respect to the reference node. The voltage across a branch eb is equal to the difference between the positive and negative referenced voltages of the nodes on which it is incident – No voltage source loop • Kirchhoff’s Current Law (KCL): The algebraic sum of all the currents flowing out of (or into) any circuit node is zero. – No Current Source Cut Equation Formulation - KCL R3 1 R1 2 Is5 R4 G2v3 0 i1 i 2 1 1 1 0 0 0 0 0 − 1 1 − 1 i3 = 0 i4 i5 Ai=0 N equations Kirchhoff’s Current Law (KCL) Equation Formulation - KVL R3 1 R1 2 Is5 R4 G2v3 0 v1 1 0 0 v 1 0 0 2 e v3 − 1 − 1 1 = 0 e2 v4 0 1 0 v5 0 − 1 0 v - AT e = 0 B equations Kirchhoff’s Voltage Law (KVL) Equation Formulation - BCE R3 1 R1 2 R4 G2v3 Is5 0 1 − R 1 0 0 0 0 0 0 0 0 − G2 1 0 − R3 0 0 0 0 0 0 − 1 R4 0 0 v i 0 1 1 0 v i2 0 2 0 v3 + i3 = 0 v4 i4 0 0 v i i 5 5 s5 0 Kvv + i = is B equations Equation Formulation Node-Branch Incidence Matrix branches n o 1 d 2 e s i 1 2 3 j (+1, -1, 0) N { Aij = +1 if node i is terminal + of branch j -1 if node i is terminal - of branch j 0 if node i is not connected to branch j B Equation Assembly (Stamping Procedures) • Different ways of combining Conservation Laws and Constitutive Equations – Sparse Table Analysis (STA) – Modified Nodal Analysis (MNA) Sparse Tableau Analysis (STA) 1. Write KCL: 2. Write KVL: 3. Write BCE: A 0 K i 0 I Kv Sparse Tableau Ai=0 v -ATe=0 Kii + Kvv=S 0 i 0 − AT v = 0 0 e S (N eqns) (B eqns) (B eqns) N+2B eqns N+2B unknowns N = # nodes B = # branches Sparse Tableau Analysis (STA) Advantages • It can be applied to any circuit • Eqns can be assembled directly from input data • Coefficient Matrix is very sparse Problem Sophisticated programming techniques and data structures are required for time and memory efficiency Nodal Analysis (NA) 1. Write KCL A·i=0 (N eqns, B unknowns) 2. Use BCE to relate branch currents to branch voltages i=f(v) (B unknowns → B unknowns) 3. Use KVL to relate branch voltages to node voltages 4. v=h(e) (B unknowns → N unknowns) Yne=ins Nodal Matrix N eqns N unknowns N = # nodes Nodal Analysis - Example R3 1 R1 2 R4 G2v3 Is5 0 1. KCL: 2. BCE: 3. KVL: Ai=0 Kvv + i = is → i = is - Kvv ⇒ A Kvv = A is v = ATe ⇒ A KvATe = A is 1 1 R + G2 + R 3 1 1 − R3 1 − G2 − R3 e1 0 = 1 1 e2 is 5 + R3 R4 Yne = ins Nodal Analysis • Example shows NA may be derived from STA • Better: Yn may be obtained by direct inspection (stamping procedure) – Each element has an associated stamp – Yn is the composition of all the elements’ stamps Nodal Analysis – Resistor “Stamp” Spice input format: Rk N+ Rk N- N+ i 1 N+ R k − 1 N- R k N+ NN- 1 − Rk 1 Rk Rkvalue What if a resistor is connected to ground? …. Only contributes to the diagonal 1 ∑ iothers + R (eN + − eN − ) = ∑ is k KCL at node N+ 1 ∑ iothers − R (eN + − eN − ) = ∑ is k KCL at node N- Nodal Analysis – VCCS “Stamp” Spice input format: Gk NC+ NC- ∑i ∑i others others Gkvalue N+ + vc N+ N- NC+ NC- NC+ N+ G k − G k N- Gkvc - + Gk (eNC + − eNC − ) = ∑ is − Gk (eNC + − eNC − ) = ∑ is NKCL at node N+ KCL at node N- NC- − Gk Gk Nodal Analysis – Current source “Stamp” Spice input format: Ik N+ N- Ikvalue N+ N+ NN+ Ik N- N- − I k = I k Nodal Analysis (NA) Advantages • Yn is often diagonally dominant and symmetric • Eqns can be assembled directly from input data • Yn has non-zero diagonal entries • Yn is sparse (not as sparse as STA) and smaller than STA: NxN compared to (N+2B)x(N+2B) Limitations • Conserved quantity must be a function of node variable – Cannot handle floating voltage sources, VCVS, CCCS, CCVS Modified Nodal Analysis (MNA) How do we deal with independent voltage sources? + Ekl k - l ikl k l 1 −1 1 ek = − 1 el 0 ikl Ekl • ikl cannot be explicitly expressed in terms of node voltages ⇒ it has to be added as unknown (new column) • ek and el are not independent variables anymore ⇒ a constraint has to be added (new row) MNA – Voltage Source “Stamp” Spice input format: Vk + Ek N+ - Nik N+ N- Ekvalue N+ N- ik N+ 0 0 1 N- 0 0 -1 Branch k 1 -1 0 RHS 0 0 Ek Modified Nodal Analysis (MNA) How do we deal with independent voltage sources? Augmented nodal matrix Yn C B e = MS 0 i Some branch currents In general: Yn C B e = MS D i MNA – General rules • A branch current is always introduced as and additional variable for a voltage source or an inductor • For current sources, resistors, conductors and capacitors, the branch current is introduced only if: – Any circuit element depends on that branch current – That branch current is requested as output MNA – CCCS and CCVS “Stamp” MNA – An example 1 R1 + v3 R3 2 R4 G2v3 0 Step 1: Write KCL i1 + i2 + i3 = 0 -i3 + i4 - i5 - i6 = 0 i6 + i8 = 0 i7 – i8 = 0 - Is5 - ES6 3 + + E7v3 R8 4 (1) (2) (3) (4) MNA – An example Step 2: Use branch equations to eliminate as many branch currents as possible 1/R1·v1 + G2 ·v3 + 1/R3·v3 = 0 (1) - 1/R3·v3 + 1/R4·v4 - i6 = is5 (2) i6 + 1/R8·v8 = 0 (3) i7 – 1/R8·v8 = 0 (4) Step 3: Write down unused branch equations v6 = ES6 v7 – E7·v3 = 0 (b6) (b7) MNA – An example Step 4: Use KVL to eliminate branch voltages from previous equations 1/R1·e1 + G2·(e1-e2) + 1/R3·(e1-e2) = 0 (1) - 1/R3·(e1-e2) + 1/R4·e2 - i6 = is5 (2) i6 + 1/R8·(e3-e4) = 0 (3) i7 – 1/R8·(e3-e4) = 0 (4) (e3-e2) = ES6 (b6) e4 – E7·(e1-e2) = 0 (b7) MNA – An example 1 1 + + G 2 R R3 1 1 − R3 0 0 0 E7 1 − G2 + R3 1 1 + R3 R4 0 0 0 0 −1 1 R8 1 − R8 1 1 − R8 1 R8 0 − E7 0 −1 0 0 0 0 e 0 1 − 1 0 e i 2 s 5 e 0 3 1 0 = e4 0 0 1 i6 ES 6 i7 0 0 0 0 0 Yn C B e = MS 0 i Modified Nodal Analysis (MNA) Advantages • MNA can be applied to any circuit • Eqns can be assembled directly from input data • MNA matrix is close to Yn Limitations • Sometimes we have zeros on the main diagonal