#include "stdsimheader.h" namespace maxcompilersim { void StreamFMAKernel::execute0() { { // Node ID: 22 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id23out_result; { // Node ID: 23 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id23in_a = id22out_io_oDataT1_force_disabled; id23out_result = (not_fixed(id23in_a)); } { // Node ID: 0 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id1out_result; { // Node ID: 1 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id1in_a = id0out_io_inAT1_force_disabled; id1out_result = (not_fixed(id1in_a)); } if ( (getFillLevel() >= (4l))) { // Node ID: 2 (NodeInput) const HWOffsetFix<1,0,UNSIGNED> &id2in_enable = id1out_result; (id2st_read_next_cycle) = ((id2in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); queueReadRequest(m_inAT1, id2st_read_next_cycle.getValueAsBool()); } { // Node ID: 3 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id4out_result; { // Node ID: 4 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id4in_a = id3out_io_inBT1_force_disabled; id4out_result = (not_fixed(id4in_a)); } if ( (getFillLevel() >= (4l))) { // Node ID: 5 (NodeInput) const HWOffsetFix<1,0,UNSIGNED> &id5in_enable = id4out_result; (id5st_read_next_cycle) = ((id5in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); queueReadRequest(m_inBT1, id5st_read_next_cycle.getValueAsBool()); } { // Node ID: 18 (NodeAdd) const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id18in_a = id2out_data; const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id18in_b = id5out_data; id18out_result[(getCycle()+1)%2] = (add_fixed<32,0,TWOSCOMPLEMENT,TONEAREVEN>(id18in_a,id18in_b)); } if ( (getFillLevel() >= (10l)) && (getFlushLevel() < (10l)|| !isFlushingActive() )) { // Node ID: 25 (NodeOutput) const HWOffsetFix<1,0,UNSIGNED> &id25in_output_control = id23out_result; const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id25in_data = id18out_result[getCycle()%2]; bool id25x_1; (id25x_1) = ((id25in_output_control.getValueAsBool())&(!(((getFlushLevel())>=(10l))&(isFlushingActive())))); if((id25x_1)) { writeOutput(m_oDataT1, id25in_data); } } { // Node ID: 27 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id28out_result; { // Node ID: 28 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id28in_a = id27out_io_oDataT2_force_disabled; id28out_result = (not_fixed(id28in_a)); } { // Node ID: 6 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id7out_result; { // Node ID: 7 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id7in_a = id6out_io_inAT2_force_disabled; id7out_result = (not_fixed(id7in_a)); } if ( (getFillLevel() >= (4l))) { // Node ID: 8 (NodeInput) const HWOffsetFix<1,0,UNSIGNED> &id8in_enable = id7out_result; (id8st_read_next_cycle) = ((id8in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); queueReadRequest(m_inAT2, id8st_read_next_cycle.getValueAsBool()); } { // Node ID: 9 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id10out_result; { // Node ID: 10 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id10in_a = id9out_io_inBT2_force_disabled; id10out_result = (not_fixed(id10in_a)); } if ( (getFillLevel() >= (4l))) { // Node ID: 11 (NodeInput) const HWOffsetFix<1,0,UNSIGNED> &id11in_enable = id10out_result; (id11st_read_next_cycle) = ((id11in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); queueReadRequest(m_inBT2, id11st_read_next_cycle.getValueAsBool()); } { // Node ID: 19 (NodeMul) const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id19in_a = id8out_data; const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id19in_b = id11out_data; id19out_result[(getCycle()+6)%7] = (mul_fixed<32,0,TWOSCOMPLEMENT,TONEAREVEN>(id19in_a,id19in_b)); } if ( (getFillLevel() >= (15l)) && (getFlushLevel() < (15l)|| !isFlushingActive() )) { // Node ID: 30 (NodeOutput) const HWOffsetFix<1,0,UNSIGNED> &id30in_output_control = id28out_result; const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id30in_data = id19out_result[getCycle()%7]; bool id30x_1; (id30x_1) = ((id30in_output_control.getValueAsBool())&(!(((getFlushLevel())>=(15l))&(isFlushingActive())))); if((id30x_1)) { writeOutput(m_oDataT2, id30in_data); } } { // Node ID: 32 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id33out_result; { // Node ID: 33 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id33in_a = id32out_io_oDataT3_force_disabled; id33out_result = (not_fixed(id33in_a)); } { // Node ID: 12 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id13out_result; { // Node ID: 13 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id13in_a = id12out_io_inAT3_force_disabled; id13out_result = (not_fixed(id13in_a)); } if ( (getFillLevel() >= (4l))) { // Node ID: 14 (NodeInput) const HWOffsetFix<1,0,UNSIGNED> &id14in_enable = id13out_result; (id14st_read_next_cycle) = ((id14in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); queueReadRequest(m_inAT3, id14st_read_next_cycle.getValueAsBool()); } { // Node ID: 15 (NodeInputMappedReg) } HWOffsetFix<1,0,UNSIGNED> id16out_result; { // Node ID: 16 (NodeNot) const HWOffsetFix<1,0,UNSIGNED> &id16in_a = id15out_io_inBT3_force_disabled; id16out_result = (not_fixed(id16in_a)); } if ( (getFillLevel() >= (4l))) { // Node ID: 17 (NodeInput) const HWOffsetFix<1,0,UNSIGNED> &id17in_enable = id16out_result; (id17st_read_next_cycle) = ((id17in_enable.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); queueReadRequest(m_inBT3, id17st_read_next_cycle.getValueAsBool()); } { // Node ID: 20 (NodeAdd) const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id20in_a = id14out_data; const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id20in_b = id17out_data; id20out_result[(getCycle()+1)%2] = (add_fixed<32,0,TWOSCOMPLEMENT,TONEAREVEN>(id20in_a,id20in_b)); } if ( (getFillLevel() >= (10l)) && (getFlushLevel() < (10l)|| !isFlushingActive() )) { // Node ID: 35 (NodeOutput) const HWOffsetFix<1,0,UNSIGNED> &id35in_output_control = id33out_result; const HWOffsetFix<32,0,TWOSCOMPLEMENT> &id35in_data = id20out_result[getCycle()%2]; bool id35x_1; (id35x_1) = ((id35in_output_control.getValueAsBool())&(!(((getFlushLevel())>=(10l))&(isFlushingActive())))); if((id35x_1)) { writeOutput(m_oDataT3, id35in_data); } } { // Node ID: 40 (NodeConstantRawBits) } { // Node ID: 50 (NodeConstantRawBits) } { // Node ID: 37 (NodeConstantRawBits) } if ( (getFillLevel() >= (3l))) { // Node ID: 38 (NodeCounter) const HWOffsetFix<1,0,UNSIGNED> &id38in_enable = id50out_value; const HWOffsetFix<49,0,UNSIGNED> &id38in_max = id37out_value; HWOffsetFix<49,0,UNSIGNED> id38x_1; HWOffsetFix<1,0,UNSIGNED> id38x_2; HWOffsetFix<1,0,UNSIGNED> id38x_3; HWOffsetFix<49,0,UNSIGNED> id38x_4t_1e_1; id38out_count = (cast_fixed2fixed<48,0,UNSIGNED,TRUNCATE>((id38st_count))); (id38x_1) = (add_fixed<49,0,UNSIGNED,TRUNCATE>((id38st_count),(c_hw_fix_49_0_uns_bits_2))); (id38x_2) = (gte_fixed((id38x_1),id38in_max)); (id38x_3) = (and_fixed((id38x_2),id38in_enable)); id38out_wrap = (id38x_3); if((id38in_enable.getValueAsBool())) { if(((id38x_3).getValueAsBool())) { (id38st_count) = (c_hw_fix_49_0_uns_bits_1); } else { (id38x_4t_1e_1) = (id38x_1); (id38st_count) = (id38x_4t_1e_1); } } else { } } HWOffsetFix<48,0,UNSIGNED> id39out_output; { // Node ID: 39 (NodeStreamOffset) const HWOffsetFix<48,0,UNSIGNED> &id39in_input = id38out_count; id39out_output = id39in_input; } if ( (getFillLevel() >= (4l)) && (getFlushLevel() < (4l)|| !isFlushingActive() )) { // Node ID: 41 (NodeOutputMappedReg) const HWOffsetFix<1,0,UNSIGNED> &id41in_load = id40out_value; const HWOffsetFix<48,0,UNSIGNED> &id41in_data = id39out_output; bool id41x_1; (id41x_1) = ((id41in_load.getValueAsBool())&(!(((getFlushLevel())>=(4l))&(isFlushingActive())))); if((id41x_1)) { setMappedRegValue("current_run_cycle_count", id41in_data); } } { // Node ID: 49 (NodeConstantRawBits) } { // Node ID: 43 (NodeConstantRawBits) } if ( (getFillLevel() >= (0l))) { // Node ID: 44 (NodeCounter) const HWOffsetFix<1,0,UNSIGNED> &id44in_enable = id49out_value; const HWOffsetFix<49,0,UNSIGNED> &id44in_max = id43out_value; HWOffsetFix<49,0,UNSIGNED> id44x_1; HWOffsetFix<1,0,UNSIGNED> id44x_2; HWOffsetFix<1,0,UNSIGNED> id44x_3; HWOffsetFix<49,0,UNSIGNED> id44x_4t_1e_1; id44out_count = (cast_fixed2fixed<48,0,UNSIGNED,TRUNCATE>((id44st_count))); (id44x_1) = (add_fixed<49,0,UNSIGNED,TRUNCATE>((id44st_count),(c_hw_fix_49_0_uns_bits_2))); (id44x_2) = (gte_fixed((id44x_1),id44in_max)); (id44x_3) = (and_fixed((id44x_2),id44in_enable)); id44out_wrap = (id44x_3); if((id44in_enable.getValueAsBool())) { if(((id44x_3).getValueAsBool())) { (id44st_count) = (c_hw_fix_49_0_uns_bits_1); } else { (id44x_4t_1e_1) = (id44x_1); (id44st_count) = (id44x_4t_1e_1); } } else { } } { // Node ID: 46 (NodeInputMappedReg) } { // Node ID: 48 (NodeEqInlined) const HWOffsetFix<48,0,UNSIGNED> &id48in_a = id44out_count; const HWOffsetFix<48,0,UNSIGNED> &id48in_b = id46out_run_cycle_count; id48out_result[(getCycle()+1)%2] = (eq_fixed(id48in_a,id48in_b)); } if ( (getFillLevel() >= (1l))) { // Node ID: 45 (NodeFlush) const HWOffsetFix<1,0,UNSIGNED> &id45in_start = id48out_result[getCycle()%2]; if((id45in_start.getValueAsBool())) { startFlushing(); } } }; };