GENLIB_MACRO(3)

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
);
.SH "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),