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

# GENLIB\_LOINSE(3)

add a logical instance to the current figure, with explicit connections

## NAME

GENLIB\_LOINSE - add a logical instance to the current figure, with explicit connections

## SYNOPSYS

```
#include <genlib.h>
void GENLIB_LOINSE(model, instance, couple1, couple2, ..., couplen, EOL);
char ∗model, ∗instance;
char ∗couple1, ∗couple2, ..., ∗couplen;
```

## PARAMETERS

- *model*

  Name of the model to be logically instanciated

- *instance*

  Name to be given to the new instance

- *couple1, couple2, ..., couplen*

  Explicit list of connections between connectors and signals.

## DESCRIPTION

**LOINSE** add a logical instance in the actual working figure. **LOINSE** uses environment variables to choose the file format and the path to the file.\
 **MBK\_IN\_LO** set up the input file format, the valid ones beeing :

**hns**\
 **fne**\
 **al**\
 **alx**

**MBK\_WORK\_LIB** set up the output file path. Any valid unix path is ok. **LOINSE** look in memory and then, if not found, on disk for the figure *modelname*. This is due to the need to ensure consistency between the model and its ascociated instances.\
 The instance is added with the name *instance*, and each of the signals are connected to an instance connector. The connector signal link is explicit, and described in the **couple**s arguments. The **couple**s arguments are supposed to have the form:

```
conector => signal
or
conector[a:b] => signal[n:m]
where a - b equals, in absolute value, n - m.
```

## ERRORS

**"GENLIB\_LOINSE impossible : missing GENLIB\_DEF\_LOFIG"**\

No figure has been yet specified by a call to **DEF\_LOFIG**. So it isn't possible to add anything. you must call **DEF\_LOFIG** before any other netlist call.

**"GENLIB\_LOINSE : Bad signal bus name"**\

A signal, described under a bus form, has an illegal syntax.

**"Illegal addloins. Instance insname already exist in figure figname"**\

An instance name must be unique in a given figure at a given hierachy level.

**"Illegal addloins. Instance model is the figure figname itself"**\

A figure cannot be included in itself. Be careful, the check is only made at current hierarchy level.

**"Illegal addloins. Connector number discrepancy between** **figure modelname and instance insname in figure figname"**\

The number of connector in the model is not equal to the number of signals describing the connectivity during the **LOINSE** call.

## EXAMPLE

```
#include <genlib.h>
main()
{
	/∗ Create a figure to work on  ∗/
	GENLIB_DEF_LOFIG("mycell");
	/∗ define interface  ∗/
	GENLIB_LOCON("i", INPUT, "sig1");
	GENLIB_LOCON("o", OUTPUT, "sig2");
	/∗ Place an instance ∗/
	GENLIB_LOINSE("model","instance", "con1 => sig1", "con2 => sig2", 0L);
	GENLIB_LOINSE("stuff","shirt", "i[31:0] => out[32:63]", "j[2] => sig2", 0L);
	/∗ Save all that on disk ∗/
	GENLIB_SAVE_LOFIG();
}
```

## SEE ALSO

[**genlib**(1)](/genlib/1.md), [**GENLIB\_DEF\_LOFIG**(3)](/GENLIB_DEF_LOFIG/3.md), [**GENLIB\_LOINS**(3)](/GENLIB_LOINS/3.md), [**MBK\_IN\_LO**(1)](/MBK_IN_LO/1.md), [**MBK\_CATA\_LIB**(1)](/MBK_CATA_LIB/1.md), [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md).
