GenLib User's Manual
<<< Previous |  | Next >>>

# DPGEN_SHIFT

## Name

DPGEN_SHIFT -- Shifter Macro-Generator

## 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);

## See Also

GENLIB_MACRO(3), genlib(1)

<<< Previous | Home | Next >>>
DPGEN_ADSB2F | Up | DPGEN_NUL