anchor.diff:     function Action fetch_next_header0(Bit#(10) len);
        action
          rg_next_header_len[0] <= len;
  -       w_parse_header_done.send();
  -     endaction
  -   endfunction
  -   function Action fetch_next_header1(Bit#(10) len);
  -     action
  -       rg_next_header_len[1] <= len;
          w_parse_header_done.send();
        endaction
      endfunction
  
positive.code:    `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));
        data_in_tmp[1] <= tagged Valid;
        dbprint(4, $format("Parser dequeue data %d %d", rg_buffered[1], rg_next_header_len[2]));
     endrule
  
     rule rl_start_state_deq if (parse_done[1] && sop_this_cycle && !w_parse_header_done);
  
negative.code:    PulseWire w_parse_done <- mkPulseWire();
     PulseWire w_parse_header_done <- mkPulseWireOR();
     PulseWire w_load_header <- mkPulseWireOR();
     Reg#(Bit#(512)) rg_tmp <- mkReg(0);
     Array#(Reg#(Bit#(10))) rg_next_header_len <- mkCReg(2, 0);
     Array#(Reg#(Bit#(10))) rg_buffered <- mkCReg(2, 0);
     Array#(Reg#(Maybe#(void))) data_in_tmp <- mkCReg(2, tagged Invalid);
  
     `define PARSER_STATE
  