StreamFMAKernel_exec0.cpp 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. #include "stdsimheader.h"
  2. namespace maxcompilersim {
  3. void StreamFMAKernel::execute0() {
  4. { // Node ID: 22 (NodeInputMappedReg)
  5. }
  6. HWOffsetFix<1,0,UNSIGNED> id23out_result;
  7. { // Node ID: 23 (NodeNot)
  8. const HWOffsetFix<1,0,UNSIGNED> &id23in_a = id22out_io_oDataT1_force_disabled;
  9. id23out_result = (not_fixed(id23in_a));
  10. }
  11. { // Node ID: 0 (NodeInputMappedReg)
  12. }
  13. HWOffsetFix<1,0,UNSIGNED> id1out_result;
  14. { // Node ID: 1 (NodeNot)
  15. const HWOffsetFix<1,0,UNSIGNED> &id1in_a = id0out_io_inAT1_force_disabled;
  16. id1out_result = (not_fixed(id1in_a));
  17. }
  18. if ( (getFillLevel() >= (4l)))
  19. { // Node ID: 2 (NodeInput)
  20. const HWOffsetFix<1,0,UNSIGNED> &id2in_enable = id1out_result;
  21. (id2st_read_next_cycle) = ((id2in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  22. queueReadRequest(m_inAT1, id2st_read_next_cycle.getValueAsBool());
  23. }
  24. { // Node ID: 3 (NodeInputMappedReg)
  25. }
  26. HWOffsetFix<1,0,UNSIGNED> id4out_result;
  27. { // Node ID: 4 (NodeNot)
  28. const HWOffsetFix<1,0,UNSIGNED> &id4in_a = id3out_io_inBT1_force_disabled;
  29. id4out_result = (not_fixed(id4in_a));
  30. }
  31. if ( (getFillLevel() >= (4l)))
  32. { // Node ID: 5 (NodeInput)
  33. const HWOffsetFix<1,0,UNSIGNED> &id5in_enable = id4out_result;
  34. (id5st_read_next_cycle) = ((id5in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  35. queueReadRequest(m_inBT1, id5st_read_next_cycle.getValueAsBool());
  36. }
  37. { // Node ID: 18 (NodeAdd)
  38. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id18in_a = id2out_data;
  39. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id18in_b = id5out_data;
  40. id18out_result[(getCycle()+1)%2] = (add_fixed<32,0,TWOSCOMPLEMENT,TONEAREVEN>(id18in_a,id18in_b));
  41. }
  42. if ( (getFillLevel() >= (10l)) && (getFlushLevel() < (10l)|| !isFlushingActive() ))
  43. { // Node ID: 25 (NodeOutput)
  44. const HWOffsetFix<1,0,UNSIGNED> &id25in_output_control = id23out_result;
  45. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id25in_data = id18out_result[getCycle()%2];
  46. bool id25x_1;
  47. (id25x_1) = ((id25in_output_control.getValueAsBool())&(!(((getFlushLevel())>=(10l))&(isFlushingActive()))));
  48. if((id25x_1)) {
  49. writeOutput(m_oDataT1, id25in_data);
  50. }
  51. }
  52. { // Node ID: 27 (NodeInputMappedReg)
  53. }
  54. HWOffsetFix<1,0,UNSIGNED> id28out_result;
  55. { // Node ID: 28 (NodeNot)
  56. const HWOffsetFix<1,0,UNSIGNED> &id28in_a = id27out_io_oDataT2_force_disabled;
  57. id28out_result = (not_fixed(id28in_a));
  58. }
  59. { // Node ID: 6 (NodeInputMappedReg)
  60. }
  61. HWOffsetFix<1,0,UNSIGNED> id7out_result;
  62. { // Node ID: 7 (NodeNot)
  63. const HWOffsetFix<1,0,UNSIGNED> &id7in_a = id6out_io_inAT2_force_disabled;
  64. id7out_result = (not_fixed(id7in_a));
  65. }
  66. if ( (getFillLevel() >= (4l)))
  67. { // Node ID: 8 (NodeInput)
  68. const HWOffsetFix<1,0,UNSIGNED> &id8in_enable = id7out_result;
  69. (id8st_read_next_cycle) = ((id8in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  70. queueReadRequest(m_inAT2, id8st_read_next_cycle.getValueAsBool());
  71. }
  72. { // Node ID: 9 (NodeInputMappedReg)
  73. }
  74. HWOffsetFix<1,0,UNSIGNED> id10out_result;
  75. { // Node ID: 10 (NodeNot)
  76. const HWOffsetFix<1,0,UNSIGNED> &id10in_a = id9out_io_inBT2_force_disabled;
  77. id10out_result = (not_fixed(id10in_a));
  78. }
  79. if ( (getFillLevel() >= (4l)))
  80. { // Node ID: 11 (NodeInput)
  81. const HWOffsetFix<1,0,UNSIGNED> &id11in_enable = id10out_result;
  82. (id11st_read_next_cycle) = ((id11in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  83. queueReadRequest(m_inBT2, id11st_read_next_cycle.getValueAsBool());
  84. }
  85. { // Node ID: 19 (NodeMul)
  86. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id19in_a = id8out_data;
  87. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id19in_b = id11out_data;
  88. id19out_result[(getCycle()+6)%7] = (mul_fixed<32,0,TWOSCOMPLEMENT,TONEAREVEN>(id19in_a,id19in_b));
  89. }
  90. if ( (getFillLevel() >= (15l)) && (getFlushLevel() < (15l)|| !isFlushingActive() ))
  91. { // Node ID: 30 (NodeOutput)
  92. const HWOffsetFix<1,0,UNSIGNED> &id30in_output_control = id28out_result;
  93. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id30in_data = id19out_result[getCycle()%7];
  94. bool id30x_1;
  95. (id30x_1) = ((id30in_output_control.getValueAsBool())&(!(((getFlushLevel())>=(15l))&(isFlushingActive()))));
  96. if((id30x_1)) {
  97. writeOutput(m_oDataT2, id30in_data);
  98. }
  99. }
  100. { // Node ID: 32 (NodeInputMappedReg)
  101. }
  102. HWOffsetFix<1,0,UNSIGNED> id33out_result;
  103. { // Node ID: 33 (NodeNot)
  104. const HWOffsetFix<1,0,UNSIGNED> &id33in_a = id32out_io_oDataT3_force_disabled;
  105. id33out_result = (not_fixed(id33in_a));
  106. }
  107. { // Node ID: 12 (NodeInputMappedReg)
  108. }
  109. HWOffsetFix<1,0,UNSIGNED> id13out_result;
  110. { // Node ID: 13 (NodeNot)
  111. const HWOffsetFix<1,0,UNSIGNED> &id13in_a = id12out_io_inAT3_force_disabled;
  112. id13out_result = (not_fixed(id13in_a));
  113. }
  114. if ( (getFillLevel() >= (4l)))
  115. { // Node ID: 14 (NodeInput)
  116. const HWOffsetFix<1,0,UNSIGNED> &id14in_enable = id13out_result;
  117. (id14st_read_next_cycle) = ((id14in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  118. queueReadRequest(m_inAT3, id14st_read_next_cycle.getValueAsBool());
  119. }
  120. { // Node ID: 15 (NodeInputMappedReg)
  121. }
  122. HWOffsetFix<1,0,UNSIGNED> id16out_result;
  123. { // Node ID: 16 (NodeNot)
  124. const HWOffsetFix<1,0,UNSIGNED> &id16in_a = id15out_io_inBT3_force_disabled;
  125. id16out_result = (not_fixed(id16in_a));
  126. }
  127. if ( (getFillLevel() >= (4l)))
  128. { // Node ID: 17 (NodeInput)
  129. const HWOffsetFix<1,0,UNSIGNED> &id17in_enable = id16out_result;
  130. (id17st_read_next_cycle) = ((id17in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  131. queueReadRequest(m_inBT3, id17st_read_next_cycle.getValueAsBool());
  132. }
  133. { // Node ID: 20 (NodeAdd)
  134. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id20in_a = id14out_data;
  135. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id20in_b = id17out_data;
  136. id20out_result[(getCycle()+1)%2] = (add_fixed<32,0,TWOSCOMPLEMENT,TONEAREVEN>(id20in_a,id20in_b));
  137. }
  138. if ( (getFillLevel() >= (10l)) && (getFlushLevel() < (10l)|| !isFlushingActive() ))
  139. { // Node ID: 35 (NodeOutput)
  140. const HWOffsetFix<1,0,UNSIGNED> &id35in_output_control = id33out_result;
  141. const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id35in_data = id20out_result[getCycle()%2];
  142. bool id35x_1;
  143. (id35x_1) = ((id35in_output_control.getValueAsBool())&(!(((getFlushLevel())>=(10l))&(isFlushingActive()))));
  144. if((id35x_1)) {
  145. writeOutput(m_oDataT3, id35in_data);
  146. }
  147. }
  148. { // Node ID: 40 (NodeConstantRawBits)
  149. }
  150. { // Node ID: 50 (NodeConstantRawBits)
  151. }
  152. { // Node ID: 37 (NodeConstantRawBits)
  153. }
  154. if ( (getFillLevel() >= (3l)))
  155. { // Node ID: 38 (NodeCounter)
  156. const HWOffsetFix<1,0,UNSIGNED> &id38in_enable = id50out_value;
  157. const HWOffsetFix<49,0,UNSIGNED> &id38in_max = id37out_value;
  158. HWOffsetFix<49,0,UNSIGNED> id38x_1;
  159. HWOffsetFix<1,0,UNSIGNED> id38x_2;
  160. HWOffsetFix<1,0,UNSIGNED> id38x_3;
  161. HWOffsetFix<49,0,UNSIGNED> id38x_4t_1e_1;
  162. id38out_count = (cast_fixed2fixed<48,0,UNSIGNED,TRUNCATE>((id38st_count)));
  163. (id38x_1) = (add_fixed<49,0,UNSIGNED,TRUNCATE>((id38st_count),(c_hw_fix_49_0_uns_bits_2)));
  164. (id38x_2) = (gte_fixed((id38x_1),id38in_max));
  165. (id38x_3) = (and_fixed((id38x_2),id38in_enable));
  166. id38out_wrap = (id38x_3);
  167. if((id38in_enable.getValueAsBool())) {
  168. if(((id38x_3).getValueAsBool())) {
  169. (id38st_count) = (c_hw_fix_49_0_uns_bits_1);
  170. }
  171. else {
  172. (id38x_4t_1e_1) = (id38x_1);
  173. (id38st_count) = (id38x_4t_1e_1);
  174. }
  175. }
  176. else {
  177. }
  178. }
  179. HWOffsetFix<48,0,UNSIGNED> id39out_output;
  180. { // Node ID: 39 (NodeStreamOffset)
  181. const HWOffsetFix<48,0,UNSIGNED> &id39in_input = id38out_count;
  182. id39out_output = id39in_input;
  183. }
  184. if ( (getFillLevel() >= (4l)) && (getFlushLevel() < (4l)|| !isFlushingActive() ))
  185. { // Node ID: 41 (NodeOutputMappedReg)
  186. const HWOffsetFix<1,0,UNSIGNED> &id41in_load = id40out_value;
  187. const HWOffsetFix<48,0,UNSIGNED> &id41in_data = id39out_output;
  188. bool id41x_1;
  189. (id41x_1) = ((id41in_load.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive()))));
  190. if((id41x_1)) {
  191. setMappedRegValue("current_run_cycle_count", id41in_data);
  192. }
  193. }
  194. { // Node ID: 49 (NodeConstantRawBits)
  195. }
  196. { // Node ID: 43 (NodeConstantRawBits)
  197. }
  198. if ( (getFillLevel() >= (0l)))
  199. { // Node ID: 44 (NodeCounter)
  200. const HWOffsetFix<1,0,UNSIGNED> &id44in_enable = id49out_value;
  201. const HWOffsetFix<49,0,UNSIGNED> &id44in_max = id43out_value;
  202. HWOffsetFix<49,0,UNSIGNED> id44x_1;
  203. HWOffsetFix<1,0,UNSIGNED> id44x_2;
  204. HWOffsetFix<1,0,UNSIGNED> id44x_3;
  205. HWOffsetFix<49,0,UNSIGNED> id44x_4t_1e_1;
  206. id44out_count = (cast_fixed2fixed<48,0,UNSIGNED,TRUNCATE>((id44st_count)));
  207. (id44x_1) = (add_fixed<49,0,UNSIGNED,TRUNCATE>((id44st_count),(c_hw_fix_49_0_uns_bits_2)));
  208. (id44x_2) = (gte_fixed((id44x_1),id44in_max));
  209. (id44x_3) = (and_fixed((id44x_2),id44in_enable));
  210. id44out_wrap = (id44x_3);
  211. if((id44in_enable.getValueAsBool())) {
  212. if(((id44x_3).getValueAsBool())) {
  213. (id44st_count) = (c_hw_fix_49_0_uns_bits_1);
  214. }
  215. else {
  216. (id44x_4t_1e_1) = (id44x_1);
  217. (id44st_count) = (id44x_4t_1e_1);
  218. }
  219. }
  220. else {
  221. }
  222. }
  223. { // Node ID: 46 (NodeInputMappedReg)
  224. }
  225. { // Node ID: 48 (NodeEqInlined)
  226. const HWOffsetFix<48,0,UNSIGNED> &id48in_a = id44out_count;
  227. const HWOffsetFix<48,0,UNSIGNED> &id48in_b = id46out_run_cycle_count;
  228. id48out_result[(getCycle()+1)%2] = (eq_fixed(id48in_a,id48in_b));
  229. }
  230. if ( (getFillLevel() >= (1l)))
  231. { // Node ID: 45 (NodeFlush)
  232. const HWOffsetFix<1,0,UNSIGNED> &id45in_start = id48out_result[getCycle()%2];
  233. if((id45in_start.getValueAsBool())) {
  234. startFlushing();
  235. }
  236. }
  237. };
  238. };