ChipWare: A general-purpose shifter that can be dynamically programmed to operate in arithmetic or barrel shift mode. When sh_mode=0, a barrel shift operation is performed. The input data data_in is shifted left or right by the number of bits specified by the control input sh. The shifted data wraps around from the most significant bit to the least significant bit. When sh_mode=1, an arithmetic shift is performed. The input data is shifted left or right by the number of bits specified by the control input sh. When the control signal sh_tc=0, the coefficient sh is interpreted as an unsigned positive number and CW_shifter performs only left shift operations. When sh_tc=1, sh is a two's complement number with a negative coefficient performing a right shift and a positive coefficient performing a left shift. The input data, data_in, is interpreted as an unsigned number when data_tc=0. When data_tc=1, data_in is interpreted as a signed number and a sign extension is performed for right arithmetic shift operations. The parameter inv_mode determines whether to interpret the input data as non-inverted or inverted logic (for data_tc, sh, and sh_tc pins only). It also determines the padded logic value at the output (for arithmetic shift only).
- This IP is available as part of Cadence Encounter RTL Compiler XL