Recently, I re-watched the epic science fiction movie, 2001: A Space Odyssey. Although this film was released in 1968, I don’t think I saw it on the big screen until 1969, when I was 12 years old. I know that by the time I watched the film, I’d already read the book, for which I was very grateful, because that’s pretty much key to understanding what’s going on in the first part of the film.
As most science fiction buffs know, 2001: A Space Odyssey started off as a short story. Later, it evolved into the movie and full-length book, which were developed and released in parallel. The short story was The Sentinel by Arthur C. Clarke. This was initially written as a submission for a BBC competition, but it failed to place (I bet those judges felt very silly later). As a result, it didn’t appear in print until the Spring 1951 issue of the science fiction and fantasy pulp magazine 10 Story Fantasy.
It amazes me how well this movie has stood the test of time. It employed groundbreaking effects, including models, rear projection, and innovative camera work, that provided astounding visual realism. If I close my eyes, I can still see the rotating space station and the zero-gravity scenes, which rival the best that today’s computer-generated imagery (CGI) has to offer.
Now I’m thinking of the HAL 9000, a sentient artificial general intelligence computer that controls the systems of the Discovery One spacecraft. HAL is one of the earliest and most iconic fictional representations of artificial intelligence in popular culture. And one of the most quoted moments in science fiction history is when astronaut Dr. Dave Bowman is locked out of the ship and says, “Open the pod bay doors, HAL.”
HAL responds in his eerily calm, detached, measured, monotone, and unsettlingly human voice, “I’m sorry, Dave. I’m afraid I can’t do that.” Just thinking about this conversation sends chills running up and down my spine. After watching this clip, it is also worth noting that the juxtaposition of silence and sound in space used in this movie was revolutionary at the time and remains a staple in film schools to this day.
The part of the story that’s relevant to us here (and I use the term “relevant” in the loosest sense) is where HAL is (purportedly) helping the astronauts to debug and diagnose a (supposedly) failing AE-35 unit.
Everything pertaining to the AI-based predictive maintenance and debugging assistance depicted in this tale seemed very far-future at the time. In those days, I never expected to see anything remotely resembling any of this in my lifetime, yet here we are.
In a moment, I’m going to tell you about an AI-powered PCB layout tool. I can imagine you reading the preceding sentence and saying something like, “Ha! No such tool currently exists that can create a better layout than a human expert.” I agree, but that’s not the point. Also, when we consider the speed with which things are moving in “AI space” (where no one can hear you scream), it may not be long before such a tool does exist.
Please permit me to take a slight digression to set the scene. I’m thinking of the 1970s, when C compilers appeared on the market. Prior to that, everyone I knew programmed in assembly language. I remember the assembly gurus of the day pontificating and proclaiming that no C compiler could generate better assembly code than a human expert, and that was true (at the time), but they missed the point.
The fact is that creating a program at a low level of abstraction, such as assembly language, is both time- and resource-intensive. You typically have sufficient time to take only one “stab” at it. Consider an application that requires some sort of sort function (no pun intended). What’s best for this particular task? Should we use a bubble sort, insertion sort, selection sort, merge sort, quick sort, heap sort, counting sort, radix sort, bucket sort, shell sort… the list goes on? Sadly, we will never know because there would be time for only one iteration. As a result, assembly programmers almost invariably opted for what they knew (i.e., what they had used last time, and the time before that, and so on).
By comparison, those programmers who adopted C compilers and adapted to a higher level of abstraction could better explore the solution space, evaluating multiple sorting algorithms, for example. What this meant in real terms was that, although the assembly generated by the C compiler for a particular sort algorithm might not be as good as could be achieved by hand, the algorithm itself—having been selected from a bunch of evaluations—might be much more efficient than the alternatives for that particular application. Furthermore, once the best algorithm for the job had been selected, the assembly code generated by the compiler could be fine-tuned by hand (this latter step became increasingly unnecessary and unused as compilers increased in sophistication).
Keep this thought in mind…
I was just chatting with Sergiy Nesterenko (Founder and CEO), Will Hart (Product Leader and Startup Executive), Ben Jordan (Product Manager and Technical Marketer), and Darin Tenbruggencate (Senior Director, B2B Product Marketing) at Quilter, which claims the latest and greatest in physics-based autonomous AI PCB design software.
The way this all came about is an interesting story in its own right. Sergiy had just joined SpaceX as an avionics intern in 2014 when he was given his first PCB design project. The idea was to take a power distribution switch used in one of the Falcon 9‘s power distribution systems and break it out as a test board to perform a MIL-STD test for long harnesses that have a lot of inductance and accompanying overvoltage. It took three fried boards before Sergiy realized that he’d made the very mistake he was testing for—the regulator he’d used to power the switch was rated for 75V, but the overvoltage spikes were three times this amount, which made for a very unhappy system.
After this, Sergiy and his colleagues spent several years building numerous test boards to ensure the rockets weren’t susceptible to radiation effects. They designed circuits, selecting parts and programming firmware for flight redundancy and reliability, and performed PCB layout.
Of course, SpaceX has a PCB layout team, but that team is super busy. They have time only to create the flight boards, leaving engineers like Sergiy to create their own test boards. Sergiy was using Altium at that time. As he says, “When I first designed my first board, I was like, why isn’t this automated? And then I tried the auto router and had my own experience of failing with it, and I was like, okay, I see why.”
Let’s switch tracks a little. AlphaGo is an AI program developed by Google DeepMind that plays the game Go. In 2016, AlphaGo defeated Lee Sedol, one of the world’s top Go players and a 9-dan professional. Over the course of a five-game match, AlphaGo won 4 games to 1, marking the first time an AI had beaten a top-ranked human professional at Go without handicaps on a full-sized 19×19 board. This match is widely regarded as a milestone in artificial intelligence.
AlphaGo employs a technique known as reinforcement learning. “What’s that?” you ask. Well, just to make sure we’re all tap-dancing to the same skirl of the bagpipes, two of the primary techniques used in machine learning are supervised learning and reinforcement learning. The fundamental difference between these approaches lies in the source of the training data.
As an example of supervised learning, consider a natural language model. You can train this by gathering as many articles as possible from the internet. You grab the first sentence of an article as input and predict the second sentence as output. Then, you compare your second sentence to the actual second sentence and tune your model to make it better, repeating this process trillions of times for trillions of articles.
By comparison, in the case of reinforcement learning, you don’t take an input and say, “here’s a good output.” Instead, you interact with an environment to gather good outcomes and bad outcomes. Suppose you were using reinforcement learning to teach an AI to play Tetris, for example. At first, it will make random, unintelligent moves. Most of these moves will contribute to a bad score, but every now and then, it will accidentally do something that contributes to a better score. Over the course of millions of games, the AI will identify and remember patterns and strategies that improve outcomes.
Sergiy became interested in this subject and learned everything he could about it. He became convinced that an AI employing reinforcement learning could be used to design PCBs.
Now, this is where things start to get interesting. By this time, Sergiy had left SpaceX and was working for another company. As part of this, he assisted an investor in conducting due diligence on a sensor company. After this, the investor said, “Hey, how would you like to start a company? I’ll give you a million bucks. Go for it. Whatever you want to build.” As Sergiy says, “That’s a deal too good to pass, right?”
And thus was Quilter born.
Of course, there’s a lot more to the story than this—I’m just touching on the highlights—but at least you get the gist. So, let’s jump ahead to where we are today. You start by creating your schematic using your existing CAE (design) software. Next, you need to establish some constraints, such as the size of the board and the locations of features like mounting holes, connectors, and similar elements. You do this using your existing CAD (layout) software. As Sergiy says, “Anything that’s on the board, that’s our constraint; anything that’s off the board, that’s our responsibility.”
All this data is then fed into Quilter. At this point, you can add additional constraints, like the various companies you might use to fabricate the board (this will automatically add the DFM rules associated with those companies), the maximum number of layers you wish to use, and so forth.
The following demonstration was created about six months ago, which is a lifetime away in this space. This board has around 300 components and 1,200 pins. Sergiy says that it would probably take a human in a real professional context, a week or a week and a half to do something like this, given meetings, interruptions, and suchlike. By comparison, Quilter can evaluate thousands of alternative implementations and present a bunch of candidates in hours.
The folks at Quilter are very keen that I don’t oversell this. They say that Quilter is not as good as people (at least, not today). Suppose you insist on a 4-layer board for a particular project, for example. If Quilter is forced to do four layers, it might reach 99% completion, and you’ll have to do some work to finish it up. But if you allow Quilter to use six layers, it’ll reach 100%.
Now it’s up to you. What do you value more? If you value time and are working on a low-volume prototype or test board, consider using the 6-layer board, which is almost the same cost as the 4-layer board, and you’ll complete it more quickly. Or maybe it’s a high-volume production board, and the fact that it’s four layers really matters to you. In that case, you can take the almost completed result and finish it yourself, then send it to the fab.
Will had a related point, which he presented as follows:
When designing a board, there is an entire possibility space that exists for that board, where some versions have better RF characteristics but are more expensive or have longer lead times to fabricate. As humans today, the stack-up is one of the first things that has to be locked down. And really, the core constraint is time. You have effectively only one shot, unless something goes wrong. So, upfront, you must essentially commit to a section of the solution space where the designer intuitively feels there will be the best balance of all the constraints and requirements that exist intentionally in relation to one another.
One of the things that’s interesting about Quilter, and where it deviates from the traditional design process, is a place where people often get confused. We treat the stack-up as part of the optimization space. So, yes, maybe you do want as few layers as possible, and we’ll be able to give you a sort order that says, “Here are the ones with the fewest layers.” However, perhaps you’re looking for the best signal integrity, and we may find that we can achieve the absolute best signal integrity by increasing the number of layers, as this allows us to add ground plane isolation, which delivers better results.
Or you might be in a position where you can now decide between options, along the lines of: “I can do this in four layers, but I will need to go down to really small tracing space that has additional manufacturing requirements, which might restrict where I can build this board, or I can go more layers and have more flexible options where I could decide I could dual source this circuit board.”
I think fundamentally, when you take the cost and the time of developing a circuit board, which today is very expensive and very long, and you compress it to very cheap and very fast, you can explore the solution space in a way that just isn’t possible today. You can better understand the solution space for your design, and then hone in on the right configuration, refining it to the point where it’s production-ready.
This is one of those things that disrupts the traditional design workflow, and in the long term, when Quilter is better than humans, will significantly transform the level of optimization possible for circuit boards.
This is where we turn our attention to Ben, whom I’ve known for more than ten years. Ben used to be with Altium, and he’s an expert user of Altium Designer. He was telling me about a demo board he’s been working on. This board features an FPGA, a 4-power supply PMIC, a USB interface, and a bunch of additional components.
Ben says that once the schematic for this board had been captured, the placement and routing would have taken him between two and four days as an expert user. By comparison, he submitted the job to Quilter and began examining the finished candidates about two and a half hours later, ultimately choosing one that worked with his preferred manufacturer.
BHASA REV-A.2 Board, Candidate 11 (Source: Quilter)
As Ben says, “Once I’d selected the candidate that best met my requirements, it was only a matter of doing some silkscreen edits and a final DRC before proceeding to fab and assembly.”
BHASA REV-A.2 Board in the flesh (Source: Quilter)
Ben went on to say, “After receiving the assembled boards, and a little troubleshooting of a design flaw that had nothing to do with place and route, I was able to program an embedded RISC-V system onto the FPGA and start firmware development within an afternoon. This accelerated the project timeline by at least 2 weeks.”
On the one hand, I think we can all agree that the board shown above is not nearly as complex as any of us has seen. On the other hand, I dare to say that most of the boards being produced today are not close to being as complex as any of us has seen.
There’s no universal industry database that tracks all PCB designs in real time. However, we can build a reasonable estimate based on known trends from PCB manufacturers, industry surveys, and anecdotal experience across consumer, industrial, automotive, aerospace, and medical sectors. Based on this, can I offer the following rough estimate of the percentage distribution of PCBs being developed globally, categorized by complexity, for your perusal and consideration:
Estimated PCB design complexity distribution (Source: Clive “Max” Maxfield)
From what I’ve seen so far, Quilter could happily tackle anything in the Really Simple, Low-Medium, and Medium categories. And I bet it won’t be long before it starts to extend its reach into higher-complexity boards. I can hardly imagine how much time and money this would save, allowing layout designers to focus on the truly interesting designs.
Since he founded the company, I think it’s only fair to leave Sergiy with the last word as follows:
As we continue to develop this technology, we will eventually find ways to create boards that are superior to anything humans could. And that’s really our goal. In fact, we have several goals. Goal number one is to automate the layout completely, to the point where reviewing a PCB layout is considered as insane as reviewing the assembly code generated by a compiler is today. And goal number two is to do things better than humans ever could. To be clear, we’re not there yet. We’ve got a long way to go, but that’s the direction. Everything we’re doing is with these goals in mind.
Well, as usual, I learned a lot here, which I count as a win. I’m tremendously impressed with what the Quilter team has already achieved, and I look forward to seeing how things evolve over the coming years. How about you—do you have any thoughts you’d care to share on anything you’ve read here?
I, too, read the book of 2001 A Space Odyssey before seeing the movie in a theater. I remember tiny details in the future part of the movie giving a sense of large structures: office workers seen through windows of the rotating space station. In the book, Dave’s pod lands atop a monolith, and the monolith turns inside-out. I wished the movie had shown that, rather than showing Dave’s pod flying under the monolith. As we now know, Hal was smart enough to run the Discovery One mission without a human crew.
I recall that Hal’s memory modules were labeled “MT”, perhaps punning “empty”.
Hi Peter — on the one hand, I wish the film had been a bit closer to the book at the end — on the other hand, both were different interpretations that stood proud in their own right. Now I want to watch the film and read the book AGAIN!
Hi Max,
Thanks for a really interesting article. Point well made – how many times have I started on a design only to have to back out after realising that I was heading down towards a non-routeable dead-end? (Answer – many!) Being able to “explore the solution space” before making that commitment could be a real time-saver. Obviously there are constraints on board size and shape as well as initial component placement that need to be taken into consideration before actually starting the PCB design.
( I often wish that HAL would stop telling me “I’m sorry, Dave. I’m afraid I can’t do that.” – Dave being my moniker!)
“I often wish that HAL would stop telling me ‘I’m sorry, Dave. I’m afraid I can’t do that.’ – Dave being my moniker!”
I’m assuming that HAL is a pet name for your wife LOL