Mailing list archives : pcb-rnd

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>