GenLib User's Manual
<<< Previous |  | Next >>>

# GENLIB_MACRO

## Name

GENLIB_MACRO -- Interface with all MACRO generators.

## Synopsis

    #include  <genlib.h>

``void `GENLIB_MACRO``(long `function`, char *`modelname`, long `flags`, long `N`, long `drive`, long `regNumber`, char *`constVal`);`

## Description

The GENLIB_MACRO() fonction call is the generic interface to all genlib macro generators. As all generators do not have the sames arguments it takes a variable number of arguments.

Arguments are of two kinds :

- Mandatory arguments : those arguments must always be supplied. They represents the minimal set of common arguments for all macro-generators. Mandatory arguments comme firts in the arguments list.

- Optional arguments : arguments specifics to a macro-generator or a class of macro-generators.

### Arguments

1. `long `function`` : (mandatory) specify which macro-generator is to be invoked. For example, to create a two entry multiplexer gives `GENLIB_MUX2`.

2. `char* `modelname`` : (mandatory) specify the name of the model to be generated. For example : `"model_mux2_32bits"`.

3. `long `flags`` : (mandatory) tells which views are to be generated. It is a logical combination of the following values : (ORed)

   1. `F_PLACE` : generate physical view (placement only).

   2. `F_BEHAV` : generate behavioral view (VHDL view).

   3. `F_LSB_FIRST` : the terminal of index zero is matched to the LSB, thus a 32 bits vector will be written : `"signal[31:0]"`.

   4. `F_MSB_FIRST` : the terminal of index zero is matched to the MSB, thus a 32 bits vector will be written : `"signal[0:31]"` (aka. IBM notation).

4. `long `N`` : (mandatory) width of the model's bus to be generated.

5. `long `drive`` : (optional) output power drive.

6. `long `regNumber`` : (optional) number of registers or depth of for a FIFO macro-generator.

7. `char* `constval`` : (optional) a character string holding a constant. For example : `"0xFFFF0000"`.

### Available Macro-Generators

- Inverters and Buffers :

  - DPGEN_INV(3)

  - DPGEN_BUFF(3)

- Boolean Operators :

  - DPGEN_NAND2(3)

  - DPGEN_NAND3(3)

  - DPGEN_NAND4(3)

  - DPGEN_AND2(3)

  - DPGEN_AND3(3)

  - DPGEN_AND4(3)

  - DPGEN_NOR2(3)

  - DPGEN_NOR3(3)

  - DPGEN_NOR4(3)

  - DPGEN_OR2(3)

  - DPGEN_OR3(3)

  - DPGEN_OR4(3)

  - DPGEN_XOR2(3)

  - DPGEN_XNOR2(3)

- Multiplexers and Tristates :

  - DPGEN_NMUX2(3)

  - DPGEN_MUX2(3)

  - DPGEN_NBUSE(3)

  - DPGEN_BUSE(3)

- Programmable Masks :

  - DPGEN_NAND2MASK(3)

  - DPGEN_NOR2MASK(3)

  - DPGEN_XNOR2MASK(3)

- Arithmetics Operators :

  - DPGEN_ADSB2F(3)

  - DPGEN_SHIFT(3)

  - DPGEN_SHROT(3)

- Miscellaneous :

  - DPGEN_NUL(3)

  - DPGEN_CONST(3)

  - DPGEN_ROM2(3)

  - DPGEN_ROM4(3)

- Registers :

  - DPGEN_RF1(3)

  - DPGEN_RF1R0(3)

  - DPGEN_RF1D(3)

  - DPGEN_RF1DR0(3)

  - DPGEN_DFF(3)

  - DPGEN_DFFT(3)

  - DPGEN_SFF(3)

  - DPGEN_SFFT(3)

## See Also

mbk(1),

<<< Previous | Home | Next >>>
genlib | Up | DPGEN_INV