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

# GENLIB\_BUS(3)

Creates a bus name for netlist

## NAME

GENLIB\_BUS - Creates a bus name for netlist

## SYNOPSYS

```
#include <genlib.h>
char ∗GENLIB_BUS(busname, from, to);
char ∗busname;
long from, to;
```

## PARAMETERS

- *busname*

  Common signal name for a bus

- *from*

  Starting index of the set of signal, *from* included

- *to*

  Ending index of the set of signal, *to* included

## DESCRIPTION

*GENLIB\_BUS* Creates a set of names, based upon a common name, valid for the genlib netlist functions that manipulate the signal, and/or connector, concept. They are:

**LOINS**(3)\
 **LOCON**(3)

The *from, to* arguments give the boundaries of the bus to be created, both of them beeing included in the set. The function allows increasing or decreasing order busses, as one could expect.\
 This function has a constant equivalent, it means that if the *from, to* values are known at compilation time, one should better use, for readability purposes, the "\[n:m\]" construct.

## EXAMPLE

```
#include <genlib.h>
main()
{
int b = 0;
int e = 12;
	/∗ Create a figure to work on  ∗/
	GENLIB_DEF_LOFIG("mycell");
	/∗ define interface  ∗/
	GENLIB_LOCON(GENLIB_BUS("i", b, e), INPUT, GENLIB_BUS("sig", b, e);
	GENLIB_LOCON("o[2:0]", OUTPUT, "sigout[4:6]");
	/∗ Place an instance ∗/
	GENLIB_LOINS("model","instance", GENLIB_BUS("sig", e/2), "sigout[6]", EOL);
	/∗ Save all that on disk ∗/
	GENLIB_SAVE_LOFIG();
}
```

## SEE ALSO

[**genlib**(1)](/genlib/1.md), [**GENLIB\_ELM**(3)](/GENLIB_ELM/3.md).
