phseg(3) mbk physical segment

DESCRIPTION

The phseg structure is used to describe a segment belonging to a symbolic layout model, see phfig(3) for details. Transistors are segments of a particular layer.

The declarations needed to work on phseg are available in the header file "/labo/include/mph402.h", where '402' is the actual mbk version.

The following C structure supports the description of the segment :


typedef struct phseg {
   struct phseg     *NEXT;
   char             *NAME;
   long             X1,Y1,X2,Y2;
   long             WIDTH;
   char             TYPE;
   char             LAYER;
   struct ptype     *USER;
} phseg_list;
NEXT
Pointer to the next segment in the list.
NAME
Name of the segment. The name is not an identifier, and a name is present only if the designer used one for debug purposes.
X1, Y1, X2, Y2
Coordinates of each end of the segment. Since it's a symbolic segment, one alway has either X1 = X2 or Y1 = Y2. Furthermore, by construction, it is warranty, if one accesses the data structure through the legal functions, that X1 <= X2 and Y1 <= Y2.
TYPE
This caracter can take four values :
LEFT or RIGHT
if Y1 = Y2. The exact value is chosen by addphseg, depending upon X1 and X2 relations.
UP or DOWN
if X1 = X2
LAYER
Symbolic layer used for the segment. The legal values are :
NWELL
N bulk
PWELL
P bulk
NTIE
N implant in P bulk
PTIE
P implant in N bulk
NDIF
N diffusion
PDIF
P diffusion
NTRANS
N transistor
PTRANS
P transistor
POLY
polysilicium
ALU1
first metal
ALU2
second metal
ALU3
third metal
TPOLY
polysilicum through route
TALU1
first metal through route
TALU2
second metal through route
TALU3
third metal through route
WIDTH
Width of the segment. The physical extension of a segment is perpendicular to its direction.
USER
Pointer to a ptype list, see ptype for details, that is a general purpose pointer used to share informations on the segment.