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)
-
Miscellaneous :
-
- DPGEN_NUL(3)
- DPGEN_CONST(3)
- DPGEN_ROM2(3)
- DPGEN_ROM4(3)
-
Registers :
-
- DPGEN_RF1(3)
- DPGEN_RF1R0(3)
- DPGEN_FIFO(3)
- DPGEN_RF1D(3)
- DPGEN_RF1DR0(3)
- DPGEN_DFF(3)
- DPGEN_DFFT(3)
- DPGEN_SFF(3)
- DPGEN_SFFT(3)