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

# GENLIB\_PLACE\_VIA\_REF(3)

put a via on top of a reference belonging to an instance in the current figure

## NAME

GENLIB\_PLACE\_VIA\_REF - put a via on top of a reference belonging to an instance in the current figure

## SYNOPSYS

```
#include <genlib.h>
void GENLIB_PLACE_VIA_REF(insname, refname, viatype)
char  ∗insname, ∗refname;
char viatype;
```

## PARAMETERS

- *insname*

  Name of the instance in the which the reference is to be searched for

- *refname*

  Name of the reference to be used as target point

- *viatype*

  Type of via to be placed

## DESCRIPTION

**PLACE\_VIA\_REF** places a via of type *viatype* on top of the specified reference, *refname*, in the instance called *insname*. This function may be used to generate many cells from a single one, in order to "program" decoders for example, or in conjuction with **PLACE\_SEG\_REF**(3) or **PLACE\_CON\_REF**(3) to translate virtual connectors into fixed ones.\
 The *viatype* argument may take the following legal values:

- **CONT\_POLY**

  links **POLY** and **ALU1**

- **CONT\_DIF\_N**

  links **NDIF** and **ALU1**

- **CONT\_DIF\_P**

  links **PDIF** and **ALU1**

- **CONT\_BODY\_N**

  links **NTIE** and **ALU1**

- **CONT\_BODY\_P**

  links **PTIE** and **ALU1**

- **CONT\_VIA**

  links **ALU1** and **ALU2**

- **CONT\_VIA2**

  links **ALU2** and **ALU3**

## ERRORS

**"GENLIB\_PLACE\_VIA\_REF impossible : missing GENLIB\_DEF\_PHFIG"**

No figure has been yet specified by a call to **DEF\_PHFIG**. So it isn't possible to place a reference inside it. you must call **DEF\_PHFIG** before any other layout action.

**"illegal getphins : instance** *insname* **does not exist"**

The instance called *insname* does not currently belong to the figure.

**"illegal getphref : references called** *refname* **does not exist"**

No reference called *refname* exists in the model of the instance *insname*.

## EXAMPLE

```
#include <genlib.h>
main()
{
	/∗ Create a figure to work on  ∗/
	GENLIB_DEF_PHFIG("cell");
	GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
	/∗ Put a reference ∗/
	GENLIB_PLACE_VIA_REF("a_0", "r1", CONT_VIA);
	/∗ Save that on disk ∗/
	GENLIB_SAVE_PHFIG();
}
```

## SEE ALSO

**dpr**(1), [**genlib**(1)](/genlib/1.md), [**GENLIB\_DEF\_PHFIG**(3)](/GENLIB_DEF_PHFIG/3.md), [**GENLIB\_SAVE\_PHFIG**(3)](/GENLIB_SAVE_PHFIG/3.md), [**GENLIB\_PHREF**(3)](/GENLIB_PHREF/3.md), [**GENLIB\_PHVIA**(3)](/GENLIB_PHVIA/3.md), [**GENLIB\_COPY\_UP\_REF**(3)](/GENLIB_COPY_UP_REF/3.md), [**GENLIB\_COPY\_UP\_ALL\_REF**(3)](/GENLIB_COPY_UP_ALL_REF/3.md), [**GENLIB\_PLACE\_CON\_REF**(3)](/GENLIB_PLACE_CON_REF/3.md), [**GENLIB\_PLACE\_SEG\_REF**(3)](/GENLIB_PLACE_SEG_REF/3.md), [**GENLIB\_PLACE\_VIA\_REF**(3)](/GENLIB_PLACE_VIA_REF/3.md).
