| << [[Hierarchy]]  |  **[[geda:gnetlist_ug|gEDA gnetlist User Guide]]**     |  [[Implicit pins]] >> |

===== Slots and slotting =====

Some integrated circuits provide several identical and interchangeable devices in a single package.  The classic "4000" series of logic devices is a good example of this; for example, each 4001 package contains four 2-input NOR gates.  [[geda:gschem_ug|gschem]] and gnetlist provide support for working with these by using //slots//.

<note tip>Check the "4001-1.sym" symbol in the "4000-series logic" symbol library for an example of how to use slotting and [[implicit pins]].

Detailed information on slotting attributes can be found in the [[geda:master_attributes_list|Master Attributes List]].</note>

gnetlist uses several symbol attributes to enable slotting.  All must be present for gnetlist to process a slotted component correctly.

  - Every pin must have a "''pinseq=''" attribute and a "''pinnumber=''" attribute.
  - The "''numslots=''" attribute indicates how many slots a component has.
  - There must be one "''slotdef=''" attribute for each slot.  This contains information about the pin numbers of the pins associated with each slot.
  - A "''slot=''" attribute attached to each component in the schematic indicates which particular slot to use.

When processing a slotted component, gnetlist first looks for a "''slotdef=''" attribute matching the value of the "''slot=''" attribute.  It uses the value of the "''slotdef=''" attribute to renumber the pins for the correct slot.  It then merges the component with other components with the same "refdes".

<note important>gnetlist does not currently support slotting across hierarchy.  The slots in a package cannot be split between different subcircuits.</note>