Problems with tuning skew of differential pairs

Hi,
I searched the internet for over an hour by now, and apparently this issue has happened to other people before but none of the fixes work for me.

I have differential pairs and I am trying to tune the skew.

When I click on one line, it tells me the skew is about 3.3mm, however when examining the two tracks the difference in track length is only about 1mm. If I apply the tuning, Kicad says that my other segment is now 2mm longer but persists that the pair is “tuned”. So I dont know which measurement of length I can trust and with high-speed differential lines that mistake can be costly.

The next problem that I have, is that on some differential lines it mistakes the short track with the larger track and thus makes the already larger track even larger. I already used the clean up tracks and via tool and rewired the connection and checked every segment for underlying tracks that could distort the track length.

Hi @dlayh,

Start by pressing 7 (Tune Length of Single Track). Click on the 1st track. A message at the cursor will display the actual length like that:
Screen Shot 2022-03-15 at 1.38.32 PM

In my case, it claims that my track is too short. That is because there is some default length (3937.01 mils).
Mouse right click, a menu appears:
Screen Shot 2022-03-15 at 1.43.00 PM

Select Length Tuning Settings:


Set the target length to the length of your track.

Now click on the second track and it will tell you the difference to be tuned.

I hope this helps.

2 Likes

Hi @wildcatrealtime,
thank you, thats a smart work around!

Hi again @wildcatrealtime,

your trick worked for some of my tracks but now I encoutered the same problem again. The track length given by the tool differs by 2mm from the one Kicad says is the actual track length


image

I guess I can just substract the values but the main issue is still: why do the tune length tools show a different length than the bottom bar?

I believe the problem is the round corners. This is a new feature and not fully implemented in version 6. There are improvements in the nightly version 6.99.

So, for now try to use the 45 degrees chamfered corners. It should work the way you expect.

1 Like

Thanks thats good to know!

The length tuner and the status bar use different calculation methods because the length tuner in KiCad assumes a point-to-point connection between two pads (more complicated topologies like tree fanouts are not supported) and so when you click to start length tuning, KiCad finds a path between two pads on that net and can make a more accurate length measurement. The status bar and net inspector measurments do not have the benefit of a starting point (the point where you click to start placing a tuning shape) so they cannot run the same path-finding code.

There should not be an issue with rounded corners. The following are known reasons why the tools can differ:

  1. If you are including board height in length calculations (on by default, can turn off in Board Setup), the length tuner uses the actual length through a via, that is the distance between the layer where the trace enters a via and the layer where the trace exits the via. The status bar calculation adds the full height of the board for every via.

  2. If you have overlapping segments / redundant segments, they are excluded by the length tuner but may not be excluded by the status bar calculation in all cases.

  3. If your trace is not point-to-point, i.e.if it connects 3 or more pads, KiCad does not support length-tuning for it as you cannot currently specify which is the driving pad and which pads are receivers. The length tuner will pick two pads to measure between, but the status bar / Net Inspector will show the total routed length

There could also be unknown/unreported bugs.

2 Likes

Thank you for clearing that up.
To be honest I am still a bit confused which length measurement I should trust then. Because sometimes the status bar measurement and the tune tool measurement are equal, sometimes they are not and sometimes the tune tool is clearly wrong, for example I have a track that curves around corners and the tune length tool persists that the inner track (which must be shorter) is longer. Also all my vias are through vias because I am using the outer two layers of my board for the signals so I suppose the full height of the board should be equal to the length through the via here.

Please report this as a bug with the design attached.

The length tuner tool should always be more accurate, if there are no bugs.

Thank you @craftyjon for clarifying length tuning.
While it may not be perfect, it definitely produced satisfactory results in my board (1 gig Ethernet differential signaling).

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.