anchor.diff:     rule cleanup if (pktCount==0 && traceLen>0 && started);
         let pktLen <- buff.readServer.readLen.get;
         buff.readServer.readReq.put(EtherReq{len: pktLen});
  -      $display("Pktgen:: drain buffer");
  +      if (verbose) $display("Pktgen:: drain buffer");
      endrule
   
      rule drainBufferPayload if (pktCount==0 && traceLen>0 && started);
         let data <- buff.readServer.readData.get;
         // do nothing
  -      $display("Pktgen:: drain buffer payload");
  +      if (verbose) $display("Pktgen:: drain buffer payload");
         if (data.eop) begin
            traceLen <= traceLen - 1;
         end
  
positive.code:          pktCount <= 1;
           infiniteLoop <= True;
        end
        $display("Pktgen:: start %h %h", pc, ipg);
     endmethod
     method Action stop();
        infiniteLoop <= False;
  
negative.code:    provisos (Div#(`DataBusWidth, 8, bytesPerBeat)
              ,Log#(bytesPerBeat, beatShift));
  
     let verbose = False;
  
     Reg#(Bit#(32)) traceLen <- mkReg(0);
     Reg#(Bit#(32)) pktCount <- mkReg(0);
     Reg#(Bit#(32)) ipgCount <- mkReg(0);
  