1 #ifndef SHIFT_REGISTER_H
2 #define SHIFT_REGISTER_H
12 #pragma HLS ARRAY_PARTITION variable=data dim=1 type=complete
13 for (
int i = 0; i < LEN; i++) {
25 for (
int i = LEN - 1; i > 0; i--) {
29 data[i] = data[i - 1];
39 for (
int i = LEN - 1; i > 0; i--) {
43 data[i] = data[i - 1];
52 for (
int i = 0; i < LEN - 1; i++) {
56 data[i] = data[i + 1];
60 data[LEN - 1] = input;
65 for (
int i = 0; i < LEN - 1; i++) {
69 data[i] = data[i + 1];
73 data[LEN - 1] = zero_fp;
78 for (
int i = 0; i < LEN; i++) {
91 #pragma HLS ARRAY_PARTITION variable=data dim=1 type=complete
95 for (
int i = 0; i < NUM; i++) {
97 data[i].shift_right(input[i]);
102 for (
int i = 0; i < NUM; i++) {
104 data[i].shift_left(input[i]);
109 for (
int i = 0; i < NUM; i++) {
112 data[i].shift_right();
117 for (
int i = 0; i < NUM; i++) {
119 data[i].shift_left();
124 for (
int i = 0; i < NUM; i++) {
134 #endif // !SHIFT_REGISTER_H
ShiftRegister(void)
Definition: shift_reg.h:11
void shift_right(T input)
Definition: shift_reg.h:24
ShiftRegister< T, LEN > data[NUM]
Definition: shift_reg.h:89
void shift_left()
Definition: shift_reg.h:116
void clear()
Definition: shift_reg.h:123
void shift_right(T input[NUM])
Definition: shift_reg.h:94
ShiftRegisterBlock(void)
Definition: shift_reg.h:90
Definition: shift_reg.h:87
void shift_left(T input[NUM])
Definition: shift_reg.h:101
ShiftRegister< T, LEN > & operator[](int index)
Definition: shift_reg.h:129
void shift_left()
Definition: shift_reg.h:64
void shift_right()
Definition: shift_reg.h:38
void shift_right()
Definition: shift_reg.h:108
void shift_left(T input)
Definition: shift_reg.h:51
T operator[](int index)
Definition: shift_reg.h:20
void clear()
Definition: shift_reg.h:77
Definition: shift_reg.h:6