Brian Benchoff's OrthoRoute Gives KiCad GPU-Accelerated Autorouting Powers for Hefty Designs

A project that would have taken a traditional autorouter months was completed by OrthoRoute in less than two days, Benchoff says.

Maker Brian Benchoff has released an autorouter for the KiCad electronic design automation package — and while he says you should "never trust the autorouter, at least this one is fast."

"This is a project born out of necessity. Another thing I was working on needed an enormous backplane. A PCB with sixteen connectors, with 1,100 pins on each connector. That’s 17,600 individual pads, and 8,192 airwires that need to be routed," Benchoff explains of OrthoRoute's origins. "Hand routing this would take months. For a laugh, I tried FreeRouting, the KiCad autorouter plugin, and it routed 4% of the traces in seven hours. If that trend held, which it wouldn’t, that would be a month of autorouting. And it probably wouldn’t work in the end."

Got a complex KiCad circuit to route, and need it done fast? Give the GPU-accelerated OrthoRoute a try. (📹: Brian Benchoff)

Routing is the work of connecting the components on a PCB with copper traces — which, puzzle-like, cannot cross over each other. It's a juggling act of placement and route-tracing, often requiring that traces "jump" each other by adding new layers to the PCB and connecting them with vertical vias. Add in the need for impedance matching on high-speed designs, noise avoidance, and other considerations, and it's the part of PCB design that takes the most time.

An autorouter, then, aims to handle the problem for you, automatically laying out traces and vias to connect components according to your schematic. It's a computationally-expensive problem for even simple circuits, and leads to slow performance — which is why Benchoff decided to do like the artificial intelligences do and offload the problem onto a system's graphics processor for a dramatic speedup.

"Routed on an 80GB A100 GPU, rented on vast.io," Benchoff says of his finished backplane, which included a total of 44,233 blind and buried vias and 68,975 track segments. "The total VRAM [video RAM] required to route this board was 33.5GB, so close to being under 32GB and allowing me to rent a cheaper GPU. Total time to route this board to completion was 41 hours. This is far better than the months it would have taken FreeRouting to route this board, but it's still not fast."

Benchoff completed a backplane which would have taken a traditional CPU-based autorouter months in under two days. (📷: Brian Benchoff)

While Benchoff is clear that no autorouter should be trusted to do a perfect job, but instead act as the basis for further work by hand, he has released OrthoRoute on GitHub under the permissive MIT license, with more information available on the project website; "OrthoRoute proves that GPU-accelerated routing isn't just theoretical, and that algorithms designed for routing FPGAs can be adapted to the more general class of circuit boards," he says.

"I'm genuinely curious what other people will do with it," Benchoff adds. "Want to add different routing strategies? Optimize for RF boards? Extend it to flex PCBs? PRs [Pull Requests] welcome, contributors welcome."

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles