This section describes the various requirements which must be met in order
to create a valid symbol which will display and netlist in the gEDA/gaf
system. Most of the requirements center around having certain attributes
attached or inside the symbol.
Running gsymcheck will check that all of these requirements are met.
gsymcheck will output fatal errors which are quite serious and must
be corrected. gsymcheck will also output warnings on things which
should be fixed but are not fatal.
For more information on the attributes presented here, please see the
Master Attribute Document.
- device=DEVICENAME should be placed somewhere in the symbol
and made invisible. device= is the device name and
is required. Typically the devicename is in all caps (capital
letters). This attribute should not be used as a label. Use a
separate text object for the label. If the object is a graphic
then device= should be set to none (device=none).
It is no longer required to attach this attribute anything; just
having it exist as device=DEVICENAME is good enough.
- graphical=1 should exist somewhere in a symbol which is purely
graphical (such as a title block or decon symbol). Symbols which
have this attribute have no electrical or circuit significance.
Don't forget to set device=none.
- description=text should exist somewhere in the symbol. This
attribute provides an one line description of the symbol.
- All pins should have a pair of attributes attached to them:
pinseq=# and pinnumber=#. The first attribute,
pinseq=# is just a sequence number and increments sequentially
starting at 1. The second attribute pinnumber=# is the number
of the pin. When a symbol is netlisted, the pin numbers are output
in order of pin sequence. The pin number can be alphanumeric (i.e. like
E or C).
- All pins should also have pinlabel=value attached to them.
This attribute is the name or label of the pin (vs the pin number).
This attribute is also used when a symbol is used in a hierarchical
schematic. Please make this attribute green (instead of the
default attribute yellow).
- All pins should also have pintype=value attached to them.
This attribute describes the kind of a pin. Possible values are:
in, out, io, oc, oe, pas, tp, tri, clk, pwr. Please see the Master
Attribute Document for more info.
- If a component has multiple slots in a package (such as
a 7400 (NAND) which has 4 NANDs per package) then you need a
numslots=# attribute. The # is the number of
slots the device has. numslots= should be exist somewhere in
the symbol and made invisible. Additional slot related required
attributes are described below.
- If a component has multiple slots in a physical package then you
also need to include a slotdef=#:#,#,#...
for every slot. The first # corresponds to the slot number.
If a device has 4 slots then there should be slotdef=1:...,
slotdef=2:..., slotdef=3:..., and slotdef=4:...,
attributes existing somewhere in the symbol and made invisible.
The subsequent # have a one-to-one correspondence to pinseq=#
attributes and specify what corresponding pinnumber=#
should be when that slot is set. See The attached 7400-1.sym as
an example of how this should all work.
- It is recommended that all symbols which have slots have a slot=1 attribute inside the symbol.
- footprint=PACKAGENAME should exist somewhere in the symbol
which might be used with the PCB netlister. PACKAGENAME is the
PCB footprint or package type like DIP14 or DIP40. Please see
the Footprint naming conventions chapter for further detail.
See also the PCB documentation and gnetlist/docs/README.pcb for
more info on this attribute.
- You should put a refdes=U? attribute inside the symbol.
Make only the value visible and it will be promoted (attached to
the outside of the symbol (so it can be edited) when the symbol
is placed in a schematic.
- The label= attribute should not be attached anywhere in
the symbol. It is obsolete.
- The name= attribute should not be attached anywhere in the symbol.
- The netname= attribute should not be attached anywhere in the
symbol. It is only used in schematics.
Ales Hvezda
2005-08-20