SYNOPSIS
#include <genlib.h>
void GENLIB_MACRO (DPGEN_SHIFT, char *modelname, long flags, long N);
DESCRIPTION
Generate a N bits shifter with name modelname.
How it works :
- if the op[0] signal is set to '1' performs a right shift, performs a left shift otherwise.
- if the op[1] signal is set to '1' performs an arithmetic shift (only meaningful in case of a right shift).
- shamt : specifies the shift amount. The width of this signal (Y) is computed from the operator's width : Y = ceil(log2(N)) - 1.
TERMINAL NAMES
- 1.
- op : select the kind of shift (input, 2 bit).
- 2.
- shamt : the shift amount (input, Y bits).
- 3.
- i : value to shift (input, N bits).
- 4.
- o : output (N bits).
- 5.
- vdd : power.
- 6.
- vss : ground.
EXAMPLE
GENLIB_MACRO(DPGEN_SHIFT, "model_shift_32", F_BEHAV|F_PLACE, 32); GENLIB_LOINS("model_shift_32", "instance1_shift_32", "op[1:0]", "shamt[4:0]", "x[31:0]", "y[31:0]", "vdd", "vss", NULL);