StreamFMAKernel.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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_a;
  17. t_port_number m_b;
  18. t_port_number m_output;
  19. HWOffsetFix<1,0,UNSIGNED> id8out_io_output_force_disabled;
  20. HWOffsetFix<1,0,UNSIGNED> id0out_io_a_force_disabled;
  21. HWOffsetFix<32,0,TWOSCOMPLEMENT> id2out_data;
  22. HWOffsetFix<1,0,UNSIGNED> id2st_read_next_cycle;
  23. HWOffsetFix<32,0,TWOSCOMPLEMENT> id2st_last_read_value;
  24. HWOffsetFix<1,0,UNSIGNED> id3out_io_b_force_disabled;
  25. HWOffsetFix<32,0,TWOSCOMPLEMENT> id5out_data;
  26. HWOffsetFix<1,0,UNSIGNED> id5st_read_next_cycle;
  27. HWOffsetFix<32,0,TWOSCOMPLEMENT> id5st_last_read_value;
  28. HWOffsetFix<32,0,TWOSCOMPLEMENT> id6out_result[2];
  29. HWOffsetFix<1,0,UNSIGNED> id16out_value;
  30. HWOffsetFix<1,0,UNSIGNED> id26out_value;
  31. HWOffsetFix<49,0,UNSIGNED> id13out_value;
  32. HWOffsetFix<48,0,UNSIGNED> id14out_count;
  33. HWOffsetFix<1,0,UNSIGNED> id14out_wrap;
  34. HWOffsetFix<49,0,UNSIGNED> id14st_count;
  35. HWOffsetFix<1,0,UNSIGNED> id25out_value;
  36. HWOffsetFix<49,0,UNSIGNED> id19out_value;
  37. HWOffsetFix<48,0,UNSIGNED> id20out_count;
  38. HWOffsetFix<1,0,UNSIGNED> id20out_wrap;
  39. HWOffsetFix<49,0,UNSIGNED> id20st_count;
  40. HWOffsetFix<48,0,UNSIGNED> id22out_run_cycle_count;
  41. HWOffsetFix<1,0,UNSIGNED> id24out_result[2];
  42. const HWOffsetFix<1,0,UNSIGNED> c_hw_fix_1_0_uns_bits;
  43. const HWOffsetFix<32,0,TWOSCOMPLEMENT> c_hw_fix_32_0_sgn_undef;
  44. const HWOffsetFix<1,0,UNSIGNED> c_hw_fix_1_0_uns_bits_1;
  45. const HWOffsetFix<49,0,UNSIGNED> c_hw_fix_49_0_uns_bits;
  46. const HWOffsetFix<49,0,UNSIGNED> c_hw_fix_49_0_uns_bits_1;
  47. const HWOffsetFix<49,0,UNSIGNED> c_hw_fix_49_0_uns_bits_2;
  48. void execute0();
  49. };
  50. }
  51. #endif /* STREAMFMAKERNEL_H_ */