123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- #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();
- }
- }
- };
- };
|