Signal Integrity: Back to Basics

Entries from April 2009

Newsletter and RSS Formats

April 23, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/7i2JD)

If you prefer, you can subscribe to this blog via an email newsletter piped through Google Feedburner. Please try it! You can unsubscribe at any time.

We also have an RSS feed.

For info on broader range of applications and products, you can also sign up for our Agilent EDA EEsof newsletter EDA Product and Application News.

Categories: RSS

Circuit Simulation – Part Two – How Various Components and Analyses Are Handled

April 20, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/mj40n)

In part one, we just covered DC analysis of conductances and current sources. What about other analyses and components?

It turns out that pure nodal analysis can’t handle voltages sources because they have infinite conductance. So the answer to puzzle event #3 is voltages sources. (Larry Nagel pointed out in a comment there that non-linear resistor is also a right answer if its current is not a well behaved function of its voltage. So give yourself credit that was your answer and you knew the bit about the current not being a well behaved function of its voltage. :-) )

Supernode in SPICE modified nodal analysis (MNA)

SPICE avoids the infinite conductance problem by modified nodal analysis (MNA). Nodes joined by infinite conductances are considered “super-nodes” whose constituent node voltages Vx and Vy move up and down in lock step. When SPICE creates a super-node the two individual KCL equations are eliminated and replaced by one KCL equation that sums all the currents into both nodes (into the blue dashed oval in the figure above) plus one internal constitutive equation, namely Vx = Vy + Vxy, where Vxy is the known value of the voltage source. Shorts and current sinks (i.e. the input ports of current controlled sources) can be treated similarly.

(MNA isn’t the only solution to the infinite conductance problem. For example Hachtel et al. proposed a sparse tableau method of where both branch currents and node voltages are considered unknown, both KCL and KVL equations are formulated. You then have to pick out a set of linearly independent equations.)

How about more than two terminals? It turns out that when the current source “stamped” its pattern-of-four into the conductance matrix, it was a special case of a more general four terminal “stamp.” The general case is the transconductance:

Transconductance in SPICE

The “pattern of four” is simply displaced off-diagonal in the conductance matrix.

Column a Column b Column x Column y
Row a +Gm −Gm
Row b −Gm +Gm
Row x
Row y

Non-linear (“transient”) analysis

For transient analysis, components are represented in differential or integral form. See the table below. SPICE performs numerical ordinary differential equation (ODE) solution.
Non-linear elements are solved by an iterative method (e.g. Newton-Raphson) at each time step. An initial guess at the node voltages is created (usually all zeros). The slope and intercept of the tangent to the actual I-V curve is used to calculate a linear approximation of the non-linear element. The linear approximation (a conductance and a current source) is inserted into the conductance matrix as a proxy for the real device. Solution of the linear proxy yields better guess at the voltage vector. A new set of conductance/current source proxies is calculated using tangents at the new voltages. This is repeated until — hopefully! — convergence is reached for that time step.

SPICE uses variable time steps. The initial voltage vector guess for each time step is the converged solution of the previous step. If the time step causes accuracy problems, SPICE backtracks by disregarding that calculation and taking a small step from the previous time point.

AC Analysis

For DC analysis, reactive elements — inductors and capacitors — are treated as shorts and opens, respectively. For AC analysis, complex admittance is used in place of real conductance. For example admittance of a capacitor and inductor are jωC and 1/jωL, respectively. Again see the table below.

Table of branch constitutive equations for various components and various analyses in SPICE

Branch constitutive equations for various components and various analyses in SPICE

Please give feedback on this article by leaving a comment below.

Categories: RSS

Eric Bogatin Webcast – S-Parameters, Signal Integrity and You

April 15, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/AyRD0)

Eric Bogatin is offering a webcast “S-Parameters, Signal Integrity and You” on May 6th at 10am PST, 1pm EST.

Abstract

If you deal with interconnects but are not familiar with S-parameters, you will be left behind. They have become the de facto standard for interconnect characterization and are becoming popular as behavioral models in simulations. In this 45-minute webinar, we will explore what they are, why they are so valuable, and how to use them for single-ended and differential interconnects in both the frequency domain and the time domain. Whether they come from a measurement or a simulation, they contain “everything you ever wanted to know about interconnects”. We will show you how to data mine this rich motherlode of information. FREE for paid subscribers, only $40 for non-subscribers. Be sure to sign up by May 4th for this popular webinar series!

More info: http://ping.fm/Lf0hU

Categories: RSS

Puzzle Event 3 – Nodal Circuit Simulator

April 14, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/Ge6a8)

In preparation for part two of our circuit simulator series, here is a quick puzzle for you. Click on your answer button and see an instant summary of the answers so far.

[poll id="27"]

Check back in few days for:
Everything you always wanted to know about SPICE*
*But were afraid to ask.

PS:

In case you missed them, the puzzles and solution for events 1 and 2 are here

  1. Puzzle Solution
  2. Puzzle Solution

Categories: RSS

Circuit Simulation – Part One – SPICE Turns Thirty-Six

April 8, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/bUz1t)

In his retrospective Life of SPICE, Larry Nagel the co-author of SPICE (an acronym for “Simulation Program with Integrated Circuit Emphasis”) noted:

SPICE was announced to the world … in Waterloo, Canada at the Sixteenth Midwest Symposium on Circuit Theory on April 12, 1973. The paper was presented by none other than Professor Donald O. Pederson of the University of California, Berkeley. I don’t think anyone had a clue of the impact of that paper or the computer program it described.

Well, impact it certainly had, so, in honor of the SPICE’s thirty-six “birthday” here is the first of several interactive posts about how SPICE works. Here in part one we start simply with one time step (i.e. DC) solution of circuit that consists of two unknown node voltages, V1, V2, a ground node V0, three known ohmic conductances, Gxy = 1/Rxy (where Ixy = Gxy (Vy – Vx) and x and y are the node indices), and three known current sources.

Circut simulator illustration

You can solve a circuit using either Kirchhoff’s current law or voltage law or both. These laws are named after a German physicist Gustav Robert Kirchhoff (1824-87). (The <emch in Kirchhoff is pronounced like the ch in the Scots word loch.) SPICE is a modified nodal solver and uses the current law: the sum of the currents into each node is zero. We’ll talk about what the ‘modified’ bit means in a future posting on ’super nodes.’ We’ll also postpone a discussion about when Kirchhoff’s laws break down for a future post (hint: Faraday’s law trumps Kirchoff’s law).

The nodes are joined by branches, so the other ingredients are the branch constitutive equations of the components that join them, for example V = IR if it’s an ohmic resisitor, V = L dI/dt for an inductor, etc. In this simple example, we have three simulatanous equations, one from each node 0, 1, and 2:

Sum of current at each node is zero

… with three unknowns, V0, V1, and V2.

The same equations can be rearranged into matrix form, in this case the augmented (or indefinite) node conductance matrix relates the voltage and current vectors:

Augmented (or indefinite) node conductance matrix

Note the ‘pattern of four’ that each conductance (e.g. G01 highlighted below) impresses into the conductance matrix:

Stamping the matrix

In SPICE parlance, this ‘pattern of four’ impression is called ’stamping the matrix.’ Conveniently, this ’stamping’ generalizes for any number of nodes and two terminal components. We’ll even show in a future post, how a small modification allows us to ’stamp in’ a three- or four-terminal component like a voltage-controlled current source (and hence deal with transistors).

Pairs of nodes with no physical branch element connecting them have a conductance of 0. In practical circuits, the average number of non-zero conductances per node is only ~3-4, whereas the number of nodes can be quite large ~100-1000s. Thus, practical circuits have sparse, not full, conductance matrices: SPICE can make use of the efficiency of a sparse matrix solver.

An n+1 by n+1 augmented matrix has rank n. (I our simple example n = 2.) The normal (or definite) conductance matrix can be obtained simply by selecting a datum node (e.g. define node 0 to be 0V) and deleting its row and column. The matrix equation GV = I can then be solved for the column vector of voltages ([V1; V2]) by matrix inversion: V = G-1I.

Now here’s the interactive part where we do exactly that:

Inputs:

Currents (A):
I01
I12
I20

Resistances (Ω):
R01
R12
R20

Results:

Conductances (S):
G01
G12
G20

Voltages (V):
V0
V1
V2

var i_01 = 1; // ampere
var i_12 = 1; // ampere
var i_20 = -1; // ampere
var g_01; // siemens
var g_12; // siemens
var g_20; // siemens
var r_01 = 1; // ohms
var r_12 = 1; // ohms
var r_20 = 1; // ohms
var v_0 = 0; // ground is always 0 volts
var v_1; //volts
var v_2; //volts
var g; // conductance divisor
var v; // common voltage

function init_spice_form() {
document.spice.i_01.value = (i_01).toFixed(2);
document.spice.i_12.value = (i_12).toFixed(2);
document.spice.i_20.value = (i_20).toFixed(2);
document.spice.r_01.value = (r_01).toFixed(2);
document.spice.r_12.value = (r_12).toFixed(2);
document.spice.r_20.value = (r_20).toFixed(2);
spice_recalc();
}
function spice_recalc() {
i_01 = document.spice.i_01.value;
i_12 = document.spice.i_12.value;
i_20 = document.spice.i_20.value;
r_01 = document.spice.r_01.value;
r_12 = document.spice.r_12.value;
r_20 = document.spice.r_20.value;
g_01 = 1/r_01;
g_12 = 1/r_12;
g_20 = 1/r_20;
document.spice.g_01.value = g_01.toFixed(2);
document.spice.g_12.value = g_12.toFixed(2);
document.spice.g_20.value = g_20.toFixed(2);
g = g_01 * g_12 + g_12 * g_20 + g_20 * g_01;
v = (i_01 – i_20) * g_12;
v_1 = (v + (i_01 – i_12) * g_20) / g;
v_2 = (v + (i_12 – i_20) * g_01) / g;
document.spice.v_0.value = v_0.toFixed(2);
document.spice.v_1.value = v_1.toFixed(2);
document.spice.v_2.value = v_2.toFixed(2);
}
init_spice_form();

Javascript-enable browser required

Circut simulator illustration

Look for future postings on how SPICE deals with time-stepping (‘transient analysis’), with reactive, four-terminal, and non-linear elements, and with shorts and voltage sources.

Here’s a link to the web page for the SPICE ancestor in Agilent ADS: W2302 Transient Convolution Element

Categories: RSS

April 12th?

April 7, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/gwqsL)
What has its anniversary on April 12th? Please post a comment if you know.

Categories: RSS

Practical Analysis Of Backplane Vias

April 2, 2009 · Leave a Comment

(Syndicated content from: http://ping.fm/KsOhJ)

RF Global Net are offering a download the white paper that my Agilent colleagues Sanjeev Gupta and Mike Resso co-wrote with Eric Bogatin and Lambert Simonovich.

Here are the details:

Practical Analysis Of Backplane Vias

By Dr. Eric Bogatin of Bogatin Enterprises, Lambert Simonovich of Nortel, and Sanjeev Gupta and Mike Resso, of Agilent Technologies

In this paper, Dr. Bogatin and his co-authors show how accurate, verified models for vias in a multilayer circuit board are necessary to predict link performance in the multi-gigabit-per-second regime. It describes a method for using measurements on a test vehicle to build a high-bandwidth, scalable model of long vias, including the through- and stub-effects. This model can then be used in Agilent’s Advanced Design System for simulation. The methodology provides valuable insight into the root causes of performance limits and how to overcome them.

Categories: RSS