Kestrel Interface
Loading...
Searching...
No Matches
kest_block.h
Go to the documentation of this file.
1#ifndef BLOCK_H_
2#define BLOCK_H_
3
4#define BLOCK_INSTR_NOP 0
5#define BLOCK_INSTR_MADD 1
6#define BLOCK_INSTR_ARSH 2
7#define BLOCK_INSTR_LSH 3
8#define BLOCK_INSTR_RSH 4
9#define BLOCK_INSTR_ABS 5
10#define BLOCK_INSTR_MIN 6
11#define BLOCK_INSTR_MAX 7
12#define BLOCK_INSTR_CLAMP 8
13#define BLOCK_INSTR_MOV_ACC 9
14#define BLOCK_INSTR_MOV_LACC 10
15#define BLOCK_INSTR_MOV_UACC 11
16#define BLOCK_INSTR_MACZ 12
17#define BLOCK_INSTR_UMACZ 13
18#define BLOCK_INSTR_MAC 14
19#define BLOCK_INSTR_UMAC 15
20#define BLOCK_INSTR_LUT_READ 16
21#define BLOCK_INSTR_DELAY_READ 17
22#define BLOCK_INSTR_DELAY_WRITE 18
23#define BLOCK_INSTR_MEM_READ 19
24#define BLOCK_INSTR_MEM_WRITE 20
25#define BLOCK_INSTR_FILTER 21
26
28
29#define BLOCK_OPERAND_TYPE_C 0
30#define BLOCK_OPERAND_TYPE_R 1
31
32typedef struct {
33 int type;
34 int addr;
36
37#define ZERO_REGISTER_ADDR 2
38#define POS_ONE_REGISTER_ADDR 3
39#define NEG_ONE_REGISTER_ADDR 4
40
44
45typedef struct
46{
47 int format;
48 int active;
51
70
71int kest_init_block(kest_block *block);
72
74
75#endif
kest_block_operand operand_const_one()
Definition kest_block.c:21
int kest_init_block(kest_block *block)
Definition kest_block.c:37
kest_block_operand operand_const_minus_one()
Definition kest_block.c:29
kest_block_operand operand_const_zero()
Definition kest_block.c:13
#define DECLARE_LINKED_PTR_LIST(X)
kest_expression * expr
Definition kest_block.h:49
kest_block_operand arg_b
Definition kest_block.h:56
kest_block_operand arg_c
Definition kest_block.h:57
kest_block_reg_val reg_0
Definition kest_block.h:61
kest_block_reg_val reg_1
Definition kest_block.h:62
kest_block_operand arg_a
Definition kest_block.h:55
int shift_set
Definition kest_block.h:65
int saturate_disable
Definition kest_block.h:66
kest_dsp_resource * res
Definition kest_block.h:68