Brian Benchoff wrote an autorouter

I saw this on KiCad info forums, just posted. He has a video describing and demonstrating it on the page linked below.

4 Likes

I found it interesting that he says he’s taking advantage of an algorithm previously used for FPGA routing. Not sure I want to pay for the blind and buried vias but if that’s the only way to escape all those pads…

Really interesting, thanks for sharing! Am very curious about how it would do on a real PCB (not just a backplane with thousands of similar nets), even if digital-only.

Maybe someday autorouters will be good. Maybe it’s today but color me skeptical. Everything I’ve ever tried (over 30+ years) has either failed miserably or produced a grievously ugly layout. I don’t find routing all that hard once you get your components arraigned well.

So thanks for the kind words.

I’d just like to point out the only reason this exists is to route this impossible backplane: It’s 8000+ nets spread over 160x160mm. It’s the densest thing I’ve ever seen, and the ā€˜Manhattan/PathFinder’ autorouter is the only way I can think that it could be routed. And no, there’s no optimizing the layout because I already did simulated annealing on the positions/connections of the nets, and it’s already optimal.

So yeah, to do this, I had to write an autorouter. So I did.

As for what this could do for anyone else, I’m betting not much. It’s great for absurd backplanes, but I could also see this modified and used for complex BGA escape patterns. Define the source (the balls on a BGA) and sink (where you want the trace to end up), and it could figure out an optimal escape pattern. But even BGA escape patterns are a little out there because BGAs are 1) designed to be broken out and 2) some of them already have escape planning in the datasheet.

So this is just an impossible problem that I had to solve. And I did. And now I’m commenting on threads to push the SEO up so that in ten years someone with the same problem will find this.

But since I did this…. uh, Chris…. your Never trust the autorouter shirts are out of stock and I’d like to buy one.

5 Likes

Happy to also help whatever SEO has turned into in ten years point back to this site.

I’ve never seen a board with that many pads. What are you going to plug into it?

I’m unemployed. Need a new portfolio piece. I figure building a supercomputer in my garage would be a good start.

And now that the backplane is done I can get to work on the rest of it.

2 Likes

I can understand that - how would you run an autorouter without a supercomputer?

I have no reason to ever use it, but this is seriously impressive!

@Benchoff So the big question here is: does the backplane PCB work as intended? :melting_face:
(Next project up, DIY flying probe or bed of nails tester)

The small, 512-net ā€˜test board’? Yeah, that goes into KiCad and I can make it DRC-compliant. I mean it’s an autorouter, so it’s never going to be perfect, but it’s good enough for a tool with some manual fiddling about.

The massive, 8000+ net backplane? That’s another story. It takes 10-12 hours to route that, so I’m really only getting one run per day. Right now I’m adjusting history and pressure factors of the PathFinder algorithm to get it to converge. The last few tests I’ve gone from 2-4 Million overused edges down to 100k or so, until it plateaus. The fix for this is adjusting some parameters and/or adding more layers. I think I have it nailed, if you see something tomorrow morning you’ll know I have it.

But yeah, once I have convergence on the 8000 net backplane, there are going to be a few DRC errors, but nothing that’s difficult to fix. I mean, it’s an autorouter what do you expect, something perfect right out the gate?

Welcome @Benchoff, it’s been a while!

The shirts haven’t been around for a few years now. Maybe we need a new version, ā€œNever trust the autocorrect autorouter (unless it’s Benchoff’s)ā€ :joy: