[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: moving slotting to pcb?



Hi DJ and all, 

> -----Original Message-----
> From: geda-user-bounces@xxxxxxxxxxxxxx 
> [mailto:geda-user-bounces@xxxxxxxxxxxxxx] On Behalf Of DJ Delorie
> Sent: Saturday, June 26, 2010 7:19 PM
> To: geda-user@xxxxxxxxxxxxxx
> Subject: gEDA-user: moving slotting to pcb?
> 
> 
> A random thought occurred to me today - why does gschem do 
> slotting at all?  Why does it care about footprints and 
> packages?  Would it make more sense, from a design flow 
> perspective, to just send the symbolic information to pcb and 
> let pcb assign footprints and pinouts?
> 
> That way, gschem does all the symbolic stuff, and pcb does 
> all the physical stuff.  It would, of course, mean major 
> changes to pcb to handle "elements without footprints yet" 
> and stuff, as well as mapping multiple refdes's to single 
> elements.  Probably make power pin management more complex 
> too, unless we came up with a new way to manage "hidden" pins.
> 
> Anyway, food for thought.
> 
> 

I just thought about it, I think ;-)

Maybe I didn't think hard enough, but here goes what came up.

Gschem should do what I think it's meant for: being a UI for creating
schematics, a schematic being a "concept" of a possible reality, I do also
create pneumatics/hydraulics/piping/PLC ladder diagrams with gschem.

From that "concept" one can go in several directions: that is where gnetlist
with various backends comes into play.

If you want to simulate with gnucap, a layout with pcb, create a
(preliminary) BOM, ... , just choose whatever your backend is tuned for.

Ok, let's choose the pcb flow.

Now if I had all footprint already attached in my schematic I would use
gsch2pcb, which basically invokes gnetlist.

Gsch2pcb would complain about missing footprint attributes.

If I made a "pristine" schematic, that contains no footprint attributes
gsch2pcb would lead me nowhere.

IMHO, pcb should only do layout editing on printed circuit (flexable)
boards, preferably with all sorts of plugins and routers to optimze this
job, the A in gEDA.

However, there seems to be a step overlooked/underdeveloped in this specific
process: gattrib, maybe in the future to be combined with gparts !

If we want to optimize the selection of footprints, gatrib should become the
frontend of some sort of database like backend containing all sorts of parts
the user (company/worldwide ?) previously used, call it gparts if you want.

This database application layer could be a user specified csv file, an URL
to a vendor website (Mouser, Digi-key et al) or a user/company database.

As it is nowadays, the selection of packages/parts is done by the user
looking up/querying all available sources by him/herself in a cumbersome way
(let's call it experience).

Another problem here is that gattrib writes back the gathered information to
the schematic and does not look in the direction of the following step in
this trail: pcb itself.  In the current gschem --> pcb flow the "pristine"
schematic becomes "tainted" by gattrib for other workflows.

Gattrib and gparts should offer the choice of slotting of devices into a
single package when possible, some packages contain four NAND gates
(devices), some packages only one device.  The same goes for opamps.
Sometimes a designer may choose not to apply slotting as to avoid
interference and keep signals as far apart as possible.  Gattrib and gparts
should solve the "transistor" problem ;-)

IMO, it would be better if gattrib is the owner of the package/parts mapping
file, and pcb should only read this file for loading footprints.

In pcb two information streams should be combined into a pcb layout: 1)
connectivity (from gnetlist) and 2) partslist (from gattrib/gparts).

The same information shoud be able to be passed into applications like
"breadboard"/"stripboard"/Fritzing if one wants to layout for prototyping.

And when the pcb layout is completed "all" that remains is maybe do a
EMC/thermal analysis iteration process, and finally generate gerber files,
create a XY pick-and-place file and a shoppinglist (BOM), create fab
documentation and do back-annotation of connectivity and parts mapping to a
"tainted" final schematic file.


BTW: In the current situation the "gate-swapping" problem has to be solved
at the schematic level, which is two levels upstream.  This should be done
by gattrib/gparts.

BTW2: The "transistor" problem has to be solved at the same upstream level
(2). Just call pins "e", "b", "c" in the schematic and let gattrib/gparts
sort out the pin mapping. Users should not be bothered with this kind of
thing for more than one time each instance, just "Automate" it. 


Just my EUR 0.02

Kind regards,

Bert Timmerman.



_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user