[Samples] add baseline and opt c++ files for all computation kernels and dnn models shown in the paper
This commit is contained in:
parent
4a37ed13de
commit
debc934b1b
|
@ -6,10 +6,10 @@ output_num=1
|
|||
max_init_parallel=32
|
||||
|
||||
# Positive number: the maximum parallelism of exploration.
|
||||
max_expl_parallel=1024
|
||||
max_expl_parallel=128
|
||||
|
||||
# Positive number: the maximum parallelism of each loop.
|
||||
max_loop_parallel=128
|
||||
max_loop_parallel=16
|
||||
|
||||
# Positive number: the maximum DSE iteration number.
|
||||
max_iter_num=30
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,877 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
void main_graph(
|
||||
int8_t v0[1][3][32][32],
|
||||
int8_t v1[64][3][3][3],
|
||||
int8_t v2[64][64][3][3],
|
||||
int8_t v3[128][64][3][3],
|
||||
int8_t v4[128][128][3][3],
|
||||
int8_t v5[256][128][3][3],
|
||||
int8_t v6[256][256][3][3],
|
||||
int8_t v7[256][256][3][3],
|
||||
int8_t v8[512][256][3][3],
|
||||
int8_t v9[512][512][3][3],
|
||||
int8_t v10[512][512][3][3],
|
||||
int8_t v11[512][512][3][3],
|
||||
int8_t v12[512][512][3][3],
|
||||
int8_t v13[512][512][3][3],
|
||||
int8_t v14[10][512],
|
||||
int8_t v15[1][10]
|
||||
) { // L2
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface bram port=v0
|
||||
#pragma HLS interface bram port=v1
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
#pragma HLS interface bram port=v5
|
||||
#pragma HLS interface bram port=v6
|
||||
#pragma HLS interface bram port=v7
|
||||
#pragma HLS interface bram port=v8
|
||||
#pragma HLS interface bram port=v9
|
||||
#pragma HLS interface bram port=v10
|
||||
#pragma HLS interface bram port=v11
|
||||
#pragma HLS interface bram port=v12
|
||||
#pragma HLS interface bram port=v13
|
||||
#pragma HLS interface bram port=v14
|
||||
#pragma HLS interface bram port=v15
|
||||
|
||||
#pragma HLS resource variable=v0 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v1 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v5 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v6 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v7 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v8 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v9 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v10 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v11 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v12 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v13 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v14 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v15 core=ram_s2p_bram
|
||||
|
||||
int8_t v16[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // L5
|
||||
int8_t v17[1][512]; // L7
|
||||
#pragma HLS resource variable=v17 core=ram_s2p_bram
|
||||
|
||||
int8_t v18[1][512][1][1]; // L8
|
||||
#pragma HLS resource variable=v18 core=ram_s2p_bram
|
||||
|
||||
int8_t v19[1][512][1][1]; // L9
|
||||
#pragma HLS resource variable=v19 core=ram_s2p_bram
|
||||
|
||||
int8_t v20[1][512][1][1]; // L10
|
||||
#pragma HLS resource variable=v20 core=ram_s2p_bram
|
||||
|
||||
int8_t v21[1][512][4][4]; // L11
|
||||
#pragma HLS resource variable=v21 core=ram_s2p_bram
|
||||
|
||||
int8_t v22[1][512][2][2]; // L12
|
||||
#pragma HLS resource variable=v22 core=ram_s2p_bram
|
||||
|
||||
int8_t v23[1][512][2][2]; // L13
|
||||
#pragma HLS resource variable=v23 core=ram_s2p_bram
|
||||
|
||||
int8_t v24[1][512][4][4]; // L14
|
||||
#pragma HLS resource variable=v24 core=ram_s2p_bram
|
||||
|
||||
int8_t v25[1][512][2][2]; // L15
|
||||
#pragma HLS resource variable=v25 core=ram_s2p_bram
|
||||
|
||||
int8_t v26[1][512][2][2]; // L16
|
||||
#pragma HLS resource variable=v26 core=ram_s2p_bram
|
||||
|
||||
int8_t v27[1][512][4][4]; // L17
|
||||
#pragma HLS resource variable=v27 core=ram_s2p_bram
|
||||
|
||||
int8_t v28[1][512][2][2]; // L18
|
||||
#pragma HLS resource variable=v28 core=ram_s2p_bram
|
||||
|
||||
int8_t v29[1][512][2][2]; // L19
|
||||
#pragma HLS resource variable=v29 core=ram_s2p_bram
|
||||
|
||||
int8_t v30[1][512][6][6]; // L20
|
||||
#pragma HLS resource variable=v30 core=ram_s2p_bram
|
||||
|
||||
int8_t v31[1][512][4][4]; // L21
|
||||
#pragma HLS resource variable=v31 core=ram_s2p_bram
|
||||
|
||||
int8_t v32[1][512][4][4]; // L22
|
||||
#pragma HLS resource variable=v32 core=ram_s2p_bram
|
||||
|
||||
int8_t v33[1][512][6][6]; // L23
|
||||
#pragma HLS resource variable=v33 core=ram_s2p_bram
|
||||
|
||||
int8_t v34[1][512][4][4]; // L24
|
||||
#pragma HLS resource variable=v34 core=ram_s2p_bram
|
||||
|
||||
int8_t v35[1][512][4][4]; // L25
|
||||
#pragma HLS resource variable=v35 core=ram_s2p_bram
|
||||
|
||||
int8_t v36[1][256][6][6]; // L26
|
||||
#pragma HLS resource variable=v36 core=ram_s2p_bram
|
||||
|
||||
int8_t v37[1][256][4][4]; // L27
|
||||
#pragma HLS resource variable=v37 core=ram_s2p_bram
|
||||
|
||||
int8_t v38[1][256][4][4]; // L28
|
||||
#pragma HLS resource variable=v38 core=ram_s2p_bram
|
||||
|
||||
int8_t v39[1][256][10][10]; // L29
|
||||
#pragma HLS resource variable=v39 core=ram_s2p_bram
|
||||
|
||||
int8_t v40[1][256][8][8]; // L30
|
||||
#pragma HLS resource variable=v40 core=ram_s2p_bram
|
||||
|
||||
int8_t v41[1][256][8][8]; // L31
|
||||
#pragma HLS resource variable=v41 core=ram_s2p_bram
|
||||
|
||||
int8_t v42[1][256][10][10]; // L32
|
||||
#pragma HLS resource variable=v42 core=ram_s2p_bram
|
||||
|
||||
int8_t v43[1][256][8][8]; // L33
|
||||
#pragma HLS resource variable=v43 core=ram_s2p_bram
|
||||
|
||||
int8_t v44[1][256][8][8]; // L34
|
||||
#pragma HLS resource variable=v44 core=ram_s2p_bram
|
||||
|
||||
int8_t v45[1][128][10][10]; // L35
|
||||
#pragma HLS resource variable=v45 core=ram_s2p_bram
|
||||
|
||||
int8_t v46[1][128][8][8]; // L36
|
||||
#pragma HLS resource variable=v46 core=ram_s2p_bram
|
||||
|
||||
int8_t v47[1][128][8][8]; // L37
|
||||
#pragma HLS resource variable=v47 core=ram_s2p_bram
|
||||
|
||||
int8_t v48[1][128][18][18]; // L38
|
||||
#pragma HLS resource variable=v48 core=ram_s2p_bram
|
||||
|
||||
int8_t v49[1][128][16][16]; // L39
|
||||
#pragma HLS resource variable=v49 core=ram_s2p_bram
|
||||
|
||||
int8_t v50[1][128][16][16]; // L40
|
||||
#pragma HLS resource variable=v50 core=ram_s2p_bram
|
||||
|
||||
int8_t v51[1][64][18][18]; // L41
|
||||
#pragma HLS resource variable=v51 core=ram_s2p_bram
|
||||
|
||||
int8_t v52[1][64][16][16]; // L42
|
||||
#pragma HLS resource variable=v52 core=ram_s2p_bram
|
||||
|
||||
int8_t v53[1][64][16][16]; // L43
|
||||
#pragma HLS resource variable=v53 core=ram_s2p_bram
|
||||
|
||||
int8_t v54[1][64][34][34]; // L44
|
||||
#pragma HLS resource variable=v54 core=ram_s2p_bram
|
||||
|
||||
int8_t v55[1][64][32][32]; // L45
|
||||
#pragma HLS resource variable=v55 core=ram_s2p_bram
|
||||
|
||||
int8_t v56[1][64][32][32]; // L46
|
||||
#pragma HLS resource variable=v56 core=ram_s2p_bram
|
||||
|
||||
int8_t v57[1][3][34][34]; // L47
|
||||
#pragma HLS resource variable=v57 core=ram_s2p_bram
|
||||
|
||||
for (int v58 = 0; v58 < 3; v58 += 1) { // L48
|
||||
for (int v59 = 0; v59 < 34; v59 += 1) { // L49
|
||||
for (int v60 = 0; v60 < 34; v60 += 1) { // L50
|
||||
v57[0][v58][v59][v60] = 0; // L51
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v61 = 0; v61 < 3; v61 += 1) { // L55
|
||||
for (int v62 = 0; v62 < 32; v62 += 1) { // L56
|
||||
for (int v63 = 0; v63 < 32; v63 += 1) { // L57
|
||||
int8_t v64 = v0[0][v61][v62][v63]; // L58
|
||||
v57[0][v61][(v62 + 1)][(v63 + 1)] = v64; // L59
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v65 = 0; v65 < 64; v65 += 1) { // L63
|
||||
for (int v66 = 0; v66 < 32; v66 += 1) { // L64
|
||||
for (int v67 = 0; v67 < 32; v67 += 1) { // L65
|
||||
v56[0][v65][v66][v67] = 0; // L66
|
||||
for (int v68 = 0; v68 < 3; v68 += 1) { // L67
|
||||
for (int v69 = 0; v69 < 3; v69 += 1) { // L68
|
||||
for (int v70 = 0; v70 < 3; v70 += 1) { // L69
|
||||
int8_t v71 = v57[0][v68][(v66 + v69)][(v67 + v70)]; // L70
|
||||
int8_t v72 = v1[v65][v68][v69][v70]; // L71
|
||||
int8_t v73 = v56[0][v65][v66][v67]; // L72
|
||||
int16_t v74 = v71; // L73
|
||||
int16_t v75 = v72; // L74
|
||||
int32_t v76 = v74 * v75; // L75
|
||||
int32_t v77 = v73; // L76
|
||||
int32_t v78 = v77 + v76; // L77
|
||||
int8_t v79 = v78; // L78
|
||||
v56[0][v65][v66][v67] = v79; // L79
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v80 = 0; v80 < 64; v80 += 1) { // L86
|
||||
for (int v81 = 0; v81 < 32; v81 += 1) { // L87
|
||||
for (int v82 = 0; v82 < 32; v82 += 1) { // L88
|
||||
int8_t v83 = v56[0][v80][v81][v82]; // L89
|
||||
bool v84 = v83 < 0; // L90
|
||||
int8_t v85 = v84 ? (int8_t)0 : (int8_t)v83; // L91
|
||||
v55[0][v80][v81][v82] = v85; // L92
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v86 = 0; v86 < 64; v86 += 1) { // L96
|
||||
for (int v87 = 0; v87 < 34; v87 += 1) { // L97
|
||||
for (int v88 = 0; v88 < 34; v88 += 1) { // L98
|
||||
v54[0][v86][v87][v88] = 0; // L99
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v89 = 0; v89 < 64; v89 += 1) { // L103
|
||||
for (int v90 = 0; v90 < 32; v90 += 1) { // L104
|
||||
for (int v91 = 0; v91 < 32; v91 += 1) { // L105
|
||||
int8_t v92 = v55[0][v89][v90][v91]; // L106
|
||||
v54[0][v89][(v90 + 1)][(v91 + 1)] = v92; // L107
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v93 = 0; v93 < 64; v93 += 1) { // L111
|
||||
for (int v94 = 0; v94 < 16; v94 += 1) { // L112
|
||||
for (int v95 = 0; v95 < 16; v95 += 1) { // L113
|
||||
v53[0][v93][v94][v95] = 0; // L114
|
||||
for (int v96 = 0; v96 < 64; v96 += 1) { // L115
|
||||
for (int v97 = 0; v97 < 3; v97 += 1) { // L116
|
||||
for (int v98 = 0; v98 < 3; v98 += 1) { // L117
|
||||
int8_t v99 = v54[0][v96][((v94 * 2) + v97)][((v95 * 2) + v98)]; // L118
|
||||
int8_t v100 = v2[v93][v96][v97][v98]; // L119
|
||||
int8_t v101 = v53[0][v93][v94][v95]; // L120
|
||||
int16_t v102 = v99; // L121
|
||||
int16_t v103 = v100; // L122
|
||||
int32_t v104 = v102 * v103; // L123
|
||||
int32_t v105 = v101; // L124
|
||||
int32_t v106 = v105 + v104; // L125
|
||||
int8_t v107 = v106; // L126
|
||||
v53[0][v93][v94][v95] = v107; // L127
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v108 = 0; v108 < 64; v108 += 1) { // L134
|
||||
for (int v109 = 0; v109 < 16; v109 += 1) { // L135
|
||||
for (int v110 = 0; v110 < 16; v110 += 1) { // L136
|
||||
int8_t v111 = v53[0][v108][v109][v110]; // L137
|
||||
bool v112 = v111 < 0; // L138
|
||||
int8_t v113 = v112 ? (int8_t)0 : (int8_t)v111; // L139
|
||||
v52[0][v108][v109][v110] = v113; // L140
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v114 = 0; v114 < 64; v114 += 1) { // L144
|
||||
for (int v115 = 0; v115 < 18; v115 += 1) { // L145
|
||||
for (int v116 = 0; v116 < 18; v116 += 1) { // L146
|
||||
v51[0][v114][v115][v116] = 0; // L147
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v117 = 0; v117 < 64; v117 += 1) { // L151
|
||||
for (int v118 = 0; v118 < 16; v118 += 1) { // L152
|
||||
for (int v119 = 0; v119 < 16; v119 += 1) { // L153
|
||||
int8_t v120 = v52[0][v117][v118][v119]; // L154
|
||||
v51[0][v117][(v118 + 1)][(v119 + 1)] = v120; // L155
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v121 = 0; v121 < 128; v121 += 1) { // L159
|
||||
for (int v122 = 0; v122 < 16; v122 += 1) { // L160
|
||||
for (int v123 = 0; v123 < 16; v123 += 1) { // L161
|
||||
v50[0][v121][v122][v123] = 0; // L162
|
||||
for (int v124 = 0; v124 < 64; v124 += 1) { // L163
|
||||
for (int v125 = 0; v125 < 3; v125 += 1) { // L164
|
||||
for (int v126 = 0; v126 < 3; v126 += 1) { // L165
|
||||
int8_t v127 = v51[0][v124][(v122 + v125)][(v123 + v126)]; // L166
|
||||
int8_t v128 = v3[v121][v124][v125][v126]; // L167
|
||||
int8_t v129 = v50[0][v121][v122][v123]; // L168
|
||||
int16_t v130 = v127; // L169
|
||||
int16_t v131 = v128; // L170
|
||||
int32_t v132 = v130 * v131; // L171
|
||||
int32_t v133 = v129; // L172
|
||||
int32_t v134 = v133 + v132; // L173
|
||||
int8_t v135 = v134; // L174
|
||||
v50[0][v121][v122][v123] = v135; // L175
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v136 = 0; v136 < 128; v136 += 1) { // L182
|
||||
for (int v137 = 0; v137 < 16; v137 += 1) { // L183
|
||||
for (int v138 = 0; v138 < 16; v138 += 1) { // L184
|
||||
int8_t v139 = v50[0][v136][v137][v138]; // L185
|
||||
bool v140 = v139 < 0; // L186
|
||||
int8_t v141 = v140 ? (int8_t)0 : (int8_t)v139; // L187
|
||||
v49[0][v136][v137][v138] = v141; // L188
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v142 = 0; v142 < 128; v142 += 1) { // L192
|
||||
for (int v143 = 0; v143 < 18; v143 += 1) { // L193
|
||||
for (int v144 = 0; v144 < 18; v144 += 1) { // L194
|
||||
v48[0][v142][v143][v144] = 0; // L195
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v145 = 0; v145 < 128; v145 += 1) { // L199
|
||||
for (int v146 = 0; v146 < 16; v146 += 1) { // L200
|
||||
for (int v147 = 0; v147 < 16; v147 += 1) { // L201
|
||||
int8_t v148 = v49[0][v145][v146][v147]; // L202
|
||||
v48[0][v145][(v146 + 1)][(v147 + 1)] = v148; // L203
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v149 = 0; v149 < 128; v149 += 1) { // L207
|
||||
for (int v150 = 0; v150 < 8; v150 += 1) { // L208
|
||||
for (int v151 = 0; v151 < 8; v151 += 1) { // L209
|
||||
v47[0][v149][v150][v151] = 0; // L210
|
||||
for (int v152 = 0; v152 < 128; v152 += 1) { // L211
|
||||
for (int v153 = 0; v153 < 3; v153 += 1) { // L212
|
||||
for (int v154 = 0; v154 < 3; v154 += 1) { // L213
|
||||
int8_t v155 = v48[0][v152][((v150 * 2) + v153)][((v151 * 2) + v154)]; // L214
|
||||
int8_t v156 = v4[v149][v152][v153][v154]; // L215
|
||||
int8_t v157 = v47[0][v149][v150][v151]; // L216
|
||||
int16_t v158 = v155; // L217
|
||||
int16_t v159 = v156; // L218
|
||||
int32_t v160 = v158 * v159; // L219
|
||||
int32_t v161 = v157; // L220
|
||||
int32_t v162 = v161 + v160; // L221
|
||||
int8_t v163 = v162; // L222
|
||||
v47[0][v149][v150][v151] = v163; // L223
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v164 = 0; v164 < 128; v164 += 1) { // L230
|
||||
for (int v165 = 0; v165 < 8; v165 += 1) { // L231
|
||||
for (int v166 = 0; v166 < 8; v166 += 1) { // L232
|
||||
int8_t v167 = v47[0][v164][v165][v166]; // L233
|
||||
bool v168 = v167 < 0; // L234
|
||||
int8_t v169 = v168 ? (int8_t)0 : (int8_t)v167; // L235
|
||||
v46[0][v164][v165][v166] = v169; // L236
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v170 = 0; v170 < 128; v170 += 1) { // L240
|
||||
for (int v171 = 0; v171 < 10; v171 += 1) { // L241
|
||||
for (int v172 = 0; v172 < 10; v172 += 1) { // L242
|
||||
v45[0][v170][v171][v172] = 0; // L243
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v173 = 0; v173 < 128; v173 += 1) { // L247
|
||||
for (int v174 = 0; v174 < 8; v174 += 1) { // L248
|
||||
for (int v175 = 0; v175 < 8; v175 += 1) { // L249
|
||||
int8_t v176 = v46[0][v173][v174][v175]; // L250
|
||||
v45[0][v173][(v174 + 1)][(v175 + 1)] = v176; // L251
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v177 = 0; v177 < 256; v177 += 1) { // L255
|
||||
for (int v178 = 0; v178 < 8; v178 += 1) { // L256
|
||||
for (int v179 = 0; v179 < 8; v179 += 1) { // L257
|
||||
v44[0][v177][v178][v179] = 0; // L258
|
||||
for (int v180 = 0; v180 < 128; v180 += 1) { // L259
|
||||
for (int v181 = 0; v181 < 3; v181 += 1) { // L260
|
||||
for (int v182 = 0; v182 < 3; v182 += 1) { // L261
|
||||
int8_t v183 = v45[0][v180][(v178 + v181)][(v179 + v182)]; // L262
|
||||
int8_t v184 = v5[v177][v180][v181][v182]; // L263
|
||||
int8_t v185 = v44[0][v177][v178][v179]; // L264
|
||||
int16_t v186 = v183; // L265
|
||||
int16_t v187 = v184; // L266
|
||||
int32_t v188 = v186 * v187; // L267
|
||||
int32_t v189 = v185; // L268
|
||||
int32_t v190 = v189 + v188; // L269
|
||||
int8_t v191 = v190; // L270
|
||||
v44[0][v177][v178][v179] = v191; // L271
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v192 = 0; v192 < 256; v192 += 1) { // L278
|
||||
for (int v193 = 0; v193 < 8; v193 += 1) { // L279
|
||||
for (int v194 = 0; v194 < 8; v194 += 1) { // L280
|
||||
int8_t v195 = v44[0][v192][v193][v194]; // L281
|
||||
bool v196 = v195 < 0; // L282
|
||||
int8_t v197 = v196 ? (int8_t)0 : (int8_t)v195; // L283
|
||||
v43[0][v192][v193][v194] = v197; // L284
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v198 = 0; v198 < 256; v198 += 1) { // L288
|
||||
for (int v199 = 0; v199 < 10; v199 += 1) { // L289
|
||||
for (int v200 = 0; v200 < 10; v200 += 1) { // L290
|
||||
v42[0][v198][v199][v200] = 0; // L291
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v201 = 0; v201 < 256; v201 += 1) { // L295
|
||||
for (int v202 = 0; v202 < 8; v202 += 1) { // L296
|
||||
for (int v203 = 0; v203 < 8; v203 += 1) { // L297
|
||||
int8_t v204 = v43[0][v201][v202][v203]; // L298
|
||||
v42[0][v201][(v202 + 1)][(v203 + 1)] = v204; // L299
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v205 = 0; v205 < 256; v205 += 1) { // L303
|
||||
for (int v206 = 0; v206 < 8; v206 += 1) { // L304
|
||||
for (int v207 = 0; v207 < 8; v207 += 1) { // L305
|
||||
v41[0][v205][v206][v207] = 0; // L306
|
||||
for (int v208 = 0; v208 < 256; v208 += 1) { // L307
|
||||
for (int v209 = 0; v209 < 3; v209 += 1) { // L308
|
||||
for (int v210 = 0; v210 < 3; v210 += 1) { // L309
|
||||
int8_t v211 = v42[0][v208][(v206 + v209)][(v207 + v210)]; // L310
|
||||
int8_t v212 = v6[v205][v208][v209][v210]; // L311
|
||||
int8_t v213 = v41[0][v205][v206][v207]; // L312
|
||||
int16_t v214 = v211; // L313
|
||||
int16_t v215 = v212; // L314
|
||||
int32_t v216 = v214 * v215; // L315
|
||||
int32_t v217 = v213; // L316
|
||||
int32_t v218 = v217 + v216; // L317
|
||||
int8_t v219 = v218; // L318
|
||||
v41[0][v205][v206][v207] = v219; // L319
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v220 = 0; v220 < 256; v220 += 1) { // L326
|
||||
for (int v221 = 0; v221 < 8; v221 += 1) { // L327
|
||||
for (int v222 = 0; v222 < 8; v222 += 1) { // L328
|
||||
int8_t v223 = v41[0][v220][v221][v222]; // L329
|
||||
bool v224 = v223 < 0; // L330
|
||||
int8_t v225 = v224 ? (int8_t)0 : (int8_t)v223; // L331
|
||||
v40[0][v220][v221][v222] = v225; // L332
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v226 = 0; v226 < 256; v226 += 1) { // L336
|
||||
for (int v227 = 0; v227 < 10; v227 += 1) { // L337
|
||||
for (int v228 = 0; v228 < 10; v228 += 1) { // L338
|
||||
v39[0][v226][v227][v228] = 0; // L339
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v229 = 0; v229 < 256; v229 += 1) { // L343
|
||||
for (int v230 = 0; v230 < 8; v230 += 1) { // L344
|
||||
for (int v231 = 0; v231 < 8; v231 += 1) { // L345
|
||||
int8_t v232 = v40[0][v229][v230][v231]; // L346
|
||||
v39[0][v229][(v230 + 1)][(v231 + 1)] = v232; // L347
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v233 = 0; v233 < 256; v233 += 1) { // L351
|
||||
for (int v234 = 0; v234 < 4; v234 += 1) { // L352
|
||||
for (int v235 = 0; v235 < 4; v235 += 1) { // L353
|
||||
v38[0][v233][v234][v235] = 0; // L354
|
||||
for (int v236 = 0; v236 < 256; v236 += 1) { // L355
|
||||
for (int v237 = 0; v237 < 3; v237 += 1) { // L356
|
||||
for (int v238 = 0; v238 < 3; v238 += 1) { // L357
|
||||
int8_t v239 = v39[0][v236][((v234 * 2) + v237)][((v235 * 2) + v238)]; // L358
|
||||
int8_t v240 = v7[v233][v236][v237][v238]; // L359
|
||||
int8_t v241 = v38[0][v233][v234][v235]; // L360
|
||||
int16_t v242 = v239; // L361
|
||||
int16_t v243 = v240; // L362
|
||||
int32_t v244 = v242 * v243; // L363
|
||||
int32_t v245 = v241; // L364
|
||||
int32_t v246 = v245 + v244; // L365
|
||||
int8_t v247 = v246; // L366
|
||||
v38[0][v233][v234][v235] = v247; // L367
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v248 = 0; v248 < 256; v248 += 1) { // L374
|
||||
for (int v249 = 0; v249 < 4; v249 += 1) { // L375
|
||||
for (int v250 = 0; v250 < 4; v250 += 1) { // L376
|
||||
int8_t v251 = v38[0][v248][v249][v250]; // L377
|
||||
bool v252 = v251 < 0; // L378
|
||||
int8_t v253 = v252 ? (int8_t)0 : (int8_t)v251; // L379
|
||||
v37[0][v248][v249][v250] = v253; // L380
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v254 = 0; v254 < 256; v254 += 1) { // L384
|
||||
for (int v255 = 0; v255 < 6; v255 += 1) { // L385
|
||||
for (int v256 = 0; v256 < 6; v256 += 1) { // L386
|
||||
v36[0][v254][v255][v256] = 0; // L387
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v257 = 0; v257 < 256; v257 += 1) { // L391
|
||||
for (int v258 = 0; v258 < 4; v258 += 1) { // L392
|
||||
for (int v259 = 0; v259 < 4; v259 += 1) { // L393
|
||||
int8_t v260 = v37[0][v257][v258][v259]; // L394
|
||||
v36[0][v257][(v258 + 1)][(v259 + 1)] = v260; // L395
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v261 = 0; v261 < 512; v261 += 1) { // L399
|
||||
for (int v262 = 0; v262 < 4; v262 += 1) { // L400
|
||||
for (int v263 = 0; v263 < 4; v263 += 1) { // L401
|
||||
v35[0][v261][v262][v263] = 0; // L402
|
||||
for (int v264 = 0; v264 < 256; v264 += 1) { // L403
|
||||
for (int v265 = 0; v265 < 3; v265 += 1) { // L404
|
||||
for (int v266 = 0; v266 < 3; v266 += 1) { // L405
|
||||
int8_t v267 = v36[0][v264][(v262 + v265)][(v263 + v266)]; // L406
|
||||
int8_t v268 = v8[v261][v264][v265][v266]; // L407
|
||||
int8_t v269 = v35[0][v261][v262][v263]; // L408
|
||||
int16_t v270 = v267; // L409
|
||||
int16_t v271 = v268; // L410
|
||||
int32_t v272 = v270 * v271; // L411
|
||||
int32_t v273 = v269; // L412
|
||||
int32_t v274 = v273 + v272; // L413
|
||||
int8_t v275 = v274; // L414
|
||||
v35[0][v261][v262][v263] = v275; // L415
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v276 = 0; v276 < 512; v276 += 1) { // L422
|
||||
for (int v277 = 0; v277 < 4; v277 += 1) { // L423
|
||||
for (int v278 = 0; v278 < 4; v278 += 1) { // L424
|
||||
int8_t v279 = v35[0][v276][v277][v278]; // L425
|
||||
bool v280 = v279 < 0; // L426
|
||||
int8_t v281 = v280 ? (int8_t)0 : (int8_t)v279; // L427
|
||||
v34[0][v276][v277][v278] = v281; // L428
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v282 = 0; v282 < 512; v282 += 1) { // L432
|
||||
for (int v283 = 0; v283 < 6; v283 += 1) { // L433
|
||||
for (int v284 = 0; v284 < 6; v284 += 1) { // L434
|
||||
v33[0][v282][v283][v284] = 0; // L435
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v285 = 0; v285 < 512; v285 += 1) { // L439
|
||||
for (int v286 = 0; v286 < 4; v286 += 1) { // L440
|
||||
for (int v287 = 0; v287 < 4; v287 += 1) { // L441
|
||||
int8_t v288 = v34[0][v285][v286][v287]; // L442
|
||||
v33[0][v285][(v286 + 1)][(v287 + 1)] = v288; // L443
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v289 = 0; v289 < 512; v289 += 1) { // L447
|
||||
for (int v290 = 0; v290 < 4; v290 += 1) { // L448
|
||||
for (int v291 = 0; v291 < 4; v291 += 1) { // L449
|
||||
v32[0][v289][v290][v291] = 0; // L450
|
||||
for (int v292 = 0; v292 < 512; v292 += 1) { // L451
|
||||
for (int v293 = 0; v293 < 3; v293 += 1) { // L452
|
||||
for (int v294 = 0; v294 < 3; v294 += 1) { // L453
|
||||
int8_t v295 = v33[0][v292][(v290 + v293)][(v291 + v294)]; // L454
|
||||
int8_t v296 = v9[v289][v292][v293][v294]; // L455
|
||||
int8_t v297 = v32[0][v289][v290][v291]; // L456
|
||||
int16_t v298 = v295; // L457
|
||||
int16_t v299 = v296; // L458
|
||||
int32_t v300 = v298 * v299; // L459
|
||||
int32_t v301 = v297; // L460
|
||||
int32_t v302 = v301 + v300; // L461
|
||||
int8_t v303 = v302; // L462
|
||||
v32[0][v289][v290][v291] = v303; // L463
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v304 = 0; v304 < 512; v304 += 1) { // L470
|
||||
for (int v305 = 0; v305 < 4; v305 += 1) { // L471
|
||||
for (int v306 = 0; v306 < 4; v306 += 1) { // L472
|
||||
int8_t v307 = v32[0][v304][v305][v306]; // L473
|
||||
bool v308 = v307 < 0; // L474
|
||||
int8_t v309 = v308 ? (int8_t)0 : (int8_t)v307; // L475
|
||||
v31[0][v304][v305][v306] = v309; // L476
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v310 = 0; v310 < 512; v310 += 1) { // L480
|
||||
for (int v311 = 0; v311 < 6; v311 += 1) { // L481
|
||||
for (int v312 = 0; v312 < 6; v312 += 1) { // L482
|
||||
v30[0][v310][v311][v312] = 0; // L483
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v313 = 0; v313 < 512; v313 += 1) { // L487
|
||||
for (int v314 = 0; v314 < 4; v314 += 1) { // L488
|
||||
for (int v315 = 0; v315 < 4; v315 += 1) { // L489
|
||||
int8_t v316 = v31[0][v313][v314][v315]; // L490
|
||||
v30[0][v313][(v314 + 1)][(v315 + 1)] = v316; // L491
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v317 = 0; v317 < 512; v317 += 1) { // L495
|
||||
for (int v318 = 0; v318 < 2; v318 += 1) { // L496
|
||||
for (int v319 = 0; v319 < 2; v319 += 1) { // L497
|
||||
v29[0][v317][v318][v319] = 0; // L498
|
||||
for (int v320 = 0; v320 < 512; v320 += 1) { // L499
|
||||
for (int v321 = 0; v321 < 3; v321 += 1) { // L500
|
||||
for (int v322 = 0; v322 < 3; v322 += 1) { // L501
|
||||
int8_t v323 = v30[0][v320][((v318 * 2) + v321)][((v319 * 2) + v322)]; // L502
|
||||
int8_t v324 = v10[v317][v320][v321][v322]; // L503
|
||||
int8_t v325 = v29[0][v317][v318][v319]; // L504
|
||||
int16_t v326 = v323; // L505
|
||||
int16_t v327 = v324; // L506
|
||||
int32_t v328 = v326 * v327; // L507
|
||||
int32_t v329 = v325; // L508
|
||||
int32_t v330 = v329 + v328; // L509
|
||||
int8_t v331 = v330; // L510
|
||||
v29[0][v317][v318][v319] = v331; // L511
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v332 = 0; v332 < 512; v332 += 1) { // L518
|
||||
for (int v333 = 0; v333 < 2; v333 += 1) { // L519
|
||||
for (int v334 = 0; v334 < 2; v334 += 1) { // L520
|
||||
int8_t v335 = v29[0][v332][v333][v334]; // L521
|
||||
bool v336 = v335 < 0; // L522
|
||||
int8_t v337 = v336 ? (int8_t)0 : (int8_t)v335; // L523
|
||||
v28[0][v332][v333][v334] = v337; // L524
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v338 = 0; v338 < 512; v338 += 1) { // L528
|
||||
for (int v339 = 0; v339 < 4; v339 += 1) { // L529
|
||||
for (int v340 = 0; v340 < 4; v340 += 1) { // L530
|
||||
v27[0][v338][v339][v340] = 0; // L531
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v341 = 0; v341 < 512; v341 += 1) { // L535
|
||||
for (int v342 = 0; v342 < 2; v342 += 1) { // L536
|
||||
for (int v343 = 0; v343 < 2; v343 += 1) { // L537
|
||||
int8_t v344 = v28[0][v341][v342][v343]; // L538
|
||||
v27[0][v341][(v342 + 1)][(v343 + 1)] = v344; // L539
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v345 = 0; v345 < 512; v345 += 1) { // L543
|
||||
for (int v346 = 0; v346 < 2; v346 += 1) { // L544
|
||||
for (int v347 = 0; v347 < 2; v347 += 1) { // L545
|
||||
v26[0][v345][v346][v347] = 0; // L546
|
||||
for (int v348 = 0; v348 < 512; v348 += 1) { // L547
|
||||
for (int v349 = 0; v349 < 3; v349 += 1) { // L548
|
||||
for (int v350 = 0; v350 < 3; v350 += 1) { // L549
|
||||
int8_t v351 = v27[0][v348][(v346 + v349)][(v347 + v350)]; // L550
|
||||
int8_t v352 = v11[v345][v348][v349][v350]; // L551
|
||||
int8_t v353 = v26[0][v345][v346][v347]; // L552
|
||||
int16_t v354 = v351; // L553
|
||||
int16_t v355 = v352; // L554
|
||||
int32_t v356 = v354 * v355; // L555
|
||||
int32_t v357 = v353; // L556
|
||||
int32_t v358 = v357 + v356; // L557
|
||||
int8_t v359 = v358; // L558
|
||||
v26[0][v345][v346][v347] = v359; // L559
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v360 = 0; v360 < 512; v360 += 1) { // L566
|
||||
for (int v361 = 0; v361 < 2; v361 += 1) { // L567
|
||||
for (int v362 = 0; v362 < 2; v362 += 1) { // L568
|
||||
int8_t v363 = v26[0][v360][v361][v362]; // L569
|
||||
bool v364 = v363 < 0; // L570
|
||||
int8_t v365 = v364 ? (int8_t)0 : (int8_t)v363; // L571
|
||||
v25[0][v360][v361][v362] = v365; // L572
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v366 = 0; v366 < 512; v366 += 1) { // L576
|
||||
for (int v367 = 0; v367 < 4; v367 += 1) { // L577
|
||||
for (int v368 = 0; v368 < 4; v368 += 1) { // L578
|
||||
v24[0][v366][v367][v368] = 0; // L579
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v369 = 0; v369 < 512; v369 += 1) { // L583
|
||||
for (int v370 = 0; v370 < 2; v370 += 1) { // L584
|
||||
for (int v371 = 0; v371 < 2; v371 += 1) { // L585
|
||||
int8_t v372 = v25[0][v369][v370][v371]; // L586
|
||||
v24[0][v369][(v370 + 1)][(v371 + 1)] = v372; // L587
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v373 = 0; v373 < 512; v373 += 1) { // L591
|
||||
for (int v374 = 0; v374 < 2; v374 += 1) { // L592
|
||||
for (int v375 = 0; v375 < 2; v375 += 1) { // L593
|
||||
v23[0][v373][v374][v375] = 0; // L594
|
||||
for (int v376 = 0; v376 < 512; v376 += 1) { // L595
|
||||
for (int v377 = 0; v377 < 3; v377 += 1) { // L596
|
||||
for (int v378 = 0; v378 < 3; v378 += 1) { // L597
|
||||
int8_t v379 = v24[0][v376][(v374 + v377)][(v375 + v378)]; // L598
|
||||
int8_t v380 = v12[v373][v376][v377][v378]; // L599
|
||||
int8_t v381 = v23[0][v373][v374][v375]; // L600
|
||||
int16_t v382 = v379; // L601
|
||||
int16_t v383 = v380; // L602
|
||||
int32_t v384 = v382 * v383; // L603
|
||||
int32_t v385 = v381; // L604
|
||||
int32_t v386 = v385 + v384; // L605
|
||||
int8_t v387 = v386; // L606
|
||||
v23[0][v373][v374][v375] = v387; // L607
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v388 = 0; v388 < 512; v388 += 1) { // L614
|
||||
for (int v389 = 0; v389 < 2; v389 += 1) { // L615
|
||||
for (int v390 = 0; v390 < 2; v390 += 1) { // L616
|
||||
int8_t v391 = v23[0][v388][v389][v390]; // L617
|
||||
bool v392 = v391 < 0; // L618
|
||||
int8_t v393 = v392 ? (int8_t)0 : (int8_t)v391; // L619
|
||||
v22[0][v388][v389][v390] = v393; // L620
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v394 = 0; v394 < 512; v394 += 1) { // L624
|
||||
for (int v395 = 0; v395 < 4; v395 += 1) { // L625
|
||||
for (int v396 = 0; v396 < 4; v396 += 1) { // L626
|
||||
v21[0][v394][v395][v396] = 0; // L627
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v397 = 0; v397 < 512; v397 += 1) { // L631
|
||||
for (int v398 = 0; v398 < 2; v398 += 1) { // L632
|
||||
for (int v399 = 0; v399 < 2; v399 += 1) { // L633
|
||||
int8_t v400 = v22[0][v397][v398][v399]; // L634
|
||||
v21[0][v397][(v398 + 1)][(v399 + 1)] = v400; // L635
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v401 = 0; v401 < 512; v401 += 1) { // L639
|
||||
v20[0][v401][0][0] = 0; // L640
|
||||
for (int v402 = 0; v402 < 512; v402 += 1) { // L641
|
||||
for (int v403 = 0; v403 < 3; v403 += 1) { // L642
|
||||
for (int v404 = 0; v404 < 3; v404 += 1) { // L643
|
||||
int8_t v405 = v21[0][v402][v403][v404]; // L644
|
||||
int8_t v406 = v13[v401][v402][v403][v404]; // L645
|
||||
int8_t v407 = v20[0][v401][0][0]; // L646
|
||||
int16_t v408 = v405; // L647
|
||||
int16_t v409 = v406; // L648
|
||||
int32_t v410 = v408 * v409; // L649
|
||||
int32_t v411 = v407; // L650
|
||||
int32_t v412 = v411 + v410; // L651
|
||||
int8_t v413 = v412; // L652
|
||||
v20[0][v401][0][0] = v413; // L653
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int v414 = 0; v414 < 512; v414 += 1) { // L658
|
||||
int8_t v415 = v20[0][v414][0][0]; // L659
|
||||
bool v416 = v415 < 0; // L660
|
||||
int8_t v417 = v416 ? (int8_t)0 : (int8_t)v415; // L661
|
||||
v19[0][v414][0][0] = v417; // L662
|
||||
}
|
||||
for (int v418 = 0; v418 < 512; v418 += 1) { // L664
|
||||
v18[0][v418][0][0] = 0; // L665
|
||||
}
|
||||
for (int v419 = 0; v419 < 512; v419 += 1) { // L667
|
||||
int8_t v420 = v19[0][v419][0][0]; // L668
|
||||
int8_t v421 = v18[0][v419][0][0]; // L669
|
||||
int32_t v422 = v421; // L670
|
||||
int32_t v423 = v420; // L671
|
||||
int32_t v424 = v422 + v423; // L672
|
||||
int8_t v425 = v424; // L673
|
||||
v18[0][v419][0][0] = v425; // L674
|
||||
}
|
||||
for (int v426 = 0; v426 < 512; v426 += 1) { // L676
|
||||
int8_t v427 = v18[0][v426][0][0]; // L677
|
||||
v18[0][v426][0][0] = v427; // L678
|
||||
}
|
||||
for (int v428 = 0; v428 < 512; v428 += 1) { // L680
|
||||
int8_t v429 = v18[0][v428][0][0]; // L681
|
||||
v17[0][v428] = v429; // L682
|
||||
}
|
||||
#pragma HLS resource variable=v16 core=ram_s2p_bram
|
||||
|
||||
for (int v431 = 0; v431 < 10; v431 += 1) { // L685
|
||||
v15[0][v431] = 0; // L686
|
||||
for (int v432 = 0; v432 < 512; v432 += 1) { // L687
|
||||
int8_t v433 = v17[0][v432]; // L688
|
||||
int8_t v434 = v14[v431][v432]; // L689
|
||||
int8_t v435 = v15[0][v431]; // L690
|
||||
int16_t v436 = v433; // L691
|
||||
int16_t v437 = v434; // L692
|
||||
int32_t v438 = v436 * v437; // L693
|
||||
int32_t v439 = v435; // L694
|
||||
int32_t v440 = v439 + v438; // L695
|
||||
int8_t v441 = v440; // L696
|
||||
v15[0][v431] = v441; // L697
|
||||
}
|
||||
int8_t v442 = v15[0][v431]; // L699
|
||||
int16_t v443 = 1; // L700
|
||||
int16_t v444 = v442; // L701
|
||||
int32_t v445 = v443 * v444; // L702
|
||||
int8_t v446 = v16[v431]; // L703
|
||||
int16_t v447 = 1; // L704
|
||||
int16_t v448 = v446; // L705
|
||||
int32_t v449 = v447 * v448; // L706
|
||||
int32_t v450 = v445 + v449; // L707
|
||||
int8_t v451 = v450; // L708
|
||||
v15[0][v431] = v451; // L709
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,62 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=201334786
|
||||
/// DSP=10
|
||||
void bicg_4096(
|
||||
float v0[4096][4096],
|
||||
float v1[4096],
|
||||
float v2[4096],
|
||||
float v3[4096],
|
||||
float v4[4096]
|
||||
) { // L2
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface bram port=v0
|
||||
#pragma HLS interface bram port=v1
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
|
||||
#pragma HLS resource variable=v0 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v1 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
for (int v5 = 0; v5 < 4096; v5 += 1) { // L3, S[0,201334786), latency=49154
|
||||
for (int v6 = 0; v6 < 4096; v6 += 1) { // L4, S[0,49154), latency=12
|
||||
float v7 = v1[v6]; // L5, S[4,6)
|
||||
float v8 = v4[v5]; // L6, S[0,2)
|
||||
float v9 = v0[v5][v6]; // L7, S[0,2)
|
||||
float v10 = v8 * v9; // L8, S[2,6)
|
||||
float v11 = v7 + v10; // L9, S[6,11)
|
||||
v1[v6] = v11; // L10, S[11,12)
|
||||
float v12 = v2[v5]; // L11, S[4,6)
|
||||
float v13 = v3[v6]; // L12, S[0,2)
|
||||
float v14 = v9 * v13; // L13, S[2,6)
|
||||
float v15 = v12 + v14; // L14, S[6,11)
|
||||
v2[v5] = v15; // L15, S[11,12)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,770 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=8519704
|
||||
/// DSP=19
|
||||
void bicg_4096(
|
||||
float v0[4096][4096],
|
||||
float v1[4096],
|
||||
float v2[4096],
|
||||
float v3[4096],
|
||||
float v4[4096]
|
||||
) { // L1
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface bram port=v0
|
||||
#pragma HLS interface bram port=v1
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
|
||||
#pragma HLS array_partition variable=v0 cyclic factor=8 dim=1
|
||||
#pragma HLS array_partition variable=v0 cyclic factor=16 dim=2
|
||||
#pragma HLS resource variable=v0 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v1 cyclic factor=16 dim=1
|
||||
#pragma HLS resource variable=v1 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v2 cyclic factor=8 dim=1
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v3 cyclic factor=16 dim=1
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v4 cyclic factor=8 dim=1
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
for (int v5 = 0; v5 < 4096; v5 += 16) { // L2
|
||||
for (int v6 = 0; v6 < 4096; v6 += 8) { // L3
|
||||
#pragma HLS pipeline II=43
|
||||
float v7 = v1[v5]; // L4, S[12,12)
|
||||
float v8 = v4[v6]; // L5, S[12,12)
|
||||
float v9 = v0[v6][v5]; // L6, S[12,12)
|
||||
float v10 = v8 * v9; // L7, S[12,12)
|
||||
float v11 = v7 + v10; // L8, S[12,12)
|
||||
float v12 = v2[v6]; // L9, S[12,12)
|
||||
float v13 = v3[v5]; // L10, S[12,12)
|
||||
float v14 = v9 * v13; // L11, S[12,12)
|
||||
float v15 = v12 + v14; // L12, S[12,12)
|
||||
float v16 = v4[(v6 + 1)]; // L13
|
||||
float v17 = v0[(v6 + 1)][v5]; // L14
|
||||
float v18 = v16 * v17; // L15, S[12,12)
|
||||
float v19 = v11 + v18; // L16, S[12,12)
|
||||
float v20 = v2[(v6 + 1)]; // L17
|
||||
float v21 = v17 * v13; // L18, S[12,12)
|
||||
float v22 = v20 + v21; // L19, S[12,12)
|
||||
float v23 = v4[(v6 + 2)]; // L20
|
||||
float v24 = v0[(v6 + 2)][v5]; // L21
|
||||
float v25 = v23 * v24; // L22, S[12,12)
|
||||
float v26 = v19 + v25; // L23, S[12,12)
|
||||
float v27 = v2[(v6 + 2)]; // L24
|
||||
float v28 = v24 * v13; // L25, S[12,12)
|
||||
float v29 = v27 + v28; // L26, S[12,12)
|
||||
float v30 = v4[(v6 + 3)]; // L27
|
||||
float v31 = v0[(v6 + 3)][v5]; // L28
|
||||
float v32 = v30 * v31; // L29, S[12,12)
|
||||
float v33 = v26 + v32; // L30, S[12,12)
|
||||
float v34 = v2[(v6 + 3)]; // L31
|
||||
float v35 = v31 * v13; // L32, S[12,12)
|
||||
float v36 = v34 + v35; // L33, S[12,12)
|
||||
float v37 = v4[(v6 + 4)]; // L34
|
||||
float v38 = v0[(v6 + 4)][v5]; // L35
|
||||
float v39 = v37 * v38; // L36, S[12,12)
|
||||
float v40 = v33 + v39; // L37, S[12,12)
|
||||
float v41 = v2[(v6 + 4)]; // L38
|
||||
float v42 = v38 * v13; // L39, S[12,12)
|
||||
float v43 = v41 + v42; // L40, S[12,12)
|
||||
float v44 = v4[(v6 + 5)]; // L41
|
||||
float v45 = v0[(v6 + 5)][v5]; // L42
|
||||
float v46 = v44 * v45; // L43, S[12,12)
|
||||
float v47 = v40 + v46; // L44, S[12,12)
|
||||
float v48 = v2[(v6 + 5)]; // L45
|
||||
float v49 = v45 * v13; // L46, S[12,12)
|
||||
float v50 = v48 + v49; // L47, S[12,12)
|
||||
float v51 = v4[(v6 + 6)]; // L48
|
||||
float v52 = v0[(v6 + 6)][v5]; // L49
|
||||
float v53 = v51 * v52; // L50, S[12,12)
|
||||
float v54 = v47 + v53; // L51, S[12,12)
|
||||
float v55 = v2[(v6 + 6)]; // L52
|
||||
float v56 = v52 * v13; // L53, S[12,12)
|
||||
float v57 = v55 + v56; // L54, S[12,12)
|
||||
float v58 = v4[(v6 + 7)]; // L55
|
||||
float v59 = v0[(v6 + 7)][v5]; // L56
|
||||
float v60 = v58 * v59; // L57, S[12,12)
|
||||
float v61 = v54 + v60; // L58, S[12,12)
|
||||
v1[v5] = v61; // L59, S[12,12)
|
||||
float v62 = v2[(v6 + 7)]; // L60
|
||||
float v63 = v59 * v13; // L61, S[12,12)
|
||||
float v64 = v62 + v63; // L62, S[12,12)
|
||||
float v65 = v1[(v5 + 1)]; // L63
|
||||
float v66 = v0[v6][(v5 + 1)]; // L64
|
||||
float v67 = v8 * v66; // L65, S[12,12)
|
||||
float v68 = v65 + v67; // L66, S[12,12)
|
||||
float v69 = v3[(v5 + 1)]; // L67
|
||||
float v70 = v66 * v69; // L68, S[12,12)
|
||||
float v71 = v15 + v70; // L69, S[12,12)
|
||||
float v72 = v0[(v6 + 1)][(v5 + 1)]; // L70
|
||||
float v73 = v16 * v72; // L71, S[12,12)
|
||||
float v74 = v68 + v73; // L72, S[12,12)
|
||||
float v75 = v72 * v69; // L73, S[12,12)
|
||||
float v76 = v22 + v75; // L74, S[12,12)
|
||||
float v77 = v0[(v6 + 2)][(v5 + 1)]; // L75
|
||||
float v78 = v23 * v77; // L76, S[12,12)
|
||||
float v79 = v74 + v78; // L77, S[12,12)
|
||||
float v80 = v77 * v69; // L78, S[12,12)
|
||||
float v81 = v29 + v80; // L79, S[12,12)
|
||||
float v82 = v0[(v6 + 3)][(v5 + 1)]; // L80
|
||||
float v83 = v30 * v82; // L81, S[12,12)
|
||||
float v84 = v79 + v83; // L82, S[12,12)
|
||||
float v85 = v82 * v69; // L83, S[12,12)
|
||||
float v86 = v36 + v85; // L84, S[12,12)
|
||||
float v87 = v0[(v6 + 4)][(v5 + 1)]; // L85
|
||||
float v88 = v37 * v87; // L86, S[12,12)
|
||||
float v89 = v84 + v88; // L87, S[12,12)
|
||||
float v90 = v87 * v69; // L88, S[12,12)
|
||||
float v91 = v43 + v90; // L89, S[12,12)
|
||||
float v92 = v0[(v6 + 5)][(v5 + 1)]; // L90
|
||||
float v93 = v44 * v92; // L91, S[12,12)
|
||||
float v94 = v89 + v93; // L92, S[12,12)
|
||||
float v95 = v92 * v69; // L93, S[12,12)
|
||||
float v96 = v50 + v95; // L94, S[12,12)
|
||||
float v97 = v0[(v6 + 6)][(v5 + 1)]; // L95
|
||||
float v98 = v51 * v97; // L96, S[12,12)
|
||||
float v99 = v94 + v98; // L97, S[12,12)
|
||||
float v100 = v97 * v69; // L98, S[12,12)
|
||||
float v101 = v57 + v100; // L99, S[12,12)
|
||||
float v102 = v0[(v6 + 7)][(v5 + 1)]; // L100
|
||||
float v103 = v58 * v102; // L101, S[12,12)
|
||||
float v104 = v99 + v103; // L102, S[12,12)
|
||||
v1[(v5 + 1)] = v104; // L103
|
||||
float v105 = v102 * v69; // L104, S[12,12)
|
||||
float v106 = v64 + v105; // L105, S[12,12)
|
||||
float v107 = v1[(v5 + 2)]; // L106
|
||||
float v108 = v0[v6][(v5 + 2)]; // L107
|
||||
float v109 = v8 * v108; // L108, S[12,12)
|
||||
float v110 = v107 + v109; // L109, S[12,12)
|
||||
float v111 = v3[(v5 + 2)]; // L110
|
||||
float v112 = v108 * v111; // L111, S[12,12)
|
||||
float v113 = v71 + v112; // L112, S[12,12)
|
||||
float v114 = v0[(v6 + 1)][(v5 + 2)]; // L113
|
||||
float v115 = v16 * v114; // L114, S[12,12)
|
||||
float v116 = v110 + v115; // L115, S[12,12)
|
||||
float v117 = v114 * v111; // L116, S[12,12)
|
||||
float v118 = v76 + v117; // L117, S[12,12)
|
||||
float v119 = v0[(v6 + 2)][(v5 + 2)]; // L118
|
||||
float v120 = v23 * v119; // L119, S[12,12)
|
||||
float v121 = v116 + v120; // L120, S[12,12)
|
||||
float v122 = v119 * v111; // L121, S[12,12)
|
||||
float v123 = v81 + v122; // L122, S[12,12)
|
||||
float v124 = v0[(v6 + 3)][(v5 + 2)]; // L123
|
||||
float v125 = v30 * v124; // L124, S[12,12)
|
||||
float v126 = v121 + v125; // L125, S[12,12)
|
||||
float v127 = v124 * v111; // L126, S[12,12)
|
||||
float v128 = v86 + v127; // L127, S[12,12)
|
||||
float v129 = v0[(v6 + 4)][(v5 + 2)]; // L128
|
||||
float v130 = v37 * v129; // L129, S[12,12)
|
||||
float v131 = v126 + v130; // L130, S[12,12)
|
||||
float v132 = v129 * v111; // L131, S[12,12)
|
||||
float v133 = v91 + v132; // L132, S[12,12)
|
||||
float v134 = v0[(v6 + 5)][(v5 + 2)]; // L133
|
||||
float v135 = v44 * v134; // L134, S[12,12)
|
||||
float v136 = v131 + v135; // L135, S[12,12)
|
||||
float v137 = v134 * v111; // L136, S[12,12)
|
||||
float v138 = v96 + v137; // L137, S[12,12)
|
||||
float v139 = v0[(v6 + 6)][(v5 + 2)]; // L138
|
||||
float v140 = v51 * v139; // L139, S[12,12)
|
||||
float v141 = v136 + v140; // L140, S[12,12)
|
||||
float v142 = v139 * v111; // L141, S[12,12)
|
||||
float v143 = v101 + v142; // L142, S[12,12)
|
||||
float v144 = v0[(v6 + 7)][(v5 + 2)]; // L143
|
||||
float v145 = v58 * v144; // L144, S[12,12)
|
||||
float v146 = v141 + v145; // L145, S[12,12)
|
||||
v1[(v5 + 2)] = v146; // L146
|
||||
float v147 = v144 * v111; // L147, S[12,12)
|
||||
float v148 = v106 + v147; // L148, S[12,12)
|
||||
float v149 = v1[(v5 + 3)]; // L149
|
||||
float v150 = v0[v6][(v5 + 3)]; // L150
|
||||
float v151 = v8 * v150; // L151, S[12,12)
|
||||
float v152 = v149 + v151; // L152, S[12,12)
|
||||
float v153 = v3[(v5 + 3)]; // L153
|
||||
float v154 = v150 * v153; // L154, S[12,12)
|
||||
float v155 = v113 + v154; // L155, S[12,12)
|
||||
float v156 = v0[(v6 + 1)][(v5 + 3)]; // L156
|
||||
float v157 = v16 * v156; // L157, S[12,12)
|
||||
float v158 = v152 + v157; // L158, S[12,12)
|
||||
float v159 = v156 * v153; // L159, S[12,12)
|
||||
float v160 = v118 + v159; // L160, S[12,12)
|
||||
float v161 = v0[(v6 + 2)][(v5 + 3)]; // L161
|
||||
float v162 = v23 * v161; // L162, S[12,12)
|
||||
float v163 = v158 + v162; // L163, S[12,12)
|
||||
float v164 = v161 * v153; // L164, S[12,12)
|
||||
float v165 = v123 + v164; // L165, S[12,12)
|
||||
float v166 = v0[(v6 + 3)][(v5 + 3)]; // L166
|
||||
float v167 = v30 * v166; // L167, S[12,12)
|
||||
float v168 = v163 + v167; // L168, S[12,12)
|
||||
float v169 = v166 * v153; // L169, S[12,12)
|
||||
float v170 = v128 + v169; // L170, S[12,12)
|
||||
float v171 = v0[(v6 + 4)][(v5 + 3)]; // L171
|
||||
float v172 = v37 * v171; // L172, S[12,12)
|
||||
float v173 = v168 + v172; // L173, S[12,12)
|
||||
float v174 = v171 * v153; // L174, S[12,12)
|
||||
float v175 = v133 + v174; // L175, S[12,12)
|
||||
float v176 = v0[(v6 + 5)][(v5 + 3)]; // L176
|
||||
float v177 = v44 * v176; // L177, S[12,12)
|
||||
float v178 = v173 + v177; // L178, S[12,12)
|
||||
float v179 = v176 * v153; // L179, S[12,12)
|
||||
float v180 = v138 + v179; // L180, S[12,12)
|
||||
float v181 = v0[(v6 + 6)][(v5 + 3)]; // L181
|
||||
float v182 = v51 * v181; // L182, S[12,12)
|
||||
float v183 = v178 + v182; // L183, S[12,12)
|
||||
float v184 = v181 * v153; // L184, S[12,12)
|
||||
float v185 = v143 + v184; // L185, S[12,12)
|
||||
float v186 = v0[(v6 + 7)][(v5 + 3)]; // L186
|
||||
float v187 = v58 * v186; // L187, S[12,12)
|
||||
float v188 = v183 + v187; // L188, S[12,12)
|
||||
v1[(v5 + 3)] = v188; // L189
|
||||
float v189 = v186 * v153; // L190, S[12,12)
|
||||
float v190 = v148 + v189; // L191, S[12,12)
|
||||
float v191 = v1[(v5 + 4)]; // L192
|
||||
float v192 = v0[v6][(v5 + 4)]; // L193
|
||||
float v193 = v8 * v192; // L194, S[12,12)
|
||||
float v194 = v191 + v193; // L195, S[12,12)
|
||||
float v195 = v3[(v5 + 4)]; // L196
|
||||
float v196 = v192 * v195; // L197, S[12,12)
|
||||
float v197 = v155 + v196; // L198, S[12,12)
|
||||
float v198 = v0[(v6 + 1)][(v5 + 4)]; // L199
|
||||
float v199 = v16 * v198; // L200, S[12,12)
|
||||
float v200 = v194 + v199; // L201, S[12,12)
|
||||
float v201 = v198 * v195; // L202, S[12,12)
|
||||
float v202 = v160 + v201; // L203, S[12,12)
|
||||
float v203 = v0[(v6 + 2)][(v5 + 4)]; // L204
|
||||
float v204 = v23 * v203; // L205, S[12,12)
|
||||
float v205 = v200 + v204; // L206, S[12,12)
|
||||
float v206 = v203 * v195; // L207, S[12,12)
|
||||
float v207 = v165 + v206; // L208, S[12,12)
|
||||
float v208 = v0[(v6 + 3)][(v5 + 4)]; // L209
|
||||
float v209 = v30 * v208; // L210, S[12,12)
|
||||
float v210 = v205 + v209; // L211, S[12,12)
|
||||
float v211 = v208 * v195; // L212, S[12,12)
|
||||
float v212 = v170 + v211; // L213, S[12,12)
|
||||
float v213 = v0[(v6 + 4)][(v5 + 4)]; // L214
|
||||
float v214 = v37 * v213; // L215, S[12,12)
|
||||
float v215 = v210 + v214; // L216, S[12,12)
|
||||
float v216 = v213 * v195; // L217, S[12,12)
|
||||
float v217 = v175 + v216; // L218, S[12,12)
|
||||
float v218 = v0[(v6 + 5)][(v5 + 4)]; // L219
|
||||
float v219 = v44 * v218; // L220, S[12,12)
|
||||
float v220 = v215 + v219; // L221, S[12,12)
|
||||
float v221 = v218 * v195; // L222, S[12,12)
|
||||
float v222 = v180 + v221; // L223, S[12,12)
|
||||
float v223 = v0[(v6 + 6)][(v5 + 4)]; // L224
|
||||
float v224 = v51 * v223; // L225, S[12,12)
|
||||
float v225 = v220 + v224; // L226, S[12,12)
|
||||
float v226 = v223 * v195; // L227, S[12,12)
|
||||
float v227 = v185 + v226; // L228, S[12,12)
|
||||
float v228 = v0[(v6 + 7)][(v5 + 4)]; // L229
|
||||
float v229 = v58 * v228; // L230, S[12,12)
|
||||
float v230 = v225 + v229; // L231, S[12,12)
|
||||
v1[(v5 + 4)] = v230; // L232
|
||||
float v231 = v228 * v195; // L233, S[12,12)
|
||||
float v232 = v190 + v231; // L234, S[12,12)
|
||||
float v233 = v1[(v5 + 5)]; // L235
|
||||
float v234 = v0[v6][(v5 + 5)]; // L236
|
||||
float v235 = v8 * v234; // L237, S[12,12)
|
||||
float v236 = v233 + v235; // L238, S[12,12)
|
||||
float v237 = v3[(v5 + 5)]; // L239
|
||||
float v238 = v234 * v237; // L240, S[12,12)
|
||||
float v239 = v197 + v238; // L241, S[12,12)
|
||||
float v240 = v0[(v6 + 1)][(v5 + 5)]; // L242
|
||||
float v241 = v16 * v240; // L243, S[12,12)
|
||||
float v242 = v236 + v241; // L244, S[12,12)
|
||||
float v243 = v240 * v237; // L245, S[12,12)
|
||||
float v244 = v202 + v243; // L246, S[12,12)
|
||||
float v245 = v0[(v6 + 2)][(v5 + 5)]; // L247
|
||||
float v246 = v23 * v245; // L248, S[12,12)
|
||||
float v247 = v242 + v246; // L249, S[12,12)
|
||||
float v248 = v245 * v237; // L250, S[12,12)
|
||||
float v249 = v207 + v248; // L251, S[12,12)
|
||||
float v250 = v0[(v6 + 3)][(v5 + 5)]; // L252
|
||||
float v251 = v30 * v250; // L253, S[12,12)
|
||||
float v252 = v247 + v251; // L254, S[12,12)
|
||||
float v253 = v250 * v237; // L255, S[12,12)
|
||||
float v254 = v212 + v253; // L256, S[12,12)
|
||||
float v255 = v0[(v6 + 4)][(v5 + 5)]; // L257
|
||||
float v256 = v37 * v255; // L258, S[12,12)
|
||||
float v257 = v252 + v256; // L259, S[12,12)
|
||||
float v258 = v255 * v237; // L260, S[12,12)
|
||||
float v259 = v217 + v258; // L261, S[12,12)
|
||||
float v260 = v0[(v6 + 5)][(v5 + 5)]; // L262
|
||||
float v261 = v44 * v260; // L263, S[12,12)
|
||||
float v262 = v257 + v261; // L264, S[12,12)
|
||||
float v263 = v260 * v237; // L265, S[12,12)
|
||||
float v264 = v222 + v263; // L266, S[12,12)
|
||||
float v265 = v0[(v6 + 6)][(v5 + 5)]; // L267
|
||||
float v266 = v51 * v265; // L268, S[12,12)
|
||||
float v267 = v262 + v266; // L269, S[12,12)
|
||||
float v268 = v265 * v237; // L270, S[12,12)
|
||||
float v269 = v227 + v268; // L271, S[12,12)
|
||||
float v270 = v0[(v6 + 7)][(v5 + 5)]; // L272
|
||||
float v271 = v58 * v270; // L273, S[12,12)
|
||||
float v272 = v267 + v271; // L274, S[12,12)
|
||||
v1[(v5 + 5)] = v272; // L275
|
||||
float v273 = v270 * v237; // L276, S[12,12)
|
||||
float v274 = v232 + v273; // L277, S[12,12)
|
||||
float v275 = v1[(v5 + 6)]; // L278
|
||||
float v276 = v0[v6][(v5 + 6)]; // L279
|
||||
float v277 = v8 * v276; // L280, S[12,12)
|
||||
float v278 = v275 + v277; // L281, S[12,12)
|
||||
float v279 = v3[(v5 + 6)]; // L282
|
||||
float v280 = v276 * v279; // L283, S[12,12)
|
||||
float v281 = v239 + v280; // L284, S[12,12)
|
||||
float v282 = v0[(v6 + 1)][(v5 + 6)]; // L285
|
||||
float v283 = v16 * v282; // L286, S[12,12)
|
||||
float v284 = v278 + v283; // L287, S[12,12)
|
||||
float v285 = v282 * v279; // L288, S[12,12)
|
||||
float v286 = v244 + v285; // L289, S[12,12)
|
||||
float v287 = v0[(v6 + 2)][(v5 + 6)]; // L290
|
||||
float v288 = v23 * v287; // L291, S[12,12)
|
||||
float v289 = v284 + v288; // L292, S[12,12)
|
||||
float v290 = v287 * v279; // L293, S[12,12)
|
||||
float v291 = v249 + v290; // L294, S[12,12)
|
||||
float v292 = v0[(v6 + 3)][(v5 + 6)]; // L295
|
||||
float v293 = v30 * v292; // L296, S[12,12)
|
||||
float v294 = v289 + v293; // L297, S[12,12)
|
||||
float v295 = v292 * v279; // L298, S[12,12)
|
||||
float v296 = v254 + v295; // L299, S[12,12)
|
||||
float v297 = v0[(v6 + 4)][(v5 + 6)]; // L300
|
||||
float v298 = v37 * v297; // L301, S[12,12)
|
||||
float v299 = v294 + v298; // L302, S[12,12)
|
||||
float v300 = v297 * v279; // L303, S[12,12)
|
||||
float v301 = v259 + v300; // L304, S[12,12)
|
||||
float v302 = v0[(v6 + 5)][(v5 + 6)]; // L305
|
||||
float v303 = v44 * v302; // L306, S[12,12)
|
||||
float v304 = v299 + v303; // L307, S[12,12)
|
||||
float v305 = v302 * v279; // L308, S[12,12)
|
||||
float v306 = v264 + v305; // L309, S[12,12)
|
||||
float v307 = v0[(v6 + 6)][(v5 + 6)]; // L310
|
||||
float v308 = v51 * v307; // L311, S[12,12)
|
||||
float v309 = v304 + v308; // L312, S[12,12)
|
||||
float v310 = v307 * v279; // L313, S[12,12)
|
||||
float v311 = v269 + v310; // L314, S[12,12)
|
||||
float v312 = v0[(v6 + 7)][(v5 + 6)]; // L315
|
||||
float v313 = v58 * v312; // L316, S[12,12)
|
||||
float v314 = v309 + v313; // L317, S[12,12)
|
||||
v1[(v5 + 6)] = v314; // L318
|
||||
float v315 = v312 * v279; // L319, S[12,12)
|
||||
float v316 = v274 + v315; // L320, S[12,12)
|
||||
float v317 = v1[(v5 + 7)]; // L321
|
||||
float v318 = v0[v6][(v5 + 7)]; // L322
|
||||
float v319 = v8 * v318; // L323, S[12,12)
|
||||
float v320 = v317 + v319; // L324, S[12,12)
|
||||
float v321 = v3[(v5 + 7)]; // L325
|
||||
float v322 = v318 * v321; // L326, S[12,12)
|
||||
float v323 = v281 + v322; // L327, S[12,12)
|
||||
float v324 = v0[(v6 + 1)][(v5 + 7)]; // L328
|
||||
float v325 = v16 * v324; // L329, S[12,12)
|
||||
float v326 = v320 + v325; // L330, S[12,12)
|
||||
float v327 = v324 * v321; // L331, S[12,12)
|
||||
float v328 = v286 + v327; // L332, S[12,12)
|
||||
float v329 = v0[(v6 + 2)][(v5 + 7)]; // L333
|
||||
float v330 = v23 * v329; // L334, S[12,12)
|
||||
float v331 = v326 + v330; // L335, S[12,12)
|
||||
float v332 = v329 * v321; // L336, S[12,12)
|
||||
float v333 = v291 + v332; // L337, S[12,12)
|
||||
float v334 = v0[(v6 + 3)][(v5 + 7)]; // L338
|
||||
float v335 = v30 * v334; // L339, S[12,12)
|
||||
float v336 = v331 + v335; // L340, S[12,12)
|
||||
float v337 = v334 * v321; // L341, S[12,12)
|
||||
float v338 = v296 + v337; // L342, S[12,12)
|
||||
float v339 = v0[(v6 + 4)][(v5 + 7)]; // L343
|
||||
float v340 = v37 * v339; // L344, S[12,12)
|
||||
float v341 = v336 + v340; // L345, S[12,12)
|
||||
float v342 = v339 * v321; // L346, S[12,12)
|
||||
float v343 = v301 + v342; // L347, S[12,12)
|
||||
float v344 = v0[(v6 + 5)][(v5 + 7)]; // L348
|
||||
float v345 = v44 * v344; // L349, S[12,12)
|
||||
float v346 = v341 + v345; // L350, S[12,12)
|
||||
float v347 = v344 * v321; // L351, S[12,12)
|
||||
float v348 = v306 + v347; // L352, S[12,12)
|
||||
float v349 = v0[(v6 + 6)][(v5 + 7)]; // L353
|
||||
float v350 = v51 * v349; // L354, S[12,12)
|
||||
float v351 = v346 + v350; // L355, S[12,12)
|
||||
float v352 = v349 * v321; // L356, S[12,12)
|
||||
float v353 = v311 + v352; // L357, S[12,12)
|
||||
float v354 = v0[(v6 + 7)][(v5 + 7)]; // L358
|
||||
float v355 = v58 * v354; // L359, S[12,12)
|
||||
float v356 = v351 + v355; // L360, S[12,12)
|
||||
v1[(v5 + 7)] = v356; // L361
|
||||
float v357 = v354 * v321; // L362, S[12,12)
|
||||
float v358 = v316 + v357; // L363, S[12,12)
|
||||
float v359 = v1[(v5 + 8)]; // L364
|
||||
float v360 = v0[v6][(v5 + 8)]; // L365
|
||||
float v361 = v8 * v360; // L366, S[12,12)
|
||||
float v362 = v359 + v361; // L367, S[12,12)
|
||||
float v363 = v3[(v5 + 8)]; // L368
|
||||
float v364 = v360 * v363; // L369, S[12,12)
|
||||
float v365 = v323 + v364; // L370, S[12,12)
|
||||
float v366 = v0[(v6 + 1)][(v5 + 8)]; // L371
|
||||
float v367 = v16 * v366; // L372, S[12,12)
|
||||
float v368 = v362 + v367; // L373, S[12,12)
|
||||
float v369 = v366 * v363; // L374, S[12,12)
|
||||
float v370 = v328 + v369; // L375, S[12,12)
|
||||
float v371 = v0[(v6 + 2)][(v5 + 8)]; // L376
|
||||
float v372 = v23 * v371; // L377, S[12,12)
|
||||
float v373 = v368 + v372; // L378, S[12,12)
|
||||
float v374 = v371 * v363; // L379, S[12,12)
|
||||
float v375 = v333 + v374; // L380, S[12,12)
|
||||
float v376 = v0[(v6 + 3)][(v5 + 8)]; // L381
|
||||
float v377 = v30 * v376; // L382, S[12,12)
|
||||
float v378 = v373 + v377; // L383, S[12,12)
|
||||
float v379 = v376 * v363; // L384, S[12,12)
|
||||
float v380 = v338 + v379; // L385, S[12,12)
|
||||
float v381 = v0[(v6 + 4)][(v5 + 8)]; // L386
|
||||
float v382 = v37 * v381; // L387, S[12,12)
|
||||
float v383 = v378 + v382; // L388, S[12,12)
|
||||
float v384 = v381 * v363; // L389, S[12,12)
|
||||
float v385 = v343 + v384; // L390, S[12,12)
|
||||
float v386 = v0[(v6 + 5)][(v5 + 8)]; // L391
|
||||
float v387 = v44 * v386; // L392, S[12,12)
|
||||
float v388 = v383 + v387; // L393, S[12,12)
|
||||
float v389 = v386 * v363; // L394, S[12,12)
|
||||
float v390 = v348 + v389; // L395, S[12,12)
|
||||
float v391 = v0[(v6 + 6)][(v5 + 8)]; // L396
|
||||
float v392 = v51 * v391; // L397, S[12,12)
|
||||
float v393 = v388 + v392; // L398, S[12,12)
|
||||
float v394 = v391 * v363; // L399, S[12,12)
|
||||
float v395 = v353 + v394; // L400, S[12,12)
|
||||
float v396 = v0[(v6 + 7)][(v5 + 8)]; // L401
|
||||
float v397 = v58 * v396; // L402, S[12,12)
|
||||
float v398 = v393 + v397; // L403, S[12,12)
|
||||
v1[(v5 + 8)] = v398; // L404
|
||||
float v399 = v396 * v363; // L405, S[12,12)
|
||||
float v400 = v358 + v399; // L406, S[12,12)
|
||||
float v401 = v1[(v5 + 9)]; // L407
|
||||
float v402 = v0[v6][(v5 + 9)]; // L408
|
||||
float v403 = v8 * v402; // L409, S[12,12)
|
||||
float v404 = v401 + v403; // L410, S[12,12)
|
||||
float v405 = v3[(v5 + 9)]; // L411
|
||||
float v406 = v402 * v405; // L412, S[12,12)
|
||||
float v407 = v365 + v406; // L413, S[12,12)
|
||||
float v408 = v0[(v6 + 1)][(v5 + 9)]; // L414
|
||||
float v409 = v16 * v408; // L415, S[12,12)
|
||||
float v410 = v404 + v409; // L416, S[12,12)
|
||||
float v411 = v408 * v405; // L417, S[12,12)
|
||||
float v412 = v370 + v411; // L418, S[12,12)
|
||||
float v413 = v0[(v6 + 2)][(v5 + 9)]; // L419
|
||||
float v414 = v23 * v413; // L420, S[12,12)
|
||||
float v415 = v410 + v414; // L421, S[12,12)
|
||||
float v416 = v413 * v405; // L422, S[12,12)
|
||||
float v417 = v375 + v416; // L423, S[12,12)
|
||||
float v418 = v0[(v6 + 3)][(v5 + 9)]; // L424
|
||||
float v419 = v30 * v418; // L425, S[12,12)
|
||||
float v420 = v415 + v419; // L426, S[12,12)
|
||||
float v421 = v418 * v405; // L427, S[12,12)
|
||||
float v422 = v380 + v421; // L428, S[12,12)
|
||||
float v423 = v0[(v6 + 4)][(v5 + 9)]; // L429
|
||||
float v424 = v37 * v423; // L430, S[12,12)
|
||||
float v425 = v420 + v424; // L431, S[12,12)
|
||||
float v426 = v423 * v405; // L432, S[12,12)
|
||||
float v427 = v385 + v426; // L433, S[12,12)
|
||||
float v428 = v0[(v6 + 5)][(v5 + 9)]; // L434
|
||||
float v429 = v44 * v428; // L435, S[12,12)
|
||||
float v430 = v425 + v429; // L436, S[12,12)
|
||||
float v431 = v428 * v405; // L437, S[12,12)
|
||||
float v432 = v390 + v431; // L438, S[12,12)
|
||||
float v433 = v0[(v6 + 6)][(v5 + 9)]; // L439
|
||||
float v434 = v51 * v433; // L440, S[12,12)
|
||||
float v435 = v430 + v434; // L441, S[12,12)
|
||||
float v436 = v433 * v405; // L442, S[12,12)
|
||||
float v437 = v395 + v436; // L443, S[12,12)
|
||||
float v438 = v0[(v6 + 7)][(v5 + 9)]; // L444
|
||||
float v439 = v58 * v438; // L445, S[12,12)
|
||||
float v440 = v435 + v439; // L446, S[12,12)
|
||||
v1[(v5 + 9)] = v440; // L447
|
||||
float v441 = v438 * v405; // L448, S[12,12)
|
||||
float v442 = v400 + v441; // L449, S[12,12)
|
||||
float v443 = v1[(v5 + 10)]; // L450
|
||||
float v444 = v0[v6][(v5 + 10)]; // L451
|
||||
float v445 = v8 * v444; // L452, S[12,12)
|
||||
float v446 = v443 + v445; // L453, S[12,12)
|
||||
float v447 = v3[(v5 + 10)]; // L454
|
||||
float v448 = v444 * v447; // L455, S[12,12)
|
||||
float v449 = v407 + v448; // L456, S[12,12)
|
||||
float v450 = v0[(v6 + 1)][(v5 + 10)]; // L457
|
||||
float v451 = v16 * v450; // L458, S[12,12)
|
||||
float v452 = v446 + v451; // L459, S[12,12)
|
||||
float v453 = v450 * v447; // L460, S[12,12)
|
||||
float v454 = v412 + v453; // L461, S[12,12)
|
||||
float v455 = v0[(v6 + 2)][(v5 + 10)]; // L462
|
||||
float v456 = v23 * v455; // L463, S[12,12)
|
||||
float v457 = v452 + v456; // L464, S[12,12)
|
||||
float v458 = v455 * v447; // L465, S[12,12)
|
||||
float v459 = v417 + v458; // L466, S[12,12)
|
||||
float v460 = v0[(v6 + 3)][(v5 + 10)]; // L467
|
||||
float v461 = v30 * v460; // L468, S[12,12)
|
||||
float v462 = v457 + v461; // L469, S[12,12)
|
||||
float v463 = v460 * v447; // L470, S[12,12)
|
||||
float v464 = v422 + v463; // L471, S[12,12)
|
||||
float v465 = v0[(v6 + 4)][(v5 + 10)]; // L472
|
||||
float v466 = v37 * v465; // L473, S[12,12)
|
||||
float v467 = v462 + v466; // L474, S[12,12)
|
||||
float v468 = v465 * v447; // L475, S[12,12)
|
||||
float v469 = v427 + v468; // L476, S[12,12)
|
||||
float v470 = v0[(v6 + 5)][(v5 + 10)]; // L477
|
||||
float v471 = v44 * v470; // L478, S[12,12)
|
||||
float v472 = v467 + v471; // L479, S[12,12)
|
||||
float v473 = v470 * v447; // L480, S[12,12)
|
||||
float v474 = v432 + v473; // L481, S[12,12)
|
||||
float v475 = v0[(v6 + 6)][(v5 + 10)]; // L482
|
||||
float v476 = v51 * v475; // L483, S[12,12)
|
||||
float v477 = v472 + v476; // L484, S[12,12)
|
||||
float v478 = v475 * v447; // L485, S[12,12)
|
||||
float v479 = v437 + v478; // L486, S[12,12)
|
||||
float v480 = v0[(v6 + 7)][(v5 + 10)]; // L487
|
||||
float v481 = v58 * v480; // L488, S[12,12)
|
||||
float v482 = v477 + v481; // L489, S[12,12)
|
||||
v1[(v5 + 10)] = v482; // L490
|
||||
float v483 = v480 * v447; // L491, S[12,12)
|
||||
float v484 = v442 + v483; // L492, S[12,12)
|
||||
float v485 = v1[(v5 + 11)]; // L493
|
||||
float v486 = v0[v6][(v5 + 11)]; // L494
|
||||
float v487 = v8 * v486; // L495, S[12,12)
|
||||
float v488 = v485 + v487; // L496, S[12,12)
|
||||
float v489 = v3[(v5 + 11)]; // L497
|
||||
float v490 = v486 * v489; // L498, S[12,12)
|
||||
float v491 = v449 + v490; // L499, S[12,12)
|
||||
float v492 = v0[(v6 + 1)][(v5 + 11)]; // L500
|
||||
float v493 = v16 * v492; // L501, S[12,12)
|
||||
float v494 = v488 + v493; // L502, S[12,12)
|
||||
float v495 = v492 * v489; // L503, S[12,12)
|
||||
float v496 = v454 + v495; // L504, S[12,12)
|
||||
float v497 = v0[(v6 + 2)][(v5 + 11)]; // L505
|
||||
float v498 = v23 * v497; // L506, S[12,12)
|
||||
float v499 = v494 + v498; // L507, S[12,12)
|
||||
float v500 = v497 * v489; // L508, S[12,12)
|
||||
float v501 = v459 + v500; // L509, S[12,12)
|
||||
float v502 = v0[(v6 + 3)][(v5 + 11)]; // L510
|
||||
float v503 = v30 * v502; // L511, S[12,12)
|
||||
float v504 = v499 + v503; // L512, S[12,12)
|
||||
float v505 = v502 * v489; // L513, S[12,12)
|
||||
float v506 = v464 + v505; // L514, S[12,12)
|
||||
float v507 = v0[(v6 + 4)][(v5 + 11)]; // L515
|
||||
float v508 = v37 * v507; // L516, S[12,12)
|
||||
float v509 = v504 + v508; // L517, S[12,12)
|
||||
float v510 = v507 * v489; // L518, S[12,12)
|
||||
float v511 = v469 + v510; // L519, S[12,12)
|
||||
float v512 = v0[(v6 + 5)][(v5 + 11)]; // L520
|
||||
float v513 = v44 * v512; // L521, S[12,12)
|
||||
float v514 = v509 + v513; // L522, S[12,12)
|
||||
float v515 = v512 * v489; // L523, S[12,12)
|
||||
float v516 = v474 + v515; // L524, S[12,12)
|
||||
float v517 = v0[(v6 + 6)][(v5 + 11)]; // L525
|
||||
float v518 = v51 * v517; // L526, S[12,12)
|
||||
float v519 = v514 + v518; // L527, S[12,12)
|
||||
float v520 = v517 * v489; // L528, S[12,12)
|
||||
float v521 = v479 + v520; // L529, S[12,12)
|
||||
float v522 = v0[(v6 + 7)][(v5 + 11)]; // L530
|
||||
float v523 = v58 * v522; // L531, S[12,12)
|
||||
float v524 = v519 + v523; // L532, S[12,12)
|
||||
v1[(v5 + 11)] = v524; // L533
|
||||
float v525 = v522 * v489; // L534, S[12,12)
|
||||
float v526 = v484 + v525; // L535, S[12,12)
|
||||
float v527 = v1[(v5 + 12)]; // L536
|
||||
float v528 = v0[v6][(v5 + 12)]; // L537
|
||||
float v529 = v8 * v528; // L538, S[12,12)
|
||||
float v530 = v527 + v529; // L539, S[12,12)
|
||||
float v531 = v3[(v5 + 12)]; // L540
|
||||
float v532 = v528 * v531; // L541, S[12,12)
|
||||
float v533 = v491 + v532; // L542, S[12,12)
|
||||
float v534 = v0[(v6 + 1)][(v5 + 12)]; // L543
|
||||
float v535 = v16 * v534; // L544, S[12,12)
|
||||
float v536 = v530 + v535; // L545, S[12,12)
|
||||
float v537 = v534 * v531; // L546, S[12,12)
|
||||
float v538 = v496 + v537; // L547, S[12,12)
|
||||
float v539 = v0[(v6 + 2)][(v5 + 12)]; // L548
|
||||
float v540 = v23 * v539; // L549, S[12,12)
|
||||
float v541 = v536 + v540; // L550, S[12,12)
|
||||
float v542 = v539 * v531; // L551, S[12,12)
|
||||
float v543 = v501 + v542; // L552, S[12,12)
|
||||
float v544 = v0[(v6 + 3)][(v5 + 12)]; // L553
|
||||
float v545 = v30 * v544; // L554, S[12,12)
|
||||
float v546 = v541 + v545; // L555, S[12,12)
|
||||
float v547 = v544 * v531; // L556, S[12,12)
|
||||
float v548 = v506 + v547; // L557, S[12,12)
|
||||
float v549 = v0[(v6 + 4)][(v5 + 12)]; // L558
|
||||
float v550 = v37 * v549; // L559, S[12,12)
|
||||
float v551 = v546 + v550; // L560, S[12,12)
|
||||
float v552 = v549 * v531; // L561, S[12,12)
|
||||
float v553 = v511 + v552; // L562, S[12,12)
|
||||
float v554 = v0[(v6 + 5)][(v5 + 12)]; // L563
|
||||
float v555 = v44 * v554; // L564, S[12,12)
|
||||
float v556 = v551 + v555; // L565, S[12,12)
|
||||
float v557 = v554 * v531; // L566, S[12,12)
|
||||
float v558 = v516 + v557; // L567, S[12,12)
|
||||
float v559 = v0[(v6 + 6)][(v5 + 12)]; // L568
|
||||
float v560 = v51 * v559; // L569, S[12,12)
|
||||
float v561 = v556 + v560; // L570, S[12,12)
|
||||
float v562 = v559 * v531; // L571, S[12,12)
|
||||
float v563 = v521 + v562; // L572, S[12,12)
|
||||
float v564 = v0[(v6 + 7)][(v5 + 12)]; // L573
|
||||
float v565 = v58 * v564; // L574, S[12,12)
|
||||
float v566 = v561 + v565; // L575, S[12,12)
|
||||
v1[(v5 + 12)] = v566; // L576
|
||||
float v567 = v564 * v531; // L577, S[12,12)
|
||||
float v568 = v526 + v567; // L578, S[12,12)
|
||||
float v569 = v1[(v5 + 13)]; // L579
|
||||
float v570 = v0[v6][(v5 + 13)]; // L580
|
||||
float v571 = v8 * v570; // L581, S[12,12)
|
||||
float v572 = v569 + v571; // L582, S[12,12)
|
||||
float v573 = v3[(v5 + 13)]; // L583
|
||||
float v574 = v570 * v573; // L584, S[12,12)
|
||||
float v575 = v533 + v574; // L585, S[12,12)
|
||||
float v576 = v0[(v6 + 1)][(v5 + 13)]; // L586
|
||||
float v577 = v16 * v576; // L587, S[12,12)
|
||||
float v578 = v572 + v577; // L588, S[12,12)
|
||||
float v579 = v576 * v573; // L589, S[12,12)
|
||||
float v580 = v538 + v579; // L590, S[12,12)
|
||||
float v581 = v0[(v6 + 2)][(v5 + 13)]; // L591
|
||||
float v582 = v23 * v581; // L592, S[12,12)
|
||||
float v583 = v578 + v582; // L593, S[12,12)
|
||||
float v584 = v581 * v573; // L594, S[12,12)
|
||||
float v585 = v543 + v584; // L595, S[12,12)
|
||||
float v586 = v0[(v6 + 3)][(v5 + 13)]; // L596
|
||||
float v587 = v30 * v586; // L597, S[12,12)
|
||||
float v588 = v583 + v587; // L598, S[12,12)
|
||||
float v589 = v586 * v573; // L599, S[12,12)
|
||||
float v590 = v548 + v589; // L600, S[12,12)
|
||||
float v591 = v0[(v6 + 4)][(v5 + 13)]; // L601
|
||||
float v592 = v37 * v591; // L602, S[12,12)
|
||||
float v593 = v588 + v592; // L603, S[12,12)
|
||||
float v594 = v591 * v573; // L604, S[12,12)
|
||||
float v595 = v553 + v594; // L605, S[12,12)
|
||||
float v596 = v0[(v6 + 5)][(v5 + 13)]; // L606
|
||||
float v597 = v44 * v596; // L607, S[12,12)
|
||||
float v598 = v593 + v597; // L608, S[12,12)
|
||||
float v599 = v596 * v573; // L609, S[12,12)
|
||||
float v600 = v558 + v599; // L610, S[12,12)
|
||||
float v601 = v0[(v6 + 6)][(v5 + 13)]; // L611
|
||||
float v602 = v51 * v601; // L612, S[12,12)
|
||||
float v603 = v598 + v602; // L613, S[12,12)
|
||||
float v604 = v601 * v573; // L614, S[12,12)
|
||||
float v605 = v563 + v604; // L615, S[12,12)
|
||||
float v606 = v0[(v6 + 7)][(v5 + 13)]; // L616
|
||||
float v607 = v58 * v606; // L617, S[12,12)
|
||||
float v608 = v603 + v607; // L618, S[12,12)
|
||||
v1[(v5 + 13)] = v608; // L619
|
||||
float v609 = v606 * v573; // L620, S[12,12)
|
||||
float v610 = v568 + v609; // L621, S[12,12)
|
||||
float v611 = v1[(v5 + 14)]; // L622
|
||||
float v612 = v0[v6][(v5 + 14)]; // L623
|
||||
float v613 = v8 * v612; // L624, S[12,12)
|
||||
float v614 = v611 + v613; // L625, S[12,12)
|
||||
float v615 = v3[(v5 + 14)]; // L626
|
||||
float v616 = v612 * v615; // L627, S[12,12)
|
||||
float v617 = v575 + v616; // L628, S[12,12)
|
||||
float v618 = v0[(v6 + 1)][(v5 + 14)]; // L629
|
||||
float v619 = v16 * v618; // L630, S[12,12)
|
||||
float v620 = v614 + v619; // L631, S[12,12)
|
||||
float v621 = v618 * v615; // L632, S[12,12)
|
||||
float v622 = v580 + v621; // L633, S[12,12)
|
||||
float v623 = v0[(v6 + 2)][(v5 + 14)]; // L634
|
||||
float v624 = v23 * v623; // L635, S[12,12)
|
||||
float v625 = v620 + v624; // L636, S[12,12)
|
||||
float v626 = v623 * v615; // L637, S[12,12)
|
||||
float v627 = v585 + v626; // L638, S[12,12)
|
||||
float v628 = v0[(v6 + 3)][(v5 + 14)]; // L639
|
||||
float v629 = v30 * v628; // L640, S[12,12)
|
||||
float v630 = v625 + v629; // L641, S[12,12)
|
||||
float v631 = v628 * v615; // L642, S[12,12)
|
||||
float v632 = v590 + v631; // L643, S[12,12)
|
||||
float v633 = v0[(v6 + 4)][(v5 + 14)]; // L644
|
||||
float v634 = v37 * v633; // L645, S[12,12)
|
||||
float v635 = v630 + v634; // L646, S[12,12)
|
||||
float v636 = v633 * v615; // L647, S[12,12)
|
||||
float v637 = v595 + v636; // L648, S[12,12)
|
||||
float v638 = v0[(v6 + 5)][(v5 + 14)]; // L649
|
||||
float v639 = v44 * v638; // L650, S[12,12)
|
||||
float v640 = v635 + v639; // L651, S[12,12)
|
||||
float v641 = v638 * v615; // L652, S[12,12)
|
||||
float v642 = v600 + v641; // L653, S[12,12)
|
||||
float v643 = v0[(v6 + 6)][(v5 + 14)]; // L654
|
||||
float v644 = v51 * v643; // L655, S[12,12)
|
||||
float v645 = v640 + v644; // L656, S[12,12)
|
||||
float v646 = v643 * v615; // L657, S[12,12)
|
||||
float v647 = v605 + v646; // L658, S[12,12)
|
||||
float v648 = v0[(v6 + 7)][(v5 + 14)]; // L659
|
||||
float v649 = v58 * v648; // L660, S[12,12)
|
||||
float v650 = v645 + v649; // L661, S[12,12)
|
||||
v1[(v5 + 14)] = v650; // L662
|
||||
float v651 = v648 * v615; // L663, S[12,12)
|
||||
float v652 = v610 + v651; // L664, S[12,12)
|
||||
float v653 = v1[(v5 + 15)]; // L665
|
||||
float v654 = v0[v6][(v5 + 15)]; // L666
|
||||
float v655 = v8 * v654; // L667, S[12,12)
|
||||
float v656 = v653 + v655; // L668, S[12,12)
|
||||
float v657 = v3[(v5 + 15)]; // L669
|
||||
float v658 = v654 * v657; // L670, S[12,12)
|
||||
float v659 = v617 + v658; // L671, S[12,12)
|
||||
v2[v6] = v659; // L672, S[12,12)
|
||||
float v660 = v0[(v6 + 1)][(v5 + 15)]; // L673
|
||||
float v661 = v16 * v660; // L674, S[12,12)
|
||||
float v662 = v656 + v661; // L675, S[12,12)
|
||||
float v663 = v660 * v657; // L676, S[12,12)
|
||||
float v664 = v622 + v663; // L677, S[12,12)
|
||||
v2[(v6 + 1)] = v664; // L678
|
||||
float v665 = v0[(v6 + 2)][(v5 + 15)]; // L679
|
||||
float v666 = v23 * v665; // L680, S[12,12)
|
||||
float v667 = v662 + v666; // L681, S[12,12)
|
||||
float v668 = v665 * v657; // L682, S[12,12)
|
||||
float v669 = v627 + v668; // L683, S[12,12)
|
||||
v2[(v6 + 2)] = v669; // L684
|
||||
float v670 = v0[(v6 + 3)][(v5 + 15)]; // L685
|
||||
float v671 = v30 * v670; // L686, S[12,12)
|
||||
float v672 = v667 + v671; // L687, S[12,12)
|
||||
float v673 = v670 * v657; // L688, S[12,12)
|
||||
float v674 = v632 + v673; // L689, S[12,12)
|
||||
v2[(v6 + 3)] = v674; // L690
|
||||
float v675 = v0[(v6 + 4)][(v5 + 15)]; // L691
|
||||
float v676 = v37 * v675; // L692, S[12,12)
|
||||
float v677 = v672 + v676; // L693, S[12,12)
|
||||
float v678 = v675 * v657; // L694, S[12,12)
|
||||
float v679 = v637 + v678; // L695, S[12,12)
|
||||
v2[(v6 + 4)] = v679; // L696
|
||||
float v680 = v0[(v6 + 5)][(v5 + 15)]; // L697
|
||||
float v681 = v44 * v680; // L698, S[12,12)
|
||||
float v682 = v677 + v681; // L699, S[12,12)
|
||||
float v683 = v680 * v657; // L700, S[12,12)
|
||||
float v684 = v642 + v683; // L701, S[12,12)
|
||||
v2[(v6 + 5)] = v684; // L702
|
||||
float v685 = v0[(v6 + 6)][(v5 + 15)]; // L703
|
||||
float v686 = v51 * v685; // L704, S[12,12)
|
||||
float v687 = v682 + v686; // L705, S[12,12)
|
||||
float v688 = v685 * v657; // L706, S[12,12)
|
||||
float v689 = v647 + v688; // L707, S[12,12)
|
||||
v2[(v6 + 6)] = v689; // L708
|
||||
float v690 = v0[(v6 + 7)][(v5 + 15)]; // L709
|
||||
float v691 = v58 * v690; // L710, S[12,12)
|
||||
float v692 = v687 + v691; // L711, S[12,12)
|
||||
v1[(v5 + 15)] = v692; // L712
|
||||
float v693 = v690 * v657; // L713, S[12,12)
|
||||
float v694 = v652 + v693; // L714, S[12,12)
|
||||
v2[(v6 + 7)] = v694; // L715
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This test is deprecated!
|
||||
# Please run: source dse_sample_test.sh -m gemm -c 0
|
||||
|
||||
# cd samples/polybench/ && source dse_sample_test.sh -m bicg -c 0
|
||||
# cd samples/polybench/ && source dse_sample_test.sh -m gemm -c 0
|
||||
# cd samples/polybench/ && source dse_sample_test.sh -m gesummv -c 0
|
||||
# cd samples/polybench/ && source dse_sample_test.sh -m syrk -c 0
|
||||
# cd samples/polybench/ && source dse_sample_test.sh -m syr2k -c 0
|
||||
# cd samples/polybench/ && source dse_sample_test.sh -m trmm -c 0
|
||||
|
||||
# Script options.
|
||||
while getopts 'm:c:' opt
|
||||
|
|
|
@ -2,26 +2,12 @@
|
|||
|
||||
# Please run: source dse_scale_test.sh -m gemm -c 0
|
||||
|
||||
# cd samples/polybench-1/ && source dse_scale_test.sh -m bicg -c 0
|
||||
# cd samples/polybench-1/ && source dse_scale_test.sh -m gemm -c 0
|
||||
# cd samples/polybench-1/ && source dse_scale_test.sh -m gesummv -c 0
|
||||
# cd samples/polybench-1/ && source dse_scale_test.sh -m syrk -c 0
|
||||
# cd samples/polybench-1/ && source dse_scale_test.sh -m syr2k -c 0
|
||||
# cd samples/polybench-1/ && source dse_scale_test.sh -m trmm -c 0
|
||||
|
||||
# cd samples/polybench-2/ && source dse_scale_test.sh -m bicg -c 0
|
||||
# cd samples/polybench-2/ && source dse_scale_test.sh -m gemm -c 0
|
||||
# cd samples/polybench-2/ && source dse_scale_test.sh -m gesummv -c 0
|
||||
# cd samples/polybench-2/ && source dse_scale_test.sh -m syrk -c 0
|
||||
# cd samples/polybench-2/ && source dse_scale_test.sh -m syr2k -c 0
|
||||
# cd samples/polybench-2/ && source dse_scale_test.sh -m trmm -c 0
|
||||
|
||||
# cd samples/polybench-3/ && source dse_scale_test.sh -m bicg -c 0
|
||||
# cd samples/polybench-3/ && source dse_scale_test.sh -m gemm -c 0
|
||||
# cd samples/polybench-3/ && source dse_scale_test.sh -m gesummv -c 0
|
||||
# cd samples/polybench-3/ && source dse_scale_test.sh -m syrk -c 0
|
||||
# cd samples/polybench-3/ && source dse_scale_test.sh -m syr2k -c 0
|
||||
# cd samples/polybench-3/ && source dse_scale_test.sh -m trmm -c 0
|
||||
# cd samples/polybench/ && source dse_scale_test.sh -m bicg -c 0
|
||||
# cd samples/polybench/ && source dse_scale_test.sh -m gemm -c 0
|
||||
# cd samples/polybench/ && source dse_scale_test.sh -m gesummv -c 0
|
||||
# cd samples/polybench/ && source dse_scale_test.sh -m syrk -c 0
|
||||
# cd samples/polybench/ && source dse_scale_test.sh -m syr2k -c 0
|
||||
# cd samples/polybench/ && source dse_scale_test.sh -m trmm -c 0
|
||||
|
||||
# Script options.
|
||||
while getopts 'm:c:' opt
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=1099545190402
|
||||
/// DSP=8
|
||||
void gemm_4096(
|
||||
float v0,
|
||||
float v1,
|
||||
float v2[4096][4096],
|
||||
float v3[4096][4096],
|
||||
float v4[4096][4096]
|
||||
) { // L2
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v1 bundle=ctrl
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
for (int v5 = 0; v5 < 4096; v5 += 1) { // L3, S[0,1099545190402), latency=268443650
|
||||
for (int v6 = 0; v6 < 4096; v6 += 1) { // L4, S[0,268443650), latency=65538
|
||||
float v7 = v2[v5][v6]; // L5, S[65523,65525)
|
||||
float v8 = v1 * v7; // L6, S[65525,65529)
|
||||
v2[v5][v6] = v8; // L7, S[65529,65530)
|
||||
for (int v9 = 0; v9 < 4096; v9 += 1) { // L8, S[0,65538), latency=16
|
||||
float v10 = v3[v5][v9]; // L9, S[0,2)
|
||||
float v11 = v4[v9][v6]; // L10, S[4,6)
|
||||
float v12 = v2[v5][v6]; // L11, S[8,10)
|
||||
float v13 = v0 * v10; // L12, S[2,6)
|
||||
float v14 = v13 * v11; // L13, S[6,10)
|
||||
float v15 = v12 + v14; // L14, S[10,15)
|
||||
v2[v5][v6] = v15; // L15, S[15,16)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,598 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=8589934608
|
||||
/// DSP=5
|
||||
void gemm_4096(
|
||||
float v0,
|
||||
float v1,
|
||||
float v2[4096][4096],
|
||||
float v3[4096][4096],
|
||||
float v4[4096][4096]
|
||||
) { // L1
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v1 bundle=ctrl
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
|
||||
#pragma HLS array_partition variable=v2 cyclic factor=16 dim=2
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v3 cyclic factor=8 dim=2
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v4 cyclic factor=8 dim=1
|
||||
#pragma HLS array_partition variable=v4 cyclic factor=16 dim=2
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
for (int v5 = 0; v5 < 4096; v5 += 8) { // L2
|
||||
for (int v6 = 0; v6 < 4096; v6 += 1) { // L3
|
||||
for (int v7 = 0; v7 < 4096; v7 += 16) { // L4
|
||||
#pragma HLS pipeline II=3
|
||||
float v8 = v2[v6][v7]; // L5, S[16,16)
|
||||
float v9 = v1 * v8; // L6, S[16,16)
|
||||
float v10 = v3[v6][v5]; // L7, S[16,16)
|
||||
float v11 = v4[v5][v7]; // L8, S[16,16)
|
||||
float v12;
|
||||
if (v5 == 0) { // L9
|
||||
v12 = v9; // L10
|
||||
} else {
|
||||
v12 = v8; // L12
|
||||
}
|
||||
float v13 = v0 * v10; // L14, S[16,16)
|
||||
float v14 = v13 * v11; // L15, S[16,16)
|
||||
float v15 = v12 + v14; // L16, S[16,16)
|
||||
float v16 = v2[v6][(v7 + 1)]; // L17
|
||||
float v17 = v1 * v16; // L18, S[16,16)
|
||||
float v18 = v4[v5][(v7 + 1)]; // L19
|
||||
float v19;
|
||||
if (v5 == 0) { // L20
|
||||
v19 = v17; // L21
|
||||
} else {
|
||||
v19 = v16; // L23
|
||||
}
|
||||
float v20 = v13 * v18; // L25, S[16,16)
|
||||
float v21 = v19 + v20; // L26, S[16,16)
|
||||
float v22 = v2[v6][(v7 + 2)]; // L27
|
||||
float v23 = v1 * v22; // L28, S[16,16)
|
||||
float v24 = v4[v5][(v7 + 2)]; // L29
|
||||
float v25;
|
||||
if (v5 == 0) { // L30
|
||||
v25 = v23; // L31
|
||||
} else {
|
||||
v25 = v22; // L33
|
||||
}
|
||||
float v26 = v13 * v24; // L35, S[16,16)
|
||||
float v27 = v25 + v26; // L36, S[16,16)
|
||||
float v28 = v2[v6][(v7 + 3)]; // L37
|
||||
float v29 = v1 * v28; // L38, S[16,16)
|
||||
float v30 = v4[v5][(v7 + 3)]; // L39
|
||||
float v31;
|
||||
if (v5 == 0) { // L40
|
||||
v31 = v29; // L41
|
||||
} else {
|
||||
v31 = v28; // L43
|
||||
}
|
||||
float v32 = v13 * v30; // L45, S[16,16)
|
||||
float v33 = v31 + v32; // L46, S[16,16)
|
||||
float v34 = v2[v6][(v7 + 4)]; // L47
|
||||
float v35 = v1 * v34; // L48, S[16,16)
|
||||
float v36 = v4[v5][(v7 + 4)]; // L49
|
||||
float v37;
|
||||
if (v5 == 0) { // L50
|
||||
v37 = v35; // L51
|
||||
} else {
|
||||
v37 = v34; // L53
|
||||
}
|
||||
float v38 = v13 * v36; // L55, S[16,16)
|
||||
float v39 = v37 + v38; // L56, S[16,16)
|
||||
float v40 = v2[v6][(v7 + 5)]; // L57
|
||||
float v41 = v1 * v40; // L58, S[16,16)
|
||||
float v42 = v4[v5][(v7 + 5)]; // L59
|
||||
float v43;
|
||||
if (v5 == 0) { // L60
|
||||
v43 = v41; // L61
|
||||
} else {
|
||||
v43 = v40; // L63
|
||||
}
|
||||
float v44 = v13 * v42; // L65, S[16,16)
|
||||
float v45 = v43 + v44; // L66, S[16,16)
|
||||
float v46 = v2[v6][(v7 + 6)]; // L67
|
||||
float v47 = v1 * v46; // L68, S[16,16)
|
||||
float v48 = v4[v5][(v7 + 6)]; // L69
|
||||
float v49;
|
||||
if (v5 == 0) { // L70
|
||||
v49 = v47; // L71
|
||||
} else {
|
||||
v49 = v46; // L73
|
||||
}
|
||||
float v50 = v13 * v48; // L75, S[16,16)
|
||||
float v51 = v49 + v50; // L76, S[16,16)
|
||||
float v52 = v2[v6][(v7 + 7)]; // L77
|
||||
float v53 = v1 * v52; // L78, S[16,16)
|
||||
float v54 = v4[v5][(v7 + 7)]; // L79
|
||||
float v55;
|
||||
if (v5 == 0) { // L80
|
||||
v55 = v53; // L81
|
||||
} else {
|
||||
v55 = v52; // L83
|
||||
}
|
||||
float v56 = v13 * v54; // L85, S[16,16)
|
||||
float v57 = v55 + v56; // L86, S[16,16)
|
||||
float v58 = v2[v6][(v7 + 8)]; // L87
|
||||
float v59 = v1 * v58; // L88, S[16,16)
|
||||
float v60 = v4[v5][(v7 + 8)]; // L89
|
||||
float v61;
|
||||
if (v5 == 0) { // L90
|
||||
v61 = v59; // L91
|
||||
} else {
|
||||
v61 = v58; // L93
|
||||
}
|
||||
float v62 = v13 * v60; // L95, S[16,16)
|
||||
float v63 = v61 + v62; // L96, S[16,16)
|
||||
float v64 = v2[v6][(v7 + 9)]; // L97
|
||||
float v65 = v1 * v64; // L98, S[16,16)
|
||||
float v66 = v4[v5][(v7 + 9)]; // L99
|
||||
float v67;
|
||||
if (v5 == 0) { // L100
|
||||
v67 = v65; // L101
|
||||
} else {
|
||||
v67 = v64; // L103
|
||||
}
|
||||
float v68 = v13 * v66; // L105, S[16,16)
|
||||
float v69 = v67 + v68; // L106, S[16,16)
|
||||
float v70 = v2[v6][(v7 + 10)]; // L107
|
||||
float v71 = v1 * v70; // L108, S[16,16)
|
||||
float v72 = v4[v5][(v7 + 10)]; // L109
|
||||
float v73;
|
||||
if (v5 == 0) { // L110
|
||||
v73 = v71; // L111
|
||||
} else {
|
||||
v73 = v70; // L113
|
||||
}
|
||||
float v74 = v13 * v72; // L115, S[16,16)
|
||||
float v75 = v73 + v74; // L116, S[16,16)
|
||||
float v76 = v2[v6][(v7 + 11)]; // L117
|
||||
float v77 = v1 * v76; // L118, S[16,16)
|
||||
float v78 = v4[v5][(v7 + 11)]; // L119
|
||||
float v79;
|
||||
if (v5 == 0) { // L120
|
||||
v79 = v77; // L121
|
||||
} else {
|
||||
v79 = v76; // L123
|
||||
}
|
||||
float v80 = v13 * v78; // L125, S[16,16)
|
||||
float v81 = v79 + v80; // L126, S[16,16)
|
||||
float v82 = v2[v6][(v7 + 12)]; // L127
|
||||
float v83 = v1 * v82; // L128, S[16,16)
|
||||
float v84 = v4[v5][(v7 + 12)]; // L129
|
||||
float v85;
|
||||
if (v5 == 0) { // L130
|
||||
v85 = v83; // L131
|
||||
} else {
|
||||
v85 = v82; // L133
|
||||
}
|
||||
float v86 = v13 * v84; // L135, S[16,16)
|
||||
float v87 = v85 + v86; // L136, S[16,16)
|
||||
float v88 = v2[v6][(v7 + 13)]; // L137
|
||||
float v89 = v1 * v88; // L138, S[16,16)
|
||||
float v90 = v4[v5][(v7 + 13)]; // L139
|
||||
float v91;
|
||||
if (v5 == 0) { // L140
|
||||
v91 = v89; // L141
|
||||
} else {
|
||||
v91 = v88; // L143
|
||||
}
|
||||
float v92 = v13 * v90; // L145, S[16,16)
|
||||
float v93 = v91 + v92; // L146, S[16,16)
|
||||
float v94 = v2[v6][(v7 + 14)]; // L147
|
||||
float v95 = v1 * v94; // L148, S[16,16)
|
||||
float v96 = v4[v5][(v7 + 14)]; // L149
|
||||
float v97;
|
||||
if (v5 == 0) { // L150
|
||||
v97 = v95; // L151
|
||||
} else {
|
||||
v97 = v94; // L153
|
||||
}
|
||||
float v98 = v13 * v96; // L155, S[16,16)
|
||||
float v99 = v97 + v98; // L156, S[16,16)
|
||||
float v100 = v2[v6][(v7 + 15)]; // L157
|
||||
float v101 = v1 * v100; // L158, S[16,16)
|
||||
float v102 = v4[v5][(v7 + 15)]; // L159
|
||||
float v103;
|
||||
if (v5 == 0) { // L160
|
||||
v103 = v101; // L161
|
||||
} else {
|
||||
v103 = v100; // L163
|
||||
}
|
||||
float v104 = v13 * v102; // L165, S[16,16)
|
||||
float v105 = v103 + v104; // L166, S[16,16)
|
||||
float v106 = v3[v6][(v5 + 1)]; // L167
|
||||
float v107 = v4[(v5 + 1)][v7]; // L168
|
||||
float v108 = v0 * v106; // L169, S[16,16)
|
||||
float v109 = v108 * v107; // L170, S[16,16)
|
||||
float v110 = v15 + v109; // L171, S[16,16)
|
||||
float v111 = v4[(v5 + 1)][(v7 + 1)]; // L172
|
||||
float v112 = v108 * v111; // L173, S[16,16)
|
||||
float v113 = v21 + v112; // L174, S[16,16)
|
||||
float v114 = v4[(v5 + 1)][(v7 + 2)]; // L175
|
||||
float v115 = v108 * v114; // L176, S[16,16)
|
||||
float v116 = v27 + v115; // L177, S[16,16)
|
||||
float v117 = v4[(v5 + 1)][(v7 + 3)]; // L178
|
||||
float v118 = v108 * v117; // L179, S[16,16)
|
||||
float v119 = v33 + v118; // L180, S[16,16)
|
||||
float v120 = v4[(v5 + 1)][(v7 + 4)]; // L181
|
||||
float v121 = v108 * v120; // L182, S[16,16)
|
||||
float v122 = v39 + v121; // L183, S[16,16)
|
||||
float v123 = v4[(v5 + 1)][(v7 + 5)]; // L184
|
||||
float v124 = v108 * v123; // L185, S[16,16)
|
||||
float v125 = v45 + v124; // L186, S[16,16)
|
||||
float v126 = v4[(v5 + 1)][(v7 + 6)]; // L187
|
||||
float v127 = v108 * v126; // L188, S[16,16)
|
||||
float v128 = v51 + v127; // L189, S[16,16)
|
||||
float v129 = v4[(v5 + 1)][(v7 + 7)]; // L190
|
||||
float v130 = v108 * v129; // L191, S[16,16)
|
||||
float v131 = v57 + v130; // L192, S[16,16)
|
||||
float v132 = v4[(v5 + 1)][(v7 + 8)]; // L193
|
||||
float v133 = v108 * v132; // L194, S[16,16)
|
||||
float v134 = v63 + v133; // L195, S[16,16)
|
||||
float v135 = v4[(v5 + 1)][(v7 + 9)]; // L196
|
||||
float v136 = v108 * v135; // L197, S[16,16)
|
||||
float v137 = v69 + v136; // L198, S[16,16)
|
||||
float v138 = v4[(v5 + 1)][(v7 + 10)]; // L199
|
||||
float v139 = v108 * v138; // L200, S[16,16)
|
||||
float v140 = v75 + v139; // L201, S[16,16)
|
||||
float v141 = v4[(v5 + 1)][(v7 + 11)]; // L202
|
||||
float v142 = v108 * v141; // L203, S[16,16)
|
||||
float v143 = v81 + v142; // L204, S[16,16)
|
||||
float v144 = v4[(v5 + 1)][(v7 + 12)]; // L205
|
||||
float v145 = v108 * v144; // L206, S[16,16)
|
||||
float v146 = v87 + v145; // L207, S[16,16)
|
||||
float v147 = v4[(v5 + 1)][(v7 + 13)]; // L208
|
||||
float v148 = v108 * v147; // L209, S[16,16)
|
||||
float v149 = v93 + v148; // L210, S[16,16)
|
||||
float v150 = v4[(v5 + 1)][(v7 + 14)]; // L211
|
||||
float v151 = v108 * v150; // L212, S[16,16)
|
||||
float v152 = v99 + v151; // L213, S[16,16)
|
||||
float v153 = v4[(v5 + 1)][(v7 + 15)]; // L214
|
||||
float v154 = v108 * v153; // L215, S[16,16)
|
||||
float v155 = v105 + v154; // L216, S[16,16)
|
||||
float v156 = v3[v6][(v5 + 2)]; // L217
|
||||
float v157 = v4[(v5 + 2)][v7]; // L218
|
||||
float v158 = v0 * v156; // L219, S[16,16)
|
||||
float v159 = v158 * v157; // L220, S[16,16)
|
||||
float v160 = v110 + v159; // L221, S[16,16)
|
||||
float v161 = v4[(v5 + 2)][(v7 + 1)]; // L222
|
||||
float v162 = v158 * v161; // L223, S[16,16)
|
||||
float v163 = v113 + v162; // L224, S[16,16)
|
||||
float v164 = v4[(v5 + 2)][(v7 + 2)]; // L225
|
||||
float v165 = v158 * v164; // L226, S[16,16)
|
||||
float v166 = v116 + v165; // L227, S[16,16)
|
||||
float v167 = v4[(v5 + 2)][(v7 + 3)]; // L228
|
||||
float v168 = v158 * v167; // L229, S[16,16)
|
||||
float v169 = v119 + v168; // L230, S[16,16)
|
||||
float v170 = v4[(v5 + 2)][(v7 + 4)]; // L231
|
||||
float v171 = v158 * v170; // L232, S[16,16)
|
||||
float v172 = v122 + v171; // L233, S[16,16)
|
||||
float v173 = v4[(v5 + 2)][(v7 + 5)]; // L234
|
||||
float v174 = v158 * v173; // L235, S[16,16)
|
||||
float v175 = v125 + v174; // L236, S[16,16)
|
||||
float v176 = v4[(v5 + 2)][(v7 + 6)]; // L237
|
||||
float v177 = v158 * v176; // L238, S[16,16)
|
||||
float v178 = v128 + v177; // L239, S[16,16)
|
||||
float v179 = v4[(v5 + 2)][(v7 + 7)]; // L240
|
||||
float v180 = v158 * v179; // L241, S[16,16)
|
||||
float v181 = v131 + v180; // L242, S[16,16)
|
||||
float v182 = v4[(v5 + 2)][(v7 + 8)]; // L243
|
||||
float v183 = v158 * v182; // L244, S[16,16)
|
||||
float v184 = v134 + v183; // L245, S[16,16)
|
||||
float v185 = v4[(v5 + 2)][(v7 + 9)]; // L246
|
||||
float v186 = v158 * v185; // L247, S[16,16)
|
||||
float v187 = v137 + v186; // L248, S[16,16)
|
||||
float v188 = v4[(v5 + 2)][(v7 + 10)]; // L249
|
||||
float v189 = v158 * v188; // L250, S[16,16)
|
||||
float v190 = v140 + v189; // L251, S[16,16)
|
||||
float v191 = v4[(v5 + 2)][(v7 + 11)]; // L252
|
||||
float v192 = v158 * v191; // L253, S[16,16)
|
||||
float v193 = v143 + v192; // L254, S[16,16)
|
||||
float v194 = v4[(v5 + 2)][(v7 + 12)]; // L255
|
||||
float v195 = v158 * v194; // L256, S[16,16)
|
||||
float v196 = v146 + v195; // L257, S[16,16)
|
||||
float v197 = v4[(v5 + 2)][(v7 + 13)]; // L258
|
||||
float v198 = v158 * v197; // L259, S[16,16)
|
||||
float v199 = v149 + v198; // L260, S[16,16)
|
||||
float v200 = v4[(v5 + 2)][(v7 + 14)]; // L261
|
||||
float v201 = v158 * v200; // L262, S[16,16)
|
||||
float v202 = v152 + v201; // L263, S[16,16)
|
||||
float v203 = v4[(v5 + 2)][(v7 + 15)]; // L264
|
||||
float v204 = v158 * v203; // L265, S[16,16)
|
||||
float v205 = v155 + v204; // L266, S[16,16)
|
||||
float v206 = v3[v6][(v5 + 3)]; // L267
|
||||
float v207 = v4[(v5 + 3)][v7]; // L268
|
||||
float v208 = v0 * v206; // L269, S[16,16)
|
||||
float v209 = v208 * v207; // L270, S[16,16)
|
||||
float v210 = v160 + v209; // L271, S[16,16)
|
||||
float v211 = v4[(v5 + 3)][(v7 + 1)]; // L272
|
||||
float v212 = v208 * v211; // L273, S[16,16)
|
||||
float v213 = v163 + v212; // L274, S[16,16)
|
||||
float v214 = v4[(v5 + 3)][(v7 + 2)]; // L275
|
||||
float v215 = v208 * v214; // L276, S[16,16)
|
||||
float v216 = v166 + v215; // L277, S[16,16)
|
||||
float v217 = v4[(v5 + 3)][(v7 + 3)]; // L278
|
||||
float v218 = v208 * v217; // L279, S[16,16)
|
||||
float v219 = v169 + v218; // L280, S[16,16)
|
||||
float v220 = v4[(v5 + 3)][(v7 + 4)]; // L281
|
||||
float v221 = v208 * v220; // L282, S[16,16)
|
||||
float v222 = v172 + v221; // L283, S[16,16)
|
||||
float v223 = v4[(v5 + 3)][(v7 + 5)]; // L284
|
||||
float v224 = v208 * v223; // L285, S[16,16)
|
||||
float v225 = v175 + v224; // L286, S[16,16)
|
||||
float v226 = v4[(v5 + 3)][(v7 + 6)]; // L287
|
||||
float v227 = v208 * v226; // L288, S[16,16)
|
||||
float v228 = v178 + v227; // L289, S[16,16)
|
||||
float v229 = v4[(v5 + 3)][(v7 + 7)]; // L290
|
||||
float v230 = v208 * v229; // L291, S[16,16)
|
||||
float v231 = v181 + v230; // L292, S[16,16)
|
||||
float v232 = v4[(v5 + 3)][(v7 + 8)]; // L293
|
||||
float v233 = v208 * v232; // L294, S[16,16)
|
||||
float v234 = v184 + v233; // L295, S[16,16)
|
||||
float v235 = v4[(v5 + 3)][(v7 + 9)]; // L296
|
||||
float v236 = v208 * v235; // L297, S[16,16)
|
||||
float v237 = v187 + v236; // L298, S[16,16)
|
||||
float v238 = v4[(v5 + 3)][(v7 + 10)]; // L299
|
||||
float v239 = v208 * v238; // L300, S[16,16)
|
||||
float v240 = v190 + v239; // L301, S[16,16)
|
||||
float v241 = v4[(v5 + 3)][(v7 + 11)]; // L302
|
||||
float v242 = v208 * v241; // L303, S[16,16)
|
||||
float v243 = v193 + v242; // L304, S[16,16)
|
||||
float v244 = v4[(v5 + 3)][(v7 + 12)]; // L305
|
||||
float v245 = v208 * v244; // L306, S[16,16)
|
||||
float v246 = v196 + v245; // L307, S[16,16)
|
||||
float v247 = v4[(v5 + 3)][(v7 + 13)]; // L308
|
||||
float v248 = v208 * v247; // L309, S[16,16)
|
||||
float v249 = v199 + v248; // L310, S[16,16)
|
||||
float v250 = v4[(v5 + 3)][(v7 + 14)]; // L311
|
||||
float v251 = v208 * v250; // L312, S[16,16)
|
||||
float v252 = v202 + v251; // L313, S[16,16)
|
||||
float v253 = v4[(v5 + 3)][(v7 + 15)]; // L314
|
||||
float v254 = v208 * v253; // L315, S[16,16)
|
||||
float v255 = v205 + v254; // L316, S[16,16)
|
||||
float v256 = v3[v6][(v5 + 4)]; // L317
|
||||
float v257 = v4[(v5 + 4)][v7]; // L318
|
||||
float v258 = v0 * v256; // L319, S[16,16)
|
||||
float v259 = v258 * v257; // L320, S[16,16)
|
||||
float v260 = v210 + v259; // L321, S[16,16)
|
||||
float v261 = v4[(v5 + 4)][(v7 + 1)]; // L322
|
||||
float v262 = v258 * v261; // L323, S[16,16)
|
||||
float v263 = v213 + v262; // L324, S[16,16)
|
||||
float v264 = v4[(v5 + 4)][(v7 + 2)]; // L325
|
||||
float v265 = v258 * v264; // L326, S[16,16)
|
||||
float v266 = v216 + v265; // L327, S[16,16)
|
||||
float v267 = v4[(v5 + 4)][(v7 + 3)]; // L328
|
||||
float v268 = v258 * v267; // L329, S[16,16)
|
||||
float v269 = v219 + v268; // L330, S[16,16)
|
||||
float v270 = v4[(v5 + 4)][(v7 + 4)]; // L331
|
||||
float v271 = v258 * v270; // L332, S[16,16)
|
||||
float v272 = v222 + v271; // L333, S[16,16)
|
||||
float v273 = v4[(v5 + 4)][(v7 + 5)]; // L334
|
||||
float v274 = v258 * v273; // L335, S[16,16)
|
||||
float v275 = v225 + v274; // L336, S[16,16)
|
||||
float v276 = v4[(v5 + 4)][(v7 + 6)]; // L337
|
||||
float v277 = v258 * v276; // L338, S[16,16)
|
||||
float v278 = v228 + v277; // L339, S[16,16)
|
||||
float v279 = v4[(v5 + 4)][(v7 + 7)]; // L340
|
||||
float v280 = v258 * v279; // L341, S[16,16)
|
||||
float v281 = v231 + v280; // L342, S[16,16)
|
||||
float v282 = v4[(v5 + 4)][(v7 + 8)]; // L343
|
||||
float v283 = v258 * v282; // L344, S[16,16)
|
||||
float v284 = v234 + v283; // L345, S[16,16)
|
||||
float v285 = v4[(v5 + 4)][(v7 + 9)]; // L346
|
||||
float v286 = v258 * v285; // L347, S[16,16)
|
||||
float v287 = v237 + v286; // L348, S[16,16)
|
||||
float v288 = v4[(v5 + 4)][(v7 + 10)]; // L349
|
||||
float v289 = v258 * v288; // L350, S[16,16)
|
||||
float v290 = v240 + v289; // L351, S[16,16)
|
||||
float v291 = v4[(v5 + 4)][(v7 + 11)]; // L352
|
||||
float v292 = v258 * v291; // L353, S[16,16)
|
||||
float v293 = v243 + v292; // L354, S[16,16)
|
||||
float v294 = v4[(v5 + 4)][(v7 + 12)]; // L355
|
||||
float v295 = v258 * v294; // L356, S[16,16)
|
||||
float v296 = v246 + v295; // L357, S[16,16)
|
||||
float v297 = v4[(v5 + 4)][(v7 + 13)]; // L358
|
||||
float v298 = v258 * v297; // L359, S[16,16)
|
||||
float v299 = v249 + v298; // L360, S[16,16)
|
||||
float v300 = v4[(v5 + 4)][(v7 + 14)]; // L361
|
||||
float v301 = v258 * v300; // L362, S[16,16)
|
||||
float v302 = v252 + v301; // L363, S[16,16)
|
||||
float v303 = v4[(v5 + 4)][(v7 + 15)]; // L364
|
||||
float v304 = v258 * v303; // L365, S[16,16)
|
||||
float v305 = v255 + v304; // L366, S[16,16)
|
||||
float v306 = v3[v6][(v5 + 5)]; // L367
|
||||
float v307 = v4[(v5 + 5)][v7]; // L368
|
||||
float v308 = v0 * v306; // L369, S[16,16)
|
||||
float v309 = v308 * v307; // L370, S[16,16)
|
||||
float v310 = v260 + v309; // L371, S[16,16)
|
||||
float v311 = v4[(v5 + 5)][(v7 + 1)]; // L372
|
||||
float v312 = v308 * v311; // L373, S[16,16)
|
||||
float v313 = v263 + v312; // L374, S[16,16)
|
||||
float v314 = v4[(v5 + 5)][(v7 + 2)]; // L375
|
||||
float v315 = v308 * v314; // L376, S[16,16)
|
||||
float v316 = v266 + v315; // L377, S[16,16)
|
||||
float v317 = v4[(v5 + 5)][(v7 + 3)]; // L378
|
||||
float v318 = v308 * v317; // L379, S[16,16)
|
||||
float v319 = v269 + v318; // L380, S[16,16)
|
||||
float v320 = v4[(v5 + 5)][(v7 + 4)]; // L381
|
||||
float v321 = v308 * v320; // L382, S[16,16)
|
||||
float v322 = v272 + v321; // L383, S[16,16)
|
||||
float v323 = v4[(v5 + 5)][(v7 + 5)]; // L384
|
||||
float v324 = v308 * v323; // L385, S[16,16)
|
||||
float v325 = v275 + v324; // L386, S[16,16)
|
||||
float v326 = v4[(v5 + 5)][(v7 + 6)]; // L387
|
||||
float v327 = v308 * v326; // L388, S[16,16)
|
||||
float v328 = v278 + v327; // L389, S[16,16)
|
||||
float v329 = v4[(v5 + 5)][(v7 + 7)]; // L390
|
||||
float v330 = v308 * v329; // L391, S[16,16)
|
||||
float v331 = v281 + v330; // L392, S[16,16)
|
||||
float v332 = v4[(v5 + 5)][(v7 + 8)]; // L393
|
||||
float v333 = v308 * v332; // L394, S[16,16)
|
||||
float v334 = v284 + v333; // L395, S[16,16)
|
||||
float v335 = v4[(v5 + 5)][(v7 + 9)]; // L396
|
||||
float v336 = v308 * v335; // L397, S[16,16)
|
||||
float v337 = v287 + v336; // L398, S[16,16)
|
||||
float v338 = v4[(v5 + 5)][(v7 + 10)]; // L399
|
||||
float v339 = v308 * v338; // L400, S[16,16)
|
||||
float v340 = v290 + v339; // L401, S[16,16)
|
||||
float v341 = v4[(v5 + 5)][(v7 + 11)]; // L402
|
||||
float v342 = v308 * v341; // L403, S[16,16)
|
||||
float v343 = v293 + v342; // L404, S[16,16)
|
||||
float v344 = v4[(v5 + 5)][(v7 + 12)]; // L405
|
||||
float v345 = v308 * v344; // L406, S[16,16)
|
||||
float v346 = v296 + v345; // L407, S[16,16)
|
||||
float v347 = v4[(v5 + 5)][(v7 + 13)]; // L408
|
||||
float v348 = v308 * v347; // L409, S[16,16)
|
||||
float v349 = v299 + v348; // L410, S[16,16)
|
||||
float v350 = v4[(v5 + 5)][(v7 + 14)]; // L411
|
||||
float v351 = v308 * v350; // L412, S[16,16)
|
||||
float v352 = v302 + v351; // L413, S[16,16)
|
||||
float v353 = v4[(v5 + 5)][(v7 + 15)]; // L414
|
||||
float v354 = v308 * v353; // L415, S[16,16)
|
||||
float v355 = v305 + v354; // L416, S[16,16)
|
||||
float v356 = v3[v6][(v5 + 6)]; // L417
|
||||
float v357 = v4[(v5 + 6)][v7]; // L418
|
||||
float v358 = v0 * v356; // L419, S[16,16)
|
||||
float v359 = v358 * v357; // L420, S[16,16)
|
||||
float v360 = v310 + v359; // L421, S[16,16)
|
||||
float v361 = v4[(v5 + 6)][(v7 + 1)]; // L422
|
||||
float v362 = v358 * v361; // L423, S[16,16)
|
||||
float v363 = v313 + v362; // L424, S[16,16)
|
||||
float v364 = v4[(v5 + 6)][(v7 + 2)]; // L425
|
||||
float v365 = v358 * v364; // L426, S[16,16)
|
||||
float v366 = v316 + v365; // L427, S[16,16)
|
||||
float v367 = v4[(v5 + 6)][(v7 + 3)]; // L428
|
||||
float v368 = v358 * v367; // L429, S[16,16)
|
||||
float v369 = v319 + v368; // L430, S[16,16)
|
||||
float v370 = v4[(v5 + 6)][(v7 + 4)]; // L431
|
||||
float v371 = v358 * v370; // L432, S[16,16)
|
||||
float v372 = v322 + v371; // L433, S[16,16)
|
||||
float v373 = v4[(v5 + 6)][(v7 + 5)]; // L434
|
||||
float v374 = v358 * v373; // L435, S[16,16)
|
||||
float v375 = v325 + v374; // L436, S[16,16)
|
||||
float v376 = v4[(v5 + 6)][(v7 + 6)]; // L437
|
||||
float v377 = v358 * v376; // L438, S[16,16)
|
||||
float v378 = v328 + v377; // L439, S[16,16)
|
||||
float v379 = v4[(v5 + 6)][(v7 + 7)]; // L440
|
||||
float v380 = v358 * v379; // L441, S[16,16)
|
||||
float v381 = v331 + v380; // L442, S[16,16)
|
||||
float v382 = v4[(v5 + 6)][(v7 + 8)]; // L443
|
||||
float v383 = v358 * v382; // L444, S[16,16)
|
||||
float v384 = v334 + v383; // L445, S[16,16)
|
||||
float v385 = v4[(v5 + 6)][(v7 + 9)]; // L446
|
||||
float v386 = v358 * v385; // L447, S[16,16)
|
||||
float v387 = v337 + v386; // L448, S[16,16)
|
||||
float v388 = v4[(v5 + 6)][(v7 + 10)]; // L449
|
||||
float v389 = v358 * v388; // L450, S[16,16)
|
||||
float v390 = v340 + v389; // L451, S[16,16)
|
||||
float v391 = v4[(v5 + 6)][(v7 + 11)]; // L452
|
||||
float v392 = v358 * v391; // L453, S[16,16)
|
||||
float v393 = v343 + v392; // L454, S[16,16)
|
||||
float v394 = v4[(v5 + 6)][(v7 + 12)]; // L455
|
||||
float v395 = v358 * v394; // L456, S[16,16)
|
||||
float v396 = v346 + v395; // L457, S[16,16)
|
||||
float v397 = v4[(v5 + 6)][(v7 + 13)]; // L458
|
||||
float v398 = v358 * v397; // L459, S[16,16)
|
||||
float v399 = v349 + v398; // L460, S[16,16)
|
||||
float v400 = v4[(v5 + 6)][(v7 + 14)]; // L461
|
||||
float v401 = v358 * v400; // L462, S[16,16)
|
||||
float v402 = v352 + v401; // L463, S[16,16)
|
||||
float v403 = v4[(v5 + 6)][(v7 + 15)]; // L464
|
||||
float v404 = v358 * v403; // L465, S[16,16)
|
||||
float v405 = v355 + v404; // L466, S[16,16)
|
||||
float v406 = v3[v6][(v5 + 7)]; // L467
|
||||
float v407 = v4[(v5 + 7)][v7]; // L468
|
||||
float v408 = v0 * v406; // L469, S[16,16)
|
||||
float v409 = v408 * v407; // L470, S[16,16)
|
||||
float v410 = v360 + v409; // L471, S[16,16)
|
||||
v2[v6][v7] = v410; // L472, S[16,16)
|
||||
float v411 = v4[(v5 + 7)][(v7 + 1)]; // L473
|
||||
float v412 = v408 * v411; // L474, S[16,16)
|
||||
float v413 = v363 + v412; // L475, S[16,16)
|
||||
v2[v6][(v7 + 1)] = v413; // L476
|
||||
float v414 = v4[(v5 + 7)][(v7 + 2)]; // L477
|
||||
float v415 = v408 * v414; // L478, S[16,16)
|
||||
float v416 = v366 + v415; // L479, S[16,16)
|
||||
v2[v6][(v7 + 2)] = v416; // L480
|
||||
float v417 = v4[(v5 + 7)][(v7 + 3)]; // L481
|
||||
float v418 = v408 * v417; // L482, S[16,16)
|
||||
float v419 = v369 + v418; // L483, S[16,16)
|
||||
v2[v6][(v7 + 3)] = v419; // L484
|
||||
float v420 = v4[(v5 + 7)][(v7 + 4)]; // L485
|
||||
float v421 = v408 * v420; // L486, S[16,16)
|
||||
float v422 = v372 + v421; // L487, S[16,16)
|
||||
v2[v6][(v7 + 4)] = v422; // L488
|
||||
float v423 = v4[(v5 + 7)][(v7 + 5)]; // L489
|
||||
float v424 = v408 * v423; // L490, S[16,16)
|
||||
float v425 = v375 + v424; // L491, S[16,16)
|
||||
v2[v6][(v7 + 5)] = v425; // L492
|
||||
float v426 = v4[(v5 + 7)][(v7 + 6)]; // L493
|
||||
float v427 = v408 * v426; // L494, S[16,16)
|
||||
float v428 = v378 + v427; // L495, S[16,16)
|
||||
v2[v6][(v7 + 6)] = v428; // L496
|
||||
float v429 = v4[(v5 + 7)][(v7 + 7)]; // L497
|
||||
float v430 = v408 * v429; // L498, S[16,16)
|
||||
float v431 = v381 + v430; // L499, S[16,16)
|
||||
v2[v6][(v7 + 7)] = v431; // L500
|
||||
float v432 = v4[(v5 + 7)][(v7 + 8)]; // L501
|
||||
float v433 = v408 * v432; // L502, S[16,16)
|
||||
float v434 = v384 + v433; // L503, S[16,16)
|
||||
v2[v6][(v7 + 8)] = v434; // L504
|
||||
float v435 = v4[(v5 + 7)][(v7 + 9)]; // L505
|
||||
float v436 = v408 * v435; // L506, S[16,16)
|
||||
float v437 = v387 + v436; // L507, S[16,16)
|
||||
v2[v6][(v7 + 9)] = v437; // L508
|
||||
float v438 = v4[(v5 + 7)][(v7 + 10)]; // L509
|
||||
float v439 = v408 * v438; // L510, S[16,16)
|
||||
float v440 = v390 + v439; // L511, S[16,16)
|
||||
v2[v6][(v7 + 10)] = v440; // L512
|
||||
float v441 = v4[(v5 + 7)][(v7 + 11)]; // L513
|
||||
float v442 = v408 * v441; // L514, S[16,16)
|
||||
float v443 = v393 + v442; // L515, S[16,16)
|
||||
v2[v6][(v7 + 11)] = v443; // L516
|
||||
float v444 = v4[(v5 + 7)][(v7 + 12)]; // L517
|
||||
float v445 = v408 * v444; // L518, S[16,16)
|
||||
float v446 = v396 + v445; // L519, S[16,16)
|
||||
v2[v6][(v7 + 12)] = v446; // L520
|
||||
float v447 = v4[(v5 + 7)][(v7 + 13)]; // L521
|
||||
float v448 = v408 * v447; // L522, S[16,16)
|
||||
float v449 = v399 + v448; // L523, S[16,16)
|
||||
v2[v6][(v7 + 13)] = v449; // L524
|
||||
float v450 = v4[(v5 + 7)][(v7 + 14)]; // L525
|
||||
float v451 = v408 * v450; // L526, S[16,16)
|
||||
float v452 = v402 + v451; // L527, S[16,16)
|
||||
v2[v6][(v7 + 14)] = v452; // L528
|
||||
float v453 = v4[(v5 + 7)][(v7 + 15)]; // L529
|
||||
float v454 = v408 * v453; // L530, S[16,16)
|
||||
float v455 = v405 + v454; // L531, S[16,16)
|
||||
v2[v6][(v7 + 15)] = v455; // L532
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=402661378
|
||||
/// DSP=18
|
||||
void gesummv_4096(
|
||||
float v0,
|
||||
float v1,
|
||||
float v2[4096][4096],
|
||||
float v3[4096][4096],
|
||||
float v4[4096],
|
||||
float v5[4096],
|
||||
float v6[4096]
|
||||
) { // L2
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v1 bundle=ctrl
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
#pragma HLS interface bram port=v5
|
||||
#pragma HLS interface bram port=v6
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v5 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v6 core=ram_s2p_bram
|
||||
|
||||
for (int v7 = 0; v7 < 4096; v7 += 1) { // L3, S[0,402661378), latency=98306
|
||||
for (int v8 = 0; v8 < 4096; v8 += 1) { // L4, S[0,98306), latency=24
|
||||
float v9 = v2[v7][v8]; // L5, S[0,2)
|
||||
float v10 = v5[v8]; // L6, S[0,2)
|
||||
float v11 = v4[v7]; // L7, S[4,6)
|
||||
float v12 = v9 * v10; // L8, S[2,6)
|
||||
float v13 = v11 + v12; // L9, S[6,11)
|
||||
v4[v7] = v13; // L10, S[11,12)
|
||||
float v14 = v3[v7][v8]; // L11, S[0,2)
|
||||
float v15 = v5[v8]; // L12, S[0,2)
|
||||
float v16 = v6[v7]; // L13, S[4,6)
|
||||
float v17 = v14 * v15; // L14, S[2,6)
|
||||
float v18 = v16 + v17; // L15, S[6,11)
|
||||
v6[v7] = v18; // L16, S[11,12)
|
||||
}
|
||||
float v19 = v4[v7]; // L18, S[98294,98296)
|
||||
float v20 = v6[v7]; // L19, S[98294,98296)
|
||||
float v21 = v0 * v19; // L20, S[98296,98300)
|
||||
float v22 = v1 * v20; // L21, S[98296,98300)
|
||||
float v23 = v21 + v22; // L22, S[98300,98305)
|
||||
v6[v7] = v23; // L23, S[98305,98306)
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,63 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=756300136450
|
||||
/// DSP=11
|
||||
void syr2k_4096(
|
||||
float v0,
|
||||
float v1,
|
||||
float v2[4096][4096],
|
||||
float v3[4096][4096],
|
||||
float v4[4096][4096]
|
||||
) { // L3
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v1 bundle=ctrl
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
#pragma HLS interface bram port=v4
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v4 core=ram_s2p_bram
|
||||
|
||||
for (int v5 = 0; v5 < 4096; v5 += 1) { // L4, S[0,756300136450), latency=184643588
|
||||
for (int v6 = 0; v6 < (v5 + 1); v6 += 1) { // L5, S[0,184643588), latency=90114
|
||||
float v7 = v2[v5][v6]; // L6, S[90099,90101)
|
||||
float v8 = v1 * v7; // L7, S[90101,90105)
|
||||
v2[v5][v6] = v8; // L8, S[90105,90106)
|
||||
for (int v9 = 0; v9 < 4096; v9 += 1) { // L9, S[0,90114), latency=22
|
||||
float v10 = v3[v5][v9]; // L10, S[0,2)
|
||||
float v11 = v4[v6][v9]; // L11, S[0,2)
|
||||
float v12 = v4[v5][v9]; // L12, S[1,3)
|
||||
float v13 = v3[v6][v9]; // L13, S[1,3)
|
||||
float v14 = v2[v5][v6]; // L14, S[14,16)
|
||||
float v15 = v10 * v11; // L15, S[3,7)
|
||||
float v16 = v12 * v13; // L16, S[3,7)
|
||||
float v17 = v15 + v16; // L17, S[7,12)
|
||||
float v18 = v0 * v17; // L18, S[12,16)
|
||||
float v19 = v14 + v18; // L19, S[16,21)
|
||||
v2[v5][v6] = v19; // L20, S[21,22)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,55 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=550041042946
|
||||
/// DSP=8
|
||||
void syrk_4096(
|
||||
float v0,
|
||||
float v1,
|
||||
float v2[4096][4096],
|
||||
float v3[4096][4096]
|
||||
) { // L3
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v1 bundle=ctrl
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
for (int v4 = 0; v4 < 4096; v4 += 1) { // L4, S[0,550041042946), latency=134287364
|
||||
for (int v5 = 0; v5 < (v4 + 1); v5 += 1) { // L5, S[0,134287364), latency=65538
|
||||
float v6 = v2[v4][v5]; // L6, S[65523,65525)
|
||||
float v7 = v1 * v6; // L7, S[65525,65529)
|
||||
v2[v4][v5] = v7; // L8, S[65529,65530)
|
||||
for (int v8 = 0; v8 < 4096; v8 += 1) { // L9, S[0,65538), latency=16
|
||||
float v9 = v3[v4][v8]; // L10, S[0,2)
|
||||
float v10 = v3[v5][v8]; // L11, S[4,6)
|
||||
float v11 = v2[v4][v5]; // L12, S[8,10)
|
||||
float v12 = v0 * v9; // L13, S[2,6)
|
||||
float v13 = v12 * v10; // L14, S[6,10)
|
||||
float v14 = v11 + v13; // L15, S[10,15)
|
||||
v2[v4][v5] = v14; // L16, S[15,16)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,378 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=51539607558
|
||||
/// DSP=0
|
||||
void syrk_4096(
|
||||
float v0,
|
||||
float v1,
|
||||
float v2[4096][4096],
|
||||
float v3[4096][4096]
|
||||
) { // L1
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v1 bundle=ctrl
|
||||
#pragma HLS interface bram port=v2
|
||||
#pragma HLS interface bram port=v3
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS array_partition variable=v3 cyclic factor=64 dim=2
|
||||
#pragma HLS resource variable=v3 core=ram_s2p_bram
|
||||
|
||||
for (int v4 = 0; v4 < 4096; v4 += 64) { // L2
|
||||
for (int v5 = 0; v5 < 4096; v5 += 1) { // L3
|
||||
for (int v6 = 0; v6 < 4096; v6 += 1) { // L4
|
||||
#pragma HLS pipeline II=3
|
||||
if ((v5 - v6) >= 0) { // L5, S[16,16)
|
||||
float v7 = v2[v5][v6]; // L6, S[16,16)
|
||||
float v8 = v1 * v7; // L7, S[16,16)
|
||||
float v9 = v3[v5][v4]; // L8, S[16,16)
|
||||
float v10 = v3[v6][v4]; // L9, S[16,16)
|
||||
float v11;
|
||||
if (v4 == 0) { // L10
|
||||
v11 = v8; // L11
|
||||
} else {
|
||||
v11 = v7; // L13
|
||||
}
|
||||
float v12 = v0 * v9; // L15, S[16,16)
|
||||
float v13 = v12 * v10; // L16, S[16,16)
|
||||
float v14 = v11 + v13; // L17, S[16,16)
|
||||
float v15 = v3[v5][(v4 + 1)]; // L18
|
||||
float v16 = v3[v6][(v4 + 1)]; // L19
|
||||
float v17 = v0 * v15; // L20, S[16,16)
|
||||
float v18 = v17 * v16; // L21, S[16,16)
|
||||
float v19 = v14 + v18; // L22, S[16,16)
|
||||
float v20 = v3[v5][(v4 + 2)]; // L23
|
||||
float v21 = v3[v6][(v4 + 2)]; // L24
|
||||
float v22 = v0 * v20; // L25, S[16,16)
|
||||
float v23 = v22 * v21; // L26, S[16,16)
|
||||
float v24 = v19 + v23; // L27, S[16,16)
|
||||
float v25 = v3[v5][(v4 + 3)]; // L28
|
||||
float v26 = v3[v6][(v4 + 3)]; // L29
|
||||
float v27 = v0 * v25; // L30, S[16,16)
|
||||
float v28 = v27 * v26; // L31, S[16,16)
|
||||
float v29 = v24 + v28; // L32, S[16,16)
|
||||
float v30 = v3[v5][(v4 + 4)]; // L33
|
||||
float v31 = v3[v6][(v4 + 4)]; // L34
|
||||
float v32 = v0 * v30; // L35, S[16,16)
|
||||
float v33 = v32 * v31; // L36, S[16,16)
|
||||
float v34 = v29 + v33; // L37, S[16,16)
|
||||
float v35 = v3[v5][(v4 + 5)]; // L38
|
||||
float v36 = v3[v6][(v4 + 5)]; // L39
|
||||
float v37 = v0 * v35; // L40, S[16,16)
|
||||
float v38 = v37 * v36; // L41, S[16,16)
|
||||
float v39 = v34 + v38; // L42, S[16,16)
|
||||
float v40 = v3[v5][(v4 + 6)]; // L43
|
||||
float v41 = v3[v6][(v4 + 6)]; // L44
|
||||
float v42 = v0 * v40; // L45, S[16,16)
|
||||
float v43 = v42 * v41; // L46, S[16,16)
|
||||
float v44 = v39 + v43; // L47, S[16,16)
|
||||
float v45 = v3[v5][(v4 + 7)]; // L48
|
||||
float v46 = v3[v6][(v4 + 7)]; // L49
|
||||
float v47 = v0 * v45; // L50, S[16,16)
|
||||
float v48 = v47 * v46; // L51, S[16,16)
|
||||
float v49 = v44 + v48; // L52, S[16,16)
|
||||
float v50 = v3[v5][(v4 + 8)]; // L53
|
||||
float v51 = v3[v6][(v4 + 8)]; // L54
|
||||
float v52 = v0 * v50; // L55, S[16,16)
|
||||
float v53 = v52 * v51; // L56, S[16,16)
|
||||
float v54 = v49 + v53; // L57, S[16,16)
|
||||
float v55 = v3[v5][(v4 + 9)]; // L58
|
||||
float v56 = v3[v6][(v4 + 9)]; // L59
|
||||
float v57 = v0 * v55; // L60, S[16,16)
|
||||
float v58 = v57 * v56; // L61, S[16,16)
|
||||
float v59 = v54 + v58; // L62, S[16,16)
|
||||
float v60 = v3[v5][(v4 + 10)]; // L63
|
||||
float v61 = v3[v6][(v4 + 10)]; // L64
|
||||
float v62 = v0 * v60; // L65, S[16,16)
|
||||
float v63 = v62 * v61; // L66, S[16,16)
|
||||
float v64 = v59 + v63; // L67, S[16,16)
|
||||
float v65 = v3[v5][(v4 + 11)]; // L68
|
||||
float v66 = v3[v6][(v4 + 11)]; // L69
|
||||
float v67 = v0 * v65; // L70, S[16,16)
|
||||
float v68 = v67 * v66; // L71, S[16,16)
|
||||
float v69 = v64 + v68; // L72, S[16,16)
|
||||
float v70 = v3[v5][(v4 + 12)]; // L73
|
||||
float v71 = v3[v6][(v4 + 12)]; // L74
|
||||
float v72 = v0 * v70; // L75, S[16,16)
|
||||
float v73 = v72 * v71; // L76, S[16,16)
|
||||
float v74 = v69 + v73; // L77, S[16,16)
|
||||
float v75 = v3[v5][(v4 + 13)]; // L78
|
||||
float v76 = v3[v6][(v4 + 13)]; // L79
|
||||
float v77 = v0 * v75; // L80, S[16,16)
|
||||
float v78 = v77 * v76; // L81, S[16,16)
|
||||
float v79 = v74 + v78; // L82, S[16,16)
|
||||
float v80 = v3[v5][(v4 + 14)]; // L83
|
||||
float v81 = v3[v6][(v4 + 14)]; // L84
|
||||
float v82 = v0 * v80; // L85, S[16,16)
|
||||
float v83 = v82 * v81; // L86, S[16,16)
|
||||
float v84 = v79 + v83; // L87, S[16,16)
|
||||
float v85 = v3[v5][(v4 + 15)]; // L88
|
||||
float v86 = v3[v6][(v4 + 15)]; // L89
|
||||
float v87 = v0 * v85; // L90, S[16,16)
|
||||
float v88 = v87 * v86; // L91, S[16,16)
|
||||
float v89 = v84 + v88; // L92, S[16,16)
|
||||
float v90 = v3[v5][(v4 + 16)]; // L93
|
||||
float v91 = v3[v6][(v4 + 16)]; // L94
|
||||
float v92 = v0 * v90; // L95, S[16,16)
|
||||
float v93 = v92 * v91; // L96, S[16,16)
|
||||
float v94 = v89 + v93; // L97, S[16,16)
|
||||
float v95 = v3[v5][(v4 + 17)]; // L98
|
||||
float v96 = v3[v6][(v4 + 17)]; // L99
|
||||
float v97 = v0 * v95; // L100, S[16,16)
|
||||
float v98 = v97 * v96; // L101, S[16,16)
|
||||
float v99 = v94 + v98; // L102, S[16,16)
|
||||
float v100 = v3[v5][(v4 + 18)]; // L103
|
||||
float v101 = v3[v6][(v4 + 18)]; // L104
|
||||
float v102 = v0 * v100; // L105, S[16,16)
|
||||
float v103 = v102 * v101; // L106, S[16,16)
|
||||
float v104 = v99 + v103; // L107, S[16,16)
|
||||
float v105 = v3[v5][(v4 + 19)]; // L108
|
||||
float v106 = v3[v6][(v4 + 19)]; // L109
|
||||
float v107 = v0 * v105; // L110, S[16,16)
|
||||
float v108 = v107 * v106; // L111, S[16,16)
|
||||
float v109 = v104 + v108; // L112, S[16,16)
|
||||
float v110 = v3[v5][(v4 + 20)]; // L113
|
||||
float v111 = v3[v6][(v4 + 20)]; // L114
|
||||
float v112 = v0 * v110; // L115, S[16,16)
|
||||
float v113 = v112 * v111; // L116, S[16,16)
|
||||
float v114 = v109 + v113; // L117, S[16,16)
|
||||
float v115 = v3[v5][(v4 + 21)]; // L118
|
||||
float v116 = v3[v6][(v4 + 21)]; // L119
|
||||
float v117 = v0 * v115; // L120, S[16,16)
|
||||
float v118 = v117 * v116; // L121, S[16,16)
|
||||
float v119 = v114 + v118; // L122, S[16,16)
|
||||
float v120 = v3[v5][(v4 + 22)]; // L123
|
||||
float v121 = v3[v6][(v4 + 22)]; // L124
|
||||
float v122 = v0 * v120; // L125, S[16,16)
|
||||
float v123 = v122 * v121; // L126, S[16,16)
|
||||
float v124 = v119 + v123; // L127, S[16,16)
|
||||
float v125 = v3[v5][(v4 + 23)]; // L128
|
||||
float v126 = v3[v6][(v4 + 23)]; // L129
|
||||
float v127 = v0 * v125; // L130, S[16,16)
|
||||
float v128 = v127 * v126; // L131, S[16,16)
|
||||
float v129 = v124 + v128; // L132, S[16,16)
|
||||
float v130 = v3[v5][(v4 + 24)]; // L133
|
||||
float v131 = v3[v6][(v4 + 24)]; // L134
|
||||
float v132 = v0 * v130; // L135, S[16,16)
|
||||
float v133 = v132 * v131; // L136, S[16,16)
|
||||
float v134 = v129 + v133; // L137, S[16,16)
|
||||
float v135 = v3[v5][(v4 + 25)]; // L138
|
||||
float v136 = v3[v6][(v4 + 25)]; // L139
|
||||
float v137 = v0 * v135; // L140, S[16,16)
|
||||
float v138 = v137 * v136; // L141, S[16,16)
|
||||
float v139 = v134 + v138; // L142, S[16,16)
|
||||
float v140 = v3[v5][(v4 + 26)]; // L143
|
||||
float v141 = v3[v6][(v4 + 26)]; // L144
|
||||
float v142 = v0 * v140; // L145, S[16,16)
|
||||
float v143 = v142 * v141; // L146, S[16,16)
|
||||
float v144 = v139 + v143; // L147, S[16,16)
|
||||
float v145 = v3[v5][(v4 + 27)]; // L148
|
||||
float v146 = v3[v6][(v4 + 27)]; // L149
|
||||
float v147 = v0 * v145; // L150, S[16,16)
|
||||
float v148 = v147 * v146; // L151, S[16,16)
|
||||
float v149 = v144 + v148; // L152, S[16,16)
|
||||
float v150 = v3[v5][(v4 + 28)]; // L153
|
||||
float v151 = v3[v6][(v4 + 28)]; // L154
|
||||
float v152 = v0 * v150; // L155, S[16,16)
|
||||
float v153 = v152 * v151; // L156, S[16,16)
|
||||
float v154 = v149 + v153; // L157, S[16,16)
|
||||
float v155 = v3[v5][(v4 + 29)]; // L158
|
||||
float v156 = v3[v6][(v4 + 29)]; // L159
|
||||
float v157 = v0 * v155; // L160, S[16,16)
|
||||
float v158 = v157 * v156; // L161, S[16,16)
|
||||
float v159 = v154 + v158; // L162, S[16,16)
|
||||
float v160 = v3[v5][(v4 + 30)]; // L163
|
||||
float v161 = v3[v6][(v4 + 30)]; // L164
|
||||
float v162 = v0 * v160; // L165, S[16,16)
|
||||
float v163 = v162 * v161; // L166, S[16,16)
|
||||
float v164 = v159 + v163; // L167, S[16,16)
|
||||
float v165 = v3[v5][(v4 + 31)]; // L168
|
||||
float v166 = v3[v6][(v4 + 31)]; // L169
|
||||
float v167 = v0 * v165; // L170, S[16,16)
|
||||
float v168 = v167 * v166; // L171, S[16,16)
|
||||
float v169 = v164 + v168; // L172, S[16,16)
|
||||
float v170 = v3[v5][(v4 + 32)]; // L173
|
||||
float v171 = v3[v6][(v4 + 32)]; // L174
|
||||
float v172 = v0 * v170; // L175, S[16,16)
|
||||
float v173 = v172 * v171; // L176, S[16,16)
|
||||
float v174 = v169 + v173; // L177, S[16,16)
|
||||
float v175 = v3[v5][(v4 + 33)]; // L178
|
||||
float v176 = v3[v6][(v4 + 33)]; // L179
|
||||
float v177 = v0 * v175; // L180, S[16,16)
|
||||
float v178 = v177 * v176; // L181, S[16,16)
|
||||
float v179 = v174 + v178; // L182, S[16,16)
|
||||
float v180 = v3[v5][(v4 + 34)]; // L183
|
||||
float v181 = v3[v6][(v4 + 34)]; // L184
|
||||
float v182 = v0 * v180; // L185, S[16,16)
|
||||
float v183 = v182 * v181; // L186, S[16,16)
|
||||
float v184 = v179 + v183; // L187, S[16,16)
|
||||
float v185 = v3[v5][(v4 + 35)]; // L188
|
||||
float v186 = v3[v6][(v4 + 35)]; // L189
|
||||
float v187 = v0 * v185; // L190, S[16,16)
|
||||
float v188 = v187 * v186; // L191, S[16,16)
|
||||
float v189 = v184 + v188; // L192, S[16,16)
|
||||
float v190 = v3[v5][(v4 + 36)]; // L193
|
||||
float v191 = v3[v6][(v4 + 36)]; // L194
|
||||
float v192 = v0 * v190; // L195, S[16,16)
|
||||
float v193 = v192 * v191; // L196, S[16,16)
|
||||
float v194 = v189 + v193; // L197, S[16,16)
|
||||
float v195 = v3[v5][(v4 + 37)]; // L198
|
||||
float v196 = v3[v6][(v4 + 37)]; // L199
|
||||
float v197 = v0 * v195; // L200, S[16,16)
|
||||
float v198 = v197 * v196; // L201, S[16,16)
|
||||
float v199 = v194 + v198; // L202, S[16,16)
|
||||
float v200 = v3[v5][(v4 + 38)]; // L203
|
||||
float v201 = v3[v6][(v4 + 38)]; // L204
|
||||
float v202 = v0 * v200; // L205, S[16,16)
|
||||
float v203 = v202 * v201; // L206, S[16,16)
|
||||
float v204 = v199 + v203; // L207, S[16,16)
|
||||
float v205 = v3[v5][(v4 + 39)]; // L208
|
||||
float v206 = v3[v6][(v4 + 39)]; // L209
|
||||
float v207 = v0 * v205; // L210, S[16,16)
|
||||
float v208 = v207 * v206; // L211, S[16,16)
|
||||
float v209 = v204 + v208; // L212, S[16,16)
|
||||
float v210 = v3[v5][(v4 + 40)]; // L213
|
||||
float v211 = v3[v6][(v4 + 40)]; // L214
|
||||
float v212 = v0 * v210; // L215, S[16,16)
|
||||
float v213 = v212 * v211; // L216, S[16,16)
|
||||
float v214 = v209 + v213; // L217, S[16,16)
|
||||
float v215 = v3[v5][(v4 + 41)]; // L218
|
||||
float v216 = v3[v6][(v4 + 41)]; // L219
|
||||
float v217 = v0 * v215; // L220, S[16,16)
|
||||
float v218 = v217 * v216; // L221, S[16,16)
|
||||
float v219 = v214 + v218; // L222, S[16,16)
|
||||
float v220 = v3[v5][(v4 + 42)]; // L223
|
||||
float v221 = v3[v6][(v4 + 42)]; // L224
|
||||
float v222 = v0 * v220; // L225, S[16,16)
|
||||
float v223 = v222 * v221; // L226, S[16,16)
|
||||
float v224 = v219 + v223; // L227, S[16,16)
|
||||
float v225 = v3[v5][(v4 + 43)]; // L228
|
||||
float v226 = v3[v6][(v4 + 43)]; // L229
|
||||
float v227 = v0 * v225; // L230, S[16,16)
|
||||
float v228 = v227 * v226; // L231, S[16,16)
|
||||
float v229 = v224 + v228; // L232, S[16,16)
|
||||
float v230 = v3[v5][(v4 + 44)]; // L233
|
||||
float v231 = v3[v6][(v4 + 44)]; // L234
|
||||
float v232 = v0 * v230; // L235, S[16,16)
|
||||
float v233 = v232 * v231; // L236, S[16,16)
|
||||
float v234 = v229 + v233; // L237, S[16,16)
|
||||
float v235 = v3[v5][(v4 + 45)]; // L238
|
||||
float v236 = v3[v6][(v4 + 45)]; // L239
|
||||
float v237 = v0 * v235; // L240, S[16,16)
|
||||
float v238 = v237 * v236; // L241, S[16,16)
|
||||
float v239 = v234 + v238; // L242, S[16,16)
|
||||
float v240 = v3[v5][(v4 + 46)]; // L243
|
||||
float v241 = v3[v6][(v4 + 46)]; // L244
|
||||
float v242 = v0 * v240; // L245, S[16,16)
|
||||
float v243 = v242 * v241; // L246, S[16,16)
|
||||
float v244 = v239 + v243; // L247, S[16,16)
|
||||
float v245 = v3[v5][(v4 + 47)]; // L248
|
||||
float v246 = v3[v6][(v4 + 47)]; // L249
|
||||
float v247 = v0 * v245; // L250, S[16,16)
|
||||
float v248 = v247 * v246; // L251, S[16,16)
|
||||
float v249 = v244 + v248; // L252, S[16,16)
|
||||
float v250 = v3[v5][(v4 + 48)]; // L253
|
||||
float v251 = v3[v6][(v4 + 48)]; // L254
|
||||
float v252 = v0 * v250; // L255, S[16,16)
|
||||
float v253 = v252 * v251; // L256, S[16,16)
|
||||
float v254 = v249 + v253; // L257, S[16,16)
|
||||
float v255 = v3[v5][(v4 + 49)]; // L258
|
||||
float v256 = v3[v6][(v4 + 49)]; // L259
|
||||
float v257 = v0 * v255; // L260, S[16,16)
|
||||
float v258 = v257 * v256; // L261, S[16,16)
|
||||
float v259 = v254 + v258; // L262, S[16,16)
|
||||
float v260 = v3[v5][(v4 + 50)]; // L263
|
||||
float v261 = v3[v6][(v4 + 50)]; // L264
|
||||
float v262 = v0 * v260; // L265, S[16,16)
|
||||
float v263 = v262 * v261; // L266, S[16,16)
|
||||
float v264 = v259 + v263; // L267, S[16,16)
|
||||
float v265 = v3[v5][(v4 + 51)]; // L268
|
||||
float v266 = v3[v6][(v4 + 51)]; // L269
|
||||
float v267 = v0 * v265; // L270, S[16,16)
|
||||
float v268 = v267 * v266; // L271, S[16,16)
|
||||
float v269 = v264 + v268; // L272, S[16,16)
|
||||
float v270 = v3[v5][(v4 + 52)]; // L273
|
||||
float v271 = v3[v6][(v4 + 52)]; // L274
|
||||
float v272 = v0 * v270; // L275, S[16,16)
|
||||
float v273 = v272 * v271; // L276, S[16,16)
|
||||
float v274 = v269 + v273; // L277, S[16,16)
|
||||
float v275 = v3[v5][(v4 + 53)]; // L278
|
||||
float v276 = v3[v6][(v4 + 53)]; // L279
|
||||
float v277 = v0 * v275; // L280, S[16,16)
|
||||
float v278 = v277 * v276; // L281, S[16,16)
|
||||
float v279 = v274 + v278; // L282, S[16,16)
|
||||
float v280 = v3[v5][(v4 + 54)]; // L283
|
||||
float v281 = v3[v6][(v4 + 54)]; // L284
|
||||
float v282 = v0 * v280; // L285, S[16,16)
|
||||
float v283 = v282 * v281; // L286, S[16,16)
|
||||
float v284 = v279 + v283; // L287, S[16,16)
|
||||
float v285 = v3[v5][(v4 + 55)]; // L288
|
||||
float v286 = v3[v6][(v4 + 55)]; // L289
|
||||
float v287 = v0 * v285; // L290, S[16,16)
|
||||
float v288 = v287 * v286; // L291, S[16,16)
|
||||
float v289 = v284 + v288; // L292, S[16,16)
|
||||
float v290 = v3[v5][(v4 + 56)]; // L293
|
||||
float v291 = v3[v6][(v4 + 56)]; // L294
|
||||
float v292 = v0 * v290; // L295, S[16,16)
|
||||
float v293 = v292 * v291; // L296, S[16,16)
|
||||
float v294 = v289 + v293; // L297, S[16,16)
|
||||
float v295 = v3[v5][(v4 + 57)]; // L298
|
||||
float v296 = v3[v6][(v4 + 57)]; // L299
|
||||
float v297 = v0 * v295; // L300, S[16,16)
|
||||
float v298 = v297 * v296; // L301, S[16,16)
|
||||
float v299 = v294 + v298; // L302, S[16,16)
|
||||
float v300 = v3[v5][(v4 + 58)]; // L303
|
||||
float v301 = v3[v6][(v4 + 58)]; // L304
|
||||
float v302 = v0 * v300; // L305, S[16,16)
|
||||
float v303 = v302 * v301; // L306, S[16,16)
|
||||
float v304 = v299 + v303; // L307, S[16,16)
|
||||
float v305 = v3[v5][(v4 + 59)]; // L308
|
||||
float v306 = v3[v6][(v4 + 59)]; // L309
|
||||
float v307 = v0 * v305; // L310, S[16,16)
|
||||
float v308 = v307 * v306; // L311, S[16,16)
|
||||
float v309 = v304 + v308; // L312, S[16,16)
|
||||
float v310 = v3[v5][(v4 + 60)]; // L313
|
||||
float v311 = v3[v6][(v4 + 60)]; // L314
|
||||
float v312 = v0 * v310; // L315, S[16,16)
|
||||
float v313 = v312 * v311; // L316, S[16,16)
|
||||
float v314 = v309 + v313; // L317, S[16,16)
|
||||
float v315 = v3[v5][(v4 + 61)]; // L318
|
||||
float v316 = v3[v6][(v4 + 61)]; // L319
|
||||
float v317 = v0 * v315; // L320, S[16,16)
|
||||
float v318 = v317 * v316; // L321, S[16,16)
|
||||
float v319 = v314 + v318; // L322, S[16,16)
|
||||
float v320 = v3[v5][(v4 + 62)]; // L323
|
||||
float v321 = v3[v6][(v4 + 62)]; // L324
|
||||
float v322 = v0 * v320; // L325, S[16,16)
|
||||
float v323 = v322 * v321; // L326, S[16,16)
|
||||
float v324 = v319 + v323; // L327, S[16,16)
|
||||
float v325 = v3[v5][(v4 + 63)]; // L328
|
||||
float v326 = v3[v6][(v4 + 63)]; // L329
|
||||
float v327 = v0 * v325; // L330, S[16,16)
|
||||
float v328 = v327 * v326; // L331, S[16,16)
|
||||
float v329 = v324 + v328; // L332, S[16,16)
|
||||
v2[v5][v6] = v329; // L333, S[16,16)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,10 +6,10 @@ output_num=1
|
|||
max_init_parallel=32
|
||||
|
||||
# Positive number: the maximum parallelism of exploration.
|
||||
max_expl_parallel=128
|
||||
max_expl_parallel=128 # set to 512 for syr2k, syrk, trmm
|
||||
|
||||
# Positive number: the maximum parallelism of each loop.
|
||||
max_loop_parallel=16
|
||||
max_loop_parallel=16 # set to 64 for syr2k, syrk, trmm
|
||||
|
||||
# Positive number: the maximum DSE iteration number.
|
||||
max_iter_num=30
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
//===------------------------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Automatically generated file for High-level Synthesis (HLS).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <algorithm>
|
||||
#include <ap_axi_sdata.h>
|
||||
#include <ap_fixed.h>
|
||||
#include <ap_int.h>
|
||||
#include <hls_math.h>
|
||||
#include <hls_stream.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/// This is top function.
|
||||
/// Latency=653187358722
|
||||
/// DSP=8
|
||||
void trmm_4096(
|
||||
float v0,
|
||||
float v1[4096][4096],
|
||||
float v2[4096][4096]
|
||||
) { // L3
|
||||
#pragma HLS interface s_axilite port=return bundle=ctrl
|
||||
#pragma HLS interface s_axilite port=v0 bundle=ctrl
|
||||
#pragma HLS interface bram port=v1
|
||||
#pragma HLS interface bram port=v2
|
||||
|
||||
#pragma HLS resource variable=v1 core=ram_s2p_bram
|
||||
|
||||
#pragma HLS resource variable=v2 core=ram_s2p_bram
|
||||
|
||||
for (int v3 = 0; v3 < 4096; v3 += 1) { // L4, S[0,653187358722), latency=159469570
|
||||
for (int v4 = 0; v4 < 4096; v4 += 1) { // L5, S[0,159469570), latency=38933
|
||||
for (int v5 = 0; v5 < (v3 + 1); v5 += 1) { // L6, S[0,38933), latency=19
|
||||
float v6 = v1[v3][v5]; // L7, S[0,2)
|
||||
float v7 = v2[v5][v4]; // L8, S[0,2)
|
||||
float v8 = v2[v3][v4]; // L9, S[4,6)
|
||||
float v9 = v6 * v7; // L10, S[2,6)
|
||||
float v10 = v8 + v9; // L11, S[6,11)
|
||||
v2[v3][v4] = v10; // L12, S[11,12)
|
||||
}
|
||||
float v11 = v2[v3][v4]; // L14, S[38926,38928)
|
||||
float v12 = v0 * v11; // L15, S[38928,38932)
|
||||
v2[v3][v4] = v12; // L16, S[38932,38933)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue