3
\$\begingroup\$

I made a lot of home made PCBs, but I have a great problem concerned about the design, I am just an electronic hobbyist at school so I don't have that mind of electrical engineer to place components in the right spot, I always place the components near to each other (in my point of view which can be sometimes wrong) use the auto router and set back waiting the computer to get the best PCB copper trace design.

well this thing works in a - 5 component - 555 blink circuit, when I started making a little bit complicated circuits (60+ components) having the auto router used, it never complete the traces. I know probably if I placed the components in the ideal spot the percentage might reach 100% but I can't do so.

All what I want is a working circuit I don't mind the shape so is there any software like EasyEDA or Eagle softcad or any extension that places such components in the nearest spot to making routing easier and much faster.

As a side note using my tools, the absolute maximum specs to any PCB board I make is single sided PCB and 0.5mm trace width 0.5mm clearance, I know if i lower these numbers i will get better routing results and I get, but I fail in making the PCB itself i.e:toner transferring, etching ...... and I know I could just use jumpers but I want a software solution.

In short I want an extension or software related to PCB design that can place the components automatically in the right spot to make routing more efficient.(i.e something that always happen to me that a copper trace just is drawn all around the whole PCB to just connect to a near node !!)

\$\endgroup\$
6
  • 3
    \$\begingroup\$ I think you're overestimating our component placement. \$\endgroup\$
    – DKNguyen
    Commented Dec 20, 2019 at 20:51
  • 7
    \$\begingroup\$ Just place and route by hand. Auto routing just isn't worth it. Auto placing is worse. \$\endgroup\$
    – JRE
    Commented Dec 20, 2019 at 20:55
  • 2
    \$\begingroup\$ The are quite a few design choices which probably will not (by default) be known by whatever program you use. E.g. to get the best PCB design, I sometimes swap the order of connector pins during the design. Another example: When I make a PCB that will het stacked on top of a SMPS PCB, you want to carrfully place your sensitive circuitery: not straight above inductors or switching nodes. \$\endgroup\$
    – Huisman
    Commented Dec 20, 2019 at 21:19
  • 2
    \$\begingroup\$ I have never seen auto-placement function that is worth a tinker’s cuss. Autorouting is more than bad enough. Use the latter sparingly and the former not at all. \$\endgroup\$ Commented Dec 21, 2019 at 1:43
  • \$\begingroup\$ 1) Keeping electrically related components grouped close together is a good thing in board layout, so don't be afraid of that! 2) Autorouting is hard, so it's generally better to embrace the challenge that is routing boards yourself. (It can be quite fun, too :) \$\endgroup\$ Commented Dec 21, 2019 at 3:36

3 Answers 3

4
\$\begingroup\$

Many people have failed writing such software, because it is a complex topic.

For example, with (T)QFP and DIP parts, often the best routing option is to draw out some traces below the IC, which exponentially increases the search space for a placement algorithm, because it allows pulling out some pins in reverse order as a separate bus.

There are too many degrees of freedom here to search for an optimal solution in a sensible time frame, which is also the problem the autorouter has, which is why it just gives up on complex boards.

\$\endgroup\$
3
\$\begingroup\$

The short answer: AFAIK there is no good automatic placement software... yet. Simply because it is enormously complex problem.

The somewhat longer answer: Your expectations are not aligned with the ultimate goal of such software, so even if one such existed you wouldn't be happy with it. The key here is that "All what I want is a working circuit I don't mind the shape ... making routing easier and much faster" only works for prototyping or small hobby projects. Solving complex problem just to accommodate these limited requirements is economically non-feasible. In this old paper found on the web the most interesting part is a huge list of referenced materials, illustrating how many people working on it and for how long.

Finally, the very long answer is that "place the components automatically in the right spot to make routing more efficient" is not the purpose of automatic placement software. At least, not the only one. There are many criteria to be taken into account, for example:

  • board size limited by target design (e.g. smart watches);
  • board shape and some component locations dictated by form factors (e.g. motherboards);
  • interference considerations (e.g. placing decoupling capacitors or separating analog and digital parts)
  • thermal distribution considerations;
  • high frequency specific requirements (trace matching requires extra space);
  • 3-D restrictions between components within the PCB and between PCB and surrounding parts;
  • manufacturing considerations (e.g. component "shadowing" during wave soldering);

The above is just a tiny slice of what the software has to know to do its job. The design constraints lists in the existing CAD software already surpassed what average hobbyist is willing to tune-up and yet they do not come even close to what is necessary for fully automatic design.

Now, consider that given small enough grid and sufficient board size the number of component placement permutations even for small projects (like SMPS) quickly grows beyond "brute force" capabilities of modern computers. The same goes for the number of the ways the traces can be routed for each of the placements above. Multiply the two and throw multi-layer options and VIAs into mix and you will get almost infinite choices.

There was a hope that some mathematical method can produce an optimal solution. For example somewhat naive approach of minimizing combined ratsnest distance and number of wire intersections. This quickly turned out to be insufficient. Take a look at the bus routing on any motherboard - if you rip-up those neat parallel traces you would see a crazy mess of air wires, as far as the algorithm is concerned. And yet the "wrong" placement works in the end.

Here is where heuristic methods, like genetic algorithm, come into picture. While not promising optimal placement they can narrow down the choices to something good enough for the final solution. In fact, the chip manufacturers already using these for placement and routing of the integrated circuits. If you think about it, it is not much different from placing and routing of the PCB. Unfortunately, those behemoths poured so much money into development of that software that you are unlikely to see it readily available for the hobbyists any time soon.

\$\endgroup\$
1
\$\begingroup\$

TopoR is the best autoplacement software I've used. Of course, it's a wrong approach to want to solve everything with autoplacement. For example, PCB sizes, connector positions, etc. should be adjusted first. If you are using an MCU or FPGA, it is important to do pin swapping when it is important to remember that the pins are configurable. At the same time, the layout of the oscillator sources of the differential lines and the power distribution system should be created with the variations.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ I'm using an old version of Mentor Graphics PADS004, and someone wrote a script that was supposed to place components in the same relative positions as their symbols in the schematic. I haven't used it, but it seems like it would be good starting point if the schematic is optimally drawn, with minimal line crossings and long connections. \$\endgroup\$
    – PStechPaul
    Commented May 26, 2023 at 14:34
  • \$\begingroup\$ yes, topor also interpalates with variations on how the lines can be drawn as short as possible. And it can provide an idea. However, in pcbs that need to be designed with multiple layers, the inference may be low. I think the best way to do this is to classify each of the electronic components by the user and then make a signal analsys like ansys siwave and keysight sipro. and in power integrity software, crosstalk, \$\endgroup\$
    – Electronx
    Commented May 26, 2023 at 16:11
  • \$\begingroup\$ syz parameters, emc tests, etc. can be tested in many subjects and ensure optimum placement. Maybe in the future all these parameters will be combined and everything will be easier. On a pcb, the layout plan can be calculated with maybe millions of different possibilities. I'm sure there are much better alternatives to pcb layouts on the market. However, I don't know how logical it is to overthink. \$\endgroup\$
    – Electronx
    Commented May 26, 2023 at 16:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.