What to do when your SPICE models run out of gas: Part 2Most SPICE versions are not optimized for the analysis of serial or differential signals. Certainly serial and differential can be handled by any SPICE simulator, but that is not the same as being optimized for such signal integrity applications.
When you need to measure the differential voltage at a particular point in a circuit, you are not yet likely to find a "Vdiff" function in your SPICE simulator. You are going to have to define this by hand. If you want to plot the common-mode signal, again you must define it yourself. Of course now that it is printed in a book, the programmers will put it in.
Differential signaling enables very high data rates on circuit boards. But traditional techniques for controlling skew and for distributing clocks run out of gas at these speeds. The answer is often embedded clocks and de-skewing inside the silicon.
A typical embedded clock is implemented by encoding the data in such a way that there is a guaranteed minimum transition rate, or number of signal edges per unit of time. Then, a phase-locked loop can be used with this data to recover the clock.
In the days of parallel buses, the skew between the data lines and between the data and clock were a major concern. Skew is the difference in flight-time for the various individual traces.
Even if the lines were all carefully laid out to be exactly the same length, variations in the dielectric constant in the board material caused skew. As bus rates increased, skew became a factor limiting the maximum usable bus rate. The reason was the way data was strobed into the receiver.
The parallel data would arrive at each of the bit latches and when all had settled and were stable, the clock or strobe would trigger all the latches simultaneously to capture the data. If some were earlier and some later, all would have to wait for that last bit to be ready. The range of arrival times for the individual bits became a major limiting factor on how fast the bus could ultimately run.
In high-speed serial systems, de-skewing is done electrically rather than mechanically. De-skewing can be done by mechanisms such as measuring the time-offset of each input and selecting a particular clock phase that best matches it. It is fairly easy to generate a range of clock phases to facilitate this.
This method in turn necessitates a circuit training plan in which the relationship between clock and data can be measured. As the arrival phases of the individual signals are identified, the optimal clock phase for each can be locked in. So, the issue of skew between differential pairs that are not within an individual pair has passed into the realm of non-issue.
Because perfect components, components with no time delay and no parasitics, come naturally to SPICE, it is very easy to set up a differential driver—two outputs with complementary signals. Of course, there are a few standard warnings. As in any modeling task, be sure to include appropriate parasitics. For example, the tool can quite easily implement a behavioral driver that has no capacitance to ground.
In the real world, such a thing will never exist. As is typical of driver models, the important things to get right are the output voltage or current swing, the rise and fall times, the impedance, and the capacitance. In addition, differential drivers have both common-mode and differential impedance, and these can be independent of each other. The point is, take care to get them right.