[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gEDA: design decisions: PCB<->schematic
Hi all, thanks for the overwhelming amount of thought that trickled
into my inbox in the last 24 hours!
Keith: I've never seen Mentor or the other really professional tools
you use(d), is there a free trial version of it somewhere? It might be
useful to get to know it first.
Putting all your suggestions together, here is what I gather:
- backannotation is necessary
- backannotation doesn't have to be instant (like with Eagle), it can
be "on the push of a button"
- scripting is important (rather easy to implement with guile)
- gschem and the layout tool ideally want to access the same database
- I need to look at libgeda before I do anything
Here is what I suggest for the PCB layout tool. I will probably start
work on the rewrite of Lasagne soon, maybe before Christmas:
- keep a database of groups of different kinds. That is, each item
(pad, trace, etc.) belongs to any number of groups. Groups can be:
elements (components), selections (for convenience, you can group
things together to move them together etc.), nets, and
connections. The latter two differ in the way that one is the
netlist imported from gnetlist or so, the other is the set of nets
as it is currently on the PCB.
- forward annotation is trivial: import a netlist, and create rats if
requested.
- backannotation is done by exporting the list of actual nets on the
PCB back into gschem. One can then use any manual or automatic
algorithm to resolve conflicts.
This should be rather general, I think.
Thinking of an autorouter, I just had another idea: it should be
possible to do pinswaps automatically by use of a generic scripting
approach. Whenever the autorouter comes across a situation in which it
wants to swap pins, it can ask the component library or the schematic
or the PCB (to be decided) whether that pin swap is OK. The answer can
either be "yes", "no", or "if you also do this and that". This way, we
can cover things like FIFOs and latches, in which the exact sequence
of lines is normally not important.
There is one important thing though: for big projects, the pinswap
strategy must be editable by the user. For example, the data lines of
a CPU can normally not be swapped. If, however, they are only
connected to a memory chip, then they can. OK, not a good example
because pinswapping on a RAM chip is not normally a problem...
Just random thoughts, hope they make a bit of sense.
Andras
===========================================================================
Major Andras
e-mail: andras@users.sourceforge.net
www: http://andras.webhop.org/
===========================================================================