ID: | 4381 |
From: | ge...@igor2.repo.hu |
Date: | Sun, 20 Sep 2020 10:51:37 +0200 (CEST) |
Subject: | Re: [pcb-rnd] Back annotation |
in-reply-to: | 4380 from Erich Heinzle <a1...@gmail.com> |
replies: | 4382 from Erich Heinzle <a1...@gmail.com> |
On Sun, 20 Sep 2020, Erich Heinzle wrote: >I find myself thinking about reverse engineering/implementing an existing >legacy design again. >It occurs to me the slightly dumb autorouter coded by Igor2 to test the new >auto route plugin API would work really well for auto routing a schematic >with unconnected symbols and a netlist from back annotation. > >Thoughts? Autorouting a schematics is a different task from autorouting a board, imho, so I would be surprised if the same method would work for both. These are the main differences: 1. On pcb, the hard constraint is that you can't have nets crossing; that's the thing that throws the whole problem in the NP domain. On schematics, crossing is totally okay 2. On pcb you have a lot of constraints on part placement, and then how you do the wiring is almost arbitrary^1. The actual wiring you end up with does not mean anything to the human eye, the only thing you are interested in is getting the connections right. On schematics it's the opposite: the whole thing is about making the reader understand what's going on. 3. Layers and vias. On schematics you don't have layers of wiring, and no vias. What my simplistic horver router is doing is a good example: it goes and arranges things assuming 2 (or even number of) layers and how vias would be then placed. 4. Logical/implied connections. A good schematics, because it tries to be readable, will use a lot of those. Starting from the simplest vcc/gnd symbols through named nets hooking up, through pin attributes in components making implicit connections to buses. Figuring when the router wants to draw a single net as a line across the whole drawing and when it should use an implicit connection looks like a very different problem from what we have on pcb routing. It's an interesting topic, and I've been pondering this since the early back annotation days^2. Unfortunately I don't have answers. I wonder if anyone ever did a prototype on this in any EDA... Footnotes: ^1: apart from some rather local things like differential pairs, "keep this short", etc; what I meant is that your autorouter will rarely go and rearrange your parts to get better wiring, e.g. moving connectors or LEDs you carefaully matched up with your enclosure. ^2: which was back in 2016 IIRC. The most usable idea I had was something like a "rat line" on schematics after a back annotation, in case both ends of a new connection can be found on the same page. Unfortunately one of gEDA's main design flaw kept me from doing it: gschem doesn't know anything about nets really! As in, it can't really tell in which net an object is or search objects that make up a net, etc. It just lacks the concept of net, which I still find funny, especially that another very similar concept, slotting, is hardwired down to the GUI level. Best regards, Igor2
Reply subtree:
4381 Re: [pcb-rnd] Back annotation from ge...@igor2.repo.hu
4382 Re: [pcb-rnd] Back annotation from Erich Heinzle <a1...@gmail.com>
4401 Re: [pcb-rnd] Back annotation from Hannu Vuolasaho <vu...@msn.com>