Welcome to Non-Polynomial algorithms! It difficult to infer priorities based on examples of already routed boards. Without hints and priorities, these types of algorithms can go off the rails and never comeback. I suspect that is what happened. The iterations are likely cause due to backtracking when an iteration yields a non-optimal solution. E.g. it got TRONed into a corner.
Moreover, I can't see how a machine-learning system is going to be better than simulated annealing or some other heuristic algorithm designed to try and address NP-complete problems (I bet this is one such problem) such as track layout. I wonder if a machine learning system might do better than humans with placement eventually, with a good algorithm or three to solve the track layout problem.
@@dalemosdeliverers9050 I have same interrogations as usual algorithms are already really not bad for FPGA implementation. (And these converge much faster than this tool.)
It seems to me that PCB layout is a whole load of interrelated travelling salesman problems stuffed into the knapsack problem, so I'm not really surprised that it's hard for a machine to find a good solution.
Dave, you're missing the main point of the "AI" here! Adding "AI" to any random system automatically construes a 4000% boost to the number of clueless venture capitalists who'll throw money at you hoping for ROI, regardless of if it actually benefits the user.
The weird thing is that they're all totally uninterested in anything that's real AI. (Strong AI) Tell them about the 20 year lead time and they run a mile. 🙃
Maybe that's the reason it's free, it has to learn and you have to start somewhere to get the thing going with input. It looks to me, they don't have a big pool of creators.
Very nice video. I use Altium for many years and all other kind of CADs years before starting with the very first CAD systems, I do manually routing many dense multi layers , and I gave up using any autorouter decades ago. Interesting it didnt get better since then. Also far away doing any RF Design I assume. AI is a nice approach, interesting it cannot do any better than the std. autorouters. But this is a challenging work, also for humans you need experience. I saw beginners which do the same as autorouters for their first steps.
I would not give a board to a layout engineer without specifying creepage, clearance, impedance, high frequency nodes and high current traces. It saves time, money and hassle in the longer term. I have had too many boards from layout engineers who couldn't identify a SMPS or knew it needed careful layout for the switching nodes (shoutout to the engineer that routed the switching node over half of my PCB). I would expect an AI to need similar guidance
Sadly I have never tried to create my own PCB layouts. I don't have the time and knowledge to do it myself. I'm a guy that builds smaller stuff where it is enough to run loose wires or use those yellow pre-manufactured PCBs with hundreds of holes in it and create some traces on the bottom. I would like to try creating my own PCBs, but ordering them from china is something, I wouldn't want to do.
I imagine a good implementation of a deep learning pcb router wouldn't go point by point like this. Doesn't make sense. If you train it on tons of layouts it wouldn't route like that at all. Regardless you probably would have to give some constraints to the AI no matter what. Or it would be a feedback process, like here's a solution based on your constraints. Now change this section, ok here's a new solution with the changes. Etc. Based on the footprint it could potentially reason what the application of the connecting component is used for based on trained data. Ultimately if the data set to train the AI is crap, then the result will also be crap. Midjourney is capable of understanding abstract concepts from a text prompt to generated high detail images. Routing a pcb should be easier to pull off if someone actually gave it the attention.
Seems to me PCB layout is not really a good use of AI anyway. Layout can pretty much be done with some advanced if/else logic in faster time. AI could play a role if it was smart enough to know what the components do and then lay it out accordingly, but clearly it has a long way to go! Maybe it will eventually get there.
This is funny. Like first it should place parts in a circle (in not placed), and work out a connected distance ordering of close. Then onto orientation for best or least rat-nest crossing, then route the power before signal in (after stopping for placement sanity), close least crossed signals first. Then there's vias :D
"I succeded!" "No, you didn't do all connections" "Yes, I did!" "No you didn't, see, it's only 196 of 238" "I'm the autorouter, I know better than you I've connected everything! I've been a good autorouter! You've been a bad user!"
that autorouter is doomed to fail from the start. how do you even expect a good result when it doesnt have the schematic and other information. it just doesnt know what to optimize for, and the people behind it arent training it so that it knows what compromises it should make and when to make them.
So you gave it one single try, a task possibly significantly bigger than the amount of data permitted to it's inputs at this stage, and proclaim it a FAIL? IT failed? You sure, you didn't fail it? Is it that you don't want to allow it to outdo you, Dave? :)
I use a quantum super computer, neural network, fuzzy logic, intelligence driven, self-organizing, self optimizing, multi-sensory input PCB layout entity called ME. It works rather well. At least it does on its good days.
After 40+ years of doing PCB layout, I still do routes manually. Auto routing can be useful for fine tuning component placement and as a sanity check. A point to point one-net-at-a-time auto route could be useful. In the mid-nineties, we used a $25,000 auto router that required incredible amounts of setup work to get routes. Then lots of work to clean up those routes for final gerber output.
Yes and some modern motherboards are works of art you could hang on your wall. Yet no designer would put form over function so I suspect that 'pleasing to the eye' form can assist function - but I'm not sure why. Perhaps it's to do with geometrical reductionism, which we humans tend to find comfortable and 'correct' so maybe electrons do too. I think the Romans would have made nice PCBs.
Yeah, when I started off, I quickly found that auto-routing just wasn't that good. I just route the most important traces first, leave the most tricky traces for last. But I haven't routed complex digital circuits so maybe autorouting starts to shine there.
Same here. Sure, some auto-routers may work for some details (bga routing issues etc). But for a mixed signal Pcb they are all garbage. Which is weird and ironic why some software developers (eg KiCad but definitely also others) put so much effort in something that most professionals barely use.
The robots will get stuck now being able to complete a simple routing. Then they'll just enslave human designers to do it for them and the humans will leave in backdoors that we can use to disable all robots. Seems like a solved case to me...
That would be a rather short movie! (Imagine a deep background voice as the camera pans over a dimly lit waste dump...) "In the year 2023 robots began to design new robots and they quickly evolved into monstrosities with PCBs sticking out their backs! A year later John Connor united mankind in the final battle against the robots when he found out that a piece of polyester creates enough static electricity to bring down an entire army of robots! ..." (camera pans over the scarred remains of something looking vaguely like Arnold Schwarzenegger) "I'll be ... ba...zzzztkrrk!" (roll end credits)
@@RapiBurrito I use OrCAD myself. I waste up to 20% of my time fighting with its bugs and stupidities, but it is the "enemy I know"... I wish I could learn Altium, but I spend so much effort on OrCAD that for lack of time I will just stick with it for now...
Dave, there can't possibly EVER be a good autorouter until at schematic entry level we specify a LOT MORE properties for every net and for every component. Like voltage rating and current rating for every segment of a trace, and so on! I won't go into more detail as of now, but I think it is very obvious what I mean. As I am trying to pursue that route myself. Will see how it comes out!
@@EEVblog Agree there, but I think "planning for AI to overtake our engineering jobs" we are going to start marking up every net line-segment on the schematic with what voltages and currents are associated with it, what its purpose is, etc. A computer can't comprehend a schematic, yet it can comprehend the "set of rules" that you already mentioned in the video. But I think drawing up a schematic, then simplifying it to a netlist, and then feeding that into a router is an impossible task, don't you think??? Because any visual information discernible from a human from a schematic level drawing is LOST when converting that info into a very plain and dumb netlist... I think we need a next-generation "netlist" with a crapload more "properties and rules" for every net SEGMENT and every component before a computer can ever take over our jobs of trying to lay out a PCB that actually can even try to follow the schematic and the intent of the schematic drawer...
@@nameredacted1242 If you combine this with electronics simulation software I'd expect it to be able to figure out what voltages and currents will be present by itself. You'd still need to feed it accurate information about the components and the nature of any external inputs of course.
@@ayaya-ayaya A proper AI could generate a report of what it did when it's done, or even ask you some questions where things are not obvious. Then the result would be easy to evaluate.
My guess is that this is project of a web-dev/marketing type that hired some people that are PCB/AI adjacent where the project eventually fizzled out a few years ago.
Yeah, I have been told for 50 years that the new software I need to pay money for has an autorouter, and except for fanout, I still have to lay all traces manually...
What if you could explain what the board is supposed to do, give a set of constraints and provide a drawing of what the end result is supposed to look like? I think AI works much better in the right context. So a language model with auto routing capabilities might be able to do a much better job.
@@pietheijn-vo1gt with automatic laying out components and all that stuff? I bet the result would be even more miserable. As for constraints, we've got design rules and DRC already, so why not treat that as a requirement and feedback source for every iteration of routing? There's one thing that the bot could do, even better than humans: combining multiple inputs from initial design, datasheet analysis, SPICE simulation and DRC. Like, tell it to design a board based on the schematic and layout you provided (initial input) based on chip manufacturer's design recommendations in datasheets, figuring out the signals, voltages, impedances and all that at every point (SPICE), routing the traces and then verifying the work (DRC), re-iterating until it gets it all good.
Start with trace width (current-carrying capability) and trace separation (manufacturability and voltage isolation). Add manufacturability (DFM) constrains. Add special traces like controlled impedance. That's about it to start manual layout with auto fanout.
In my experience auto-routers really struggle with 2 layer boards. They do much better on 4 or 6 layer boards. With a defined ground layer and two layers where you can go unimpeded left/right or up/down the altium router basically always finishes the board. Especially for early prototypes it is not worth the effort to route them by hand if it can be done good enough automatically.
Could you try it with EasyEDA? I have been auto-routing for few of my PCB boards (not too complex). They have turned out acceptable in my opinion. At least not too many obvious funny jobs like the DeepPCB did in this video.
But placement is a solved problem in any autorouter test; where you have a board that is already routed, and you rip it up. By all reason, a GOOD algorithm should be able to at least solve that board, maybe not the prettiest way, but successfully and ideally even with some optimisation like making the paths minimal in total. It's neither a fully solved problem nor a fully unsolved one, as ones that approach this ideal better than pure trial-and-error do exist.
Companies are just using the word 'ai' to make everything look more fancy. Clearly this is not trained on anything.. selecting the best from the worst is not learning. I think future autorouters have to be divided into two parts: one for priority nets (which may be still altered by humans) and once that is done, the rest of the tracks can be autorouted. I think the fun really starts when automation is added into thing like outline generation, component package alternation and compact placement. All this would make it easier to miniaturize and select right option for your application
This is my hypothesis. The company probably expects the users to submit smaller designs. Then by letting the customers chose the best implementation out of many they might be using the information to implement RLHF. Even the information that one of the routings might be 0.1% better than the others could be amplified during reinforcement learning.
They should have done regular RL, with some heuristics learned from human routed design. And only do the RLHF as a fine tuning of an already working system.
The truth is, auto routers can be good, they are the lifeblood of the ASIC industry. In the PCB industry, the money just isn't there when compared to the ASIC industry. There was an article on chiplet designs where they mentioned they use PCB design tools to do most of the work for connecting chiplets together but really have to create custom automated tooling because the pin count is getting too high. The likes of Synopsys and Cadence has all the know how to do PCB automation tooling, it just doesn't make sense for them to.
Are you sure? I think ASIC place and route is solving a slightly different problem since the tooling has full control over the placement and rotation of the elements. Also, the elements typically have far fewer connections than PCB components.
Except ASIC routing is in terms of computing a very different task. The hard part of PCB routing isn’t laying the tracks, but making the right compromises. Those compromises are basically non existent on digital ASIC routing. It should also be mentioned that as Dave said, PCB auto routers can solve digital non-critical layouts alright. That’s what ASIC designers do, analog ASICs are still routed manually.
I've only worked a little bit on the ASIC side of things, but most of it is standard cell, with similar properties to FPGA design: power and clocks get dedicated passes, then congestion driven routing handles signals, and you check if the result satisfies timing. Bigger components are hopefully in hard blocks (e.g. RAMs, DSPs, PLLs), known as macros in ASIC design. So there's just a touch more grouping information available. It does an okay job at routing, but not that great at placement; just tolerable compared to the enormity of the entire project. Working more with hierarchies could improve it immensely; compare something like Xilinx Lava where placement is driven by design, routing is near instant, and the results by far outperform the automatic systems. That wasn't quite ideal either; the guided placement approach left gaps, but that could be tweaked by tension similar to how LiquidPCB operates. Another thing that would be lovely would be learning such as Dave imagined would be going on here, similar to profile driven optimization in software compilers. If the design can build groupings based on patterns, e.g. connecting the nixie tube segments in a row to the south side, it could have that work prepared for later passes. It's that sort of overview that can help avoid painting yourself into a corner. The "AI" fixation of today is moving the task of programming to a similar level; designs too massive and jumbled to understand, grown instead of designed. It always produces results - just rarely good ones, and occasionally catastrophic. The vendor shrugs and points at "the algorithm". "What went wrong" becomes unanswerable, if you're lucky "do this better" goes into the next training set.
Interesting to see that the 'AI' autorouter is no better than the Altium autorouter. It actually looks worse than the Altium autorouter! Great video Dave!
A lot worse, because presumably if you sent the Altium one to manufacturing, it would actually work, whereas the AI would not because 18% of the connections were missing.
In 1988, I routed a 8 layer board with a software called AutoPCB, and it had done much better. The Free EasyEDA does a lot lot better. DeepPCB is just bluff.
I had a project where I had to route a 144 QFP to a PCIe connector on a 2-layer board. It was a challenge, I spent several days routing it, but I managed to do it. Keyword is "grouping". Bring related traces together and route them together as a group. It's a lot easier dealing with 8 groups of 8 similar connections than 64 individual traces that you assume has nothing in common.
LOL I started reading through your video section names and burst out laughing. I guess I'll put the dream back on the shelf for another few years then.
Dave raves about AI in adjacent fields, but in his field it's a "NO!" I actually see it a lot when folks are impressed with what AI does in the area they lack expertise (or even basics).
Well doing that my self for many years also, i understand what is the AI problem, first of all if understands how to route is a big advance, taking in account the pin-outs of every IC and display, but of course to solve that mess is using a messy approach, so yeah, in every aspect AI is using the apprentice approach, in chat or in this case, that is not a problem, the problem will be if never can solve that kind of things due of lack of data or perhaps, the IA is not the solution for that kind of things... time will tell. But is clear is using the recursive approach this is why missed the connection between paths, that is not real AI, that is the common approach like from 20 years ago.
Big difference though, since ChatGPT is actually capable of producing useful output for certain problems. Perhaps not the neatest but certainly functional. I've found it can be useful as a starting point for some infrastructure maintenance scripts, for instance. It seems that DeepPCB can't even manage that though - the layout it came up with is less useful than not having any traces at all.
@@gjsmo and I'm sure this "IA auto router" can produce useful results in some cases. It's like programming. You have to know how to program to use chatgpt for programming. It can replace googling for info, but don't replace the knowledge of a programmer.
Just as a curious outsider to software developement. Did you see something that was so out there ineffiecient that haven't even seen in your starter days of software developement?
@@gjsmo well actually i have to disagree on your view of chatGPT. It produce output that looks like useful, that is what it's been trained to do, please people in a casual chat. 99% of time when you look closer it is not actually useful. The thing is most people when chating are not very demanding at all. Engineering on the other hand is about making thing that actually works, not just looks like. Devil is in the details as we like to say. That being said, AI/ML/NN are legit tools that can be useful to solve some classes of problems, but P&R is not one of those problems. Graph optimisation algorithme are just better tool for that particular job. A good, well trained software engineer that actually master his craft should know that. But where i have to give you a point is that lot of the software we use on daily basis are actually not engineered, they are pieces or craps merely half working with an overhead so big you can see it from space designed by lazy people that we somehow convinced they can be called "engineers" without having any clue for mathematics, physics and any other from of serious science. So to do that kind of crap, yeah maybe you are right, AI can produce just as crappy job as "human" do. But you are comparing state of the art AI that cost billion dollars and use ginormous amount of energy with the worst of the human here. The state of the art human software engineer can do much much better, only cost you few 100$ a day and only consume about 2000kCal /day. That actually gives us an interesting thought, maybe AI is a good thing to finally put some pressure on crappy software dev to raise their standards.
@@Quast No. In general chatgpt creates good programs. May be sometimes produces some instructions that shows it does not really "understands" the problem. And it does not look "creative". It's something you could do by googling from examples. It can save you some time but you must check the code to see if it did what you needed. In one case we told chatgpt to translate a program from php to javascript. After one hour of trying we was unable to make it work. Chatgpt used external libraries that we could not find or unavailable versions, or called functions that does not exists and it was unable to implement by itself. I've seen the same effect when you ask it to make a cooking recipe and then you ask it to include an ingredient that does not exist at all: it invents the ingredient like it existed. You can't trust the results. You must check and fix it.
Actually a problem of finding optimal routing by itself counts as an AI problem, so technically speaking, all autorouters are "AI" ;) They just use different AI approaches.
Obviously AI without I. I use autorouting only if there is e.g. a dumb connector having to be connected to simple 3.3V/5V TTL or DC with the autofinish function.
How do they route an Intel Core i9 with billions transistors in the CMOS ? sure its not manual, right ? (if it is, no wonder that thing cost billions to make)
I'd love to see someone try TopoR on this board. It avoids a lot of stupid. To begin with any space unpopulated by components or anything else nailed in is represented contiguously so it knows how many traces fit in that bit of empty space, so it runs connections in groups and doesn't have to rip up random wires to make another wire fit.
Two silly things here : 1 auto-routing never work, 2 using AI/NN for it. If it's called "deep"XX and claim to be AI i guess that mean it use some kind of neural network. That's a silly idea by itself. But here is the thing, you use auto-routing every-time you use an FPGA, place an route is one of the most critical part of FPGA design software suite. And yes they always goes together hand in hand, just like Dave said placement is a big part of routing. And it works very well actually, so it's a problem that is very well studied. It is actually a constrained graph optimisation problem. It is NP-complet that mean you can not have a guaranteed optimal algorithme to solve it (if you can prove the opposite you can win $1M). AI or ML or ANN or whatever other thing that are just algorithme like any others won't change that point. So how it's done in FPGA ? It's actually pretty close to what Dave say here, it's a combination or grouping (local, vs global routing lanes) and then you have vertical lanes and horizontal lane. At first based on your design (can be a schematics just like here) the software identify critical path (just like Dave says, prioritizing important signals). And then they use an heuristic called simulated annealing. What it is is you start with a random solution and try to refine it using simple gradient descends, but sometimes you get a new random solution and compair it to your curent solution, just to be sure you don't fall in a local minimum. On FPGA interconnect occupies 5-10x the space of the actual functional components. But remember it is fully programmable. Here you can do that then eliminate everything unused and all the programmable switches and the associated memory. So the figure would probably more be like 2-3x and note i talk about space not area. What that mean is you need to give enough routing space around or under component, e.g. : more separated components or more layers. As if human can do better, i think story of compiler vs ASM programming answered the question : only a very good human and only on relatively simple cases. Thing is on modern electronics all is structured so that most of the complexity is dealt with inside the chips so the PCB routing is generally not that complexe it result that doing it by hand still makes sens. Just to conclude, totally agree on most of what Dave says, the good routing software follow exactly his guidelines. But don't throw the baby with the bath water please, what you see here is bad place and route software made by software engineers that haven't done their homework, not the state of the art of the discipline.
I'm calling BS on this actually being AI-based. If it is, this is the worst AI result I've seen in a long time. I think PCB layout is one of the easier problems for a REAL, modern AI to solve and will probably happen within the next 2 years.
The thing that kills me is that it took over 2 hours to fail to route this extremely simple board. Auto router is supposed to be significantly faster than me. Otherwise whats the point
Have you ever done real "rip up and reroute"? ya know, rubylith, black crape, register pin, scaled transparancies? Did tons of that for U.S. aerospace companies... those were the days... before auto route... before PCB software... for that matter, even before computers.
To produce better results model would consume way more computing resources than would cost to hire someone to route board manually, but maybe someday, in a galaxy far away..
I am *absolutely fricking terrible* at routing PCBs and I totally need someone to really hand-hold me through the process and teach me and yet.......even I can do better than that DeepPCB.
for an AI to get sufficient training it would need data from the latest and greatest PCB designs in industry, this is more than just the gerbers, you'd need the EEs and layout engineers to label the data, this is not something you can just pay someone off the street $20/hr to tag. so I see two problems: 1. companies won't willfully give their IP 2. no one available to tag data and lastly, there are an infinite amount of constraints (mech outline, mounting, thermals, SI, PI, EMC, cost) that go into each PCB which make it both a hard science and an art form. routing a modern PCB is orders of magnitude harder than the self driving problem.
AI really stands for *"artificial imagination",* it can cook up something for you to think about but *it is in no way "intelligent"* therefore it is up to you to take that *inspiration* that it provides and evaluate if it has any value before implementing a working version of it.
I say this a lot but Artificial Intelligence is fundamentally a misnomer: it's a field of computer science which collects algorithms known or expected to be of use to implement autonomous agents. Computer science is in turn not a science, it's a field of engineering, and it's not about computers, but about processing information, data, so a double misnomer. The field of engineering that does computers is computer engineering, a branch of electrical engineering. In turn autonomous agents are systems which exhibit useful, robust behaviours in the face of incomplete or partially incorrect data, which... well i guess you can see that but also it's far from intuitive naming. You shouldn't be surprised that in a young field family like that, everything is named wrong and weird. You can spend entirely too much breath getting hung up on that, or just disregard and focus on the problem at hand. Apropos problem at hand, formulating a set of pertinent inputs and outputs and incentives for a machine learning system makes all the difference. Trial and error autorouting is known as a horrible approach, so enhancing it with some sort of machine learning approach without showing how you want machine learning to improve on its particular deficiencies is going to be absolutely futile. If you started with a better model, like topological routing, you'd have a much harder problem to formulate regarding trying to improve it, but you'd also have a more solid foundation, where the algorithm is actually aware of space.
@@SianaGearz Did you get ChatGPT to write that gibberish for you? It isn't even a young field. The earliest successful AI program was written in 1951 by Christopher Strachey, later director of the Programming Research Group at the University of Oxford. Strachey's checkers (draughts) program ran on the Ferranti Mark I computer at the University of Manchester, England.
It's clear that AI models of any sort don't actually have any sort of understanding of a problem domain, they just make structures vaguely similar to things they've "seen" before. Useful tool for certain tasks like machine vision and marketing wanktext generation, but hardly an "intelligence".
@@SianaGearz >Understanding of problem domain has been achieved and demonstrated in many fields. By ML models? I see no evidence of this. CV models can be broken with simple structured noise, text models can do adequate summarization and transformation but generate grammatically passable nonsense text (or minimally transformed training data) when given abstract prompts, art generators produce basic anatomical flaws and nonsensical architecture, ML applied to code vulnerability analysis can detect pattern-based flaws but have no concept of even the simplest architectural flaws, etc. All of this indicates the models have no actual understanding of the domain they're operating in, they're just matching or generating data that looks similar to what they've seen before.
Hi Dave i think its very narrow minded and small of Altium to want your money instead of giving you a license after all you have advertised there software on many occasions with giving it praise in many of the video's, it just shows Altium is not interested in individuals owning there software they just want the big corps or small business, as well they are not interested in people learning there software or Unistudents getting in the industry. To me this makes me want to further my self from Altium. I hope someone at Altium is watching especially the management morons on 100k
Damnit, the ONLY use for AI I have is not to make money like all of my coworkers seemingly on the side, but so that after 50 years of promises that computers can automate PCB layout, I can finally have an "automatically" laid out PCB board that performs well with EMI, SI, physics, current distribution, interference, cross-talk, and noise!!!!!!!!!!!!!!!!!!!!!!!!!!
tl;dr garbage in garbage out. I'm pretty sure the models DeepAI use are over hyped and poorly curated. Most of the chatgpt style systems incorporate massive datasets to learn and would be able to generate the optimal design based on the learning dataset used. Routing is no different at the higher level to forming coherent sentences within bounds of the required semantics - this one's a poor example of what state of the art AI is capable of.
"tl;dr garbage in garbage out" Bullshit, dave was a professional PCB designer for quite some time. He already optimized the placement of the components on the board for easier routing. This is just "Proper PCB in, Garbage out"
@@jort93z 🤷♂️ we don't know what dataset they trained the system on. It needs to learn the rules that people learn by reading through design principles (constraints) and best practices (examples) - overfitting is big problem, which is why complex systems like chatgpt are trained on massive datasets with additional fine tuning of constraints (weights) based on human guided heuristics.
What I really don‘t understand is why these autorouters seemingly don‘t use the schematic data to help them. You can infer quite a bit of decent placement and routing just from the schematic (if it is decent at least).
Why can't you set up AI with all the rules and standards and then tell it the circuits you want and it's purpose and have it create basic PCB's? Then work on more complicated boards then wait for it to fail and add the new rule or configure until it gets it right. Then make it more difficult till it fails add new rules and keep going until the AI understands any EE problem. Eventually creating its own projects and rules component uses you would never think of. Creating new and amazing circuits. humans would never think of doing and uses for components people would never think of. If not now I can see it happening soon.
I think we're falling into the trap of thinking AI is amazing because it can talk the talk, but I very much doubt it can walk the walk for a lot of things any time soon.. or ever.
It is clear that for now we, human designers of electronic boards, won't be replaced (replaceable) for many years coming. As it seems AI gets better and better for Software Engineering, that doesn't mean AI can replace us in Hardware Engineering. Nothing weighs up to insight and experience!
I studied AI in the 90's and at that time people started saying AI would die because it doesn't reflect how our brain works. Today, it's all AI logos and I say that all lie. It's just a computer algorithm. I prefer to enter what they said 'AI' to signal processing or signal and system. The last from me whether an AI is intelligent or not depends on the intelligence of the algorithm maker.
Tried autorouting in all of the EDA's over the years, only ever worked for mass digital logic after hand routing the important stuff. Saying that I think it could be done but will need serious dedication, some serious modern AI folks to lock heads with PCB layout guys and eventually it will happen. Problem is the AI folks have bigger interests elsewhere........that's how I see it anyways.
Really interesting video - thanks Dave! I've built a few solvers for various combinatorial/mixed optimisation problems like this (notably register placement for hardware synthesis and node choice for network routing). In these applications, I found that the best way to get to a good solution is to write down all the heuristics that a human would use to make the choice and then try and embed them in the solver. This has two benefits: it makes the development easier to debug and it often reveals new rules that you might not have thought of (often as addendums to existing rules). The problem with starting from a computer science theoretical point of view is that it is often hard to embed heuristic rules afterwards. It is often much easier to accept a sub-optimal (in some-sense) solution from a heuristic based system than a result from an algorithm that can take hours to converge.
This is an argument I’ve been putting for against AI, especially since ChatGPT came in and is used by some for software engineering. I say that I don’t trust AI, because it doesn’t have contextual knowledge and multi domain knowledge, and it can’t unless you specifically add it. Us humans see a Nixie tube and go like: “high voltage high current wider trace”. These are the same net so try to make it “human readable by touring it similarly looking”. And component placement is both functionally important (and an AI doesn’t know how humans interact with an abstract thing like a clock) so it probably will choose a solution to reduce trace lengths over functional usability, which comes first for us humans. So AI it’s fun but it’s now even a useful tool now. I tested it in code generation and it’s flakey at best.
14:20 People tend to micromanage and supervise things. When it comes to computers, I’ve learned to just let it work and do something else. It’s not going to goof off or take a coffee break when my back is turned.😂
This might be a dumb thing to ask , but how does it know where to rout if it doesnt know the schematics or how it should work? thats what i find strange about autorouting ai's ... if you gonna rout something then you must know where to hook it up???
I'm torn between thinking we look for a solution that appeals to aesthetics, which perhaps shouldn't influence the process, and appreciating the improvements certain aesthetics encourage such as short routes, reduced vias. etc. I wonder how many of these are simply that the router doesn't weight those features usefully and 'prefer' them over individual short-look-ahead solutions.
Dave, you are like my University Professor grading my calculus work! Seems like the AI needs experience and guidance. Instead of working with in rules and constraints, it keeps writing something down until something that passes for correct, gets excepted by the end user. (or at least that what it appears to be doing.