anchor.diff:     `include "ParserGenerated.bsv"
      `undef PARSER_FUNCTION
   
  -   rule rl_data_ff_load if ((!parse_done[1] && rg_buffered[1] < rg_next_header_len[2]) && (w_parse_header_done || w_load_header));
  +   rule rl_data_ff_load if ((!parse_done[1] && rg_buffered[1] < rg_next_header_len[1]) && (w_parse_header_done || w_load_header));
         data_in_tmp[1] <= tagged Valid;
  -      dbprint(4, $format("Parser dequeue data %d %d", rg_buffered[1], rg_next_header_len[2]));
  +      dbprint(4, $format("Parser dequeue data %d %d", rg_buffered[1], rg_next_header_len[1]));
      endrule
   
      rule rl_start_state_deq if (parse_done[1] && sop_this_cycle && !w_parse_header_done);
  
positive.code:             if (isValid(data_in_tmp[0])) begin
                 data_in_tmp[0] <= tagged Invalid;
                 data_in_ff.deq;
                 let data = zeroExtend(data_this_cycle) << rg_buffered[0] | rg_tmp[0];
                 rg_tmp[0] <= zeroExtend(data);
                 move_shift_amt(128);
                 dbprint(4, $format("Parser State %h buffered %d, %h, %h", parse_state_ff.first, rg_buffered[0], data_this_cycle, data));
              end
  
negative.code:          rule rl_extract if ((parse_state_ff.first == state) && (rg_buffered[0] >= len));
              // load data_in_ff in Valid
              // process data_in_ff in next cycle
              let data = rg_tmp;
              if (isValid(data_in_tmp[0])) begin
                 data_in_tmp[0] <= tagged Invalid;
                 data_in_ff.deq;
                 data = zeroExtend(data_this_cycle) << rg_buffered[0] | rg_tmp;
              end
              dbprint(4, $format("Parser State %h buffered %d, %h, %h", parse_state_ff.first, rg_buffered[0], data_this_cycle, data));
              extract_header(state, data);
              rg_tmp <= zeroExtend(data >> len);
              succeed_and_next(len);
              parse_state_ff.deq;
           endrule
  