5
\$\begingroup\$

I am trying to understand the real-world effect of crosstalk between nets, and I find I cannot match the data from abstract calculators (like Saturn's PCB toolkit and others) and the Altium crosstalk analysis.

For this sake I've made a dummy PCB project in Altium in which I purposedly placed the components very far away from each other and the tracks very close together (to maximize the crosstalk). See a picture of my PCB here:

Very bad design

It's a four-layer PCB with 1 oz. (35µm) copper on all layers, stacked like: signal, FR4 (0.3mm), GND, FR4 (0.85mm), VDD, FR4 (0.3mm), signal. VDD is 3.3V.

The analyzed tracks (SPI from MCU in the lower left corner to a memory on the upper right corner) are 0.15 mm. wide and have a 0.15 mm. gap between them.

Of course one shouldn't design boards that way. I should have so much trouble with a board like this.

So I used Saturn PCB Design's PCB Toolkit (a free tool) to calculate how bad my crosstalk should be:

Saturn PCB tool using 0.15 mm as parameter (S)

Saturn PCB reports 2.64V of crosstalk for a nominal 3ns rise/fall time. My signals should be completely destroyed with such big a crosstalk.

I tried using Altium for the same analysis (a much more complete tool). I've applied the IBIS model to the CPU and generic IC (LV) models for the other two chips. Then I ran the analysis and got no errors. Here it is:

Altium's analysis

My surprise came when I generated a crosstalk analysis between the lines from the SPI group (SPI+CSEL), marking CSEL as victim and MOSI/MISO as attackers:

Altium's analysis on the SPI signals

As you can see, Altium's analysis gives a much more optimistic data of the crosstalk, amounting to mere +/- 75 mV, instead of 2.64V I've expected.

Elsewhere I've read that Saturn PCB calculation has the wrong picture to illustrate the parameters, and the (S) parameter should be the distance between track centers and not between track edges. That would rise the distance from 0.15 mm. in my first calculation to 0.30 mm. Although the crosstalk is milder, the new data is not significantly closer to Altium's analysis:

Saturn PCB tool using 0.30 mm as parameter (S)

So I am clearly missing something here. First, what would the right value for Saturn PCB's (S) parameter be? 0.15 or 0.30? And more importantly, why Altium gives us values that are orders of magnitude lower than Saturn's? What am I doing wrong?

Please find attached the Altium project and it's generated output (schematics, Gerbers, etc.) for reference.

Project and project outputs

\$\endgroup\$
  • \$\begingroup\$ I'm not sure how the Saturn tool can be using the distance-between-centers as the S parameter, since it never asks you the trace widths. \$\endgroup\$ – The Photon May 13 '16 at 16:52
  • \$\begingroup\$ The rise time in the Altium analysis looks a good deal longer than 3ms nom to me. \$\endgroup\$ – Scott Seidman May 13 '16 at 17:04
  • 2
    \$\begingroup\$ +1 Good question, well formatted, presented findings, and provided source files. I wish all questions were done like this. Well done! \$\endgroup\$ – efox29 May 13 '16 at 17:24
  • \$\begingroup\$ @ScottSeidman The rise time in Altium is at most 3ns at the attackers' outputs, and about 2ns at UM3-5 MOSI (5th plot). \$\endgroup\$ – Guillermo Prandi May 13 '16 at 18:43
  • \$\begingroup\$ Have you tried reducing your track height? 0.3mm is almost an entire order of magnitude larger than typical 1oz copper. Solving for the same inputs but with a Conductor height of 0.03556 mm gives a coupled voltage of 0.04572V, which seem much more reasonable. \$\endgroup\$ – Araho May 14 '16 at 15:31
4
\$\begingroup\$

It's quite simply that Saturn has no idea what chips/passives are connected to the target line. If you look at the 2nd example, your driving voltage is 3.3 volts and it couples 1.65 volts to a track that is effectively equi-distant between source and ground. It cannot produce an answer other than 50% of 3V3.

Any driving node on the target line is going to look like a few tens of ohms and this will decimate any cross talk and convert what would have been a cross-talked voltage pulse to a current sunk into the driver.

\$\endgroup\$
  • \$\begingroup\$ I think I see what your point is about, though I can't quite get it. Could you please elaborate? What I understand from your answer is that electrical context strongly affects the effective crosstalk, which then makes me wonder what's the use of tools like Saturn's? \$\endgroup\$ – Guillermo Prandi May 13 '16 at 18:47
  • \$\begingroup\$ I can't answer if this tool is useful. If it only considers that the track is totally unconnected to anything it seems pretty useless. I don't know what you don't understand about my answer so, at the risk of writing a page or two on the subject and missing the point, maybe you can be more specific about what you don't quite understand. \$\endgroup\$ – Andy aka May 13 '16 at 19:20
  • \$\begingroup\$ I've read many pages about crosstalk calculation and none of them mention anything about "what are the tracks connected to". I've found that very difficult to swallow because I don't think it should be the same effect if the line is driven by a MOSFET directly from the power line than when the line has a 100K pull-up. The point is I really don't seem to understand crosstalk calculation at all. Altium's 75mV sounds much more sensible than Saturn's 2.64V. So, an explanation on how to calculate crosstalk in "connected" cases like this would be very much appreciated. \$\endgroup\$ – Guillermo Prandi May 13 '16 at 19:47
  • \$\begingroup\$ I don't know how to calculate the line crosstalk that's loaded other than to go back to first principles and treat them as being coupled by a capacitor with a resistor (representing the driver) down to ground. I might then try to see how much current would induce voltage in the other track due to mag coupling. You asked me to explain why the two readings were different and clearly Saturn has no idea what is or might be connected to the line and hopefully that has answered your question. Maybe raise the "how to" part as a new question - I for one would be very interested in the answers. \$\endgroup\$ – Andy aka May 13 '16 at 20:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.