swar.h 1.66 KB
#ifndef SWAR_HEADER_FILE
  #define SWAR_HEADER_FILE


/* SWAR configuration register */
#define SWAR_CONF_ACCSIZE_MASK    0x3F
#define SWAR_CONF_ACCSIZE_SHIFT     26
#define SWAR_CONF_SWIDTH_MASK     0x1F
#define SWAR_CONF_SWIDTH_SHIFT      21
#define SWAR_CONF_LANES_MASK      0x1F
#define SWAR_CONF_LANES_SHIFT       16
#define SWAR_CONF_FCN_CORREL         0
#define SWAR_CONF_FCN_DEMOD          1
#define SWAR_CONF_FCN_SINCOS         2
#define SWAR_CONF_FCN_AUDIO          3
#define SWAR_CONF_FCN_VIDEO          4
#define SWAR_CONF_FCN_ALU            5
#define SWAR_CONF_FCN_LACCUMS        6


/* SWAR  control register */
  /* audio/video/alu operations */
#define SW_OP_ADD           0x00
#define SW_OP_SUB           0x08
#define SW_OP_MUL           0x0C
  /* correlation */
#define SW_OP_COR1b         0x04
#define SW_OP_COR2b         0x05
#define SW_OP_COR3b         0x06
#define SW_OP_COR4b         0x07
  /* demodulation */
#define SW_OP_DEMR2b        0x09
#define SW_OP_DEMR3b        0x0A
#define SW_OP_DEMR4b        0x0B
#define SW_OP_DEMC2b        0x0D
#define SW_OP_DEMC3b        0x0E
#define SW_OP_DEMC4b        0x0F
#define SW_OP_DEMC2bG       0x01
#define SW_OP_DEMC3bG       0x02
#define SW_OP_DEMC4bG       0x03
  /* sincos LUT */
#define SW_OP_SC1b          0x10
#define SW_OP_SC2b          0x20
#define SW_OP_SC3b          0x30
#define SW_OP_SC4b          0x40

#define SW_CTRL_OPMASK      0xFF

#define SW_CTRL_SIGNED      (1<<8)
#define SW_CTRL_REDUCE      (1<<9)
#define SW_CTRL_SATURATE    (1<<10)
#define SW_CTRL_NORMALIZE   (1<<11)
#define SW_CTRL_AUDIO       (1<<12)
#define SW_CTRL_VIDEO       (1<<13)
#define SW_CTRL_ALU         (1<<14)



#endif /* SWAR_HEADER_FILE */