anchor.diff:     Reg#(Bool) started <- mkReg(False);
   
      rule start_fsm (curr_state == S0 && data_in_fifo.notEmpty);
  -      //$display(fshow(cycle) + fshow("started"));
         if (!started) begin
            parse_ethernet.start;
            parse_vlan.start;
  
positive.code:    FIFOF#(Bit#(128)) packet_in_fifo <- mkBypassFIFOF;
     FIFOF#(Bit#(16)) unparsed_in_fifo <- mkBypassFIFOF;
     FIFOF#(Bit#(16)) unparsed_in_fifo_vlan0 <- mkBypassFIFOF;
     FIFOF#(Bit#(16)) unparsed_in_fifo_vlan1 <- mkBypassFIFOF;
     FIFOF#(Vlan_tag_t) parsed_out_fifo <- mkSizedFIFOF(1);
     FIFOF#(Bit#(112)) unparsed_out_parse_vlan0_fifo <- mkSizedFIFOF(1);
     FIFOF#(Bit#(80)) unparsed_out_parse_vlan1_fifo <- mkSizedFIFOF(1);
  
negative.code:    endaction
     endseq;
  
     FSM fsm_parse_ipv4_0 <- mkFSM(parse_ipv4_0);
     FSM fsm_parse_ipv4_1 <- mkFSM(parse_ipv4_1);
     FSM fsm_parse_ipv4_2 <- mkFSM(parse_ipv4_2);
  
     method Action start();
        fsm_parse_ipv4_0.start;
  