StreamFMAKernel.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #ifndef STREAMFMAKERNEL_H_
  2. #define STREAMFMAKERNEL_H_
  3. // #include "KernelManagerBlockSync.h"
  4. namespace maxcompilersim {
  5. class StreamFMAKernel : public KernelManagerBlockSync {
  6. public:
  7. StreamFMAKernel(const std::string &instance_name);
  8. protected:
  9. virtual void runComputationCycle();
  10. virtual void resetComputation();
  11. virtual void resetComputationAfterFlush();
  12. void updateState();
  13. void preExecute();
  14. virtual int getFlushLevelStart();
  15. private:
  16. t_port_number m_inAT1;
  17. t_port_number m_inBT1;
  18. t_port_number m_oDataT1;
  19. t_port_number m_inAT2;
  20. t_port_number m_inBT2;
  21. t_port_number m_oDataT2;
  22. t_port_number m_inAT3;
  23. t_port_number m_inBT3;
  24. t_port_number m_oDataT3;
  25. HWOffsetFix<1,0,UNSIGNED> id22out_io_oDataT1_force_disabled;
  26. HWOffsetFix<1,0,UNSIGNED> id0out_io_inAT1_force_disabled;
  27. HWOffsetFix<32,0,TWOSCOMPLEMENT> id2out_data;
  28. HWOffsetFix<1,0,UNSIGNED> id2st_read_next_cycle;
  29. HWOffsetFix<32,0,TWOSCOMPLEMENT> id2st_last_read_value;
  30. HWOffsetFix<1,0,UNSIGNED> id3out_io_inBT1_force_disabled;
  31. HWOffsetFix<32,0,TWOSCOMPLEMENT> id5out_data;
  32. HWOffsetFix<1,0,UNSIGNED> id5st_read_next_cycle;
  33. HWOffsetFix<32,0,TWOSCOMPLEMENT> id5st_last_read_value;
  34. HWOffsetFix<32,0,TWOSCOMPLEMENT> id18out_result[2];
  35. HWOffsetFix<1,0,UNSIGNED> id27out_io_oDataT2_force_disabled;
  36. HWOffsetFix<1,0,UNSIGNED> id6out_io_inAT2_force_disabled;
  37. HWOffsetFix<32,0,TWOSCOMPLEMENT> id8out_data;
  38. HWOffsetFix<1,0,UNSIGNED> id8st_read_next_cycle;
  39. HWOffsetFix<32,0,TWOSCOMPLEMENT> id8st_last_read_value;
  40. HWOffsetFix<1,0,UNSIGNED> id9out_io_inBT2_force_disabled;
  41. HWOffsetFix<32,0,TWOSCOMPLEMENT> id11out_data;
  42. HWOffsetFix<1,0,UNSIGNED> id11st_read_next_cycle;
  43. HWOffsetFix<32,0,TWOSCOMPLEMENT> id11st_last_read_value;
  44. HWOffsetFix<32,0,TWOSCOMPLEMENT> id19out_result[7];
  45. HWOffsetFix<1,0,UNSIGNED> id32out_io_oDataT3_force_disabled;
  46. HWOffsetFix<1,0,UNSIGNED> id12out_io_inAT3_force_disabled;
  47. HWOffsetFix<32,0,TWOSCOMPLEMENT> id14out_data;
  48. HWOffsetFix<1,0,UNSIGNED> id14st_read_next_cycle;
  49. HWOffsetFix<32,0,TWOSCOMPLEMENT> id14st_last_read_value;
  50. HWOffsetFix<1,0,UNSIGNED> id15out_io_inBT3_force_disabled;
  51. HWOffsetFix<32,0,TWOSCOMPLEMENT> id17out_data;
  52. HWOffsetFix<1,0,UNSIGNED> id17st_read_next_cycle;
  53. HWOffsetFix<32,0,TWOSCOMPLEMENT> id17st_last_read_value;
  54. HWOffsetFix<32,0,TWOSCOMPLEMENT> id20out_result[2];
  55. HWOffsetFix<1,0,UNSIGNED> id40out_value;
  56. HWOffsetFix<1,0,UNSIGNED> id50out_value;
  57. HWOffsetFix<49,0,UNSIGNED> id37out_value;
  58. HWOffsetFix<48,0,UNSIGNED> id38out_count;
  59. HWOffsetFix<1,0,UNSIGNED> id38out_wrap;
  60. HWOffsetFix<49,0,UNSIGNED> id38st_count;
  61. HWOffsetFix<1,0,UNSIGNED> id49out_value;
  62. HWOffsetFix<49,0,UNSIGNED> id43out_value;
  63. HWOffsetFix<48,0,UNSIGNED> id44out_count;
  64. HWOffsetFix<1,0,UNSIGNED> id44out_wrap;
  65. HWOffsetFix<49,0,UNSIGNED> id44st_count;
  66. HWOffsetFix<48,0,UNSIGNED> id46out_run_cycle_count;
  67. HWOffsetFix<1,0,UNSIGNED> id48out_result[2];
  68. const HWOffsetFix<1,0,UNSIGNED> c_hw_fix_1_0_uns_bits;
  69. const HWOffsetFix<32,0,TWOSCOMPLEMENT> c_hw_fix_32_0_sgn_undef;
  70. const HWOffsetFix<1,0,UNSIGNED> c_hw_fix_1_0_uns_bits_1;
  71. const HWOffsetFix<49,0,UNSIGNED> c_hw_fix_49_0_uns_bits;
  72. const HWOffsetFix<49,0,UNSIGNED> c_hw_fix_49_0_uns_bits_1;
  73. const HWOffsetFix<49,0,UNSIGNED> c_hw_fix_49_0_uns_bits_2;
  74. void execute0();
  75. };
  76. }
  77. #endif /* STREAMFMAKERNEL_H_ */