This chapter describes Electric's native file format, which ends in "jelib". The earlier file format, which ends in "elib", remains undocumented and is no longer recommended.
JELIB files are text-readable files. Each line of a JELIB file starts with an identifying character that distinguishes the line. Blank lines, and those that start with the comment identifying character (#) are ignored. There is no limit to the length of a line of text.
After the identifying character at the start of a line, there are a set of fields. All of the fields are separated by the separator character (|) except for the first field, which begins immediately after the identifying character. No blank spaces are allowed on a line (that is, any blank spaces are treated as valid characters). Control characters (such as the identifying characters) must be upper case. In order to insert a '|' or '\n' or '\r' into a field, it must be enclosed in the quotation mark characters ("). Backslash character can be used inside enclosed strings to denote special characters:
Characters | Meaning |
---|---|
\n | line feed character (\n) |
\r | carriage return character (\r) |
\" | quotation mark character (") |
\\ | backslash character (\) |
Each of the different types of lines in the file has a fixed set of fields that must appear. Some line types also allow additional fields at the end to add variables (attribute/value pairs, see Section 10-4-1).
The JELIB file has 3 parts: the header, cells, and trailer.
The header has these elements:
H | Header information; variable fields are allowed |
V | View information |
L | External library information |
R | External cell in the above external library |
F | External export in the above external cell |
T | Technology information; variable fields are allowed |
D | Primitive Node information in the above technology |
P | Primitive Port information in the above primitive node |
W | Primitive Arc information in the above technology |
O | Tool information |
The cells have these elements:
C | Cell header; variable fields are allowed |
N | Primitive node information in the current cell; variable fields are allowed |
I | Cell instance information in the current cell; variable fields are allowed |
A | Arc information in the current cell; variable fields are allowed |
E | Export information in the current cell; variable fields are allowed |
X | Cell termination |
The trailer has this element:
G | Group information |
Everything in the file is completely ordered. There is an ordering to the external libraries, cells in those libraries, technologies, tools, cells, nodes/arcs/exports in a cell, etc. Even the extra variables on a line are ordered. The ordering is usually a name sort. By ordering everything in the file, the exact same file is generated every time, and source-code comparison operations will accurately find differences between two files. Note, however, that the JELIB reader does not require any sorting, and can handle the data in any order.