---
name: "phseg"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/phseg"
---

# phseg(3)

mbk physical segment

## NAME

phseg - mbk physical segment

## DESCRIPTION

The **phseg** structure is used to describe a segment belonging to a symbolic layout model, see [**phfig**(3)](/phfig/3.md) 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.

## SEE ALSO

**mbk**(1), [**addphseg**(3)](/addphseg/3.md), **getphseg**(3), [**delphseg**(3)](/delphseg/3.md), [**phfig**(3)](/phfig/3.md), [**ptype**(3)](/ptype/3.md).
