Routing is (another) 4x faster, and jobs now complete ~10x faster since launch 🤯
At Quilter, we spend a lot of time thinking about what electronics development will look like when PCBs that used to take days or weeks to design by hand are generated in minutes.
When we first launched Quilter in February, one of the most common pieces of feedback we heard was that "Quilter is too slow." At that time, the average job took 2-3 hours to return its first successful candidate and about 4-8 hours to finish exploring all candidates.
Needing to run Quilter overnight made it far less helpful as a tool for iterative learning and discovery. So, since launch, we've focused on improving Quilter's performance to realize the promise of "PCB designs in minutes."
Today, we’re proud to share the second significant speedup to Quilter's compiler: a rebuild of our global routing submodule that makes routing (another) 4x faster and reduces average Quilter job time to <1 hour.
![](https://global.discourse-cdn.com/business7/uploads/quilter1/original/1X/d669c83816108411f43933a81d4cbc35a6eec77a.gif)
Dozens of options in <1 hr
If you read our blog post from April, you may recall that Quilter is composed of 5 major submodules that handle placement, routing, and post-processing for all layout jobs.
Because there are so many ways to route the same board, finding the best solutions within a nearly infinite search space is far more difficult for routing than component placement. Our internal benchmarks reflect this – at launch, routing represented nearly ~70% of job time for the average Quilter submission.
The first major routing speedup we shipped in April was a rebuild of our local routing submodule, which is responsible for specifying trace paths and obstacle avoidance. Reimplementing this module from Python to native (C++) accelerated routing by 6.7x and reduced average job duration by 3.6x.
As a follow-up improvement, we've also fully rebuilt our global route planning submodule, which determines how major traces are organized and traverse the board space.
As a result of this rebuild:
- Routing time has now improved from 6.7x → 27x faster since launch
- Total job time has now improved from 3.6x → 9.4x faster since launch
Most importantly, this means the typical successful Quilter job now explores 50+ unique designs and produces 20 DRC-free, 100% complete candidates – all in less than an hour.
Quilter isn't just an overnight tool; it can now help you explore designs during your company All Hands or your lunch break, significantly increasing its utility as a design partner for professional EEs.
Putting our speedups to work
For our newfound speed to be truly useful, Quilter must produce good designs, not just complete ones.
To that end, we've worked hard over the last few months to improve Quilter's ability to understand the physics requirements embedded within your schematic and faithfully translate them into your PCB layout.
Preview: Differential pairs
Differential pair routing is a common requirement for high-speed digital designs, but it can quickly become a circular process of defining stack-ups, calculating impedance profiles, tedious trace routing, disappointing fabricator lead times…repeat.
Quilter will soon be able to automatically detect and route differential pairs detected in your schematic, as well as:
- automatically calculate trace width and spacing requirements for user-defined differential impedance targets
- generate unique designs from a library of pre-defined stack-ups defined in partnership with top fabricators
- "grade its work" using IPC standards and heuristics to highlight tradeoffs between manufacturability and performance
Differential pairs are the first in an entire roadmap of new constraint types that will help Quilter produce better designs, now faster than ever.
What should we build next?
If you're interested in helping shape the future of Quilter's product roadmap, head to our public product portal to view, suggest, or vote on features you'd like us to add to the product.