DPGEN_NOR2MASK − Programmable Mask Macro-Generator
#include <genlib.h>
void GENLIB_MACRO (DPGEN_NOR2MASK, char *modelname, long flags, long N, char *constVal);
Generate a N bits conditionnal NOR mask named modelname.
How it works :
• |
if the cmd signal is set to ’0’, the mask is NOT applied, so the whole operator behave like an inverter. |
||
• |
if the cmd signal is set to ’1’, the mask IS applied, the output is the complemented result of the input value ORed with the mask (suplied by constVal). |
The constant constVal is given to the macro-generator call, therefore the value cannot be changed afterward : it’s hard wired in the operator.
A common error is to give a real C constant for the constVal argument. Be aware that it is a character string.
TERMINAL NAMES
1. |
cmd : mask control (1 bit). |
|||
2. |
i0 : input (N bits). |
|||
3. |
q : output (N bits). |
|||
4. |
vdd : power. |
|||
5. |
vss : ground. |
BEHAVIOR
nq <= WITH cmd SELECT not(i0) WHEN ’0’,
not(i0 or X"0000FFFF") WHEN ’1’;
GENLIB_MACRO(DPGEN_NOR2MASK, "model_nor2mask_0000FFFF_32"
, F_BEHAV|F_PLACE
, 32
, "0x0000FFFF" /* A string! */
);
GENLIB_LOINS( "model_nor2mask_0000FFFF_32"
, "instance1_nor2mask_32"
, "cmd"
, "i0[31:0]"
, "q[31:0]"
, "vdd", "vss", NULL
);