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.
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.
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.
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. 🙃
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.
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.
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...
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.
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.
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.
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.
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.
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.
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.
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.
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.
My experience in KiCAD: - placing components correctly is quite difficult and very time consuming - routing a correctly placed PCB: super easy, most enjoyable part, especially if you have Asperger's.
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.
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!
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.
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.
I still route manually, but Eagle/Fusion 360 now has a "route multiple airwires" feature that has avoidance built in. That feature has sped up my layouts... I feel that autorouters should go that direction more... smaller, smarter bits of code for specific issues (routing busses, pouring ground planes, smart component movement where traces come along, layout modules etc)... I think designers are more likely to use smaller smarter features rather than trust a whole layout to the tool and have 20 hours of cleanup on aisle 3. You also hit a good point in that for small boards, probably up to 4 layer, an experienced human is faster than the autorouter. The autorouter starts to "win" at motherboard level... So there should be smaller-domain problem solving tools for 2 and 4 layer boards.
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.
Most obvious problem is the lack of a default rule against acid traps. Second problem is the lack of treating each net as a unit that can share copper.
It is funny that yesterday I was watching this series and now you have released a video about it. Did you ever build the clock? The series ends at the pcb design.
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).
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.
Hey Dave, great Video! It ended as expected ;-). In the beginning of the video you mentioned that you are no longer use Altium. After paying the annual fee including the "slight" price increase I am looking for alternatives for our company. What are you using right now? KiCAD?
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.
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.
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..
Setting up the constraints (well, you'd do it anyway, yet it won't be that critical should you mess up a little), tracking down the autorouter's mistakes, manual re-routing... No, no, no: long and boring. Just go manual, becomes way faster (every time btw, used to do anything from 1 to 6 layers, and it actually is), and also you can greatly optimize by picking some random tricks up from the top of your head, like variable-width tracks, partial track-to-pour replacements etc.
The problem witht this sort of software is: the real routing difficulty is not how to go from A to B with one signal, but how to combine e.g. SI, manufacturability and more often than not cost with multiple signals. It is (like most engineering topics) consisting of many, many tradeoffs that you have to make in order to get the job for one specific board done. Routing AI and humans are not that much different when it comes to how less they can achieve if they do not understand the physics and working principles behind it, but rather copy from an existing design or apply best practices without knowing their intended use. Your board is unique and you have to know what layout and design challenges you have to overcome to make a good working PCB. You are the one that (should) know the signal characteristics and where, when and how it is necessary to preserve them. You don't learn layout by looking at what others did, you learn by understanding what others did.
I have a feeling this was spun up when the modern AI craze first started getting major traction (I remember IBM having free public education workshops around the time), then abandoned after it worked 'well enough' for super simple circuits, and hasn't been touched since. The 24 hour claim is also a joke, processing ends after roughly the 24 hour mark no matter what progress it makes, run it for 48 hours and you'd get a different solution, though it seems to get stuck long before the 24 hour mark. It also seems to be a bit odd, there's a genetic component but isn't really working properly, like that one extremely jaggy trace existing for so long; sure it 'works' but it's far from optimal and having a constraint of shortest possible pathing would've killed this very early on, which also leads back into the argument that this program stopped development after being 'good enough' when it worked for simple boards. I wouldn't be surprised if there's better AI/ML solutions out there that have a better approach, say the ChatGPT of autorouting. Public-facing, and free use, AI/ML tools have come _such_ a long way since ~2019, DeepPCB is clearly dead in the water and hasn't been touched since a previous era, there has to be a more modern tool that you can try out for the sake of comparison. Especially since the mentality of training models has changed, better training would improve any AI, and the fact that you can bulk feed models existing examples is extremely powerful, a modern tool would pick up on the basics at least, if not also infer priorities, groupings, etc.. Though to be fair, these kinds of things should also be well-defined within the net anyways IMO, that information could then be pulled and placed into the various variables of the AI/ML program automatically with no inference work being done. Similarly, since these programs also quite often have component information itself (i.e. pulling manufacturer parts from a database, a common footprint tool), in the future an AI/ML autorouter should hypothetically be able to infer what a circuit is and what a circuit is doing, which would improve results further, just by referencing parts to datasheets and possibly even reference circuit designs; more overall work, but potentially better work, imagine the model being able to distinguish HV and LV, where power and signals are (for interference purposes), where to insert planes and possibly even shielding or isolation, and possibly even provide component suggestions for a more optimal design, say if chip xxxxxB is a better option than chip xxxxxA with an explanation as to why, say for efficiency, pinout order (I know a lot of microcontrollers with multiple subvariants will often swap around pins or outright mirror the pinout), circuit layout compatibility, etc. Of course AI/ML should really only be used by the inexperienced or as a starting point, no matter what the AI is for, the only time it should be a workhorse is if you're pushing out repetitive mundane tasks that're pretty low-level where human work is better relegated elsewhere, or when tasks start going past the point of what a person (or team) can reasonably accomplish under constraints. AI/ML has potential if it's made correctly and if it's used correctly, if we had a model that could infer circuits based on components then that'd be a massive tool for people who want to get into the hobby who might not have the time or resources to learn more complex things, not everyone is a seasoned board engineer after all; think of it like how a lot of low-level programming tools have gone to the child-friendly modular puzzle piece style, it'd be like that but for complex board design. I also have a feeling that this could be decent for reverse-engineering and adapting boards to specific footprints; imagine if a board footprint has a significant change between revA and revB where routing has a significant impact from this change, imagine the AI tool being able to adapt inference from revA and quickly route revB. I think circuit inference, backed by referencing datasheets from identified components, will be the tipping point where AI/ML autorouting becomes a very viable and nearly foolproof option, because it'll inherently know what the various variables are, and who knows maybe it can even run simulations (power, timings, etc.), debug itself, and draw up a better routing, maybe it'll even catch human error such as poorly-specced parts or missing parts during the process. I also wonder how DeepPCB would do if your board was laid out differently. Take for example the fact that a lot of the traces have clear segmentation of left and right, yet your layout has the chips segmented between top and bottom. I just wonder if the chips also shared the same left-right segmentation, if the AI model would've had a better time tracing the nets, I genuinely think this 90° turn may be throwing the model off due to lack of inference (i.e. traces A-E on pins 1-5 and traces F-J on pins 6-10 need to be bundled as paralleled sets) as it's only working from the net of connections. I think it's pretty well inferred that the DeepPCB model is fairly primitive in terms of modern AI/ML solutions, I wouldn't be surprised if one little thing like this entirely breaks how its meant to work, especially when multiple layers are involved. I'd be curious to see if this change, keeping the bulk of bundled traces to the same cardinal direction in terms of where they exit the component with minimal turns, improves the AI's output. Of course, circling back to the previous of newer models having such a higher potential of being orders of magnitude better than DeepPCB's model, this shouldn't be an issue for said newer tools assuming they have been developed. A good way to think about it is pathfinding AI in a game, where a broken path will result in a game's NPC just walking in circles endlessly, which used to be a more apparent issue in older games (especially '90s-'00s PC titles) whereas newer games having newer models doesn't make this issue as apparent if even allowable; which DeepPCB essentially did this when it 'froze,' it essentially just circled on itself endlessly until the 24 hours were up, whereas a newer model outright should not experience this due to basic programming and other factors.
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 think conceptually this could be a better approach than algorithmic. It could, theoretically, add a pattern matching aspect hat adds some kind of 'intuitive feeling for beauty and symetry"
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.
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
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.
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.
It's been awhile since I looked at any new auto routers though I think were condemning it before it completed. The auto router I used, back in the day, "Terminator" by Draftsman-EE (aka DC/CAD) was pretty flippin' good but its routes would look a bit crazy as it was working through things but once it completes, it would do numerous cleanup passes to optimize routes and then spreading them. I'm not saying it never left odd routing choices behind...it did. But I'd take doing a clean up on what it did rather than router, from scratch, by hand. DC/CAD's router (Terminator), did have the ability to define the sizing and spacing, by net and also create various strategies for what to do and when and how to progress through the process and one could start out with a very restrictive set a parameters (e.g. how far it could deviate off of a straight line) and if that level of restriction was too much for some routes, you could hand route them or give it more freedom on a later attempt. Now I never did the amount of board design that you've done and the most complex board i did was just 6 layers (with the middle two being VCC and Ground for easy power distribution and it was all through-hole). However, my first attempt at routing a board was always to run the autorouter and then check to see if I could improve it, remove vias or better route some strange ones. 95+% of the work it did was good and I never had a problem with a board it routed. Mind you, this was a DOS program from the late '80s/early '90s. That said, it was a pretty cool program though it did have a bit of a learning curve and it is stuck, graphically, in its era. I'd think if it ran on a modern computer, it would be scary fast.
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!!!!!!!!!!!!!!!!!!!!!!!!!!
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.😂
@EEVBlog Dave, a question though. Those funky 45-degree traces - is there something wrong with them (electrically)? I understand they look unpleasing (irritates me too), but from purely electrical standpoint - are they still OK? I guess they might be just fine for DC... High frequency, pulses, etc. - no idea? What's your opinion? Are they a no-no just because of aesthetics, or is there something else? Thanks!
IMHO: Sharp pointy things will generally radiate EMF and also copper can peel away at the sharp point easier. Problems with HV as well. From etching standpoint it is a pain to define a fine line in Gerbers, and it is also an etching problem. Which just results in a RULE OF THUMB from Dave to NOT to use them...
Sharp angles create what is called an "acid trap" in the etchant, potentially leading to over-etching. Not so much a problem these days with better controlled processes. It basically just looks like crap and shows you don't know what you are doing and take no pride in your work.
@@EEVblog Should such an auto router be optimizing for aesthetics? If the end result meets the design requirements it's a functional board. The AI has no pride to take.
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.
Dave I have watched and loved you vids and rants for many years now. Is there some way you could do a auto routing program for those of us that cant do the job well?
I have done some pretty decent PCBs with EAGLEs auto-router. The workflow was mostly: let it route, see where the worst parts are, then move/rotate the component, ripup and try again. Could a human have done a better job? Absolutely, but for getting some self-made PCB up and running it was sufficient.
Wouldnt the first pass of an AI router by definition be exactly the same as a traditional auto router? The difference would be after you provide feedback to the AI about the things it needs to do differently, so that it can "learn"
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 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.
If you understand how your autorouter works, you can pre-route (partial route) traces which might cause trouble, then let the autorouter finish. Still, human routing works best!
There is so much that a truly AI autorouter could easily have inferred from just a handful of net names and from component layout. I don't remember exactly how Dave named the nets for this, but I know he tends to follow industry conventions, so the autorouter should have immediately picked up on the HT rail as a routing priority, figured out that the Nixies are high voltage components and routed them to their driver chips, then proceeded from there. Instead, it looks like it just threw some spaghetti at the wall (presumably from its pockets) to see if it stuck. I wouldn't even trust a simple switching power supply laid out by this thing.
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.
As Walter Gibbs once said: "After all, computers are just machines. They can't think." Nevertheless some of the routing solutions were pretty funny. Ugly and useless, but funny.
Intel and AMD (and I'm sure IBM, Google, etc as well) are already using AI to do the high level routing on their new chips. They design each component of the CPU/GPU/TPU/etc, but now they no longer decide where they go or how they're connected to each other. And they have seen significant real world performance increases. And practically everyone thinks that for the next gen it'll be doing a layer below that. And within a few years it could be doing it on nearly every level, or literally every level. There's a real worry from some people that we won't really understand how the chips are even working in a few years and we won't be able to do "proper" validation and will likely have to rely on other networks for validation. But as Jim Keller pointed out we've already backed ourselves into a corner where no one really understands the entire way modern chips work - we clearly can't even validate 15 year old CPUs given that every manufacturer is having major exploits found in their designs every year or two. We've already become extremely reliant on "classical" algorithms that abstract the shit out of it. If/when we move to entirely AI designed chips all we'll really be doing is swapping one abstraction software stack for another one.
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.
@@frankwales Exactly (well the other way around, but yes). I think placement might be done as a neural network learning thingymabob.
Very fun watching the easyeda router do this LOL
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.
Interactive autorouting is the most useful feature these days. It takes away a ton of the tedious fine detail work.
I did it a lot in the 90's.
With practice, it was not so difficult. Nowaday, I would suffer and thanks Kicad, easier to use than an pencil eraser :)
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.
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.
Sounds dodgy.
Is that related to Windows Me? I don't trust it.
I use that same sort of layout engine. Works pretty well once it gets going. It's getting it started that's the problem!
@@EEVblog Sounds underpaid.
Gary Numan, ahead of the times as always.
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.
Funny because it's true.
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. 🙃
Would you like to invest in my AI blockchain solar roadway bitcoin generator?
precisely! See Adam Conover's recent breakdown!
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!
Yes, but even ignoring that stuff it still does a crap job!
@@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.
@@Motorman2112 yeah, what if we combine schematic/initial layout, SPICE, DRC and datasheet analysis?
@@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.
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.
This is the part I always wanted to see in a Terminator movie. Robots making robots :)
In this case they are devolving.
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)
that's "I, Robot". but then frankenstein, dracula, my ass. all the same.
Real lesson here is don't use Altium or other subscription based software.
If nobody uses them, they will go bankrupt though!
Altium has so many cool things, things you just can't do on other software, do you have any recommendation for options?
@@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...
@@RapiBurrito It's basically high priced Altium Designer vs free KiCAD these days. Not much middle ground market left.
@@EEVblog did you make a comparaison of Kicad vs commercial softwares ?
I love the last versions 6 **. . So many improvements compared to v5 !
No matter if it's modern "AI" based solutions or 1980s Autotrax, the conclusion is the same: NEVER trust the autorouter!
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 I agreed with you when I thought you were being sarcastic but then I saw you were being serious and had to roll my eyes.
@@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.
@@mrcomment5544 Do you have any actual argument?
Well now I'm curious to see a video on proper auto routing constraints.
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.
AI is just the new marketing buzzword - anything without "AI" functionality will not sell.
Just based on the output, I'd guess that the engine is routing per CONNECTION not per NET which seems kind of insane...
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.
@@mrcomment5544 My guess is this is project of someone who designed it in chatGPT 😄
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.
Only problem is all of the options suck!
@@EEVblog 🤣. By the way since I'm here let me send you my compliments for your fantastic channel! Always entertaining and educative!
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.
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.
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.
But on a typical ASIC you have much more copper layers, 10layers is not uncommon and you can go up to 15+ That makes the job much easyer
Dave, you is always fun to watch, you know how to entertain nerds
For this PCB it is very, very slow. Built in autorouter in any pcb software can produce the same bad result ~50 times faster.
PCB Layout is 80% placement, 20% routing.
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.
I use it like sort of like your car's cruise control - it takes the heavy repetitive lifting but I manually do the crucial parts
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.
I used do auto route initial and manually correct errors and modify it accordingly.
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!
Yep, worse, and only an 82% completion rate with obvious routing paths left. It's hopeless.
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.
This is exactly how I, as a professional software developer, felt about you trying to use AI to do software development ☺️
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.
I sometimes use TopoR, it breeds very well if you set all the rules, without AI.
I still route my PCB traces by hand, if you route the most important traces first it's not that bad.
My experience in KiCAD:
- placing components correctly is quite difficult and very time consuming
- routing a correctly placed PCB: super easy, most enjoyable part, especially if you have Asperger's.
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.
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 remeber that episode well. 👍
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.
I remember routing in the 90's, even double side, with just a paper, a pen and an eraser :)
Practice help, I'd had difficulties today.
Many, many years ago my favourite T shirt logo was “never trust the autorouter”. Things haven’t changed.
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.
Well this thing is pretty stoopid if it doesn't even realize it would be advisable to start with the shortest routes.
I still route manually, but Eagle/Fusion 360 now has a "route multiple airwires" feature that has avoidance built in. That feature has sped up my layouts... I feel that autorouters should go that direction more... smaller, smarter bits of code for specific issues (routing busses, pouring ground planes, smart component movement where traces come along, layout modules etc)... I think designers are more likely to use smaller smarter features rather than trust a whole layout to the tool and have 20 hours of cleanup on aisle 3.
You also hit a good point in that for small boards, probably up to 4 layer, an experienced human is faster than the autorouter. The autorouter starts to "win" at motherboard level... So there should be smaller-domain problem solving tools for 2 and 4 layer boards.
was wondering about things. thanks!
I have been designing PCB'S up to 6 layer for 30 years with Orcad and more recently with Altium and never used auto router especially with Altium.
Up to 6 layers for 30 years? Damn I am on my 3rd year and I am already on 14 layers.
Stupid question.. did you refresh your browser? Perhaps the webapp stopped communicating but the server did produce more than 48 passes?
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.
I always route everything by hand, tried autoroute function of eagle couple of times but never gave good results.
I'd love to see what happens if you ran it again. Would it then 'learn' from your previous ~49 failed solutions, and stumble across some better ones?
Most obvious problem is the lack of a default rule against acid traps. Second problem is the lack of treating each net as a unit that can share copper.
It is funny that yesterday I was watching this series and now you have released a video about it. Did you ever build the clock? The series ends at the pcb design.
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).
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.
Yeah, don't bother.
I heard it for 50 year now.
Does the .dsn file you send include the schematic and bom information?
I think this is very advanced AI, it's just it's training model was Stevie Wonder.
Hey Dave, great Video! It ended as expected ;-).
In the beginning of the video you mentioned that you are no longer use Altium. After paying the annual fee including the "slight" price increase I am looking for alternatives for our company. What are you using right now? KiCAD?
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.
I'd like to see it try again but see if it can make every trace equal length. I want to see that fluster cluck.
It would be interesting to see some of the training data. What do the programmers tell it was a good pcb?
A GREEN one...
A little learn-to-solder Christmas tree shaped board full of blinking red LEDs
@@nameredacted1242 LOL! I think you mean more green corrosion than solder mask! That was really bad - I've seen auto routers from years ago do better.
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's time to ask for a raise then!
My preferred primary routing software is Common Sense 2023.
What's common sense?
@@nameredacted1242 If you have to ask, you'll never know.
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..
Tell us when to use ground planes and how to use them, what's the benifit?
??? Watch Ferandec videos, he has a channel with SI experts coming in allt he time.
Setting up the constraints (well, you'd do it anyway, yet it won't be that critical should you mess up a little), tracking down the autorouter's mistakes, manual re-routing... No, no, no: long and boring. Just go manual, becomes way faster (every time btw, used to do anything from 1 to 6 layers, and it actually is), and also you can greatly optimize by picking some random tricks up from the top of your head, like variable-width tracks, partial track-to-pour replacements etc.
The problem witht this sort of software is: the real routing difficulty is not how to go from A to B with one signal, but how to combine e.g. SI, manufacturability and more often than not cost with multiple signals. It is (like most engineering topics) consisting of many, many tradeoffs that you have to make in order to get the job for one specific board done. Routing AI and humans are not that much different when it comes to how less they can achieve if they do not understand the physics and working principles behind it, but rather copy from an existing design or apply best practices without knowing their intended use.
Your board is unique and you have to know what layout and design challenges you have to overcome to make a good working PCB. You are the one that (should) know the signal characteristics and where, when and how it is necessary to preserve them. You don't learn layout by looking at what others did, you learn by understanding what others did.
Just keep in mind - the signal virtually lives inbetween your tracks and traces - so it is never about just a single trace.
Common sense seems to be the hardest thing to teach an AI!
What IS common sense?
Here we are... Cheering up for the thing to fail so our jobs are not threatened too soon 😂😂😂
do they route solar roadways too?
Don't forget the AMAZING solar railways! Maybe it was AI that proposed *that* concept...
I have a feeling this was spun up when the modern AI craze first started getting major traction (I remember IBM having free public education workshops around the time), then abandoned after it worked 'well enough' for super simple circuits, and hasn't been touched since. The 24 hour claim is also a joke, processing ends after roughly the 24 hour mark no matter what progress it makes, run it for 48 hours and you'd get a different solution, though it seems to get stuck long before the 24 hour mark. It also seems to be a bit odd, there's a genetic component but isn't really working properly, like that one extremely jaggy trace existing for so long; sure it 'works' but it's far from optimal and having a constraint of shortest possible pathing would've killed this very early on, which also leads back into the argument that this program stopped development after being 'good enough' when it worked for simple boards.
I wouldn't be surprised if there's better AI/ML solutions out there that have a better approach, say the ChatGPT of autorouting. Public-facing, and free use, AI/ML tools have come _such_ a long way since ~2019, DeepPCB is clearly dead in the water and hasn't been touched since a previous era, there has to be a more modern tool that you can try out for the sake of comparison. Especially since the mentality of training models has changed, better training would improve any AI, and the fact that you can bulk feed models existing examples is extremely powerful, a modern tool would pick up on the basics at least, if not also infer priorities, groupings, etc.. Though to be fair, these kinds of things should also be well-defined within the net anyways IMO, that information could then be pulled and placed into the various variables of the AI/ML program automatically with no inference work being done. Similarly, since these programs also quite often have component information itself (i.e. pulling manufacturer parts from a database, a common footprint tool), in the future an AI/ML autorouter should hypothetically be able to infer what a circuit is and what a circuit is doing, which would improve results further, just by referencing parts to datasheets and possibly even reference circuit designs; more overall work, but potentially better work, imagine the model being able to distinguish HV and LV, where power and signals are (for interference purposes), where to insert planes and possibly even shielding or isolation, and possibly even provide component suggestions for a more optimal design, say if chip xxxxxB is a better option than chip xxxxxA with an explanation as to why, say for efficiency, pinout order (I know a lot of microcontrollers with multiple subvariants will often swap around pins or outright mirror the pinout), circuit layout compatibility, etc. Of course AI/ML should really only be used by the inexperienced or as a starting point, no matter what the AI is for, the only time it should be a workhorse is if you're pushing out repetitive mundane tasks that're pretty low-level where human work is better relegated elsewhere, or when tasks start going past the point of what a person (or team) can reasonably accomplish under constraints. AI/ML has potential if it's made correctly and if it's used correctly, if we had a model that could infer circuits based on components then that'd be a massive tool for people who want to get into the hobby who might not have the time or resources to learn more complex things, not everyone is a seasoned board engineer after all; think of it like how a lot of low-level programming tools have gone to the child-friendly modular puzzle piece style, it'd be like that but for complex board design. I also have a feeling that this could be decent for reverse-engineering and adapting boards to specific footprints; imagine if a board footprint has a significant change between revA and revB where routing has a significant impact from this change, imagine the AI tool being able to adapt inference from revA and quickly route revB. I think circuit inference, backed by referencing datasheets from identified components, will be the tipping point where AI/ML autorouting becomes a very viable and nearly foolproof option, because it'll inherently know what the various variables are, and who knows maybe it can even run simulations (power, timings, etc.), debug itself, and draw up a better routing, maybe it'll even catch human error such as poorly-specced parts or missing parts during the process.
I also wonder how DeepPCB would do if your board was laid out differently. Take for example the fact that a lot of the traces have clear segmentation of left and right, yet your layout has the chips segmented between top and bottom. I just wonder if the chips also shared the same left-right segmentation, if the AI model would've had a better time tracing the nets, I genuinely think this 90° turn may be throwing the model off due to lack of inference (i.e. traces A-E on pins 1-5 and traces F-J on pins 6-10 need to be bundled as paralleled sets) as it's only working from the net of connections. I think it's pretty well inferred that the DeepPCB model is fairly primitive in terms of modern AI/ML solutions, I wouldn't be surprised if one little thing like this entirely breaks how its meant to work, especially when multiple layers are involved. I'd be curious to see if this change, keeping the bulk of bundled traces to the same cardinal direction in terms of where they exit the component with minimal turns, improves the AI's output. Of course, circling back to the previous of newer models having such a higher potential of being orders of magnitude better than DeepPCB's model, this shouldn't be an issue for said newer tools assuming they have been developed. A good way to think about it is pathfinding AI in a game, where a broken path will result in a game's NPC just walking in circles endlessly, which used to be a more apparent issue in older games (especially '90s-'00s PC titles) whereas newer games having newer models doesn't make this issue as apparent if even allowable; which DeepPCB essentially did this when it 'froze,' it essentially just circled on itself endlessly until the 24 hours were up, whereas a newer model outright should not experience this due to basic programming and other factors.
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 think conceptually this could be a better approach than algorithmic.
It could, theoretically, add a pattern matching aspect hat adds some kind of 'intuitive feeling for beauty and symetry"
This looks like you hired gov bureaucrats to do your routing. Can't wait for AI government!
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.
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
Yeah, it's slow, and only got to 82%.
$$$
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.
And judging by the time it took it, its also faster by hand.
Well seems like "free is fair price" for this one
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.
The auto router didn't even write its own name using copper tracks! Amatuer.
It's been awhile since I looked at any new auto routers though I think were condemning it before it completed. The auto router I used, back in the day, "Terminator" by Draftsman-EE (aka DC/CAD) was pretty flippin' good but its routes would look a bit crazy as it was working through things but once it completes, it would do numerous cleanup passes to optimize routes and then spreading them. I'm not saying it never left odd routing choices behind...it did. But I'd take doing a clean up on what it did rather than router, from scratch, by hand.
DC/CAD's router (Terminator), did have the ability to define the sizing and spacing, by net and also create various strategies for what to do and when and how to progress through the process and one could start out with a very restrictive set a parameters (e.g. how far it could deviate off of a straight line) and if that level of restriction was too much for some routes, you could hand route them or give it more freedom on a later attempt.
Now I never did the amount of board design that you've done and the most complex board i did was just 6 layers (with the middle two being VCC and Ground for easy power distribution and it was all through-hole). However, my first attempt at routing a board was always to run the autorouter and then check to see if I could improve it, remove vias or better route some strange ones. 95+% of the work it did was good and I never had a problem with a board it routed.
Mind you, this was a DOS program from the late '80s/early '90s. That said, it was a pretty cool program though it did have a bit of a learning curve and it is stuck, graphically, in its era. I'd think if it ran on a modern computer, it would be scary fast.
Imagine paying for 24 hours of cloud AI compute time. They must be absolutely losing their shirt! (or rather their venture capitalist's shirts lol)
When a PCB has a 10+ layers, are those likely to be auto routed or is a human routing boards like that?
Depends. Interactive autorouting is so good these days you often don't need full autorouting.
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!!!!!!!!!!!!!!!!!!!!!!!!!!
How could Autorouting and MaxSAT / MaxCut be better?
Are there similar instances to this where it fails?
Seeing that Altium doesn't intend to give you an educational licence, will you be giving KiCAD a try?
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.😂
@EEVBlog Dave, a question though. Those funky 45-degree traces - is there something wrong with them (electrically)? I understand they look unpleasing (irritates me too), but from purely electrical standpoint - are they still OK? I guess they might be just fine for DC... High frequency, pulses, etc. - no idea? What's your opinion? Are they a no-no just because of aesthetics, or is there something else? Thanks!
Simulate it! Or ask people who frequently show up on Ferandec's channel on topic of SI and board layout...
Somewhere in between "he's being a cry baby" and "it really is problematic"
In the olden days, sharp corners
IMHO:
Sharp pointy things will generally radiate EMF and also copper can peel away at the sharp point easier. Problems with HV as well.
From etching standpoint it is a pain to define a fine line in Gerbers, and it is also an etching problem. Which just results in a RULE OF THUMB from Dave to NOT to use them...
Sharp angles create what is called an "acid trap" in the etchant, potentially leading to over-etching. Not so much a problem these days with better controlled processes. It basically just looks like crap and shows you don't know what you are doing and take no pride in your work.
@@EEVblog Should such an auto router be optimizing for aesthetics? If the end result meets the design requirements it's a functional board. The AI has no pride to take.
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.
Dave I have watched and loved you vids and rants for many years now. Is there some way you could do a auto routing program for those of us that cant do the job well?
What is that pdf reader Dave uses?
I have done some pretty decent PCBs with EAGLEs auto-router. The workflow was mostly: let it route, see where the worst parts are, then move/rotate the component, ripup and try again. Could a human have done a better job? Absolutely, but for getting some self-made PCB up and running it was sufficient.
Wouldnt the first pass of an AI router by definition be exactly the same as a traditional auto router? The difference would be after you provide feedback to the AI about the things it needs to do differently, so that it can "learn"
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 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.
If you understand how your autorouter works, you can pre-route (partial route) traces which might cause trouble, then let the autorouter finish.
Still, human routing works best!
There is so much that a truly AI autorouter could easily have inferred from just a handful of net names and from component layout. I don't remember exactly how Dave named the nets for this, but I know he tends to follow industry conventions, so the autorouter should have immediately picked up on the HT rail as a routing priority, figured out that the Nixies are high voltage components and routed them to their driver chips, then proceeded from there. Instead, it looks like it just threw some spaghetti at the wall (presumably from its pockets) to see if it stuck.
I wouldn't even trust a simple switching power supply laid out by this thing.
This seem way worse than the attempts of auto-routing even free PCB-layout software offer.
Gonna revert back to use autorouter java app.
I gave up on autorouters with Eagle 4 or 5. It's just not worth the time or effort with the stuff I design.
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.
Sometimes AI stands for Amazing Incompetence.
The best part is that this "AI" spent 2 hours of GPU computing time on a result worse than traditional autorouting.
As Walter Gibbs once said: "After all, computers are just machines. They can't think." Nevertheless some of the routing solutions were pretty funny. Ugly and useless, but funny.
Intel and AMD (and I'm sure IBM, Google, etc as well) are already using AI to do the high level routing on their new chips. They design each component of the CPU/GPU/TPU/etc, but now they no longer decide where they go or how they're connected to each other. And they have seen significant real world performance increases.
And practically everyone thinks that for the next gen it'll be doing a layer below that. And within a few years it could be doing it on nearly every level, or literally every level. There's a real worry from some people that we won't really understand how the chips are even working in a few years and we won't be able to do "proper" validation and will likely have to rely on other networks for validation. But as Jim Keller pointed out we've already backed ourselves into a corner where no one really understands the entire way modern chips work - we clearly can't even validate 15 year old CPUs given that every manufacturer is having major exploits found in their designs every year or two. We've already become extremely reliant on "classical" algorithms that abstract the shit out of it. If/when we move to entirely AI designed chips all we'll really be doing is swapping one abstraction software stack for another one.
I'm afraid I can't do that Dave.