Lecture 1: Formulation. • KCL/KVL. • Sparse Tableau Analysis. • Nodal Analysis,
Modified Nodal Analysis. *some slides borrowed from Berkeley EE219 Course ...
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 (
[email protected])
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