Can I Trust KiCad 5.99's "Fillet" Function on my High-Speed Differential Pairs?

As many users have discovered, KiCad 6.00 will support converting a straight bend to a rounded bend using the “fillet” function to give the layout a better physical appearance. I found this is a great feature.

However, what I’m not sure is whether I should trust it for high-speed, impedance controlled differential signals like SATA, USB 3 or PCIe. The existing differential pair routing mode is well-tested and I know it always creates compliant traces from experience. But how reliable is the “fillet” function? Are the traces still satisfy the differential pair gap design rules at the rounded corner? Is it possible that using the “fillet” can create differential pairs that violates the design rule? Also, what is the recommended fillet radius?


KiCad-nightly V5.99 is released especially for testing purposes.
So backup you work, and try it out on a copy.

One thing you have to be aware of, is that once you save a project in KiCad-nightly V5.99, it can no longer be oped with KiCad V5.1.x. File formats have changed significantly (Especially the schematic)

Thanks for the reply, but I’m sorry to say that this didn’t answer the question. I’m asking the technical properties of the “Fillet” feature, not the precautions to take when using a nightly build, although it’s good to know.

In particular, it appears to me that the “Fillet” feature only considers individual traces, although I tried it on some traces and it seems to give good results, but not taking the diffpair into account is worrisome to me - for example, if the diffpair gap is 5 mil, is it possible that the Fillet feature may silently create a 6-mil gap at some locations without being noticed? Any information on the implementation details or testing experience is appreciated.

The fillet tool is designed for single tracks and does not consider differential pairs specially. That said, it should be no problem to fillet differential pairs if you account for this when determining what radius to use. In order to get a constant gap between the pair members through a corner, the radius of the inside track must be smaller than the radius of the outside track. In other words, both arcs must share a common center point. If you increase the fillet radius by the distance between the track centerlines (i.e. the DP gap plus the DP trace width) for the outside track, you should get a perfect result.


Also, bear in mind that the fillet tracks tool does not respect DRC. It is possible that it might create an arc segment that causes a DRC violation.

There are definitely things that can be improved but will have to wait for v7.

1 Like

Thanks. This answered my question perfectly.

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