Hard time routing differential pairs

This is why feature requests to implement simultaneous routing of multiple signals make me laugh. Not because of the request, which is sensible…

Well, I can only say “mea culpa”, the diff pair mode in the router is quirky as hell. Hope I’ll be able to fix some of these issues for the V7.

Tom

3 Likes

Anyways thx for your work so far and looking forward to improvements :wink:

Making turns with differential pairs is hard since maybe DRC is not allowing us to place them in that specific place/position/shape, but we don’t have much visual feedback from the router on that, I feel.

Also, the same happens with placing differential pair vias. Sometimes is quite hard to place them since, for some reason, they are not being allowed, and the feedback to the user is not quite communicative.

I came up with this approach using 3 steps, similar to what @Tojan said.

  1. I route differential the pair (6) close to the pins, but not too close, and then I place the vias (v).

  2. After I route from the pins to the vias, ending before trying to connect them. Them I route using single traces (x) from this end to the via.

  3. And then I can have a better shape of the wire.

Here are some tweaks that may be useful for some.

  • To have more balanced traces in the end, vias can be moved centralizing vertically (in this case) with the pads before steps #1 and #2

  • Vias can be moved close to the pins, before step #2, by removing the 2 last sections of the red traces since they were routed using single trace mode (x). Blue traces have to be increased too.

I thought it could come from the complexity of the board. But DRC does not help too since it is closely related.

Do you have an idea if is it possible to improve this? Is it possible to disable DRC while routing differential pair traces?

That would be awesome, Tom @twl.

This is the result of this process.

By default differential, pair vias cannot be placed this close to the pads for some reason.

Actually, here I could place them quite close.

I have done some differential routing. It is not too easy perhaps because I don’t know all the settings which could make this easier. Corner mode is one problem, if the rule allows only 45 degree corners, and so on. Making turns is not easy either, I get extra kinks by accident but corners do not always come where I want.

Sometimes I think my machine is too slow, when everything seems to freeze. Sometimes it help if I click to show to the router that I am happy so far.
Zooming closer sometimes helps too with connecting ends. And sometimes I just do “the last mile” by hand for each track separately.
You need plenty of room to get vias and really for the whole differential pair.
I do not have any clear advise, except practise/trial and error. There seems to be some helpful settings which are not on on default.

Thanks, @LM21 It looks like you are having the same issues as we do.

Now, the computer I am using is not that bad and it is quite recent too. Just for reference, it is a Dell XPS 15, 9510 with i9, 32 GB RAM.

Have you noticed that sometimes differential route wire are in opposite order. Like if pad has p on top and your route has p lower wire of the pair.

Do you mean, the rastnets are switched? I saw some pairs switched but it is normal, I think. It depends on the IC, I think. Or if you are using custom symbols/footprints you may check if the pins on both matches. And also check if you are not connecting them wrong.

Maybe I could reproduce what you said.

See these two blue rastnests on the left?

If the “Show rastsnest with curved lines” is selected, then they appear like this:

It confuses a bit, indeed if the zoom is close enough, if maybe be always the case.

Another interesting fact is that I saw I could pain ratsnest. Then I made this group blue. Like the ones above. But when you are routing DifPais they have to appear Blue and Red, if they appear both the same color, for me, Blue, then it looks like something is wrong in that traces… it is better to remove it and start again.

Ah, maybe the second thing that may be related to what you said @LM21 is that sometimes when I start routing from let’s say _P trace, then it does not end when I connect a pad with _P. But instead ends when I click the pad with _N.

KiCad has has gone too far with this curved lines. For instance tracks could be be smooth, but I curved tracks which look funny.

I wonder if it is from Schematic? I have done all kinds of routing errors but usually some tool complains about them.

People wanted the curved option because sometimes straight would become hidden as they overlapped or lay one on top the other.

I don’t think so. My schematics look quite right. This may be an issue with the router itself.

Sure, makes sense. And both versions (straight and curved) are available and can be selected. Maybe, the curved one can have a little bit more love in the future… maybe it could be tweaked to curve to the same side for differential pairs.

Now another thing I am thinking… since routing is quite hard on Kicad 6, I am wondering if it is possible to open the kicad_pcb with an older version, let’s say Kicad 5.1.12 to have a better behavior while routing. I am not sure Kicad 6 PCB can still be opened with Kicad 5. I will have to install it here to check.

This is the first version to offer them so feedback may help drive some tweaks.

2 Likes

The quick answer is no, you can’t open KiCad 6 files with KiCad 5 as is. The file format has changed quite a bit to allow for features like the curved traces, so you’d have to use an external script to remove new features (or do it by hand).

Curved tracks are good to have as option. But now there are bugs. For instance, I suddenly got some curved tracks when I was doing some long routes. But now I see no curves with new tracks. I changed some options, so that may be the cause, but later, I dind’t change them, but and I still see no curved tracks.

There are other curves too. Some (90 or 45 D)corners could be smooth or rounded.