[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: gEDA/gaf capabilities
>>> I tend to list the weaknesses of geda/pcb from my perspective.
>>>
>>> 1) Lack of support for hierarchical buses.
>>> 2) pcb lacks buried, blind and micro vias.
>>> 3) no back annotation between pcb and gschem.
>>
>> #3 should read "limited back annotation between pcb and gschem". If you
>> renumber reference designators in pcb via the Renumber() action, the
>> capability to back annotate that to schematics exists today. But that
>> is it. Manual renumbers, new instances, value changes (0.1 uF -> 0.01
>> uF), pin swap, gate swaps, etc are not supported for back annotation.
> Where is a description of how this backannotation works? Post layout
> renumbering is my biggest concern for backannotation. What is the
> mechanism for backannotation from PCB? If a third party tool provided a
> text based reference designator cross reference file, would it be
> possible to use the same mechanism as is used for the backannotation
> from PCB?
I'd have to search for where it is fully documented, if anywhere :(, but
here's the short end of it.
In pcb,
- save your layout (always good advice)
- use the Renumber() action. Currently it looks like it is not bound to
a menu choice although perhaps it should be. For now, use ":" to bring
up the command entry box/window and enter "Renumber()" (without the
double quotes) and hit enter. You'll be asked for a filename to record
the changes in. Give a file name.
- Use the script pcb_backannotate which comes with gEDA/gaf to propagate
those changes back into the schematics. "pcb_backannotate --help" gives
more info.
> I was looking at the .sch files and it appeared that every reference
> designator was prefixed by refdes= so it seems like a very scriptable
> function if a simple cross reference file is available, even for a
> hardware guy. I was thinking of writing something to perform this task
> if necessary. Is there a gotcha I'm missing here?
That is exactly how both pcb_backannotate and pads_backannotate work.
In pads, the way forward/backward annotation work is a netlist of sorts
is produced from both the layout and the schematic. Then a comparison
tool is run that produces an engineering change order (ECO) file. You
specify if you wanted to do forward (schematic->layout) or backward
(layout->schematic) annotation. The ASCII .eco file, which btw has a
documented format, is then loaded by either the schematic editor or
layout editor to apply the changes.
Quite a few years ago, I wrote pads_backannotate which takes a pads
generated .eco file and applies it to gschem schematics. That lets you
use gschem for schematics and pads for layout with forward and backward
annotation working. I didn't implement all features of the backward
annotation. Renumbers work, but for some features, you'll just get a
message saying "you need to do _x_ to your schematics by hand". This is
fully documented somewhere on the geda wiki.
The renumbering request came up from time to time for pcb so I added the
Renumber() action. The file it produces is somewhat similar in spirit
to a pads .eco file in that it contains information about changes which
need to be applied. Ultimately I think having a netlist compare tool
capable of producing a more full featured changes file would be really
useful. Also I think it would be good to teach libgeda how to read one
of these change files directly and let pcb_backannotate fade away or
perhaps use libgeda for accessing the schematic database.
So to answer your question about using the same backannotation mechanism
as pcb, yes, absolutely. It should be quite easy to modify the
pcb_backannotate or pads_backannotate script to parse any other format
of refdes crossreference file.
Hope this helps.
-Dan
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user