Adder/substractor macro-generator
#include <genlib.h>
void GENLIB_MACRO (DPGEN_ADSB2F, char *modelname, long flags, long N);
Generate a N bits adder/substractor named modelname.
How it works :
•
if the add_sub signal is set to '0' an addition is performed, otherwise it's a substraction.
•
Operation can be either signed or unsigned. In unsigned mode c31 is the overflow, in unsigned mode you have to compute overflow by XORing c31 and c30.
1.
add_sub : select addition or substraction (input, 1 bit).
2.
c31 : carry out. In unsigned mode, this is the overflow (output, 1 bits).
3.
c30 : used to compute overflow in signed mode : overflow := c31 xor c30 (output, 1 bits).
4.
i1 : first operand (input, N bits).
5.
i0 : second operand (input, N bits).
6.
q : output (N bits).
7.
vdd : power.
8.
vss : ground.
GENLIB_MACRO(DPGEN_ADSB2F, "model_adsb2f_32" , F_BEHAV|F_PLACE , 32 ); GENLIB_LOINS( "model_adsb2f_32" , "instance1_adsb2f_32" , "add_sub" , "c32" , "c31" , "i1[31:0]" , "i0[31:0]" , "q[31:0]" , "vdd", "vss", NULL );