HyperLynx 教程 - Read
HyperLynx 教程 - Read
HyperLynx 教程 - Read
- TAGS
- hyperlynx
- read.pudn.com
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>HyperLynx</strong> <strong>教程</strong><br />
• Pre-layout (LineSim):<br />
• Signal-integrity and EMC analysis<br />
• Crosstalk and differential-signal analysis<br />
• Analysis for gigabit-per-second, SERDES-based designs<br />
• Stackup and impedance planning<br />
• Post-layout (BoardSim):<br />
• Signal-integrity analysis and batch-mode simulation<br />
• Crosstalk and differential-signal analysis<br />
• Analysis for gigabit-per-second, SERDES-based designs<br />
• Multi-board, system-level simulations
Pre-Layout Analysis: LineSim<br />
Pre-Layout Analysis: LineSim<br />
User Quotes<br />
... LineSim is installed and working just great! ... It's terrific. It should be on every engineer's PC.<br />
- Engineer, and new LineSim User<br />
... a great tool for emergencies when we found a problem in production ... It let me try a number<br />
of solutions quickly... and reduce the time it took to get the fix done.... I proved the accuracy to<br />
myself and others by comparing LineSim results to actual measured waveforms. Even our<br />
consultant was so impressed that he bought it for himself.<br />
- Technical Specialist/Manager, Fortune 500 Office Equipment Manufacturer<br />
... the most user-friendly signal integrity software on the market.<br />
- PCI Bus Pioneer, Large Microprocessor Manufacturer<br />
The rapid prototyping capabilities and ease-of-use of the tool (LineSim) allowed multiple<br />
topologies to be tried and simulated ... Without this tool, the circuit would have failed in the lab,<br />
and ... would not have been able to be corrected without a board re-spin. With the rising cost of<br />
board re-spins and the need to shrink a product's time to market, it is essential that a tool of this<br />
nature be employed ... in order to get new designs and upgrades right the first time.<br />
- Hardware Engineer, Computer Systems Manufacturer<br />
Introduction<br />
Some designers assume that signal-integrity, crosstalk, and EMC analysis begin after a PCB is laid out. But<br />
one of the <strong>HyperLynx</strong> tools — LineSim – allows you to consider all of these effects much earlier in the design<br />
process, before layout even starts. Working at this early stage, you can develop constraints for PCB<br />
placement and routing that will give you the greatest chance of producing a successful first-prototype board.<br />
Why initiate signal-integrity, crosstalk, and EMC analysis early in the design process? Because, the<br />
earlier you begin, the earlier you catch mistakes; and the sooner you catch mistakes, the less time and<br />
money you spend fixing them. It's been estimated that it costs 10 times more to fix a mistake after PCB<br />
layout than before, and another 10 times more to fix it after prototyping than before. That's a factor of 100<br />
— in terms of real, total cost – you can save by starting early.<br />
How LineSim Works<br />
LineSim allows you to quickly enter and solve "what-if" signal-integrity, crosstalk, SERDES, and EMC<br />
problems at any stage of the design cycle. Analysis is based on your choice of two unique editors created<br />
specifically for entering schematics representing physical interconnects (as you need to for signal-integrity<br />
and EMC simulations). LineSim’s “classic” editor is a super-fast, point-and-click way of very quickly entering<br />
transmission-line schematics (especially smaller ones). LineSim’s "free-form” editor is also easy to use and<br />
learn, but better-suited for larger schematics or designs involving external SPICE or Touchstone models.<br />
Using either editor, signal-integrity and crosstalk results appear as waveforms or eye diagrams in an<br />
oscilloscope; EMC simulation occurs in the frequency domain and results appear in a spectrum analyzer.<br />
To run LineSim, you do not need to interface to any other software tool, e.g., PCB layout. Instead, you enter<br />
problems directly in LineSim's special interface, then get immediate results.<br />
Why does LineSim work from a special "interconnect" or "transmission-line" schematic rather than<br />
an ordinary PCB schematic? Because ordinary PCB schematics do not contain the physical information<br />
needed for signal-integrity, crosstalk, GHz-level, and EMC analysis.<br />
Consider a clock net on a PCB schematic: it is drawn as a "wire" that connects a driver IC to several<br />
receiver ICs. However, the schematic tells nothing about how the "wire" is actually constructed. For<br />
example, is it a simple PCB trace on a board's outer layer, or a more-complex trace that uses outer and<br />
inner layers, and passes through one or more vias? These kinds of physical details determine how the<br />
clock net behaves from a signal-integrity and EMC standpoint.<br />
LineSim is optimized for efficient input of physical schematics, allowing easy what-if analysis. Circuit<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
页码,1/9<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
elements – transmission lines, ICs, and passive components – are added with a simple click of the mouse<br />
button. Physical parameters – including coupled cross sections for transmission lines – are modeled by<br />
right-clicking on any element.<br />
Simulating a Simple Clock Net In LineSim<br />
Suppose you're about to start a board design. Of all the signals on a PCB, clock nets are usually the most<br />
critical from a high-speed-design standpoint. (SERDES-based designs don’t use clock signals, but here we're<br />
discussing traditional, synchronous designs.) Let's see how LineSim could help you make important signalintegrity<br />
decisions about your clock net before you even begin drawing your board's logic schematic. Since<br />
this example involves just a simple interconnect schematic (as an introduction to the tool), let’s use the<br />
“classic” LineSim “cell-based” editor. In later examples, we’ll try the free-form editor.<br />
Load the Demo Schematic "Clock.tln"<br />
In this demonstration, you can only simulate the schematics supplied with the demo (you can't create your<br />
own). Let's begin by loading a schematic representing a simple clock net.<br />
Load the demo schematic "Clock.tln" using File > Open LineSim Schematic:<br />
1. On the File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "Clock.tln". (Schematics drawn with the cell-based editor use the .TLN<br />
extension.) The dialog box closes and a schematic appears in LineSim's editor.<br />
The schematic is drawn vertically to fit better in LineSim's half window for this demo. The triangular symbol at<br />
the top represents a driver IC. Next are two transmission-line symbols, one labeled as "microstrip" and one as<br />
"stripline." In the middle and at the bottom are more triangular symbols, representing receiver ICs. Together,<br />
these make up a schematic of a simple clock net with a driver IC, a PCB trace routed on a board's outer layer<br />
(the "microstrip") to a receiver IC, and a trace routed on an inner layer (the "stripline") to another receiver.<br />
In a moment, we'll see how this schematic was drawn. But first, let's run a quick simulation to see how this<br />
hypothetical daisy-chained clock net would behave if you actually built it on a board.<br />
Simulate the Clock Net<br />
Before simulating, notice in the schematic that each IC symbol is marked with a colored arrow. These indicate<br />
that the ICs are attached to oscilloscope probes; the arrow color corresponds to the channel color in the<br />
oscilloscope.<br />
Now, simulate the clock net using Simulate > Run Interactive Simulation; set the oscilloscope to a 50-MHz<br />
clock and the timebase to 5 nsec/div:<br />
1. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens; you<br />
can increase its size by dragging its corners with the mouse.<br />
2. In the Driver Waveform area, select the Oscillator radio button.<br />
3. In the MHz box, type "50".<br />
4. In the Horizontal Scale area, click the up arrow button twice to change the timebase to 5 nsec/div.<br />
5. Click the Start Simulation button.<br />
Unless your computer is quite slow, the simulation should take only a few seconds or so to complete.<br />
The waveforms on the screen are the actual voltages you'd see if you built the clock net described on the<br />
schematic. Notice that the voltages at the receiver ICs (the yellow and purple oscilloscope traces) show a<br />
large amount of overshoot / undershoot – so much that the receiver ICs "see" at least one extra clock edge<br />
per cycle. To view this problem more clearly, let’s plot the receiver ICs' thresholds in the oscilloscope.<br />
Display a receiver’s threshold by choosing component U(A1) in the Thresholds For combo box:<br />
� In the oscilloscope, pull down the Threshold For combo box and select component U(A1).<br />
页码,2/9<br />
Notice that two dashed, dark blue horizontal lines appear in the oscilloscope; these are the receiver ICs’ 0.8-V<br />
and 2.0-V input thresholds (Vil and Vih). (They were read automatically by LineSim from the receiver’s IC<br />
models.) Sure enough, the falling-edge waveform crosses the Vil threshold three times, which could cause<br />
double-clocking. (If you built this clock net, your board would probably fail.)<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
Also, there is considerable high-frequency content in the waveform; that is a likely source of serious EMC<br />
trouble (more on that later).<br />
Fixing the Clock Net<br />
Let's determine how to fix this clock net. Termination (i.e., adding passive components to match transmissionline<br />
impedances) is a good way of fixing many kinds of basic signal-integrity problems.<br />
In this demo version of LineSim, you can modify a schematic, but you can't modify a schematic and simulate<br />
it. You can simulate the schematics supplied with this demo (as long as you don't modify them). Therefore,<br />
we'll make changes to the schematic to see how editing is done, then load another schematic – which we can<br />
simulate – that has the same changes made in it.<br />
Add a Terminator to the End of the Net<br />
Add a parallel AC terminator to the end of the clock net by clicking in a resistor and capacitor; set the resistor<br />
to 50 ohms and the capacitor to 150 pF:<br />
1. Close the oscilloscope by clicking the Close button.<br />
2. Near the receiver IC, just below and to the right of the green "CELL:A2" label, point to the pull-down<br />
resistor shape. When you point to it, a red box appears around the resistor.<br />
3. Click once (with the left mouse button) to make the resistor "activate." It changes color and appears in the<br />
schematic.<br />
4. Immediately below the resistor, point to the capacitor shape, and left-click once to make it activate.<br />
5. Point back to the resistor, and with the right mouse button, click once. The Edit Resistor Values dialog<br />
box opens.<br />
6. In the Resistance box, type "50". Click OK.<br />
7. Point to the capacitor, and again with the right mouse button, click once. The Edit Capacitor Values dialog<br />
box opens.<br />
8. In the Capacitance box, type "150". Click OK.<br />
This demonstrates how schematics are created in LineSim’s fast, cell-based editor:<br />
� left-click on grayed-out elements (transmission lines, ICs, terminating components) to activate them and<br />
add them to the schematic<br />
� right-click on an element to model its physical characteristics (select an IC model, specify an impedance,<br />
change a value, and so forth)<br />
Notice how fast this is: there are no symbols to select and even no wiring to perform.<br />
The 50-ohm value for the terminating resistor is a guess based on the fact that a terminator should match the<br />
impedance of the transmission line it's terminating (note that the second line in the schematic has an<br />
impedance of about 50 ohms). The capacitor value is also a guess; generally, the longer the line being<br />
terminated, the larger the capacitor should be. (Later, we'll see how LineSim can automatically find the best<br />
terminating-component values, so you don't have to make guesses.)<br />
About modeling transmission lines and ICs: If you want more information about modeling transmission<br />
lines (as PCB cross sections, as part of a stackup, with connector models, etc.) or modeling ICs, click one<br />
of the topics below.<br />
- Click here for more information on how transmission lines are modeled (cross sections, stackups,<br />
connectors).<br />
- Click here for more information on how IC drivers and receivers are modeled.<br />
Simulate the Terminated Net<br />
页码,3/9<br />
Now let's simulate to see if the clock net has an improved waveform; load the schematic "Clockfix.tln" and<br />
simulate it:<br />
1. Since you edited the schematic, it can't be simulated in the demo version of LineSim. Instead, on the File<br />
menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "Clockfix.tln". The dialog box closes and a schematic identical to the one<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
you just created appears in LineSim's editor.<br />
3. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
4. In the Driver Waveform area, select the Oscillator radio button.<br />
5. In the MHz box, type "50".<br />
6. In the Horizontal Scale area, click the up arrow button twice to change the timebase to 5 nsec/div.<br />
7. Click the Start Simulation button.<br />
This time, the receiver ICs' waveforms (yellow and purple) look considerably better: almost all of the<br />
overshoot is gone. By increasing the capacitor's value, you could further "tune" the waveform to eliminate all<br />
of the negative overshoot – this is one of LineSim's strengths: how easy it is to perform "what-if" analysis. But<br />
let's look at another circuit, and in the process, find out about an even easier way to determine optimal<br />
termination values.<br />
A Series-Terminated Net with IBIS Model<br />
We fixed the clock net by adding a parallel AC terminator at the end of the net. Let's look briefly at another net<br />
that is series terminated. Also, let's use an IBIS-format model for the driver IC. (For details on the IBIS format<br />
and how ICs are modeled generally, click here.)<br />
Load the Schematic "Ser_ibs.tln"<br />
Load the schematic "Ser_ibs.tln":<br />
1. Click the Close button to close the oscilloscope.<br />
2. On the File menu, select Open LineSim Schematic. A dialog box opens.<br />
3. Double-click on the file name "Ser_ibs.tln". The dialog box closes and a new schematic appears.<br />
On this net, an IC – modeled with an IBIS model – drives a transmission line and receiver IC. (Scroll the<br />
schematic to the right to see the receiver, if needed.) The driver is series-terminated with a resistor, whose<br />
value is temporarily 0.0 ohms.<br />
Simulate the net with the 0-ohm resistor; set the IBIS model to Slow-Weak:<br />
1. On the Simulate menu, select Run Interactive Simulation.<br />
2. In the IC Modeling area, click the Slow-Weak radio button.<br />
3. Click the Start Simulation button.<br />
The simulator runs, showing what the falling-edge signal on this net would look like: it has very little ringing.<br />
IBIS models can include min/typ/max data; let's change the model to run with best-case-fast/strong<br />
parameters.<br />
Re-simulate with the 0-ohm resistor, but change the IBIS model to run Fast-Strong:<br />
1. In the IC Modeling area, click the Fast-Strong radio button.<br />
2. Click the Start Simulation button.<br />
The simulation runs again, plotting over the previous simulation's results. Note how the waveform has<br />
changed: now there is considerable ringing. We need to terminate this net to protect against the faster<br />
versions of our driver IC.<br />
Run the Terminator Wizard to Find an Optimal Termination<br />
Let's change the series resistor to a value that will actually terminate the net. But instead of picking the value<br />
ourselves and "tweaking" it until it works perfectly, let's ask LineSim to pick the best value for us. This shows a<br />
powerful feature of both LineSim and BoardSim: the Terminator Wizard, a "smart" tool that can analyze nets<br />
in detail and automatically pick the best terminations to use (types and values).<br />
Run the Terminator Wizard; "apply" the resistor value it recommends; and re-simulate:<br />
1. On the Wizards menu, click Run Terminator Wizard. A dialog box opens.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
页码,4/9<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
2. In the Select a Device Pin list box, double-click U(A0). The dialog box closes, and the Terminator Wizard<br />
opens and performs its analysis. It is recommending a 28.1-ohm terminating resistor.<br />
3. "Apply" the Wizard's recommendation to the resistor in the schematic by clicking the Apply Values button<br />
(upper right corner).<br />
4. Close the Terminator Wizard by clicking OK.<br />
When you run the Terminator Wizard, LineSim automatically analyzes the selected net, presents a list of trace<br />
statistics, and, at the bottom of the list, makes suggestions for termination values. In this case, the Wizard<br />
correctly determines that the termination type is "series," and makes suggestions for the optimum value of R.<br />
In these calculations, LineSim automatically accounts for such effects as capacitive loading of receiver ICs,<br />
total line length, and driver impedance.<br />
In the schematic editor, notice that, because we clicked the Apply button, the resistor has changed from 0<br />
ohms to the Terminator Wizard's recommended value of 28 ohms. Now let's simulate to see if the terminator<br />
works.<br />
Re-simulate the net; then reset the oscilloscope to 'Typical' IC modeling:<br />
1. In the oscilloscope, click the Erase button.<br />
2. Click the Start Simulation button.<br />
3. Before proceeding to the following sections of the demonstration, click the Typical radio button in the IC<br />
Modeling area so that simulations are again running from typical IC data.<br />
Note how dramatically improved the waveform is. At the receiver (yellow trace), the signal is nearly perfect. By<br />
allowing just a small amount of undershoot at the receiver, the Terminator Wizard has achieved the least<br />
possible delay to the receiver IC, yet ensured that the receiver's low-side clamp diode is not turned on.<br />
The Terminator Wizard is a sophisticated tool. For example, in the analysis you just ran, it automatically<br />
determined the following information (all displayed in the Wizard dialog box):<br />
- switching impedance of the driver IC (average of high-side and low-side values)<br />
- driver slew time (again, average of high and low)<br />
- total net physical length<br />
- nominal characteristic impedance of the net<br />
- adjusted, "effective" impedance of the net, given receiver-IC loading<br />
- what kind of terminator (e.g., series, parallel AC, etc.) you're using<br />
- topology of the net, so that the Wizard knows what termination style to recommend if no terminator is<br />
present<br />
- driver-to-series-resistor stub length, in case the distance is too long<br />
- the optimal termination value to use, given all of the above<br />
Note: If you run an EMC analysis on this schematic, you won't get any radiation because the transmission<br />
line is modeled non-physically as a "simple" line. LineSim's EMC-analysis engine must have physical data<br />
about a transmission line (e.g., where it is in a PCB's stackup) in order to calculate radiation.<br />
EMC Analysis of the Clock Net<br />
We've investigated several nets' signal integrity. Now, let's consider how the clock net we saw earlier might<br />
behave from an EMC standpoint. (Later, we’ll look at more signal-integrity simulations, for example, for a DDR<br />
design and SERDES example.)<br />
About EMC-Analysis Tools: EMC-analysis software is roughly divided into two categories – back-end,<br />
system-level verification tools and front-end, what-if design tools. Verification tools, because they attempt<br />
to perform system-level simulations, are so modeling-intensive and cumbersome that they tend to be<br />
impractical. LineSim is a front-end design tool that's easy to run and attacks EMC problems early in the<br />
design cycle.<br />
Run the Spectrum Analyzer on the Clock Net<br />
First, re-load the original version of the clock net's schematic (load "Clock.tln"):<br />
1. On the File menu, select Open LineSim Schematic. A dialog box opens.<br />
页码,5/9<br />
2. Double-click on the file name "Clock.tln". The dialog box closes and the original version of the clock net –<br />
without a terminator – appears in the editor.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
Then, simulate the net to find its radiation profile, using Simulate > Run Interactive EMC Simulation.<br />
First, set up the EMC-analysis probe, using the Set button:<br />
1. On the Simulate menu, select Run Interactive EMC Simulation. The Spectrum Analyzer dialog box opens;<br />
you can increase its size by dragging its corners with the mouse.<br />
2. In the Probe area, click the Set button. The Set Spectrum Analyzer Probing dialog box opens.<br />
At this point, we have a decision to make. EMC behavior can be investigated by predicting the net's far-field<br />
radiation, or simply by probing its trace current directly and viewing the current in the frequency domain. Use<br />
of a current probe is especially appropriate in LineSim, because radiation prediction requires physical detail<br />
which is sometimes missing in a LineSim schematic: it's not possible to predict radiation from a purely<br />
electrical transmission line, for example (radiation algorithms require detailed stackup knowledge). But<br />
LineSim can always collect trace-current data, no matter how you construct your schematic.<br />
Note: Some EMC experts always prefer dealing just with trace currents, rather than radiation predictions.<br />
<strong>HyperLynx</strong>'s radiation algorithm is powerful, but it is admittedly not able to account for the effects of<br />
attached cables, the product's enclosure, etc. By concentrating on just the frequency content of a net's<br />
currents – which LineSim can predict with high accuracy – you can very effectively manage your EMC<br />
problems.<br />
Let's continue, then, using a current probe:<br />
1. In the Probe Type area, notice that both antenna and current probes are available. Select the Current<br />
radio button. Most controls in the dialog box gray out.<br />
2. In the Pins list box, double-click on pin U(A0). The dialog box closes.<br />
Then, run the EMC simulation:<br />
1. In the spectrum analyzer, verify that the Vertical Offset is set to 100 mA.<br />
2. Click the Start Simulation button.<br />
The simulation runs. The spectrum analyzer works first in the time domain, collecting data, then runs an FFT<br />
to transform the current waveform into the frequency domain.<br />
Examine the Spectrum Analyzer's Results<br />
LineSim's spectrum analyzer works just like a real analyzer connected directly to a current probe. The yellow<br />
vertical bars show you the magnitude of the current at every frequency at which there is significant radiation.<br />
Notice that the current spectrum has a strong peak at the simulation's base frequency; the current level is<br />
close to 100 mA. If this net were on a real board, you would probably want to see if you could lower this peak<br />
somewhat.<br />
EMC Analysis of the Terminated Clock Net<br />
Now, let's run the "fixed" version of the clock net (the one with the AC parallel terminator added) to see if its<br />
EMC profile looks better than the unterminated net's. Remember that in the licensed version of LineSim, you<br />
could do this easily by adding the resistor and capacitor at the net's end. In this demo version, you must load<br />
a separate schematic.<br />
Run the Spectrum Analyzer on the Terminated Net<br />
First, re-load the "fixed" version of the clock net's schematic (load "Clockfix.tln"):<br />
1. On the File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "Clockfix.tln". The dialog box closes and the fixed version of the clock net –<br />
with the terminator added – appears in the editor.<br />
Then, simulate the net to find its EMC profile, using Simulate > Run Interactive EMC Simulation:<br />
页码,6/9<br />
1. On the Simulate menu, select Run Interactive EMC Simulation. The Spectrum Analyzer dialog box opens.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
2. In the Probe area, click the Set button. A dialog box opens.<br />
3. In the Probe Type area, verify that the Current radio button is selected.<br />
4. In the Pins list box, double-click on pin U(A0). The dialog box closes.<br />
5. In the spectrum analyzer, set the Vertical Offset to 100 mA.<br />
6. Click the Start Simulation button.<br />
Notice that the clock net's peak current level is now substantially improved: reduced in fact, by approximately<br />
half. (It may look at first glance like less than half, but note that the vertical scale is logarithmic.) This net will<br />
therefore radiate substantially less than the unterminated version. Notice that we've made this improvement<br />
even before PCB layout: a proactive way of treating EMC problems that catches problems early in the design<br />
cycle and significantly reduces the likelihood of certification failure and redesign downstream. Notice also the<br />
connection between good signal-integrity and EMC design: the same termination improved both the signal<br />
quality and EMC behavior.<br />
About LineSim’s Free-Form Schematic Editor<br />
In the examples shown earlier in this demonstration, we used LineSim’s cell-based editor, which is optimized<br />
for very quick drawing of simple interconnect schematics. In the following sections, we’ll switch to using<br />
LineSim’s “free-form” editor, which more easily handles larger schematics (and allows for including SPICE or<br />
Touchstone models.) When you actually begin using LineSim, you’ll have a choice of which editor to learn –<br />
or you may wish to use both, for maximum flexibility. Note that the underlying dialog boxes in both editors are<br />
identical, so learning both is fairly easy.<br />
Signal-Integrity of a DDR Data Path<br />
The examples you saw earlier in this section were instructive, but very simple. Let’s look at one more example<br />
– for the signal integrity of a DDR data path – that is more similar to the type of work you’d actually do using<br />
LineSim.<br />
Load the Demo Schematic "DDR_4DIMM_data_min.ffs"<br />
Begin by loading a schematic that represents a typical DDR data path.<br />
Load the demo schematic "DDR_4DIMM_data_min.ffs" using File > Open LineSim Schematic:<br />
1. On LineSim's File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "DDR_4DIMM_data_min.ffs". The dialog box closes and a schematic<br />
appears in LineSim's free-form editor.<br />
Note: Running half-screen in the demonstration version, the details of the schematic are difficult to see<br />
(because the schematic automatically fits to the screen width). If you wish, you can use the View > Zoom<br />
Area In menu command to zoom into the schematic and see it in more detail. However, this is not<br />
necessary, and the instructions below are written assuming that you stay at the present zoom level.<br />
Note the difference between this editor and the one you saw in earlier examples. The free-form editor<br />
functions more like a “standard” schematic tool: you choose symbols from a palette, and wire them together.<br />
This technique tends to work better for large or complex designs. But otherwise, there’s not much difference<br />
between the two editors: all of the associated dialog boxes (for modeling transmission line or ICs, for<br />
example) are identical.<br />
The schematic we’ve loaded represents a typical topology for a DDR data path, implemented in LineSim’s<br />
free-form schematic editor. (The schematic was drawn so that the entire design fits on a single page, but it<br />
could just have easily been “stretched” out to fit on multiple screens.) The DDR bus could be run at various<br />
speeds, but we’ll try to make it work at 266 Mbs (133 MHz). The design is based on the minimum interconnect<br />
lengths allowed by the JEDEC spec; trace widths and stackup have been designed to give the desired<br />
impedances.<br />
Looking from left-to-right, the design incorporates these elements:<br />
� A DDR controller, represented by an IBIS model for a Xilinx Virtex-4 SSTL2 driver<br />
页码,7/9<br />
� Several transmission lines representing extra package parasitics (recommended by Xilinx in their IBIS<br />
model), breakout routing, and routing to the first DIMM module; plus a series termination resistor just after<br />
the breakout<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
� The first of four DIMM modules, consisting of the following elements:<br />
� A transmission line representing the DIMM’s connector<br />
� Transmission lines representing routing to a series resistor on the DIMM, and then more routing<br />
� A “T” in the routing, with transmission-line branches going to two SDRAM data inputs, each represented<br />
by a Micron Technology MT46V16M8A0 IBIS model<br />
� A transmission line representing more routing, between DIMM 1’s and DIMM 2’s connectors<br />
� Then DIMM2 (a copy of DIMM 1’s structure); DIMM2-DIMM3 routing; DIMM3; DIMM3-DIMM4 routing; and<br />
DIMM4<br />
� Finally, a parallel pull-up-resistor terminator, to 1.25V<br />
Simulating the DDR Data Path<br />
Let’s attach some oscilloscope probes, then simulate to see how the data bus’s signal integrity looks.<br />
Assign probes using Simulate > Attach Scope Probes to the following device pins – controller.dqs,<br />
dimm1.front, dimm2.front, dimm3.front, and dimm4.front; in the oscilloscope, select an oscillator stimulus and<br />
set it to 133 MHz; set the horizontal scale to 2 ns/div and vertical scale to 500 mV/div; and display the<br />
thresholds at one of the receiver pins:<br />
1. On the Simulate menu, select Attach Scope Probes. A dialog box opens.<br />
2. In the Pins list, locate pin “controller.dqs”, then double-click on it; a probe is attached. Repeat for pins<br />
“dimm1.front”, “dimm2.front”, “dimm3.front”, and “dimm4.front”. Then click OK to close the probing dialog<br />
box. In the schematic, notice that a colored probe has appeared at each selected pin.<br />
3. On the Simulate menu, select Run Interactive Simulation. The oscilloscope dialog box opens.<br />
4. In the Driver Waveform area, click the Oscillator radio button. In the MHz box, type “133”. In the IC Model<br />
area, verify that the Typical radio button is selected.<br />
5. In the Horizontal Scale area, click the up arrow once to set the scale to 2 ns/div. In the Vertical Scale<br />
area, click the down arrow once to set the scale to 500 mV/div.<br />
6. In the Threshold For combo box, choose pin “dimm1.back”. The receivers’ Vil and Vih threshold values<br />
are plotted in the oscilloscope display, as dashed blue lines.<br />
7. Then click the Start Simulation button to begin simulating.<br />
The resulting waveforms show a problem: at the left-most of the DIMMs (yellow waveform), there is a<br />
noticeable anti-reflection that causes DIMM 1’s received signal to dip back slightly above the high threshold.<br />
This means that there is at least a possibility that DIMM 1 would get double-clocked. Some versions of this<br />
design would fail in the field.<br />
Improving the Data Path’s Signal Integrity<br />
There are various ways you could potentially improve the data path’s waveforms. One possibility is by<br />
changing termination values (especially the series resistor at the driver or pull-up at the end of the bus, which<br />
are not on the DIMM modules and therefore under our control). Let’s trying changing the pull-up’s value.<br />
Change the pull-up resistor’s value to 22 ohms, then re-simulate:<br />
1. Minimize the oscilloscope by clicking its minimize button (in the upper right corner: “–“).<br />
页码,8/9<br />
2. In the schematic, point to the pull-up resistor (at the far right edge), and right-click with the mouse. On the<br />
pop-up menu, select Edit Value and Parasitics. The Edit Resistor Values dialog box opens.<br />
3. In the Resistance box, type “22”. Then click OK.<br />
4. Find the minimized oscilloscope, and click on its restore button (“double boxes”); the oscilloscope reappears.<br />
Click the Erase button to clear the old waveforms.<br />
5. Click Start Simulation to re-simulate. New waveforms appear.<br />
Notice that the rising edge waveform is now OK: the ringback at DIMM 1 (yellow waveform) is well above the<br />
Vih threshold. It is still marginal, though, on the falling edge (versus Vil).<br />
To improve the falling edge, recall that the schematic uses the minimum possible interconnect lengths (per<br />
the JEDEC spec). Sometimes, it actually helps to increase routing length. Let’s see if that’s true in this case.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
Pre-Layout Analysis: LineSim<br />
Right-click on the three transmission lines that represent the routing between DIMMs 1-2, 2-3, and 3-4;<br />
increase each line’s length to 1.2 inches:<br />
1. Minimize the oscilloscope.<br />
2. To display all of the schematic in the window, LineSim zoomed out quite far. Let's zoom in to make it easy<br />
to read the component text. On the View Menu, click Zoom Area In. Then drag the dashed zoom<br />
rectangle around the driver for the DDR controller and the first three transmission lines connected to it.<br />
3. Using the scroll bar near the bottom of the schematic, scroll to the right until you see TL20, labeled<br />
“DIMM1 – DIMM2”. (If the entire label is not displayed, touch it with the mouse; a tool tip appears.) Rightclick<br />
on it; on the pop-up menu, select Edit Type and Values. In the Edit Transmission Line dialog box,<br />
click on the Values tab; in the Length box, type “1.2”. Then click OK.<br />
4. Repeat step 3 for each of transmission lines TL26 and TL53.<br />
5. Then restore the oscilloscope; click Erase; and click Start Simulation to re-simulate.<br />
Success! We’ve made the signal quality on all receivers on the DDR data bus “clean” enough to work reliably.<br />
About Modeling ICs<br />
页码,9/9<br />
An important aspect of simulation is the modeling of ICs, particularly driver ICs. So far, we have not<br />
addressed this topic in any detail. If you continue through this demonstration, you'll learn more about IC<br />
modeling. If modeling is of particular concern to you, click here to jump ahead to some information specifically<br />
about IC modeling.<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; next, we turn our attention to<br />
pre-layout crosstalk analysis and simulation of differential pairs.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/pre_layout_analysis_li...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
LineSim's Crosstalk and Differential-Signal Features<br />
If you started this demonstration at the beginning, you've already seen how LineSim's signal-integrity and<br />
EMC analysis features can help you prevent signal-integrity and EMC problems early in the design cycle.<br />
LineSim's crosstalk-analysis features extend the advantages of working up-front to two further high-speed<br />
areas: crosstalk and differential signaling. In this section, we'll see some examples of each.<br />
How LineSim's Crosstalk Analysis Works<br />
As demonstrated in the overview of LineSim's "base" features, LineSim allows you to quickly construct<br />
schematics of various interconnect scenarios, and simulate to see the resulting waveforms. LineSim's<br />
crosstalk-analysis option lets you go a step further and add line-to-line coupling into your schematics. With<br />
this capability, you can:<br />
� accurately predict how much crosstalk will occur when two or more PCB traces are routed near each other<br />
� efficiently specify maximum parallelism, minimum line separation, and other routing constraints<br />
� see the effects on crosstalk waveforms of trace separation; trace width; dielectric thickness; driver-IC edge<br />
rate and impedance; parallel run length; and so forth<br />
� confidently design high-speed buses that meet tight timing and low-crosstalk-noise requirements<br />
� learn the difference between forward and backward crosstalk, and develop an intuitive sense of when<br />
crosstalk occurs and how to minimize it<br />
� implement resistor-termination strategies that can greatly reduce or eliminate end-of-the-line crosstalk<br />
A key technical element of LineSim's ability to analyze coupled transmission lines is its fast, built-in boundaryelement<br />
field solver. In one of the examples below, you'll have the opportunity to explore a few of the solver's<br />
features in detail.<br />
Using LineSim for Differential-Signal Analysis<br />
LineSim's coupled-line analysis features are also valuable in the design of differential signals, since the same<br />
line-to-line coupling that causes crosstalk on unrelated signals also creates differential impedance and other<br />
electrical characteristics important in differential signaling. Differential pairs are common in very-high-speed<br />
design, and are used widely in gigabit-per-second, SERDES-based designs.<br />
Specifically, you can use LineSim to:<br />
� Accurately simulate differential signals, taking full account of the coupling between traces<br />
� Explore termination options for differential signals, and determine when a single line-to-line resistor is<br />
sufficient or when a full "array" termination is required<br />
LineSim also offers features that make it easy to plan for targeted differential impedance. This happens<br />
mostly in the stackup editor; to see an example of differential-Z0 planning, click here.<br />
In the following sections, we'll look at some examples of how LineSim's crosstalk-analysis option can make<br />
preventing crosstalk and designing differential signals easier.<br />
Crosstalk Example: Planning Minimum Trace Separation on a Bus<br />
Suppose you're designing a bus, and you want to guarantee that no more than 300 mV of crosstalk can occur<br />
between any of the bus' signals. Let's see how LineSim's crosstalk option could help you meet this design<br />
goal, and develop the proper routing constraints to achieve it.<br />
How to Simulate Crosstalk on a Bus<br />
页码,1/7<br />
A typical parallel-style bus in a digital system contains many physically parallel traces – 16, 32, 64, maybe<br />
even more signals. (This is not true of gigabit-per-second, SERDES-based designs, which emphasize serial<br />
links, but here we're talking about traditional synchronous-style designs.) However, when you simulate to<br />
predict crosstalk on such a bus, you definitely would not bother simulating all of the signals. Rather, you would<br />
take advantage of the fact that the crosstalk driven into a given "victim" trace comes predominantly from two<br />
other traces: the neighboring ones on either side. So, typically, you would bother to simulate only a set of<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
three traces (or maybe five), as shown in this example.<br />
Load the Demo Schematic "XT_Trace_Separation.ffs"<br />
In this demonstration, you can only simulate the schematics supplied with the demo (you can't create your<br />
own). Let's begin by loading a schematic representing three adjacent traces on a bus.<br />
Load the demo schematic "XT_Trace_Separation.ffs" using File > Open LineSim Schematic:<br />
1. On LineSim's File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "XT_Trace_Separation.ffs". The dialog box closes and a schematic appears<br />
in LineSim's free-form editor.<br />
In the schematic, the three transmission lines represent the side-by-side traces on the bus described above.<br />
The triangular IC-driver symbols at the left end of each line show that all three traces are being driven from<br />
the left side. Each line also has a receiver IC at its right end. The ICs are modeled with a generic 3.3-V fast<br />
CMOS model from the <strong>HyperLynx</strong>-supplied library “EASY.MOD.”<br />
"Victim" versus "Aggressor" Traces<br />
Look at how the driver ICs are set up in the Assign Models dialog box; note that the middle trace's driver is set<br />
to "Stuck Low" rather than "Output":<br />
1. Point to any of the left-end driver-IC symbols in the schematic. Double-click on the symbol; the Assign<br />
Models dialog box opens.<br />
2. In the Pins list, highlight IC pin U1.1 by clicking once on it. Look in the Buffer Settings area to the right and<br />
note that this pin (the driver IC on the uppermost trace) has been set to be an "Output," meaning that it<br />
will switch high/low or low/high when simulation runs.<br />
3. Similarly, in the Pins list box, highlight pin U1.3 (third in the list). It is also set as an "Output."<br />
4. Now highlight pin U1.2. This is the driver on the middle trace. Notice in the Buffer Settings area that it has<br />
been set to "Stuck Low." This means that it will NOT switch when simulation is run.<br />
5. Click OK to close the dialog box. Back in the schematic editor, note that middle-trace driver has a "0" near<br />
its symbol, indicating visually that it is "stuck low."<br />
The reason that the driver ICs are set up this way (middle trace "stuck low" and outer traces switching) is that<br />
we want the middle signal to be the "victim" in our analysis and the outer signals the "aggressors," i.e., we<br />
want to see how much crosstalk develops on the middle trace when its neighboring traces switch. But notice<br />
that we didn't leave the middle trace completely undriven; rather, we applied a driver-IC model, but held it in a<br />
static state. Modeling driver ICs on victim traces is very important, since low-impedance drivers reflect rather<br />
than absorb crosstalk energy.<br />
About "victims" and "aggressors": LineSim will simulate any mixture of "victim" and "aggressor" traces -<br />
in fact, the simulator makes no distinction between the two. Generally, you would refer to traces which are<br />
actively switching as "aggressors" and those on which you're trying to observe the resulting crosstalk as<br />
"victims." In this simulation, we could just as well have made the middle trace also switch, in which case it<br />
would have been both an aggressor to the other traces AND their victim.<br />
How the Traces' Coupling was Defined<br />
页码,2/7<br />
LineSim's crosstalk option lets you add coupling information to any LineSim schematic. (For more information<br />
on LineSim's basic, non-crosstalk features, click here.) The drawing for this example was created by entering<br />
a LineSim schematic with three transmission lines and their driver and receiver ICs; then adding information<br />
about how the three lines are coupled together. Any line in a schematic can be made coupled simply by rightclicking<br />
on it and changing its type to "coupled stackup" (not in the demonstration version, though). Any<br />
number of "coupling regions" can be defined, and any line can be added into any coupling region.<br />
When a transmission line is coupled, it displays differently in the schematic editor than when uncoupled.<br />
Notice that the t-lines in this schematic have “rat’s nest” lines between them, indicating that they’re coupled<br />
together.<br />
Once transmission lines are gathered into a coupling region, the region's cross-section properties and length<br />
can be defined to match exactly the problem you want to simulate. The definition you make is geometric; it is<br />
LineSim's job to convert this data into electromagnetic parameters.<br />
Right-click on a transmission line to edit it and click the Edit Coupling Regions tab; look at how a region's<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
cross section is defined geometrically:<br />
1. Point to any of the transmission lines in the schematic, and right-click with the mouse. A menu appears.<br />
2. Select Edit Type and Values. The Edit Transmission Line dialog box opens.<br />
3. Click on the Edit Coupling Regions tab.<br />
4. Notice how the dialog box allows you to completely define the coupling region's geometry. The Coupling<br />
Regions list box (on the left) shows a "tree list" of the region's stackup layers and transmission lines, and<br />
a graphical view of the current definition. The various edit boxes on the right let you change geometric<br />
parameters for the currently highlighted trace (or in some cases, globally for the entire region). The<br />
Impedance list box (lower right) gives a summary of the resulting electrical characteristics (much more<br />
electrical data is available elsewhere; see below).<br />
This coupling region is currently defined as follows:<br />
� traces are together on an inner, "stripline" layer<br />
� traces are 6 mils wide and 8 mils apart (edge-to-edge)<br />
� the region's cross section applies over a length of 12 inches<br />
Before we actually make any changes to the coupling region, let's run a simulation to see how much crosstalk<br />
occurs with the current arrangement. (Perhaps our design goal of no more than 300 mV of crosstalk voltage is<br />
already satisfied.)<br />
Run a Simulation with Existing Coupling to See How Much Crosstalk Occurs<br />
Simulate the existing schematic and coupling region using Simulate > Run Interactive Simulation; set the<br />
oscilloscope timebase to 2 nsec/div, and simulate once with a falling edge and once with rising:<br />
1. Click OK to close the Edit Coupling Regions dialog box.<br />
2. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
3. Verify that the Driver Waveform is set to Edge, Falling Edge, and the IC Modeling to Typical.<br />
4. In the Horizontal Scale area, click the up arrow button once to change the timebase to 2 nsec/div.<br />
5. Click the Start Simulation button.<br />
6. When the simulation is complete, change the Driver Waveform to Rising Edge, and re-simulate.<br />
The green and yellow waveforms show the crosstalk voltages on the middle, "victim" trace, at the receiver and<br />
driver ends, respectively. That the yellow waveform hardly moves is no surprise, since this end of the line is<br />
held low by a low-impedance CMOS driver. But the situation is very different at the green, receiver end: there<br />
is more than 1V of crosstalk when the aggressor signals are driving high. (To see which waveforms<br />
correspond to which driver edge, in the Display area, toggle the Previous Results check box on and off; the<br />
waveform that persists is for the rising-edge simulation.) >1V is well above our design criterion of 300 mV<br />
maximum crosstalk.<br />
When we simulated, LineSim ran its built-in boundary-element field solver to convert all of the geometric data<br />
we entered into electromagnetic coupling parameters. In this example, we won't look specifically at the results<br />
generated by the field solver (though they are always available in the Edit Transmission Line dialog box's<br />
Field Solver tab, by clicking the View button). Later, in a differential-pair example, we'll look at the solver's<br />
output in detail.<br />
Note: It is the backward-crosstalk pulse reflecting off the victim line's driver IC that generates the 1-V<br />
problem. With a little experience using LineSim, you will be able to comfortably distinguish forward<br />
crosstalk from backward. Backward crosstalk persists for twice the delay length of the aggressor net that<br />
creates it (compare the length in time of the pulses in the green waveform to the transmission-line delay<br />
reported in the schematic).<br />
Increase the Trace Separation to Decrease the Crosstalk<br />
页码,3/7<br />
One obvious way to decrease the crosstalk is to increase the separation between the traces.<br />
Edit the coupling region, increase the trace separation from 8 mils to 12, and re-simulate to see by how much<br />
the crosstalk is reduced:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
1. Point to any of the transmission lines in the schematic (you don't need to close the oscilloscope first), and<br />
right-click with the mouse and select Edit Type and Values to re-open the Edit Transmission Line dialog<br />
box.<br />
2. Click on the Edit Coupling Regions tab.<br />
3. In the Coupling Regions list box, highlight the middle trace. There are two ways to do this: either click<br />
once on transmission line "TL2" in the tree list; or carefully point to the middle trace in the graphical<br />
viewer, and click.<br />
4. In the Trace-to-Trace Separation area, in both the Left and Right edit boxes, type "12" to increase the<br />
separation from the aggressor traces. The separations become wider in the graphical viewer.<br />
5. Click OK to close the dialog box, then back in the oscilloscope, click the Start Simulation button.<br />
Notice that the maximum crosstalk (green waveform) has indeed been reduced, but only to about 750 mV, still<br />
well above the acceptable level.<br />
Decrease the Stackup Dielectric Thickness<br />
There are many ways besides trace separation to affect crosstalk. One that is sometimes overlooked is the<br />
PCB stackup. Let's try making a simple stackup change to further decrease the amount of crosstalk on our<br />
bus.<br />
Edit the PCB stackup and decrease the separation between the plane layers and the inner signal layers from<br />
10 mils to 5; then re-simulate:<br />
1. On the Edit menu, select Stackup. The stackup editor opens.<br />
2. Verify that the Basic tab is selected.<br />
3. In the Thickness cell for the dielectric between layers "VCC" and "Inner1" (i.e., row 5 of the spreadsheet),<br />
type "5". Press or click some other cell in the spreadsheet to tell the stackup editor to accept the<br />
new value.<br />
4. Repeat for the dielectric layer between layers "Inner2" and "GND" (row 9); type "5".<br />
5. Verify in the graphical stackup viewer that the desired layers display as 5 mils thick. Then click OK to<br />
close the editor.<br />
6. Back in the oscilloscope, click the Start Simulation button.<br />
Now the maximum crosstalk at the victim trace's receiver end (green waveform) is sharply reduced, to about<br />
280 mV. This meets our design goal, with a little margin to spare.<br />
In general, crosstalk is a complex effect that is influenced by many different factors: e.g., driver-IC technology,<br />
trace separation, trace width, line length, line-end termination (crosstalk generally requires more-complex<br />
termination than single-line reflections), and PCB stackup (layer ordering and dielectric thickness/material).<br />
LineSim lets you rapidly explore many different options to see which combinations most effectively meet your<br />
requirements.<br />
One of the most powerful uses for LineSim is the development of routing guidelines and constraints. For<br />
example, in this case, we now know that the routing for this bus must be set to a minimum trace separation of<br />
12 mils. We also have a stackup constraint: we know that two of our dielectrics need to be 5 mils thick.<br />
Differential-Trace Example<br />
Differential signaling is a technology that actually takes advantage of the coupling between neighboring<br />
traces. When you design a differential pair, you often deliberately couple the two traces together fairly<br />
strongly, so that any signal induced by external noise on one is also induced on the other – and then rejected<br />
by the differential receiver at the ends of the lines.<br />
However, differential-pair design involves non-trivial issues like determining what geometries to pick to<br />
achieve a specific differential impedance. Terminating differential traces can also sometimes be challenging.<br />
LineSim's crosstalk option is a powerful tool for differential-signal applications, because of the built-in<br />
boundary-element field solver. The field solver automatically calculates differential impedances, determines<br />
coupling parameters, and suggests termination values.<br />
Achieving a Specific Differential Impedance<br />
页码,4/7<br />
It's common in differential signaling for IC vendors or bus specifications to recommend specific differential-<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
impedance targets. There are several ways LineSim can help you plan for differential impedances. For<br />
example, when you enter a differential trace pair in LineSim's schematic editor, LineSim immediately makes<br />
the pair's differential impedance available to you. Let's see an example.<br />
Load the Demo Schematic "XT_Coupled_Differential.ffs"<br />
Load the demo schematic "XT_Coupled_Differential.ffs" using File > Open LineSim Schematic:<br />
1. On LineSim's File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "XT_Coupled_Differential.ffs". The dialog box closes and a schematic<br />
appears in LineSim's editor.<br />
The schematic contains two transmission lines; they are coupled together, as you can see by the dashed rat's<br />
nest line between them. At the left end of the lines is a differential driver IC; here, we're using a high-speed,<br />
low-swing LVDS driver pair (whose total swing voltage is about 400 mV). At the right line ends is a differential<br />
receiver. The line’s receiver ends have been terminated with a 100-ohm differential resistor.<br />
The circuit is set up to run differentially because one of the drivers has its polarity inverted relative to the<br />
other.<br />
Look at how the driver IC is are set up in the Assign Models dialog box; note that pin U1.2 is inverted:<br />
1. Point to the driver-IC symbol in the schematic, and double-click. The Assign Models dialog box opens.<br />
2. In the Pins list, highlight IC pin U1.3 by clicking once on it. Look in the Buffer Settings area to the right and<br />
note that this pin (the lower of the two pins in the schematic) is set to "Output Inverted." This makes it<br />
switch oppositely versus the upper pin.<br />
3. Click OK to close the dialog box.<br />
Suppose our design goal (perhaps specified by the driver-IC manufacturer) is to achieve a 100-ohm<br />
differential impedance with our trace pair. (The differential terminator has already been set to this value.) Let's<br />
see how we can use LineSim to plan for this.<br />
Determine Differential Impedance of Coupled Traces<br />
Note: This section assumes that you're somewhat familiar, from the preceding trace-separation example,<br />
with the concept of a "coupling region." If not, see the example above, then return to this section.<br />
LineSim makes it easy to find the differential impedance of any two-trace coupling region – the value is<br />
calculated automatically. This calculation is performed by LineSim's built-in boundary-element field solver, an<br />
"engine" that can accurately and quickly determine the electromagnetic parameters of any PCB cross section.<br />
Check the differential impedance in the Edit Coupling Regions dialog box, in the Impedance area:<br />
1. Point to either of the transmission lines in the schematic; right-click with the mouse and select Edit Type<br />
and Values.The Edit Transmission Line dialog box opens.<br />
2. Click on the Edit Coupling Regions tab.<br />
3. In the Impedance area (in the lower right corner), look for the entry "(Differential)". This gives the<br />
differential impedance, for the current geometric properties of the coupling-region cross section.<br />
The line-to-line differential impedance is currently 124 ohms, considerably higher than the design goal of 100<br />
ohms.<br />
Note: In the following sections, we'll adjust the differential impedance interactively to achieve our goal of<br />
100 ohms. There's another way to solve for differential impedances, in LineSim's stackup editor. We'll see<br />
details in a later section covering the stackup editor, or click here now.<br />
Decrease the Differential Impedance by Reducing the Trace Separation<br />
One way to decrease differential impedance is by coupling the traces more strongly together.<br />
Decrease the trace separation from 8 mils to 6, and re-check the differential impedance:<br />
页码,5/7<br />
� In the Trace-to-Trace Separation area, in either the Left or Right box (whichever one is not grayed out),<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
type "6" to decrease the separation of the traces; press to “accept” the value.<br />
Notice that the differential impedance has dropped to 114, better than before, but still too high.<br />
Decrease the Stackup Dielectric Thickness<br />
There are many ways besides trace separation to affect differential impedance. As in the previous example,<br />
let's try a simple stackup change.<br />
Edit the PCB stackup and decrease the separation between the TOP and VCC layers from 10 mils to 5; then<br />
re-check the differential impedance:<br />
1. In the Edit Transmission Lines dialog box, click the Edit Stackup button. The stackup editor opens.<br />
2. Verify that the Basic tab is selected.<br />
3. In row 3 of the spreadsheet, click in the Thickness column and type to change the value to "5". Press<br />
or click some other cell in the spreadsheet to accept the new value.<br />
4. Verify in the graphical stackup view that the top-most dielectric layer displays as 5 mils thick. Then click<br />
OK to close the editor.<br />
5. Back in the Edit Transmission Lines dialog box, check the new differential-impedance value in the<br />
Impedance area.<br />
The differential impedance is now reduced to 98 ohms. This is very close to our design goal.<br />
View Detailed Results from the Field Solver<br />
The Impedance area on the Edit Coupling Regions tab gives only a brief summary of the data actually<br />
calculated by <strong>HyperLynx</strong>'s field solver.<br />
View the full set of field-solver results by clicking on the Field Solver tab, then clicking the View button:<br />
1. With the Edit Coupling Regions tab still open and selected, click the Field Solver tab.<br />
2. In the Numerical Results area, click the View button. A report file opens in the <strong>HyperLynx</strong> File Editor.<br />
The report file contains the following sections:<br />
� Impedance and Termination Summary - gives a detailed list of possible termination values to use for the<br />
differential pair<br />
� Physical Input Data - records the cross section that was analyzed, for future reference<br />
� Field-Solver Output Data - gives the detailed electrical characteristics of the cross section, including<br />
characteristic-impedance matrix, capacitance matrix, inductance matrix, and propagation speeds<br />
You can also plot the field lines calculated by the field solver (to help give you a feel for how a cross section is<br />
coupled, or just for fun).<br />
Close the File Editor, then set the Propagation mode to Differential and plot the cross section's field lines by<br />
clicking the Start button:<br />
1. Close the File Editor by selecting Exit from its File menu.<br />
2. In the Edit Transmission Line dialog box, in the Field Plotting area, verify that the selection in the<br />
Propagation Mode combo box is Differential.<br />
3. Click the Start button.<br />
The field solver plots the field lines it has calculated. Electric-field lines are shown in blue, and electric<br />
equipotentials are displayed in red. The plot assumes opposed, differential currents in the two traces.<br />
Simulating the Differential Circuit (Optional)<br />
页码,6/7<br />
If you want, you can simulate the differential circuit to see the resulting waveforms.<br />
Close the Edit Transmission Line dialog box, and simulate using Simulate > Run Interactive Simulation; set<br />
the oscilloscope timebase to 500 psec/div and the Vertical Scale to 500 mV/div:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's Crosstalk and Differential-Signal Features<br />
1. Click OK to close the Edit Transmission Line dialog box.<br />
2. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
3. In the Horizontal Scale area, click the down arrow button once to change the timebase to 500 psec/div.<br />
4. In the Vertical Scale area, click the down arrow button once to change the scale to 500 mV/div.<br />
5. Click the Start Simulation button.<br />
页码,7/7<br />
Waveforms appear, showing the signals in several different ways. (Remember that LVDS drivers have an<br />
approximately 400-mV total swing.) The red, purple, yellow, and blue waveforms are taken with single-ended<br />
oscilloscope probes, at the two driver and two receiver pins. The green and orange waveforms are from<br />
differential probes, one at the driver and one at the receiver. LineSim allows any probe to be single-ended or<br />
differential – your choice.<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; next, we turn our attention to<br />
advanced features intended specifically for analysis of SERDES and other GHz-level designs.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_crosstalk_an...<br />
2007-3-26
LineSim's GHz Features<br />
LineSim's GHz Features<br />
If you started this demonstration at the beginning, you've already seen how LineSim's signal-integrity,<br />
crosstalk, and EMC analysis features can help you prevent various problems early in the design cycle.<br />
However, all of the examples so far have been oriented around traditional, synchronous-style digital designs.<br />
In the past few years, a substantially different kind of signaling has appeared: gigabit-per-second or SERDESbased<br />
design, a technology that emphasizes very-high-speed data streams traveling on narrow, serialized<br />
data paths. Along with this new kind of signaling comes requirements for different types of analysis – for<br />
example, lossy simulation and advanced via modeling, and sometimes even the use of SPICE-based driver<br />
models.<br />
In this section, we'll see examples of how LineSim can perform pre-layout simulation for GHz-level designs.<br />
Note: <strong>HyperLynx</strong>'s main GHz-level features are lossy transmission-line simulation, advanced via<br />
modeling, eye diagrams, integrated SPICE (HSPICE and Eldo) simulation, and Touchstone (Sparameter)<br />
support. In this demonstration, we've chosen to show lossy simulation, eye diagrams, SPICE<br />
simulations, and Touchstone modeling in this section, running in LineSim; and to show advanced via<br />
modeling in a later section, running in BoardSim. If you want to look immediately at via modeling, click here<br />
to jump to the BoardSim section. Note that all of these features are available in both LineSim and<br />
BoardSim (except via modeling in LineSim, which is coming in a future version), so the division of features<br />
across pre- and post-layout used in this demonstration is only for convenience.<br />
Lossy Simulations<br />
About Loss<br />
As driver-IC switching times grow shorter, the frequency content of the resulting signals increases. Older-style<br />
designs might have a fundamental frequency of, say, 133 MHz, and significant energy content at several<br />
higher harmonics, but little content at or above 1 GHz. Gigabit-per-second designs, though, use very-highspeed<br />
serialized bit streams that demand extremely sharp switching edges; those edges have harmonic<br />
content well above the 1-GHz level.<br />
As a result, physical effects – collectively called "loss" – that play only a minor role in traditional designs<br />
become important in GHz-level designs; and simulators must include those effects in their results. The losses<br />
that occur on PCBs are of two types: one is due to the resistance in the trace metal, and the other is due to<br />
the lossy nature of the surrounding dielectric layers. (The FR-4 material used in typical PCB manufacturing is<br />
particularly prone to loss, compared to other more-expensive types of dielectric.)<br />
Both of these effects – usually known, respectively, as "skin effect" and "dielectric loss" – are complex to<br />
simulate in the time domain because each is frequency dependent, meaning basically that each gets worse<br />
as signal frequency increases. "Skin effect" refers to the fact that the current in a trace tends to crowd more<br />
and more to the edges of the trace cross section as frequency increases; because there is more crowding at<br />
higher frequencies, there is more resistance. Dielectric loss works similarly; the higher the signal frequency,<br />
the higher the loss.<br />
These two factors combine to change the shape of a signal launched at a driver IC as it travels down a trace:<br />
higher-frequency components of a signal are attenuated more severely than lower, which tends to "soften" a<br />
signal's shape and drop its amplitude. Shape changes also result from the fact the different frequencies<br />
propagate at different speeds. The sum total of these lossy effects changes what a signal at the end of a PCB<br />
trace looks like compared to when it was launched by a driver. This in turn means that timing and other critical<br />
signal-quality factors are significantly altered by loss. In SERDES-based systems, it is not uncommon for<br />
signals to be attenuated greatly before arriving at receiver ICs.<br />
Running a Lossy Simulation in LineSim<br />
Fortunately, the algorithmic complexities of accurately predicting frequency-dependent loss are buried away<br />
inside the <strong>HyperLynx</strong> simulator. It's a simple matter for you to enable lossy simulations for designs which need<br />
it, as the following example shows.<br />
Note: To simulate loss, <strong>HyperLynx</strong> uses the well-known and trusted “W-element” algorithm (although with<br />
some added improvements).<br />
Load the Demo Schematic "Lossy.ffs"<br />
Load the demo schematic "Lossy.ffs" using File > Open LineSim Schematic:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
页码,1/11<br />
2007-3-26
LineSim's GHz Features<br />
1. On LineSim's File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name "Lossy.ffs". The dialog box closes and a schematic appears in LineSim's<br />
editor.<br />
The schematic is very simple: a driver IC, 20 inches of transmission line buried in FR-4 on a PCB's inner<br />
layer, and a receiver IC. The ICs were modeled for simplicity with the fastest driver in the EASY.MOD library:<br />
a generic 3.3-V CMOS driver with a nominal switching time of 300 ps. (Many SERDES-type drivers have even<br />
faster edges.)<br />
Simulate First with No Loss<br />
First, let's run a simulation with no loss; then we'll compare to a lossy simulation.<br />
Simulate the schematic using Simulate > Run Interactive Simulation; verify first that lossy analysis is disabled<br />
and set the driver modeling to Fast-Strong:<br />
1. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
2. On LineSim's main menu bar, select Lossy and verify that Enable Lossy Simulation is not enabled.<br />
3. Back in the oscilloscope, in the IC Modeling area, select the Fast-Strong radio button. (This will give us<br />
the fastest possible edge time for this driver, which should show the most loss.)<br />
4. Click the Start Simulation button.<br />
In the oscilloscope display, note a sharp driver waveform in red, and after a time delay corresponding to the<br />
20 inches of trace length, a similarly sharp receiver waveform in yellow.<br />
Simulate with Loss Enabled<br />
Now, let's enable a lossy simulation of the same circuit and see if there's any visible difference.<br />
Simulate the schematic again using Simulate > Run Scope; but first use the Lossy menu to enable lossy<br />
simulation:<br />
1. On LineSim's Lossy menu, select Enable Lossy Simulation. Notice on the toolbar that a button with an<br />
attenuating blue waveform is depressed, indicating that loss is enabled.<br />
2. In the oscilloscope, click the Start Simulation button again.<br />
The new waveform at the receiver (in yellow) – generated with lossy analysis turned on – does indeed look<br />
different than the previous, lossless waveform: it is delayed compared to and has less amplitude than its<br />
predecessor. If the switching edge were even faster, or the trace longer, or the PCB's dielectric material<br />
lossier, the effect would be even stronger.<br />
Look also at the red driver waveform, just past time 7 ns (toward the right side of the display). The disturbance<br />
in the waveform is due to a reflection from the receiver IC's input capacitance. Note how much less severe<br />
(i.e., how attenuated) it is in the lossy simulation versus in the lossless.<br />
Viewing Loss in the Frequency Domain<br />
In GHz-level designs, it is often useful to consider loss (and other effects) in the frequency domain. Some<br />
specifications, for example, discuss total loss in dB terms at a key frequency. LineSim gives you an easy way<br />
to view loss in the frequency domain for any transmission line in a schematic.<br />
Note: Actually, a few conditions must be met for frequency-domain loss information to be available. First,<br />
the transmission line must be modeled with a "style" that's tied to a PCB stackup or cross section (because<br />
prediction of loss is based on knowledge of cross-section geometry and materials). Second, lossy analysis<br />
must be enabled.<br />
Let's view the loss associated with the 20-inch transmission line in the current schematic.<br />
View the transmission line's loss by right-clicking on it and selecting the Loss tab:<br />
页码,2/11<br />
1. Click Close to close the oscilloscope.<br />
2. In the schematic, point to the transmission line and right-click on it; select Edit Type and Values. The Edit<br />
Transmission Line dialog box opens.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
3. Click the Loss tab. A special viewer appears.<br />
Note several aspects of the loss viewer:<br />
� the graph shows attenuation (loss) versus frequency<br />
� three curves are plotted:<br />
� resistive (skin effect) loss in red<br />
� dielectric loss in green<br />
� total loss in blue<br />
When Does Dielectric Loss Dominate?<br />
Dielectric loss increases with frequency more strongly than resistive. (Dielectric loss grows linearly with<br />
frequency, and skin effect only as the square root of frequency.) As a result, dielectric loss at some point<br />
begins to dominate resistive loss. It's easy in LineSim's loss viewer to see exactly where the cross-over point<br />
is.<br />
In the loss viewer, drag out a "box" with the mouse around the area where the crossover occurs, in order to<br />
zoom in for a closer look:<br />
1. Look for the area in the lower right of the loss graph, where the red and green curves intersect.<br />
2. Use the mouse to click and drag a rectangular area around the intersection point.<br />
3. Release the mouse; the graph is zoomed to the area you specified.<br />
Note that the green curve crosses over the red one a little above 700 MHz, meaning that at that frequency,<br />
dielectric loss becomes more important than skin-effect loss.<br />
Actually, there's an even easier way to find out where dielectric loss dominates: note the Dielectric Loss<br />
Dominates At box at the bottom right of the dialog box. It automatically calculates at exactly what frequency<br />
the crossover occurs.<br />
Close the loss-viewer dialog box, and disable loss for later sections of the demonstration:<br />
1. Click OK to close the Edit Transmission Line dialog box.<br />
2. On LineSim's main menu bar, select Lossy, then re-select Enable Lossy Simulation to turn it off. The bluewaveform<br />
button on the toolbar should no longer be depressed.<br />
Integrated SPICE Simulations<br />
Vendors of some very-high-speed driver (and receiver) ICs make models available for their components only<br />
in SPICE format. While this is not always necessary, it is true that some devices have subtle behavior which is<br />
difficult to model accurately in the IBIS behavioral format. In almost all cases, these SPICE models are<br />
provided in a proprietary format: either HSPICE or Eldo (and sometimes using encryption, which hides all<br />
model details from the user).<br />
HSPICE is a well-known industry SPICE simulator. Eldo is an alternative SPICE-based simulator from Mentor<br />
Graphics; it has a robust HSPICE-compatible mode, and offers some features not found in HSPICE (like an<br />
industry-leading dielectric model for its lossy transmission line, and a unique method of simulating Sparameter<br />
models in the time domain that is extra-fast and stable.) When you need to run signal-integrity<br />
simulations with SPICE-based models, <strong>HyperLynx</strong> provides a seamless interface to both HSPICE and Eldo.<br />
(A special version of Eldo – “Eldo for <strong>HyperLynx</strong>” – is available to <strong>HyperLynx</strong> users.)<br />
Because of the need sometimes to use SPICE models, some designers have concluded that they need to<br />
drop their traditional signal-integrity tools and proceed using only a SPICE simulator. But there are a number<br />
of disadvantages to this approach:<br />
� "Raw" SPICE has a primitive, unfriendly user interface compared to tools like <strong>HyperLynx</strong>; much valuable<br />
design time ends up being wasted on set-up<br />
� SPICE interconnect netlists have to be created manually in a text editor; even for simple "what-if"<br />
scenarios, this is time-consuming and error prone, while for post-route scenarios it's essentially impossible<br />
� Field solutions to convert geometric cross sections into electrical parameters have to be generated<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
页码,3/11<br />
2007-3-26
LineSim's GHz Features<br />
manually; again this is error-prone, and impossible for complex interconnect scenarios which involve many<br />
different cross sections<br />
� Stimulus for an eye diagram has to be manually generated – again, a tedious and error-prone task<br />
A better approach is to integrate the SPICE simulation engine into the robust, friendly <strong>HyperLynx</strong><br />
environment, an approach that offers the best of both worlds: you get the extra accuracy of running SPICE IC<br />
models, and all the convenience and productivity of the <strong>HyperLynx</strong> environment.<br />
In the following example, we'll see how a SPICE simulation is set up and run using <strong>HyperLynx</strong>.<br />
Note: The dependency of high-speed designers on SPICE simulation may be temporary. In the past, all<br />
digital buffers could be modeled accurately in the non-proprietary IBIS format. Now, some devices have<br />
appeared which their vendors feel are more accurately represented in SPICE. However, very advanced<br />
driver models currently in design reportedly have simplified analog characteristics (to enforce strict<br />
linearity); there are early indications that IBIS modeling may once again suffice to capture the analog<br />
behavior. Also, SERDES-type I/O's have increasingly large amounts of associated digital logic (to generate<br />
pre-emphasized driver signals or implement receiver equalization circuits), which may have to be modeled<br />
in mixed analog/digital languages like VHDL-AMS or Verilog-AMS – SPICE is unable to handle significant<br />
amounts of digital logic.<br />
Whatever the future holds, <strong>HyperLynx</strong> is committed to providing its customers with all of the analysis<br />
engines required to handle relevant types of models.<br />
Setting Up a SPICE Simulation<br />
Note: LineSim does not include a built-in SPICE simulator. To use LineSim's integration with SPICE, you<br />
need a separate SPICE license – for either HSPICE or Eldo. But if you do have it, <strong>HyperLynx</strong> will wrap<br />
itself around your choice of SPICE engine to give you a much easier-to-use, more-productive simulation<br />
environment than you'd have with just "raw" SPICE. Again, a special version of the Eldo SPICE engine is<br />
available for <strong>HyperLynx</strong> customers, at a reasonable cost.<br />
Change the Schematic's Driver Model to a SPICE Model<br />
For this demonstration, two SPICE models have been provided. For simplicity, they're not real models from a<br />
semiconductor vendor – in fact, they have no analog "internals" at all. But it doesn't matter for this demo:<br />
we're going to look at how SPICE models are set up in LineSim, and at how SPICE results are loaded<br />
automatically into the oscilloscope after simulation, though we're not actually going to run SPICE.<br />
Using the schematic "Lossy.ffs", change the driver-IC model to SPICE model "Fast_Drv.sp":<br />
1. If the schematic "Lossy.ffs" is already open from the previous section on "loss," go to the next step.<br />
Or<br />
If you jumped to this section from another topic, use File > Open LineSim Schematic; then double-click<br />
"Lossy.ffs".<br />
2. In the schematic, point to the driver-IC symbol (left end of the transmission line) with the mouse, and<br />
double-click. The Assign Models dialog box opens.<br />
3. In the Pins list, double-click on pin U1.1. The Select IC Model dialog box opens.<br />
4. Select the SPICE radio button; the Files list shows only the two SPICE models shipped with the<br />
demonstration software.<br />
5. In the Files list, click once to highlight model Fast_Drv.sp.<br />
6. In the Models list, double-click on model Fast_Drv to select it. The dialog box closes.<br />
页码,4/11<br />
Now we're back in the Assign Models dialog box. Note that a small spreadsheet has appeared. The purpose<br />
of the spreadsheet is to help you make connections to all of the "ports" on the SPICE model. (The model's<br />
ports are its external connection points, e.g., for a stimulus waveform, for power supplies, for its output pins,<br />
etc.).<br />
This particular SPICE model has four ports: "Vin" (where the model expects to be stimulated), "Vout" (its<br />
output pin, which should be connected in the schematic), and "Vcc" and "Gnd" (the model's power-supply<br />
pins). Note that LineSim has automatically recognized the names "Vcc" and "Gnd" and guessed that they<br />
should be connected to LineSim's built-in power supplies. (If a SPICE model had more-obscure supply<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
names, you could connect them manually.)<br />
LineSim couldn't guess how to connect the stimulus and output ports, so we'll make the connections<br />
manually.<br />
In the SPICE-port-mapping spreadsheet, map the model's "Vin" port to LineSim's built-in "Stimulus," and the<br />
model's "Vout" port to pin "U1.1" in the schematic:<br />
1. In the port-mapping spreadsheet, in the Circuit Connection cell for the "Vin" port, click to open the combobox<br />
list of possible connections. The SPICE model's Vin port expects digital stimulus, so select the<br />
"Stimulus" item in the list.<br />
2. In the Circuit Connection cell for the "Vout" port, click to open the combo box. The Vout port is the pin on<br />
the SPICE model that should be connected in the schematic, so scroll down and choose item "U1.1", the<br />
driver-pin name in the schematic.<br />
The SPICE driver model has now been assigned and completely hooked up. Next, let's assign and connect a<br />
SPICE receiver model.<br />
Note: An important difference between SPICE and IBIS IC models is that SPICE models have "explicit"<br />
ports. This means that with a SPICE model, you're forced to manually connect power supplies, one or<br />
more input stimulus pins, possibly some control pins (there weren't any in this example), and one or more<br />
output pins. Compare this to using IBIS models: the input/stimulus, power-supply, and control pins are<br />
"implicit" and LineSim can connect them automatically for you. This difference results because SPICE<br />
models are inherently "lower level" than IBIS models. Fortunately, through its port-mapping spreadsheet,<br />
LineSim (and BoardSim) makes it fairly easy to make and manage these extra connections.<br />
Change the Receiver Model to a SPICE Model<br />
Change the receiver-IC model to SPICE model "Fast_Rcv.sp"; in the port-mapping spreadsheet, map the<br />
model's "Vin" port to pin "U2.1" in the schematic:<br />
1. In the Pins list, double-click on pin U2.1. The Select IC Model dialog box opens.<br />
2. Select the SPICE radio button.<br />
3. In the Files list, click once to highlight model Fast_Rcv.sp.<br />
4. In the Models list, double-click on model Fast_Rcv to select it. The dialog box closes.<br />
5. In the spreadsheet, in the Circuit Connection cell for the "Vin" port, click to open the combo box. The Vin<br />
port is the pin on the SPICE model that should be connected in the schematic, so scroll to the bottom of<br />
the list and choose item "U2.1", the receiver-pin name in the schematic.<br />
We're done assigning and hooking up our SPICE models. Now let's look at how you'd run a SPICE simulation.<br />
Run a SPICE Simulation<br />
Since you may not have HSPICE or Eldo installed on your machine, we can't actually run a SPICE simulation.<br />
But we can see how the simulation is launched, and how SPICE waveforms are automatically read back into<br />
LineSim's oscilloscope.<br />
Close the Assign Models dialog box, then use Simulate > Run Interactive Simulation to open the oscilloscope;<br />
click on Start Simulation to launch a SPICE simulation:<br />
1. Click OK to close the Assign Models dialog box.<br />
2. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
3. If there's waveform in the oscilloscope, click Erase to clear it.<br />
4. Click the Start Simulation button. A message box opens.<br />
页码,5/11<br />
The message appears because LineSim has noticed that you're running with SPICE models, not IBIS models.<br />
As a result, it wants to switch automatically to a SPICE simulator rather than "native” – <strong>HyperLynx</strong> simulator,<br />
which is exactly what we want. Notice under the Start Simulation button that we could have changed the<br />
radio-button setting and manually chosen Eldo. If you were an HSPICE rather than Eldo user, a one-time<br />
Preferences change would re-label this radio button to “HSPICE.”<br />
Click OK in the message box to open the Run Eldo Simulation dialog box; click OK to begin running the<br />
SPICE simulator:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
1. Click OK to close the message box. The radio-button setting below the Start Simulation button changes<br />
automatically to Eldo, and the Run Eldo Simulation dialog box opens.<br />
2. The default settings in the dialog box are fine; click OK to run a SPICE simulation.<br />
Again, we're not actually running SPICE in this demonstration. But if we were, the following steps would now<br />
occur:<br />
� LineSim would create a SPICE netlist (targeted to your choice of HSPICE or Eldo) representing the<br />
schematic; the SPICE driver and receiver models would be included with all of the connections you made<br />
in the port-mapping spreadsheet.<br />
� For each transmission line in the schematic, LineSim would invoke the <strong>HyperLynx</strong> field solver to determine<br />
its electrical characteristics, then write out the electrical data in HSPICE or Eldo matrix format. If lossy<br />
analysis was enabled, the transmission-line data would include skin-effect and dielectric-loss parameters.<br />
� If any Touchstone (S-parameter) models were in the schematic (there were none in this example), they<br />
would be included in the netlist.<br />
� LineSim would invoke HSPICE or Eldo on the netlist.<br />
� Assuming a SPICE license were found, a window would open and HSPICE or Eldo would begin running in<br />
it; all of the SPICE messages would be visible so that you could track its simulation progress in detail.<br />
� If there were an error in one of the SPICE files – for example, a syntax error in one of the models we<br />
assigned – then the SPICE window would automatically jump to the location of the first error message, for<br />
convenience.<br />
Since we're not actually running these steps in the demonstration, a message box opens instead.<br />
Note: If you happen to be running this demonstration with the “real” (not demo) version of <strong>HyperLynx</strong> and<br />
have Eldo installed, then Eldo will actually begin running on the schematic, and the detailed instructions in<br />
this section won’t be followed. Also, Eldo will report a model error, since the models used in the schematic<br />
are “phony” and don’t actually contain any transistor data.<br />
View SPICE Results in the Oscilloscope<br />
If we'd actually run HSPICE or Eldo, then:<br />
� At the end of simulation, the SPICE window would close.<br />
� LineSim would automatically read the SPICE simulation results and load them into the oscilloscope, where<br />
you could view them like any other <strong>HyperLynx</strong> waveform.<br />
We didn't run the SPICE simulation here, but the demonstration does include a real SPICE results file. Let's<br />
make LineSim read it in.<br />
In the message box, click OK; the demonstration software looks for a stored SPICE results file, reads it, and<br />
presents the waveforms in the oscilloscope.<br />
Note that the waveform behaves no differently than if it were generated by the native <strong>HyperLynx</strong> simulator:<br />
you can scale it, scroll around in it, etc.<br />
Touchstone (S-Parameter) Modeling<br />
Introduction to Touchstone<br />
页码,6/11<br />
SPICE models aren’t the only new type of model appearing in signal-integrity simulations due to the higher<br />
frequencies of today’s designs (especially SERDES technology). Increasingly, models for passive<br />
interconnect structures (like connectors and IC packages) are being provided in “Touchstone” format.<br />
Touchstone models come from the RF/microwave-engineering world, where they’ve been used for many<br />
years to accurately characterize ultra-high-speed devices and structures.<br />
Touchstone models differ fundamentally from the other types of models (IBIS, SPICE, etc.) used in signal<br />
integrity, because they’re based in the frequency domain. The Touchstone format can be used to describe<br />
several types of “network parameters” – S (scattering), Z (impedance), and Y (admittance) parameters. Each<br />
of these types considers the structure being modeled in a very generic way (as a “multi-port” black box), and<br />
at every frequency of interest, gives a matrix describing how each port behaves.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
Because the models are expressed in the frequency domain, they can’t be directly simulated in the time<br />
domain like, say, an IBIS model. Fortunately, most SPICE simulators (including HSPICE and Eldo) can use<br />
Touchstone models in transient simulation, using one of several possible techniques, the most-common being<br />
“convolution.” A particular strength of the Eldo simulator is its ability to “fit” S-parameter models (using<br />
complex poles), which has various advantages over simple convolution (model compression, speed,<br />
passivation, and causality enforcement).<br />
In the signal-integrity world, S-parameter models are by far the most-common type of Touchstone model in<br />
use. One typical way of creating such models is by measurement, using a vector network analyzer, which<br />
directly outputs S-parameter data. Another possibility is to model the structure using 3-D electromagnetic<br />
software; these tools also typically output S parameters.<br />
Including Touchstone Models in a LineSim Schematic<br />
As with the SPICE-model simulation in the previous section, because we’re not actually running a SPICE<br />
engine in this demonstration, we can’t simulate a Touchstone model. However, we can easily show how to<br />
include and set up a typical Touchstone model in a LineSim free-form schematic – it’s actually even easier<br />
than with a SPICE driver model.<br />
Let’s modify our existing schematic (the one used in the previous lossy and SPICE-IC sections) and show<br />
how a hypothetical 4-port Touchstone model (of, say, a small section of a connector) could be added.<br />
Close the oscilloscope, then use Ctrl+C / Ctrl+V to make a copy of the existing driver-tline-receiver circuit;<br />
delete both transmission lines, then click the drawing palette’s Add Package/Connector button and place the<br />
new symbol between the four dangling wires:<br />
1. Click Close to close the oscilloscope dialog box.<br />
页码,7/11<br />
2. Since we’re using a 4-port Touchstone connector model, we need two drivers for the input side and two<br />
receivers for the output. The easiest way to create this is to make a copy of the existing driver-tlinereceiver<br />
circuitry. Start by dragging with the mouse a rectangle around the existing symbols; then release<br />
the mouse button. The existing symbols all highlight in red.<br />
3. On the keyboard, press Ctrl+C (or from the Edit menu, select Copy). Then press Ctrl+V (or from the Edit<br />
menu, select Paste). A copy of the selected symbols appears in the editor, highlighted in red. Note that<br />
the new symbols have unique, new reference designators.<br />
4. Place the mouse over one of the new symbols, and drag the new symbols as a group to be just below the<br />
previously existing symbols (so that the drivers are immediately above/below each other, and same for<br />
the transmission lines and the receivers).<br />
5. For this simulation, let’s replace the transmission lines with the Touchstone interconnect model. So point<br />
with the mouse to the first t-line, right-click, and on the pop-up menu, select Delete. The t-line disappears.<br />
Then, repeat and delete the second t-line.<br />
6. Now, add a package/connector symbol: on the free-form schematic editor’s drawing palette (arranged<br />
vertically along the left margin of the editor’s window), click the Add Package/Connector symbol (near the<br />
bottom). A red symbol attaches itself to the cursor; move it to a position between the four dangling wires in<br />
the schematic, and click once to place it.<br />
So far, we’ve placed an empty symbol on the schematic. It could actually be used to house any passive (nondriving)<br />
SPICE or Touchstone model; in this case we’re going to assign a 4-port S-parameter model to it. The<br />
model we’ll use is “phony”: it contains a valid “introductory” line, but no modeling data. For this demonstration,<br />
though, it doesn’t matter, since we’re only looking at how Touchstone assignments are made.<br />
Double-click on the package/connector symbol, and in the Assign Package / Connector Model dialog box,<br />
choose model “Example.s4p”; move ports 2 and 4 to the right side of the symbol; then close the Assign<br />
Package / Connector Model dialog box and wire the Touchstone symbol to the drivers and receivers:<br />
1. Point with the mouse to the empty package/connector symbol, and double-click. The Assign Package /<br />
Connector Model dialog box opens.<br />
2. In the Model Type combo box, select Touchstone Models. Only one Touchstone file is shipped with the<br />
demo software; verify that Example.s4p is highlighted in both the Libraries and Devices list boxes. Click<br />
the OK button; the Assign Package / Connector Model dialog box closes.<br />
3. In the schematic, the empty symbol has been replaced by one labeled “Example.s4p” and showing 4 ports<br />
on its left side. Let’s assume that this model is arranged with two internal paths, one from port 1 to port 2,<br />
and the other from port 3 and port 4. (Probably, the two interconnects are coupled to each other.)<br />
4. Double-click the Touchstone symbol again. In the Assign Package / Connector Model dialog box, in the<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
Side column for both port 2 and 4, click and select “right.” Then click OK.<br />
5. Back in the schematic, note that the Touchstone symbol now has two ports on each side. (If the complete<br />
port names are not displayed, touch each pin name with the mouse; a tool tip displays the full name.)<br />
6. Finally, wire the IC-buffer symbols to the nearest ports. First, connect driver pin U1.1 to Touchstone port 1<br />
by placing the mouse over the “dot” at U1.1 (note that the mouse cursor changes to a “cross”), then<br />
dragging a wire from it to the connector’s port-1 dot, then releasing the mouse. Repeat to connect driver<br />
pin U3.1 to port 3.<br />
7. For variety, connect the remaining two wires in an alternate way: click on receiver symbol U2.1, and with<br />
the mouse button held down, drag U2.1 until its pin dot touches port 2’s dot. Release the mouse button<br />
briefly, then press it down again and drag U2.1 away from the Touchstone symbol; a wire appears<br />
between the two symbols. Repeat to connect U4.1 to port 4.<br />
If you complete all of the steps above correctly, your resulting schematic should look something like this:<br />
At this point, if you were running a “real” copy of <strong>HyperLynx</strong> and had either the HSPICE or Eldo SPICE<br />
simulators installed, you could immediately open the oscilloscope, and see the effects of driving the sample Sparameter<br />
model. In this demonstration, we can’t actually do it. But the preceding example shows how easily<br />
S-parameter (and other Touchstone) models are included in a LineSim free-form schematic.<br />
Note: Actually, if you happen to be running this demonstration with the “real” (not demo) version of<br />
<strong>HyperLynx</strong> and Eldo, then Eldo will actually begin running on the schematic, but end up reporting a model<br />
error. The reason is that the model used in this example is “phony” and doesn’t actually contain any matrix<br />
data.<br />
Eye Diagrams and Multi-Bit Stimulus<br />
USB 2.0 Example<br />
About Eye Diagrams<br />
页码,8/11<br />
All of the waveforms generated in earlier portions of this demonstration were based on single switching edges<br />
or oscillating waveforms. Indeed, these types of analysis are the backbone of traditional, synchronous digital<br />
design.<br />
However, very-high-speed SERDES-style designs are usually examined in the time domain in a different way<br />
– by the use of eye diagrams. Eye diagrams superimpose large numbers of bit transitions one over the other<br />
to build up a view of a data stream in which new measures of signal quality – like jitter and eye opening – can<br />
readily be judged. Many modern oscilloscopes can run either in traditional, single-edge mode or in eyediagram<br />
mode. Likewise, in the <strong>HyperLynx</strong> GHz products, LineSim's and BoardSim's oscilloscope can run in<br />
either "standard" or eye-diagram mode.<br />
Generating eye diagrams with a simulation tool is more difficult than generating them in the lab with real<br />
hardware. First, in the lab, it takes only a brief amount of time to capture hundreds of millions of bit cycles<br />
from a data stream. But in a software-based simulator (especially if advanced IC modeling is required), it may<br />
take many minutes to generate a thousand or even a few hundred cycles. Second, whereas in the lab, test<br />
equipment is readily available to generate statistically useful bit sequences, in software the user has the<br />
responsibility of creating the stimulus that should be used to drive the generation of an eye diagram.<br />
Note that eye diagrams can only be constructed by driving a sequence of bits down a trace. This means that<br />
in order to generate an eye diagram, you must define multi-bit stimulus. Thus, these two features – eye<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
diagrams and multi-bit driving – are tightly linked, and we'll demonstrate them together in this section.<br />
About Multi-Bit Stimulus<br />
Some designers of SERDES-based designs today use standalone SPICE netlists to create eye diagrams.<br />
While possible (and sometimes even necessary because a certain IC model is available only in SPICE<br />
format), using "raw" SPICE for eyes is usually cumbersome and time-consuming. SPICE simulations often run<br />
very slowly, and setting up for simulation (especially, generating stimulus patterns) is awkward.<br />
LineSim and BoardSim, by contrast, make the generation of eye diagrams fairly easy. As the following<br />
example will show, set-up activities, like defining a stimulus pattern, are much easier in <strong>HyperLynx</strong> than in<br />
SPICE. And when simulations can be performed using IBIS models, eye diagrams are created quickly. Nor is<br />
it a requirement to run simulations in <strong>HyperLynx</strong>'s native simulator: eye diagrams are created as easily for<br />
SPICE simulations as they are for <strong>HyperLynx</strong> simulations. (Both LineSim and BoardSim offer integrated<br />
SPICE simulation; for details and a demonstration using LineSim, click here.)<br />
Let’s look at an example of an eye diagram, for a typical USB 2.0 link modeled in LineSim’s free-form<br />
schematic editor. This example is more complex than many of the others used in this demonstration, to<br />
remind you that <strong>HyperLynx</strong> products are regularly used, world-wide, on large and realistic design problems.<br />
Load Schematic "USB_link.ffs" and Look at the USB 2.0 Design<br />
Load the schematic "USB_link.ffs" using File > Open LineSim Schematic:<br />
1. On LineSim’s File menu, select Open LineSim Schematic. A dialog box opens.<br />
2. Double-click on the file name USB_link.ffs. The dialog box closes and a schematic appears in LineSim’s<br />
free-form editor.<br />
3. If the entire schematic doesn’t appear on the screen, then on the View menu, select Fit to Window. The<br />
schematic zoom level automatically adjusts.<br />
The schematic we’ve loaded represents a typical topology for a USB 2.0 implementation, implemented in<br />
LineSim’s free-form schematic editor. Looking from left-to-right, the design incorporates these elements:<br />
� A differential driver pair on a USB 2.0 host controller; the differential buffer is modeled using an IBIS model<br />
from Cypress Semiconductor<br />
� A pair of coupled transmission lines, representing the differential-pair routing from the host controller to a<br />
ribbon cable<br />
� A model of three side-by-side differential pairs in a 28-AWG ribbon cable, constructed by coupling six<br />
transmission lines together in a single LineSim coupling region (for basic information on “coupling regions”<br />
and how LineSim represents and simulates crosstalk, click here)<br />
� Another pair of coupled transmission lines, representing more differential-pair trace routing between the<br />
ribbon cable and a USB cable<br />
� Another pair of coupled transmission lines, representing a 5-meter USB cable<br />
� Another pair of coupled transmission lines, representing the routing in the USB peripheral device<br />
� A differential receiver pair on a USB 2.0 peripheral controller, again modeled using a Cypress<br />
Semiconductor IBIS model<br />
Essentially, the system in this schematic consists of a USB host controller, linked through a ribbon cable (with<br />
a short amount of differential-trace routing on each end) and 5-meter USB cable to a USB peripheral (with<br />
routing and controller input pair). The interconnect lengths are “stressed” to the maximum delay lengths<br />
allowed by the USB 2.0 specification. Will the design actually work? Let’s create an eye diagram, compare it<br />
to the spec’s minimum allowed eye opening, and find out.<br />
Setting Up an Eye Diagram<br />
页码,9/11<br />
It's easy to tell LineSim’s oscilloscope to generate an eye diagram, and to create the required multi-bit<br />
stimulus to drive it.<br />
First, open the oscilloscope using Simulate > Run Interactive Simulation, and set the oscilloscope to eyediagram<br />
mode; click the Configure button to open the Configure Eye Diagram dialog box:<br />
1. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
LineSim's GHz Features<br />
2. In the oscilloscope, in the Operation area, select the Eye Diagram radio button.<br />
3. In the Eye Diagram area, click the Configure button; the Configure Eye Diagram dialog box opens.<br />
With a single radio-button click, we've told the oscilloscope to generate an eye diagram. But before we can<br />
simulate, we have to tell LineSim’s simulator what bit sequence to drive down the differential pair. Fortunately,<br />
this is easy to do in the dialog box that's now open.<br />
The most common type of stimulus used in eye-diagram generation is the "PRBS" or "pseudo-random bit<br />
sequence." However, some technology-specific specifications (like USB 2.0) prescribe their own worst-case<br />
patterns. LineSim allows you to choose between several “built-in” patterns (some configurable, like PRBS<br />
stimulus, for which you can set length, repetition count, starting state, etc.); or your own custom pattern. For<br />
this case, LineSim has the worst-case USB 2.0 pattern built-in.<br />
In the dialog box, choose the USB 2.0 Compliance pattern:<br />
� In the Bit Pattern area, pull down the Sequence combo box, and select USB 2.0 Compliance.<br />
Note that the graphical view updates to show the bit pattern that will be driven during simulation. The<br />
sequence is 330 bits long (per the USB 2.0 specification); you can scroll the sequence viewer, if you want, to<br />
see all of it.<br />
We’re not quite finished specifying the stimulus. We still need to make choices about the length of each bit’s<br />
interval, how many times (if any) to have the pattern repeat, whether to skip any bits at the beginning of the<br />
pattern, and even the number of eyes to show. Also any real driver suffers from a certain amount of inherent<br />
jitter, i.e., a certain amount of random uncertainty in the times at which switching edges are delivered relative<br />
to each other. We can include this effect in our simulations by specifying a jitter percentage.<br />
Set the bit interval to 2.08 ns and the sequence repetitions to 1; select to skip the first 20 bits of output; and<br />
set the jitter to 6% of the bit interval:<br />
1. In the Stimulus area, in the Bit Interval box, type “2.08”. In the Sequence Repetitions box, type (or select)<br />
“1”.<br />
2. In the Display area, in the Skip First box, type “20”. In the Show combo box, select “1”.<br />
3. In the Random Jitter area, in the Amount box, type “6” (and verify that the associated combo box is set to<br />
“% of interval”). Verify that the Distribution combo box is set to “Gaussian”.<br />
With these steps, you’ve completely specified the eye diagram’s stimulus. However, before simulating, there<br />
is another optional step that will make it easier to judge whether the resulting eye diagram is acceptable or<br />
not. Eyes are judged by the extent of their “opening”; each SERDES technology typically specifies a minimum<br />
allowed opening, which can be translated into an “eye mask” that visually defines a “keep-out” region. If a<br />
given eye penetrates this region, then the eye fails to meet the spec’s minimum requirements for signal<br />
quality. Even if the eye is open, the mask gives a quick visual impression of how much margin the eye has.<br />
Similar to eye patterns, LineSim (and BoardSim) includes some built-in masks, and allow you to define your<br />
own. Once again (since USB 2.0 is a common and important signaling technology), the mask we need is built<br />
in to the <strong>HyperLynx</strong> mask library.<br />
Switch to the Eye Mask tab, and choose the "USB2.0-High_Speed_RX" mask:<br />
1. Click on the Eye Mask tab.<br />
2. In the Mask Library area, pull down the combo box and select the "USB2.0-High_Speed_RX" mask. The<br />
numeric values that define the mask in the picture change to match the new selection.<br />
Now, the stimulus to create the eye diagram and the mask to judge its success are both ready. Let’s run a<br />
simulation and see whether our USB topology will actually work.<br />
Creating the Eye Diagram<br />
Close the Configure Eye Diagram dialog box; set the oscilloscope's display to a horizontal scale of 500 ps/div,<br />
a vertical scale of 200 mV/div, and a vertical position of –400 mV; set the horizontal delay to 1.4 ns; attach a<br />
differential probe to the receiver pins Device.D+ and Device.D-; and use Lossy > Enable Lossy Simulation to<br />
turn on lossy analysis:<br />
1. Click OK to close the Configure Eye Diagram dialog box.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
页码,10/11<br />
2007-3-26
LineSim's GHz Features<br />
2. In the oscilloscope, in the Horizontal Scale area, click the down arrow button once to set the horizontal<br />
scale to 500 ps/div.<br />
3. In the Vertical Scale area, click the down arrow button twice to set the vertical scale to 200 mV/div.<br />
4. In the Vertical Position area, in the box, type “-400”.<br />
5. In the Horizontal Delay area, in the box, type “1.4”.<br />
6. In the Show area, click the Eye Mask check box to enable it. A portion of a mask appears in the<br />
oscilloscope’s viewer.<br />
7. At the right edge of the oscilloscope’s viewer, drag the horizontal scroll bar down until a dashed green<br />
ground line appears in the center of the viewer. Positioned symmetrically around the green line, you<br />
should also see a six-sided blue shape that defines the eye mask’s keep-out region.<br />
8. Then click the Attach Probes button. The Attach Oscilloscope Probes dialog box appears.<br />
9. Verify that two differential probes (red and yellow) are set, one for the driver pin pair (Host.D+/-), and one<br />
for the receiver (Device.D+/-).<br />
0. Click OK to close the dialog box and return to the oscilloscope.<br />
1. In the Show area, note that both the red and yellow probes are enabled. Since we’re interested in the eye<br />
diagram only at the receiver IC, click the red probe’s check box to disable it.<br />
2. Finally, before simulating, from LineSim’s main menu, on the Lossy menu, select Enable Lossy<br />
Simulation. (This is essential to producing an accurate eye diagram.)<br />
Now, generate the eye diagram: click the Start Simulation button.<br />
It takes longer to generate an eye diagram than a regular single-edge simulation, since so many switching<br />
edges have to be generated. Still, unless your computer is very slow, this 330-bit diagram builds at a<br />
reasonable speed. Note that unlike SPICE and other analog simulation tools, LineSim does not make you wait<br />
until the simulation is finished to see the results – instead, you actually see the eye diagram being built in realtime.<br />
This is sometimes quite advantageous, because it makes it quick to see whether you’ve made an error<br />
in your set-up; if so, you can stop the simulation immediately and not waste time on a “bad” simulation.<br />
Note that this eye is fairly "open," indicating reasonable signal quality. To see this very clearly, you can center<br />
the eye mask on the eye.<br />
Click the Adjust Mask button, and drag the mask with the mouse until it is centered:<br />
1. Below the oscilloscope display window, click the Adjust Mask button.<br />
页码,11/11<br />
2. In the display window, place the mouse near the center of the mask’s keep-out region, then drag the mask<br />
with the mouse button down, until the mask is reasonably centered in the eye.<br />
Now you can see exactly how open your eye is compared to the USB 2.0’s requirements, and judge whether<br />
your margin is sufficient.<br />
Note how easy it was to generate a complex eye diagram: we switched the oscilloscope's mode, selected<br />
some parameters (including a built-in stimulus pattern and eye mask), and clicked Start Simulation. After a<br />
brief delay, we had an eye diagram to look at.<br />
Although in this case we used IBIS models, you can use exactly the same procedures in LineSim or<br />
BoardSim to drive a SPICE simulation. There, the set-up savings are tremendous: defining eye-diagram<br />
stimulus (including jitter and bit-skipping) in a SPICE netlist is tedious and error-prone.<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; next, we look at how to plan<br />
stackups and trace impedances.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/linesim_s_ghz_level_fe...<br />
2007-3-26
Modeling a PCB Stackup<br />
Modeling a PCB Stackup<br />
Introduction<br />
LineSim and BoardSim include a special editor for creating and planning PCB stackups.<br />
In LineSim, you can create a stackup, then tie any of the transmission lines in a schematic to the stackup.<br />
(For each line, you specify a trace width and select which layer of the stackup the line is on.) If you<br />
subsequently change the stackup, every line tied to the stackup changes its impedance and delay<br />
automatically.<br />
In BoardSim, a stackup usually accompanies the .HYP file representing your PCB. If the stackup is not correct<br />
or – more importantly – if you want to alter it to see how the stackup affects your board's signal-integrity,<br />
crosstalk, and EMC behavior, you can use the stackup editor to make changes. BoardSim's built-in field<br />
solver immediately recalculates all of the trace impedances/delays on your board in response.<br />
But the stackup editor is more than just a way to manage a stackup during simulation of a transmission-line<br />
schematic or a PCB – it's really a powerful tool for planning stackups, designing controlled impedances, and<br />
even documenting stackups for your PCB fabricator. In the next few sections, you'll see some examples of<br />
how the <strong>HyperLynx</strong> stackup editor accomplishes these goals.<br />
Note: In this demonstration version of <strong>HyperLynx</strong>, some of the parameters in the stackup editor cannot be<br />
edited, for example dielectric constants. However, in spite of this limitation, you'll easily see in the following<br />
examples how useful the stackup editor is as a planning tool.<br />
Overview of the Stackup Editor<br />
页码,1/3<br />
It is possible to view the stackup in any LineSim design. A default stackup is created every time you create a<br />
new LineSim schematic. (The details of the default stackup are user-definable.) Here, we'll open – just for<br />
purposes of looking at the stackup – a design that is used in another section of this demonstration.<br />
Load the demo schematic "XT_Trace_Separation.ffs" using File > Open LineSim Schematic; then open the<br />
stackup editor and select the Basic tab:<br />
1. Close any open dialog boxes.<br />
2. On the File menu, select Open LineSim Schematic. A dialog box opens.<br />
3. Double-click on the file name "XT_Trace_Separation.ffs". The dialog box closes and a schematic appears<br />
in LineSim's editor.<br />
4. On the Edit menu, select Stackup. The Stackup Editor dialog box opens.<br />
5. Verify that the Basic tab is selected.<br />
First, note some of the features of the stackup editor. On the left, the data defining the stackup is entered in a<br />
spreadsheet; each row of the spreadsheet represents one layer – metal or dielectric – in the stackup. On the<br />
right is a graphical view, which visually summarizes the key data (like layer names and thicknesses) in the<br />
stackup.<br />
The complete set of data that makes up or affects a stackup is complex. To help you navigate this information<br />
efficiently, the stackup editor uses a series of tabs to sub-divide the data. Let's take a quick look at what each<br />
tab contains:<br />
The Basic tab is the one you're looking at currently. It places the most commonly accessed data defining the<br />
stackup in one convenient location. You can use this tab to set each layer's type (e.g., is it metal or dielectric?;<br />
signal or plane,?; etc.); to change layer thicknesses; to set dielectric constants; and to find out the impedance<br />
of each layer, for any trace width. You can also control the units of the stackup parameters (metric/English;<br />
thickness/weight) from this tab. For basic design work, you may rarely need to access any tabs other than this<br />
one.<br />
Click on the Dielectric tab.<br />
The Dielectric tab contains more-detailed information about the dielectric layers in your stackup. From here,<br />
you can specify whether each dielectric layer is made of "core" or "prepreg" material, whether the dielectric<br />
constant on metal layers should automatically be the same as that on surrounding dielectric layers or be<br />
entered as a "custom" value, and what the loss tangent of each layer's dielectric material is. (Loss tangent<br />
determines how much dielectric loss there is during lossy simulations.)<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/modeling_a_pcb_stackup...<br />
2007-3-26
Modeling a PCB Stackup<br />
Click on the Metal tab.<br />
The Metal tab contains more-detailed information about the metal layers in your stackup. (Re-size the<br />
stackup-editor dialog box or scroll horizontally, if needed, to see all columns in the spreadsheet.) You can<br />
specify what type of metal is used on each layer, and if a "custom" metal is chosen, what its resistivity and<br />
temperature coefficient of resistivity are. (Resistivity affects lossy simulations.) As on the Basic tab, you can<br />
set "test" trace widths for each layer and instantly see what impedances result. On this tab, impedances also<br />
appear in the stackup's graphical view.<br />
Click on the Z0 Planning tab.<br />
The Z0 Planning tab offers a special set of features for planning controlled-impedance stackups. This is a<br />
powerful feature in <strong>HyperLynx</strong> that uses the built-in boundary-element field solver to find optimal geometric<br />
solutions for desired "target" impedances. In the next section, we'll look in more detail at impedance planning.<br />
Click on the Custom View tab.<br />
The Custom View tab lets you build up your own version of the stackup spreadsheet, displaying whatever<br />
combination of columns/data is most useful to you.<br />
How to Do Impedance Planning<br />
页码,2/3<br />
In high-speed design, it's often necessary to plan stackups and trace widths in such a way that traces have<br />
certain desired characteristic impedances. Some standard buses, for example, mandate that trace<br />
impedances be in a certain range, e.g., 60 - 100 ohms.<br />
Designers often rely on reference books or closed-form equations to perform such impedance planning. But<br />
the <strong>HyperLynx</strong> stackup editor is a considerably better way to plan impedances than "manual" methods, for<br />
several reasons. First, it's more accurate: rather than relying on equations, which are approximate and suffer<br />
from significant error outside certain geometric ranges, the stackup editor runs a powerful, fast field solver in<br />
the background to accurately calculate impedance (and delay). Second, it's faster: the stackup editor's Z0<br />
Planning tab has a "back solver" which instantly calculates geometric values (like trace width) based on<br />
desired target impedances.<br />
Click again on the Basic tab; adjust the spreadsheet's horizontal scroll bar, if needed, to see the Test Width<br />
and Z0 columns, at the far right of the spreadsheet.<br />
Note that on this tab, the impedance of each signal layer in the stackup is displayed in the Z0 column. Of<br />
course, impedance can be calculated only for a specific trace width; you specify the width for each layer's<br />
traces in the Test Width column. In this demonstration version of the software, you can't change some of the<br />
values in the spreadsheet (like the width), but in the real program you can quickly alter trace width, dielectric<br />
constant, etc. to see exactly how each change affects impedance. Let's try changing a dielectric thickness and<br />
see how it affects trace impedance:<br />
Change the thickness of the dielectric on layer 3 to 5 mils; note the instantaneous impedance change:<br />
1. In row 3 in the spreadsheet (the top-most dielectric layer), click in the Thickness column and type to<br />
change the value to "5". Press or click some other cell in the spreadsheet to tell the stackup<br />
editor to accept the new value.<br />
2. Note how the impedance value for signal layer 2 ("TOP") changes instantly from 73.1 ohms to 51.4 ohms.<br />
The response from the field solver is instantaneous. Performing what-if changes like this in an interactive<br />
spreadsheet tied directly to a field solver is much faster and less error-prone than calculating impedances with<br />
approximate equations or reference charts.<br />
Now click on the Z0 Planning tab; verify that the Plan For combo box is set to Single Trace:<br />
1. Click on the Z0 Planning tab.<br />
2. Verify that the Plan For combo box in the stackup editor's lower left is set to Single Trace mode. This tells<br />
the editor that we're currently interested in the impedances of single traces, not differential pairs.<br />
This tab gives you an even faster and more powerful way of planning impedances. Note the Target Z0<br />
column; in these cells you can specify a desired impedance for each signal layer. In this example, 75 ohms is<br />
achieved on the bottom layer at about 7.5 mils width, and on the other signal layers at about 3.3 mils. Let's try<br />
changing the target impedance to force a different geometric solution.<br />
Change the target impedance of layer 2 to 50 ohms; note how quickly a new trace width is calculated:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/modeling_a_pcb_stackup...<br />
2007-3-26
Modeling a PCB Stackup<br />
1. In row 2 of the spreadsheet, click in the Target Z0 column and type to change the value to "50". Press<br />
or click some other cell in the spreadsheet to tell the stackup editor to accept the new value.<br />
2. Note how layer 2's value of Width changes instantly to about 8.4 mils, which is the trace width required on<br />
this layer to match the new target Z0.<br />
Impedance Planning for Differential Pairs<br />
The Z0-planning feature works also for differential pairs, helping you to find target differential impedances as<br />
easily as single-trace Z0's. (Differential signaling is widely used at very high data rates, especially in SERDES<br />
designs.) Let's look at an example.<br />
Change the impedance strategy in the Plan For combo box to Differential Pair; verify that the Strategy combo<br />
box is set to Solve for Separation:<br />
1. In the Plan For combo box in the stackup editor's bottom left, change the selection to Differential Pair.<br />
Note that the title of the Target Z0 column changes to Diff Z0.<br />
2. Verify that the Strategy combo box is set to Solve for Separation.<br />
页码,3/3<br />
With these changes, the stackup editor now interprets the target Z0 values as the differential impedance of a<br />
pair of traces. Setting the Strategy combo box to Solve for Separation means that the editor is solving for the<br />
trace separation (or "gap") that, given the specified trace width, meets the target differential impedance.<br />
For the inner signal layers, the solved-for separation value is about 4.5 mils. But what about for the outer<br />
layers – the gap value reads "error." Is this a problem with the software? No! The stackup editor is telling you<br />
that with the current stackup, differential impedances of 50 and 75 ohms are physically impossible on the<br />
outer layers. If we had more time in this demonstration, we could change the geometry of the stackup to make<br />
75 ohms physically possible (or we might want to target a higher differential impedance, like 100 ohms).<br />
For differential pairs, you can also specify the separation and solve for trace width (the opposite of what we<br />
just did), or most powerfully of all, solve for both separation and width simultaneously. Let's look at an<br />
example of solving for both.<br />
Change the impedance strategy using the Strategy combo box to Solve for Both; click layer 12's (BOTTOM's)<br />
View button to display a curve of width-vs-separation for 75 ohms differential impedance:<br />
1. In the Strategy combo box, change the selection to Solve for Both. The Width and Gap columns gray out<br />
and View buttons appear in the Z0 Curve column for each layer.<br />
2. In row 12 (layer BOTTOM), click the View button in the Curve column. After a few seconds of running the<br />
field solver, a dialog box appears.<br />
The resulting graph shows a curve of constant 75-ohm differential impedance (the target impedance for this<br />
layer), allowing you to choose a range of either trace widths or separations, and read for each value the<br />
corresponding other value. For example, the curve shows that at 5 mils separation, you need a trace about 17<br />
mils wide to achieve 75 ohms differential impedance. You can see now why at our earlier trace width of 8<br />
mils, 75 ohms differential Z0 was physically impossible: the trace separation would have been nearly zero to<br />
achieve the target.<br />
There are still many features in LineSim that we have not explored, but in the interest of time, let's see how<br />
you'd analyze a simple PCB in the <strong>HyperLynx</strong>'s post-layout analysis tool, BoardSim. This part of the<br />
demonstration will show how BoardSim handles both interactive and batch-mode simulation. At the end of the<br />
demo, you are welcome to explore any of the features we have not highlighted here.<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; next we move to a<br />
demonstration of post-layout signal-integrity, crosstalk, EMC, and GHz-level analysis, using<br />
BoardSim.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/modeling_a_pcb_stackup...<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
Post-Layout Analysis: BoardSim and Batch Mode<br />
User Quotes<br />
I couldn't do my job without it.<br />
- Hardware Engineer, PC Motherboard Manufacturer<br />
I immediately installed it and was simulating my design within two hours.<br />
- Electrical Engineer, University Radiation Oncology Dept.<br />
Testing of our prototypes agreed with what we had seen using BoardSim and reaffirmed our<br />
confidence that we had the best possible signal integrity solution. Board Wizard allowed me to<br />
check the entire board in seconds by setting up parameter checks. It would have taken days to<br />
check all the nets manually. The frequency response of components could be displayed allowing<br />
easier selection of items such as ferrite beads. BoardSim provides all the information needed to<br />
ensure a reliable board design and does so in an easy and intuitive manner.<br />
- Hardware Engineer, Leading Avionics Manufacturer<br />
...The risk of transmission line-induced faults on a board of this size easily justifies the purchase<br />
price of this product.<br />
- Engineer, Imaging System Manufacturer<br />
I received my first pass of the routed 16 layer card ... and <strong>HyperLynx</strong> paid for itself in the first<br />
four hours of use ... I'm very happy with both the product and the support.<br />
- Hardware Engineer, Computer Systems Integrator<br />
Introduction<br />
If you started this demonstration at the beginning, you've already seen how LineSim can help you prevent<br />
signal-integrity, crosstalk, EMC, and GHz-level SERDES problems even before you begin PCB layout. (Click<br />
here if you want to go through the LineSim/pre-layout portion of the demo before reading this section.)<br />
Using the data from your actual routed PCB layout, BoardSim moves <strong>HyperLynx</strong>'s analysis into the postlayout<br />
phase of your design cycle. Typically, BoardSim is used after placement and routing; the analysis is<br />
based on the actual details of your board's routing. But you can also analyze a board as soon as it's placed,<br />
before routing (using Manhattan routes that BoardSim creates); or when your board is placed and only<br />
partially routed.<br />
How BoardSim Works<br />
BoardSim reads the data representing a routed PCB and performs signal-integrity, crosstalk, and EMC<br />
analysis on the actual layout. In BoardSim, signal-integrity and crosstalk results appear either as signal<br />
waveforms in an oscilloscope (interactive mode) or in a multi-net analysis report (batch mode). EMC analysis<br />
works the same way, except that it occurs in the frequency domain and interactive results appear in a<br />
spectrum analyzer. Eye diagrams for high-speed serial designs are produced in BoardSim's oscilloscope.<br />
Translating your Board into BoardSim's Format<br />
In actual use, the first step for running BoardSim is to translate your PCB layout into BoardSim's file format<br />
(".HYP"). In some PCB-layout tools, a BoardSim translator is built-in and accessed from a menu pick; for<br />
other tools, you run an external translator supplied with BoardSim. Either way, the end result is a .HYP file<br />
that can be read by BoardSim.<br />
BoardSim supports the following PCB-layout tools (check with Mentor Graphics for the latest,<br />
updated list):<br />
� Accel EDA<br />
� Cadence Allegro<br />
� Mentor Graphics Board Station<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
页码,1/8<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
� Mentor Graphics Expedition<br />
� PADS Layout<br />
� SPECCTRA DSN<br />
� Valor ODB++<br />
� Zuken CR-3000<br />
� Zuken CR-5000 Board Designer<br />
� Zuken Visula / CADSTAR for Windows<br />
Note that BoardSim may be able to interface to PCB-layout tools not listed above through the SPECCTRA (or<br />
"CCT") format, since almost all PCB-layout tools can write a SPECCTRA DSN file.<br />
For this portion of the demo, the .HYP file has already been created for you. It's called "Demo.hyp."<br />
Loading and Viewing a PCB<br />
Of all the signals on a PCB, clock nets are typically the most critical from signal-integrity, crosstalk, and EMC<br />
standpoints. (SERDES-based designs may not even use clock signals, but here we're discussing traditional,<br />
synchronous designs.) Let's see how BoardSim could help you check the clock and other edge-sensitive nets<br />
on a board, based on the actual routed layout.<br />
LineSim could have prevented many of the problems you're about to see! LineSim is an excellent tool<br />
for solving signal-integrity, crosstalk, and EMC problems early in the design cycle, before you begin PCB<br />
layout. Problems like those you're about to see on the demo PCB – for example, clock nets that are<br />
improperly designed – can also be solved up-front, before time is invested in board layout.<br />
However, other types of problems can only be found after PCB layout. For example, even a properly<br />
designed net can be negatively affected by the layout process, e.g., if the trace's length is not constrained<br />
properly during routing, or if the router can’t meet the constraint that was set, or if a net wanders through<br />
too many vias. Also, it is sometimes difficult to pre-plan nets beyond the truly critical ones on a board.<br />
Addressing these kinds of problems is the purpose of BoardSim.<br />
Load the Demo Board "Demo.hyp"<br />
Let's begin by loading the demo PCB.<br />
Load the demo PCB "Demo.hyp" using File > Open BoardSim Board:<br />
1. If you previously ran the LineSim portion of the demo, close any open dialog boxes.<br />
2. On the File menu, select Open BoardSim Board. A dialog box opens.<br />
3. Double-click on the file Demo.hyp.<br />
Since the demo board is small, loading takes only a few seconds. When loading is done, you see the board in<br />
BoardSim's viewer.<br />
About the Demo Board<br />
The demo board is admittedly a very simple mixed-technology PCB (through-hole and surface-mount); trace<br />
widths are fairly large. The board is not completely routed. We've deliberately kept the board small so that it’s<br />
easy to focus on a few key features.<br />
In real use, BoardSim runs with PCBs of any size; the only limit is the amount of memory in your computer.<br />
<strong>HyperLynx</strong> customers routinely run BoardSim on a huge variety of PCBs, including very large designs.<br />
The Board Viewer<br />
页码,2/8<br />
Notice that BoardSim includes a physical board viewer. If you don't have access to your PCB-layout software<br />
(e.g., your boards are laid out by a service bureau, or on a UNIX workstation but you work on a PC),<br />
BoardSim provides a convenient way to view your board. And as we’ll see a few examples of later,<br />
BoardSim’s viewer has special features (not found in PCB layout tools) that appeal to electrical engineers.<br />
Right now, the viewer is showing the demo board's entire layout, including each net's routing, as well as the<br />
PCB's outline, component outlines, and reference designators. Once we begin simulating specific nets in the<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
next section, the nets being analyzed will be shown in the foreground and other nets will “dim” into the<br />
background.<br />
Batch Analysis of the Entire Board for Signal-Integrity, Crosstalk, and<br />
EMC Problems<br />
BoardSim includes a powerful batch-mode feature (organized as a step-by-step “wizard”) which allows you to<br />
scan/simulate your entire PCB in a single operation. The batch wizard offers both a set of "quick-analysis"<br />
features that can run very quickly on an entire PCB, scanning for likely signal-integrity, crosstalk, and EMC<br />
problems; and detailed-analysis features which perform automated simulations on a selected set of nets,<br />
reporting accurate “flight times” for each net and analyzing in detail for other parameters, such as overshoot,<br />
threshold violations, and crosstalk. Many of these can be automatically checked against user-defined<br />
"violation" limits, which, for example, can flag nets with out-of-range delays, excess overshoot, or crosstalk,<br />
and so forth.<br />
The batch quick-analysis features are an excellent place to begin if you don't know where on your board<br />
problems may lie. Results are reported in a text output file that you can use to guide further, more-detailed<br />
analysis. Quick analysis makes a great planning tool, for example, if you didn’t perform much pre-layout<br />
analysis, just got a board back from layout, and want to get a quick idea of your design's quality.<br />
In this section of the demonstration, we'll concentrate on quick analysis, and run it on the entire demo board.<br />
In the next section, we'll try a few of the detailed-simulation features on a set of critical nets.<br />
Run Quick Analysis on the Entire Demo Board<br />
Run the batch quick-analysis features on the demo PCB, using Simulate > Run Batch Simulation; set the<br />
default rise/fall time to 2 ns for this example.<br />
1. On the Simulate menu, select Run Batch Simulation. The batch-mode “wizard” dialog box opens.<br />
2. Set the check boxes on the wizard's first page as follows: the first six Quick Analysis check boxes<br />
enabled, and the remainder disabled; both Detailed Simulations check boxes (near the top) disabled. This<br />
will include the most-interesting information in the wizard's quick-analysis report, and leave detailed<br />
simulations disabled for now.<br />
3. Click Next twice, so that you move to the Batch-Mode Setup - Default IC Model Settings page.<br />
4. In the Rise/Fall Time box, verify that the default switching time is set to 2 ns.<br />
5. Click Next several more times, until the Batch-Mode – Run Simulation and Show Results page and the<br />
Finish button appear. Click Finish.<br />
Notice that we didn’t bother specifying specific IC models for the nets on the PCB; on the Default IC Model<br />
Settings page, we told the batch engine to assume that any nets not yet populated with models have driver<br />
ICs with approximately 2-ns switching times. (On this board, some nets do have models assigned, but others<br />
don’t.) The ability to assign “default” IC characteristics allows you get results quickly, even before you make<br />
detailed model assignments.<br />
The batch wizard's quick analysis begins running, reporting its percent-done status as it analyzes the nets on<br />
the board. Because the demo board is small, the wizard's analysis – even though it includes every net on the<br />
board – takes only seconds to complete. The <strong>HyperLynx</strong> File Editor opens on the wizard’s output.<br />
Examine the Batch Quick-Analysis Output<br />
The file viewer has special searching capabilities (when it’s opened by the batch wizard) for finding signalintegrity<br />
violations.<br />
Search for warnings in the report file using the yellow "find warning" button (button is yellow with a black<br />
checkmark):<br />
1. In the file viewer, click the yellow "Find Warning" button (yellow with a black checkmark). The viewer<br />
jumps to the first location of the text "warning."<br />
2. Click the Find Warning button several more times. The Viewer jumps to various nets that are likely to have<br />
signal-integrity problems because they are physically long but have no termination, or that have nonoptimal<br />
terminating-component values.<br />
You can use the batch wizard to automatically identify "problem" nets, and as a guide to further detailed<br />
analysis and problem fixing.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
页码,3/8<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
For example, look at the wizard's report for the net "datald":<br />
1. In the file viewer, on the Edit menu, select Find. A dialog box opens.<br />
2. In the Find What box, type "datald". Click to enable the Wrap Around Search check box.<br />
3. Click the Find Next button.<br />
The viewer jumps to net "datald's" section. Here the batch engine is reporting that "datald" has no terminator,<br />
but given the default rise/fall time of 2 ns, "datald" is too long to be unterminated. The wizard gives a<br />
suggestion for the maximum length of the net, if it remains unterminated.<br />
Close the file viewer:<br />
� In the viewer (not in BoardSim), on the File menu, select Exit.<br />
Detailed Batch Analysis of Critical Nets<br />
Now let's re-run batch-mode analysis, but this time using the batch wizard's detailed-analysis capabilities on<br />
several of the demonstration PCB's nets. Compared to the quick-analysis features that we just ran, the<br />
detailed simulations offer an additional level of accuracy that can report, at every receiver-IC pin on a net,<br />
detailed min and max flight times, overshoots, threshold violations, and crosstalk levels. On a real PCB, of<br />
course, you would be likely to examine a much larger set of nets than we will in this brief demo. However,<br />
even one or two nets are enough to show quickly how the batch feature’s detailed simulations work.<br />
Note: For detailed simulation, the Board Wizard is capable of performing not only signal-integrity, but also<br />
crosstalk and EMC analysis. In this example, we'll look at the signal-integrity features, and later in this<br />
demonstration, at crosstalk features.<br />
In general, there are two major reasons that designers run batch-mode signal-integrity simulations. One is to<br />
find out what the min and max delays (or “flight times”) on a collection of nets are. This makes sense: digital<br />
design is heavily centered on timing, and with today’s tighter margins, it’s important to include the effects of<br />
interconnect delays in timing budgets. The second reason is to scan for other (non-timing) kinds of signalintegrity<br />
trouble, for example, overshoot or crosstalk problems. (You can look for both types of issues<br />
simultaneously using BoardSim’s batch feature.)<br />
In the following sections, let’s simulate an example net, first with an eye to calculating accurate timing delays,<br />
and then with a focus on non-timing signal-integrity issues.<br />
Improve the Signal Integrity on Net “datald”<br />
In a moment, we’ll run some batch simulations of the demo PCB’s net “datald.” Before we do it, though, let’s<br />
improve the signal quality on the net, so that we get realistic results. First we'll interactively assign an IC<br />
model to U3, pin 20.<br />
Select net “datald”; assign the CMOS,5V,FAST model to U3, pin 20 and set it to output state:<br />
1. On the Select menu, choose Net by Name. A dialog box opens.<br />
页码,4/8<br />
2. In the list of nets, look for “datald,” and double-click on it. The dialog boxes closes. In the board viewer,<br />
note that most of the board’s routing appears “dimmed,” in the background, except for a net (the one you<br />
just selected) in the PCB’s lower left.<br />
3. On the Select menu, select Component Models or Edit Values. The Assign Models dialog box opens.<br />
4. In the Pins list box, double-click on "U3.20". The Select IC Model dialog box opens.<br />
5. Click the EASY.MOD button to select a library of <strong>HyperLynx</strong>-supplied generic “technology” models.<br />
6. In the Devices list box, double-click on the model CMOS,5V,FAST. The Select IC Model dialog box<br />
closes.<br />
7. In the Buffer Settings area, click the Output radio button. Then click Close. U3, pin 20 is now modeled as<br />
a fast 5V CMOS driver.<br />
Now we'll run the Terminator Wizard to automatically identify and apply optimal termination to improve the<br />
signal integrity on net "datald."<br />
Run the Terminator Wizard on it and apply the series resistor it recommends:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
1. On the Wizards menu, select Run Terminator Wizard. A dialog box opens.<br />
2. Note that the wizard is recommending that a series terminator be added to the net, to improve signal<br />
quality. In cases where a terminator is recommended but isn’t present in the routed design, the Terminator<br />
Wizard can add the terminator "virtually,” with the appropriate component value. (BoardSim calls this a<br />
“Quick Terminator.”) Add the terminator to “datald” by clicking the Apply Values button. Click OK to close<br />
the wizard.<br />
Calculate Flight Times for Net “datald”<br />
Now, we’re ready to run some batch-mode simulations and calculate flight times. Run the Board Wizard's<br />
detailed-simulation feature on net "datald"; run signal-integrity simulation only (not EMC); for output reporting,<br />
choose the CSV file:<br />
1. On the Simulate menu, select Run Batch Simulation. The batch-wizard dialog box opens.<br />
2. On the first page of the Wizard, disable all of the Quick Analysis features (turn "off" their check boxes);<br />
then in the Detailed Simulations area, enable the Run Signal-Integrity and Crosstalk Simulations check<br />
box. (Leave the Run EMC Simulations check box disabled.) Click Next, so that you move to the Select<br />
Nets and Constraints for Signal-Integrity Simulation page.<br />
3. Click the SI Nets Spreadsheet button (in the upper left). This opens a spreadsheet in which you can select<br />
nets for detailed signal-integrity analysis and set constraints for them. (You can re-size the spreadsheet, if<br />
you wish, to make it bigger.)<br />
4. All of the nets on the PCB are listed, in alphabetic order. Locate net “datald,” near the top of the list.<br />
Enable simulation for this net by clicking once in its SI Enable column. When you make the selection, the<br />
previously grayed-out columns turn white and “activate.”<br />
5. For this net, we’re mostly interested in getting min/max interconnect delays in the batch feature’s output<br />
report. The default rules for overshoot are a little “strict,” so reduce them: in each of the Max Rise (and<br />
Fall) Rail Overshoot and Max Rise (and Fall) SI Overshoot columns (four columns total), type “1000” to<br />
allow 1V of margin. Then click OK to close the spreadsheet.<br />
6. In the wizard, click Next, so that you move to the Set Driver/Receiver Options page. Make/verify the<br />
following settings: Driver Round Robin off (later, we’ll enable it); and Fast-Strong, Typical, and Slow-Weak<br />
IC-model corners all on. (Leave other settings at their defaults.)<br />
7. Click Next to move to the Set Delay and Transmission-Line Options page. Click to enable the Flight-Time<br />
Compensation check box.<br />
8. Click Next four times, making no more changes until you move to the Select Reporting Options page. In<br />
the After the Batch Run Completes area, click to disable the Summary Report File check box, and to<br />
enable the CSV File check box. Leave the “If opening Excel, auto-format” check box disabled.<br />
Here’s what you’ve done in the preceding steps:<br />
� enabled detailed simulation on net "datald"<br />
页码,5/8<br />
� enabled simulation at all IC operating “corners” (i.e., told the batch engine to run three sets of simulations,<br />
one with the IC models in their Fast-Strong settings, one in Typical, and one in Slow-Weak); this will<br />
produce valid, worst-case min and max delays in the output report<br />
� enabled “flight-time compensation,” meaning that for each driver-to-receiver pin pair in the output report,<br />
the delays will automatically have the driver’s “time-to-Vmeasure” value subtracted; this means that the<br />
flight times can be added directly to a timing spreadsheet<br />
If you’re not familiar with “flight-time compensation” or “driver time-to-Vmeasure,” see the next paragraph.<br />
About flight-time compensation: The delays reported in signal-integrity simulations (like the one we’re<br />
about to run) are intended to represent the interconnect delays between drivers and receivers on your<br />
routed PCB. You can add these delays to your timing spreadsheet to make your calculations more<br />
accurate.<br />
However, there’s a possible problem: the Tco (clock-to-output) delays for driver ICs in your spreadsheet<br />
already contain built-in delays that represent what happens outside the IC when it drives a load. Worse,<br />
the built-in delay is into some reference load (like a 15-pF capacitor) that doesn’t match the actual<br />
transmission-line load on your board. If you add to Tco in your spreadsheet the delays calculated by<br />
BoardSim, you’ll account for two output loads: you’ll get the effects of both the real transmission-line load<br />
(calculated by BoardSim) plus the reference load (assumed by your IC vendor in the datasheet Tco).<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
To eliminate this problem, if you enable the Flight-Time Compensation check box in the wizard, BoardSim’s<br />
batch engine will automatically determine how much reference-load delay is present for each driver’s Tco,<br />
and subtract this value from all reported delays. (The reference-load delay is sometimes called the driver’s<br />
“time-to-Vmeasure” value). With this "compensation” in place, you can add the batch report’s numbers<br />
directly to your timing spreadsheet, and your Tco values will automatically be adjusted to remove the effect<br />
of the extra, incorrect reference load.<br />
This is a valuable “bookkeeping” feature that BoardSim’s batch feature performs automatically for you. (It<br />
knows how to do this, by the way, based on simulating with reference-load information that’s contained in<br />
each driver’s IC model.)<br />
9. Now, click the Next button to move to the Run Simulation and Show Results page. Then click the Finish<br />
button. If queried about whether to overwrite the .RPT we previously generated, click Yes.<br />
After you click Finish, the batch-mode engine begins running, reporting its percent-done status. Because<br />
batch simulation was enabled on only one net, it does not take long to run; however, because we chose to<br />
simulate all three IC corners for the net, there are six simulations to perform (three corners X (rising + falling<br />
edges)).<br />
When the simulations have finished, the batch engine automatically writes out three files:<br />
� a CSV (comma-separated values) file, suitable for loading into a spreadsheet application or parsing with a<br />
custom script<br />
� a text file (“.RPT”) file suitable for viewing in a text editor<br />
� an SDF (“standard delay format”) file suitable for passing to timing-analysis and other tools that read the<br />
format<br />
Examine the Batch Engine’s Detailed-Simulation Output (CSV File)<br />
We chose to have the CSV file opened by the batch wizard. On many Windows computers, the .CSV<br />
extension is "associated” with Microsoft Excel; if it is on your machine, then Excel will open automatically on<br />
the results. (Excel may not come to the “top” of your desktop; look to see if it’s open and behind the<br />
<strong>HyperLynx</strong> windows.) If you do not have Excel or if the CSV extension is not mapped on your computer, then<br />
manually look for the output file DEMO-SI.CSV in the “Demo_files” sub-directory under wherever you installed<br />
the <strong>HyperLynx</strong> demo software. Open it, if possible, in a spreadsheet application.<br />
Note that the CSV data contains a header row (labeling the columns), and then a series of rows, each<br />
reporting simulation results. (If you want, you can reformat the spreadsheet to more easily see the headers. If<br />
we had chosen auto-formatting, the batch wizard would have attempted to do this automatically.)<br />
Look at the Driver, Receiver, and Simulation Corner columns. Note that for each IC-model corner we chose<br />
(Slow-Weak, Typical, and Fast-Strong), a row is output for each driver-receiver pin pair. Further to the right in<br />
each row are the automatically measured results of each simulation.<br />
For this batch run, we were interested primarily in the flight times associated with each pin pair. These are<br />
listed in the Rise (and Fall) Min (and Max) Delay columns. Since the values are compensated (with the Tco<br />
reference-load delay already removed), they are ready to be placed into a timing budget.<br />
If Excel or another tool is open on the CSV file, close it (we’ll let the batch wizard re-open it in the next<br />
section.)<br />
Run with Driver “Round Robin” and Some Non-Timing Constraints<br />
页码,6/8<br />
Now, let’s re-run net “datald,” but with some other batch-mode features enabled. (Again, if this were a real<br />
design, you would typically be running many more nets simultaneously – maybe hundreds or even thousands.<br />
But here, we’re trying to be quick and just show some basic features on a sample net.)<br />
Open the Assign Models dialog box; on the IC tab, assign U3.20’s model to all pins on the net; then use the<br />
Quick Terminator tab to remove the terminator you applied earlier:<br />
1. On the Select menu, choose Component Models or Edit Values. The Assign Models dialog box opens.<br />
2. With the IC tab selected, click once to highlight the first pin in the Pins list, then scroll down the list,<br />
watching the Buffer Settings area to the right. Notice that for the previous simulation, the first four pins in<br />
the list all had input-only (receiver) models attached, and pin U3.20 had an I/O pin that was manually set<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
to state “output.” For the next simulation, we want to see what happens if all pins are I/Os, so…<br />
3. …with pin U3.20 highlighted, in the Buffer Settings area, click the Input radio button. In the Model to Paste<br />
area, click the Copy button, then click the Paste All button. Now scroll the highlight through the Pins list,<br />
and notice that every pin is assigned an I/O model, and all are currently set to state “input.”<br />
4. Select the Quick Terminator tab. For the next simulation, we’re also interested in seeing how signalintegrity<br />
violations of various types are flagged in the batch-mode results. One easy was to create some<br />
errors is to unterminate the net; so…<br />
5. …highlight pin U3.20 in the Pins list, then in the Terminator Style area, click the None radio button. Click<br />
Close to close the dialog box and click OK. If you get a warning that no pin has a driver, click OK.<br />
Here’s what you’ve done in the preceding steps:<br />
� changed all IC pins on net “datald” to have an I/O (bidirectional) model<br />
� unterminated the net to create some “interesting” signal-integrity problems<br />
Now, consider the current state of the net’s IC models: they’re all I/Os. This is the same situation as on any<br />
real, “multi-drop” net on which multiple I/Os exist, any one of which may turn on and drive at any time. What<br />
should be done in batch simulation for such a net?<br />
For a net populated with multiple bidirectional buffers, it’s important for timing delays to be calculated for each<br />
driver that can turn on. Maybe the maximum delay, for example, will occur when a driver at one end of the bus<br />
is enabled (but which end?); or maybe (because the driver has to drive two traces simultaneously), the longer<br />
delay will come from driving in the middle. You really can’t know for sure without running multiple sets of<br />
simulations, one for each possible driver.<br />
Setting up such simulations manually would be extremely time-consuming. Fortunately, BoardSim’s batch<br />
engine has an option called “driver round robin” which, if enabled, will automatically walk through all possible<br />
driver states, and run simulations for each. Let’s try running with it.<br />
Open the batch wizard; turn off IC corners other than Fast-Strong, and enable round-robin simulation; for<br />
reporting, again choose the CSV file:<br />
1. On the Simulate menu, select Run Batch Simulation. The batch-wizard dialog box opens.<br />
2. Click the Next button twice to move to the Set Driver/Receiver Options page. Click to enable the Driver<br />
Round Robin check box. In the IC-Model Corners area, disable the Typical and Slow-Weak check boxes<br />
(but leave Fast-Strong enabled).<br />
3. Click Next five times to move to the Select Reporting Options page. Verify that the Summary Report File<br />
check box is still disabled and CSV File is enabled.<br />
4. Then click Next, then Finish, to run a new set of simulations. If a message asks whether to overwrite the<br />
earlier report files, click Yes. (Make sure that Excel is not open currently on the old spreadsheet, so that it<br />
can be re-created.)<br />
The batch engine runs, reporting its status. When it completes, (as above) the results open in Excel or<br />
another application mapped to the .CSV file extension. (If no application is mapped, manually open the file<br />
DEMO-SI.CSV in a spreadsheet.)<br />
Examine the New Batch-Engine Output<br />
页码,7/8<br />
Notice some differences in the results this time compared to the previous. First, in the left-most column of the<br />
spreadsheet, note that some simulations are marked as “fail.” To see why, find a failing row, and look at its<br />
four Rise (and Fall) Overshoot Rail (and SI) columns. You’ll see that at least one column has a value greater<br />
than the 1-V constraint we set before the previous run.<br />
In general, the batch engine can automatically check and flag any simulation which fails any constraint you<br />
set in the Nets spreadsheet. (Look at the other reporting columns in the spreadsheet for more details on what<br />
kinds of measurements and constraints are supported.)<br />
In the results, notice also which simulations were performed. In the Simulation Corner column (near the left<br />
side), all simulations were marked as using the IC models’ Fast-Strong corner (as we requested). But in the<br />
Driver and Receiver columns, note that simulations occur in groups of four, with first one I/O being turned on<br />
and driving, and delays reported to each of the other four I/Os; then the first I/O turning off and the next<br />
turning on to drive; and so forth until all possibilities are exercised. This shows the automatic driver-roundrobin<br />
feature in action.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
2007-3-26
Post-Layout Analysis: BoardSim and Batch Mode<br />
页码,8/8<br />
Note that some users may wish to parse all of this delay data from the CSV file using a custom program or<br />
script. Since the CSV file is ASCII and simply formatted, this is not difficult to do. <strong>HyperLynx</strong> is committed to<br />
preserving the format of the CSV file, so any investment in custom scripting that a customer makes will be<br />
preserved in the future.<br />
Close Excel (or whichever spreadsheet application is open on the results.)<br />
Although there are many more advanced features which could be explored in BoardSim’s batch wizard, there<br />
isn’t time in this introductory demonstration to cover them. (You’re welcome to experiment with more of them<br />
or read about them in the Help system later, after completing this demo.)<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; next, we look at more postlayout<br />
features in BoardSim.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/post_layout_analysis_b...<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
BoardSim's Crosstalk and Differential-Signal Features<br />
Introduction<br />
If you started this demonstration at the beginning, you've already seen how LineSim's signal-integrity,<br />
crosstalk, and EMC analysis features can help you identify and prevent signal-reflection and radiatedemissions<br />
problems early in the design cycle. You've also seen how BoardSim can be used for basic postlayout<br />
signal-integrity analysis (batch and interactive).<br />
BoardSim's Crosstalk option adds to the "base" BoardSim product the ability to perform crosstalk analysis of a<br />
board after layout. Crosstalk (like other signal-integrity problems) can negatively impact your final design and<br />
manifest as false clocking, intermittent data errors, or other difficult-to-find and potentially serious problems. It<br />
can also be difficult to know where crosstalk is likely to occur, and eliminating it can be even trickier than fixing<br />
single-trace signal-integrity problems.<br />
Click here if you want to review LineSim Crosstalk's description of crosstalk fundamentals before you<br />
continue.<br />
If you want to review BoardSim's uncoupled signal-integrity features, including batch and interactive modes,<br />
click here.<br />
How BoardSim's Crosstalk Analysis Works<br />
BoardSim allows you to simulate in both batch and interactive modes. Batch-mode simulation includes<br />
detailed simulation (with timing and crosstalk data saved into a report file), as well as a "Quick Analysis"<br />
feature that we saw earlier, that can rapidly scan your entire PCB. An aspect of Quick Analysis not highlighted<br />
earlier is a crosstalk feature that can provide a list – sorted from most to least – of the amount of crosstalk that<br />
could potentially appear on each of your board's nets. This list is particularly powerful because it helps you<br />
determine very quickly which nets on your board are likely to have crosstalk trouble, and merit further<br />
investigation.<br />
BoardSim Crosstalk also offers a unique way of automatically determining which nets are coupled to any net<br />
that is selected for simulation (interactively or in batch mode). Rather than forcing you to specify a geometric<br />
"zone" around each net in which to find aggressor nets, BoardSim Crosstalk allows you simply specify an<br />
electrical crosstalk threshold. For example, you can say, "I want to include all nets in simulation that could<br />
generate 100 mV or more of crosstalk on my victim nets," and BoardSim will automatically find them for you.<br />
This is a much easier, less-error-prone, more-powerful way of finding aggressor nets than by crude geometric<br />
methods.<br />
With BoardSim Crosstalk's features, you can:<br />
� quickly predict which nets are likely to suffer the most crosstalk, and have BoardSim determine<br />
automatically which nets are the likely "aggressors"<br />
� use electrical rather than geometric thresholds, for more-accurate and faster simulations (but geometric<br />
thresholds are available, too, in case you prefer them)<br />
� simulate a large number of nets in batch mode, with each net's numerical results (timing, overshoot,<br />
crosstalk) saved into a report file<br />
� simulate interactively to see in oscilloscope waveforms the exact amplitude of crosstalk on a victim net<br />
� see the effects on crosstalk results of changing parameters like stackup layer, dielectric thickness, driver-<br />
IC slew rate, driver impedance, line termination, and so forth<br />
� confidently design high-speed buses and other PCB structures that meet tight timing and low-crosstalknoise<br />
requirements<br />
� select termination strategies that greatly reduce or eliminate the crosstalk seen at receiver ICs<br />
Using BoardSim Crosstalk for Differential-Signal Analysis<br />
页码,1/7<br />
BoardSim's coupled-line analysis features are also valuable in the design of differential signals, since the<br />
same line-to-line coupling that causes unwanted crosstalk on unrelated signals also generates the differential<br />
impedance and other electrical characteristics important in differential signaling. Specifically, you can use<br />
BoardSim to:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
� determine the differential impedance of trace pairs on your routed board, and observe the effects of<br />
stackup layer, dielectric thickness, and so forth<br />
� accurately simulate differential signals, taking into account the coupling between traces and the presence<br />
of nearby aggressor and reference (power/ground) traces<br />
� analyze both differential- and common-mode propagation, or any mix of the two<br />
� easily design terminations that work for both the differential- and common-mode components of your<br />
signals<br />
Crosstalk Example: Predicting Crosstalk on a Clock Net<br />
Suppose you're designing a critical clock net, and you want to guarantee that no more than 50 mV of crosstalk<br />
can be coupled onto the "victim" net from any nearby, "aggressor" nets. Let's see how BoardSim's Crosstalk<br />
option could help you meet this design goal.<br />
Load Board "Demo2.hyp"<br />
A typical net in a modern digital system will be in close proximity to many trace segments belonging to other<br />
nets. This makes the net a potential victim of crosstalk generated by the other nearby aggressor traces.<br />
The most important step to analyzing such a situation is accurately identifying all of the aggressors that<br />
contribute significantly to crosstalk on the victim net. In BoardSim Crosstalk, aggressors are automatically<br />
selected using an algorithm that chooses only those neighboring nets with the potential to generate crosstalk<br />
above a specified threshold on your victim net. This threshold is conveniently described in electrical terms<br />
(i.e., mV of crosstalk) rather than being geometric (although you have the option of using geometric<br />
thresholds, if you prefer).<br />
In this section of the demonstration, we'll use a board called "Demo2.hyp." It is the same PCB as used<br />
elsewhere in this demo to show BoardSim's non-crosstalk signal-integrity features, except that its IC models<br />
are set up differently to show more crosstalk amplitude (the ICs are faster). Let's begin by loading the HYP<br />
file.<br />
Load the board "Demo2.hyp" using File > Open BoardSim Board; use the Crosstalk menu to verify that<br />
crosstalk simulation is disabled:<br />
1. On BoardSim's File menu, select Open BoardSim Board. (If any dialog boxes are open from an earlier<br />
portion of this demonstration, close them first.) A dialog box opens. (If you’re prompted to save session<br />
edits, click No.)<br />
2. Double-click on the file name Demo2.hyp. The dialog box closes and a board layout appears in<br />
BoardSim's viewer.<br />
3. Click on the Crosstalk menu, and verify that Enable Crosstalk Simulation is disabled, i.e., not checked.<br />
This board has three clock nets, "clk," "clk2," and "clkin." Let's run an analysis of "clk2."<br />
Automatically Finding "Aggressor" Nets<br />
页码,2/7<br />
An important feature of BoardSim Crosstalk is that it automatically identifies which other nets are coupled<br />
strongly enough to the selected victim net to be "aggressors." You don't have to guess, or (like in other<br />
crosstalk-analysis tools) specify a geometric "zone" which you hope is wide enough to include all of the<br />
important aggressor nets. (For more information on this powerful capability, see the section "Electrical versus<br />
Geometric Thresholds" below.)<br />
Let's select net "clk2" and see which other nearby nets BoardSim Crosstalk thinks are likely to be aggressor<br />
nets.<br />
Select net "clk2" using Select > Net by Name; then enable crosstalk simulation using Crosstalk/Enable<br />
Crosstalk Simulation:<br />
1. On the Select menu, select Net by Name. A dialog box opens. In the Sort Nets By area, click on the Name<br />
radio button.<br />
2. Double-click on "clk2" to select the net. It appears in the board viewer, with other nets dimmed in the<br />
background.<br />
3. On the Crosstalk menu, select Enable Crosstalk Simulation.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
By default, BoardSim Crosstalk searches for aggressor nets whose individual crosstalk contributions to the<br />
selected victim net exceed or equal 150 mV. Of course, you can adjust this threshold up or down as needed<br />
to meet the requirements of your particular boards and nets.<br />
Notice in the board viewer that only net "clk2" and its associated net "n00077" (they're connected together<br />
through a series resistor) are visible in the foreground. This means that BoardSim predicts that no other nets<br />
will generate 150 mV of crosstalk or more on net "clk2." (This demo board is low-density, for simplicity, so it's<br />
not surprising that it doesn't exhibit a lot of crosstalk.) But now let's adjust the threshold down and see if any<br />
nets exceed the new value.<br />
Drop the crosstalk threshold to 50 mV using Crosstalk/Crosstalk Thresholds:<br />
1. On the Crosstalk menu, select Set Crosstalk Thresholds. A dialog box opens.<br />
2. Verify that the Use Electrical Thresholds radio button is selected. In the Include Nets with Coupled<br />
Voltages Greater Than box, type "50."<br />
3. Click OK.<br />
Notice that more nets have now appeared in the foreground in the board viewer; each one shows with a<br />
dashed line. These are the aggressor nets that could potentially contribute more than 50 mV of crosstalk to<br />
the victim "clk2" net.<br />
Use Reports > Net Statistics to see exactly which nets are aggressors to "clk2":<br />
1. On the Reports menu, select Net Statistics. A dialog box opens.<br />
2. In the Associated Nets area, note the list of nets. Nets "setsec," "datald," and "reset" are aggressor nets to<br />
"clk2'; note that they are labeled with "By Coupling." Net "n00077" is not coupled; rather it is "associated"<br />
to "clk2" conductively, through a series resistor.<br />
3. Click OK.<br />
Set Up IC Models for Simulation<br />
During crosstalk simulations, BoardSim Crosstalk is capable of simulating any number of victim and<br />
aggressor nets, and each victim or aggressor may be either actively switching or static (i.e., "stuck").<br />
However, it is much easier to see the crosstalk amplitude and waveform if the victim net's driver IC is not<br />
switching.<br />
Use Select > Component Models or Edit Values to set the driver on victim net "clk2" (U2.1) to be stuck low;<br />
change the aggressor-net I/O models (U11.6 and U3.20) to be "Output":<br />
1. On the Select menu, select Component Models or Edit Values. The Assign Models dialog box opens.<br />
2. In the Pins list, note that some pins have a "coupled" icon just to the left of the reference-designator/pin<br />
label; these are the component pins on the aggressor nets. Pins on the selected, victim net have no icon.<br />
3. The victim net's driver IC is U2.1. Find it in the list, then click once on it to highlight it.<br />
4. With U2.1 highlighted, in the Buffer Settings area, click the Stuck Low radio button.<br />
5. Click on pin U11.6 (at the bottom of the list). It has an I/O model that is currently set to buffer direction<br />
"Input." In the Buffer Settings area, change this by clicking the "Output" radio button.<br />
6. Repeat step 5 for pin U3.20.<br />
7. Click Close.<br />
Look at Coupling Regions where Crosstalk is Actually Generated<br />
Before we actually simulate to see how much crosstalk appears on net "clk2," we can view the "coupling<br />
regions" – i.e., sections along the coupled nets – which will generate the crosstalk.<br />
Use Crosstalk > Walk Coupling Regions to view some of the coupling regions along the victim and aggressor<br />
nets:<br />
1. On the Crosstalk menu, select Walk Coupling Regions.<br />
2. Use the mouse to move the dialog box so it doesn't overlap the visible nets.<br />
3. In the board viewer, note the set of segments highlighted in white with yellow boxes as endpoint markers.<br />
4. In the Coupling Region dialog box, click the Next button; another coupling region is highlighted.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
页码,3/7<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
In the Coupling Region viewer, you'll see the names of the coupled nets, information about how far apart they<br />
are in the currently displayed region, and a graphical stackup cross-section showing the nets. If you click on<br />
the Impedance button, an impedance and termination summary is added to the window. You can stretch the<br />
entire window vertically to more easily see its contents, or re-size individual panes in the window.<br />
Note that even this simple net requires several different coupling regions to be accurately simulated. On real<br />
nets on a dense board, it is not uncommon to have a hundred or more regions; BoardSim Crosstalk dutifully<br />
and automatically models all of them for you. In the viewer, coupling regions are sorted (as you walk through<br />
them) from strongest coupling to weakest.<br />
� Click Close to close the coupling-region viewer.<br />
Driver-IC Slew Rates Affect Crosstalk and Aggressor Nets<br />
When BoardSim chose aggressor nets for "clk2," it accounted for many factors that influence crosstalk: trace<br />
separation, dielectric thickness, IC models, and so forth. The forward component of crosstalk, in particular, is<br />
sensitive to the slew rate of the driver ICs on the aggressor net; the faster the aggressing drivers, the more<br />
crosstalk tends to develop. Let's see the effect of slew rate on the aggressor-selection algorithm, by slowing<br />
down one of the drivers.<br />
Use Select > Component Models or Edit Values to change the IC model for pin U3.20 to CMOS,5V,MEDIUM:<br />
1. On the Select menu, select Component Models or Edit Values. The Assign Models dialog box opens.<br />
2. In the Pins list, double-click on pin U3.20. The Select IC Model dialog box opens.<br />
3. In the Device list box, double-click on model CMOS,5V,MEDIUM (it has a slower slew rate than the<br />
previous model).<br />
4. Click OK to close the Select IC Model dialog box.<br />
5. The aggressor net "datald" is no longer visible in the board viewer, since its driver is now not fast enough<br />
to cause crosstalk above our 50-mV threshold.<br />
Electrical versus Geometric Thresholds<br />
There are a variety of possible ways to select aggressors for crosstalk analysis: e.g., nearest-neighbor,<br />
geometric "zone," and electrical estimation. The more aggressor nets that are selected, the slower simulations<br />
will run (crosstalk analysis is CPU-intensive), so it is desirable to select only those nets that are significantly<br />
coupled to the victim net.<br />
Often, the greatest amount of crosstalk on a given section of a victim net is due to the nearest trace on either<br />
side, but a fast driver can cause a more distant net to be the strongest aggressor. Using a traditional<br />
geometric "coupling window" or "zone," these more distant nets with faster drivers would be missed and nets<br />
in closer proximity with slow drivers would be needlessly included. This in turn would lead to a significant<br />
underestimation of the crosstalk on the victim net.<br />
Or, if you chose to be conservative and increased the width of the coupling zone, you might catch furtheraway<br />
aggressor nets, but in many cases you would also include many nets which are not significant<br />
aggressors and whose presence would simply slow your simulations.<br />
By default, BoardSim Crosstalk uses "smart" electrical thresholds (as we've seen in this demonstration). This<br />
approach has several major benefits. First, more distant nets with fast drivers are correctly found by the<br />
aggressor-finding algorithm. Second, nearby nets with slower drivers are included only if they contribute<br />
crosstalk above the threshold you specify. The result is a minimum but correct sets of nets to simulate, which<br />
can cut analysis time significantly, and increase accuracy. Finally, electrical thresholds let you think in natural<br />
terms about crosstalk: mV of noise (rather than geometric limits).<br />
Note: BoardSim Crosstalk offers geometric thresholds, if that's your preference. (See the Set Crosstalk<br />
Thresholds dialog box.) But electrical thresholds are easier to use and more powerful.<br />
Simulate Net "clk2" Interactively<br />
页码,4/7<br />
Now let's actually look at net "clk2's" crosstalk waveform.<br />
Use Simulate > Run Interactive Simulation to simulate the crosstalk on net "clk2"; place oscilloscope probes<br />
at IC pins U8.9 and U11.6; change the vertical scale to 50 mV/div:<br />
1. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
2. In the oscilloscope, click the Attach Probes button. A dialog box opens.<br />
3. In the Pins list, double-click on each of the following IC pins: U8.9, then U11.6. (U8.9 is the receiver IC on<br />
the victim net).<br />
4. Click OK.<br />
5. In the oscilloscope, click Start Simulation. The crosstalk simulation runs.<br />
6. The red waveform is from the probe at the victim net's receiver IC. Change the vertical scale to 50 mV/div,<br />
so you can clearly see the crosstalk shown by this probe; move the scroll bar at the right side of the<br />
oscilloscope's display down until you see the red waveform again.<br />
Because this simple demonstration board is not densely routed and does not use close trace spacing, it does<br />
not show a great deal of crosstalk. (Also, we significantly slowed one of the aggressor net's driver ICs.)<br />
Nevertheless, you can see that about +/-50 mV of crosstalk does appear at net "clk2's" receiver IC.<br />
Again, it's worth noting that BoardSim will simulate any mixture of victim and aggressor traces; in fact, the<br />
simulator really makes no distinction between the two. Generally, you'd prefer to have the victim nets (nets on<br />
which you want to measure crosstalk) sitting stuck low or stuck high, but in this simulation we could just as<br />
well have made "clk2" also switch, in which case it would have been both an aggressor to the other nets AND<br />
their victim.<br />
Quick Analysis: Generating a Crosstalk Strength Report for an Entire<br />
PCB<br />
You may be wondering how you would decide on which nets on a large PCB to run crosstalk simulation; after<br />
all, your board may have several thousand nets. Focusing on all of them interactively would be nearly<br />
impossible (too time-consuming).<br />
Fortunately, BoardSim Crosstalk gives you two methods for dealing with a large board, or any board on which<br />
you don't know where the crosstalk problems may be hiding. The first is the "Crosstalk Strength Report," a<br />
powerful and fast feature that can quickly generate a report estimating the amount of crosstalk for every net<br />
on your board.<br />
The second method is detailed batch-mode simulation, in which you can queue up a large set of nets for<br />
simulation and then run all of them in batch fashion. Results are presented in a report file, as in the earlier<br />
batch-mode examples. (If you want to review those now, click here.<br />
This section talks about the first method, the Crosstalk Strength Report. For most boards, this is actually the<br />
first feature you'll use, because the data it provides can serve as a powerful guide to which nets you need to<br />
look at in detail – and which others you can stop worrying about altogether.<br />
Use Wizards > Board Wizard to run the Board Wizard; disable all features except Crosstalk Strength<br />
Estimates; set the crosstalk threshold to 50 mV and run:<br />
1. In the oscilloscope, click Close.<br />
2. On the Simulate menu, select Run Batch Simulation. The batch wizard opens to its starting page.<br />
3. On the opening page, disable all feature check boxes except Show Crosstalk Strength Estimates (in the<br />
Quick Analysis area).<br />
4. Click the Next button. On the Set Delay and Transmission-Line Options page, in the For Quick Analysis…<br />
Include Nets with Coupled Voltages Greater Than box, type "50."<br />
5. Click the Next button again. On the Default IC Model Settings page, leave the settings as is. These values<br />
will be used only for nets where a specific IC model has not been loaded.<br />
6. Click Next three more times, then on the Run Simulation and Show Results page, click Finish.<br />
Reviewing the Crosstalk Strength Report<br />
页码,5/7<br />
The batch engine runs briefly, generating a crosstalk strength report. Note how fast each net is processed. A<br />
board of this size is finished in only a very short time; a large board might take several minutes.<br />
The completed report displays automatically in the <strong>HyperLynx</strong> File Editor.<br />
Use the file editor to look at the data in the batch-mode report:<br />
1. In the file editor, page through the Crosstalk Report - Quick Analysis section. Note that for each net on the<br />
board with more possible crosstalk than the specified 50-mV threshold, the file editor gives a list of each<br />
net's aggressor nets and an estimate of how much crosstalk each aggressor could generate. The<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
contribution of the two strongest aggressors is summed to give a realistic overall crosstalk estimate. Nets<br />
are sorted from most to least crosstalk; this gives you a powerful and simple way to see which nets on<br />
your board are most likely to suffer from crosstalk.<br />
2. On the editor's File menu, select Exit to close the file editor.<br />
Again, it should be emphasized that a Crosstalk Strength Report is a powerful guide to further simulations on<br />
any given board. Since it is electrically based, it is usually considerably more accurate than a simple<br />
geometric “parallelism” report. It can be generated very quickly (even before final IC model assignments are<br />
made), and serves as an excellent guide to which nets on the board need further analysis: interactive, batchmode,<br />
or a mix of the two.<br />
Running Detailed Batch-Mode Crosstalk Simulations<br />
As an example of how BoardSim Crosstalk analyzes a net in batch mode, let's run on net "clk2." Of course, if<br />
"clk2" were the only net we wanted to analyze, we'd probably just run it interactively. But if we wanted results<br />
for a large number of nets, then we'd use batch mode. (To keep this demonstration moving quickly, we'll run<br />
only on this one net.)<br />
Use Simulate > Run Batch Simulation to run the batch wizard; enable only detailed SI and crosstalk<br />
simulation; use the Nets Spreadsheet to enable specifically net "clk2"; set its threshold to 50 mV, and run<br />
simulation:<br />
1. On the Simulate menu, select Run Batch Simulation.<br />
2. On the wizard's first page, in the Detailed Simulations area, enable the first check box, Run Signal-<br />
Integrity and Crosstalk Simulations on Selected Nets. Disable all other features.<br />
3. Click Next.<br />
4. Click on the SI Nets Spreadsheet button. The spreadsheet opens.<br />
5. Since we are only interested in simulating net "clk2," click the check box in the SI Enable column only for<br />
net "clk2." Lower in the spreadsheet, note that the associated net "n00077" is automatically selected also<br />
(since it is connected to "clk2" through a resistor).<br />
6. For "clk2," change the value in the Max Rise/Fall Crosstalk column from "150" to "50." "n00077's" value<br />
changes, too.<br />
7. Click OK to close the spreadsheet.<br />
8. Back in the wizard, click Next. Then on the Set Driver/Receiver Options page, in the IC-Model Corners<br />
area, enable only Fast/Strong driver IC models.<br />
9. Click Next three more times. On the Set Options for Crosstalk Analysis page, click the Crosstalk<br />
Simulation check box to enable it. Leave the Selected Nets as Victims Stuck Low check box (which just<br />
ungrayed) enabled.<br />
0. Click Next three more times, until you move to the Run Simulation and Show Results page. Then click<br />
Finish to start the Wizard running. If prompted about whether to overwrite the previously generated .RPT<br />
file, click Yes.<br />
After a short period of time, depending on the speed of your computer, the batch engine finishes the<br />
requested simulations on net "clk2" and opens its report file.<br />
Use the file editor to look at the data in the batch-mode report:<br />
1. The report contains a detailed table for net "clk2," summarizing its signal-integrity and crosstalk behavior.<br />
Several nets are identified as aggressor nets. After the numerical data, warnings are issued to indicate<br />
these nets have no driver-IC model (this helps you know whether any IC models are missing during<br />
simulations). The numerical data gives the rising- and falling-edge pin-to-pin delays for the driver IC and<br />
each receiver, as well as the maximum overshoot and peak-value crosstalk that occurred. If any<br />
thresholds defined in the Nets Spreadsheet are exceeded, the report flags them as warnings. In this case,<br />
we see that crosstalk on clk2 exceeds our 50 mV threshold on both edges.<br />
2. On the editor's File menu, select Exit to close the report.<br />
页码,6/7<br />
Note that in this case, we looked at the batch engine’s human-readable text output (.RPT file). If you ran the<br />
earlier section on BoardSim’s batch-mode features, you saw the alternative .CSV file, which is optimized for<br />
viewing in a spreadsheet application (or parsing by a custom, external script).<br />
BoardSim Crosstalk is useful not only for identifying crosstalk problems, but also fixing them. There are a<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
2007-3-26
BoardSim's Crosstalk and Differential-Signal Features<br />
页码,7/7<br />
number of ways to reduce crosstalk, including changing driver ICs (slower slew rates are better), altering<br />
board stackup, and adding line termination. We won't explore any of these options in detail now, but, for<br />
example, if you want, try simulating net "clk2" as is; then using the stackup editor (Edit > Stackup) to reduce<br />
the board's dielectric thicknesses to 5 mils; then re-simulating to see how the amount of crosstalk is changed.<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; next, we turn our attention to<br />
advanced features intended specifically for post-layout analysis of GHz-level, SERDES-based<br />
designs.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_crosstalk_a...<br />
2007-3-26
BoardSim's GHz Features<br />
BoardSim's GHz Features<br />
Introduction<br />
If you started this demonstration at the beginning, you've already seen how LineSim's signal-integrity,<br />
crosstalk, EMC, and GHz-level analysis features can help you identify and prevent signal-reflection and<br />
radiated-emissions problems early in the design cycle, for both traditional synchronous and new SERDESstyle<br />
designs. You've also seen how BoardSim can be used for post-layout signal-integrity and crosstalk<br />
analysis. So far, though, we haven't demonstrated any of BoardSim's features that are specific to GHz-level<br />
designs. In this section, we'll examine an important one: the ability to model vias in very-high-speed signal<br />
paths.<br />
In general, <strong>HyperLynx</strong> offers these major features for GHz-level designs:<br />
� Eye diagrams<br />
� Multi-bit stimulus<br />
� Lossy transmission-line analysis<br />
� Advanced via modeling<br />
� Integration with SPICE simulation (HSPICE or Eldo)<br />
� Touchstone (S-parameter) modeling<br />
In an earlier section, we showed many of these features (eye diagrams with multi-bit stimulus, lossy-line<br />
analysis, integrated SPICE simulation, and Touchstone modeling) in the context of LineSim. In this section,<br />
we'll look at via modeling. However, eye diagrams, lossy analysis, integrated SPICE simulation, and<br />
Touchstone modeling are available in BoardSim, just as they are in LineSim. Click here if you want to<br />
review these features, by running them in LineSim.<br />
If you want to review any of BoardSim's traditional, non-GHz-specific features, click here.<br />
Advanced Via Modeling<br />
In the earlier GHz portion of the LineSim demonstration, we saw the effects of lossy-transmission-line<br />
simulation, especially an increase in receiver delay times when loss was accounted for. But at GHz-level<br />
frequencies, a second phenomenon is often equally noticeable – and sometimes more so: the<br />
electromagnetic effects of PCB vias. Vias can cause unexpected delays and, especially as frequencies grow<br />
higher, signal distortion due to via inductance and capacitance. In this section, we'll look at how BoardSim<br />
models vias.<br />
Load Board "Demo.hyp" and Select Net "clk"<br />
Load the board "Demo.hyp" using File > Open BoardSim Board; use Select > Net by Name to select net "clk":<br />
1. On BoardSim's File menu, select Open BoardSim Board. Another dialog box opens. If prompted to save<br />
session edits, click No.<br />
2. Double-click on the file name Demo.hyp. The dialog box closes and a board layout appears in BoardSim's<br />
viewer.<br />
3. On the Select menu, select Net by Name.<br />
4. Double-click on "clk" to select the net.<br />
Note that this net is poorly routed from a high-speed standpoint: it contains multiple vias.<br />
Change the Driver IC to a Faster Model<br />
页码,1/4<br />
The effects of vias are easiest to see with fast switching edges; this occurs because to higher-frequency<br />
signals, vias look "electrically longer" and cause more signal distortion. Let's apply a faster IC model to the<br />
selected net.<br />
Using Select > Component Models or Edit Values, change driver pin U1.13 to model "CMOS,3.3V, ULTRA-<br />
FAST" from library EASY.MOD:<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_ghz_level_f...<br />
2007-3-26
BoardSim's GHz Features<br />
1. On the Select menu, choose Component Models or Edit Values; the Assign Models dialog box opens.<br />
2. In the Pins list, double-click on pin U1.13; the Select IC Model dialog box opens.<br />
3. Click the EASY.MOD button.<br />
4. In the Devices list box, double-click on "CMOS,3.3V, ULTRA-FAST" to choose the model; then click Close<br />
to close the Assign Models dialog box.<br />
Simulate First with No Via Modeling<br />
First, we'll run a simulation with via modeling disabled. Then we'll re-simulate with via modeling enabled, and<br />
compare waveforms.<br />
Disable via modeling entirely, using Edit > Via Modeling; disable the Include Via L and C check box:<br />
1. On the Edit menu, select Via Modeling. The Select Method of Simulating Vias dialog box opens.<br />
2. At the top of the dialog box is the Include Via L and C check box, which controls whether any via modeling<br />
is used during simulation. Disable the check box to turn off all via modeling; the options lower in the dialog<br />
box all gray out.<br />
3. Click OK to close the dialog box.<br />
Then open the oscilloscope using Simulate > Run Interactive Simulation; set IC Modeling to Fast-Strong; and<br />
click Start Simulation:<br />
1. On the Simulate menu, select Run Interactive Simulation; the Digital Oscilloscope dialog box opens.<br />
2. In the IC Modeling area, select Fast-Strong, to simulate with the fastest possible driver edge.<br />
3. Click the Start Simulation button; a waveform appears.<br />
Re-Simulate with Via Modeling Enabled<br />
Now let's enable automatic modeling of vias in BoardSim, then immediately re-simulate to see the effect.<br />
Enable automatic via modeling, using Edit > Via Modeling; enable the Include Via L and C check box; verify<br />
that the Auto-calculate radio button is selected:<br />
1. On the Edit menu, select Via Modeling. The Select Method of Simulating Vias dialog box opens again.<br />
2. Enable the Include Via L and C check box to turn back on via modeling; the options lower in the dialog<br />
box re-enable.<br />
3. Verify that the Auto-Calculate radio button is selected. This tells BoardSim to use its built-in automatic<br />
modeling algorithms for vias.<br />
4. Click OK to close the dialog box.<br />
Now, re-simulate:<br />
� Click the Start Simulation button; a new waveform appears.<br />
Compare the two waveforms; note that there is a clear difference in delay at the receiver ICs (yellow and<br />
purple waveforms). The delays are pushed out when via modeling is added to the simulation. The effect is<br />
reminiscent overall of the increased delay caused by the addition of lossy transmission-line analysis, as we<br />
saw earlier in the LineSim GHz portion of the demonstration, meaning that for accurate delay calculations, it’s<br />
often important to use accurate via modeling. Note that in BoardSim’s batch-mode wizard, you can enable<br />
both lossy transmission-line and via modeling.<br />
Different Types of Via Modeling<br />
Let's re-open the via-modeling dialog box and briefly discuss the various methods of via modeling supported<br />
by BoardSim.<br />
Re-open the via-modeling dialog box using Edit > Via Modeling:<br />
1. Click Close to close the oscilloscope.<br />
2. On the Edit menu, select Via Modeling.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_ghz_level_f...<br />
页码,2/4<br />
2007-3-26
BoardSim's GHz Features<br />
3. Select the User-Supplied Padstack-Specific L and C radio button; a spreadsheet appears and values are<br />
filled in after a short delay.<br />
The radio-button choices in the top half of the dialog box offer three types of via modeling:<br />
� Auto-calculate – the most powerful method, this tells BoardSim to invoke internal algorithms to<br />
automatically model each instance of a via; these algorithms decompose each via into sections and call<br />
fast solvers, section-by-section, accounting for detailed effects such as the frequency-dependent<br />
inductance of a via as it changes its signal's reference planes; includes the effects of different signal entry<br />
and exit layers<br />
� User-supplied global L and C – allows knowledgeable users to supply a single L and C value to be used<br />
for all vias on a board<br />
� User-supplied padstack-specific L and C – a more-advanced type of user-supplied value, managed in a<br />
spreadsheet; the user can mix auto-calculated values for some vias and specify custom values for certain<br />
other padstacks<br />
In the spreadsheet, in the Padstack Name column, the names appear as “AutoPadstk_X.” This is an artifact of<br />
the demonstration PCB; if you were running with one of your own designs, you would see the actual padstack<br />
names that you or your layout designer created in your PCB tool.<br />
Most users will prefer the automated algorithms (because they’re quite accurate and powerful), but<br />
sophisticated users may wish to supply their own L's and C's, based perhaps on the results of external<br />
electromagnetic extractions or lab-measured data.<br />
Look briefly at the contents of the padstack spreadsheet. Until you disable some Auto check boxes, each<br />
padstack shows its auto-calculated value. Note the typical values: hundreds of pH and fF, for L and C<br />
respectively. For padstacks that cause their signals to change reference planes at least once, the L value is<br />
frequency-dependent; BoardSim displays it in the spreadsheet at f=250 MHz, but during simulation uses the<br />
"knee frequency" of each net's driver-IC switching edge as the calculation frequency.<br />
Visualizing a Via’s Geometric/Electrical Characteristics<br />
Because accurate via modeling is so important in higher-speed designs, BoardSim offers a special feature<br />
called the “Via Visualizer” which enables you to examine in detail the characteristics of any via on your PCB.<br />
Accessible directly from BoardSim’s board viewer, the Visualizer automatically invokes the <strong>HyperLynx</strong> via<br />
calculator on any via you select, and shows you both the geometric and electrical model of a single via or a<br />
pair of coupled differential vias. Note that in SERDES and other high-speed differential paths, accurately<br />
modeling via coupling is essential for accurate simulation results.<br />
In this section, we’ll look briefly at the Via Visualizer for a sample differential via pair.<br />
Load the board "Demodiff.hyp" using File > Open BoardSim Board; use Select > Net by Name to select net<br />
"DRV1_OUT1+":<br />
1. In the Select Method of Simulating Vias dialog box, click OK.<br />
页码,3/4<br />
2. On BoardSim's File menu, select Open BoardSim Board. A dialog box opens. If prompted to save session<br />
edits, click No.<br />
3. Double-click on the file name Demodiff.hyp. The dialog box closes and the Restore Session Edits dialog<br />
box opens. Click OK. A board layout appears in BoardSim's viewer. If prompted to restore sessions edits<br />
for this new design, click OK.<br />
4. On the Select menu, select Net by Name.<br />
5. Double-click on "DRV1_OUT1+" to select the net.<br />
6. Click on the Crosstalk menu, and verify that Enable Crosstalk Simulation is enabled, i.e., checked.<br />
Note that in the board viewer, other nets are dimmed and net DRV1_OUT1+ and its companion net<br />
(DRV1_OUT1-) appear, as a differential pair.<br />
Looking at the routing of this pair, it’s easy to see several possible problems. First, it does not appear<br />
completely symmetric, which could introduce skew between the two halves of the pair (and therefore convert<br />
a pure differential driver signal at least partially into common mode). Second, it includes two via pairs. While<br />
vias are not “forbidden” in differential signaling, their detailed electromagnetic effects need to be watched and<br />
simulated with great care.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_ghz_level_f...<br />
2007-3-26
BoardSim's GHz Features<br />
Let’s examine one of the via pairs with the Via Visualizer.<br />
Use View > Zoom Area to zoom into the region around the left-hand of the selected nets’ two via pairs; point<br />
to one of the vias with the mouse, right-click, and select View Via Properties:<br />
1. On the View menu, select Zoom Area. The mouse cursor changes into a magnifying-glass shape.<br />
页码,4/4<br />
2. With the left mouse button pressed, drag a box around the area of the left-hand of the selected nets’ two<br />
via pairs, then release the mouse. The viewer zooms in and the vias appear larger.<br />
3. Point to one of the two vias in the pair, until it its round top-layer pad highlights in black. (Be careful not to<br />
highlight one of the connecting trace segments instead.)<br />
4. Then right-click with the mouse. A pop-up menu appears; select View Via Properties. The Via Visualizer<br />
opens. Drag its bottom edge, if necessary, to see the entire graphic in the Visualizer.<br />
The Via Visualizer has opened on the selected via pair. It recognizes (after running a fast geometric/electrical<br />
check) that the via you actually pointed to has a coupled, partner via, and displays both of them. As the dialog<br />
box opens, the Visualizer runs BoardSim’s fast via calculator to determine the via pair’s coupled electrical<br />
characteristics.<br />
In detail, the Via Visualizer is showing the following information:<br />
� the detailed stackup of the PCB; signal layers are shown in solid color and plane layers with “hatched”<br />
colors; all metal is displayed in its layer color<br />
� the exact visual geometry of each via in the differential pair, including connected traces, pads and antipads,<br />
and drill hole<br />
� labeling for all geometric dimensions (including pad shapes/diameters, anti-pad diameters, drill-hole<br />
diameter, and separation between the two vias)<br />
� to the side of each via, the via’s electrical model (including the effects of coupling between vias), including<br />
the impedance and delay of the via (drawn as a labeled transmission line), 3-D pad capacitance for entry<br />
and exit layers (drawn as a lumped capacitor)<br />
� the impedances of connecting traces (labeled with “Z0=xxx”)<br />
� a message in red at the bottom of the dialog warning that there seems to be an impedance discontinuity<br />
between the surrounding traces and the via pair (simulation will tell whether the mismatch is serious or not)<br />
Remember that all of this information is automatically calculated and used by BoardSim’s simulator whenever<br />
via modeling is enabled. However, the Via Visualizer makes the modeling information explicit and accessible<br />
to the user (rather than completely hidden, like it is in some other signal-integrity tools).<br />
Note also one other feature: by clicking the Export to SPICE button (at the dialog box’s bottom), you can<br />
easily create a SPICE sub-circuit of the entire via structure.<br />
Click here to continue with the front-to-back <strong>HyperLynx</strong> demonstration; in this final section we take a<br />
quick look at how BoardSim handles multi-board, system-level simulations.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_ghz_level_f...<br />
2007-3-26
BoardSim's MultiBoard Feature<br />
BoardSim's MultiBoard Feature<br />
Introduction<br />
If you've run the post-layout BoardSim portion of this demonstration, you've already seen how BoardSim can<br />
comprehensively analyze your PCBs, providing you with detailed information about your board's signalquality,<br />
crosstalk, EMC, and GHz-level behavior. Up to this point, we've focused on analyzing single PCBs.<br />
However, many modern designs involve multiple, interconnected PCBs – for example, a motherboard with<br />
one or more memory modules plugged in, or a system consisting of several boards joined by connectors and<br />
cables.<br />
BoardSim's MultiBoard option adds the ability to load multiple boards simultaneously, "virtually" interconnect<br />
them, and simulate them together as a system. Each board can be in the form either of a .HYP file, or a type<br />
of IBIS board model called ".EBD" ("Electrical Board Description"). If the system you're analyzing consists<br />
entirely of your own PCBs, then you would likely load all of your boards into BoardSim as .HYP files. If some<br />
of the boards come from third parties (for example, memory modules), then those 3rd-party boards might be<br />
provided in EBD format.<br />
Note: The EBD format is a portion of the IBIS specification. IBIS is best-known for modeling IC buffers.<br />
However, its EBD format allows random interconnect to be modeled, and can be used to represent PCBs,<br />
complex IC packages, and so forth.<br />
The main difference between a .HYP file and an EBD model is that the .HYP file is physical: it contains details<br />
about trace routing, stackup, etc. EBD models, on the other hand, are purely electrical: the interconnect is<br />
represented as transmission lines, with already-calculated inductance and capacitance, or impedance and<br />
delay. Thus, a .HYP file can be viewed (there is physical routing to display), while an EBD file can't (there's no<br />
physical information to show). Also, EBD files can't represent coupling. However, either type of file can be<br />
used to include the effects of plug-in modules and boards in a multi-board simulation.<br />
MultiBoard Example: Checking the Signal Quality of a Net Crossing Two<br />
Boards<br />
Suppose you had a system consisting of a main board and two smaller plug-in PCBs. Some nets in the<br />
system start on the main board but run through connectors onto both of the plug-in boards, and you're<br />
interested in seeing the signals when they reach the receiver ICs on the daughter boards. Let's see how<br />
BoardSim's MultiBoard option could help you easily perform this analysis.<br />
Load the MultiBoard Project<br />
For efficiency, we'll load an existing multi-board project. However, it's easy to connect multiple boards<br />
together in BoardSim, and we'll take a quick look at the wizard that helps you do this.<br />
Load the multi-board project "Demo_MultiBoard.PJH" using MultiBoard > Open MultiBoard Project:<br />
1. If any dialog boxes are open from a previous portion of the demonstration, close them.<br />
2. On the MultiBoard menu, select Open MultiBoard Project. A dialog box opens.<br />
3. Double-click on the file name Demo_MultiBoard.PJH. (A ".PJH" file stores information about a MultiBoard<br />
project; it points to the .HYP files which make up the project.) If prompted to save session edits, click No.<br />
BoardSim loads each of the boards in the project, similar to how you've already seen it load single .HYP files<br />
– except that in this case, there are three boards involved. Notice that in the board viewer, all three boards are<br />
visible at one time.<br />
Look at How the Project is Constructed in the MultiBoard Wizard<br />
Let's take a quick look at how this MultiBoard project was constructed.<br />
Open the MultiBoard Wizard, and look at the information on the first three pages; click Cancel on the third<br />
page rather than Finish, to avoid reloading the project:<br />
1. On the MultiBoard menu, select Edit MultiBoard Project. The MultiBoard Project Wizard opens.<br />
页码,1/3<br />
The Wizard's first page lists the boards in the project. Adding boards to a project is easy: just click the<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_multiboard_...<br />
2007-3-26
BoardSim's MultiBoard Feature<br />
Insert button and choose the board's .HYP file. This example project consists of a main board and two<br />
identical plug-in modules. Note that a comment has been added beside each board's .HYP-file name;<br />
we'll see these labels later in BoardSim's dialog boxes.<br />
2. Click the Next button.<br />
The Wizard's second page shows the connections between boards. In the Interconnection List, the main<br />
board's connector J1 is connected to plug-in PCB #1's J1, and main board's J2 is connected to plug-in<br />
#2's J1. For any two connector halves whose pin names match, a single entry is all that's required in the<br />
Interconnection List; BoardSim automatically does the pin-by-pin mating. (If you have connectors whose<br />
pin names don't match, or a connector half that connects to more than one other connector, there's a way<br />
to list explicit pin-by-pin connections.)<br />
3. Click Next again.<br />
The Wizard's third page shows the electrical characteristics of each board-to-board connector. You can<br />
specify a connector's electrical behavior by providing either a capacitance and inductance, or a delay and<br />
impedance. For most connectors, the manufacturer can provide this information.<br />
4. Click Cancel, to avoid re-loading the project.<br />
Simulate Net "A0"<br />
Now let's simulate a net which is driven from the main board and has receiver ICs on each of the plug-in<br />
boards.<br />
Select net "A0" on the main board; attach oscilloscope probes to the main board's U100.AE19, plug-in #1's<br />
U2.20, and plug-in #2's U2.20; and simulate:<br />
1. On the Select menu, select Net by Name. A dialog box opens.<br />
2. Note that the dialog box's Design File (at the bottom) is set to "B00 Main board"; this means we are<br />
selecting a net on the main board. In the list box above, double-click on net "A0." (If you don't see "A0" in<br />
the list, in the Sort Nets By area click on Name to sort alphabetically.) The dialog box closes, and net A0<br />
is highlighted on the main board, along with the nets on the plug-in boards to which it connects. "Rat's<br />
nest" lines show the connections between boards, through connectors.<br />
3. On the Simulate menu, select Attach Scope Probes. The Attach Oscilloscope Probes dialog box opens.<br />
4. Verify that the dialog's Design File combo box is set to "B00 Main board." In the Pins list, double-click pin<br />
U100.AE19 to attach it to scope channel 1. (This is the driver pin on the main board.)<br />
5. Then switch to the first plug-in board by pulling down the Design File combo box and selecting "B01 Plugin<br />
board #1." Double-click on pin U2.20. (This is the receiver pin on the first plug-in board.)<br />
6. Switch to the second plug-in board by pulling down the Design File combo box and selecting "B02 Plug-in<br />
board #2." Double-click on pin U2.20. (This is the receiver pin on the second plug-in board.)<br />
7. Click OK to close the dialog box. Note that colored arrows display on each of the boards, showing the<br />
locations of the probes we just assigned.<br />
8. On the Simulate menu, select Run Interactive Simulation. The Digital Oscilloscope dialog box opens.<br />
9. In the Driver Waveform Area, click on the Oscillator radio button.<br />
0. Click the Start Simulation button.<br />
The yellow and purple oscilloscope waveforms show the signals at the receiver-IC pins, on the plug-in boards.<br />
Note that there is some overshoot at the receivers. The waveforms you would have seen if you had simulated<br />
with just the main board or just one of the plug-in PCBs would be different: only by combining the traces from<br />
both boards in the simulation do you see the actual, system-level waveforms.<br />
Other Analysis Features and MultiBoard Designs<br />
页码,2/3<br />
If you've already gone through the other portions of the BoardSim demonstration, this should be enough to<br />
show you the primary differences between simulating with one board, versus multiple boards using<br />
BoardSim's MultiBoard option. In addition to simulating interactively, as you've just seen, you can run Board<br />
Wizard's batch analysis on multiple boards, enabling delays (and other effects) to be calculated for a complete<br />
multi-board system.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_multiboard_...<br />
2007-3-26
BoardSim's MultiBoard Feature<br />
And this power does not come with an ease-of-use penalty: BoardSim is hardly any more difficult to use for<br />
multi-board analysis than for single boards. If your connectors use consistent pin names between the mating<br />
halves, you can usually set up a multi-board project in a matter of just a few minutes.<br />
Simulating with EBD Models<br />
页码,3/3<br />
Sometimes, you may have a PCB in a multi-board design that is modeled with an IBIS EBD file rather than<br />
a .HYP file. This would be typical of 3rd-party boards that you're including in your system, for example,<br />
memory modules. (See above for a general description of EBD and how it differs technically from using .HYP<br />
files.)<br />
Generally, EBD models are treated like IC models rather than explicitly like .HYP boards. The mapping of an<br />
EBD model to a reference designator happens in the .REF or .QPL IC Automapping files, just like any other<br />
IBIS model.<br />
When you auto-map an EBD model and begin analysis, BoardSim automatically creates a board<br />
representation of it in memory, and its circuit effects are automatically included in simulations. You can even<br />
probe inside an EBD model, just like you did with the plug-in boards in the multi-board example above. You<br />
can't view an EBD file physically, however, and EBD files can't model coupling – so when you have a choice<br />
of EBD or .HYP files, .HYP files offer better ease-of-use.<br />
Click here to move to the conclusion of the demo.<br />
Click here to return to the main menu.<br />
mk:@MSITStore:D:\<strong>HyperLynx</strong>75\demo.chm::/demo/boardsim_s_multiboard_...<br />
2007-3-26