Like the PCB symbol editors, BoardMaker3 has a flexible system for handling schematic components. Components are divided into two parts. The first of these is the symbol which is the logical element of the component together with its graphical representation. In the case of an opamp for example, the graphic is drawn with three pins. The functions of these pins are "Non-Inverting Input", "Inverting Input" and "Output".
The second part of a component is called a package and this is a separate library object. The package links the symbol to a physical device. In the operational amplifier example, the device might have one, two, four or more opamps and it is the package which specifies which pins of the device are associated with which gates. The package also links up with a PCB footprint. When a symbol is packaged, BoardMaker3 identifies the pin numbers for the gate and annotates the schematic diagram automatically. A symbol might have two or more alternative PCB footprints, for example, a QFP44, a PLCC44 or a DIP40. When a symbol is packaged in the QFP package, it will adopt the QFP pin numbering scheme, similarly, if the same symbol is packaged in the DIP40 device, it will adopt the DIP pin number scheme.
In order to avoid repetition and reduce the chance of error when creating a package, the pin names for a package are automatically derived from the PCB footprint. Pin names in BoardMaker3 can be alphanumeric, with full support for PGAs, BGAs etc, but equally, using alphanumeric on simple parts can often reduce errors associated with devices such as TO92s where (B,C,E is often better than 1,2,3).
The symbol/package mechanism described above has a number of advantages :
- You only need to draw a symbol of a particular type once. New footprint variants can be quickly defined simply by creating a new package data.
- The package can contain additional information specific to a physical device such as exact order code, customer part number etc (see attributes below)
- Schematic styles (compact, ANSI, IEEE91 etc) can be chosen to suit the user/project without having to redesign the packages
- Using suitably descriptive function names will ensure that only the correct symbols can be packaged into particular devices.
- No need to select the specific device whilst designing. Packaging is a separate step.
- No need to delete and re-insert a part if the physical device needs to be changed. Just repackage in the new device.