[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: strange build failure
On Dec 5, 2006, at 8:53 PM, Michael Sokolov wrote:
For a hard-core UNIX programmer like me, the only way to design
hardware
is to make it look like UNIX software: write the source with vi,
keep it
in CVS and compile with make, all in the absence of a graphical
display.
A graphical display won't do me any good because my mind can't handle
it. I have what's called an 80-column mind, meaning that my brain
can't
really process anything that isn't ASCII in 80 columns.
The text-based nature of gschem schematic and symbol files is another
life saver for me. While I do grudgingly use an X11 display while
drawing schematics (the graphical aspect really pushes the limits
of my
comfort zone), I very often exit gschem, fire up vi and edit my .sch
files directly, right in the centre of my comfort zone. I love ASCII!
And when I do use the gschem GUI, I make heavy use of the keyboard
shortcuts and use the mouse as little as possible -- I hate mice!
While it's not likely a serious PCB editing tool will be text based
(top-shelf PCB layout people have excellent visual and visualization
skills and can do a great job of using the least amount of PCB real-
estate while getting the least-congested routing), "schematic" design
entry can be done, and done well, in a plain-text format.
At my last day job (before the company was bought out and half the
staff shit-canned, but I digress), we used a text-based pinlist
design entry method. The interface was emacs with custom menus, and
the whole thing ran on Solaris (later ported to Red Hat and OS X).
Basically, you placed components in your design schematic. The
components had a "spec file," which had a part number and a list of
all of the pins on the device (which could be fun for a 456-pin
BGA). When placed on the "schematic," you could see the vendor-
assigned pin number and pin name, and your schematic net name. The
"spec files" were pretty smart, as they contained not only pin name/
number info, but also loading info, so you could run a "netcheck"
that ensured that input pins weren't left open, output pins weren't
overloaded, etc. The whole system enforced several rules. All nets
had to have "useful" net names, instead of like what the graphical
schematic program which lets you not give a net label and it'd assign
something like Net_C01 for you. No-connects had a specific syntax.
Etc. Being text-based made it a snap to use with CVS. There were
also a few post-processing back-ends. One was the "netcheck," a
second built a Tango PCB netlist, a third used the database of part
numbers to build BOMs and stuffing guides.
By being custom in-house, it neatly sidestepped the problem of
vendors changing their proprietary formats, or getting bought, or
both (Accel to PCAD, anyone?).
It was all pretty remarkable, built in-house and maintained over the
course of about 15 years. The biggest downsides to this were that
there was a lot of tribal knowledge ("how does this work and where is
it documented?"); it was constantly "in development" so it was not
uncommon for the maintainer (who was also the company president!) to
change something which broke everything; and of course in-house tools
don't look good on a resume ("what schematic capture did we use?
Uhh, none; a custom text pinlist ...").
PCB layout was still done with a graphical tool. As I said, PCB
layout is a visual process, no way around it. We used PCAD, and
migrated to Mentor Expedition for the large designs that PCAD choked
on (24-layer VME boards, anyone?). But the pinlist schematic front
end remained until the company was consumed.
-a
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user