Computer-Aided Circuit Simulation and Verification

advertisement
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
Related documents
Download