CSE245: Computer-Aided Circuit Simulation and Verification Spring 2006 Chung-Kuan Cheng

Download Report

Transcript CSE245: Computer-Aided Circuit Simulation and Verification Spring 2006 Chung-Kuan Cheng

CSE245: Computer-Aided Circuit
Simulation and Verification
Spring 2006
Chung-Kuan Cheng
Administration
•
•
•
•
CK Cheng, CSE 2130, tel. 534-6184, [email protected]
Lectures: 9:30am ~ 10:50am TTH U413A 2
Office Hours: 11:00am ~ 11:50am TTH CSE2130
Textbooks
Electronic Circuit and System Simulation Methods
T.L. Pillage, R.A. Rohrer, C. Visweswariah, McGraw-Hill
Interconnect Analysis and Synthesis
CK Cheng, J. Lillis, S. Lin, N. Chang, John Wiley & Sons
• TA: Vincent Peng ([email protected]), Rui Shi
([email protected])
Outlines
1. Formulation (2-3 lectures)
2. Linear System (3-4 lectures)
3. Matrix Solver (3-4 lectures)
4. Integration (3-4 lectures)
5. Non-linear System (2-3 lectures)
6. Transmission Lines, S Parameters (2-3 lectures)
7. Sensitivity
8. Mechanical, Thermal, Bio Analysis
Grading
• Homeworks and Projects: 60
• Project Presentation: 20%
• Final Report: 20%
Motivation
• Why
– Whole Circuit Analysis, Interconnect Dominance
• What
– Power, Clock, Interconnect Coupling
• Where
–
–
–
–
Matrix Solvers, Integration Methods
RLC Reduction, Transmission Lines, S Parameters
Parallel Processing
Thermal, Mechanical, Biological Analysis
Circuit Simulation
Input and setup
Circuit
Simulator:
Solve CdX/dt=f(X) numerically
Output
Types of analysis:
–
–
–
–
CdX(t)/dt=GX(t)+BU(t)
Y=DX(t)+FU(t)
DC Analysis
DC Transfer curves
Transient Analysis
AC Analysis, Noise, Distortions, 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
• 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
Branch Eqn
v = R·i
i = C·dv/dt
Inductor
Voltage Source
Current Source
VCVS
v = L·di/dt
v = vs, i = ?
i = i s, v = ?
vs = AV · vc, i = ?
VCCS
CCVS
CCCS
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   
v
0
1
 4 

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:
N+
Rk
N-
Rk
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:
NC+
i
i
others
others
N+ N- NC+ NC-
Gkvalue
N+
+
vc
NC-
Gk
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+ N-
N+ 
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
-
l
k
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
ES6
3
+
Is5
R8
-
+
0
4
E7v3
Step 1: Write KCL
i1 + i2 + i3 = 0
-i3 + i4 - i5 - i6 = 0
i6 + i8 = 0
i7 – i8 = 0
(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
(b7)
(b6)
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
 E7
0
0
0
1
R8
1
R8
0

1

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