Provided by: sch-rnd-core_1.0.7-1_amd64 

NAME
boxsym-rnd - boxsym description syntax
DESCRIPTION
A boxsym file specifies symbol attributes and pins (terminals) for a single box symbol or for a set of
inhomogenousely slotted box symbols. When slotted symbols are generated, one symbol file is generated
for each slot containing only the pins defined for the given slot (file name suffixed with slot name) and
a monolith symbol is generated (using the original file name) with all pins in one large box.
Syntax
The boxsym syntax is a plain text, line based, hierarchical file format with a syntax similar to tEDAx.
Leading whitespace in lines are ignored. Empty lines and lines starting with a hashmark (#) are ignored.
The first word of a line is a command.
If the command is begin , the rest of the lines until the matching end line are read as a nested level of
hierarchy. The syntax allows "begin in begin" (nesting to any depth). The second word of begin and end
are the type of the nested subtree.
Commands issued outside of any begin-end blocks are said to be made in global scope.
Refdes
There can be only one refdes line, in global scope. The argument is a single word, the refdes attribute.
If no refdes is specified, the default refdes is used.
Attributes
Attributes are symbol attributes. Attributes specified in the global scope will be present in every
symbol generated from the file. Attributes specified for a slot will be present in the slot's symbol and
in the monolith symbol.
An attribute is defined in the following form:
attr key value
Key is a single word, value is anything up to the end of the line. This defintion creates the attribute
and places a dyntext+floater text object printing the value of the attribute. If command is attr_both ,
the text object is created to print key=value. If command is
attr_invis the attribute is still created but no text object is made.
Other global settings
A line starting with text_size_mult followed by a decimal number (greater than zero) changes text pixel
length allocation factor. Increasing values will allocate more pixels to each text in length (text height
is not affected).
Defining pins
Pins are defined using a pin subtree: begin pin pinname, then lines defining pin properties and then an
end pin. Pinname should be the textual, human readable name of the pin (also used as an input for the
optional devmap), not the physical pin number.
For example:
begin pin Vcc
num 14
loc top
end pin
begin pin B
num 2:5:10:13
loc left
dir in
invcirc
funcmap
end pin
Within the pin block the num line specifies the physical footprint pin number; for a pin participating in
a slot this should be a colon separated list of pin number per slot.
The mandatory loc line specifies the location of the pin, the side of the box on which it should be
placed, one of: left, right, top or bottom.
If a dir line is present, extra "pin direction" graphics is drawn for the pin inside of the box. Values
are in or out
If invcirc is present, the pin will have a small circle near the box to indicate the pin is inverted.
If label is present its value (anything written after "label") is printed within the box next to the pin
instead of the pin name.
If funcmap is present, the label is replaced with a dyntext that prints abstract attribute funcmap/name.
This is useful for symbols that are going to use a funcmap (alternate pin function mapping). The funcmap
file is normally also referenced from the component, setting the funcmap attribute to the funcmap file
name.
Arranging pins
By default pins are listed per side (loc), tightly packed, in order of appearance in the file from the
start of the side. This can be changed using pinalign lines in global or slot scope:
pinalign left center
will arrange left side pins on the center (vertically).
Defining a single box symbol
The simplest form of box symbols emit a single file that has a single large box with all pins. The boxsym
definition for such symbols contain the above described constructs and no "begin slot" subtrees.
Defining inhomogenous slot symbol
In an multi-box, inhomogenous slot symbol there are different symbols representing different sections of
the component.
The typical example is an MCU which is split up into a couple of boxes: a few boxes per port groups and
another few per peripheral types. Each box represents a slot that appears only once in the MCU.
Another typical example is logic ICs, e.g. 7400 implemented in two different slot symbols: one for power
(Vcc and gnd), presents once in the component, and one for a 3 pin gate, same box used 4 times for 4
different slots.
An inhomogenous slot symbol does not have any pin in global scope, but defines one or more "begin slot
slotname" subtrees for all the different type of slots. If the same slot appears multiple times in the
component, it needs to be defined only once (and multiple pin numbers assigned in pin definitions.)
EXAMPLE
Single box LDO
refdes U??
attr_invis sym-source sch-rnd default symbol lib
attr_invis sym-copyright (C) 2022 Tibor 'Igor2' Palinkas
attr_invis sym-license-dist GPLv2+
attr_invis sym-license-use Public Domain
pinalign bottom center
pinalign left center
pinalign right center
shape box
shape_fill yes
begin pin in
num 1
loc left
end pin
begin pin gnd
num 2
loc bottom
end pin
begin pin out
num 3
loc right
end pin
Inhomogenous slot 7400
refdes U??
pinalign right center
pinalign bottom center
pinalign top center
attr device 7400
begin slot power
shape box
shape_fill yes
begin pin Vcc
num 14
loc top
end pin
begin pin gnd
num 7
loc bottom
end pin
pinalign top center
pinalign bottom center
end slot
begin slot logic
attr device 7400
attr_both slot 1
begin pin A
num 1:4:9:12
loc left
dir in
end pin
begin pin B
num 2:5:10:13
loc left
dir in
end pin
begin pin Z
num 3:6:8:11
loc right
dir out
invcirc
end pin
pinalign left center
pinalign right center
end slot
SEE ALSO
boxsym-rnd(1)
2022-03-28 boxsym-rnd(5)