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.